コード例 #1
0
ファイル: RbacSpec.php プロジェクト: polycademy/polyauth
 function setup_role_manager_mocks(Permission $permission, Role $role, RoleSet $role_set, RoleManager $role_manager)
 {
     $permission->permission_id = 1;
     $permission->name = 'Permission Name';
     $permission->description = 'A dummy permission';
     $role->role_id = 1;
     $role->name = 'members';
     $role->description = 'A dummy role';
     $role->hasPermission(Argument::type('RBAC\\Permission'))->willReturn(true);
     $role->getPermissions()->willReturn(array($permission));
     $role->addPermission(Argument::any())->willReturn(true);
     $role_set->addRole(Argument::type('RBAC\\Role\\Role'))->willReturn(true);
     $role_set->has_permission('Permission Name')->willReturn(true);
     $role_manager->roleFetchByName('members')->willReturn($role);
     $role_manager->roleFetch()->willReturn(array($role));
     $role_manager->roleSave(Argument::any())->willReturn(true);
     $role_manager->permissionFetch()->willReturn(array($permission));
     //assigns a role set object to the UserAccount object
     $role_manager->loadSubjectRoles(Argument::type('PolyAuth\\UserAccount'))->will(function ($args) use($role_set) {
         $user = $args[0];
         $user->loadRoleSet($role_set);
         return $user;
     });
     //adds a role to the role set of the role object
     $role_manager->roleAddSubject(Argument::cetera())->will(function ($args) {
         $role = $args[0];
         $user = $args[1];
         $role_set = $user->getRoleSet();
         $role_set->addRole($role);
         $user->loadRoleSet($role_set);
         return $user;
     });
     return ['role_manager' => $role_manager];
 }
コード例 #2
0
 public function testRoleAddSubject()
 {
     $role = $this->rm->roleFetchById(1);
     $this->assertTrue($this->rm->roleSave($role));
     $subject = new Subject(99);
     $initial_role_count = sizeof($subject->getRoleSet()->getRoles());
     $this->assertTrue($this->rm->roleAddSubject($role, $subject));
     $this->assertEquals($initial_role_count + 1, sizeof($subject->getRoleSet()->getRoles()));
 }
コード例 #3
0
 protected function seed()
 {
     $default_users = array(array('id' => '1', 'ipAddress' => inet_pton('127.0.0.1'), 'username' => 'administrator', 'password' => '$2y$10$EiqipvSt3lnD//nchj4u9OgOTL9R3J4AbZ5bUVVrh.Tq/gmc5xIvS', 'passwordChange' => '0', 'email' => '*****@*****.**', 'createdOn' => date('Y-m-d H:i:s'), 'lastLogin' => date('Y-m-d H:i:s'), 'active' => '1', 'sharedKey' => '9tThG2rFhZv+LslrrPy0I6QcCn9E3kNcyv5rqb3qKLywvFCfwHiSZ2fH2qQAgQXAkfBIrd0zHP+1v/FJ4W/kMA=='));
     //default user to roles
     $default_users_to_roles = array(array('admin', 'member'));
     //roles to descriptions
     $default_roles = array('admin' => 'Site Administrators', 'member' => 'General Members');
     //roles to permissions to permission descriptions
     $default_role_permissions = array('admin' => array('admin_create' => 'Creating administration resources.', 'admin_read' => 'Viewing administration resources.', 'admin_update' => 'Editing administration resources.', 'admin_delete' => 'Deleting administration resources.'), 'member' => array('public_read' => 'Viewing public resources.'));
     //seeding user accounts
     foreach ($default_users as $user) {
         $this->db->insert('user_accounts', $user);
     }
     //seeding roles and permissions
     $role_manager = new RoleManager(new MySQLAdapter($this->db->conn_id, new Options()));
     foreach ($default_role_permissions as $role => $permissions_array) {
         //create the role
         $created_role = Role::create($role, $default_roles[$role]);
         foreach ($permissions_array as $permission => $reason) {
             //create the permission
             $created_permission = Permission::create($permission, $reason);
             //save the permission to the database
             $role_manager->permissionSave($created_permission);
             //add the permission to the role
             $created_role->addPermission($created_permission);
         }
         $role_manager->roleSave($created_role);
     }
     //assign the role to the users
     foreach ($default_users_to_roles as $key => $roles) {
         $user_id = $default_users[$key]['id'];
         foreach ($roles as $role) {
             $assignable_role = $role_manager->roleFetchByName($role);
             $role_manager->roleAddSubjectId($assignable_role, $user_id);
         }
     }
 }