/** * Create role prperty form * @return * @param int $a_mode */ protected function initFormRoleProperties($a_mode) { include_once './Services/Form/classes/class.ilPropertyFormGUI.php'; $this->form = new ilPropertyFormGUI(); if ($this->creation_mode) { $this->ctrl->setParameter($this, "new_type", 'role'); } $this->form->setFormAction($this->ctrl->getFormAction($this)); switch ($a_mode) { case self::MODE_GLOBAL_CREATE: $this->form->setTitle($this->lng->txt('role_new')); $this->form->addCommandButton('save', $this->lng->txt('role_new')); break; case self::MODE_GLOBAL_UPDATE: $this->form->setTitle($this->lng->txt('role_edit')); $this->form->addCommandButton('update', $this->lng->txt('save')); break; case self::MODE_LOCAL_CREATE: case self::MODE_LOCAL_UPDATE: } // Fix cancel $this->form->addCommandButton('cancel', $this->lng->txt('cancel')); $title = new ilTextInputGUI($this->lng->txt('title'), 'title'); if (ilObjRole::isAutoGenerated($this->object->getId())) { $title->setDisabled(true); } $title->setValidationRegexp('/^(?!il_).*$/'); $title->setValidationFailureMessage($this->lng->txt('msg_role_reserved_prefix')); $title->setSize(40); $title->setMaxLength(70); $title->setRequired(true); $this->form->addItem($title); $desc = new ilTextAreaInputGUI($this->lng->txt('description'), 'desc'); if (ilObjRole::isAutoGenerated($this->object->getId())) { $desc->setDisabled(true); } $desc->setCols(40); $desc->setRows(3); $this->form->addItem($desc); if ($this->rolf_ref_id == ROLE_FOLDER_ID) { $reg = new ilCheckboxInputGUI($this->lng->txt('allow_register'), 'reg'); $reg->setValue(1); #$reg->setInfo($this->lng->txt('rbac_new_acc_reg_info')); $this->form->addItem($reg); $la = new ilCheckboxInputGUI($this->lng->txt('allow_assign_users'), 'la'); $la->setValue(1); #$la->setInfo($this->lng->txt('rbac_local_admin_info')); $this->form->addItem($la); } $pro = new ilCheckboxInputGUI($this->lng->txt('role_protect_permissions'), 'pro'); $pro->setValue(1); #$pro->setInfo($this->lng->txt('role_protext_permission_info')); $this->form->addItem($pro); include_once 'Services/WebDAV/classes/class.ilDiskQuotaActivationChecker.php'; if (ilDiskQuotaActivationChecker::_isActive()) { $quo = new ilNumberInputGUI($this->lng->txt('disk_quota'), 'disk_quota'); $quo->setMinValue(0); $quo->setSize(4); $quo->setInfo($this->lng->txt('enter_in_mb_desc') . '<br />' . $this->lng->txt('disk_quota_on_role_desc')); $this->form->addItem($quo); } if (ilDiskQuotaActivationChecker::_isPersonalWorkspaceActive()) { $this->lng->loadLanguageModule("file"); $wquo = new ilNumberInputGUI($this->lng->txt('personal_workspace_disk_quota'), 'wsp_disk_quota'); $wquo->setMinValue(0); $wquo->setSize(4); $wquo->setInfo($this->lng->txt('enter_in_mb_desc') . '<br />' . $this->lng->txt('disk_quota_on_role_desc')); $this->form->addItem($wquo); } return true; }
/** * Shoew add role * @global type $rbacreview * @global type $objDefinition * @return ilPropertyFormGUI */ protected function initRoleForm() { global $rbacreview, $objDefinition; include_once './Services/Form/classes/class.ilPropertyFormGUI.php'; $form = new ilPropertyFormGUI(); $form->setFormAction($this->ctrl->getFormAction($this)); $form->setTitle($this->lng->txt('role_new')); $form->addCommandButton('addrole', $this->lng->txt('role_new')); $form->addCommandButton('perm', $this->lng->txt('cancel')); $title = new ilTextInputGUI($this->lng->txt('title'), 'title'); $title->setValidationRegexp('/^(?!il_).*$/'); $title->setValidationFailureMessage($this->lng->txt('msg_role_reserved_prefix')); $title->setSize(40); $title->setMaxLength(70); $title->setRequired(true); $form->addItem($title); $desc = new ilTextAreaInputGUI($this->lng->txt('description'), 'desc'); $desc->setCols(40); $desc->setRows(3); $form->addItem($desc); $pro = new ilCheckboxInputGUI($this->lng->txt('role_protect_permissions'), 'pro'); $pro->setInfo($this->lng->txt('role_protect_permissions_desc')); $pro->setValue(1); $form->addItem($pro); $pd = new ilCheckboxInputGUI($this->lng->txt('rbac_role_add_to_desktop'), 'desktop'); $pd->setInfo($this->lng->txt('rbac_role_add_to_desktop_info')); $pd->setValue(1); $form->addItem($pd); if (!$this->isInAdministration()) { $rights = new ilRadioGroupInputGUI($this->lng->txt("rbac_role_rights_copy"), 'rights'); $option = new ilRadioOption($this->lng->txt("rbac_role_rights_copy_empty"), 0); $rights->addOption($option); $parent_role_ids = $rbacreview->getParentRoleIds($this->gui_obj->object->getRefId(), true); $ids = array(); foreach ($parent_role_ids as $id => $tmp) { $ids[] = $id; } // Sort ids $sorted_ids = ilUtil::_sortIds($ids, 'object_data', 'type DESC,title', 'obj_id'); // Sort roles by title $sorted_roles = ilUtil::sortArray(array_values($parent_role_ids), 'title', ASC); $key = 0; foreach ($sorted_ids as $id) { $par = $parent_role_ids[$id]; if ($par["obj_id"] != SYSTEM_ROLE_ID) { include_once './Services/AccessControl/classes/class.ilObjRole.php'; $option = new ilRadioOption(($par["type"] == 'role' ? $this->lng->txt('obj_role') : $this->lng->txt('obj_rolt')) . ": " . ilObjRole::_getTranslation($par["title"]), $par["obj_id"]); $option->setInfo($par["desc"]); $rights->addOption($option); } $key++; } $form->addItem($rights); } // Local policy only for containers if ($objDefinition->isContainer($this->getCurrentObject()->getType())) { $check = new ilCheckboxInputGui($this->lng->txt("rbac_role_rights_copy_change_existing"), 'existing'); $check->setInfo($this->lng->txt('rbac_change_existing_objects_desc_new_role')); $form->addItem($check); } return $form; }