ILIAS  release_7 Revision v7.30-3-g800a261c036
All Data Structures Namespaces Files Functions Variables Modules Pages
ilAdvancedMDPermissionHelper Class Reference

Advanced metadata permission helper. More...

+ Inheritance diagram for ilAdvancedMDPermissionHelper:
+ Collaboration diagram for ilAdvancedMDPermissionHelper:

Data Fields

const CONTEXT_MD = 1
 
const CONTEXT_RECORD = 2
 
const CONTEXT_FIELD = 3
 
const CONTEXT_SUBSTITUTION = 4
 
const CONTEXT_SUBSTITUTION_COURSE = 5
 
const CONTEXT_SUBSTITUTION_CATEGORY = 6
 
const CONTEXT_SUBSTITUTION_SESSION = 7
 
const CONTEXT_SUBSTITUTION_IASS = 8
 
const CONTEXT_SUBSTITUTION_GROUP = 9
 
const CONTEXT_SUBSTITUTION_EXERCISE = 10
 
const ACTION_MD_CREATE_RECORD = 1
 
const ACTION_MD_IMPORT_RECORDS = 2
 
const ACTION_RECORD_EDIT = 5
 
const ACTION_RECORD_DELETE = 6
 
const ACTION_RECORD_EXPORT = 7
 
const ACTION_RECORD_TOGGLE_ACTIVATION = 8
 
const ACTION_RECORD_EDIT_PROPERTY = 9
 
const ACTION_RECORD_EDIT_FIELDS = 10
 
const ACTION_RECORD_CREATE_FIELD = 11
 
const ACTION_RECORD_FIELD_POSITIONS = 12
 
const ACTION_FIELD_EDIT = 13
 
const ACTION_FIELD_DELETE = 14
 
const ACTION_FIELD_EDIT_PROPERTY = 15
 
const ACTION_SUBSTITUTION_SHOW_DESCRIPTION = 16
 
const ACTION_SUBSTITUTION_SHOW_FIELDNAMES = 17
 
const ACTION_SUBSTITUTION_FIELD_POSITIONS = 18
 
const ACTION_SUBSTITUTION_COURSE_SHOW_FIELD = 19
 
const ACTION_SUBSTITUTION_COURSE_EDIT_FIELD_PROPERTY = 20
 
const ACTION_SUBSTITUTION_CATEGORY_SHOW_FIELD = 21
 
const ACTION_SUBSTITUTION_CATEGORY_EDIT_FIELD_PROPERTY = 22
 
const ACTION_SUBSTITUTION_SESSION_SHOW_FIELD = 23
 
const ACTION_SUBSTITUTION_SESSION_EDIT_FIELD_PROPERTY = 24
 
const ACTION_SUBSTITUTION_GROUP_SHOW_FIELD = 25
 
const ACTION_SUBSTITUTION_GROUP_EDIT_FIELD_PROPERTY = 26
 
const ACTION_SUBSTITUTION_IASS_SHOW_FIELD = 27
 
const ACTION_SUBSTITUTION_IASS_EDIT_FIELD_PROPERTY = 28
 
const ACTION_SUBSTITUTION_EXERCISE_SHOW_FIELD = 29
 
const ACTION_SUBSTITUTION_EXERCISE_EDIT_FIELD_PROPERTY = 30
 
const SUBACTION_RECORD_TITLE = 1
 
const SUBACTION_RECORD_DESCRIPTION = 2
 
const SUBACTION_RECORD_OBJECT_TYPES = 3
 
const SUBACTION_FIELD_TITLE = 4
 
const SUBACTION_FIELD_DESCRIPTION = 5
 
const SUBACTION_FIELD_SEARCHABLE = 6
 
const SUBACTION_FIELD_PROPERTIES = 7
 
const SUBACTION_SUBSTITUTION_BOLD = 8
 
const SUBACTION_SUBSTITUTION_NEWLINE = 9
 

