24use PHPUnit\Framework\TestCase;
 
   40    protected function setUp() : void
 
   42        include_once(
"./Services/PHPUnit/classes/class.ilUnitUtil.php");
 
   43        ilUnitUtil::performInitialisation();
 
   56        $rbacreview = 
$DIC[
'rbacreview'];
 
   57        $rbacadmin = 
$DIC[
'rbacadmin'];
 
   60        #$rbacadmin->setProtected(1,4,'y'); 
   61        #$prot = $rbacreview->isProtected(8,4); 
   62        #$this->assertEquals($prot,true); 
   63        #$rbacadmin->setProtected(1,4,'n'); 
   64        #$prot = $rbacreview->isProtected(8,4); 
   65        #$this->assertEquals($prot,false); 
   67        $rbacreview->getRoleListByObject(8);
 
   68        $rbacreview->getAssignableRoles();
 
   71        $ass = $rbacreview->isAssignable(4, 8);
 
   72        $this->assertEquals($ass, 
true);
 
   74        $roles = $rbacreview->getRolesOfObject(8);
 
   76        $obj = $rbacreview->getObjectOfRole(4);
 
   77        $this->assertEquals(8, $obj);
 
   88        $rbacreview = 
$DIC[
'rbacreview'];
 
   89        $rbacadmin = 
$DIC[
'rbacadmin'];
 
   93        $rbacreview->assignedUsers(4);
 
   94        $rbacreview->assignedRoles(6);
 
  107        $rbacreview = 
$DIC[
'rbacreview'];
 
  108        $rbacadmin = 
$DIC[
'rbacadmin'];
 
  110        $sess_ops = $rbacreview->getOperationsOnTypeString(
'sess');
 
  112        $rbacadmin->assignOperationToObject($rbacreview->getTypeId(
'sess'), 
'7');
 
  116        $rbacadmin->deassignOperationFromObject($rbacreview->getTypeId(
'sess'), 
'7');
 
  117        $new_sess_ops = $rbacreview->getOperationsOnTypeString(
'sess');
 
  118        $this->assertEquals($sess_ops, $new_sess_ops);
 
  129        $rbacreview = 
$DIC[
'rbacreview'];
 
  130        $rbacadmin = 
$DIC[
'rbacadmin'];
 
  132        $sess_ops = $rbacreview->getOperationsOnTypeString(
'cat');
 
  134        $rbacadmin->revokePermission(1, 4);
 
  135        $rbacadmin->grantPermission(4, array(2,3), 1);
 
  146        include_once 
'./Services/Conditions/classes/class.ilConditionHandler.php';
 
  152        $handler->setTargetRefId(99999);
 
  153        $handler->setTargetObjId(99998);
 
  154        $handler->setTargetType(
'xxx');
 
  155        $handler->setTriggerRefId(99997);
 
  156        $handler->setTriggerObjId(99996);
 
  157        $handler->setTriggerType(
'yyy');
 
  158        $handler->setReferenceHandlingType(0);
 
  159        $handler->enableAutomaticValidation(
false);
 
  160        $suc = $handler->storeCondition();
 
  161        $this->assertEquals($suc, 
true);
 
  163        $suc = $handler->checkExists();
 
  164        $this->assertEquals($suc, 
false);
 
  166        $suc = $handler->delete(99999);
 
  167        $this->assertEquals($suc, 
true);
 
  170        $handler->deleteByObjId(-1);
 
  171        $handler->deleteCondition(-1);
 
  182        include_once 
'./Services/AccessControl/classes/class.ilAccessHandler.php';
 
  185        $handler->setResults(array(1,2,3));
 
  186        $handler->storeCache();
 
  187        $handler->readCache();
 
  188        $res = $handler->getResults();
 
  190        $this->assertEquals(array(1,2,3), 
$res);
 
  204        $rbacreview = 
$DIC[
'rbacreview'];
 
  205        $rbacadmin = 
$DIC[
'rbacadmin'];
 
  207        $rbacadmin->assignUser(10, 15);
 
  209        $this->assertTrue($rbacreview->isAssigned(15, 10));
 
  212        $rbacadmin->assignUser(10, 15);
 
  227        $rbacreview = 
$DIC[
'rbacreview'];
 
  228        $rbacadmin = 
$DIC[
'rbacadmin'];
 
  230        $rbacadmin->deassignUser(10, 15);
 
  232        $this->assertFalse($rbacreview->isAssigned(15, 10));
 
  246        $rbacreview = 
$DIC[
'rbacreview'];
 
  247        $rbacadmin = 
