用户登录

在项目里,找到 User 模型 .. 在用户模型上,我们需要定义一下它跟权限模型之间的关系 ... 添加一个方法 .. 名字可以是 permissions ... 在这个方法里面描述一下它跟 Permission 之间的关系 .. return this .. 用一下 belongsToMany .. 模型是 App/Models/Permission ..

接着可以再用一个 pivotTable ,设置一下保存用户跟权限关系的那个中间表的名字 .. 这里就是 user_permission ..

默认应用会认为中间表里没有 created_at 还有 updated_at 这两个日期字段 .. 不过我们的这个中间表有这两个字段,所以还得再用一下 withTimestamps 这个方法 ..

这样在创建还有更新用户权限关系的时候,会设置这两个字段的值 ..

下面我们可以在命令行下面,去用一下用户模型上的 permissions 关系,给用户添加几个权限 ...

打开 aodnis 的交互模式 .. adonis repl ...

先用一下 User 模型 .... 模型的位置是 App/Models/User ... 然后可以看一下应用里面的用户 ..

await User.query() ... 比如现在我想给 id 号是 1 还有 id 号是 2 的用户添加点权限 .. 可以这样 ..

先找到指定的用户 .. 添加一个 u1 ,表示用户 1 ,await User.find(1) ... 然后用一下用户模型上的 permissions 这个关系 ...

给它添加几个权限 .. 之前我们在应用里添加了几个权限,它们的 id 号是 1,2,3,4 ... 用一个 attach ,一个数组,把相关的权限记录的 id 号交给这个方法 .. 1,2,3,4 ..

执行一下 ..

再添加一个 u2 ... await User.find(2) ... 再给这个用户添加两个权限 ... await u2.permissions().attach([1, 2])

检查一下用户1拥有的权限,可以这样 .. await u1.load('permissions') ... 然后再看一下 u1.toJSON() ... 在 permissions 属性里面,会包含跟这个用户相关的权限 ...

再检查一下用户2的权限 ... await u2.load('permissions') ... u2.toJSON() ... 显示用户 2 拥有两个权限 ... create post 还有 read post ...

在数据库客户端这里,浏览一下 user_permission 数据表 ... 现在它里面会有一些数据记录 ... 这些记录表示的就是用户拥有的权限 ..

为用户分配权限《 Node.js 应用:权限控制 》

统计

14696
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点