Protected Member Functions

 readContextIds ($a_context_type)
 
 buildPermissionMap ()
 
 getActivePlugins ()
 
 checkPermission ($a_context_type, $a_context_id, $a_action_id, $a_action_sub_id=null)
 
- Protected Member Functions inherited from ilClaimingPermissionHelper
 __construct ($a_user_id, $a_ref_id)
 Constructor. More...
 
 setUserId ($a_value)
 Set user id. More...
 
 getUserId ()
 Get user id. More...
 
 setRefId ($a_value)
 Set ref id. More...
 
 getRefId ()
 Get ref id. More...
 
 readContextIds ($a_context_type)
 Get all context ids for context type (from DB, is cached) More...
 
 buildPermissionMap ()
 Build map of context and actions. More...
 
 isValidContextAndAction ($a_context_type, $a_context_id, $a_action_id, $a_action_sub_id=null)
 Check if given combination of context and action is valid. More...
 
 getValidContextIds ($a_context_type)
 Get context ids for context type (uses cache) More...
 
 checkPermission ($a_context_type, $a_context_id, $a_action_id, $a_action_sub_id=null)
 Check permission (helper: rbac, plugins) More...
 
 checkRBAC ()
 Check permission against RBAC. More...
 
 getActivePlugins ()
 Get active plugins (for current slot) More...
 
 checkPlugins ($a_context_type, $a_context_id, $a_action_id, $a_action_sub_id=null)
 Check permission against plugins. More...
 

Additional Inherited Members

- Public Member Functions inherited from ilClaimingPermissionHelper
 reset ()
 Reset (internal caches) More...
 
 hasPermission ($a_context_type, $a_context_id, $a_action_id, $a_action_sub_id=null)
 Check permission. More...
 
 hasPermissions ($a_context_type, $a_context_id, array $a_action_ids)
 Check permissions. More...
 
 getAllowedObjectTypes ()
 
- Static Public Member Functions inherited from ilClaimingPermissionHelper
static getInstance ($a_user_id=null, $a_ref_id=null)
 Factory. More...
 
- Protected Attributes inherited from ilClaimingPermissionHelper
 $user_id
 
 $ref_id
 
 $map
 
 $context_ids
 
 $plugins
 
- Static Protected Attributes inherited from ilClaimingPermissionHelper
static $instances
 

Detailed Description

Advanced metadata permission helper.

Author
Jörg Lützenkirchen luetz.nosp@m.enki.nosp@m.rchen.nosp@m.@lei.nosp@m.fos.c.nosp@m.om
Version
$Id$

Definition at line 14 of file class.ilAdvancedMDPermissionHelper.php.

Member Function Documentation

◆ buildPermissionMap()

ilAdvancedMDPermissionHelper::buildPermissionMap ( )
protected

Definition at line 125 of file class.ilAdvancedMDPermissionHelper.php.

