用户登录

在这个 Can Trait 里面,我们再添加一个 getPermissions 方法,这个方法可以返回用户拥有的权限列表 .. 然后 在 register 里面,给 Model.prototype 添加一个 getPermissions ,等于 this.getPermissions ..

继续再编辑这个方法 .. 先添加一个 _userPermissions .. await .. 用一下 this.permissions().fetch() ... 利用模型上的 permissions 关系,得到跟模型相关的权限 ..

然后添加一个 userPermissions .. 等于 _userPermissions .. 执行一下 toJSON() .. 接着再用一个 map ,循环处理一下权限列表 .. 因为我们需要的是一个数组 .. 数组里面的项目就是权限的 name 属性,也就是权限的名字 ..

每次处理当前项目叫 permission ,返回 permission 上的 name 属性 ..

下面再添加一个 permissions .. 它的值是个数组 .. 里面可以把 userPermissions 这个数组里的东西放进来 ..

最后再 return 这个 permissions ..

找个地方再试一下模型上的 getPermissions() 方法 .. 在 demo/acl 这个路由上 .. 添加一个 permissions .. await 用一下 user 模型上的 getPermissions ..

最后再返回得到的 permissions ..

回到浏览器 .. 访问一下 demo/acl 页面 .. 现在页面上显示的就是 id 号是 1 的这个用户拥有的权限 ...

再换个用户试一下 .. User.find .. 2 ..

访问一下 demo/acl ... 现在显示的就是 id 号是 2 的这个用户拥有的权限 ..

获取用户权限(getPermissions)《 Node.js 应用:权限控制 》

统计

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

社会化网络

关于

微信订阅号

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