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')); }
/** * 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']); }