示例#1
0
 /**
  * Adds new action to group.
  *
  * @param string $groupName
  * @param string $actionName
  * @param boolean $availableForGuest
  */
 public function addAction($groupName, $actionName, $availableForGuest = false)
 {
     $group = $this->service->findGroupByName($groupName);
     if ($group === null) {
         trigger_error('Cant add action `' . $actionName . '`! Empty group `' . $groupName . '`!');
         return;
     }
     if ($this->service->findAction($groupName, $actionName) !== null) {
         trigger_error('Cant add action `' . $actionName . '` to group `' . $groupName . '`! Duplicate entry!');
         return;
     }
     $action = new BOL_AuthorizationAction();
     $action->groupId = $group->id;
     $action->name = $actionName;
     $action->availableForGuest = $availableForGuest;
     $this->service->saveAction($action);
     $roles = $this->service->getRoleList();
     foreach ($roles as $role) {
         $this->service->grantActionListToRole($role, array($action));
     }
 }