Drupal上使用代码添加新角色,并赋予角色权限

来源:互联网 发布:java wait和notify 编辑:程序博客网 时间:2024/06/06 13:13

Drupal虽然提供了界面操作用户和拥护权限,但有时候需要通过程序自动创建新角色和管理权限,下面就通过程序新增角色和管理角色权限。

Drupal上角色是保存在role表,而角色的权限则是保存在role_permission表。现在知道了保存的位置,程序上的实现就简单了。

$values = array();$config['新角色']['permission'] = array(    1 => array('node' => 'access content')  );  if(isset($role_config[$role_name])) {    $transaction = isset($transaction) ? $transaction : db_transaction();    try{      $insert = db_insert('role');//创建角色      $state = $insert->fields(array(          'name'  => $role_name,          'weight'=> 100,      ))->execute();      if($state) {        foreach($role_config[$role_name]['permission'] as $val_arr) {          foreach($val_arr as $module =>  $permission) {            $values[] = array(                'rid'       => $state,                'permission'=> $permission,                'module'    => $module            );          }        }        $insert2 = db_insert('role_permission');//勾选角色拥有的权限        $insert2->fields(array('rid', 'permission','module'));        foreach($values as $value) {          $insert2->values($value);        }        $insert2->execute();      }    }catch(Exception $e) {      $transaction->rollback();    }  }