コード例 #1
0
ファイル: ACLTest.php プロジェクト: nlegoff/Phraseanet
 public function testGet_mask_and()
 {
     foreach (self::$DI['app']['phraseanet.appbox']->get_databoxes() as $databox) {
         foreach ($databox->get_collections() as $collection) {
             $base_id = $collection->get_base_id();
             self::$object->give_access_to_base([$base_id]);
             self::$object->update_rights_to_base($base_id, ['actif' => false]);
             $this->assertFalse(self::$object->get_mask_and($base_id));
             self::$object->update_rights_to_base($base_id, ['mask_and' => 42]);
             $this->assertEquals('42', self::$object->get_mask_and($base_id));
             self::$object->update_rights_to_base($base_id, ['mask_and' => 1]);
             $this->assertEquals('1', self::$object->get_mask_and($base_id));
             self::$object->update_rights_to_base($base_id, ['mask_and' => 0]);
             $this->assertEquals('0', self::$object->get_mask_and($base_id));
         }
     }
 }
コード例 #2
0
 private function getFlagsRules(\appbox $appbox, \ACL $acl, array $collections)
 {
     $rules = [];
     foreach ($collections as $collectionId) {
         $databoxId = \phrasea::sbasFromBas($this->app, $collectionId);
         $databox = $appbox->get_databox($databoxId);
         $mask_xor = $acl->get_mask_xor($collectionId);
         $mask_and = $acl->get_mask_and($collectionId);
         foreach ($databox->getStatusStructure()->getBits() as $bit) {
             $rules[$databoxId][$collectionId][$bit] = $this->computeAccess($mask_xor, $mask_and, $bit);
         }
     }
     return $rules;
 }