126  {
127  return array(
128  self::CONTEXT_MD => array(
129  "actions" => array(
130  self::ACTION_MD_CREATE_RECORD
131  ,self::ACTION_MD_IMPORT_RECORDS
132  )
133  ),
134  self::CONTEXT_RECORD => array(
135  "actions" => array(
136  self::ACTION_RECORD_EDIT
137  ,self::ACTION_RECORD_DELETE
138  ,self::ACTION_RECORD_EXPORT
139  ,self::ACTION_RECORD_TOGGLE_ACTIVATION
140  ,self::ACTION_RECORD_EDIT_FIELDS
141  ,self::ACTION_RECORD_FIELD_POSITIONS
142  ,self::ACTION_RECORD_CREATE_FIELD
143  ),
144  "subactions" => array(
145  self::ACTION_RECORD_EDIT_PROPERTY =>
146  array(
147  self::SUBACTION_RECORD_TITLE
148  ,self::SUBACTION_RECORD_DESCRIPTION
149  ,self::SUBACTION_RECORD_OBJECT_TYPES
150  )
151  )
152  ),
153  self::CONTEXT_FIELD => array(
154  "actions" => array(
155  self::ACTION_FIELD_EDIT,
156  self::ACTION_FIELD_DELETE
157  ),
158  "subactions" => array(
159  self::ACTION_FIELD_EDIT_PROPERTY =>
160  array(
161  self::SUBACTION_FIELD_TITLE
162  ,self::SUBACTION_FIELD_DESCRIPTION
163  ,self::SUBACTION_FIELD_SEARCHABLE
164  ,self::SUBACTION_FIELD_PROPERTIES
165  )
166  )
167  ),
168  self::CONTEXT_SUBSTITUTION => array(
169  "actions" => array(
170  self::ACTION_SUBSTITUTION_SHOW_DESCRIPTION
171  ,self::ACTION_SUBSTITUTION_SHOW_FIELDNAMES
172  ,self::ACTION_SUBSTITUTION_FIELD_POSITIONS
173  )
174  ),
175  self::CONTEXT_SUBSTITUTION_COURSE => array(
176  "actions" => array(
177  self::ACTION_SUBSTITUTION_COURSE_SHOW_FIELD
178  ),
179  "subactions" => array(
180  self::ACTION_SUBSTITUTION_COURSE_EDIT_FIELD_PROPERTY =>
181  array(
182  self::SUBACTION_SUBSTITUTION_BOLD
183  ,self::SUBACTION_SUBSTITUTION_NEWLINE
184  )
185  )
186  ),
187  self::CONTEXT_SUBSTITUTION_CATEGORY => array(
188  "actions" => array(
189  self::ACTION_SUBSTITUTION_CATEGORY_SHOW_FIELD
190  ),
191  "subactions" => array(
192  self::ACTION_SUBSTITUTION_CATEGORY_EDIT_FIELD_PROPERTY =>
193  array(
194  self::SUBACTION_SUBSTITUTION_BOLD
195  ,self::SUBACTION_SUBSTITUTION_NEWLINE
196  )
197  )
198  ),
199  self::CONTEXT_SUBSTITUTION_SESSION => array(
200  "actions" => array(
201  self::ACTION_SUBSTITUTION_SESSION_SHOW_FIELD
202  ),
203  "subactions" => array(
204  self::ACTION_SUBSTITUTION_SESSION_EDIT_FIELD_PROPERTY =>
205  array(
206  self::SUBACTION_SUBSTITUTION_BOLD
207  ,self::SUBACTION_SUBSTITUTION_NEWLINE
208  )
209  )
210  ),
211  self::CONTEXT_SUBSTITUTION_GROUP => array(
212  "actions" => array(
213  self::ACTION_SUBSTITUTION_GROUP_SHOW_FIELD
214  ),
215  "subactions" => array(
216  self::ACTION_SUBSTITUTION_GROUP_EDIT_FIELD_PROPERTY =>
217  array(
218  self::SUBACTION_SUBSTITUTION_BOLD
219  ,self::SUBACTION_SUBSTITUTION_NEWLINE
220  )
221  )
222  ),
223  self::CONTEXT_SUBSTITUTION_IASS => array(
224  "actions" => array(
225  self::ACTION_SUBSTITUTION_IASS_SHOW_FIELD
226  ),
227  "subactions" => array(
228  self::ACTION_SUBSTITUTION_IASS_EDIT_FIELD_PROPERTY =>
229  array(
230  self::SUBACTION_SUBSTITUTION_BOLD
231  ,self::SUBACTION_SUBSTITUTION_NEWLINE
232  )
233  )
234  ),
235  self::CONTEXT_SUBSTITUTION_EXERCISE => array(
236  "actions" => array(
237  self::ACTION_SUBSTITUTION_EXERCISE_SHOW_FIELD
238  ),
239  "subactions" => array(
240  self::ACTION_SUBSTITUTION_EXERCISE_EDIT_FIELD_PROPERTY =>
241  array(
242  self::SUBACTION_SUBSTITUTION_BOLD
243  ,self::SUBACTION_SUBSTITUTION_NEWLINE
244  )
245  )
246  )
247  );
248  }

