Drupal 7 - Cấp quyền quản lý người dùng nhưng không cho phép


11

Chúng tôi đã thiết lập một trang web trong Drupal 7 mà chúng tôi muốn một số người dùng nhất định có quyền truy cập vào trang quản lý người dùng và có thể tạo người dùng mới, gán vai trò, v.v., nhưng chúng tôi không muốn cho họ quyền truy cập vào Vai trò và trang Quyền.

Hiện tại Drupal chỉ có 2 quyền Administer PermissionsAdminister users.

Với sự Administer userscho phép, người dùng có quyền truy cập vào trang Quản lý người dùng và có thể tạo người dùng mới nhưng không thể gán vai trò cho người dùng.

Nếu người dùng có Administer permissionsquyền, anh ta có thể gán vai trò cho người dùng và cũng có thể truy cập vào các trang quản lý vai trò và quyền.

Làm thế nào bạn có thể cấp cho người dùng quyền gán vai trò cho người dùng, nhưng ngăn anh ta truy cập trang quyền?

Câu trả lời:


16

Tôi có cùng một yêu cầu chính xác và tôi đã có thể sử dụng mô-đun Roles Delegation để xây dựng nó thành sự hoàn hảo :-)

Đây là kịch bản của tôi để cung cấp cho bạn nhiều bối cảnh hơn -

  1. Tôi đã có một trang web drupal với các vai trò - A, B, C, Admin, Duy trì
  2. Tôi muốn người dùng có vai trò Duy trì để có thể tạo người dùng mới và cũng chỉ định vai trò của họ trong khi thực hiện
  3. Tôi cũng muốn giới hạn người dùng Duy trì chỉ có thể gán các vai trò A, B, C cho người dùng mới chứ không phải vai trò Quản trị viên
  4. Tất cả chỉ là một vài cú nhấp chuột với mô-đun Roles Delegation

Hi vọng điêu nay co ich.


1
Sử dụng Roles Delegation Tôi dường như không thể định cấu hình ai có thể Tạo người dùng. Họ có thể chỉnh sửa chúng để gán vai trò, nhưng không tạo ra chúng. Tui bỏ lỡ điều gì vậy?
Johnathan Elmore

2

Hmmm ... Thú vị là dường như không có cách nào rõ ràng để làm điều này. Điều này có vẻ như nó có thể là một tính năng phổ biến cho mọi người. Tôi tìm thấy một vài giải pháp:

http://drupal.org/project/protect_permissions - Tuy nhiên, điều này vẫn chưa sẵn sàng để sử dụng sản xuất.

Tuy nhiên, tôi nghĩ bạn có thể thực hiện những gì bạn muốn với: http://drupal.org/project/permissions_lock

Bạn cũng sẽ cần: http://drupal.org/project/user_permissions

Cái sau dường như làm ngược lại với những gì bạn muốn nhưng trước đây dường như làm chính xác những gì bạn muốn. Tôi chưa thử nghiệm một trong hai thứ này trên trang dev của tôi để đảm bảo 100% đây là thứ sẽ làm việc cho bạn. Nếu tôi gặp bất cứ điều gì khác, tôi sẽ cập nhật câu trả lời này.


1
Tôi cũng bắt đầu suy nghĩ về cùng một dòng mà bạn đã đề xuất, nhưng sau đó tôi đã tìm thấy mô-đun Roles Delegation ( drupal.org/project/role_delegation ). Hãy kiểm tra nó cho loại yêu cầu này. Nó hoạt động rất tốt.
Sumeet Pareek

Tuyệt vời! Tôi đánh dấu cái này, tìm tốt.
Brandon Bearden

2

Vai trò phái đoàn để lại một lỗ hổng an ninh. Bạn cần chỉ định cho mọi người người dùng quản trị viên để họ có thể sử dụng trang quản trị và các công cụ mà nó có.

Nhưng nếu bạn làm như vậy, thì vai trò đó sẽ có thể chỉnh sửa ngay cả siêu nhân. Kiểm tra sự cho phép của người dùng Quản trị viên của Drupal để biết mô tả đầy đủ.

Giải pháp của tôi là ủy thác vai trò + cái móc này


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

Gần đây, chúng tôi đã sử dụng mô-đun rolign , chính xác những gì bạn yêu cầu. Về cơ bản, nó giống hệt với mô-đun nhập vai, nhưng có thể thay thế nếu bạn cần một cái gì đó hơi khác.

Một điểm khác biệt chính là cách bạn quyết định vai trò nào có sẵn để được chỉ định. Với tái phân công, bạn chỉ cần chọn những cái bạn muốn cung cấp và nó chỉ thêm một quyền mới để gán các vai trò đó: tái chỉ định

Mô-đun Role_delegation xuất hiện để cấp quyền mới cho mỗi vai trò tồn tại trên trang web: quyền mô-đun vai trò

Mô-đun Role_delegation dường như cũng có gần gấp ba số lượng cài đặt và một bản phát hành Drupal 8 được "khuyến nghị". Hàng đợi vấn đề dường như cũng ở trạng thái tốt hơn, vì vậy có lẽ nó là lựa chọn tốt hơn?

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.