第六章:合作伙伴——协作无间,灵活掌控

在团队协作中,每个人都应该明确自己的职责和权限,才能确保工作顺利推进。今天,我们将一起来学习角色创建和权限管理,让协作更加顺畅、有序。

别担心,这个过程并不复杂,我们会带你一步步完成,在每个关键环节引导你。如果你遇到任何问题,请随时来我们官方论坛求助。

需求探讨:

我们需要一个“伙伴”(Partner)角色,这个角色有一定的权限来参与任务管理,但不能随意修改他人的任务。通过这种方式,我们可以灵活进行任务分配和协作。

角色结构图

角色和权限简介: 角色和权限是管理用户访问和操作的重要机制,确保系统的安全性和数据的完整性,角色可以给用户进行绑定,一个用户可以拥有多个角色。对角色的权限设置从而能够控制用户在系统中的行为、操作以及对用户的页面功能展示限制等等,具有重要的权限控制意义。 使用角色和权限功能,与用户进行绑定。能够在此次案例学习中让你对自己的管理系统有了更好地管控,作为管理者你能够随心所欲调动安排谁具有怎么样的系统操作权限!

6.1 角色创建与绑定

6.1.1 “伙伴(Partner)” 角色创建

  • 点击界面右上角的用户和权限,选择角色和权限。这是我们设置角色和管理权限的地方。
  • 点击“创建角色”按钮,弹出一个对话框。在这里,为角色命名为伙伴(Partner),并确认保存。

你已经成功创建了一个新角色!接下来,我们需要给这个角色分配权限,确保他们能够参与到任务管理中。

6.1.2 为自己绑定新角色

为了确保我们设置的角色权限生效,我们可以先把这个角色绑定到自己的账号上进行测试。操作很简单:

  • 在用户管理中找到你的账号,点击进入,选择“绑定角色”,选择“伙伴”。

这样你就可以用自己账号模拟“伙伴”角色的体验了。接下来,我们要试试如何切换角色。

6.1.3 切换“伙伴”角色

现在,你已经绑定了“伙伴”角色。接下来,我们来看看如何切换角色。

  • 点击右上角的个人中心,然后选择“切换角色”。
  • 你可能会发现列表里暂时没有出现“伙伴”角色的选项,别担心,这时候只需要刷新页面/缓存,角色就会显示出来啦!

6.2 为角色分配页面权限

切换到“伙伴”角色之后,你可能会发现系统上没有任何页面和菜单。这是因为我们还没有给这个角色分配访问特定页面的权限。没关系,接下来我们来为“伙伴”角色设置访问权限。

6.2.1 为“伙伴”角色分配任务页面权限

  • 首先,切换回 Root 角色(超级管理员),然后进入“角色和权限”页面。
  • 点击“伙伴”角色,进入配置页面。这里我们可以看到一个“菜单”标签,表示系统中的所有页面。
  • 勾选“任务管理”页面权限,这样“伙伴”角色就可以访问任务管理页面了。

回到个人中心,再次切换到“伙伴”角色,这时你应该已经能够看到任务管理菜单页了。

6.2.2 设置数据表和操作权限

虽然现在“伙伴”角色已经可以访问任务管理页面,但我们还需要进一步限制他们的操作权限。我们希望“伙伴”可以:

  • 查看和编辑分配给自己的任务;
  • 更新任务进度
  • 但是不能创建或删除任务

为此,我们需要配置“任务表”的权限。来吧,我们继续!

6.2.2.1 为“伙伴”角色配置数据表权限
  • 进入“角色和权限”页面,点击“伙伴”角色,切换到“数据源”选项卡。
  • 在这里,你会看到“数据表操作权限”的设置。找到“任务表”,我们需要为“伙伴”分配“查看”和“编辑”权限。
  • 为什么编辑权限分配的是 ‘所有数据’ ? 虽然我们暂时赋予了伙伴全部的编辑权限。但我们后续会根据“任务责任人”动态限制字段权限。 所以一开始保留最大权限是为了后面的控制更加灵活。
  • “新增”、“删除” 我们不希望给其他角色开放,所以从一开始就不必分配。

到这里为止,伙伴角色已经有权限查看和编辑所有任务表了。接下来我们需要更进一步的控制,以确保他们只能编辑分配给自己的任务。

6.3 任务添加“负责人”字段

接下来,我们要为每个任务指定一个负责人。通过指定负责人,我们可以确保只有任务的负责人才能修改任务,而其他人只能查看。这时我们需要用到关系字段,来关联任务表和用户表。

6.3.1 创建“负责人”字段

  1. 进入“任务表”,点击“添加字段”,选择“关系字段”。
  2. 选择“多对一”关系(因为一个任务只能有一个负责人,而一个用户可以负责多个任务)。
  3. 为字段命名为“负责人(Assigner)”。不用勾选反向关系,暂时我们用不上。

6.3.2 展示“负责人”字段

接下来,我们需要确保在任务管理页面的表格和表单中展示“负责人”字段,这样你就可以轻松为每个任务分配负责人了。(如果你的字段默认展示编号,别慌,把标题字段从 ID 改成“昵称”即可)

6.4 使用权限管理控制权限

接下来是重头戏!!现在,我们要利用 NocoBase 的权限管理来实现一个非常强大的功能:只有任务的负责人和创建者能够编辑任务,其他人只能查看。 NocoBase 的下一个灵活性即将展现。

6.4.1 简单尝试,只有负责人能编辑表单

我们希望只有任务的负责人能够编辑任务,因此我们要设置以下条件:

  • 我们回到“伙伴”的数据表权限,点开任务表的“配置”,并点击“编辑权限”后面的 “数据范围”。
  • 新建一条自定义规则,命名为“责任人可编辑”: 当“负责人/ID” 等于 “当前用户/ID” 时,才可编辑; 这意味着只有任务负责人才能编辑任务,其他人只能查看。
  • 因为我们负责人字段用的是用户表,登录用户也在用户表中,所以这条规则完美实现了我们的第一个需求。

点击添加,确定

我们回到页面看一下:

完美,现在我们切换伙伴角色,回到页面看一下,只有项目责任人是我们自己是,编辑操作才会暴露给我们。

6.4.2 条件附加,创建人修改表单

接下来你可能很快发现了新问题:

由于大部分任务我们都不是负责人,我们自己没办法编辑表单,而且其他小伙伴也看不到任务详情了!

别担心,还记得我们给伙伴分配了所有数据的“查看” 权限吗?

  • 我们回到页面,在配置中点选“查看”,新增一个查看操作

  • 类似编辑操作的弹窗布局,做一个查看弹窗,切记选择“详情”区块。

搞定~

6.5 验证权限控制

如果你尝试切换到不同用户,查看表单时,你会发现表单区块中,已经自动根据对应用户的权限,展示出了不同的操作。我们所有已负责的任务都会开放编辑操作权限,而未负责的项目,就只有查看操作。

当我们切换到 Root 角色,又会恢复所有的权限,这就是 NocoBase 权限控制的强大之处!

接下来可以随意指派任务负责人、叫上小伙伴一起合作啦。让我们来为团队添加一名新成员,并测试一下我们设置的权限是否正确。

6.5.1 创建新用户并分配角色

  • 创建一个新用户,比如 Tom,并分配“伙伴”角色。

  • 在任务管理页面,将几条任务分配给 Tom

6.5.2 登录测试

让 Tom 登录系统,看看他是否能正常查看并编辑分配给他的任务。通过设置的权限规则,Tom 应该只能编辑自己负责的任务,其他任务对他是只读的。

所有页面的编辑表单权限已经成功同步~

小结

恭喜你!到现在为止,你已经学会了如何在 NocoBase 中创建角色、分配权限、设置自定义权限,确保团队成员只能编辑分配给自己的任务。通过这些步骤,你已经为团队协作建立了一个清晰、有序的权限管理系统。

挑战任务

到目前为止,Tom 已经能够查看和编辑自己负责的任务,但你可能注意到,他还无法发表评论,无法在任务中参与互动。那么,我们该如何给 Tom 分配权限,让他可以自由发表意见、参与讨论呢?这会是一个非常有趣的挑战!

挑战提示:

你可以尝试回到角色权限设置中,调整“伙伴”角色的权限,比如数据表,看看如何让 Tom 拥有评论的权限,同时保证不会影响他在其他任务中的限制操作。

快去试试吧!我们会在接下来的内容中揭晓答案。

在下一章中,我们也将实现 ”成员动态“ 功能,并介绍另一个强大的功能模块——工作流。通过工作流,你可以实现数据的动态流转、触发各种操作,让系统自动化处理繁琐的业务流程。准备好继续探索吗?我们第七章:工作流——自动赋能,效率飞跃见!


继续探索,尽情发挥你的创造力!如果遇到问题,别忘了随时查阅 NocoBase 官方文档 或加入 NocoBase 社区 进行讨论。

× 放大图像