/** * 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"; }
/** * 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')); }
/** * Check if the 'manage' permission exists for this class. * @return boolean */ public static function isManaged() { return Permission::index()->exists('manage', get_called_class()); }
/** * ModelPolicy constructor. */ public function __construct(Extender $extender) { $this->permissions = Permission::index(); $this->extender = $extender; }