ILIAS  trunk Revision v11.0_alpha-1749-g1a06bdef097
All Data Structures Namespaces Files Functions Variables Enumerations Enumerator Modules Pages
ilDBUpdateNewObjectType Class Reference

Helper class to create new object types (object_data, RBAC) More...

+ Collaboration diagram for ilDBUpdateNewObjectType:

Static Public Member Functions

static array static addNewType (string $type_id, string $type_title)
 Add new type to object data. More...
 
static addRBACOperations (int $type_id, array $operations)
 Add RBAC operations for type. More...
 
static addRBACOperation (int $type_id, int $ops_id)
 Add RBAC operation. More...
 
static isRBACOperation (int $type_id, int $ops_id)
 Check if rbac operation exists. More...
 
static deleteRBACOperation (string $type, int $ops_id)
 Delete rbac operation. More...
 
static deleteRBACTemplateOperation (string $type, int $ops_id)
 Delete operation for type in templates. More...
 
static getCustomRBACOperationId (string $operation)
 Get id of RBAC operation. More...
 
static addCustomRBACOperation (string $id, string $title, string $class, int $pos)
 Add custom RBAC operation. More...
 
static getObjectTypeId (string $type)
 Get id for object data type entry. More...
 
static addRBACCreate (string $id, string $title, array $parent_types)
 Add create RBAC operations for parent object types. More...
 
static updateOperationOrder (string $operation, int $pos)
 Change order of operations. More...
 
static addAdminNode (string $obj_type, string $title)
 Create new admin object node. More...
 
static cloneOperation (string $obj_type, int $source_op_id, int $target_op_id)
 Clone RBAC-settings between operations. More...
 
static setRolePermission (int $a_rol_id, string $a_type, array $a_ops, int $a_ref_id)
 
static applyInitialPermissionGuideline (string $objectType, bool $hasLearningProgress=false, bool $usedForAuthoring=false)
 This method will apply the 'Initial Permissions Guideline' when introducing new object types. More...
 

Data Fields

const RBAC_OP_EDIT_PERMISSIONS = 1
 
const RBAC_OP_VISIBLE = 2
 
const RBAC_OP_READ = 3
 
const RBAC_OP_WRITE = 4
 
const RBAC_OP_DELETE = 6
 
const RBAC_OP_COPY = 99
 

Static Protected Member Functions

static isValidRBACOperation (int $ops_id)
 Check if given RBAC operation id is valid. More...
 

Static Protected Attributes

static array $initialPermissionDefinition
 

Detailed Description

Helper class to create new object types (object_data, RBAC)

Author
Jörg Lützenkirchen luetz.nosp@m.enki.nosp@m.rchen.nosp@m.@lei.nosp@m.fos.c.nosp@m.om
Id
class.ilObjFolderGUI.php 25134 2010-08-13 14:22:11Z smeyer

Definition at line 29 of file class.ilDBUpdateNewObjectType.php.

Member Function Documentation

◆ addAdminNode()

static ilDBUpdateNewObjectType::addAdminNode ( string  $obj_type,
string  $title 
)
static

Create new admin object node.

Deprecated:
use Services/Tree/classes/Setup/class.ilTreeAdminNodeAddedObjective.php instead

Definition at line 430 of file class.ilDBUpdateNewObjectType.php.

References $ilDB, $ref_id, ilObject\_getObjectTypeIdByTitle(), ROOT_FOLDER_ID, and SYSTEM_FOLDER_ID.