$DIC[
'rbacadmin'];
 
  249        $rbacadmin->grantPermission(10, array(10,20,30), 60);
 
  251        $this->assertEquals($rbacreview->getActiveOperationsOfRole(60, 10), array(10,20,30));
 
  267        $rbacreview = 
$DIC[
'rbacreview'];
 
  268        $rbacadmin = 
$DIC[
'rbacadmin'];
 
  271        $req = 
$ilDB->query(
"SELECT ref.ref_id FROM object_reference AS ref LEFT JOIN object_data AS data ON data.obj_id = ref.obj_id WHERE data.type='seas';");
 
  276            $ref_id = $row[
"ref_id"];
 
  279        $req = 
$ilDB->query(
"SELECT obj_id FROM object_data WHERE type='role';");
 
  281        $role1 = 
$ilDB->fetchAssoc(
$req)[
"obj_id"];
 
  282        $role2 = 
$ilDB->fetchAssoc(
$req)[
"obj_id"];
 
  283        $role3 = 
$ilDB->fetchAssoc(
$req)[
"obj_id"];
 
  286        $opt1 = $rbacreview->getActiveOperationsOfRole($ref_id, $role1);
 
  287        $opt2 = $rbacreview->getActiveOperationsOfRole($ref_id, $role2);
 
  288        $opt3 = $rbacreview->getActiveOperationsOfRole($ref_id, $role3);
 
  290        $rbacadmin->grantPermission($role1, array(1,2,3,4,5), $ref_id);
 
  291        $rbacadmin->grantPermission($role2, array(1,2,3,4,5), $ref_id);
 
  294        $rbacadmin->revokePermission($ref_id);
 
  295        $this->assertEmpty($rbacreview->getActiveOperationsOfRole($ref_id, $role1));
 
  296        $this->assertEmpty($rbacreview->getActiveOperationsOfRole($ref_id, $role2));
 
  299        $rbacadmin->grantPermission($role1, array(1,2,3,4,5), $ref_id);
 
  301        $rbacadmin->revokePermission($ref_id, $role1);
 
  302        $this->assertEmpty($rbacreview->getActiveOperationsOfRole($ref_id, $role1));
 
  305        $rbacadmin->grantPermission($role2, array(1,2,3,4,5), $ref_id);
 
  306        $rbacadmin->grantPermission($role3, array(1,2,3,4,5), $ref_id);
 
  309        $rbacadmin->revokePermission($ref_id, 0, 
false);
 
  310        $this->assertEmpty($rbacreview->getActiveOperationsOfRole($ref_id, $role2));
 
  311        $this->assertEmpty($rbacreview->getActiveOperationsOfRole($ref_id, $role3));
 
  313        $rbacadmin->grantPermission($role3, array(1,2,3,4,5), $ref_id);
 
  315        $rbacadmin->revokePermission($ref_id, $role3, 
false);
 
  316        $this->assertEmpty($rbacreview->getActiveOperationsOfRole($ref_id, $role3));
 
  319        $rbacadmin->grantPermission($role1, $opt1, $ref_id);
 
  320        $rbacadmin->grantPermission($role2, $opt2, $ref_id);
 
  321        $rbacadmin->grantPermission($role3, $opt3, $ref_id);
 
  336        $rbacreview = 
$DIC[
'rbacreview'];
 
  337        $rbacadmin = 
$DIC[
'rbacadmin'];
 
  338        $tree = 
$DIC[
'tree'];
 
  340        $req = 
$ilDB->query(
"SELECT ref.ref_id FROM object_reference AS ref LEFT JOIN object_data AS data ON data.obj_id = ref.obj_id WHERE data.type='adm';");
 
  345            $ref_id = $row[
"ref_id"];
 
  348        $childs = $tree->getChildIds($ref_id);
 
  350        $req = 
$ilDB->query(
"SELECT obj_id FROM object_data WHERE type='role';");
 
  352        $role = 
