コード例 #1
0
ファイル: ACLTest.php プロジェクト: nlegoff/Phraseanet
 public function testHas_access_to_module()
 {
     foreach (self::$DI['app']['phraseanet.appbox']->get_databoxes() as $databox) {
         $base_ids = [];
         foreach ($databox->get_collections() as $collection) {
             $base_id = $collection->get_base_id();
             $base_ids[] = $base_id;
         }
         self::$object->revoke_access_from_bases($base_ids);
         self::$object->revoke_unused_sbas_rights();
     }
     if (self::$object->is_admin()) {
         $this->assertTrue(self::$object->has_access_to_module('admin'));
     } else {
         $this->assertFalse(self::$object->has_access_to_module('admin'));
     }
     $this->assertFalse(self::$object->has_access_to_module('thesaurus'));
     $this->assertFalse(self::$object->has_access_to_module('upload'));
     $this->assertFalse(self::$object->has_access_to_module('report'));
     $found = false;
     foreach (self::$DI['app']['phraseanet.appbox']->get_databoxes() as $databox) {
         foreach ($databox->get_collections() as $collection) {
             $base_id = $collection->get_base_id();
             $base_ids[] = $base_id;
             self::$object->update_rights_to_base($base_id, ['canreport' => true]);
             $found = true;
             break;
         }
         if ($found) {
             break;
         }
     }
     $this->assertTrue(self::$object->has_access_to_module('report'));
     $this->assertFalse(self::$object->has_access_to_module('thesaurus'));
     $this->assertFalse(self::$object->has_access_to_module('upload'));
     foreach (self::$DI['app']['phraseanet.appbox']->get_databoxes() as $databox) {
         self::$object->update_rights_to_sbas($databox->get_sbas_id(), ['bas_modif_th' => true]);
         $found = true;
     }
     $this->assertTrue(self::$object->has_access_to_module('report'));
     $this->assertTrue(self::$object->has_access_to_module('thesaurus'));
     $this->assertFalse(self::$object->has_access_to_module('upload'));
     $found = false;
     foreach (self::$DI['app']['phraseanet.appbox']->get_databoxes() as $databox) {
         foreach ($databox->get_collections() as $collection) {
             $base_id = $collection->get_base_id();
             $base_ids[] = $base_id;
             self::$object->update_rights_to_base($base_id, ['canaddrecord' => true]);
             $found = true;
             break;
         }
         if ($found) {
             break;
         }
     }
     $this->assertTrue(self::$object->has_access_to_module('report'));
     $this->assertTrue(self::$object->has_access_to_module('thesaurus'));
     $this->assertTrue(self::$object->has_access_to_module('upload'));
 }
コード例 #2
0
 /**
  * Resets admin rights on a collection.
  *
  * @param \ACL        $acl
  * @param \collection $collection
  */
 private function doResetRightsOnCollection(\ACL $acl, \collection $collection)
 {
     $baseId = $collection->get_base_id();
     $acl->set_limits($baseId, false);
     $acl->remove_quotas_on_base($baseId);
     $acl->set_masks_on_base($baseId, '0', '0', '0', '0');
     $acl->update_rights_to_base($baseId, ['canputinalbum' => '1', 'candwnldhd' => '1', 'candwnldsubdef' => '1', 'nowatermark' => '1', 'candwnldpreview' => '1', 'cancmd' => '1', 'canadmin' => '1', 'canreport' => '1', 'canpush' => '1', 'creationdate' => '1', 'canaddrecord' => '1', 'canmodifrecord' => '1', 'candeleterecord' => '1', 'chgstatus' => '1', 'imgtools' => '1', 'manage' => '1', 'modify_struct' => '1', 'bas_modify_struct' => '1']);
 }