hạn chế người dùng từ vai trò nhất định để thay đổi email của họ


10

Có cách nào tôi có thể hạn chế người dùng từ vai trò nhất định để thay đổi địa chỉ email của họ. Khi chúng được đăng ký, tôi cần chúng để có thể thay đổi nó trong trang cài đặt chỉnh sửa. Tôi tìm thấy cách hạn chế thay đổi tên người dùng nhưng không phải email.

Tôi đang sử dụng Drupal 7. Cảm ơn nâng cao :)

Câu trả lời:


8

Một cách khác là lập trình trong mô-đun tùy chỉnh của bạn

function mymodule_form_alter(&$form,$form_state,$form_id) {
   global $user;
    if ($form_id == "user_profile_form") {
       if(in_array('your role',$user->roles) && isset($form['account'])) {
           $form['account']['mail']['#disabled']=TRUE;
          }
      }
 }

5

Sử dụng mô-đun bảo vệ người dùng :

Mô-đun này cho phép kiểm soát truy cập chi tiết của quản trị viên người dùng, bằng cách cung cấp bảo vệ chỉnh sửa khác nhau cho người dùng. Các biện pháp bảo vệ có thể dành riêng cho người dùng hoặc áp dụng cho tất cả người dùng trong vai trò.


Tôi đã tải xuống mô-đun này nhưng nó không làm những gì được yêu cầu - không thể ngăn người dùng thay đổi mật khẩu của riêng họ. Thay vào đó, nó ngăn vai trò quản trị viên thay đổi mật khẩu người dùng KHÁC.
littledopero

3

zhilevan - cảm ơn vì mã tốt để giúp tôi bắt đầu giải quyết vấn đề này một cách nhanh chóng. Tôi có một trang web có đăng nhập "khách hàng" vai trò người dùng chung để khách hàng có thể tải lên và tải xuống tệp. Tài khoản người dùng sẽ được chia sẻ giữa nhiều khách hàng tiềm năng để tải lên hoặc tải xuống "một lần" và chúng tôi không muốn họ thay đổi tên người dùng, mật khẩu hoặc bất kỳ nội dung nào khác cho tài khoản chung này. Tôi chắc chắn có nhiều cách thanh lịch hơn để làm điều này nhưng đây là mã của tôi để "tắt tùy chọn chỉnh sửa" dựa trên vai trò người dùng. (Tôi đã thử mô-đun bảo vệ người dùng, nhưng không thể làm cho nó hoạt động được). Đây là mã của tôi trong trường hợp bất cứ ai khác thấy nó hữu ích.

function mymodule_form_alter(&$form,$form_state,$form_id) {
   global $user;
    if ($form_id == "user_profile_form") {
       if(in_array('Client',$user->roles) && isset($form['account'])) {

           $form['account']['name']['#disabled']=TRUE;
           $form['account']['current_pass']['#disabled']=TRUE;
           $form['account']['current_pass']['#description']='';
           $form['account']['mail']['#disabled']=TRUE;

           unset($form['picture']);
           unset($form['overlay_control']);
          }
      }
 }

:). chào mừng bạn
Yusef
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.