Skip to content

身份组与权限 ​

English

本文说明 ProjectWikit 如何判定一个账号可以做什么:身份组、权限列表、按分类的权限覆盖、站点可对成员施加的处置,以及哪些权力属于整个实例而非单个站点。相关设置所在的界面参见站点管理。

ProjectWikit 的权限细分到每一项事务,管理后台的每一屏也各由一条权限控制。因此,您可以只给一个身份组 工单管理 中的权限并允许它进入管理后台,由此设立类似「工单审查员」「申请书审查员」的职位:他们只处理自己负责的事务,而不必掌握整个管理后台。

模型 ​

一个 ProjectWikit 实例可以承载一个或多个站点。

  • 账号属于实例。 同一个账号可以登录实例中的每个站点,其用户名、显示名、邮箱与个人资料在各站点完全相同。
  • 身份组属于单个站点。 在一个站点持有身份组,不会在另一个站点带来任何权限。
  • 权限来自身份组。 账号在某站点的权限,由其在该站点持有的身份组共同决定。
  • 超级管理员不受上述规则约束。 启用状态的超级管理员在实例的每个站点拥有全部权限,且不受任何处置影响。

每个站点有两个内置身份组,它们从不手工分配:

身份组持有者
everyone所有访客,无论是否登录
registered所有已登录账号

为账号分配的身份组叠加在这两个之上。

用 pwikit createsite 新建的站点还预置了 admin 与 member 两个普通身份组,可以修改或删除,见站点管理。

身份组包含什么 ​

每个身份组对每条权限持有一个取值:

取值含义
允许该身份组授予这条权限
拒绝该身份组拒绝这条权限,且拒绝优先于任何授予
继承该身份组不做规定,交由其他身份组决定。所持身份组都没有授予时,账号没有这条权限

注意继承 与 拒绝 都不授予权限,但效果完全不同。继承 只是该身份组不表态,成员持有的其他身份组(包括 everyone 与 registered)只要有一个允许,成员就有这条权限。拒绝 会压过其他所有身份组的允许,只要成员持有的任一身份组拒绝了某条权限,无论其他身份组如何设置,成员都没有它。

如仅需某个身份组不授予某条权限,请使用 继承。在 everyone 或 registered 上设为 拒绝,将使超级管理员以外的所有人失去该权限。

身份组还带有两项设置:

  • 可进入管理后台:决定该身份组能否进入管理后台。进入后台之后,每一屏另需相应权限。
  • 权限级别:决定谁可以修改谁。账号只能修改权限级别数值大于自己的账号。超级管理员可以修改任何账号。

判定顺序 ​

针对某个账号、某个站点、某个页面或论坛对象,按以下顺序判定:

  1. 已停用的账号没有任何权限,包括浏览。
  2. 启用状态的超级管理员拥有全部权限,后续步骤不再适用。
  3. 合并所持全部身份组的授予。 任一身份组授予的权限即为授予。
  4. 分类覆盖替换身份组的取值,仅对该分类下的页面生效,详见下文。
  5. 应用全部拒绝。 只要有一个所持身份组拒绝某条权限,或分类覆盖对该身份组拒绝了它,该账号就没有这条权限,即使另一个身份组授予了它。
  6. 应用对象规则。 锁定的页面与论坛主题、作者身份与隐藏的论坛版块会调整结果,见锁定、作者与论坛。
  7. 站点要求验证邮箱时,未验证的账号失去写入类权限。 参见注册与账号。
  8. 最后应用站点处置。 参见成员处置。

分类覆盖 ​

每个页面分类都可以覆盖某个身份组的取值,仅对该分类下的页面及其评论主题生效。覆盖在管理后台的页面分类屏中设置,只涉及文章与论坛两组权限,其余权限始终按整个站点判断。覆盖中设为 允许 或 拒绝 的项替换该身份组在这些权限上的取值,设为 继承 的项保持身份组自身的取值。

