4 include_once
"./Services/Object/classes/class.ilObjectGUI.php";
5 include_once
'./Services/AccessControl/classes/class.ilObjRole.php';
46 function __construct($a_data,$a_id,$a_call_by_reference =
false,$a_prepare_output =
true)
50 $lng->loadLanguageModule(
'rbac');
53 define(
"USER_FOLDER_ID",7);
69 $this->
ilObjectGUI($a_data,$a_id,$a_call_by_reference,
false);
70 $this->ctrl->saveParameter($this, array(
'obj_id',
'rolf_ref_id'));
80 $next_class = $this->ctrl->getNextClass($this);
81 $cmd = $this->ctrl->getCmd();
85 case 'ilrepositorysearchgui':
91 include_once(
'./Services/Search/classes/class.ilRepositorySearchGUI.php');
93 $rep_search->setTitle($this->lng->txt(
'role_add_user'));
94 $rep_search->setCallback($this,
'addUserObject');
97 $this->tabs_gui->setTabActive(
'user_assignment');
98 $this->ctrl->setReturn($this,
'userassignment');
99 $ret =& $this->ctrl->forwardCommand($rep_search);
104 $this->tabs_gui->setTabActive(
'export');
106 include_once
'./Services/Export/classes/class.ilExportOptions.php';
110 include_once
'./Services/Export/classes/class.ilExportGUI.php';
112 $exp->addFormat(
'xml');
113 $this->ctrl->forwardCommand($exp);
125 $cmd =
'userassignment';
169 $this->back_target = array(
"text" => $a_text,
175 return $this->back_target ? $this->back_target : array();
209 global $rbacsystem,$rbacreview;
212 $this->obj_ref_id != ROLE_FOLDER_ID)
220 $this->
__showButton(
'selectDesktopItem',$this->lng->txt(
'role_desk_add'));
223 include_once
'Services/AccessControl/classes/class.ilRoleDesktopItemsTableGUI.php';
225 $this->tpl->setContent(
$tbl->getHTML());
237 $this->
ilias->raiseError($this->lng->txt(
"permission_denied"),$this->
ilias->error_obj->MESSAGE);
239 if(!$rbacsystem->checkAccess(
'push_desktop_items',
USER_FOLDER_ID))
241 $this->
ilias->raiseError($this->lng->txt(
"permission_denied"),$this->
ilias->error_obj->MESSAGE);
243 if(!count(
$_POST[
'del_desk_item']))
252 include_once(
"./Services/Utilities/classes/class.ilConfirmationGUI.php");
254 $confirmation_gui->setFormAction($this->ctrl->getFormAction($this));
255 $confirmation_gui->setHeaderText($this->lng->txt(
'role_assigned_desk_items').
256 ' "'.$this->object->getTitle().
'": '.
257 $this->lng->txt(
'role_sure_delete_desk_items'));
258 $confirmation_gui->setCancel($this->lng->txt(
"cancel"),
"listDesktopItems");
259 $confirmation_gui->setConfirm($this->lng->txt(
"delete"),
"deleteDesktopItems");
261 include_once
'Services/AccessControl/classes/class.ilRoleDesktopItem.php';
264 foreach(
$_POST[
'del_desk_item'] as $role_item_id)
266 $item_data = $role_desk_item_obj->
getItem($role_item_id);
269 if(strlen($desc = $tmp_obj->getDescription()))
271 $desc =
'<div class="il_Description_no_margin">'.$desc.
'</div>';
274 $confirmation_gui->addItem(
"del_desk_item[]", $role_item_id, $tmp_obj->getTitle().$desc);
277 $this->tpl->setContent($confirmation_gui->getHTML());
288 $this->
ilias->raiseError($this->lng->txt(
"permission_denied"),$this->
ilias->error_obj->MESSAGE);
291 if (!$rbacsystem->checkAccess(
'push_desktop_items',
USER_FOLDER_ID))
293 $this->
ilias->raiseError($this->lng->txt(
"permission_denied"),$this->
ilias->error_obj->MESSAGE);
296 if (!count(
$_POST[
'del_desk_item']))
305 include_once
'Services/AccessControl/classes/class.ilRoleDesktopItem.php';
309 foreach (
$_POST[
'del_desk_item'] as $role_item_id)
311 $role_desk_item_obj->
delete($role_item_id);
323 global $rbacsystem,
$tree;
325 include_once
'Services/AccessControl/classes/class.ilRoleDesktopItemSelector.php';
326 include_once
'Services/AccessControl/classes/class.ilRoleDesktopItem.php';
328 if(!$rbacsystem->checkAccess(
'push_desktop_items',
USER_FOLDER_ID))
330 #$this->ilias->raiseError($this->lng->txt("permission_denied"),$this->ilias->error_obj->MESSAGE); 336 $this->tpl->addBlockFile(
"ADM_CONTENT",
"adm_content",
"tpl.role_desktop_item_selector.html",
"Services/AccessControl");
337 $this->
__showButton(
'listDesktopItems',$this->lng->txt(
'back'));
343 $exp->setExpand(
$_GET[
"role_desk_item_link_expand"] ?
$_GET[
"role_desk_item_link_expand"] : $tree->readRootId());
344 $exp->setExpandTarget($this->ctrl->getLinkTarget($this,
'selectDesktopItem'));
348 $output = $exp->getOutput();
349 $this->tpl->setVariable(
"EXPLORER",$output);
359 if (!$rbacsystem->checkAccess(
'push_desktop_items',
USER_FOLDER_ID))
361 $this->
ilias->raiseError($this->lng->txt(
"permission_denied"),$this->
ilias->error_obj->MESSAGE);
366 if (!isset(
$_GET[
'item_id']))
374 include_once
'Services/AccessControl/classes/class.ilRoleDesktopItem.php';
381 $this->ctrl->redirect($this,
'listDesktopItems');
392 include_once
'./Services/Form/classes/class.ilPropertyFormGUI.php';
395 if($this->creation_mode)
397 $this->ctrl->setParameter($this,
"new_type",
'role');
399 $this->form->setFormAction($this->ctrl->getFormAction($this));
403 case self::MODE_GLOBAL_CREATE:
404 $this->form->setTitle($this->lng->txt(
'role_new'));
405 $this->form->addCommandButton(
'save',$this->lng->txt(
'role_new'));
408 case self::MODE_GLOBAL_UPDATE:
409 $this->form->setTitle($this->lng->txt(
'role_edit'));
410 $this->form->addCommandButton(
'update', $this->lng->txt(
'save'));
413 case self::MODE_LOCAL_CREATE:
414 case self::MODE_LOCAL_UPDATE:
417 $this->form->addCommandButton(
'cancel', $this->lng->txt(
'cancel'));
427 $title->setValidationRegexp(
'/^(?!il_).*$/');
428 $title->setValidationFailureMessage($this->lng->txt(
'msg_role_reserved_prefix'));
432 $title->setMaxLength(70);
433 $title->setRequired(
true);
434 $this->form->addItem($title);
443 $this->form->addItem($desc);
445 if($a_mode != self::MODE_LOCAL_CREATE && $a_mode != self::MODE_GLOBAL_CREATE)
448 $this->form->addItem($ilias_id);
451 if($this->obj_ref_id == ROLE_FOLDER_ID)
455 #$reg->setInfo($this->lng->txt('rbac_new_acc_reg_info')); 456 $this->form->addItem($reg);
460 #$la->setInfo($this->lng->txt('rbac_local_admin_info')); 461 $this->form->addItem($la);
466 #$pro->setInfo($this->lng->txt('role_protext_permission_info')); 467 $this->form->addItem($pro);
469 include_once
'Services/WebDAV/classes/class.ilDiskQuotaActivationChecker.php';
475 $quo->setInfo($this->lng->txt(
'enter_in_mb_desc').
'<br />'.$this->lng->txt(
'disk_quota_on_role_desc'));
476 $this->form->addItem($quo);
480 $this->lng->loadLanguageModule(
"file");
481 $wquo =
new ilNumberInputGUI($this->lng->txt(
'personal_workspace_disk_quota'),
'wsp_disk_quota');
484 $wquo->setInfo($this->lng->txt(
'enter_in_mb_desc').
'<br />'.$this->lng->txt(
'disk_quota_on_role_desc'));
485 $this->form->addItem($wquo);
499 if(!$this->form->getItemByPostVar(
'title')->getDisabled())
501 $role->
setTitle($this->form->getInput(
'title'));
504 if(!$this->form->getItemByPostVar(
'desc')->getDisabled())
524 include_once
'Services/WebDAV/classes/class.ilDiskQuotaActivationChecker.php';
539 $data[
'pro'] = $rbacreview->isProtected($this->obj_ref_id, $role->
getId());
541 $this->form->setValuesByArray(
$data);
556 if(!$rbacsystem->checkAccess(
'create_role',$this->obj_ref_id))
558 $ilErr->raiseError($this->lng->txt(
'permission_denied'),
$ilErr->MESSAGE);
562 $this->tpl->setContent($this->form->getHTML());
575 $ilErr->raiseError($this->lng->txt(
"msg_no_perm_write"),$ilErr->MESSAGE);
579 if($this->object->getId() != SYSTEM_ROLE_ID)
581 $ilToolbar->setFormAction($this->ctrl->getFormAction($this));
584 $ilToolbar->addButton(
585 $this->lng->txt(
'rbac_delete_role'),
586 $this->ctrl->getLinkTarget($this,
'confirmDeleteRole')
593 $this->tpl->setContent($this->form->getHTML());
603 global $rbacadmin,$rbacreview;
608 include_once
'./Services/AccessControl/classes/class.ilObjRole.php';
610 $this->role->create();
612 $rbacadmin->setProtected(
614 $this->role->getId(),
615 $this->form->getInput(
'pro') ?
'y' :
'n' 618 $this->ctrl->setParameter($this,
'obj_id',$this->role->getId());
619 $this->ctrl->redirect($this,
'perm');
623 $this->form->setValuesByPost();
624 $this->tpl->setContent($this->form->getHTML());
647 if($this->form->checkInput() and !$this->
checkDuplicate($this->object->getId()))
649 include_once
'./Services/AccessControl/classes/class.ilObjRole.php';
651 $this->
object->update();
652 $rbacadmin->setProtected(
654 $this->object->getId(),
655 $this->form->getInput(
'pro') ?
'y' :
'n' 658 $this->ctrl->redirect($this,
'edit');
662 $this->form->setValuesByPost();
663 $this->tpl->setContent($this->form->getHTML());
671 protected function permObject($a_show_admin_permissions =
false)
675 $ilTabs->setTabActive(
'default_perm_settings');
679 if($a_show_admin_permissions)
681 $ilTabs->setSubTabActive(
'rbac_admin_permissions');
685 $ilTabs->setSubTabActive(
'rbac_repository_permissions');
690 $ilErr->raiseError($this->lng->txt(
'msg_no_perm_perm'),$ilErr->MESSAGE);
695 if($this->object->getId() != SYSTEM_ROLE_ID)
697 $ilToolbar->setFormAction($this->ctrl->getFormAction($this));
698 $ilToolbar->addButton(
699 $this->lng->txt(
"adopt_perm_from_template"),
700 $this->ctrl->getLinkTarget($this,
'adoptPerm')
704 $ilToolbar->addButton(
705 $this->lng->txt(
'rbac_delete_role'),
706 $this->ctrl->getLinkTarget($this,
'confirmDeleteRole')
711 $this->tpl->addBlockFile(
714 'tpl.rbac_template_permissions.html',
715 'Services/AccessControl' 718 $this->tpl->setVariable(
'PERM_ACTION',$this->ctrl->getFormAction($this));
720 include_once
'./Services/Accordion/classes/class.ilAccordionGUI.php';
725 if($this->obj_ref_id == ROLE_FOLDER_ID)
727 if($a_show_admin_permissions)
729 $subs = $objDefinition->getSubObjectsRecursively(
'adm',
true,
true);
733 $subs = $objDefinition->getSubObjectsRecursively(
'root',
true,$a_show_admin_permissions);
738 $subs = $objDefinition->getSubObjectsRecursively($this->
getParentType(),
true,$a_show_admin_permissions);
742 foreach($subs as $subtype => $def)
744 if($objDefinition->isPlugin($subtype))
748 elseif($objDefinition->isSystemObject($subtype))
750 $translation = $this->lng->txt(
"obj_".$subtype);
754 $translation = $this->lng->txt(
'objs_'.$subtype);
757 $sorted[$subtype] = $def;
758 $sorted[$subtype][
'translation'] = $translation;
763 foreach($sorted as $subtype => $def)
765 if($objDefinition->isPlugin($subtype))
769 elseif($objDefinition->isSystemObject($subtype))
771 $translation = $this->lng->txt(
"obj_".$subtype);
775 $translation = $this->lng->txt(
'objs_'.$subtype);
778 include_once
'Services/AccessControl/classes/class.ilObjectRoleTemplatePermissionTableGUI.php';
783 $this->object->getId(),
785 $a_show_admin_permissions
789 $acc->addItem($translation,
$tbl->getHTML());
792 $this->tpl->setVariable(
'ACCORDION',$acc->getHTML());
795 include_once
'./Services/AccessControl/classes/class.ilObjectRoleTemplateOptionsTableGUI.php';
800 $this->object->getId(),
801 $a_show_admin_permissions
803 if($this->object->getId() != SYSTEM_ROLE_ID)
806 $a_show_admin_permissions ?
'adminPermSave' :
'permSave',
807 $this->lng->txt(
'save')
812 $this->tpl->setVariable(
'OPTIONS_TABLE',
$options->getHTML());
839 $parent_role_ids = $rbacreview->getParentRoleIds($this->obj_ref_id,
true);
841 foreach($parent_role_ids as $id => $tmp)
848 foreach($sorted_ids as $id)
850 $par = $parent_role_ids[$id];
851 if ($par[
"obj_id"] != SYSTEM_ROLE_ID && $this->object->getId() != $par[
"obj_id"])
853 $output[$key][
"role_id"] = $par[
"obj_id"];
854 $output[$key][
"type"] = ($par[
"type"] ==
'role' ? $this->lng->txt(
'obj_role') : $this->lng->txt(
'obj_rolt'));
856 $output[$key][
"role_desc"] = $par[
"desc"];
862 include_once(
'./Services/AccessControl/classes/class.ilRoleAdoptPermissionTableGUI.php');
865 $tbl->setTitle($this->lng->txt(
"adopt_perm_from_template"));
866 $tbl->setData($output);
868 $this->tpl->setContent(
$tbl->getHTML());
879 $access = $this->
checkAccess(
'visible,write',
'edit_permission');
882 $ilErr->raiseError($this->lng->txt(
'msg_no_perm_perm'),$ilErr->WARNING);
885 $question = $this->lng->txt(
'rbac_role_delete_qst');
886 if($rbacreview->isAssigned($ilUser->getId(), $this->
object->getId()))
888 $question .= (
'<br />'.$this->lng->txt(
'rbac_role_delete_self'));
892 include_once
'./Services/Utilities/classes/class.ilConfirmationGUI.php';
895 $confirm->setFormAction($this->ctrl->getFormAction($this));
896 $confirm->setHeaderText($question);
897 $confirm->setCancel($this->lng->txt(
'cancel'),
'perm');
898 $confirm->setConfirm($this->lng->txt(
'rbac_delete_role'),
'performDeleteRole');
902 $this->object->getId(),
903 $this->
object->getTitle(),
907 $this->tpl->setContent($confirm->getHTML());
920 $access = $this->
checkAccess(
'visible,write',
'edit_permission');
923 $ilErr->raiseError($this->lng->txt(
'msg_no_perm_perm'),$ilErr->WARNING);
926 $this->
object->setParent((
int) $this->obj_ref_id);
927 $this->
object->delete();
930 $this->ctrl->returnToParent($this);
943 $access = $this->
checkAccess(
'visible,write',
'edit_permission');
947 $this->
ilias->raiseError($this->lng->txt(
"msg_no_perm_perm"),$this->
ilias->error_obj->MESSAGE);
951 include_once
"Services/AccessControl/classes/class.ilRbacLog.php";
959 if($this->obj_ref_id == ROLE_FOLDER_ID)
961 if($a_show_admin_permissions)
963 $subs = $objDefinition->getSubObjectsRecursively(
'adm',
true,
true);
967 $subs = $objDefinition->getSubObjectsRecursively(
'root',
true,
false);
972 $subs = $objDefinition->getSubObjectsRecursively($this->
getParentType(),
true,
false);
975 foreach($subs as $subtype => $def)
978 $rbacadmin->deleteRolePermission($this->object->getId(),
$this->obj_ref_id,$subtype);
981 if (empty(
$_POST[
"template_perm"]))
983 $_POST[
"template_perm"] = array();
986 foreach (
$_POST[
"template_perm"] as $key => $ops_array)
989 $rbacadmin->setRolePermission($this->object->getId(), $key, $ops_array,
$this->obj_ref_id);
1000 $this->
object->update();
1003 if ($this->obj_ref_id == ROLE_FOLDER_ID or $rbacreview->isAssignable($this->object->getId(),
$this->obj_ref_id))
1005 $rbacadmin->setProtected($this->obj_ref_id,$this->object->getId(),
ilUtil::tf2yn(
$_POST[
'protected']));
1008 if($a_show_admin_permissions)
1010 $_POST[
'recursive'] =
true;
1014 if(!
$_POST[
'recursive'] and !is_array(
$_POST[
'recursive_list']))
1017 if($a_show_admin_permissions)
1019 $this->ctrl->redirect($this,
'adminPerm');
1023 $this->ctrl->redirect($this,
'perm');
1033 $start = ($this->obj_ref_id == ROLE_FOLDER_ID ? ROOT_FOLDER_ID :
$this->obj_ref_id);
1034 if($a_show_admin_permissions)
1036 $start = $tree->getParentId($this->obj_ref_id);
1041 $this->
object->changeExistingObjects(
1046 #$a_show_admin_permissions ? array(
'adm') : array()
1051 $this->
object->changeExistingObjects(
1056 #$a_show_admin_permissions ? array(
'adm') : array()
1061 if($a_show_admin_permissions)
1063 $this->ctrl->redirect($this,
'adminPerm');
1067 $this->ctrl->redirect($this,
'perm');
1080 global $rbacadmin, $rbacsystem, $rbacreview,
$tree;
1089 $access = $this->
checkAccess(
'visible,write',
'edit_permission');
1092 $this->
ilias->raiseError($this->lng->txt(
"msg_no_perm_perm"),$this->
ilias->error_obj->MESSAGE);
1095 if ($this->object->getId() ==
$_POST[
"adopt"])
1102 $parentRoles = $rbacreview->getParentRoleIds($this->obj_ref_id,
true);
1103 $rbacadmin->copyRoleTemplatePermissions(
1105 $parentRoles[
$_POST[
"adopt"]][
"parent"],
1107 $this->object->getId(),
1111 $this->
object->update();
1114 $obj_data =& $this->
ilias->obj_factory->getInstanceByObjId($_POST[
"adopt"]);
1115 ilUtil::sendSuccess($this->lng->txt(
"msg_perm_adopted_from1").
" '".$obj_data->getTitle().
"'.<br/>".
1116 $this->lng->txt(
"msg_perm_adopted_from2"),
true);
1119 $this->ctrl->redirect($this,
"perm");
1129 $this->assignUserObject();
1141 global $rbacreview,$rbacadmin;
1143 if(!$this->
checkAccess(
'edit_userassignment',
'edit_permission'))
1149 $this->obj_ref_id != ROLE_FOLDER_ID)
1156 $GLOBALS[
'lng']->loadLanguageModule(
'search');
1161 $assigned_users_all = $rbacreview->assignedUsers($this->object->getId());
1164 $assigned_users_new = array_diff($a_user_ids,array_intersect($a_user_ids,$assigned_users_all));
1167 if (count($assigned_users_new) == 0)
1170 $this->ctrl->redirect($this,
'userassignment');
1174 foreach ($assigned_users_new as $user)
1176 $rbacadmin->assignUser($this->object->getId(),$user,
false);
1180 $this->
object->update();
1183 $this->ctrl->redirect($this,
'userassignment');
1193 global $rbacsystem, $rbacadmin, $rbacreview;
1195 if(!$this->
checkAccess(
'edit_userassignment',
'edit_permission'))
1197 $this->
ilias->raiseError($this->lng->txt(
"msg_no_perm_assign_user_to_role"),$this->
ilias->error_obj->MESSAGE);
1200 $selected_users = (
$_POST[
"user_id"]) ?
$_POST[
"user_id"] : array(
$_GET[
"user_id"]);
1202 if ($selected_users[0]=== NULL)
1204 $this->
ilias->raiseError($this->lng->txt(
"no_checkbox"),$this->
ilias->error_obj->MESSAGE);
1208 if ($this->object->getId() == SYSTEM_ROLE_ID)
1210 if ($admin = array_search(SYSTEM_USER_ID,$selected_users) !==
false)
1211 unset($selected_users[$admin]);
1215 $last_role = array();
1216 $global_roles = $rbacreview->getGlobalRoles();
1218 foreach ($selected_users as $user)
1220 $assigned_roles = $rbacreview->assignedRoles($user);
1221 $assigned_global_roles = array_intersect($assigned_roles,$global_roles);
1223 if (count($assigned_roles) == 1 or (count($assigned_global_roles) == 1 and in_array($this->object->getId(),$assigned_global_roles)))
1225 $userObj = $this->
ilias->obj_factory->getInstanceByObjId($user);
1226 $last_role[$user] = $userObj->getFullName();
1233 foreach ($selected_users as $user)
1235 if(!isset($last_role[$user]))
1237 $rbacadmin->deassignUser($this->object->getId(), $user);
1242 $this->
object->update();
1245 if(count($last_role))
1247 $user_list = implode(
", ",$last_role);
1248 ilUtil::sendFailure($this->lng->txt(
'msg_is_last_role').
': '.$user_list.
'<br />'.$this->lng->txt(
'msg_min_one_role'),
true);
1254 $this->ctrl->redirect($this,
'userassignment');
1265 if(!$this->
checkAccess(
'edit_userassignment',
'edit_permission'))
1267 $this->
ilias->raiseError($this->lng->txt(
"msg_no_perm_assign_user_to_role"),$this->
ilias->error_obj->MESSAGE);
1270 $this->tabs_gui->setTabActive(
'user_assignment');
1272 $this->tpl->addBlockFile(
'ADM_CONTENT',
'adm_content',
'tpl.rbac_ua.html',
'Services/AccessControl');
1274 include_once
'./Services/UIComponent/Toolbar/classes/class.ilToolbarGUI.php';
1278 include_once
'./Services/PrivacySecurity/classes/class.ilSecuritySettings.php';
1280 $this->object->getId() != SYSTEM_ROLE_ID ||
1282 !$rbacreview->isAssigned($ilUser->getId(),SYSTEM_ROLE_ID) or
1290 include_once
'./Services/Search/classes/class.ilRepositorySearchGUI.php';
1295 'auto_complete_name' => $lng->txt(
'user'),
1296 'submit_name' => $lng->txt(
'add')
1307 $this->lng->txt(
'search_user'),
1308 $this->ctrl->getLinkTargetByClass(
'ilRepositorySearchGUI',
'start')
1314 $this->lng->txt(
'role_mailto'),
1315 $this->ctrl->getLinkTarget($this,
'mailToRole')
1317 $this->tpl->setVariable(
'BUTTONS_UA',$tb->getHTML());
1320 include_once
'./Services/PrivacySecurity/classes/class.ilSecuritySettings.php';
1321 $role_assignment_editable =
true;
1323 $this->object->getId() == SYSTEM_ROLE_ID &&
1326 $role_assignment_editable =
false;
1329 include_once
'./Services/AccessControl/classes/class.ilAssignedUsersTableGUI.php';
1332 $this->tpl->setVariable(
'TABLE_UA',$ut->getHTML());
1345 if (
$_GET[
"new_type"] !=
"role")
1347 $this->ctrl->redirect($this,
"userassignment");
1351 $this->ctrl->redirectByClass(
"ilobjrolefoldergui",
"view");
1358 global $rbacsystem,$rbacreview;
1362 if (!is_array(
$_POST[
"role"]))
1365 $this->searchObject();
1370 $this->tpl->addBlockFile(
"ADM_CONTENT",
"adm_content",
"tpl.role_usr_selection.html",
"Services/AccessControl");
1371 $this->
__showButton(
"searchUserForm",$this->lng->txt(
"role_new_search"));
1376 foreach (
$_POST[
"role"] as $role_id)
1378 $members = array_merge($rbacreview->assignedUsers($role_id),$members);
1381 $members = array_unique($members);
1385 $f_result = array();
1387 foreach($members as $user)
1394 $user_ids[$counter] = $user;
1398 $f_result[$counter][] = $tmp_obj->getLogin();
1399 $f_result[$counter][] = $tmp_obj->getFirstname();
1400 $f_result[$counter][] = $tmp_obj->getLastname();
1406 $this->__showSearchUserTable($f_result,$user_ids,
"listUsersRole");
1414 $this->tpl->addBlockFile(
"CONTENT",
"content",
"tpl.adm_content.html");
1415 $this->tpl->addBlockFile(
"STATUSLINE",
"statusline",
"tpl.statusline.html");
1435 $this->tpl->setTitle($this->lng->txt(
'role'));
1436 $this->tpl->setDescription($this->object->getTitle());
1439 $this->
getTabs($this->tabs_gui);
1448 $this->tpl->addBlockFile(
"LOCATOR",
"locator",
"tpl.locator.html",
"Services/Locator");
1452 foreach ($tree->getPathFull($this->obj_ref_id) as $key =>
$row)
1456 $this->tpl->touchBlock(
'locator_separator_prefix');
1459 $this->tpl->setCurrentBlock(
"locator_item");
1461 if (
$row[
"type"] ==
'rolf')
1463 $this->tpl->setVariable(
"ITEM",$this->object->getTitle());
1464 $this->tpl->setVariable(
"LINK_ITEM",$this->ctrl->getLinkTarget($this));
1466 elseif (
$row[
"child"] != $tree->getRootId())
1468 $ilCtrl->setParameterByClass(
"ilrepositorygui",
"ref_id",
$row[
"child"]);
1469 $this->tpl->setVariable(
"ITEM",
$row[
"title"]);
1470 $this->tpl->setVariable(
"LINK_ITEM",
1471 $ilCtrl->getLinkTargetByClass(
"ilrepositorygui",
""));
1475 $ilCtrl->setParameterByClass(
"ilrepositorygui",
"ref_id",
$row[
"child"]);
1476 $this->tpl->setVariable(
"ITEM", $this->lng->txt(
"repository"));
1477 $this->tpl->setVariable(
"LINK_ITEM",
1478 $ilCtrl->getLinkTargetByClass(
"ilrepositorygui",
""));
1480 $ilCtrl->setParameterByClass(
"ilrepositorygui",
"ref_id",
$_GET[
"ref_id"]);
1482 $this->tpl->parseCurrentBlock();
1485 $this->tpl->setVariable(
"TXT_LOCATOR",$this->lng->txt(
"locator"));
1486 $this->tpl->parseCurrentBlock();
1497 if (
$_GET[
"admin_mode"] ==
"settings" 1498 &&
$_GET[
"ref_id"] == ROLE_FOLDER_ID)
1500 parent::addAdminLocatorItems(
true);
1502 $ilLocator->addItem($this->lng->txt(
"obj_".ilObject::_lookupType(
1504 $this->ctrl->getLinkTargetByClass(
"ilobjrolefoldergui",
"view"));
1506 if (
$_GET[
"obj_id"] > 0)
1508 $ilLocator->addItem($this->object->getTitle(),
1509 $this->ctrl->getLinkTarget($this,
"view"));
1523 global $rbacsystem,$rbacreview, $ilHelp;
1525 $base_role_container = $rbacreview->getFoldersAssignedToRole($this->object->getId(),
true);
1528 $activate_role_edit =
false;
1532 if (in_array($this->obj_ref_id,$base_role_container) ||
1533 (strtolower(
$_GET[
"baseClass"]) ==
"iladministrationgui" &&
1534 $_GET[
"admin_mode"] ==
"settings"))
1536 $activate_role_edit =
true;
1540 $tabs_gui->clearTargets();
1542 $ilHelp->setScreenIdComponent(
"role");
1544 if ($this->back_target !=
"")
1546 $tabs_gui->setBackTarget(
1547 $this->back_target[
"text"],$this->back_target[
"link"]);
1550 if($this->
checkAccess(
'write',
'edit_permission') && $activate_role_edit)
1552 $tabs_gui->addTarget(
"edit_properties",
1553 $this->ctrl->getLinkTarget($this,
"edit"), array(
"edit",
"update"), get_class($this));
1569 $tabs_gui->addTarget(
1570 "default_perm_settings",
1571 $this->ctrl->getLinkTarget($this,
"perm"), array(),get_class($this)
1575 if($this->
checkAccess(
'write',
'edit_permission') && $activate_role_edit && $this->
object->getId() != ANONYMOUS_ROLE_ID)
1577 $tabs_gui->addTarget(
"user_assignment",
1578 $this->ctrl->getLinkTarget($this,
"userassignment"),
1579 array(
"deassignUser",
"userassignment",
"assignUser",
"searchUserForm",
"search"),
1583 if($this->
checkAccess(
'write',
'edit_permission') && $activate_role_edit && $this->
object->getId() != ANONYMOUS_ROLE_ID)
1585 $tabs_gui->addTarget(
"desktop_items",
1586 $this->ctrl->getLinkTarget($this,
"listDesktopItems"),
1587 array(
"listDesktopItems",
"deleteDesktopItems",
"selectDesktopItem",
"askDeleteDesktopItem"),
1592 $tabs_gui->addTarget(
1594 $this->ctrl->getLinkTargetByClass(
'ilExportGUI'),
1606 if(count($obj_ids) > 1)
1608 $_SESSION[
'mail_roles'][] =
'#il_role_'.$this->object->getId();
1612 $_SESSION[
'mail_roles'][] = $rbacreview->getRoleMailboxAddress($this->object->getId());
1615 require_once
'Services/Mail/classes/class.ilMailFormCall.php';
1622 global $rbacsystem,$ilAccess;
1624 $a_perm_obj = $a_perm_obj ? $a_perm_obj : $a_perm_global;
1626 if($this->obj_ref_id == ROLE_FOLDER_ID)
1628 return $rbacsystem->checkAccess($a_perm_global,$this->obj_ref_id);
1632 return $ilAccess->checkAccess($a_perm_obj,
'',$this->obj_ref_id);
1644 if(!(
int)
$_POST[
'recursive'] and !is_array(
$_POST[
'recursive_list']))
1650 if($rbacreview->isProtected($this->obj_ref_id, $this->object->getId()))
1654 return count($rbacreview->getFoldersAssignedToRole($this->object->getId())) > 1;
1660 return count($rbacreview->getFoldersAssignedToRole($this->object->getId())) > 1;
1670 $protected =
$_POST[
'protected'];
1672 include_once
'./Services/Form/classes/class.ilPropertyFormGUI.php';
1674 $form->setFormAction($this->ctrl->getFormAction($this,
'changeExistingObjects'));
1675 $form->setTitle($this->lng->txt(
'rbac_change_existing_confirm_tbl'));
1677 $form->addCommandButton(
'changeExistingObjects', $this->lng->txt(
'change_existing_objects'));
1678 $form->addCommandButton(
'perm',$this->lng->txt(
'cancel'));
1683 serialize(array(
'all')) :
1684 serialize(
$_POST[
'recursive_list'])
1686 $form->addItem($hidden);
1694 $this->lng->txt(
'rbac_keep_local_policies'),
1696 $this->lng->txt(
'rbac_keep_local_policies_info')
1703 $this->lng->txt(
'rbac_keep_local_policies'),
1705 $this->lng->txt(
'rbac_unprotected_keep_local_policies_info')
1709 $rad->addOption($keep);
1714 $this->lng->txt(
'rbac_delete_local_policies'),
1716 $this->lng->txt(
'rbac_delete_local_policies_info')
1722 $this->lng->txt(
'rbac_delete_local_policies'),
1724 $this->lng->txt(
'rbac_unprotected_delete_local_policies_info')
1727 $rad->addOption($del);
1729 $form->addItem($rad);
1730 $this->tpl->setContent($form->getHTML());
1739 global
$tree,$rbacreview,$rbacadmin;
1741 $mode = (int)
$_POST[
'mode'];
1742 $start = ($this->obj_ref_id == ROLE_FOLDER_ID ? ROOT_FOLDER_ID :
$this->obj_ref_id);
1747 $this->ctrl->redirect($this,
'perm');
1761 case 'default_perm_settings':
1762 if($this->obj_ref_id != ROLE_FOLDER_ID)
1766 $ilTabs->addSubTabTarget(
1767 'rbac_repository_permissions',
1768 $this->ctrl->getLinkTarget($this,
'perm')
1770 $ilTabs->addSubTabTarget(
1771 'rbac_admin_permissions',
1772 $this->ctrl->getLinkTarget($this,
'adminPerm')
static sendSuccess($a_info="", $a_keep=false)
Send Success Message to Screen.
adoptPermSaveObject()
copy permissions from role
This class represents an option in a radio group.
static tf2yn($a_tf)
convert true/false to "y"/"n"
add($a_item_id, $a_item_type)
createObject()
Only called from administration -> role folder ? Otherwise this check access is wrong.
setSubTabs($a_tab)
Set sub tabs.
Table for role desktop items.
setBackTarget($a_text, $a_link)
set back tab target
getInstanceByRefId($a_ref_id, $stop_on_error=true)
get an instance of an Ilias object by reference id
Copyright (c) 1998-2015 ILIAS open source, Extended GPL, see docs/LICENSE Date: 07.01.15 Time: 11:43.
getPersonalWorkspaceDiskQuota()
Gets the minimal personal workspace disk quota imposed by this role.
getAdminTabs(&$tabs_gui)
admin and normal tabs are equal for roles
checkDuplicate($a_role_id=0)
Check if role with same name already exists in this folder.
Table for object role permissions.
adminPermObject()
Show administration permissions.
static _isActive()
Static getter.
const MODE_PROTECTED_DELETE_LOCAL_POLICIES
askDeleteDesktopItemObject()
__showButton($a_cmd, $a_text, $a_target='')
_getTranslation($a_role_title)
deassignUserObject()
de-assign users from role
assignSaveObject()
wrapper for renamed function
toggleAssignUsersStatus($a_assign_users)
permObject($a_show_admin_permissions=false)
Show template permissions.
adminPermSaveObject()
Save admin permissions.
ilObjectGUI($a_data, $a_id=0, $a_call_by_reference=true, $a_prepare_output=true)
Constructor public.
setAllowRegister($a_allow_register)
set allow_register of role
addAdminLocatorItems()
should be overwritten to add object specific items (repository items are preloaded) ...
static sortArray($array, $a_array_sortby, $a_array_sortorder=0, $a_numeric=false, $a_keep_keys=false)
sortArray
static _isPersonalWorkspaceActive()
Static getter.
cancelObject()
cancelObject is called when an operation is canceled, method links back public
Table for object role permissions.
getAllowRegister()
get allow_register
getDiskQuota()
Gets the minimal disk quota imposed by this role.
addUserObject($a_user_ids)
Assign user (callback from ilRepositorySearchGUI)
setTitle($a_title)
set object title
const MODE_PROTECTED_KEEP_LOCAL_POLICIES
saveObject()
Save new role.
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.
Export User Interface Class.
static newInstance($a_export_id)
Create new instance.
static lookupTxt($a_mod_prefix, $a_pl_id, $a_lang_var)
Lookup language text.
static isAutoGenerated($a_role_id)
setValue($a_value)
Set Value.
permSaveObject($a_show_admin_permissions=false)
save permissions
loadRoleProperties(ilObjRole $role)
Store form input in role object.
if(!is_array($argv)) $options
confirmDeleteRoleObject()
Show delete confirmation screen.
getId()
get object id public
static _sortIds($a_ids, $a_table, $a_field, $a_id_name)
Function that sorts ids by a given table field using WHERE IN E.g: __sort(array(6,7),'usr_data','lastname','usr_id') => sorts by lastname.
isChangeExistingObjectsConfirmationRequired()
Check if a confirmation about further settings is required or not.
static getImagePath($img, $module_path="", $mode="output", $offline=false)
get image path (for images located in a template directory)
getParentObjId()
Get obj_id of current object.
performDeleteRoleObject()
Delete role.
Class ilObjectGUI Basic methods of all Output classes.
static _lookupObjId($a_id)
initFormRoleProperties($a_mode)
Create role prperty form.
getParentType()
get type of current object (not role folder)
editObject()
Edit role properties.
This class represents a text property in a property form.
getTitle()
get object title public
static infoPanel($a_keep=true)
getDescription()
get object description
redirection script todo: (a better solution should control the processing via a xml file) ...
readRoleProperties(ilObjRole $role)
Read role properties and write them to form.
showDefaultPermissionSettings()
check if default permissions are shown or not
getInstanceByObjId($a_obj_id, $stop_on_error=true)
get an instance of an Ilias object by object id
static stripSlashes($a_str, $a_strip_html=true, $a_allow="")
strip slashes if magic qoutes is enabled
static sendQuestion($a_info="", $a_keep=false)
Send Question to Screen.
setPersonalWorkspaceDiskQuota($a_disk_quota)
Sets the minimal personal workspace disk quota imposed by this role.
prepareOutput()
prepare output
static _lookupType($a_id, $a_reference=false)
lookup object type
assignDesktopItemObject()
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
__construct($a_data, $a_id, $a_call_by_reference=false, $a_prepare_output=true)
Constructor public.
showChangeExistingObjectsConfirmation()
Show confirmation screen.
static gatherTemplate($a_role_ref_id, $a_role_id)
checkAccess($a_perm_global, $a_perm_obj='')
getParentRefId()
Get ref id of current object (not role folder id)
changeExistingObjectsObject()
Change existing objects.
userassignmentObject()
display user assignment panel
This class represents a non editable value in a property form.
const MODE_UNPROTECTED_DELETE_LOCAL_POLICIES
This class represents a text area property in a property form.
static add($a_action, $a_ref_id, array $a_diff, $a_source_ref_id=false)
const MODE_UNPROTECTED_KEEP_LOCAL_POLICIES
static diffTemplate(array $a_old, array $a_new)
static _getIdsForTitle($title, $type='', $partialmatch=false)
TableGUI class for role administration.
const USER_FOLDER_ID
Class ilObjUserFolder.
setDescription($a_desc)
set object description
if($_REQUEST['ilias_path']) define('ILIAS_HTTP_PATH' $_REQUEST['ilias_path']
static fillAutoCompleteToolbar($parent_object, ilToolbarGUI $toolbar=null, $a_options=array(), $a_sticky=false)
fill toolbar with
deleteDesktopItemsObject()
selectDesktopItemObject()
$GLOBALS['PHPCAS_CLIENT']
This global variable is used by the interface class phpCAS.
static allocateExportId()
Allocate a new export id.
static redirect($a_script)
http redirect to other script
Accordion user interface class.
updateObject()
Save role settings.
static _getInstance()
Get instance of ilSecuritySettings.
getContainerType()
Get type of role container.
setDiskQuota($a_disk_quota)
Sets the minimal disk quota imposed by this role.
static formCheckbox($checked, $varname, $value, $disabled=false)
??? public
Confirmation screen class.