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

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();
    }
  }


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值