3 require_once(
'./Services/Repository/classes/class.ilObjectPlugin.php');
50 $this->
object = $a_obj;
54 $this->user_roles = $rbacreview->assignedRoles($this->
user->getId());
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());
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/> ";
325 $obj =
$factory->getInstanceByRefId($info[
'data']);
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());
360 $result_set[
$counter][
"img"] = $access ? self::IMG_OK : self::IMG_NOT_OK;
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())) {
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) {
427 $result_set[
$counter][
"img"] = in_array($role[
'obj_id'], $this->user_roles) ? self::IMG_OK : self::IMG_NOT_OK;
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"];
getAvailableRolesTableData()
Available Roles Table Data.
getAccessStatusInfoData()
Access Status Info Data.
This class provides processing control methods.
setDataSource($href, $a_delimiter=null)
set datasource link for js autocomplete
setReturn($a_gui_obj, $a_cmd)
Set return command.
static lookupTxtById($plugin_id, $lang_var)
addToolbar()
Creates Toolbar entries.
__construct(&$a_obj)
Constructor public.
Table for Acces Permissons in Permission > Permission of User.
static _getOperationList($a_type=null)
get operation list by object type public static
availableRolesTable()
Available Roles Table.
const IL_NO_PARENT_ACCESS
static _lookupId($a_user_str)
Lookup id by login.
getAccessPermissionTableData()
Access Permissions Table Data.
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.
getNextClass($a_gui_class=null)
Get next class in the control path from the current class to the target command class.
accessStatusInfo()
Access- and Statusinformation Info.
getCmd($a_default_cmd="", $a_safe_commands="")
Determines current get/post command.
special template class to simplify handling of ITX/PEAR
This class represents a text property in a property form.
accessPermissionsTable()
Access Permissions Table.
getCommands($a_type)
get Commands
static _getTranslation($a_role_title)
Create styles array
The data for the language used.
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
getLinkTargetByClass( $a_class, $a_cmd="", $a_anchor="", $a_asynch=false, $xml_style=true)
Get link target for command using gui class name.
static _removeObjectId($a_role_title)
Create new PHPExcel object
obj_idprivate
executeCommand()
execute command
if(empty($password)) $table
Table for Available Roles in Permission > Permission of User.
This class displays the permission status of a user concerning a specific object. ...
forwardCommand($a_gui_object)
Forward flow of control to next gui class this invokes the executeCommand() method of the gui object ...
getAssignedValidRoles()
get Assigned Valid Roles
getFormAction( $a_gui_obj, $a_fallback_cmd="", $a_anchor="", $a_asynch=false, $xml_style=true)
Get form action url for gui class object.