{"id":26119327,"url":"https://github.com/4msar/laravel-role-manager","last_synced_at":"2026-06-05T11:31:35.519Z","repository":{"id":56938396,"uuid":"187608649","full_name":"4msar/laravel-role-manager","owner":"4msar","description":"Simple Laravel Role Manager","archived":false,"fork":false,"pushed_at":"2019-05-20T10:06:08.000Z","size":11,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-05-15T13:00:14.445Z","etag":null,"topics":["laravel","permission-manager","permissions","role-management","role-manager","user-roles"],"latest_commit_sha":null,"homepage":null,"language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/4msar.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-05-20T09:21:52.000Z","updated_at":"2022-01-12T10:48:33.000Z","dependencies_parsed_at":"2022-08-21T06:50:22.568Z","dependency_job_id":null,"html_url":"https://github.com/4msar/laravel-role-manager","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/4msar/laravel-role-manager","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/4msar%2Flaravel-role-manager","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/4msar%2Flaravel-role-manager/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/4msar%2Flaravel-role-manager/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/4msar%2Flaravel-role-manager/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/4msar","download_url":"https://codeload.github.com/4msar/laravel-role-manager/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/4msar%2Flaravel-role-manager/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33939225,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-05T02:00:06.157Z","response_time":120,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["laravel","permission-manager","permissions","role-management","role-manager","user-roles"],"created_at":"2025-03-10T12:26:08.508Z","updated_at":"2026-06-05T11:31:35.502Z","avatar_url":"https://github.com/4msar.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# Laravel Role Manager\n\n* [Installation](#installation)\n* [Usage](#usage)\n* [Todo](#todo)\n\n\n## Installation\n\nThis package can be used in Laravel 5.4 or higher.\nYou can install the package via composer:\n\n``` bash\ncomposer require 4msar/laravel-role-manager\n```\n\nIn Laravel 5.5 the service provider will automatically get registered. In older versions of the framework just add the service provider in `config/app.php` file:\n\n```php\n'providers' =\u003e [\n    // ...\n    MSAR\\RoleManager\\RoleManagerServiceProvider::class,\n];\n```\n\nYou can publish the migrations \u0026 config file with:\n\n```bash\nphp artisan vendor:publish --provider=\"MSAR\\RoleManager\\RoleManagerServiceProvider\"\n```\n\nAfter the migration has been published you can create the role- and permission-tables by running the migrations:\n\n```bash\nphp artisan migrate\n```\n\nWhen published, the `config/role_manager.php` config file contains:\n\n```php\nreturn [\n\n    /**\n    * Permission List \n    * Here, you can declare your needed permission, the package will be add this permission automatically\n    * to the database( via middle-ware).\n    * key name is the permission name and value is the details name showing for management.\n    */\n    \"add_permission_dynamically\" =\u003e false, // Make true if you want to add permission from bellow permissions array\n    \"permissions\" =\u003e [\n        // 'permission_name' =\u003e 'permission_details'\n        'view_home' =\u003e 'View Admin Dashboard',\n        'view_users' =\u003e 'View Admin Users',\n    ],\n\n    'unauthorized_action' =\u003e '',\n\n    'unauthorized_action_type' =\u003e  [\n        'route' =\u003e [\n            'name' =\u003e 'welcome',\n            'data' =\u003e [],\n        ],\n        'url' =\u003e [\n            'name' =\u003e '/login',\n            'data' =\u003e [],\n        ],\n        'abort' =\u003e [\n            'type' =\u003e '403',\n        ],\n        'dump' =\u003e [\n            'data' =\u003e 'Dumping a unauthorized message.',\n        ]\n    ],\n\n    \"database\" =\u003e [\n        \"role_table\" =\u003e \"roles\",\n        \"permission_table\" =\u003e \"permissions\",\n        \"role_permission_table\" =\u003e \"permission_role\",\n    ],\n];\n```\n\n\n\n## Usage\n\nFirst, add the `MSAR\\RoleManager\\Traits\\HasPermission;` trait to your `User` model(s):\n\n```php\nuse Illuminate\\Foundation\\Auth\\User as Authenticatable;\nuse MSAR\\RoleManager\\Traits\\HasPermission;;\n\nclass User extends Authenticatable\n{\n    use HasPermission;\n\n    // ...\n}\n```\n\nThen, add the `\\MSAR\\RoleManager\\Middlewares\\RoleMiddleware::class` middlwware to your `Karnel.php` :\n\n```php\n// .....\n'has_permission' =\u003e \\MSAR\\RoleManager\\Middlewares\\RoleMiddleware::class,\n```\n\u003e **NB: You have to add a column to your users table name is ``role`` and the users role is save to this column**\n\nThis package allows for users to be associated with permissions and roles. Every role is associated with multiple permissions.\nA `Role` and a `Permission` are regular Eloquent models. They require a `name` and can be created like this:\n\n```php\nuse MSAR\\RoleManager\\Models\\Role;\nuse MSAR\\RoleManager\\Models\\Permission;\n\n$role = Role::create(['name' =\u003e 'writer']);\n$permission = Permission::create(['name' =\u003e 'edit_articles', 'title' =\u003e 'Edit Articles']);\n```\nTo create permission you can use the ``config/role_manager.php`` file and the ``permissions`` array.\njust make the config value ``add_permission_dynamically`` to ``true``  then add permission to the array(``permissions``).\n\nFor updating role and permission from front-end, use the code bellow\n\n```php\n$role = \\MSAR\\RoleManager\\Models\\Role::where('name', 'Admin')-\u003efirst();\n$permissions = $request-\u003epermissions; // [1,2] | checkbox array input | permissions ids\n$role-\u003epermissions()-\u003esync($permissions);\n```\n\nFor check the user has permission or not use the middleware to the route\n```php\nRoute::get('/users', 'UserController@index')-\u003emiddleware('has_permission:view_users')-\u003ename('home');\n```\nYou can use multiple permission by using the pipe(|) eg: ``has_permission:view_users|update_users``\n\n**Use Blade Directives**\nYou can use those blade extension \nHas Role :  Has Role\n```php\n@hasrole(role)\n@elsehasrole(another_role)\n@endhasrole\n```\nHas Permission :  User can\n```php\n@ucan(permission)\n@elseucan(another_permission)\n@enducan\n```\n\n**Use Helper Functions**\n```php\nrmHasRole($role); // pipe string | array | string\nrmHasPermission($permission); // pipe string | array | string\n```\n\n\n## Todo\n\n- Improve code base\n- Add Command to add a role or assign permission","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F4msar%2Flaravel-role-manager","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F4msar%2Flaravel-role-manager","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F4msar%2Flaravel-role-manager/lists"}