30        $objDefinition = 
$DIC[
'objDefinition'];
 
   34        $rbacreview = 
$DIC[
'rbacreview'];
 
   36        $this->objDefinition = $objDefinition;
 
   39        $this->lng->loadLanguageModule(
"rbac");
 
   43        $this->gui_obj = $a_gui_obj;
 
   44        $this->obj = $a_gui_obj->object;
 
   45        $this->red_id = $this->obj->getRefId();
 
   49            $this->base_permissions[$p[
"ops_id"]] = $p[
"operation"];
 
   50            $this->base_permissions_by_op[$p[
"operation"]] = $p[
"ops_id"];
 
   53        $this->base_roles = $rbacreview->getParentRoleIds($this->obj->getRefId());
 
   63        $rbacreview = 
$DIC[
'rbacreview'];
 
   66        foreach ($this->base_roles as $k => 
$r) {
 
   67            $ops = $rbacreview->getActiveOperationsOfRole($this->obj->getRefId(), 
$r[
"rol_id"]);
 
   70                if (!in_array($o, $ops)) {
 
   75                if (in_array($o, $ops)) {
 
   94        if (is_array($a_val)) {
 
   95            foreach ($a_val as $p) {
 
   96                if (in_array($p, $this->base_permissions)) {
 
   97                    $this->role_required_permissions[] = $this->base_permissions_by_op[$p];
 
  120        if (is_array($a_val)) {
 
  121            foreach ($a_val as $p) {
 
  122                if (in_array($p, $this->base_permissions)) {
 
  123                    $this->role_prohibited_permissions[] = $this->base_permissions_by_op[$p];
 
  146        if (is_array($a_val)) {
 
  147            foreach ($a_val as $p) {
 
  148                if (in_array($p, $this->base_permissions)) {
 
  149                    $this->permissions[$this->base_permissions_by_op[$p]] = $p;
 
  170        $cmd = $this->ctrl->getCmd(
"showForm");
 
  171        if (in_array($cmd, array(
"showForm", 
"save"))) {
 
  182        $this->tpl->setContent(
$form->getHTML());
 
  193        $rbacreview = 
$DIC[
'rbacreview'];
 
  195        include_once(
"Services/Form/classes/class.ilPropertyFormGUI.php");
 
  200        foreach ($roles as 
$r) {
 
  201            $ops[
$r[
"rol_id"]] = $rbacreview->getActiveOperationsOfRole($this->obj->getRefId(), 
$r[
"rol_id"]);
 
  205        $perm_roles = array();
 
  206        foreach ($ops as 
$r => $o2) {
 
  207            foreach ($o2 as $o) {
 
  208                $perm_roles[$o][] = 
$r;
 
  213        include_once 
'./Services/AccessControl/classes/class.ilObjRole.php';
 
  218            foreach ($roles as $k => 
$r) {
 
  220                $cb->addOption($option);
 
  222            if (is_array($perm_roles[$this->base_permissions_by_op[$p]])) {
 
  223                $cb->setValue($perm_roles[$this->base_permissions_by_op[$p]]);
 
  228        $form->addCommandButton(
"save", $this->lng->txt(
"save"));
 
  230        $form->setTitle($this->lng->txt(
"rbac_permissions"));
 
  231        $form->setFormAction($this->ctrl->getFormAction($this));
 
  243        $rbacreview = 
$DIC[
'rbacreview'];
 
  244        $rbacadmin = 
$DIC[
'rbacadmin'];
 
  247        if (
$form->checkInput()) {
 
  250                $ops = $rbacreview->getActiveOperationsOfRole($this->obj->getRefId(), 
$r[
"rol_id"]);
 
  253                $rbacadmin->revokePermission($this->obj->getRefId(), 
$r[
"rol_id"]);
 
  257                    $roles = 
$form->getInput($p);
 
  258                    if (!is_array($roles)) {
 
  261                    $o = $this->base_permissions_by_op[$p];
 
  264                    if (in_array($o, $ops) && !in_array(
$r[
"rol_id"], $roles)) {
 
  265                        if ((
$key = array_search($o, $ops)) !== 
false) {
 
  271                    if (!in_array($o, $ops) && in_array(
$r[
"rol_id"], $roles)) {
 
  277                $rbacadmin->grantPermission(
 
  280                    $this->obj->getRefId()
 
  284            ilUtil::sendSuccess($this->lng->txt(
"msg_obj_modified"), 
true);
 
  285            $this->ctrl->redirect($this, 
"");
 
  287            $form->setValuesByPost();
 
  288            $this->tpl->setContent(
$form->getHtml());
 
An exception for terminatinating execution or to throw for unit testing.
This class represents an option in a checkbox group.
static _getTranslation($a_role_title)
static _getOperationList($a_type=null)
get operation list by object type @access public @access static
UI class for handling permissions that can be configured having the write permission for an object.
setPermissions($a_val)
Set permissions.
getRoleProhibitedPermissions()
Get role prohibited permissions.
executeCommand()
Execute command.
getRoleRequiredPermissions()
Get role required permissions.
determineRoles()
Determine roles.
setRoleRequiredPermissions($a_val)
Set role required permissions (this permissions are required for a role to be listed)
setRoleProhibitedPermissions($a_val)
Set role prohibited permissions (this permissions are prohibited for a role to be listed)
$role_required_permissions
getPermissions()
Get permissions.
initPermissionForm()
Init permission form.
__construct($a_gui_obj)
Constructor.
$role_prohibited_permissions
if(isset($_POST['submit'])) $form