4include_once
"./Services/Object/classes/class.ilObjectGUI.php";
5include_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;
211 if(!$rbacreview->isAssignable($this->object->getId(),$this->obj_ref_id) &&
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));
404 $this->form->setTitle($this->lng->txt(
'role_new'));
405 $this->form->addCommandButton(
'save',$this->lng->txt(
'role_new'));
409 $this->form->setTitle($this->lng->txt(
'role_edit'));
410 $this->form->addCommandButton(
'update', $this->lng->txt(
'save'));
417 $this->form->addCommandButton(
'cancel', $this->lng->txt(
'cancel'));
422 $title->setDisabled(
true);
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);
439 $desc->setDisabled(
true);
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';
473 $quo->setMinValue(0);
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');
482 $wquo->setMinValue(0);
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));
582 if($rbacreview->isDeleteable($this->object->getId(), $this->obj_ref_id))
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;
606 if($this->form->checkInput() and !$this->checkDuplicate())
608 include_once
'./Services/AccessControl/classes/class.ilObjRole.php';
610 $this->role->create();
611 $rbacadmin->assignRoleToFolder($this->role->getId(), $this->obj_ref_id,
'y');
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')
702 if($rbacreview->isDeleteable($this->object->getId(), $this->obj_ref_id))
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);
742 foreach($subs as $subtype => $def)
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)
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);
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"])
1101 $rbacadmin->deleteRolePermission($this->object->getId(), $this->obj_ref_id);
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'))
1148 if(!$rbacreview->isAssignable($this->object->getId(),$this->obj_ref_id) &&
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')
const USER_FOLDER_ID
Class ilObjUserFolder.
Accordion user interface class.
TableGUI class for role administration.
Confirmation screen class.
static _isActive()
Static getter.
static _isPersonalWorkspaceActive()
Static getter.
Export User Interface Class.
static newInstance($a_export_id)
Create new instance.
static allocateExportId()
Allocate a new export id.
This class represents a non editable value in a property form.
editObject()
Edit role properties.
performDeleteRoleObject()
Delete role.
saveObject()
Save new role.
updateObject()
Save role settings.
initFormRoleProperties($a_mode)
Create role prperty form.
userassignmentObject()
display user assignment panel
showChangeExistingObjectsConfirmation()
Show confirmation screen.
__construct($a_data, $a_id, $a_call_by_reference=false, $a_prepare_output=true)
Constructor @access public.
setBackTarget($a_text, $a_link)
set back tab target
readRoleProperties(ilObjRole $role)
Read role properties and write them to form.
deassignUserObject()
de-assign users from role
permObject($a_show_admin_permissions=false)
Show template permissions.
loadRoleProperties(ilObjRole $role)
Store form input in role object.
assignSaveObject()
wrapper for renamed function
permSaveObject($a_show_admin_permissions=false)
save permissions
& executeCommand()
execute command
getParentType()
get type of current object (not role folder)
getContainerType()
Get type of role container.
getTabs(&$tabs_gui)
get tabs abstract method.
deleteDesktopItemsObject()
addUserObject($a_user_ids)
Assign user (callback from ilRepositorySearchGUI)
checkAccess($a_perm_global, $a_perm_obj='')
cancelObject()
cancelObject is called when an operation is canceled, method links back @access public
showDefaultPermissionSettings()
check if default permissions are shown or not
adminPermObject()
Show administration permissions.
assignDesktopItemObject()
adminPermSaveObject()
Save admin permissions.
addAdminLocatorItems()
should be overwritten to add object specific items (repository items are preloaded)
checkDuplicate($a_role_id=0)
Check if role with same name already exists in this folder.
confirmDeleteRoleObject()
Show delete confirmation screen.
createObject()
Only called from administration -> role folder ? Otherwise this check access is wrong.
getParentRefId()
Get ref id of current object (not role folder id)
isChangeExistingObjectsConfirmationRequired()
Check if a confirmation about further settings is required or not.
adoptPermSaveObject()
copy permissions from role
selectDesktopItemObject()
getParentObjId()
Get obj_id of current object.
setSubTabs($a_tab)
Set sub tabs.
getAdminTabs(&$tabs_gui)
admin and normal tabs are equal for roles
changeExistingObjectsObject()
Change existing objects.
askDeleteDesktopItemObject()
setAllowRegister($a_allow_register)
set allow_register of role
const MODE_UNPROTECTED_KEEP_LOCAL_POLICIES
const MODE_PROTECTED_DELETE_LOCAL_POLICIES
const MODE_UNPROTECTED_DELETE_LOCAL_POLICIES
getPersonalWorkspaceDiskQuota()
getAllowRegister()
get allow_register
const MODE_PROTECTED_KEEP_LOCAL_POLICIES
static isAutoGenerated($a_role_id)
toggleAssignUsersStatus($a_assign_users)
setDiskQuota($a_disk_quota)
_getTranslation($a_role_title)
setPersonalWorkspaceDiskQuota($a_disk_quota)
getInstanceByObjId($a_obj_id, $stop_on_error=true)
get an instance of an Ilias object by object id
getInstanceByRefId($a_ref_id, $stop_on_error=true)
get an instance of an Ilias object by reference id
Class ilObjectGUI Basic methods of all Output classes.
__showButton($a_cmd, $a_text, $a_target='')
ilObjectGUI($a_data, $a_id=0, $a_call_by_reference=true, $a_prepare_output=true)
Constructor @access public.
prepareOutput()
prepare output
Table for object role permissions.
Table for object role permissions.
static _lookupObjId($a_id)
setTitle($a_title)
set object title
setDescription($a_desc)
set object description
getDescription()
get object description
getId()
get object id @access public
static _lookupType($a_id, $a_reference=false)
lookup object type
static _getIdsForTitle($title, $type='', $partialmatch=false)
getTitle()
get object title @access public
static lookupTxt($a_mod_prefix, $a_pl_id, $a_lang_var)
Lookup language text.
This class represents an option in a radio group.
static diffTemplate(array $a_old, array $a_new)
static add($a_action, $a_ref_id, array $a_diff, $a_source_ref_id=false)
static gatherTemplate($a_role_ref_id, $a_role_id)
static fillAutoCompleteToolbar($parent_object, ilToolbarGUI $toolbar=null, $a_options=array(), $a_sticky=false)
fill toolbar with
Copyright (c) 1998-2015 ILIAS open source, Extended GPL, see docs/LICENSE Date: 07....
Table for role desktop items.
static _getInstance()
Get instance of ilSecuritySettings.
This class represents a text area property in a property form.
This class represents a text property in a property form.
static formCheckbox($checked, $varname, $value, $disabled=false)
??? @access 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,...
static sendQuestion($a_info="", $a_keep=false)
Send Question to Screen.
static tf2yn($a_tf)
convert true/false to "y"/"n"
static sortArray($array, $a_array_sortby, $a_array_sortorder=0, $a_numeric=false, $a_keep_keys=false)
sortArray
static sendSuccess($a_info="", $a_keep=false)
Send Success Message to Screen.
static redirect($a_script)
http redirect to other script
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
static stripSlashes($a_str, $a_strip_html=true, $a_allow="")
strip slashes if magic qoutes is enabled
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.
static getImagePath($img, $module_path="", $mode="output", $offline=false)
get image path (for images located in a template directory)
static infoPanel($a_keep=true)
$GLOBALS['PHPCAS_CLIENT']
This global variable is used by the interface class phpCAS.
redirection script todo: (a better solution should control the processing via a xml file)
if($_REQUEST['ilias_path']) define('ILIAS_HTTP_PATH' $_REQUEST['ilias_path']
if(!is_array($argv)) $options