Drupal 7 - Kullanıcıları yönetmek için izin verin, ancak izinleri vermeyin


11

Drupal 7'de, belirli kullanıcıların kullanıcı yönetimi sayfasına erişmesini ve yeni kullanıcılar oluşturabilmelerini, roller atayabilmelerini vb. İstediğimiz bir site kurduk, ancak sitelere erişmelerini istemiyoruz. Roller ve İzin sayfaları.

Şu anda Drupal'ın sadece 2 izni var Administer Permissionsve Administer users.

İle Administer usersizniyle, kullanıcı Kullanıcı Yönetimi sayfasına erişim vardır ve yeni kullanıcılar oluşturabilir ancak kullanıcılara atama roller olamaz.

Kullanıcının Administer permissionsizni varsa, kullanıcılara roller atayabilir ve ayrıca izin ve rol yönetimi sayfalarına erişebilir.

Bir kullanıcıya, kullanıcılara rol atama, ancak izin sayfasına erişmesini engelleme hakkını nasıl verirsiniz?

Yanıtlar:


16

Ben tam olarak aynı şartı vardı ve mükemmellik için inşa Roles Delegation modülünü kullanabildi :-)

İşte size daha fazla bağlam sunmak için senaryom -

  1. Rolleri olan drupal bir sitem vardı - A, B, C, Yönetici, Maint
  2. Maint rolüne sahip kullanıcıların yeni kullanıcılar oluşturabilmelerini ve bunu yaparken rollerini atamalarını istedim
  3. Ayrıca Maint kullanıcılarını Yönetici rolüne değil, yeni kullanıcılara yalnızca A, B, C rolleri atayabilmeleriyle sınırlandırmak istedim
  4. Rol Temsilcisi modülü ile tüm bunlar sadece birkaç tıklama oldu

Bu yardımcı olur umarım.


1
Roller Temsilcisini kullanma Kimlerin kullanıcı oluşturabileceğini yapılandıramıyorum. Rol atamak için bunları düzenleyebilirler, ancak oluşturamazlar. Bir şey mi kaçırıyorum?
Johnathan Elmore

2

Hmmm ... Bunu yapmak için kesin bir yol olmadığı görülüyor. Bu, insanlar için ortak bir özellik olabilir gibi görünüyor. Birkaç çözüm buldum:

http://drupal.org/project/protect_permissions - Ancak bu henüz üretim için hazır değil.

Ancak, istediğinizi şu şekilde gerçekleştirebileceğinizi düşünüyorum: http://drupal.org/project/permissions_lock

Ayrıca ihtiyacınız olacak: http://drupal.org/project/user_permissions

Daha sonra istediğiniz şeyin tam tersini yapıyor gibi görünüyor ama birincisi tam olarak istediğinizi yapıyor gibi görünüyor. Sizin için çalışacak olan bu% 100 sağlamak için dev sitemde bunlardan hiçbirini test etmedim. Başka bir şeyle karşılaşırsam bu cevabı güncelleyeceğim.


1
Ayrıca önerdiğiniz satırları da düşünmeye başladım, ama sonra Rol Delegasyonu modülünü buldum ( drupal.org/project/role_delegation ). Bu tür gereksinimler için göz atın. Harika çalışıyor.
Sümer Pareek

Müthiş! Bu yer imi, iyi bulmak.
Brandon Bearden

2

Roller heyeti bir güvenlik açığı bırakır. Yönetim sayfasını ve sahip olduğu araçları kullanabilmeleri için yönetici kullanıcıları kullanıcılara atamanız gerekir .

Ancak bunu yaparsanız, o rol superadmin'i bile düzenleyebilir. Kontrol Drupal Yönetici kullanıcıların izni dikkat tam açıklaması için.

Benim çözümüm rol delegasyonu + bu kanca


function hook_user_presave(&$edit, $account, $category) {
    if( $account->uid == 1 || in_array('adminrole',$account->roles)){ //trying to edit an admin
        global $user;
        if($user->uid != 1){//only super admin can do that
            drupal_set_message( "You attempted to edit an admin or dev user name and you are not allowed, this attempt was logged." ,'error');
            watchdog('permissions_extra','Logged in user %user tried to edit account %account', array('%user' => $user->uid, '%account' => $account->uid), WATCHDOG_ERROR);
            drupal_goto('/admin/people');
        }
    }
}

0

Son zamanlarda , tam olarak sorduğunuz şeyi yapan roleassign modülünü kullanıyoruz . Temel olarak role_delegation modülüyle aynıdır, ancak biraz farklı bir şeye ihtiyacınız varsa alternatif olabilir.

Önemli bir fark, hangi rollerin atanacağına nasıl karar vereceğinizdir. Roleassign ile, hangilerini kullanılabilir hale getirmek istediğinizi seçersiniz ve bu rolleri atamak için yalnızca tek bir yeni izin ekler: roleassign

Role_delegation modülünün sitede bulunan her rol için yeni bir izin verdiği görülüyor: role_delegation modül izinleri

Rol_delegation modülünün kurulum sayısı neredeyse üç katına ve "önerilen" Drupal 8 sürümüne sahip gibi görünüyor. Sorun kuyruğu da daha iyi durumda görünüyor, bu yüzden muhtemelen daha iyi bir seçenek mi?

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.