Need help with maravel-permissions?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

141 Stars 6 Forks 16 Commits 0 Opened issues


Because in the Maravelous univer every user deserves super power

Services available


Need anything else?

Contributors list

# 193,023
16 commits

Grant Users the superpower of Marvel characters



composer require inani/maravel-permissions


Then include the service provider inside

. (You can skipp it if it's in Laravel 5.5 or higher)
'providers' => [

Publish resources, and migrate

php artisan vendor:publish

PS : You can edit

migration to link it with the correct user table

Edit the

with the correct values
        'add', 'delete', 'create', 'search', 'update'

// define the class path for the entities
'entities' => [


And then migrate

php artisan migrate

Setup a Model

To setup the user model, all you have to do is add (and import) the

use Inani\Maravel\HasRole;

class User extends Model { use HasRole; ... }


All roles are role and permissions are powers

Because every user deserves to be a hero, The Maravel API is based on the Marvel Jargon, and here are how it can be used

// Having a user
$user = User::first();

// Create a new role, description is not mandotary $userManager = RoleBuilder::create('User Manager', 'The role to manage users') ->havingPower([ 'name' => 'can_update', 'description' => 'The abilitiy to update a user', 'action' => 'update', 'entity' => \App\Models\User::class, ]);

// we can grant a power to it $userManager = RoleBuilder::of($userManager) ->grant([ 'name' => 'can_create', 'description' => 'The abilitiy to create a user', 'action' => 'create', 'entity' => \App\Models\User::class, ]);

// Or take it off $ability = Ability::first();

$storm = RoleBuilder::of($userManager)->takeOff($ability);

// bless the user with the abilities of the role $user->roleManager()->blessWith($storm);

// check if it has the ability $user->roleManager()->owns($ability);

// check if it has one of the provided abilities $user->roleManager()->ownsOneOf([$ability, $anOtherAbility]);

// make it human again (remove its role) $user->roleManager()->humanize();

You can also manage the instances directly ```php

// Create Ability $ability = Ability::create([ 'name' => 'post_write', 'description' => 'Abitlity to create new Posts', 'action' => 'add', 'entity' => \App\Models\Post::class, ]);

// Create a Marvel $writer = Role::create([ 'name' => 'Webmaster', 'description' => 'A Role that allows you create new posts' ]);

// Grant the ability $writer->grant($ability);

// remove a certain ability $writer->takeOff($ability);

// remove all and keep only those $abilities = [1, 2]; // or the models $writer->keep($abilities);

// bless it to our user $user = \App\Models\User::first();

$user->roleManager()->blessWith($writer); ```

Am I missing something?

Submit a PR or issue with details!

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.