Установите роли пользователей, если вы не являетесь пользователем-администратором


Возможно ли это сделать? Я не вижу никаких разрешений, которые я мог бы предоставить для ролей. Я хочу, чтобы пользователь мог создавать других пользователей, но только с определенной ролью.

 3
Author: kiamlaluno, 2011-07-21

2 answers

Смотрите модуль Делегирование ролей для этой функции.

 3
Author: , 2011-07-22 00:33:35

Я использовал эту логику, чтобы получить такую функциональность в проекте. и я надеюсь, что это будет вам полезно.

function custom_module_name_perm(){
  return array('create specific role user');
}

function custom_module_name_menu(){

  $items = array();



  $items['custom-user'] = array(

     'title' => t('User Account'),

     'page callback' => 'drupal_get_form',

     'page arguments' => array('user_register_form'),

     'access arguments' => array('create specific role user'),

 'type' => MENU_CALLBACK

  );
}

function user_register_form(){
    $form['mail'] = array(

      '#type' => 'textfield',

      '#title' => t('Email Address'),

      '#size' => 25,

      '#required' => true,

      '#weight' => 10,

    );


    $form['name'] = array(

      '#type' => 'textfield',

      '#title' => t('Username'),

      '#size' => 25,

      '#weight' => 20,

    );

    $form['pass'] = array(

      '#type' => 'password',

      '#title' => t('Password'),

      '#size' => 25,

      '#weight' => 30,

    );


}

function user_register_form_submit(&$form, $form_state){

      $values = $form_state['values'];

      $save_user = user_save('', $values);

      $load_user = user_load(array('mail' => $values['mail']));
      $rid = <your role id>;
      db_query("INSERT INTO {users_roles} (`uid`,`rid`) VALUES (%d, %d)",          $load_user->uid, $rid);

}
 1
Author: Nadeem, 2011-07-22 18:24:58