Drupal 7-사용자 관리 권한을 부여하지만 권한은 부여하지 않습니다


11

Drupal 7에는 특정 사용자가 사용자 관리 페이지에 액세스하고 새 사용자를 만들고 역할을 할당 할 수있는 사이트를 설정했지만 사용자에게 액세스 권한을 부여하고 싶지는 않습니다. 역할 및 권한 페이지

현재 드루팔은이 권한을 가지고 Administer PermissionsAdminister users.

으로 Administer users허가, 사용자는 사용자 관리 페이지에 액세스 할 수있는, 새로운 사용자를 생성 할 수 있지만 사용자에게 할당 역할을 할 수 없습니다.

사용자에게 Administer permissions권한 이 있으면 사용자 에게 역할을 할당하고 권한 및 역할 관리 페이지에 액세스 할 수도 있습니다.

사용자에게 역할을 할당 할 권한을 부여하지만 권한 페이지에 액세스하지 못하게하려면 어떻게합니까?

답변:


16

나는 똑같은 요구 사항이 있었고 역할 위임 모듈을 사용하여 완벽하게 만들 수있었습니다.

더 많은 맥락을 제시하는 시나리오는 다음과 같습니다.

  1. A, B, C, Admin, Maint 역할을 가진 드루팔 사이트가있었습니다.
  2. Maint 역할의 사용자가 새 사용자를 작성하고이를 수행하는 동안 역할을 지정할 수 있기를 원했습니다.
  3. 또한 Maint 사용자가 Admin 역할이 아닌 새로운 사용자에게 역할 A, B, C 만 할당 할 수 있도록 제한하고 싶었습니다.
  4. 역할 위임 모듈을 사용하면 몇 번만 클릭하면됩니다.

도움이 되었기를 바랍니다.


1
역할 위임 사용 사용자를 만들 수있는 사람을 구성 할 수없는 것 같습니다. 역할을 할당하기 위해 편집 할 수는 있지만 만들 수는 없습니다. 뭔가 빠졌습니까?
Johnathan Elmore

2

흠 ...이 작업을 수행하는 명확한 방법이없는 것 같습니다. 사람들에게 공통된 기능인 것 같습니다. 몇 가지 해결책을 찾았습니다.

http://drupal.org/project/protect_permissions- 그러나 아직 프로덕션 사용 준비가되지 않았습니다.

그러나 나는 당신이 원하는 것을 성취 할 수 있다고 생각합니다 : http://drupal.org/project/permissions_lock

또한 다음이 필요합니다 : http://drupal.org/project/user_permissions

후자는 원하는 것과 반대되는 것처럼 보이지만 전자는 원하는 것을 정확하게하는 것처럼 보입니다. 나는 100 % 이것이 당신에게 효과가 있는지 확인하기 위해 dev 사이트에서 이들 중 하나를 테스트하지 않았습니다. 다른 것을 발견하면이 답변을 업데이트 할 것입니다.


1
또한 제안한 것과 같은 줄을 생각하기 시작했지만 역할 위임 ( drupal.org/project/role_delegation ) 모듈을 찾았습니다 . 이런 종류의 요구 사항을 확인하십시오. 잘 작동합니다.
Sumeet Pareek

대박! 이것을 즐겨 찾기에 추가했습니다.
Brandon Bearden

2

역할 위임은 보안 허점을 남깁니다. 관리 페이지 및 도구를 사용 하려면 사람들에게 관리자 를 지정해야합니다 .

그러나 그렇게하면 해당 역할이 수퍼 관리자도 편집 할 수 있습니다. 자세한 설명 은 Drupal의 사용자 관리 권한 을 확인 하십시오 .

내 솔루션은 역할 위임 +이 후크입니다


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

최근에 우리는 roleassign 모듈을 사용하고 있습니다. role_delegation 모듈과 기본적으로 동일하지만 약간 다른 것이 필요한 경우 대안이 될 수 있습니다.

한 가지 중요한 차이점은 할당 할 수있는 역할을 결정하는 방법입니다. roleassign을 사용하면 사용할 역할을 선택하기 만하면 해당 역할을 할당 할 수있는 새로운 권한 하나만 추가됩니다. 역할

role_delegation 모듈은 사이트에 존재하는 각 역할에 대해 새로운 권한을 부여하는 것으로 보입니다. role_delegation 모듈 권한

role_delegation 모듈은 또한 거의 3 배의 설치 수와 "추천 된"Drupal 8 릴리스를 가진 것으로 보입니다. 이슈 큐도 모양이 좋아 보인다면 아마도 더 나은 옵션일까요?

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.