430  : void
431  {
432  global $ilDB, $tree;
433 
434  if (ilObject::_getObjectTypeIdByTitle($obj_type)) {
435  return;
436  }
437 
438  $obj_type_id = self::addNewType($obj_type, $title);
439  $obj_id = $ilDB->nextId('object_data');
440  $values = [
441  'obj_id' => ['integer', $obj_id],
442  'type' => ['text', $obj_type],
443  'title' => ['text', $title],
444  'description' => ['text', $title],
445  'owner' => ['integer', -1],
446  'create_date' => ['timestamp', date("Y-m-d H:i:s")],
447  'last_update' => ['timestamp', date("Y-m-d H:i:s")]
448  ];
449  $ilDB->insert("object_data", $values);
450 
451 
452  $ref_id = $ilDB->nextId("object_reference");
453  $values = [
454  "obj_id" => ["integer", $obj_id],
455  "ref_id" => ["integer", $ref_id]
456  ];
457  $ilDB->insert("object_reference", $values);
458 
459  // put in tree
460  require_once("components/ILIAS/Tree/classes/class.ilTree.php");
461  $tree = new ilTree(ROOT_FOLDER_ID);
462  $tree->insertNode($ref_id, SYSTEM_FOLDER_ID);
463 
464  $rbac_ops = [
465  self::RBAC_OP_EDIT_PERMISSIONS,
466  self::RBAC_OP_VISIBLE,
467  self::RBAC_OP_READ,
468  self::RBAC_OP_WRITE
469  ];
470 
471  self::addRBACOperations($obj_type_id, $rbac_ops);
472  }
const ROOT_FOLDER_ID
Definition: constants.php:32
const SYSTEM_FOLDER_ID
Definition: constants.php:35
$ref_id
Definition: ltiauth.php:65
static _getObjectTypeIdByTitle(string $type, ?\ilDBInterface $ilDB=null)
+ Here is the call graph for this function:

◆ addCustomRBACOperation()

static ilDBUpdateNewObjectType::addCustomRBACOperation ( string  $id,
string  $title,
string  $class,
int  $pos 
)
static

Add custom RBAC operation.

Deprecated:
use Services/AccessControl/classes/Setup/class.ilAccessCustomRBACOperationAddedObjective.php instead

Definition at line 336 of file class.ilDBUpdateNewObjectType.php.

References $id, $ilDB, and ilRbacReview\_getCustomRBACOperationId().

336  : int
337  {
338  global $ilDB;
339 
340  // check if it already exists
342  if ($ops_id) {
343  return $ops_id;
344  }
345 
346  if (!in_array($class, array('create', 'object', 'general'))) {
347  throw new InvalidArgumentException("Class type '$class' is not supportet by RBAC system.");
348  }
349  if ($class == 'create') {
350  $pos = 9999;
351  }
352 
353  $ops_id = $ilDB->nextId('rbac_operations');
354 
355  $fields = [
356  'ops_id' => ['integer', $ops_id],
357  'operation' => ['text', $id],
358  'description' => ['text', $title],
359  'class' => ['text', $class],
360  'op_order' => ['integer', $pos]
361  ];
362  $ilDB->insert('rbac_operations', $fields);
363 
364  return $ops_id;
365  }
static _getCustomRBACOperationId(string $operation, ?\ilDBInterface $ilDB=null)
$id
plugin.php for ilComponentBuildPluginInfoObjectiveTest::testAddPlugins
Definition: plugin.php:23
+ Here is the call graph for this function:

◆ addNewType()

static array static ilDBUpdateNewObjectType::addNewType ( string  $type_id,
string  $type_title 
)
static

Add new type to object data.

Deprecated:
use Services/Object/classes/Setup/class.ilObjectNewTypeAddedObjective.php instead

Definition at line 142 of file class.ilDBUpdateNewObjectType.php.

References $id, $ilDB, and ilObject\_getObjectTypeIdByTitle().

142  : int
143  {
144  global $ilDB;
145  $db = $ilDB;
146 
147  // check if it already exists
149  if ($id) {
150  return $id;
151  }
152 
153  $id = $db->nextId("object_data");
154 
155  $values = [
156  'obj_id' => ['integer', $id],
157  'type' => ['text', 'typ'],
158  'title' => ['text', $type_id],
159  'description' => ['text', $type_title],
160  'owner' => ['integer', -1],
161  'create_date' => ['timestamp', date("Y-m-d H:i:s")],
162  'last_update' => ['timestamp', date("Y-m-d H:i:s")]
163  ];
164 
165  $db->insert("object_data", $values);
166 
167  return $id;
168  }
$id
plugin.php for ilComponentBuildPluginInfoObjectiveTest::testAddPlugins
Definition: plugin.php:23
static _getObjectTypeIdByTitle(string $type, ?\ilDBInterface $ilDB=null)
+ Here is the call graph for this function:

