ILIAS  trunk Revision v12.0_alpha-377-g3641b37b9db
ilAdvancedMDPermissionHelper Class Reference

Advanced metadata permission helper. More...

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

Data Fields

const int CONTEXT_MD = 1
 
const int CONTEXT_RECORD = 2
 
const int CONTEXT_FIELD = 3
 
const int ACTION_MD_CREATE_RECORD = 1
 
const int ACTION_MD_IMPORT_RECORDS = 2
 
const int ACTION_RECORD_EDIT = 5
 
const int ACTION_RECORD_DELETE = 6
 
const int ACTION_RECORD_EXPORT = 7
 
const int ACTION_RECORD_TOGGLE_ACTIVATION = 8
 
const int ACTION_RECORD_EDIT_PROPERTY = 9
 
const int ACTION_RECORD_EDIT_FIELDS = 10
 
const int ACTION_RECORD_CREATE_FIELD = 11
 
const int ACTION_RECORD_FIELD_POSITIONS = 12
 
const int ACTION_FIELD_EDIT = 13
 
const int ACTION_FIELD_DELETE = 14
 
const int ACTION_FIELD_EDIT_PROPERTY = 15
 
const int SUBACTION_UNDEFINED = 0
 
const int SUBACTION_RECORD_TITLE = 1
 
const int SUBACTION_RECORD_DESCRIPTION = 2
 
const int SUBACTION_RECORD_OBJECT_TYPES = 3
 
const int SUBACTION_FIELD_TITLE = 4
 
const int SUBACTION_FIELD_DESCRIPTION = 5
 
const int SUBACTION_FIELD_SEARCHABLE = 6
 
const int SUBACTION_FIELD_PROPERTIES = 7
 

