用户登录

使用在用户,还有角色模型上定义的关系,我们可以为用户分配角色给角色添加权限,这些工作你也可以设计一个管理界面去完成 .. 我们暂时先直接在命令行下面去试一下,看看完成这些工作都需要做什么 ..

在命令行下面,先打开框架的交互模式 .. adonis repl ..

先添加一个 User ... 这个模型是在 App/Models/User .. 然后再添加一个 Role ... 模型是 App/Models/Role ..

先去创建两个角色 .. await 用一下 Role.create ... 一个对象 .. 添加一个 name 属性 ... 值就是角色的名字 .. 比如 admin ..

再执行一下它 .. 这次再添加一个叫 member 的用户角色 .. 回到数据库客户端 .. 查看一下 roles 这个数据表 .. 你会发现里面会有两条数据记录 ..

查看一下现有的用户角色 .. await Role.query() .. 你会看到,现在有一个 admin ,还有一个 member 角色 ..

给角色分配权限可以这样 .. 先找到用户角色 .. 添加一个 r1 ... await Role.find(1) .. 这个角色叫 admin , 用一下 r1 上的 permissions() ... attach ,添加几个权限 .. 给它一组权限数据的 id 号 ..

再添加一个 r2 ... await Role.find(2) ... 它是 member 这个角色 .. 再给它添加两个权限 .. r2.permissions().attach() ... 一组权限 .. 1 还有 2,表示创建还有读取内容的权限 ...

可以这样再试一下 .. r2.load('permissions') .. 再查看一下 r2.toJSON() ... 在 permissions 这里的东西就是这个角色拥有的权限 ...

下面我们再给用户分配一些角色 .. 先添加一个 u1 ... await ... User.find(1) ,用户的名字是王皓... 然后用一下用户模型上的 roles 这个关系 ... attach .. 给这个用户添加 1 还有 2 这两个角色 .. 表示 admin 还有 member ..

再添加一个 u2 ... await .. User.find(2) ... 找到 id 号是 2 的用户,用户的名字叫小雪 .. 给 u2 也添加一个用户角色 ... u2.roles().attach([2]) ... 给她添加一个 member 角色 ...

u2.load('roles') ... 再查看一下 u2 ... 在 roles 里面的东西就是这个用户的用户角色 ... u2 这个用户拥有一个 member 用户角色 ..

给角色添加权限,为用户分配角色《 Node.js 应用:权限控制 #2 》

统计

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

社会化网络

关于

微信订阅号

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