public function setUp() { parent::setUp(); $this->role = Role::getNewInstance('__testrole__'); $this->role->save(); $this->userGroup = UserGroup::getNewInstance('Any random group name'); $this->userGroup->save(); }
public function testGetRoleByName() { $newRole = Role::getNewInstance('testing'); $newRole->save(); $role = Role::getInstanceByName('testing'); $this->assertSame($role, $newRole); $role = Role::getInstanceByName('unknown'); $this->assertNull($role, null); }
public function testHasConcreteAccess() { $group = UserGroup::getNewInstance('testing1337', 'testing1337'); $group->save(); $role = Role::getNewInstance('testing1337.update'); $role->save(); $group->applyRole($role); $group->save(); $this->assertFalse($group->hasAccess('testing1337')); $this->assertTrue($group->hasAccess('testing1337.update')); $this->assertFalse($group->hasAccess('testing1337.create')); }
public static function addNewRolesNames($roleNames, $deleteOther = false) { // unset meta- roles if ($i = array_search('login', $roleNames)) { unset($roleNames[$i]); } if (!is_array($roleNames) || empty($roleNames)) { return; } $filter = new ARSelectFilter(); $deleteFilter = new ARDeleteFilter(); $condition = new EqualsCond(new ARFieldHandle(__CLASS__, "name"), $roleNames[0]); $deleteCondition = new NotEqualsCond(new ARFieldHandle(__CLASS__, "name"), $roleNames[0]); foreach ($roleNames as $roleName) { $condition->addOR(new EqualsCond(new ARFieldHandle(__CLASS__, "name"), $roleName)); $deleteCondition->addAnd(new NotEqualsCond(new ARFieldHandle(__CLASS__, "name"), $roleName)); } $filter->setCondition($condition); $deleteFilter->setCondition($deleteCondition); if ($deleteOther) { self::deleteRecordSet(__CLASS__, $deleteFilter); } // Find new roles $invertedRoleNames = array_flip($roleNames); foreach (self::getRecordSet($filter) as $role) { if (isset($invertedRoleNames[$role->name->get()])) { unset($invertedRoleNames[$role->name->get()]); } } // Add new roles to database foreach ($invertedRoleNames as $role => $value) { if (!empty($role)) { $newRole = Role::getNewInstance($role); $newRole->save(); } } }