◆ checkPermission()

ilAdvancedMDPermissionHelper::checkPermission (   $a_context_type,
  $a_context_id,
  $a_action_id,
  $a_action_sub_id = null 
)
protected

Definition at line 273 of file class.ilAdvancedMDPermissionHelper.php.

References $DIC, ACTION_RECORD_EXPORT, ilClaimingPermissionHelper\checkPlugins(), ilClaimingPermissionHelper\checkRBAC(), CONTEXT_RECORD, ilClaimingPermissionHelper\getRefId(), and ilClaimingPermissionHelper\getUserId().

274  {
275  global $DIC;
276 
277  $ilAccess = $DIC['ilAccess'];
278 
279  if (!$this->checkPlugins($a_context_type, $a_context_id, $a_action_id, $a_action_sub_id)) {
280  return false;
281  }
282 
283  // export is considered read-action
284  if ($a_context_type == ilAdvancedMDPermissionHelper::CONTEXT_RECORD &&
286  return $ilAccess->checkAccessOfUser($this->getUserId(), "read", "", $this->getRefId());
287  }
288 
289  return $this->checkRBAC();
290  }
checkRBAC()
Check permission against RBAC.
global $DIC
Definition: goto.php:24
checkPlugins($a_context_type, $a_context_id, $a_action_id, $a_action_sub_id=null)
Check permission against plugins.
+ Here is the call graph for this function:

◆ getActivePlugins()

ilAdvancedMDPermissionHelper::getActivePlugins ( )
protected

Definition at line 253 of file class.ilAdvancedMDPermissionHelper.php.

References $DIC, $res, and IL_COMP_SERVICE.

254  {
255  global $DIC;
256 
257  $ilPluginAdmin = $DIC['ilPluginAdmin'];
258 
259  $res = array();
260 
261  foreach ($ilPluginAdmin->getActivePluginsForSlot(IL_COMP_SERVICE, "AdvancedMetaData", "amdc") as $plugin_name) {
262  $res[] = $ilPluginAdmin->getPluginObject(
264  "AdvancedMetaData",
265  "amdc",
266  $plugin_name
267  );
268  }
269 
270  return $res;
271  }
foreach($_POST as $key=> $value) $res
global $DIC
Definition: goto.php:24
const IL_COMP_SERVICE

◆ readContextIds()

ilAdvancedMDPermissionHelper::readContextIds (   $a_context_type)
protected

Definition at line 82 of file class.ilAdvancedMDPermissionHelper.php.

References $DIC, $ilDB, $res, and ilClaimingPermissionHelper\getAllowedObjectTypes().

83  {
84  global $DIC;
85 
86  $ilDB = $DIC['ilDB'];
87 
88  switch ($a_context_type) {
89  case self::CONTEXT_MD:
90  return array($_REQUEST["ref_id"]);
91 
92  case self::CONTEXT_RECORD:
93  $set = $ilDB->query("SELECT record_id id" .
94  " FROM adv_md_record");
95  break;
96 
97  case self::CONTEXT_FIELD:
98  case self::CONTEXT_SUBSTITUTION_COURSE:
99  case self::CONTEXT_SUBSTITUTION_GROUP:
100  case self::CONTEXT_SUBSTITUTION_SESSION:
101  case self::CONTEXT_SUBSTITUTION_CATEGORY:
102  case self::CONTEXT_SUBSTITUTION_IASS:
103  case self::CONTEXT_SUBSTITUTION_EXERCISE:
104  $set = $ilDB->query("SELECT field_id id" .
105  " FROM adv_mdf_definition");
106  break;
107 
108  case self::CONTEXT_SUBSTITUTION:
109  return $this->getAllowedObjectTypes();
110 
111  default:
112  return array();
113  }
114 
115  $res = array();
116  while ($row = $ilDB->fetchAssoc($set)) {
117  $res[] = $row["id"];
118  }
119  return $res;
120  }
foreach($_POST as $key=> $value) $res
global $DIC
Definition: goto.php:24
global $ilDB
+ Here is the call graph for this function:

Field Documentation

◆ ACTION_FIELD_DELETE

const ilAdvancedMDPermissionHelper::ACTION_FIELD_DELETE = 14

◆ ACTION_FIELD_EDIT

const ilAdvancedMDPermissionHelper::ACTION_FIELD_EDIT = 13

◆ ACTION_FIELD_EDIT_PROPERTY

◆ ACTION_MD_CREATE_RECORD

const ilAdvancedMDPermissionHelper::ACTION_MD_CREATE_RECORD = 1

◆ ACTION_MD_IMPORT_RECORDS

const ilAdvancedMDPermissionHelper::ACTION_MD_IMPORT_RECORDS = 2

◆ ACTION_RECORD_CREATE_FIELD

const ilAdvancedMDPermissionHelper::ACTION_RECORD_CREATE_FIELD = 11

◆ ACTION_RECORD_DELETE

const ilAdvancedMDPermissionHelper::ACTION_RECORD_DELETE = 6

◆ ACTION_RECORD_EDIT

const ilAdvancedMDPermissionHelper::ACTION_RECORD_EDIT = 5

◆ ACTION_RECORD_EDIT_FIELDS

const ilAdvancedMDPermissionHelper::ACTION_RECORD_EDIT_FIELDS = 10

◆ ACTION_RECORD_EDIT_PROPERTY

◆ ACTION_RECORD_EXPORT

const ilAdvancedMDPermissionHelper::ACTION_RECORD_EXPORT = 7

◆ ACTION_RECORD_FIELD_POSITIONS

const ilAdvancedMDPermissionHelper::ACTION_RECORD_FIELD_POSITIONS = 12

◆ ACTION_RECORD_TOGGLE_ACTIVATION

◆ ACTION_SUBSTITUTION_CATEGORY_EDIT_FIELD_PROPERTY

const ilAdvancedMDPermissionHelper::ACTION_SUBSTITUTION_CATEGORY_EDIT_FIELD_PROPERTY = 22

◆ ACTION_SUBSTITUTION_CATEGORY_SHOW_FIELD

const ilAdvancedMDPermissionHelper::ACTION_SUBSTITUTION_CATEGORY_SHOW_FIELD = 21

◆ ACTION_SUBSTITUTION_COURSE_EDIT_FIELD_PROPERTY

const ilAdvancedMDPermissionHelper::ACTION_SUBSTITUTION_COURSE_EDIT_FIELD_PROPERTY = 20

◆ ACTION_SUBSTITUTION_COURSE_SHOW_FIELD

const ilAdvancedMDPermissionHelper::ACTION_SUBSTITUTION_COURSE_SHOW_FIELD = 19

◆ ACTION_SUBSTITUTION_EXERCISE_EDIT_FIELD_PROPERTY

const ilAdvancedMDPermissionHelper::ACTION_SUBSTITUTION_EXERCISE_EDIT_FIELD_PROPERTY = 30

◆ ACTION_SUBSTITUTION_EXERCISE_SHOW_FIELD

const ilAdvancedMDPermissionHelper::ACTION_SUBSTITUTION_EXERCISE_SHOW_FIELD = 29

◆ ACTION_SUBSTITUTION_FIELD_POSITIONS

const ilAdvancedMDPermissionHelper::ACTION_SUBSTITUTION_FIELD_POSITIONS = 18

◆ ACTION_SUBSTITUTION_GROUP_EDIT_FIELD_PROPERTY

const ilAdvancedMDPermissionHelper::ACTION_SUBSTITUTION_GROUP_EDIT_FIELD_PROPERTY = 26

◆ ACTION_SUBSTITUTION_GROUP_SHOW_FIELD

const ilAdvancedMDPermissionHelper::ACTION_SUBSTITUTION_GROUP_SHOW_FIELD = 25