$ilDB->fetchAssoc(
$req)[
"obj_id"];
 
  356        foreach ($childs as $id) {
 
  357            $ops[$id] = $rbacreview->getActiveOperationsOfRole($id, $role);
 
  358            $rbacadmin->grantPermission($role, array(1,2,3,4,5), $id);
 
  362        $rbacadmin->revokeSubtreePermissions($ref_id, $role);
 
  364        foreach ($childs as $id) {
 
  365            $this->assertEmpty($rbacreview->getActiveOperationsOfRole($id, $role));
 
  366            $rbacadmin->grantPermission($role, $ops[$id], $id);
 
  382        $rbacreview = 
$DIC[
'rbacreview'];
 
  383        $rbacadmin = 
$DIC[
'rbacadmin'];
 
  384        $list = array(1001, 1003, 1005, 1007);
 
  386        foreach ($list as $id) {
 
  387            $rbacadmin->grantPermission(123, array(1,2,3,4,5), $id);
 
  390        $rbacadmin->revokePermissionList($list, 123);
 
  392        foreach ($list as $id) {
 
  393            $this->assertEmpty($rbacreview->getActiveOperationsOfRole($id, 123));
 
  408        $rbacreview = 
$DIC[
'rbacreview'];
 
  409        $rbacadmin = 
$DIC[
'rbacadmin'];
 
  410        $rbacadmin->deleteTemplate(1010);
 
  412        $rbacadmin->setRolePermission(1010, 
"a", array(10,11,13,15), 1100);
 
  413        $rbacadmin->setRolePermission(1010, 
"b", array(20,22,23,25), 1100);
 
  415        $assert = array(
"a" => array(10,11,13,15),
"b" => array(20,22,23,25));
 
  416        $dest = $rbacreview->getAllOperationsOfRole(1010, 1100);
 
  421        $this->assertEquals($assert, $dest);
 
  423        $rbacadmin->deleteTemplate(1010);
 
  438        $rbacreview = 
$DIC[
'rbacreview'];
 
  439        $rbacadmin = 
$DIC[
'rbacadmin'];
 
  440        $rbacadmin->deleteTemplate(1010);
 
  442        $rbacadmin->setRolePermission(1010, 
"a", array(10,11,13,15), 1100);
 
  443        $rbacadmin->setRolePermission(1010, 
"b", array(20,22,23,25), 1100);
 
  445        $rbacadmin->deleteRolePermission(1010, 1100);
 
  447        $this->assertEmpty($rbacreview->getAllOperationsOfRole(1010, 1100));
 
  449        $rbacadmin->setRolePermission(1010, 
"a", array(10,11,13,15), 1100);
 
  450        $rbacadmin->setRolePermission(1010, 
"b", array(20,22,23,25), 1100);
 
  452        $rbacadmin->deleteRolePermission(1010, 1100, 
"a");
 
  454        $assert = array(
"b" => array(20,22,23,25));
 
  455        $dest = $rbacreview->getAllOperationsOfRole(1010, 1100);
 
  459        $this->assertEquals($assert, $dest);
 
  461        $rbacadmin->deleteTemplate(1010);
 
  476        $rbacreview = 
$DIC[
'rbacreview'];
 
  477        $rbacadmin = 
$DIC[
'rbacadmin'];
 
  478        $rbacadmin->deleteTemplate(1010);
 
  479        $rbacadmin->deleteTemplate(2020);
 
  481        $rbacadmin->setRolePermission(1010, 
"blub", array(10,11), 1100);
 
  482        $rbacadmin->setRolePermission(2020, 
"bulb", array(20,22), 2200);
 
  484        $rbacadmin->copyRoleTemplatePermissions(1010, 1100, 2200, 2020);
 
  486        $one = $rbacreview->getAllOperationsOfRole(1010, 1100);
 
  487        $two = $rbacreview->getAllOperationsOfRole(2020, 2200);
 
  490        $this->assertEquals($one, $two);
 
  491        $rbacadmin->deleteTemplate(1010);
 
  492        $rbacadmin->deleteTemplate(2020);
 
  510        $rbacreview = 
$DIC[
'rbacreview'];
 
  511        $rbacadmin = 
$DIC[
'rbacadmin'];
 
  514        $req = 
$ilDB->query(
"SELECT ref.ref_id FROM object_reference AS ref LEFT JOIN object_data AS data ON data.obj_id = ref.obj_id WHERE data.type='seas';");
 
  519            $seas = $row[
"ref_id"];
 
  522        $req = 
$ilDB->query(
"SELECT ref.ref_id FROM object_reference AS ref LEFT JOIN object_data AS data ON data.obj_id = ref.obj_id WHERE data.type='mail';");
 
  527            $mail = $row[
"ref_id"];
 
  530        $req = 
$ilDB->query(
"SELECT obj_id FROM object_data WHERE type='role';");
 
  532        $role = 
$ilDB->fetchAssoc(
$req)[
"obj_id"];
 
  535        $opt_mail = $rbacreview->getActiveOperationsOfRole($mail, $role);
 
  536        $opt_seas = $rbacreview->getActiveOperationsOfRole($seas, $role);
 
  537        $opt_temp_seas = $rbacreview->getAllOperationsOfRole($role, $seas);
 
  538        $opt_temp_mail = $rbacreview->getAllOperationsOfRole($role, $mail);
 
  541        $rbacadmin->setRolePermission($role, 
"mail", array(1,2,3,4,5), $mail);
 
  542        $rbacadmin->grantPermission($role, array(1,2,3,4,5), $mail);
 
  543        $rbacadmin->setRolePermission($role, 
"seas", array(5,6,7,8,9), $seas);
 
  544        $rbacadmin->grantPermission($role, array(5,6,7,8,9), $seas);
 
  546        $rbacadmin->copyRolePermissions($role, $seas, $mail, $role);
 
  548            $rbacreview->getActiveOperationsOfRole($seas, $role),
 
  549            $rbacreview->getActiveOperationsOfRole($mail, $role)
 
  553        $rbacadmin->grantPermission($role, $opt_seas, $seas);
 
  554        $rbacadmin->grantPermission($role, $opt_mail, $mail);
 
  556        $rbacadmin->deleteRolePermission($role, $mail);
 
  557        $rbacadmin->deleteRolePermission($role, $seas);
 
  559        foreach ($opt_temp_seas as 
$type => $opt) {
 
  560            $rbacadmin->setRolePermission($role, 
$type, $opt, $seas);
 
  563        foreach ($opt_temp_mail as 
$type => $opt) {
 
  564            $rbacadmin->setRolePermission($role, 
$type, $opt, $mail);
 
  580        $rbacreview = 
$DIC[
'rbacreview'];
 
  581        $rbacadmin = 
$DIC[
'rbacadmin'];
 
  582        $rbacadmin->deleteTemplate(1010);
 
  583        $rbacadmin->deleteTemplate(2020);
 
  584        $rbacadmin->deleteTemplate(3030);
 
  586        $rbacadmin->setRolePermission(1010, 
"a", array(10,11,13,15), 1100);
 
  587        $rbacadmin->setRolePermission(2020, 
"a", array(11,12,13,16), 2200);
 
  589        $rbacadmin->setRolePermission(1010, 
"b", array(20,22,23,25), 1100);
 
  590        $rbacadmin->setRolePermission(2020, 
"b", array(20,23,24,26), 2200);
 
  592        $rbacadmin->setRolePermission(3030, 
"c", array(30,33), 3300);
 
  593        $rbacadmin->setRolePermission(3030, 
"a", array(30,33), 3300);
 
  594        $rbacadmin->setRolePermission(3030, 
"b", array(30,33), 3300);
 
  596        $rbacadmin->copyRolePermissionIntersection(1010, 1100, 2020, 2200, 3300, 3030);
 
  598        $intersect = array(
"a" => array(11,13), 
"b" => array(20,23));
 
  599        $dest = $rbacreview->getAllOperationsOfRole(3030, 3300);
 
  605        $this->assertEquals($intersect, $dest);
 
  607        $rbacadmin->deleteTemplate(1010);
 
  608        $rbacadmin->deleteTemplate(2020);
 
  609        $rbacadmin->deleteTemplate(3030);
 
  625        $rbacreview = 
$DIC[
'rbacreview'];
 
  626        $rbacadmin = 
$DIC[
'rbacadmin'];
 
  627        $rbacadmin->deleteTemplate(1010);
 
  628        $rbacadmin->deleteTemplate(2020);
 
  629        $rbacadmin->deleteTemplate(3030);
 
  631        $rbacadmin->setRolePermission(1010, 
"a", array(10,11,13,15), 1100);
 
  632        $rbacadmin->setRolePermission(2020, 
"a", array(11,12,13,16), 2200);
 
  634        $rbacadmin->setRolePermission(1010, 
"b", array(20,22,23,25), 1100);
 
  635        $rbacadmin->setRolePermission(2020, 
"b", array(20,23,24,26), 2200);
 
  637        $rbacadmin->setRolePermission(1010, 
"c", array(30,33,34,35), 1100);
 
  639        $rbacadmin->copyRolePermissionUnion(1010, 1100, 2020, 2200, 3030, 3300);
 
  641        $union = array(
"a" => array(10,11,12,13,15,16), 
"b" => array(20,22,23,24,25,26), 
"c" => array(30,33,34,35));
 
  642        $dest = $rbacreview->getAllOperationsOfRole(3030, 3300);
 
  648        $this->assertEquals($union, $dest);
 
  650        $rbacadmin->deleteTemplate(1010);
 
  651        $rbacadmin->deleteTemplate(2020);
 
  652        $rbacadmin->deleteTemplate(3030);
 
  667        $rbacreview = 
$DIC[
'rbacreview'];
 
  668        $rbacadmin = 
$DIC[
'rbacadmin'];
 
  669        $rbacadmin->deleteTemplate(1010);
 
  670        $rbacadmin->deleteTemplate(2020);
 
  672        $rbacadmin->setRolePermission(1010, 
"a", array(10,11,13,15), 1100);
 
  673        $rbacadmin->setRolePermission(2020, 
"a", array(11,12,13,16), 2200);
 
  675        $rbacadmin->setRolePermission(1010, 
"b", array(20,22,23,25), 1100);
 
  676        $rbacadmin->setRolePermission(2020, 
"b", array(20,23,24,26), 2200);
 
  678        $rbacadmin->setRolePermission(2020, 
"c", array(30,33,34,35), 2200);
 
  680        $rbacadmin->copyRolePermissionSubtract(1010, 1100, 2020, 2200);
 
  682        $subtract = array(
"a" => array(12,16), 
"b" => array(24,26), 
"c" => array(30,33,34,35));
 
  683        $dest = $rbacreview->getAllOperationsOfRole(2020, 2200);
 
  689        $this->assertEquals($subtract, $dest);
 
  691        $rbacadmin->deleteTemplate(1010);
 
  692        $rbacadmin->deleteTemplate(2020);
 
  706        $rbacreview = 
$DIC[
'rbacreview'];
 
  707        $rbacadmin = 
$DIC[
'rbacadmin'];
 
  709        $rbacadmin->assignOperationToObject(1001, 10);
 
  710        $rbacadmin->assignOperationToObject(1001, 20);
 
  712        $this->assertEquals($rbacreview->getOperationsOnType(1001), array(10,20));
 
  725        $rbacreview = 
$DIC[
'rbacreview'];
 
  726        $rbacadmin = 
$DIC[
'rbacadmin'];
 
  727        $rbacadmin->deassignOperationFromObject(1001, 10);
 
  729        $this->assertEquals($rbacreview->getOperationsOnType(1001), array(20));
 
  731        $rbacadmin->deassignOperationFromObject(1001, 20);
 
  733        $this->assertEmpty($rbacreview->getOperationsOnType(1001));
 
An exception for terminatinating execution or to throw for unit testing.
INTERNAL CLASS: Please do not use in consumer code.
static _getCondition($a_id)
static _deleteTargetConditionsByRefId($a_target_ref_id)
Delete conditions by target ref id Note: only conditions on the target type are deleted Conditions on...
static _getDistinctTargetRefIds()
Get all target ref ids.
static _getPersistedConditionsOfTrigger($a_trigger_obj_type, $a_trigger_id)
Get all persisted conditions of trigger object Note: This only gets persisted conditions NOT (dynamic...
static _getPersistedConditionsOfTarget($a_target_ref_id, $a_target_obj_id, $a_target_type="")
get all persisted conditions of target object
Unit tests for tree table @group needsInstalledILIAS.
testDeassignOperationFromObject()
Test deassignOperationFromObject Method @global ilRbacReview $rbacreview @global ilRbacAdmin $rbacadm...
testConditions()
test preconditions @group IL_Init
testRbacTA()
rbac ta test @group IL_Init
testRbacUA()
test rbac_ua @group IL_Init
testCache()
@group IL_Init
testRbacFA()
RBAC FA tests @group IL_Init.
testRevokeSubtreePermissions()
Test revokeSubtreePermissions Method DB: rbac_pa.
testCopyRolePermissionIntersection()
Test Copy Role Permission Intersection Method DB: rbac_template.
testGrantPermission()
Test grant Permission Method DB: rbac_pa.
testCopyRolePermissionUnion()
Test Copy Role Permission Union Method DB: rbac_template.
testRbacPA()
test rbac_pa @group IL_Init
testCopyRoleTemplatePermissions()
Test Copy Role Template Permission Method DB: rbac_template.
testDeleteRolePermission()
Test Delete Role Permission Method DB: rbac_template.
testAssignOperationToObject()
Test assignOperationToObject Method DB: rbac_ta.
testCopyRolePermissionSubtract()
Test Copy Role Permission Subtract Method DB: rbac_template.
testRevokePermissionList()
Test revokePermissionList Method DB: rbac_pa.
testRevokePermission()
Test revoke Permission Method DB: rbac_pa.
testDeassignUser()
Test deassign user Method DB: rbac_ua.
testCopyRolePermissions()
Test Method DB: rbac_template DB: rbac_pa.
testAssignUser()
Test Assign User Method DB: rbac_ua.
testSetRolePermission()
Test Set Role Permission Method DB: rbac_template.
static _getObjectsByOperations($a_obj_type, $a_operation, $a_usr_id=0, $limit=0)
Get all objects of a specific type and check access This function is not recursive,...
Interface ilAccessHandler.
foreach($_POST as $key=> $value) $res