jameron / regulator

身份验证和角色/权限管理器

安装: 98

依赖: 0

建议者: 0

安全: 0

星标: 0

关注者: 2

分支: 0

类型:项目

2.4.8 2018-01-31 00:50 UTC

README

此包已构建以与 Laravel 5.4.33 及更高版本一起使用。(某些较旧版本的 Laravel 可能不兼容。)

此包包含可用于您项目的函数和方法,并且您可以选择使用视图来改进您的用户体验。如果您正在使用管理视图,请确保您还要求在此处找到的管理包: 管理包

您的 composer 文件可能如下所示

        "jameron/admin": "*",
        "jameron/regulator": "*",

让我们看看能否在 10 个步骤内让您启动并运行。如果您是从头开始,请首先创建您的 Laravel 应用程序

composer create-project --prefer-dist laravel/laravel blog
  1. 将包添加到您的 compose.json 文件
    "jameron/regulator": "*",
composer update

**注意:Laravel 5.5+ 用户有自动发现功能,因此您可以忽略步骤 2 和 3

  1. 更新您的提供者
        Jameron\Regulator\RegulatorServiceProvider::class,
  1. 更新您的外观
        'Regulator' => Jameron\Regulator\Facades\RegulatorFacade::class,
  1. 发布 Sass、js 和配置
php artisan vendor:publish

**注意:选择与 jameron/regulator 包相对应的数字

  1. 运行您的迁移

**注意:Regulator 包依赖于 Laravel Auth,因此如果您还没有设置,请运行

php artisan make:auth

**注意:从 routes/web.php 中删除 Auth::routes(),Regulator 包已为您包含这些路由。

好的,现在继续迁移

php artisan migrate

如果您遇到此错误

[Illuminate\Database\QueryException]
SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes (SQL: alter table `users` add unique `users_email_unique`(`email`))``` 

您需要在您的 AppServiceProvider 中添加此内容

use Illuminate\Support\Facades\Schema;

function boot()
{
    Schema::defaultStringLength(191);
}
  1. 用两个角色和一些权限初始化数据库

您可以直接通过命令行调用它,也可以将其添加到您的应用程序的 seeder 文件中

添加到应用程序 seeder

database/seeds/DatabaseSeeder.php

$this->call(\Jameron\Regulator\database\seeds\RegulatorSeeder::class);

通过命令行调用

php artisan db:seed --class=\\Jameron\\Regulator\\database\\seeds\\RegulatorSeeder

  1. 更新您的 App\User.php
use Jameron\Regulator\Models\Traits\HasRoles;
class User extends Authenticatable
{
	use HasRoles;

您还希望这些方法在您的 User 模型上

    public function getRoleAttribute()
    {
        $roles = [];
        foreach($this->roles()->get() as $role) {
            $roles[] = $role->slug;
        }
        return implode(',', $roles);
    } 

    public function getEnabledAttribute()
    {
        return ($this->disabled) ? 'no' : 'yes';
    }
  1. 如果您将项目设置为使用数据库会话驱动程序,您可以看到用户是否登录。要设置数据库会话驱动程序
php artisan session:table

php artisan migrate
  1. 订阅登录和注销事件,以更新用户模型上的 last_login 和 last_logout 时间戳。将此添加到 app/Providers/EventServiceProvider。
protected $subscribe = [
\Jameron\Regulator\Listeners\UserEventSubscriber::class,
];
  1. 更新您的 webpack.mix.js 文件
   .js('resources/assets/regulator/js/RegulatorDependencies.js', 'public/js/Regulator.js')
   .sass('resources/assets/regulator/sass/regulator.scss', 'public/css')
  1. 确保您已安装 vuex,因为它与角色权限组件一起使用。
npm install vuex --save
  1. 编译它
npm run dev