◆ addRBACCreate()

static ilDBUpdateNewObjectType::addRBACCreate ( string  $id,
string  $title,
array  $parent_types 
)
static

Add create RBAC operations for parent object types.

Deprecated:
use Services/AccessControl/classes/Setup/class.ilAccessCustomRBACOperationAddedObjective.php instead use 'create' for class param

Definition at line 397 of file class.ilDBUpdateNewObjectType.php.

References ilObject\_getObjectTypeIdByTitle().

397  : void
398  {
399  $ops_id = self::addCustomRBACOperation($id, $title, 'create', 9999);
400 
401  foreach ($parent_types as $type) {
402  $type_id = ilObject::_getObjectTypeIdByTitle($type);
403  if ($type_id) {
404  self::addRBACOperation($type_id, $ops_id);
405  }
406  }
407  }
$id
plugin.php for ilComponentBuildPluginInfoObjectiveTest::testAddPlugins
Definition: plugin.php:23
static _getObjectTypeIdByTitle(string $type, ?\ilDBInterface $ilDB=null)
+ Here is the call graph for this function:

◆ addRBACOperation()

static ilDBUpdateNewObjectType::addRBACOperation ( int  $type_id,
int  $ops_id 
)
static

Add RBAC operation.

Deprecated:
use Services/AccessControl/classes/Setup/class.ilAccessRBACOperationsAddedObjective.php instead

Definition at line 193 of file class.ilDBUpdateNewObjectType.php.

References $ilDB, and $res.

193  : bool
194  {
195  global $ilDB;
196 
197  $sql =
198  "SELECT typ_id" . PHP_EOL
199  . "FROM rbac_ta" . PHP_EOL
200  . "WHERE typ_id = " . $ilDB->quote($type_id, "integer") . PHP_EOL
201  . "AND ops_id = " . $ilDB->quote($ops_id, "integer") . PHP_EOL
202  ;
203  $res = $ilDB->query($sql);
204 
205  if ($ilDB->numRows($res)) {
206  return false;
207  }
208 
209  $fields = [
210  'typ_id' => ['integer', $type_id],
211  'ops_id' => ['integer', $ops_id]
212  ];
213  $ilDB->insert('rbac_ta', $fields);
214 
215  return true;
216  }
$res
Definition: ltiservices.php:66

◆ addRBACOperations()

static ilDBUpdateNewObjectType::addRBACOperations ( int  $type_id,
array  $operations 
)
static

Add RBAC operations for type.

Deprecated:
use Services/AccessControl/classes/Setup/class.ilAccessRBACOperationsAddedObjective.php instead

Definition at line 175 of file class.ilDBUpdateNewObjectType.php.

References ilRbacReview\_getCustomRBACOperationId().

175  : void
176  {
177  foreach ($operations as $ops_id) {
178  if (self::isValidRBACOperation($ops_id)) {
179  if ($ops_id == self::RBAC_OP_COPY) {
180  $ops_id = ilRbacReview::_getCustomRBACOperationId('copy');
181  }
182 
183  self::addRBACOperation($type_id, $ops_id);
184  }
185  }
186  }
static _getCustomRBACOperationId(string $operation, ?\ilDBInterface $ilDB=null)
+ Here is the call graph for this function:

◆ applyInitialPermissionGuideline()

static ilDBUpdateNewObjectType::applyInitialPermissionGuideline ( string  $objectType,
bool  $hasLearningProgress = false,
bool  $usedForAuthoring = false 
)
static

This method will apply the 'Initial Permissions Guideline' when introducing new object types.

This method does not apply permissions to existing obejcts in the ILIAS repository ('change existing objects').

Parameters
bool$hasLearningProgressA boolean flag whether the object type supports learning progress
bool$usedForAuthoringA boolean flag to tell whether the object type is mainly used for authoring
See also
https://www.ilias.de/docu/goto_docu_wiki_wpage_2273_1357.html
Deprecated:
use Services/AccessControl/classes/Setup/class.ilAccessInitialPermissionGuidelineAppliedObjective.php instead

Definition at line 579 of file class.ilDBUpdateNewObjectType.php.

References $DIC, $ilDB, $res, ilRbacReview\_getCustomRBACOperationId(), ilObject\_getObjectTypeIdByTitle(), and ILIAS\Repository\int().

583  : void {
584  global $DIC;
585 
586  $ilDB = $DIC['ilDB'];
587 
588  $objectTypeId = ilObject::_getObjectTypeIdByTitle($objectType);
589  if (!$objectTypeId) {
590  die("Something went wrong, there MUST be valid id for object_type " . $objectType);
591  }
592 
593  $objectCreateOperationId = ilRbacReview::_getCustomRBACOperationId('create_' . $objectType);
594  if (!$objectCreateOperationId) {
595  die("Something went wrong, missing CREATE operation id for object type " . $objectType);
596  }
597 
598  $globalRoleFolderId = 8; // Maybe there is another way to determine this id
599 
600  $learningProgressPermissions = [];
601  if ($hasLearningProgress) {
602  $learningProgressPermissions = array_filter([
603  ilRbacReview::_getCustomRBACOperationId('read_learning_progress'),
604  ilRbacReview::_getCustomRBACOperationId('edit_learning_progress'),
605  ]);
606  }
607 
608  foreach (self::$initialPermissionDefinition as $roleType => $roles) {
609  foreach ($roles as $roleTitle => $definition) {
610  if (
611  $usedForAuthoring &&
612  array_key_exists('ignore_for_authoring_objects', $definition) &&
613  true === $definition['ignore_for_authoring_objects']
614  ) {
615  continue;
616  }
617 
618  if (array_key_exists('id', $definition) && is_numeric($definition['id'])) {
619  // According to JF (2018-07-02), some roles have to be selected by if, not by title
620  $query = "SELECT obj_id FROM object_data WHERE type = %s AND obj_id = %s";
621  $queryTypes = ['text', 'integer'];
622  $queryValues = [$roleType, $definition['id']];
623  } else {
624  $query = "SELECT obj_id FROM object_data WHERE type = %s AND title = %s";
625  $queryTypes = ['text', 'text'];
626  $queryValues = [$roleType, $roleTitle];
627  }
628 
629  $res = $ilDB->queryF($query, $queryTypes, $queryValues);
630  if (1 == $ilDB->numRows($res)) {
631  $row = $ilDB->fetchAssoc($res);
632  $roleId = (int) $row['obj_id'];
633 
634  $operationIds = [];
635 
636  if (array_key_exists('object', $definition) && is_array($definition['object'])) {
637  $operationIds = array_merge($operationIds, $definition['object']);
638  }
639 
640  if (array_key_exists('lp', $definition) && true === $definition['lp']) {
641  $operationIds = array_merge($operationIds, $learningProgressPermissions);
642  }
643 
644  self::setRolePermission(
645  $roleId,
646  $objectType,
647  array_filter(array_map('intval', $operationIds)),
648  $globalRoleFolderId
649  );
650 
651  if (array_key_exists('create', $definition) && is_array($definition['create'])) {
652  foreach ($definition['create'] as $containerObjectType) {
653  self::setRolePermission(
654  $roleId,
655  $containerObjectType,
656  [
657  $objectCreateOperationId
658  ],
659  $globalRoleFolderId
660  );
661  }
662  }
663  }
664  }
665  }
666  }
$res
Definition: ltiservices.php:66
static _getCustomRBACOperationId(string $operation, ?\ilDBInterface $ilDB=null)
global $DIC
Definition: shib_login.php:22
static _getObjectTypeIdByTitle(string $type, ?\ilDBInterface $ilDB=null)
+ Here is the call graph for this function:

◆ cloneOperation()

static ilDBUpdateNewObjectType::cloneOperation ( string  $obj_type,
int  $source_op_id,
int  $target_op_id 
)
static

Clone RBAC-settings between operations.

Deprecated:
use Services/AccessControl/classes/Setup/class.ilAccessRBACOperationClonedObjective.php instead

Definition at line 479 of file class.ilDBUpdateNewObjectType.php.

References $ilDB, and $res.

479  : void
480  {
481  global $ilDB;
482  $db = $ilDB;
483 
484  $sql =
485  "SELECT rpa.rol_id, rpa.ops_id, rpa.ref_id" . PHP_EOL
486  . "FROM rbac_pa rpa" . PHP_EOL
487  . "JOIN object_reference ref ON (ref.ref_id = rpa.ref_id)" . PHP_EOL
488  . "JOIN object_data od ON (od.obj_id = ref.obj_id AND od.type = " . $db->quote($obj_type, "text") . ")" . PHP_EOL
489  . "WHERE (" . $db->like("ops_id", "text", "%i:" . $source_op_id . "%") . PHP_EOL
490  . "OR " . $db->like("ops_id", "text", "%:\"" . $source_op_id . "\";%") . ")" . PHP_EOL
491  ;
492 
493  $res = $db->query($sql);
494  while ($row = $db->fetchAssoc($res)) {
495  $ops = unserialize($row["ops_id"]);
496  // the query above could match by array KEY, we need extra checks
497  if (in_array($source_op_id, $ops) && !in_array($target_op_id, $ops)) {
498  $ops[] = $target_op_id;
499 
500  $sql =
501  "UPDATE rbac_pa" . PHP_EOL
502  . "SET ops_id = " . $db->quote(serialize($ops), "text") . PHP_EOL
503  . "WHERE rol_id = " . $db->quote($row["rol_id"], "integer") . PHP_EOL
504  . "AND ref_id = " . $db->quote($row["ref_id"], "integer") . PHP_EOL
505  ;
506 
507  $db->manipulate($sql);
508  }
509  }
510 
511  // rbac_templates
512  $tmp = [];
513  $sql =
514  "SELECT rol_id, parent, ops_id" . PHP_EOL
515  . "FROM rbac_templates" . PHP_EOL
516  . "WHERE type = " . $db->quote($obj_type, "text") . PHP_EOL
517  . "AND (ops_id = " . $db->quote($source_op_id, "integer") . PHP_EOL
518  . "OR ops_id = " . $db->quote($target_op_id, "integer") . ")" . PHP_EOL
519  ;
520 
521  $res = $db->query($sql);
522  while ($row = $db->fetchAssoc($res)) {
523  $tmp[$row["rol_id"]][$row["parent"]][] = $row["ops_id"];
524  }
525 
526  foreach ($tmp as $role_id => $parents) {
527  foreach ($parents as $parent_id => $ops_ids) {
528  // only if the target op is missing
529  if (count($ops_ids) < 2 && in_array($source_op_id, $ops_ids)) {
530  $values = [
531  "rol_id" => ["integer", $role_id],
532  "type" => ["text", $obj_type],
533  "ops_id" => ["integer", $target_op_id],
534  "parent" => ["integer", $parent_id]
535  ];
536 
537  $db->insert("rbac_templates", $values);
538  }
539  }
540  }
541  }
$res
Definition: ltiservices.php:66

◆ deleteRBACOperation()

static ilDBUpdateNewObjectType::deleteRBACOperation ( string  $type,
int  $ops_id 
)
static

Delete rbac operation.

Deprecated:
use Services/AccessControl/classes/Setup/class.ilAccessRBACOperationDeletedObjective.php instead

Definition at line 242 of file class.ilDBUpdateNewObjectType.php.

References $GLOBALS, $ilDB, and ilObject\_getObjectTypeIdByTitle().

242  : void
243  {
244  global $ilDB;
245 
246  if (!$type || !$ops_id) {
247  return;
248  }
249 
250  $type_id = ilObject::_getObjectTypeIdByTitle($type);
251  if (!$type_id) {
252  return;
253  }
254 
255  $sql =
256  "DELETE FROM rbac_ta" . PHP_EOL
257  . "WHERE typ_id = " . $ilDB->quote($type_id, "integer") . PHP_EOL
258  . "AND ops_id = " . $ilDB->quote($ops_id, "integer") . PHP_EOL
259  ;
260  $GLOBALS['ilLog']->write(__METHOD__ . ': ' . $sql);
261  $ilDB->manipulate($sql);
262 
263  self::deleteRBACTemplateOperation($type, $ops_id);
264  }
$GLOBALS["DIC"]
Definition: wac.php:53
static _getObjectTypeIdByTitle(string $type, ?\ilDBInterface $ilDB=null)
+ Here is the call graph for this function:

