ILIAS  release_8 Revision v8.19
All Data Structures Namespaces Files Functions Variables Modules Pages
ilObjectAccess Class Reference

This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Learning e.V. More...

+ Inheritance diagram for ilObjectAccess:
+ Collaboration diagram for ilObjectAccess:

Public Member Functions

 _checkAccess (string $cmd, string $permission, int $ref_id, int $obj_id, ?int $user_id=null)
 Checks whether a user may invoke a command or not (this method is called by ilAccessHandler::checkAccess) More...
 
 canBeDelivered (ilWACPath $ilWACPath)
 

Static Public Member Functions

static _getCommands ()
 get commands More...
 
static _checkGoto (string $target)
 check whether goto script will succeed More...
 
static _isOffline (int $obj_id)
 Type-specific implementation of general status, has to be overwritten if object type does not support centralized offline handling. More...
 
static _preloadData (array $obj_ids, array $ref_ids)
 Preload data. More...
 

Detailed Description

This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Learning e.V.

ILIAS is licensed with the GPL-3.0, see https://www.gnu.org/licenses/gpl-3.0.en.html You should have received a copy of said license along with the source code, too.

If this is not the case or you just want to try ILIAS, you'll find us at: https://www.ilias.de https://github.com/ILIAS-eLearning Class ilObjectAccess

This class contains methods that check object specific conditions for access to objects. Every object type should provide an inherited class called ilObj<TypeName>Access

Author
Alex Killing alex..nosp@m.kill.nosp@m.ing@g.nosp@m.mx.d.nosp@m.e
Version
$Id$

Definition at line 31 of file class.ilObjectAccess.php.

Member Function Documentation

◆ _checkAccess()

ilObjectAccess::_checkAccess ( string  $cmd,
string  $permission,
int  $ref_id,
int  $obj_id,
?int  $user_id = null 
)

Checks whether a user may invoke a command or not (this method is called by ilAccessHandler::checkAccess)

Please do not check any preconditions handled by ilConditionHandler here. Also don't do any RBAC checks.

Definition at line 40 of file class.ilObjectAccess.php.

40  : bool
41  {
42 
43  // add no access info item and return false if access is not granted
44  // $ilAccess->addInfoItem(ilAccessInfo::IL_NO_OBJECT_ACCESS, $a_text, $a_data = "");
45  //
46  // for all RBAC checks use checkAccessOfUser instead the normal checkAccess-method:
47  // $rbacsystem->checkAccessOfUser($a_user_id, $a_permission, $a_ref_id)
48 
49  return true;
50  }

◆ _checkGoto()

static ilObjectAccess::_checkGoto ( string  $target)
static

check whether goto script will succeed

Definition at line 73 of file class.ilObjectAccess.php.

References $DIC.

73  : bool
74  {
75  global $DIC;
76  $ilAccess = $DIC->access();
77 
78  $arr = explode("_", $target);
79 
80  if (
81  $ilAccess->checkAccess("read", "", (int) $arr[1]) ||
82  $ilAccess->checkAccess("visible", "", (int) $arr[1])
83  ) {
84  return true;
85  }
86  return false;
87  }
global $DIC
Definition: feed.php:28

◆ _getCommands()

static ilObjectAccess::_getCommands ( )
static

get commands

this method returns an array of all possible commands/permission combinations

example: $commands = array ( array("permission" => "read", "cmd" => "view", "lang_var" => "show"), array("permission" => "write", "cmd" => "edit", "lang_var" => "edit"), );

Returns
array{permission?:string, cmd?:string, lang_var?:string, default?:bool}[]

Definition at line 65 of file class.ilObjectAccess.php.

Referenced by ilObjectListGUI\init(), ilObjSAHSLearningModuleListGUI\initItem(), ilObjStudyProgrammeReferenceListGUI\initItem(), ilObjCategoryReferenceListGUI\initItem(), ilObjGroupReferenceListGUI\initItem(), ilObjCourseReferenceListGUI\initItem(), and CategoryReferenceTest\testCommands().

65  : array
66  {
67  return [];
68  }
+ Here is the caller graph for this function:

◆ _isOffline()

static ilObjectAccess::_isOffline ( int  $obj_id)
static

Type-specific implementation of general status, has to be overwritten if object type does not support centralized offline handling.

Used in ListGUI and Learning Progress

Definition at line 95 of file class.ilObjectAccess.php.

References $DIC, ilObject\_lookupType(), and ilObject\lookupOfflineStatus().

Referenced by ilObjCmiXapiListGUI\getProperties(), and ilObjLTIConsumerListGUI\getProperties().

95  : bool
96  {
97  global $DIC;
98 
99  $objDefinition = $DIC['objDefinition'];
100  if ($objDefinition->supportsOfflineHandling(ilObject::_lookupType($obj_id))) {
101  return ilObject::lookupOfflineStatus($obj_id);
102  }
103  return false;
104  }
static lookupOfflineStatus(int $obj_id)
Lookup offline status using objectDataCache.
global $DIC
Definition: feed.php:28
static _lookupType(int $id, bool $reference=false)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ _preloadData()

static ilObjectAccess::_preloadData ( array  $obj_ids,
array  $ref_ids 
)
static

Preload data.

Definition at line 109 of file class.ilObjectAccess.php.

109  : void
110  {
111  }

◆ canBeDelivered()

ilObjectAccess::canBeDelivered ( ilWACPath  $ilWACPath)

Implements ilWACCheckingClass.

Definition at line 116 of file class.ilObjectAccess.php.

References $ref_id, $results, ilObject\_getAllReferences(), and ilWACPath\getPath().

116  : bool
117  {
118  global $ilAccess;
119 
120  if (preg_match("/\\/obj_([\\d]*)\\//uism", $ilWACPath->getPath(), $results)) {
121  foreach (ilObject2::_getAllReferences((int) $results[1]) as $ref_id) {
122  if ($ilAccess->checkAccess('visible', '', $ref_id) || $ilAccess->checkAccess('read', '', $ref_id)) {
123  return true;
124  }
125  }
126  }
127 
128  return false;
129  }
static _getAllReferences(int $id)
get all reference ids for object ID
$ref_id
Definition: ltiauth.php:67
$results
+ Here is the call graph for this function:

The documentation for this class was generated from the following file: