예제 #1
0
 /**
  * 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;
 }