3require_once(
'./Services/Repository/classes/class.ilObjectPlugin.php');
55 $this->
object = $a_obj;
60 $this->global_roles =
$rbacreview->getGlobalRoles();
61 $this->valid_roles =
$rbacreview->getParentRoleIds($this->object->getRefId());
77 switch ($next_class) {
78 case 'ilrepositorysearchgui':
79 include_once(
'./Services/Search/classes/class.ilRepositorySearchGUI.php');
97 $tpl =
new ilTemplate(
"tpl.info_layout.html",
false,
false,
"Services/AccessControl");
102 $tpl->setVariable(
"INFO_REMARK_INTERRUPTED", $this->lng->txt(
'info_remark_interrupted'));
104 $this->tpl->setVariable(
"ADM_CONTENT",
$tpl->get());
116 $ilToolbar =
$DIC[
'ilToolbar'];
120 $ilToolbar->addText($this->lng->txt(
'user'));
122 include_once(
"./Services/Form/classes/class.ilTextInputGUI.php");
126 'ilRepositorySearchGUI'),
'doUserAutoComplete',
'',
true));
130 $ilToolbar->addInputItem(
$login);
132 $ilToolbar->addFormButton($this->lng->txt(
"info_change_user_view"),
"perminfo");
143 include_once(
"./Services/InfoScreen/classes/class.ilInfoScreenGUI.php");
148 $info->addSection($this->lng->txt(
"info_access_and_status_info"));
154 return $info->getHTML();
163 include_once(
"./Services/AccessControl/classes/class.ilAccessPermissionsStatusTableGUI.php");
168 $table->setTitle($this->lng->txt(
"info_access_permissions"));
179 include_once(
"./Services/AccessControl/classes/class.ilAvailableRolesStatusTableGUI.php");
184 $table->setTitle($this->lng->txt(
"info_available_roles"));
195 include_once(
'./Services/AccessControl/classes/class.ilObjRole.php');
198 foreach ($this->valid_roles as $role) {
199 if (in_array($role[
'obj_id'], $this->user_roles)) {
200 if ($role[
"obj_id"] == SYSTEM_ROLE_ID) {
204 foreach ($ops_list as $ops_data) {
205 $ops[] = (int) $ops_data[
'ops_id'];
210 $role[
'ops'] = $this->rbacreview->getRoleOperationsOnObject($role[
"obj_id"], $this->object->getRefId());
213 include_once(
'./Services/AccessControl/classes/class.ilObjRole.php');
233 $objDefinition =
$DIC[
'objDefinition'];
235 $class = $objDefinition->getClassName(
$a_type);
237 $full_class =
"ilObj" . $class .
"Access";
238 include_once(
$location .
"/class." . $full_class .
".php");
240 $cmds = call_user_func(array($full_class,
"_getCommands"));
242 array_push($cmds, array(
'permission' =>
'visible',
'cmd' =>
'info'));
257 if (!isset(
$_POST[
'user_login'])) {
260 include_once(
'Services/User/classes/class.ilObjUser.php');
267 if (
$user ===
false or
$user->getType() !=
'usr') {
286 $ilAccess =
$DIC[
'ilAccess'];
289 $result_set[0][] = $this->lng->txt(
"info_view_of_user");
290 $result_set[0][] = $this->
user->getFullname() .
" (#" . $this->
user->getId() .
")";
300 $result_set[1][] = $this->lng->txt(
"roles");
301 $result_set[1][] = $roles_str;
303 $result_set[2][] = $this->lng->txt(
"status");
306 $ilAccess->checkAccessOfUser(
307 $this->
user->getId(),
310 $this->object->getRefId(),
311 $this->object->getType(),
312 $this->object->getId()
315 $infos = array_merge($infos, $ilAccess->getInfo());
317 $cmds = $this->
getCommands($this->object->getType());
319 foreach ($cmds as $cmd) {
321 $ilAccess->doStatusCheck($cmd[
'permission'], $cmd[
'cmd'], $this->object->getRefId(), $this->user->getId(), $this->object->getId(), $this->object->getType());
322 $infos = array_merge($infos, $ilAccess->getInfo());
325 $alert =
"il_ItemAlertProperty";
326 $okay =
"il_ItemOkayProperty";
330 $text =
"<span class=\"" . $okay .
"\">" . $this->lng->txt(
"access") .
"</span><br/> ";
332 foreach ($infos as
$info) {
333 switch (
$info[
'type']) {
335 $text .=
"<span class=\"" . $okay .
"\">" .
$info[
'text'] .
"</span><br/> ";
341 $text .=
"<span class=\"" . $alert .
"\">" .
$info[
'text'] .
" (" . $this->lng->txt(
"obj_" . $obj->getType()) .
" #" . $obj->getId() .
": " . $obj->getTitle() .
")</span><br/> ";
345 $text .=
"<span class=\"" . $alert .
"\">" .
$info[
'text'] .
"</span><br/> ";
352 $result_set[2][] =
$text;
365 $ilAccess =
$DIC[
'ilAccess'];
366 $ilObjDataCache =
$DIC[
'ilObjDataCache'];
367 $objDefinition =
$DIC[
'objDefinition'];
373 $result_set = array();
376 foreach ($ops_list as $ops) {
377 $access = $ilAccess->doRBACCheck($ops[
'operation'],
"info", $this->object->getRefId(), $this->user->getId(), $this->object->getType());
381 if (substr($ops[
'operation'], 0, 7) ==
"create_" &&
382 $objDefinition->isPlugin(substr($ops[
'operation'], 7))) {
384 substr($ops[
'operation'], 7),
385 'rbac_' . $ops[
'operation']
387 } elseif ($objDefinition->isPlugin($this->object->getType())) {
389 $this->object->getType(),
390 $this->object->getType() .
"_" . $ops[
'operation']
392 } elseif (substr($ops[
'operation'], 0, 7) ==
'create_') {
393 $result_set[$counter][
"operation"] = $this->lng->txt(
'rbac_' . $ops[
'operation']);
395 $result_set[$counter][
"operation"] = $this->lng->txt($this->object->getType() .
"_" . $ops[
'operation']);
401 if ($this->
user->getId() == $ilObjDataCache->lookupOwner($this->object->getId())) {
403 (substr($ops[
'operation'], 0, 7) !=
'create_') and
404 ($ops[
'operation'] !=
'edit_permission') and
405 ($ops[
'operation'] !=
'edit_leanring_progress')
407 $list_role[] = $this->lng->txt(
'info_owner_of_object');
412 if (in_array($ops[
'ops_id'], $role[
'ops'])) {
413 $list_role[] = $role[
'translation'];
417 if (empty($list_role)) {
418 $list_role[] = $this->lng->txt(
'none');
422 $result_set[$counter][
"role_ownership"] = $list_role;
440 include_once(
'./Services/AccessControl/classes/class.ilObjRole.php');
442 $path = array_reverse(
$tree->getPathId($this->object->getRefId()));
444 include_once(
'./Services/AccessControl/classes/class.ilObjRole.php');
447 foreach ($this->valid_roles as $role) {
450 if (is_subclass_of($this->
object, ilObjectPlugin::class) && $role[
"parent"] == $this->object->getRefId()) {
458 if ($role[
'role_type'] !=
"linked") {
459 $result_set[$counter][
"effective_from"] =
"";
461 $rolfs = $this->rbacreview->getFoldersAssignedToRole($role[
"obj_id"]);
464 foreach (
$path as $node) {
470 if (in_array($node, $rolfs)) {
471 $nodedata =
$tree->getNodeData($node);
472 $result_set[$counter][
"effective_from"] = $nodedata[
"title"];
473 $result_set[$counter][
"effective_from_ref_id"] = $node;
479 if (in_array($role[
'obj_id'], $this->global_roles)) {
480 $result_set[$counter][
"original_position"] = $this->lng->txt(
"global");
481 $result_set[$counter][
"original_position_ref_id"] =
false;
483 $rolf = $this->rbacreview->getFoldersAssignedToRole($role[
"obj_id"],
true);
484 $parent_node =
$tree->getNodeData($rolf[0]);
485 $result_set[$counter][
"original_position"] = $parent_node[
"title"];
486 $result_set[$counter][
"original_position_ref_id"] = $parent_node[
"ref_id"];
An exception for terminatinating execution or to throw for unit testing.
const IL_NO_PARENT_ACCESS
Table for Acces Permissons in Permission > Permission of User.
Table for Available Roles in Permission > Permission of User.
This class provides processing control methods.
getLinkTargetByClass( $a_class, $a_cmd="", $a_anchor="", $a_asynch=false, $xml_style=true)
Get link target for command using gui class name.
getCmd($a_default_cmd="", $a_safe_commands="")
Determines current get/post command.
setReturn($a_gui_obj, $a_cmd)
Set return command.
getNextClass($a_gui_class=null)
Get next class in the control path from the current class to the target command class.
getFormAction( $a_gui_obj, $a_fallback_cmd="", $a_anchor="", $a_asynch=false, $xml_style=true)
Get form action url for gui class object.
forwardCommand($a_gui_object)
Forward flow of control to next gui class this invokes the executeCommand() method of the gui object ...
static _getTranslation($a_role_title)
static _removeObjectId($a_role_title)
static _lookupId($a_user_str)
Lookup id by login.
This class displays the permission status of a user concerning a specific object.
__construct(&$a_obj)
Constructor @access public.
getAccessStatusInfoData()
Access Status Info Data.
accessStatusInfo()
Access- and Statusinformation Info.
getAssignedValidRoles()
get Assigned Valid Roles
addToolbar()
Creates Toolbar entries.
accessPermissionsTable()
Access Permissions Table.
getAccessPermissionTableData()
Access Permissions Table Data.
availableRolesTable()
Available Roles Table.
executeCommand()
execute command
getAvailableRolesTableData()
Available Roles Table Data.
getCommands($a_type)
get Commands
static lookupTxtById($plugin_id, $lang_var)
static _getOperationList($a_type=null)
get operation list by object type @access public @access static
special template class to simplify handling of ITX/PEAR
This class represents a text property in a property form.
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.
if(empty($password)) $table