Laravel 5.1 在哪里存储 acl 权限?

Where does Laravel 5.1 store acl permissions?

我正在尝试遵循 documentation on authorization,但在理解它最终如何运作时遇到了一些问题。

它在哪里存储权限?它是否适用于 roles?

如果它确实适用于 角色,您如何将角色应用到 用户

权限在您在策略或 AuthServiceProvider 中编写的代码中定义。

如果您想按用户申请角色:

  1. 生成适当的迁移(例如:角色,roles_users)。
  2. 为数据库中的每个用户保存您想要的角色。
  3. 定义表之间的关系。
  4. Add/update 使用您在 AuthServiceProvider 或策略中定义的角色的权限(能力)。

    例子

    class AuthServiceProvider extends ServiceProvider
    { 
    //...
        public function boot(GateContract $gate)
        {
            $this->registerPolicies($gate);
            $gate->define('read-very-confident-info', function ($user) {
                return $user->roles->contains(1); // suppose id 1 means user can read very confident info
            });
        }
    //...
    }