Protected Member Functions

 readContextIds (int $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 (int $a_context_type, int $a_context_id, int $a_action_id, ?int $a_action_sub_id=null)
 Check permission (helper: rbac, plugins) More...
 
- Protected Member Functions inherited from ilClaimingPermissionHelper
 __construct (int $a_user_id, int $a_ref_id)
 
 setUserId (int $a_value)
 
 getUserId ()
 
 setRefId (int $a_value)
 
 getRefId ()
 
 readContextIds (int $a_context_type)
 Get all context ids for context type (from DB, is cached) More...
 
 buildPermissionMap ()
 Build map of context and actions. More...
 
 isValidContextAndAction (int $a_context_type, int $a_context_id, int $a_action_id, ?int $a_action_sub_id=null)
 Check if given combination of context and action is valid. More...
 
 getValidContextIds (int $a_context_type)
 Get context ids for context type (uses cache) More...
 
 checkPermission (int $a_context_type, int $a_context_id, int $a_action_id, ?int $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 (int $a_context_type, int $a_context_id, int $a_action_id, ?int $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 (int $a_context_type, int $a_context_id, int $a_action_id, ?int $a_action_sub_id=null)
 Check permission. More...
 
 hasPermissions (int $a_context_type, int $a_context_id, array $a_action_ids)
 Check permissions. More...
 
- Static Public Member Functions inherited from ilClaimingPermissionHelper
static getInstance (int $a_user_id, int $a_ref_id)
 
- Protected Attributes inherited from ilClaimingPermissionHelper
int $user_id = 0
 
int $ref_id = 0
 
array $map = []
 
array $context_ids = []
 
array $plugins = null
 
- Static Protected Attributes inherited from ilClaimingPermissionHelper
static array $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 27 of file class.ilAdvancedMDPermissionHelper.php.

Member Function Documentation

◆ buildPermissionMap()

ilAdvancedMDPermissionHelper::buildPermissionMap ( )
protected

Build map of context and actions.

Reimplemented from ilClaimingPermissionHelper.

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

92 : array
93 {
94 return array(
95 self::CONTEXT_MD => array(
96 "actions" => array(
97 self::ACTION_MD_CREATE_RECORD
98 ,
99 self::ACTION_MD_IMPORT_RECORDS
100 )
101 ),
102 self::CONTEXT_RECORD => array(
103 "actions" => array(
104 self::ACTION_RECORD_EDIT
105 ,
106 self::ACTION_RECORD_DELETE
107 ,
108 self::ACTION_RECORD_EXPORT
109 ,
110 self::ACTION_RECORD_TOGGLE_ACTIVATION
111 ,
112 self::ACTION_RECORD_EDIT_FIELDS
113 ,
114 self::ACTION_RECORD_FIELD_POSITIONS
115 ,
116 self::ACTION_RECORD_CREATE_FIELD
117 ),
118 "subactions" => array(
119 self::ACTION_RECORD_EDIT_PROPERTY =>
120 array(
121 self::SUBACTION_RECORD_TITLE
122 ,
123 self::SUBACTION_RECORD_DESCRIPTION
124 ,
125 self::SUBACTION_RECORD_OBJECT_TYPES
126 )
127 )
128 ),
129 self::CONTEXT_FIELD => array(
130 "actions" => array(
131 self::ACTION_FIELD_EDIT,
132 self::ACTION_FIELD_DELETE
133 ),
134 "subactions" => array(
135 self::ACTION_FIELD_EDIT_PROPERTY =>
136 array(
137 self::SUBACTION_FIELD_TITLE
138 ,
139 self::SUBACTION_FIELD_DESCRIPTION
140 ,
141 self::SUBACTION_FIELD_SEARCHABLE
142 ,
143 self::SUBACTION_FIELD_PROPERTIES
144 )
145 )
146 )
147 );
148 }

◆ checkPermission()

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

Check permission (helper: rbac, plugins)

Reimplemented from ilClaimingPermissionHelper.

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

165 : bool {
166 global $DIC;
167
168 $ilAccess = $DIC['ilAccess'];
169
170 if (!$this->checkPlugins($a_context_type, $a_context_id, $a_action_id, $a_action_sub_id)) {
171 return false;
172 }
173
174 // export is considered read-action
175 if ($a_context_type == ilAdvancedMDPermissionHelper::CONTEXT_RECORD &&
177 return $ilAccess->checkAccessOfUser($this->getUserId(), "read", "", $this->getRefId());
178 }
179
180 return $this->checkRBAC();
181 }
checkRBAC()
Check permission against RBAC.
checkPlugins(int $a_context_type, int $a_context_id, int $a_action_id, ?int $a_action_sub_id=null)
Check permission against plugins.
global $DIC
Definition: shib_login.php:26

◆ getActivePlugins()

ilAdvancedMDPermissionHelper::getActivePlugins ( )
protected

Get active plugins (for current slot)

Reimplemented from ilClaimingPermissionHelper.

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

152 : Generator
153 {
154 global $DIC;
155
156 $component_factory = $DIC['component.factory'];
157 yield from $component_factory->getActivePluginsInSlot("amdc");
158 }

References $DIC, and ILIAS\ResourceStorage\Flavour\Machine\DefaultMachines\from().

+ Here is the call graph for this function:

◆ readContextIds()

ilAdvancedMDPermissionHelper::readContextIds ( int  $a_context_type)
protected

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

Reimplemented from ilClaimingPermissionHelper.

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

59 : array
60 {
61 global $DIC;
62
63 $ilDB = $DIC->database();
64
65 switch ($a_context_type) {
67 return array($this->ref_id);
68
70 $set = $ilDB->query("SELECT record_id id" .
71 " FROM adv_md_record");
72 break;
73
75 $set = $ilDB->query("SELECT field_id id" .
76 " FROM adv_mdf_definition");
77 break;
78
79 default:
80 return array();
81 }
82
83 $res = array();
84 while ($row = $ilDB->fetchAssoc($set)) {
85 $res[] = (int) $row["id"];
86 }
87 return $res;
88 }
$res
Definition: ltiservices.php:69

References $DIC, $ilDB, $res, CONTEXT_FIELD, CONTEXT_MD, CONTEXT_RECORD, and ILIAS\Repository\int().

+ Here is the call graph for this function:

Field Documentation

◆ ACTION_FIELD_DELETE

const int ilAdvancedMDPermissionHelper::ACTION_FIELD_DELETE = 14

◆ ACTION_FIELD_EDIT

const int ilAdvancedMDPermissionHelper::ACTION_FIELD_EDIT = 13

◆ ACTION_FIELD_EDIT_PROPERTY

const int ilAdvancedMDPermissionHelper::ACTION_FIELD_EDIT_PROPERTY = 15

◆ ACTION_MD_CREATE_RECORD

const int ilAdvancedMDPermissionHelper::ACTION_MD_CREATE_RECORD = 1

◆ ACTION_MD_IMPORT_RECORDS

const int ilAdvancedMDPermissionHelper::ACTION_MD_IMPORT_RECORDS = 2

◆ ACTION_RECORD_CREATE_FIELD

const int ilAdvancedMDPermissionHelper::ACTION_RECORD_CREATE_FIELD = 11

◆ ACTION_RECORD_DELETE

const int ilAdvancedMDPermissionHelper::ACTION_RECORD_DELETE = 6

◆ ACTION_RECORD_EDIT

const int ilAdvancedMDPermissionHelper::ACTION_RECORD_EDIT = 5

◆ ACTION_RECORD_EDIT_FIELDS

const int ilAdvancedMDPermissionHelper::ACTION_RECORD_EDIT_FIELDS = 10

◆ ACTION_RECORD_EDIT_PROPERTY

◆ ACTION_RECORD_EXPORT

const int ilAdvancedMDPermissionHelper::ACTION_RECORD_EXPORT = 7

◆ ACTION_RECORD_FIELD_POSITIONS

const int ilAdvancedMDPermissionHelper::ACTION_RECORD_FIELD_POSITIONS = 12

◆ ACTION_RECORD_TOGGLE_ACTIVATION

◆ CONTEXT_FIELD

◆ CONTEXT_MD

const int ilAdvancedMDPermissionHelper::CONTEXT_MD = 1

◆ CONTEXT_RECORD

◆ SUBACTION_FIELD_DESCRIPTION

const int ilAdvancedMDPermissionHelper::SUBACTION_FIELD_DESCRIPTION = 5

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

◆ SUBACTION_FIELD_PROPERTIES

const int ilAdvancedMDPermissionHelper::SUBACTION_FIELD_PROPERTIES = 7

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

◆ SUBACTION_FIELD_SEARCHABLE

const int ilAdvancedMDPermissionHelper::SUBACTION_FIELD_SEARCHABLE = 6

◆ SUBACTION_FIELD_TITLE

const int ilAdvancedMDPermissionHelper::SUBACTION_FIELD_TITLE = 4

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

◆ SUBACTION_RECORD_DESCRIPTION

const int ilAdvancedMDPermissionHelper::SUBACTION_RECORD_DESCRIPTION = 2

◆ SUBACTION_RECORD_OBJECT_TYPES

◆ SUBACTION_RECORD_TITLE

const int ilAdvancedMDPermissionHelper::SUBACTION_RECORD_TITLE = 1

◆ SUBACTION_UNDEFINED

const int ilAdvancedMDPermissionHelper::SUBACTION_UNDEFINED = 0

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


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