◆ ACTION_SUBSTITUTION_IASS_EDIT_FIELD_PROPERTY

const ilAdvancedMDPermissionHelper::ACTION_SUBSTITUTION_IASS_EDIT_FIELD_PROPERTY = 28

◆ ACTION_SUBSTITUTION_IASS_SHOW_FIELD

const ilAdvancedMDPermissionHelper::ACTION_SUBSTITUTION_IASS_SHOW_FIELD = 27

◆ ACTION_SUBSTITUTION_SESSION_EDIT_FIELD_PROPERTY

const ilAdvancedMDPermissionHelper::ACTION_SUBSTITUTION_SESSION_EDIT_FIELD_PROPERTY = 24

◆ ACTION_SUBSTITUTION_SESSION_SHOW_FIELD

const ilAdvancedMDPermissionHelper::ACTION_SUBSTITUTION_SESSION_SHOW_FIELD = 23

◆ ACTION_SUBSTITUTION_SHOW_DESCRIPTION

const ilAdvancedMDPermissionHelper::ACTION_SUBSTITUTION_SHOW_DESCRIPTION = 16

◆ ACTION_SUBSTITUTION_SHOW_FIELDNAMES

const ilAdvancedMDPermissionHelper::ACTION_SUBSTITUTION_SHOW_FIELDNAMES = 17

◆ CONTEXT_FIELD

◆ CONTEXT_MD

const ilAdvancedMDPermissionHelper::CONTEXT_MD = 1

◆ CONTEXT_RECORD

◆ CONTEXT_SUBSTITUTION

const ilAdvancedMDPermissionHelper::CONTEXT_SUBSTITUTION = 4

◆ CONTEXT_SUBSTITUTION_CATEGORY

const ilAdvancedMDPermissionHelper::CONTEXT_SUBSTITUTION_CATEGORY = 6

◆ CONTEXT_SUBSTITUTION_COURSE

const ilAdvancedMDPermissionHelper::CONTEXT_SUBSTITUTION_COURSE = 5

◆ CONTEXT_SUBSTITUTION_EXERCISE

const ilAdvancedMDPermissionHelper::CONTEXT_SUBSTITUTION_EXERCISE = 10

◆ CONTEXT_SUBSTITUTION_GROUP

const ilAdvancedMDPermissionHelper::CONTEXT_SUBSTITUTION_GROUP = 9

◆ CONTEXT_SUBSTITUTION_IASS

const ilAdvancedMDPermissionHelper::CONTEXT_SUBSTITUTION_IASS = 8

◆ CONTEXT_SUBSTITUTION_SESSION

const ilAdvancedMDPermissionHelper::CONTEXT_SUBSTITUTION_SESSION = 7

◆ SUBACTION_FIELD_DESCRIPTION

const ilAdvancedMDPermissionHelper::SUBACTION_FIELD_DESCRIPTION = 5

◆ SUBACTION_FIELD_PROPERTIES

const ilAdvancedMDPermissionHelper::SUBACTION_FIELD_PROPERTIES = 7

◆ SUBACTION_FIELD_SEARCHABLE

◆ SUBACTION_FIELD_TITLE

const ilAdvancedMDPermissionHelper::SUBACTION_FIELD_TITLE = 4

◆ SUBACTION_RECORD_DESCRIPTION

const ilAdvancedMDPermissionHelper::SUBACTION_RECORD_DESCRIPTION = 2

◆ SUBACTION_RECORD_OBJECT_TYPES

◆ SUBACTION_RECORD_TITLE

const ilAdvancedMDPermissionHelper::SUBACTION_RECORD_TITLE = 1

◆ SUBACTION_SUBSTITUTION_BOLD

const ilAdvancedMDPermissionHelper::SUBACTION_SUBSTITUTION_BOLD = 8

◆ SUBACTION_SUBSTITUTION_NEWLINE

const ilAdvancedMDPermissionHelper::SUBACTION_SUBSTITUTION_NEWLINE = 9

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