{"id":16944443,"url":"https://github.com/jmkim/laravel-entrust-gui","last_synced_at":"2026-05-16T20:32:55.808Z","repository":{"id":57703089,"uuid":"501102448","full_name":"jmkim/laravel-entrust-gui","owner":"jmkim","description":"GUI for Shanmuga's LaravelEntrust for Laravel 5+ (5, 6, 7, 8 and 9)","archived":false,"fork":false,"pushed_at":"2022-06-08T06:21:29.000Z","size":260,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"6.x-and-above","last_synced_at":"2024-03-15T08:22:19.285Z","etag":null,"topics":["access-control","entrust","laravel","laravel-application","role-permissions"],"latest_commit_sha":null,"homepage":"https://packagist.org/packages/jmkim/laravel-entrust-gui","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/jmkim.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-06-08T04:43:32.000Z","updated_at":"2022-06-08T05:27:31.000Z","dependencies_parsed_at":"2022-09-26T21:10:26.742Z","dependency_job_id":null,"html_url":"https://github.com/jmkim/laravel-entrust-gui","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/jmkim/laravel-entrust-gui","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jmkim%2Flaravel-entrust-gui","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jmkim%2Flaravel-entrust-gui/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jmkim%2Flaravel-entrust-gui/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jmkim%2Flaravel-entrust-gui/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jmkim","download_url":"https://codeload.github.com/jmkim/laravel-entrust-gui/tar.gz/refs/heads/6.x-and-above","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jmkim%2Flaravel-entrust-gui/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33117829,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-16T18:38:32.183Z","status":"ssl_error","status_checked_at":"2026-05-16T18:38:29.903Z","response_time":115,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["access-control","entrust","laravel","laravel-application","role-permissions"],"created_at":"2024-10-13T21:18:10.547Z","updated_at":"2026-05-16T20:32:55.792Z","avatar_url":"https://github.com/jmkim.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Entrust GUI\n\n[![Code Climate](https://codeclimate.com/github/jmkim/laravel-entrust-gui/badges/gpa.svg)](https://codeclimate.com/github/jmkim/laravel-entrust-gui)\n[![Build Status](https://travis-ci.org/jmkim/laravel-entrust-gui.svg?branch=testing)](https://travis-ci.org/jmkim/laravel-entrust-gui)\n[![Latest Stable Version](https://poser.pugx.org/jmkim/laravel-entrust-gui/v/stable)](https://packagist.org/packages/jmkim/laravel-entrust-gui)\n[![Total Downloads](https://poser.pugx.org/jmkim/laravel-entrust-gui/downloads)](https://packagist.org/packages/jmkim/laravel-entrust-gui)\n[![Latest Unstable Version](https://poser.pugx.org/jmkim/laravel-entrust-gui/v/unstable)](https://packagist.org/packages/jmkim/laravel-entrust-gui)\n[![License](https://poser.pugx.org/jmkim/laravel-entrust-gui/license)](https://packagist.org/packages/jmkim/laravel-entrust-gui)\n\nEntrust GUI is a Admin Interface that makes the administration of users, roles and permissions easier for [Shanmuga's Laravel Entrust](https://github.com/shanmuga3/laravel-entrust) package.\n\nThis package is currently not for handling authentication, authorisation or registration of users. \n\n![User Panel Preview](http://i.imgur.com/9RJ3qOi.png)\n\n## Disclaimer\n\nEntrust GUI was fully written by Mitch Stanley ([@acoustep](https://github.com/acoustep)). The original codebase is placed at [https://github.com/acoustep/entrust-gui](https://github.com/acoustep/entrust-gui).\n\nThis package is a port for [Shanmuga's Laravel Entrust](https://github.com/shanmuga3/laravel-entrust).\n\n* **(Laravel 5, original but unmaintained)** [acoustep's Entrust GUI](https://github.com/acoustep/entrust-gui) for [Zizaco's ENTRUST](https://github.com/Zizaco/entrust)\n* **(Laravel 5 ~ 9, ported and maintained)** [jmkim's Laravel Entrust GUI (this package)](https://github.com/jmkim/laravel-entrust-gui) for [Shanmuga's Laravel Entrust](https://github.com/shanmuga3/laravel-entrust)\n\nYou can easily migrate from acoustep's to this package by replacing:\n\n* `Acoustep` to `Jmkim`\n* `acoustep` to `jmkim`\n\n## Installation\n\nAdd the package to your ```composer.json``` file\n\n```\n\"jmkim/laravel-entrust-gui\": \"6.x-dev\",\n\"shanmuga/laravel-entrust\": \"3.x-dev\",\n\"watson/validating\": \"3.2.0 as 2.0.1\"\n```\n\nAdd the service provider to your ```config/app.php``` file\n\n```\nJmkim\\EntrustGui\\EntrustGuiServiceProvider::class,\n```\n\nAdd the Entrust Alias to your ```config/app.php``` file as well.\n\n```\n'Entrust'   =\u003e Shanmuga\\LaravelEntrust\\LaravelEntrustFacade::class,\n```\n\nPublish the configuration file(s)\n\n```\nphp artisan vendor:publish --tag=\"config\"\n```\n\nAdd the ```table``` key with the value ```users``` to the ```providers.users``` array in ```config/auth.php```.\n\n```\n    'providers' =\u003e [\n        'users' =\u003e [\n            'driver' =\u003e 'eloquent',\n            'model' =\u003e App\\User::class,\n            'table' =\u003e 'users',\n        ],\n        // 'users' =\u003e [\n        //     'driver' =\u003e 'database',\n        //     'table' =\u003e 'users',\n        // ],\n    ],\n```\n\nIf you haven't already set up Entrust then make the migration file and run the migration.\n\n```\nphp artisan entrust:migration\nphp artisan migrate\n```\n\nIf you see the following error:\n\n```\n [Illuminate\\Database\\QueryException]\n  SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes (SQL: alter table\n   `users` add unique `users_email_unique`(`email`))\n```\nAdd the following to your `app/Providers/AppServiceProvider.php`\n\n```\nuse Illuminate\\Support\\Facades\\Schema;\n...\npublic function boot() {\n    Schema::defaultStringLength(191);\n}\n```\n\nIf you then see this error\n\n```\nReflectionException  : Method Shanmuga\\LaravelEntrust\\MakeMigrationCommand::handle() does not exist\n```\n\nThis is an issue with `Entrust`, there is a temporary fix by going to `vendor-\u003e shanmuga-\u003e laravel-entrust-\u003e src-\u003e commands-\u003e MakeMigrationCommand.php` and changing `fire()` to `handle()` and re-running thie migration. [See here for more details](https://github.com/Zizaco/entrust/issues/836). Once this is done, rerun the migration commands.\n\nFinally, if you have this error\n\n```\n(errno: 150 \"Foreign key constraint is incorrectly formed\") (SQL: alter table `role_user` add constraint `role_user_user_id_foreign` foreign key (`user_id`) references `users` (`id`) on delete cascade on update cascade)\n```\n\nGo to the newly created migration file (`entrust_setup_tables`) and update the `user_id` foreign key constraint in `role_user` to use `bigInteger`.\n\n```\nSchema::create('role_user', function (Blueprint $table) {\n            $table-\u003ebigInteger('user_id')-\u003eunsigned();\n            $table-\u003einteger('role_id')-\u003eunsigned();\n\n            $table-\u003eforeign('user_id')-\u003ereferences('id')-\u003eon('users')\n                -\u003eonUpdate('cascade')-\u003eonDelete('cascade');\n            $table-\u003eforeign('role_id')-\u003ereferences('id')-\u003eon('roles')\n                -\u003eonUpdate('cascade')-\u003eonDelete('cascade');\n\n            $table-\u003eprimary(['user_id', 'role_id']);\n});\n```\n\nRerun the entrust migration afterwards (You may need to clear your database, too).\n\nEntrust GUI uses [esensi/model](https://github.com/esensi/model) which means you can set your validation rules in your models.\n\nTo generate ```User```, ```Role``` and ```Permission``` models run the ```entrust-gui:models``` command.\n\n```\nphp artisan entrust-gui:models\n```\n\nSee the **manually creating models** section if you prefer to adjust your current model files.\n\nBy default, all three files are published into the ```app_path()``` directory. You can specify the files separately and the location \n\nAdd the Entrust GUI middleware to ```app\\Http\\Kernal.php```. This middleware will allow users with the role ```admin``` (case sensitive) to access Entrust GUI and deny other users.\n\n```\nprotected $routeMiddleware = [\n  // ...\n  'entrust-gui.admin' =\u003e \\Jmkim\\EntrustGui\\Http\\Middleware\\AdminAuth::class,\n];\n\n```\n\nFinally, there is currently an issue with Entrust which requires you to set the cache driver to array. This may change in the future. You can change this setting in your ```.env``` file.\n\n```\nCACHE_DRIVER=array\n```\n\nAt this point you're all good to go. See Getting Started for how to use the package.\n\n## Getting Started\n\n### Using Laravel Authentication\n\nRun the auth command if you haven't already set it up.\n\n```\nphp artisan make:auth\n```\n\n### Accessing Entrust GUI\n\nBy default all routes are prefixed with ```/entrust-gui```.\n\n* Users: ```/entrust-gui/users```\n* Roles: ```/entrust-gui/roles```\n* Permissions: ```/entrust-gui/permissions```\n\nYou can change this prefix by editing ```route-prefix``` in ```config/entrust-gui.php```.\n\n```\n'route-prefix' =\u003e 'admin'\n```\n\nPointing your app to ```/entrust-gui/users``` will redirect you to ```/auth/login``` if you are not logged in as admin using the default ```entrust-gui.admin``` middleware.\n\nIf you have not set up Laravel authentication you will see a ```NotFoundHttpException``` exception. See the Laravel [Authentication](http://laravel.com/docs/5.1/authentication) documentation for setting up the Login system in Laravel 5.1.\n\n### Middleware\n\nBy default Entrust GUI uses ```entrust-gui.admin``` for middleware. This allows logged in users with the ```admin``` role to access it.\n\nYou can change the middleware in ```config/entrust-gui.php``` in the ```middleware``` setting.\n\nIf you wish to test out the system without middleware then go to ```config/entrust-gui.php```, remove ```entrust-gui.admin``` middleware and keep ```web``` which is required for flash messages to work correctly in Laravel 5.2.\n\n\n```\n'middleware' =\u003e 'web',\n```\n\nIf you want to change the name of the role that has access to the ```admin``` middleware, update ```middleware-role``` in the configuration file.\n\n```\n\"middleware-role\" =\u003e 'sudo-admin',\n```\n\n### Layout\n\nTo use your own layout override the ```layout``` key in ```config/entrust-gui.php``` with the template you wish to use.\n\n```\n\"layout\" =\u003e \"app\", // located in views/app.blade.php\n```\n\nEach template yields to ```heading``` and ```content``` so make sure your new layout has those sections.\n\n```\n\u003chtml\u003e\n\u003chead\u003e\n  \u003cmeta charset=\"UTF-8\"\u003e\n  \u003ctitle\u003etitle\u003c/title\u003e\n\u003c/head\u003e\n\u003cbody\u003e\n  \u003ch1\u003e@yield('heading')\u003c/h1\u003e\n  @include('entrust-gui::partials.notifications')\n  @yield('content')\n\u003c/body\u003e\n\u003c/html\u003e\n```\n\n### Editing Templates\n\nTo edit the template files you first need to publish them\n\n```\nphp artisan vendor:publish --tag=\"views\"\n```\n\nAll files are then stored in the ```resources/views/vendor/entrust-gui``` directory.\n\n### Routes\n\nYou may wish to link to pages in your own templates. EntrustGUI follows Laravel's ```Route::resource``` method with the exception of ```show```.\n\n```\nroute('entrust-gui::users.index')\nroute('entrust-gui::users.create')\nroute('entrust-gui::users.destroy', $id)\nroute('entrust-gui::users.update', $id)\nroute('entrust-gui::users.edit', $id)\n```\n\n### Events\n\nThe following event classes are available:\n\n* ```UserCreatedEvent```, ```UserDeletedEvent```, ```UserUpdatedEvent```.\n* ```RoleCreatedEvent```, ```RoleDeletedEvent```, ```RoleUpdatedEvent```.\n* ```PermissionCreatedEvent```, ```PermissionDeletedEvent```, ```PermissionUpdatedEvent```.\n\n#### Example Event Listener\n\n```\n\u003c?php\n\nnamespace App\\Listeners;\n\nuse Jmkim\\EntrustGui\\Events\\UserCreatedEvent;\nuse Illuminate\\Queue\\InteractsWithQueue;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\nuse Log;\n\nclass UserCreatedListener\n{\n    /**\n     * Create the event listener.\n     *\n     * @return void\n     */\n    public function __construct()\n    {\n        //\n    }\n\n    /**\n     * Handle the event.\n     *\n     * @param  UserCreatedEvent  $event\n     * @return void\n     */\n    public function handle(UserCreatedEvent $event)\n    {\n      Log::info('created: '.$event-\u003euser-\u003eemail);\n    }\n}\n```\n\nAdd the listeners you need to use to ```app/Providers/EventServiceProvider.php```.\n\n```\nprotected $listen = [\n  'Jmkim\\EntrustGui\\Events\\UserCreatedEvent' =\u003e [\n    'App\\Listeners\\UserCreatedListener',\n  ],\n  'Jmkim\\EntrustGui\\Events\\UserUpdatedEvent' =\u003e [\n    'App\\Listeners\\UserUpdatedListener',\n  ],\n  'Jmkim\\EntrustGui\\Events\\UserDeletedEvent' =\u003e [\n    'App\\Listeners\\UserDeletedListener',\n  ],\n  'Jmkim\\EntrustGui\\Events\\RoleCreatedEvent' =\u003e [\n    'App\\Listeners\\RoleCreatedListener',\n  ],\n  'Jmkim\\EntrustGui\\Events\\RoleUpdatedEvent' =\u003e [\n    'App\\Listeners\\RoleUpdatedListener',\n  ],\n  'Jmkim\\EntrustGui\\Events\\RoleDeletedEvent' =\u003e [\n    'App\\Listeners\\RoleDeletedListener',\n  ],\n  'Jmkim\\EntrustGui\\Events\\PermissionCreatedEvent' =\u003e [\n    'App\\Listeners\\PermissionCreatedListener',\n  ],\n  'Jmkim\\EntrustGui\\Events\\PermissionUpdatedEvent' =\u003e [\n    'App\\Listeners\\PermissionUpdatedListener',\n  ],\n  'Jmkim\\EntrustGui\\Events\\PermissionDeletedEvent' =\u003e [\n    'App\\Listeners\\PermissionDeletedListener',\n  ]\n];\n```\n\n### Editing Translations\n\nRun the publish translation command\n\n```\nphp artisan vendor:publish --tag=\"translations\"\n```\n\nTranslations are then published to ```resources/lang/vendor/entrust-gui```.\n\n### Adding Password Confirmation Field to Users\n\nUpdate your ```User``` model to the following:\n\n```\n\u003c?php namespace App;\n\nuse Esensi\\Model\\Contracts\\PurgingModelInterface;\nuse Esensi\\Model\\Traits\\PurgingModelTrait;\nuse Illuminate\\Auth\\Authenticatable;\nuse Illuminate\\Auth\\Passwords\\CanResetPassword;\nuse Illuminate\\Contracts\\Auth\\Authenticatable as AuthenticatableContract;\nuse Illuminate\\Contracts\\Auth\\CanResetPassword as CanResetPasswordContract;\nuse Illuminate\\Database\\Eloquent\\Model;\nuse Shanmuga\\LaravelEntrust\\Traits\\LaravelEntrustUserTrait;\nuse Jmkim\\EntrustGui\\Contracts\\HashMethodInterface;\nuse Hash;\n\nclass User extends Model implements AuthenticatableContract, CanResetPasswordContract, ValidatingModelInterface, HashMethodInterface, PurgingModelInterface\n{\n    use Authenticatable, CanResetPassword, ValidatingModelTrait, EntrustUserTrait, PurgingModelTrait;\n\n    protected $throwValidationExceptions = true;\n\n    /**\n     * The database table used by the model.\n     *\n     * @var string\n     */\n    protected $table = 'users';\n\n    /**\n     * The attributes that are mass assignable.\n     *\n     * @var array\n     */\n    protected $fillable = ['name', 'email', 'password', 'password_confirmation'];\n\n    /**\n     * The attributes excluded from the model's JSON form.\n     *\n     * @var array\n     */\n    protected $hidden = ['password', 'remember_token'];\n\n    protected $purgeable = [\n        'password_confirmation',\n    ];\n\n    protected $hashable = ['password'];\n\n    protected $rulesets = [\n\n        'creating' =\u003e [\n            'email'      =\u003e 'required|email|unique:users',\n            'password'   =\u003e 'required|confirmed',\n        ],\n\n        'updating' =\u003e [\n            'email'      =\u003e 'required|email|unique:users',\n            'password'   =\u003e 'confirmed',\n        ],\n    ];\n\n    public function entrustPasswordHash() \n    {\n        $this-\u003epassword = Hash::make($this-\u003epassword);\n        $this-\u003eforceSave();\n    }\n}\n```\n\nUpdate ```config/entrust-gui.php```\n\n```\n'confirmable' =\u003e true,\n```\n\n### Generating Models Command Options\n\nGenerating a specific model\n\n```\nphp artisan entrust-gui:models User\n```\n\nChanging the model directory destination\n\n```\nphp artisan entrust-gui:models --path=new/path\n```\n\nSkipping confirmation prompts for overwriting existing files\n\n```\nphp artisan entrust-gui:models --force\n```\n\n\n### Manually Creating Models\n\nHere are ```User```, ```Role``` and ```Permission``` models. Make sure these parameters are and traits are included for the package to work as intended. \n\n#### app/User.php\n\n```\n\u003c?php namespace App;\n\nuse Esensi\\Model\\Contracts\\ValidatingModelInterface;\nuse Esensi\\Model\\Traits\\ValidatingModelTrait;\nuse Illuminate\\Auth\\Authenticatable;\nuse Illuminate\\Auth\\Passwords\\CanResetPassword;\nuse Illuminate\\Contracts\\Auth\\Authenticatable as AuthenticatableContract;\nuse Illuminate\\Contracts\\Auth\\CanResetPassword as CanResetPasswordContract;\nuse Illuminate\\Database\\Eloquent\\Model;\nuse Shanmuga\\LaravelEntrust\\Traits\\LaravelEntrustUserTrait;\nuse Jmkim\\EntrustGui\\Contracts\\HashMethodInterface;\nuse Hash;\n\nclass User extends Model implements AuthenticatableContract, CanResetPasswordContract, ValidatingModelInterface, HashMethodInterface\n{\n  use Authenticatable, CanResetPassword, ValidatingModelTrait, EntrustUserTrait;\n\n    protected $throwValidationExceptions = true;\n\n    /**\n     * The database table used by the model.\n     *\n     * @var string\n     */\n    protected $table = 'users';\n\n    /**\n     * The attributes that are mass assignable.\n     *\n     * @var array\n     */\n    protected $fillable = ['name', 'email', 'password'];\n\n    /**\n     * The attributes excluded from the model's JSON form.\n     *\n     * @var array\n     */\n    protected $hidden = ['password', 'remember_token'];\n\n    protected $hashable = ['password'];\n\n    protected $rulesets = [\n\n        'creating' =\u003e [\n            'email'      =\u003e 'required|email|unique:users',\n            'password'   =\u003e 'required',\n        ],\n\n        'updating' =\u003e [\n            'email'      =\u003e 'required|email|unique:users',\n            'password'   =\u003e '',\n        ],\n    ];\n\n    public function entrustPasswordHash() \n    {\n        $this-\u003epassword = Hash::make($this-\u003epassword);\n        $this-\u003esave();\n    }\n\n}\n```\n\n#### app/Role.php\n\n```\n\u003c?php namespace App;\n\nuse Esensi\\Model\\Contracts\\ValidatingModelInterface;\nuse Esensi\\Model\\Traits\\ValidatingModelTrait;\nuse Shanmuga\\LaravelEntrust\\LaravelEntrustRole;\n\nclass Role extends EntrustRole implements ValidatingModelInterface\n{\n  use ValidatingModelTrait;\n\n  protected $throwValidationExceptions = true;\n\n  protected $fillable = [\n    'name',\n    'display_name',\n    'description',\n  ];\n\n  protected $rules = [\n    'name'      =\u003e 'required|unique:roles',\n    'display_name'      =\u003e 'required|unique:roles',\n  ];\n}\n```\n\n#### app/Permission.php\n\n```\n\u003c?php namespace App;\n\nuse Esensi\\Model\\Contracts\\ValidatingModelInterface;\nuse Esensi\\Model\\Traits\\ValidatingModelTrait;\nuse Shanmuga\\LaravelEntrust\\LaravelEntrustPermission;\n\nclass Permission extends EntrustPermission implements ValidatingModelInterface\n{\n  use ValidatingModelTrait;\n\n  protected $throwValidationExceptions = true;\n\n  protected $fillable = [\n    'name',\n    'display_name',\n    'description',\n  ];\n\n  protected $rules = [\n    'name'      =\u003e 'required|unique:permissions',\n  ];\n}\n```\n\n### Custom queries, sorting and filters for users\n\nIf you would like to search, sort and filter the users you can use the l5-repository searchable fields feature.\n\nIn your entrust-gui.php configuration file, add the fields that you wish to be searchable \n\n```\n    \"users\" =\u003e [\n       'fieldSearchable' =\u003e [\n           'email'\n       ],\n     ],\n```\nYou can now create links such as the following:\n\n* http://localhost.dev/entrust-gui/users?search=John%20Doe\n* http://localhost.dev/entrust-gui/users?search=email\u0026searchFields=email:like\n* http://localhost.dev/entrust-gui/users?search=email\u0026searchFields=email:like\u0026orderBy=email\u0026sortedBy=asc\n* http://tcascompressors.dev/admin/users?filter=email\n\nYou can read more about these options [here](https://github.com/andersao/l5-repository#using-the-requestcriteria)\n\n## Upgrade Guide / Breaking Changes\n\n### 5.2 Branch\n\nAdd the following to the ```config/entrust-gui.php``` configuration file to enable custom sorting and filters\n\n```\n    \"users\" =\u003e [\n       'fieldSearchable' =\u003e [],\n     ],\n```\n\nOptional removal of ```Esensi\\Model\\Traits\\HashingModelTrait```. Replaced with ```Jmkim\\EntrustGui\\Contracts\\HashMethodInterface``` and allows users to set their own password hashing method for within the Entrust GUI. For the default Laravel 5.2 Auth it's recommended to use the following snippet in your User model.\n\n```\nuse Jmkim\\EntrustGui\\Contracts\\HashMethodInterface;\nuse Hash;\nclass User extends Model implements AuthenticatableContract, CanResetPasswordContract, ValidatingModelInterface, HashMethodInterface\n    // ...\n    public function entrustPasswordHash() \n    {\n        $this-\u003epassword = hash::make($this-\u003epassword);\n        $this-\u003esave();\n    }\n}\n```\n\n### 0.6\n\nIncludes a new config key, ```\"unauthorized-url\"``` which lets you set the redirection if a user is not authorized. If this key is not found, it will use the old url, ```/auth/login```. The default is set to ```/login``` to match Laravel 5.2's built in authentication route.\n\n### 0.3.* to 0.4.0\n\nStarting from 0.4.0 Entrust GUI switches from ```dwightwatson/validating``` to ```esensi/model```. \n\nHashing passwords has moved from the package to the ```User``` model.\n\nUpdate your ```User``` model to the one in the latest documentation.\n\nAdd ```'confirmable' =\u003e false,``` to your configuration file.\n\nIf you intend to use the confirmable option and have already published the views add the following to your ```resources/views/vendor/entrust-gui/users/partials/form.blade.php``` template\n\n```\n@if(Config::get('entrust-gui.confirmable') === true)\n\u003cdiv class=\"form-group\"\u003e\n    \u003clabel for=\"password\"\u003eConfirm Password\u003c/label\u003e\n    \u003cinput type=\"password\" class=\"form-control\" id=\"password_confirmation\" placeholder=\"Confirm Password\" name=\"password_confirmation\"\u003e\n\u003c/div\u003e\n@endif\n```\n\n## Support Entrust GUI\n\nIf you'd like to help, please feel free to open an issue with feature requests or proposals.\n\n## To do\n\n* Advanced middleware configuration\n* More testing\n* More documentation\n* Animated video preview\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjmkim%2Flaravel-entrust-gui","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjmkim%2Flaravel-entrust-gui","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjmkim%2Flaravel-entrust-gui/lists"}