◆ deleteRBACTemplateOperation()

static ilDBUpdateNewObjectType::deleteRBACTemplateOperation ( string  $type,
int  $ops_id 
)
static

Delete operation for type in templates.

Deprecated:
use Services/AccessControl/classes/Setup/class.ilAccessRBACOperationDeletedObjective.php instead

Definition at line 271 of file class.ilDBUpdateNewObjectType.php.

References $GLOBALS, and $ilDB.

271  : void
272  {
273  global $ilDB;
274 
275  if (!$type || !$ops_id) {
276  return;
277  }
278 
279  $sql =
280  "DELETE FROM rbac_templates" . PHP_EOL
281  . "WHERE type = " . $ilDB->quote($type, "text") . PHP_EOL
282  . "ops_id = " . $ilDB->quote($ops_id, "integer") . PHP_EOL
283  ;
284  $GLOBALS['ilLog']->write(__METHOD__ . ': ' . $sql);
285  $ilDB->manipulate($sql);
286  }
$GLOBALS["DIC"]
Definition: wac.php:53

◆ getCustomRBACOperationId()

static ilDBUpdateNewObjectType::getCustomRBACOperationId ( string  $operation)
static

Get id of RBAC operation.

Deprecated:
use ilRbacReview::_getCustomRBACOperationId instead

Definition at line 312 of file class.ilDBUpdateNewObjectType.php.

References $ilDB, $res, and null.

312  : ?int
313  {
314  global $ilDB;
315 
316  $sql =
317  "SELECT ops_id" . PHP_EOL
318  . "FROM rbac_operations" . PHP_EOL
319  . "WHERE operation = " . $ilDB->quote($operation, "text") . PHP_EOL
320  ;
321 
322  $res = $ilDB->query($sql);
323  if ($ilDB->numRows($res) == 0) {
324  return null;
325  }
326 
327  $row = $ilDB->fetchAssoc($res);
328  return (int) $row["ops_id"] ?? null;
329  }
$res
Definition: ltiservices.php:66
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null

◆ getObjectTypeId()

static ilDBUpdateNewObjectType::getObjectTypeId ( string  $type)
static

Get id for object data type entry.

Deprecated:
use ilObject::_getObjectTypeIdByTitle() instead

Definition at line 372 of file class.ilDBUpdateNewObjectType.php.

References $ilDB, $res, and null.

372  : ?int
373  {
374  global $ilDB;
375 
376  $sql =
377  "SELECT obj_id FROM object_data" . PHP_EOL
378  . "WHERE type = 'typ'" . PHP_EOL
379  . "AND title = " . $ilDB->quote($type, 'text') . PHP_EOL
380  ;
381 
382  $res = $ilDB->query($sql);
383  if ($ilDB->numRows($res) == 0) {
384  return null;
385  }
386 
387  $row = $ilDB->fetchAssoc($res);
388  return (int) $row['obj_id'] ?? null;
389  }
$res
Definition: ltiservices.php:66
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null

◆ isRBACOperation()

static ilDBUpdateNewObjectType::isRBACOperation ( int  $type_id,
int  $ops_id 
)
static

Check if rbac operation exists.

Deprecated:
use ilRbacReview::_isRBACOperation instead

Definition at line 223 of file class.ilDBUpdateNewObjectType.php.

References $ilDB.

223  : bool
224  {
225  global $ilDB;
226 
227  $sql =
228  "SELECT typ_id" . PHP_EOL
229  . "FROM rbac_ta" . PHP_EOL
230  . "WHERE typ_id = " . $ilDB->quote($type_id, "integer") . PHP_EOL
231  . "AND ops_id = " . $ilDB->quote($ops_id, "integer") . PHP_EOL
232  ;
233 
234  return (bool) $ilDB->numRows($ilDB->query($sql));
235  }

