Example #1
0
 /**
  * Shortcut for denying an ability to this role.
  * @param $ability string
  * @param $object string|Model
  * @return PermissionCollection|null
  */
 public function denyAbility($ability, $object)
 {
     $permission = Permission::lookup($ability, $object);
     if (!$permission) {
         return null;
     }
     return $this->deny($permission);
 }
 /**
  * Install default permissions for each model object.
  *
  * @return void
  */
 public function run()
 {
     $created = [];
     $config = Model::$config;
     foreach ($config as $class => $data) {
         foreach ((array) $data['permissions'] as $permission) {
             $action = strtolower($permission);
             if (Permission::where('object', $class)->where('ability', $action)->exists()) {
                 continue;
             }
             $created[] = Permission::create(['object' => $class, 'ability' => $action, 'description' => $this->describe($class, $action)]);
         }
     }
     //$this->grantAbilities();
     echo sizeof($created) . " Permission objects created.\n";
 }
Example #3
0
 /**
  * Test if the permission index is being set correctly.
  */
 public function test_permission_index()
 {
     Permission::index();
     $index = Permission::getIndex();
     // Index there and is the right type?
     $this->assertInstanceOf('Birdmin\\Collections\\PermissionCollection', $index);
     $this->assertGreaterThan(0, $index->count());
     // Basic permission exists?
     $this->assertInstanceOf('Birdmin\\Permission', $index->lookup('view', 'Birdmin\\Page'));
     // Test the right permission being returned.
     $permission = $index->lookup('view', 'Birdmin\\Page');
     $this->assertEquals('view', $permission->ability);
     $this->assertEquals('Birdmin\\Page', $permission->object);
     // Non-existent permission returning null with bogus ability?
     $this->assertNull($index->lookup('wrong', 'Birdmin\\Page'));
     // Non-existent permission returning null with bogus model?
     $this->assertNull($index->lookup('view', 'Wrong'));
 }
Example #4
0
 /**
  * Check if the 'manage' permission exists for this class.
  * @return boolean
  */
 public static function isManaged()
 {
     return Permission::index()->exists('manage', get_called_class());
 }
Example #5
0
 /**
  * ModelPolicy constructor.
  */
 public function __construct(Extender $extender)
 {
     $this->permissions = Permission::index();
     $this->extender = $extender;
 }