常见用法:

  • 设立 sandbox 分类,在其中为 registered 允许 创建文章 与 编辑文章。
  • 设立 admin 分类,在其中为 everyone 与 registered 拒绝 浏览文章,仅在该分类中允许浏览的身份组可以阅读这些页面。

覆盖无法找回另一个身份组拒绝掉的权限,因为第 5 步在覆盖之后执行。若要只在某个分类授予某条权限,需确认该账号所持的身份组中没有任何一个拒绝它。

锁定、作者与论坛 ​

情形效果
页面已锁定没有 锁定文章 权限的账号在该页面上失去 编辑文章、编辑文章标签、移动文章、管理文章文件、删除文章 与 管理文章作者
账号是未锁定页面的作者在该页面上获得 管理文章作者。锁定的页面不给作者额外权限
账号发起了论坛主题可以编辑该论坛主题
账号撰写了帖子在站点上拥有 创建论坛帖子 权限期间,可以编辑自己的帖子
论坛主题已锁定没有 锁定论坛主题 权限的账号不能评论、回复、编辑或删除帖子,也不能编辑、置顶或移动该论坛主题
账号的论坛发言被停用(论坛启用 或 论坛停用至)在所有论坛主题中受到与锁定论坛主题相同的限制
版块为 仅管理员可见需要 浏览隐藏的论坛版块 权限才能看到

权限列表 ​

权限分为 文章、论坛、用户互动、工单管理、成员处置 与 管理后台 六组。其中两组需要先了解:

  • 成员处置 决定管理员可以对本站点的成员做什么。下文每种处置各有一条权限,因此「可以禁言」与「可以封禁」是分开授予的。
  • 管理后台 决定哪些屏可以打开。持有 管理用户 可以打开成员列表与成员页面;要对成员执行处置,仍需 成员处置 组中的相应权限。

权限表中同时显示每项权限的名称与代码。

权限代码允许的操作
文章
浏览文章view_articles阅读页面
为文章评分rate_articles为页面评分
创建文章create_articles创建页面
编辑文章edit_articles编辑源代码、标题与父页面,回退版本;可打开 页面 屏
编辑文章标签tag_articles更改页面标签
移动文章move_articles重命名与移动页面
锁定文章lock_articles锁定与解锁页面,并在锁定的页面上保留全部权限
管理文章文件manage_article_files上传、重命名与删除附件
删除文章delete_articles删除页面
重置文章评分reset_article_votes清空页面的全部投票
评论文章comment_articles发表页面评论
查看文章评论view_article_comments阅读页面评论
管理文章作者manage_article_authors更改页面作者,还需要 编辑文章
论坛
浏览论坛帖子view_forum_posts阅读帖子
创建论坛帖子create_forum_posts在论坛主题中回复
编辑论坛帖子edit_forum_posts编辑任何人的帖子
删除论坛帖子delete_forum_posts删除帖子
浏览论坛主题view_forum_threads阅读论坛主题
创建论坛主题create_forum_threads发起论坛主题
编辑论坛主题edit_forum_threads更改任何论坛主题的标题与简介
置顶论坛主题pin_forum_threads置顶论坛主题
锁定论坛主题lock_forum_threads锁定论坛主题,并在锁定的论坛主题中发帖
移动论坛主题move_forum_threads将论坛主题移动到其他论坛分类
浏览论坛版块view_forum_sections查看论坛版块
浏览隐藏的论坛版块view_hidden_forum_sections查看标记为 仅管理员可见 的版块
浏览论坛分类view_forum_categories查看论坛分类
用户互动
发送私信send_direct_message发送私信
工单管理
查看用户检举view_user_reports用户检举 屏
查看用户工单view_user_tickets支持工单 屏
审核入组申请review_membership_applications入组申请 屏
成员处置
封禁成员ban_members在本站点封禁成员
禁言成员mute_members在本站点禁言成员
禁止成员编辑restrict_member_editing在本站点收回成员的页面编辑能力
禁止成员评分restrict_member_rating在本站点收回成员的评分能力
重置成员评分reset_member_votes清除成员在本站点投出的全部票
邀请成员invite_members新建账号、邀请链接、认领链接与激活账号
管理机器人账号manage_bots新建机器人账号
管理后台
管理用户manage_users打开 用户、邀请链接 屏与成员页面
管理身份组manage_roles身份组 与 身份组分类 屏
管理站点manage_site站点设置 与 主题 屏
查看操作记录view_actions_log操作记录 屏与仪表板上的最近操作
管理分类manage_categories页面分类 屏
管理标签manage_tags标签 与 标签分类 屏
管理论坛manage_forum三个论坛屏
查看敏感信息view_sensitive_info账号的邮箱地址
查看投票时间view_votes_timestamp在评分明细与账号动态中查看每一票的时间
管理系统更新manage_updates目前没有作用
管理权限设置manage_permissions权限表、分类权限覆盖、分配身份组、站点设置中的身份组字段,以及入组申请通过后发放的身份组