◆ isValidRBACOperation()

static ilDBUpdateNewObjectType::isValidRBACOperation ( int  $ops_id)
staticprotected

Check if given RBAC operation id is valid.

Deprecated:

Definition at line 293 of file class.ilDBUpdateNewObjectType.php.

References $valid.

293  : bool
294  {
295  $valid = [
296  self::RBAC_OP_EDIT_PERMISSIONS,
297  self::RBAC_OP_VISIBLE,
298  self::RBAC_OP_READ,
299  self::RBAC_OP_WRITE,
300  self::RBAC_OP_DELETE,
301  self::RBAC_OP_COPY
302  ];
303 
304  return in_array($ops_id, $valid);
305  }
$valid

◆ setRolePermission()

static ilDBUpdateNewObjectType::setRolePermission ( int  $a_rol_id,
string  $a_type,
array  $a_ops,
int  $a_ref_id 
)
static
Deprecated:
use Services/AccessControl/classes/Setup/class.ilAccessRolePermissionSetObjective.php instead

Definition at line 546 of file class.ilDBUpdateNewObjectType.php.

References $DIC, $ilDB, and ilRbacReview\_getCustomRBACOperationId().

546  : void
547  {
548  global $DIC;
549 
550  $ilDB = $DIC['ilDB'];
551 
552  foreach ($a_ops as $ops_id) {
553  if ($ops_id == self::RBAC_OP_COPY) {
554  $ops_id = ilRbacReview::_getCustomRBACOperationId('copy');
555  }
556 
557  $ilDB->replace(
558  'rbac_templates',
559  [
560  'rol_id' => ['integer', $a_rol_id],
561  'type' => ['text', $a_type],
562  'ops_id' => ['integer', $ops_id],
563  'parent' => ['integer', $a_ref_id]
564  ],
565  []
566  );
567  }
568  }
static _getCustomRBACOperationId(string $operation, ?\ilDBInterface $ilDB=null)
global $DIC
Definition: shib_login.php:22
+ Here is the call graph for this function:

◆ updateOperationOrder()

static ilDBUpdateNewObjectType::updateOperationOrder ( string  $operation,
int  $pos 
)
static

Change order of operations.

Deprecated:
use Services/AccessControl/classes/Setup/class.ilAccessRBACOperationOrderUpdatedObjective.php instead

Definition at line 414 of file class.ilDBUpdateNewObjectType.php.

References $ilDB.

414  : void
415  {
416  global $ilDB;
417 
418  $ilDB->update(
419  'rbac_operations',
420  ['op_order' => ['integer', $pos]],
421  ['operation' => ['text', $operation]]
422  );
423  }

Field Documentation

◆ $initialPermissionDefinition

array ilDBUpdateNewObjectType::$initialPermissionDefinition
staticprotected
Initial value:
= [
'role' => [
'User' => [
'id' => 4

Definition at line 38 of file class.ilDBUpdateNewObjectType.php.

◆ RBAC_OP_COPY

const ilDBUpdateNewObjectType::RBAC_OP_COPY = 99

Definition at line 36 of file class.ilDBUpdateNewObjectType.php.

◆ RBAC_OP_DELETE

const ilDBUpdateNewObjectType::RBAC_OP_DELETE = 6

Definition at line 35 of file class.ilDBUpdateNewObjectType.php.

◆ RBAC_OP_EDIT_PERMISSIONS

const ilDBUpdateNewObjectType::RBAC_OP_EDIT_PERMISSIONS = 1

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

◆ RBAC_OP_READ

const ilDBUpdateNewObjectType::RBAC_OP_READ = 3

Definition at line 33 of file class.ilDBUpdateNewObjectType.php.

◆ RBAC_OP_VISIBLE

const ilDBUpdateNewObjectType::RBAC_OP_VISIBLE = 2

Definition at line 32 of file class.ilDBUpdateNewObjectType.php.

◆ RBAC_OP_WRITE

const ilDBUpdateNewObjectType::RBAC_OP_WRITE = 4

Definition at line 34 of file class.ilDBUpdateNewObjectType.php.


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