3require_once(
'./Services/Repository/classes/class.ilObjectPlugin.php');
50 $this->
object = $a_obj;
55 $this->global_roles =
$rbacreview->getGlobalRoles();
56 $this->valid_roles =
$rbacreview->getParentRoleIds($this->object->getRefId());
70 switch ($next_class) {
71 case 'ilrepositorysearchgui':
72 include_once(
'./Services/Search/classes/class.ilRepositorySearchGUI.php');
90 $tpl =
new ilTemplate(
"tpl.info_layout.html",
false,
false,
"Services/AccessControl");
95 $tpl->setVariable(
"INFO_REMARK_INTERRUPTED", $this->lng->txt(
'info_remark_interrupted'));
97 $this->tpl->setVariable(
"ADM_CONTENT",
$tpl->get());
111 $ilToolbar->addText($this->lng->txt(
'user'));
113 include_once(
"./Services/Form/classes/class.ilTextInputGUI.php");
115 $login =
new ilTextInputGUI($this->lng->txt(
"username"),
"user_login");
117 'ilRepositorySearchGUI'),
'doUserAutoComplete',
'',
true));
119 $login->setValue($this->
user->getLogin());
121 $ilToolbar->addInputItem($login);
123 $ilToolbar->addFormButton($this->lng->txt(
"info_change_user_view"),
"perminfo");
134 include_once(
"./Services/InfoScreen/classes/class.ilInfoScreenGUI.php");
139 $info->addSection($this->lng->txt(
"info_access_and_status_info"));
145 return $info->getHTML();
154 include_once(
"./Services/AccessControl/classes/class.ilAccessPermissionsStatusTableGUI.php");
159 $table->setTitle($this->lng->txt(
"info_access_permissions"));
170 include_once(
"./Services/AccessControl/classes/class.ilAvailableRolesStatusTableGUI.php");
175 $table->setTitle($this->lng->txt(
"info_available_roles"));
186 include_once(
'./Services/AccessControl/classes/class.ilObjRole.php');
189 foreach ($this->valid_roles as $role) {
190 if (in_array($role[
'obj_id'], $this->user_roles)) {
191 if ($role[
"obj_id"] == SYSTEM_ROLE_ID) {
195 foreach ($ops_list as $ops_data) {
196 $ops[] = (int) $ops_data[
'ops_id'];
201 $role[
'ops'] = $this->rbacreview->getRoleOperationsOnObject($role[
"obj_id"], $this->object->getRefId());
204 include_once(
'./Services/AccessControl/classes/class.ilObjRole.php');
222 global $objDefinition;
224 $class = $objDefinition->getClassName(
$a_type);
226 $full_class =
"ilObj" . $class .
"Access";
227 include_once(
$location .
"/class." . $full_class .
".php");
229 $cmds = call_user_func(array($full_class,
"_getCommands"));
231 array_push($cmds, array(
'permission' =>
'visible',
'cmd' =>
'info'));
244 if (!isset(
$_POST[
'user_login'])) {
247 include_once(
'Services/User/classes/class.ilObjUser.php');
254 if (
$user ===
false or
$user->getType() !=
'usr') {
274 $result_set[0][] = $this->lng->txt(
"info_view_of_user");
275 $result_set[0][] = $this->
user->getFullname() .
" (#" . $this->
user->getId() .
")";
285 $result_set[1][] = $this->lng->txt(
"roles");
286 $result_set[1][] = $roles_str;
288 $result_set[2][] = $this->lng->txt(
"status");
291 $ilAccess->checkAccessOfUser(
292 $this->
user->getId(),
295 $this->object->getRefId(),
296 $this->object->getType(),
297 $this->object->getId()
300 $infos = array_merge($infos, $ilAccess->getInfo());
302 $cmds = $this->
getCommands($this->object->getType());
304 foreach ($cmds as $cmd) {
306 $ilAccess->doStatusCheck($cmd[
'permission'], $cmd[
'cmd'], $this->object->getRefId(), $this->user->getId(), $this->object->getId(), $this->object->getType());
307 $infos = array_merge($infos, $ilAccess->getInfo());
310 $alert =
"il_ItemAlertProperty";
311 $okay =
"il_ItemOkayProperty";
315 $text =
"<span class=\"" . $okay .
"\">" . $this->lng->txt(
"access") .
"</span><br/> ";
317 foreach ($infos as
$info) {
318 switch (
$info[
'type']) {
320 $text .=
"<span class=\"" . $okay .
"\">" .
$info[
'text'] .
"</span><br/> ";
326 $text .=
"<span class=\"" . $alert .
"\">" .
$info[
'text'] .
" (" . $this->lng->txt(
"obj_" . $obj->getType()) .
" #" . $obj->getId() .
": " . $obj->getTitle() .
")</span><br/> ";
330 $text .=
"<span class=\"" . $alert .
"\">" .
$info[
'text'] .
"</span><br/> ";
337 $result_set[2][] =
$text;
348 global $ilAccess,$ilObjDataCache,$objDefinition;
354 $result_set = array();
357 foreach ($ops_list as $ops) {
358 $access = $ilAccess->doRBACCheck($ops[
'operation'],
"info", $this->object->getRefId(), $this->user->getId(), $this->object->getType());
362 if (substr($ops[
'operation'], 0, 7) ==
"create_" &&
363 $objDefinition->isPlugin(substr($ops[
'operation'], 7))) {
365 substr($ops[
'operation'], 7),
366 'rbac_' . $ops[
'operation']
368 } elseif ($objDefinition->isPlugin($this->object->getType())) {
370 $this->object->getType(),
371 $this->object->getType() .
"_" . $ops[
'operation']
373 } elseif (substr($ops[
'operation'], 0, 7) ==
'create_') {
374 $result_set[
$counter][
"operation"] = $this->lng->txt(
'rbac_' . $ops[
'operation']);
376 $result_set[
$counter][
"operation"] = $this->lng->txt($this->object->getType() .
"_" . $ops[
'operation']);
382 if ($this->
user->getId() == $ilObjDataCache->lookupOwner($this->object->getId())) {
384 (substr($ops[
'operation'], 0, 7) !=
'create_') and
385 ($ops[
'operation'] !=
'edit_permission') and
386 ($ops[
'operation'] !=
'edit_leanring_progress')
388 $list_role[] = $this->lng->txt(
'info_owner_of_object');
393 if (in_array($ops[
'ops_id'], $role[
'ops'])) {
394 $list_role[] = $role[
'translation'];
398 if (empty($list_role)) {
399 $list_role[] = $this->lng->txt(
'none');
403 $result_set[
$counter][
"role_ownership"] = $list_role;
419 include_once(
'./Services/AccessControl/classes/class.ilObjRole.php');
421 $path = array_reverse($tree->getPathId($this->object->getRefId()));
423 include_once(
'./Services/AccessControl/classes/class.ilObjRole.php');
426 foreach ($this->valid_roles as $role) {
429 if (is_subclass_of($this->
object, ilObjectPlugin::class) && $role[
"parent"] == $this->object->getRefId()) {
437 if ($role[
'role_type'] !=
"linked") {
438 $result_set[
$counter][
"effective_from"] =
"";
440 $rolfs = $this->rbacreview->getFoldersAssignedToRole($role[
"obj_id"]);
443 foreach (
$path as $node) {
449 if (in_array($node, $rolfs)) {
450 $nodedata = $tree->getNodeData($node);
451 $result_set[
$counter][
"effective_from"] = $nodedata[
"title"];
452 $result_set[
$counter][
"effective_from_ref_id"] = $node;
458 if (in_array($role[
'obj_id'], $this->global_roles)) {
459 $result_set[
$counter][
"original_position"] = $this->lng->txt(
"global");
460 $result_set[
$counter][
"original_position_ref_id"] =
false;
462 $rolf = $this->rbacreview->getFoldersAssignedToRole($role[
"obj_id"],
true);
463 $parent_node = $tree->getNodeData($rolf[0]);
464 $result_set[
$counter][
"original_position"] = $parent_node[
"title"];
465 $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