成员处置 ​

处置是某个站点对其成员收回的能力。处置按站点记录:同一个账号可以在实例的一个站点被封禁,而在另一个站点不受影响。

处置收回什么需要的权限
封禁另外三项收回的全部内容封禁成员
禁言发表评论、发起论坛主题、回复、编辑与删除帖子、编辑与置顶及移动论坛主题禁言成员
禁止编辑创建、编辑、打标签、移动、锁定与删除页面,管理附件与作者,重置投票禁止成员编辑
禁止评分对页面评分禁止成员评分

以下规则对四种处置都成立:

  • 被处置的成员仍可浏览。 阅读页面、评论与论坛的能力不会被收回,登录也照常可用。
  • 私信不会被收回,因为它不属于任何单个站点。
  • 处置可以设置到期时间。 到期后自动失效,记录仍保留在成员页面上。留空表示长期有效,直到有人解除。
  • 每项处置都可以记录理由。
  • 超级管理员不受处置影响。

处置在管理后台的成员页面上的 本站处置 一节中设置。每项处置只对持有相应权限的账号显示。

站点权力与实例权力 ​

账号本身由实例中的所有站点共用,因此写在账号上的一切都保留给超级管理员。站点管理员的处置只在本站点内生效。

操作由谁执行影响范围
封禁、禁言、禁止编辑、禁止评分持有相应权限的身份组本站点
清除成员投出的票重置成员评分本站点
分配身份组管理权限设置本站点
新建账号、邀请链接、认领链接、机器人邀请成员 / 管理机器人账号本站点
修改用户名、显示名、简介或邮箱超级管理员整个实例
停用账号,使其无法在任何站点登录超级管理员整个实例
在整个实例范围内关闭账号的论坛功能超级管理员整个实例
收回账号的私信功能超级管理员整个实例
授予或取消超级管理员超级管理员整个实例

在成员页面上,非超级管理员的管理员只能看到这些账号设置的当前取值,无法进行更改。

与 Wikidot 的不同 ​

WikidotProjectWikit
谁能做什么固定的几类身份:任何人、成员、版主、管理员任意数量的身份组,每个身份组对每条权限各有取值
权限粒度每个分类对每种操作一项设置每种操作一条独立权限,且任一分类可为任一身份组覆盖其中任意一条
同时持有多重身份成员只属于一类账号可持有任意多个身份组,授予相加,任一拒绝即为拒绝
封禁把成员挡在站点之外每个站点四种独立处置,各自可设到期时间,账号本身不受影响
账号级处置不适用保留给超级管理员
设置所在位置Site Manager管理后台,参见站点管理

Wikidot 的按分类权限表没有直接对应物,因为这里的分类覆盖针对的是身份组而非固定身份。若要复现 Wikidot 的配置,可为原先的每一类身份各建一个身份组,再为各分类添加针对这些身份组的覆盖。