用户登录

Trait 可以扩展模型的方法 .. 下面去创建一个 Trait ... aodnis make:trait ,名字叫 is .. 然后再打开 User 模型 ...

在模型的 boot 方法里面,用一下 this.addTrait ,在用户模型上,添加一个叫 is 的 trait .. 这样在这个 trait 里面定义的方法,就可以用在用户模型上了 ..

然后找到创建的 is 这个 trait ..

在这个 trait 里面添加一个可以得到用户角色列表的方法 .. 方法的名字是 getRoles ..

方法里面添加一个 _roles .. await 用一下 this.roles().fetch() ,使用模型上的 roles 这个关系,得到相关的角色列表 ..

下面再添加一个 roles .. 它的值是 _roles.toJSON() .. map 一下 .. 当前项目叫 role ,返回的是 role 里的 name 的值,就是角色的名字 ..

最后 return 一下这个 roles ..

在这个 Trait 的 register 方法里面 .. 在 Model 的 prototype 上面添加一个 getRoles 方法 .. 让它等于 this.getRoles ..

试验

下面可以找个地方去试一下 .. 打开 routes.js ..

找到之前我们在这里添加的这个 demo/acl ... 先找到一个用户 ... 然后添加一个 roles ... 用一下用户模型上的 getRoles ... 得到一个角色列表 ..

再 return 这个角色列表 ...

在浏览器上面,访问一下 demo/acl ...

现在页面上显示的就是 id 号是 1 的这个用户拥有的角色 ..

再试一下 ... 修改一下用户的 id 号 ...

回到浏览器,刷新一下页面 ...

现在得到的就是 id 号是 2 的这个用户的用户角色 ...

Trait:getRoles(得到角色列表)《 Node.js 应用:权限控制 #2 》

统计

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

社会化网络

关于

微信订阅号

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