Example #1
0
 /**
  * Builds up the permissions for a user by looping through,
  * taking on the highest precedence of each tier.
  *
  * @param   UserRepresentation   $user    ID of the user to build for
  * @return  void
  * @throws  Exception\User
  */
 protected function buildPermissionsForUser(UserRepresentation $user)
 {
     // Make use of Collection to do some clever sorting:
     $all_packages = $this->packagesForUser($user);
     $sorted_packages = new Collection($all_packages);
     $sorted_packages->sortByMember('precedence');
     $permissions = array();
     foreach ($sorted_packages as $package) {
         /* @var $package Package */
         foreach ($package->definedPermissions() as $name => $rule) {
             $permissions[$name] = $rule;
         }
     }
     // And now process any overrides that this user has:
     $overrides = $this->storage->authFetchOverridesForUser($this->name(), $user);
     foreach ($overrides as $permission => $new_value) {
         if (array_key_exists($permission, $permissions)) {
             $permissions[$permission] = $new_value;
         }
     }
     $this->permissions_cache[$user->id()] = $permissions;
 }
Example #2
0
 /**
  * Testing unknown object property sorting
  *
  * @expectedException \Solution10\Collection\Exception\Index
  */
 public function testBadObjectMemberSort()
 {
     $obj1 = new Person();
     $obj1->name = 'Kelly';
     $obj1->job = 'Manager';
     $obj2 = new Person();
     $obj2->name = 'Alex';
     $obj2->job = 'Developer';
     $obj3 = new Person();
     $obj3->name = 'Jimmy';
     $obj3->job = 'Tester';
     $collection = new Collection(array($obj1, $obj2, $obj3));
     $collection->sortByMember('unknown');
 }