会员角色与权限

假设你经营一家服装网店"暖暖衣橱"。你希望注册的顾客能够直接为商品写评价,但又希望顾客只能修改或删除自己写的评价,不能动别人写的评价。像这样为"每一位注册会员能看什么、能写什么"所设定的权限组合,就是 ServiceUserRole(给注册会员的权限组合)。

ServiceUserRole 适用于注册的会员,也就是 ServiceUser(直接在你的服务上注册的顾客)。它不是逐个会员去分配权限,而是先做好一组"可以写评价"的权限组合,再把它绑定到会员身上。

本页先说明 ServiceUserRole 是什么、与运营团队的权限有何不同,然后会在"暖暖衣橱"里亲手创建一个角色,让会员可以写评价、并且只能修改自己的评价。

会员角色与运营团队角色不同

WEEGLOO 里有两种权限组合。两者容易混淆,所以先划清界限。

  • SpaceRole 是给运营团队的权限。它属于负责上架商品、管理站点的人,相关内容在角色与权限中介绍。
  • ServiceUserRole 是给注册会员的权限。它决定用社交账号直接在服装网店上注册的顾客能看什么、能写什么。

一句话概括,SpaceRole 是"经营店铺的人"的权限,ServiceUserRole 是"光顾店铺的顾客"的权限。两者是完全不同的角色,一边创建的角色不会应用到另一边。本页只讲给会员的 ServiceUserRole。

制定规则的方式与运营团队角色相同

创建会员角色的界面,与创建运营团队角色的界面工作方式完全相同。角色创建界面分为几个标签页(Role 详情 、 Content Type 、 Content 、 Media 、 Script),在每个资源标签页里,你都可以往允许列表和拒绝列表中逐行添加规则。一行规则就是把"对哪种动作 、 对哪个 Content Type 、 对谁创建的内容 、 对带有哪个 Tag 的内容"组合起来。而且凡是没有放进允许列表的,都会被自动拒绝。

规则构建器是如何工作的(允许与拒绝、动作的种类、缩小范围),在角色与权限中有详细介绍。本页聚焦于会员权限中最重要的部分,也就是"如何让会员只能处理自己创建的内容"。

关键在于"只限本人创建的内容"

让会员写评价时,最常见的需求是让会员只能修改、删除自己的评价。绝不能让会员连别人的评价也能修改。

每一行规则里都有一个选择创建者的栏位。这里可选的值有三种。

创建者值适用对象
任意用户无论谁创建的,全部
发起请求的用户本人仅该规则所适用的会员本人创建的内容
特定用户仅指定的某一个人创建的内容

打开 Edit 规则的创建者栏位的界面。列表中除了任意用户和发起请求的用户本人,还显示可以指定的用户名称

在这里选择发起请求的用户本人,那条规则就会针对每位会员各自"自己创建的内容"生效。即使有多位会员拿到同一个角色,对每个人来说,适用对象也都只是各自创建的内容。

用服装网店来举例:对评价(Content)允许修改(Edit)和删除(Delete),但把创建者设为发起请求的用户本人,会员就只能修改、删除自己的评价。别人写的评价即使在列表里看得到,也无法动手。

会员能动什么,由这个角色决定。如果不把创建者设为发起请求的用户本人,那个动作也会作用到别人写的内容上,所以在修改和删除的规则里,请不要漏掉发起请求的用户本人。

Script 执行权限

会员角色里也可以包含对 Script 的权限。Script 是网站调用的、无需服务器代码即可创建的后端窗口(参见 Script)。不过,对注册会员开放的只有 Execute(执行)这一项权限。

  • Execute:让会员可以调用(执行)该 Script。会员要在网站上调用 Script,就需要这项权限。

创建、修改、删除 Script 这类管理工作,属于使用内容工作室的运营团队,因此会员角色里通常只放 Execute。用允许与拒绝规则来设定权限的方式本身,与运营团队角色相同;把 Script 权限作为规则加入的界面,在角色与权限中介绍。

创建"普通会员"角色

现在就在"暖暖衣橱"里创建一个给新注册会员的"普通会员"角色。这个角色可以读取(Read)所有评价(Content),可以新建(Create)评价,并且可以修改(Edit,作者 = 发起请求的用户本人)自己写的评价。

会员角色在 ServiceLogin(顾客自行注册并使用的登录设置)下的 Roles 中创建。

  1. 在左侧菜单中展开服务,点击 ServiceLogin。
  2. 点击 Roles。
  3. 点击右上角的创建按钮,打开角色创建界面。

角色创建界面("创建 ServiceUserRole")打开后,先确定名称。

  1. 在 Role 详情标签页的名称栏中输入 普通会员。说明栏可以留空。

ServiceUserRole 创建界面的 Role 详情标签页,名称栏已输入"普通会员"的状态

接下来确定会员对评价(Content)可以执行的动作。评价要事先单独建成一个 Content Type(评价的模板),规则里才能按这个种类来选择和应用。

  1. 切换到 Content标签页。这里会显示"组合操作、Content Types、创建者和 Tags 来定义 Content 访问范围"的提示,以及允许与拒绝列表。
  2. 允许下方已经放好了一行规则。这一行目前的状态是把所有动作允许用于所有种类,所以不能就这样放着,必须加以修改。请把动作改为 Read,Content Type 改为"评价",创建者则保持任意用户不变。这样会员就能读取所有评价。
  3. 用它下方的 + 按钮再添加一行规则。动作选 Create,Content Type 选"评价",创建者保持任意用户不变。这样会员就能新建评价。
  4. 用同样的方式再添加一行规则。动作选 Edit,Content Type 选"评价",然后把创建者改为发起请求的用户本人。这样会员就只能修改自己写的评价。

Content 标签页的允许列表中,已将 Read(任意用户)、Create(任意用户)、Edit(作者为发起请求的用户本人)三条规则限定为"评价"的状态

  1. 点击右上角的保存按钮。

列表中出现 普通会员 后,角色就创建好了。

如果还想允许会员删除评价,可以用同样的方式再加一行规则:动作选 Delete,Content Type 选"评价",创建者设为发起请求的用户本人。

把创建好的角色应用到会员

创建了角色并不意味着它会自动应用到会员身上。创建好的角色要连接到会员,才会生效。

最常见的做法是把刚创建的 普通会员 指定为服务会员登录的 默认 Role。这样每一位新注册的会员都会自动绑定这个角色。

有时你只想给特定会员不同的权限。例如想给优质会员更宽的权限,就可以单独为那一位会员指定不同的角色(按会员覆盖)。为单个会员指定角色的界面,在管理服务会员中介绍。

如果想安排一位会员连其他会员写的内容也一并清理,用的也是同样的方法。再创建一个把删除规则的创建者设为任意用户的角色,然后只把这个角色指定给负责清理的会员。新注册的会员依然拿到默认 Role 普通会员,因此更宽的权限只会给到单独指定的会员。

接下来要做的事

  • 服务会员登录:把创建好的角色连接为默认 Role,并开启社交登录。
  • 角色与权限:介绍如何用同一个规则构建器来设定运营团队的权限。
  • API 参考:当你要在程序中直接处理会员所看、所写的内容时,介绍请求格式之类的技术规范。