/** * 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)); } }