ILIAS  release_6 Revision v6.24-5-g0c8bfefb3b8
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)
 Get all context ids for context type (from DB, is cached) More...
 
 buildPermissionMap ()
 Build map of context and actions. More...
 
 getActivePlugins ()
 Get active plugins (for current slot) More...
 
 checkPermission ($a_context_type, $a_context_id, $a_action_id, $a_action_sub_id=null)
 Check permission (helper: rbac, plugins) More...
 
- 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

Build map of context and actions.

Returns
array

Reimplemented from ilClaimingPermissionHelper.

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

Check permission (helper: rbac, plugins)

Parameters
int$a_context_type
int$a_context_id
int$a_action_id
int$a_action_sub_id
Returns
bool

Reimplemented from ilClaimingPermissionHelper.

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

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
286 return $ilAccess->checkAccessOfUser($this->getUserId(), "read", "", $this->getRefId());
287 }
288
289 return $this->checkRBAC();
290 }
checkPlugins($a_context_type, $a_context_id, $a_action_id, $a_action_sub_id=null)
Check permission against plugins.
checkRBAC()
Check permission against RBAC.
$a_context_id
Definition: workflow.php:97
$a_context_type
Definition: workflow.php:96
$DIC
Definition: xapitoken.php:46

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

+ Here is the call graph for this function:

◆ getActivePlugins()

ilAdvancedMDPermissionHelper::getActivePlugins ( )
protected

Get active plugins (for current slot)

Returns
array ilPlugin

Reimplemented from ilClaimingPermissionHelper.

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

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 }
const IL_COMP_SERVICE
foreach($_POST as $key=> $value) $res

References $DIC, $res, and IL_COMP_SERVICE.

◆ readContextIds()

ilAdvancedMDPermissionHelper::readContextIds (   $a_context_type)
protected

Get all context ids for context type (from DB, is cached)

See also
self::getValidContextIds()
Parameters
int$a_context_type
Returns
array

Reimplemented from ilClaimingPermissionHelper.

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

83 {
84 global $DIC;
85
86 $ilDB = $DIC['ilDB'];
87
88 switch ($a_context_type) {
90 return array($_REQUEST["ref_id"]);
91
93 $set = $ilDB->query("SELECT record_id id" .
94 " FROM adv_md_record");
95 break;
96
104 $set = $ilDB->query("SELECT field_id id" .
105 " FROM adv_mdf_definition");
106 break;
107
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 }
global $ilDB

References $a_context_type, $DIC, $ilDB, $res, CONTEXT_FIELD, CONTEXT_MD, CONTEXT_RECORD, CONTEXT_SUBSTITUTION, CONTEXT_SUBSTITUTION_CATEGORY, CONTEXT_SUBSTITUTION_COURSE, CONTEXT_SUBSTITUTION_EXERCISE, CONTEXT_SUBSTITUTION_GROUP, CONTEXT_SUBSTITUTION_IASS, CONTEXT_SUBSTITUTION_SESSION, and ilClaimingPermissionHelper\getAllowedObjectTypes().

+ 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: