访问控制

在 3.0 版更改: 在 Weblate 3.0 之前,特权系统基于 Django,但现在是专门为 Weblate 构建的。如果使用的是更旧的版本,那么请查阅所使用的特定版本的文档。

Weblate 带有细粒度的特权系统,可以为整个实例或在有限范围内分配用户权限。

权限系统基于组和角色,其中角色定义了一组权限,组将它们分配给用户和翻译,请参阅 用户,角色,用户组和权限 以获取更多详细信息。

安装后,将创建一组默认的组,可以使用这些组为整个实例分配用户角色(请参阅 默认群组和角色 )。此外,启用 项目访问控制 后,可以将用户分配给特定的翻译项目。使用 客户访问控制 可以实现更细粒度的配置。

通用设置

锁定 Weblate

为了完全锁定 Weblate,你可以使用 REQUIRE_LOGIN 强制用户登录并用 REGISTRATION_OPEN 来防止新注册。

全网站范围的权限

为了管理整个事例的权限,只通过将用户添加到 Users (这通常使用 自动分配组 默认实现)、 ReviewersManagers 群组中即可。将所有的项目保持为 Public (请参考 项目访问控制 )。

每个每个项目的权限

注解

此功能对于运行 Weblate 上托管的自由软件计划的项目不可用。

将项目设置为 ProtectedPrivate ,并在Weblate的界面上管理每个项目的用户。

自定义语言、组件或项目权限

注解

此功能对于运行 Weblate 上托管的自由软件计划的项目不可用。

成员将被分配给其所在组的任何权限,因此可以一次为用户分配多个权限。 创建组并将其附加到项目、组件或语言上。 用户可以分为多个组,权限之间可以重叠。

根据项目、组件或语言授予任何选择的权限。为了实现这一目的,对给定的资源建立新的群组(例如“捷克语译者”)并配置。对于所选的资源,任何指定的权限可以授予群组内的成员。

如果使用每个项目的权限的话,那么无需另外设置即可正常工作。对于整个事例的权限,你可能还想从 Users 群组中去掉这些权限,或者更改将所有用户自动指定给哪个群组 (请参考 自动分配组 )。

参见

权限检查

项目访问控制

注解

通过打开访问控制 ,所有用户均被禁止访问给定项目的任何内容,除非你授权给他们。

注解

此功能对于运行 Weblate 上托管的自由软件计划的项目不可用。

通过在每个相应项目 Settings`的 :guilabel:`Access`标签页上选择不同的访问控制变量来限制用户对单独项目的访问。这将自动为有问题的项目创建几个组,见 :ref:`groups

Access control 可以设置为:

公开的

公开可见,且所有登录用户均可进行翻译

受保护的

公开可见,但只允许被选择的用户翻译

私有的

公开可见,但只允许被选择的用户翻译

自定义

Django 管理员管理用户而非 Weblate,请参考 客户访问控制

../_images/project-access.png

授予对一个项目的访问权有下列两种方法。要么在 Django admin-interface 中,直接给用户或用户组添加特权,要么按照 管理每个项目的访问控制 中所描述的使用项目页面上的用户管理。

注解

即使打开了访问控制 ,也可以看到项目的一些信息:

  • 整个事例的统计数据,包括所有项目计数。

  • 整个事例的语言概要,包括所有项目的计数。

自动分配组

From the Authentication in the Django admin interface, users can be assigned to groups [you want this for] automatically based on their e-mail addresses. This only happens upon account creation.

注解

在迁移期间,总是会重新创建对 用户`和`查看者 的自动组分配。如果要关闭,请将正则表达式设置为 ^$ (永不匹配)。

用户,角色,用户组和权限

身份验证模型包括几个对象:

权限

Weblate 定义的个人权限。权限不能分配给用户。这只能通过分配角色来完成。

Role

角色定义为一组权限。这允许在几个地方重复使用这些组,使管理更容易。

User

用户可归属于几个用户组。

群组

用户组与角色、用户和身份验证对象(项目、语言和组件列表)联系。

graph auth { "User" -- "Group"; "Group" -- "Role"; "Role" -- "Permission"; "Group" -- "Project"; "Group" -- "Language"; "Group" -- "Components"; "Group" -- "Component list"; }

权限检查

任何时候检查权限来决定是否执行给定的动作时,根据范围来执行检查,并且下列检查是按照这个顺序执行的:

  1. 群组 Component list 与访问的组件或项目匹配(对于项目级别的访问)。

  2. 群组 Components 与访问的组件或项目匹配(对于项目级别的访问)。

  3. 群组 Projects 与访问的项目匹配。

因此,授予对组件的访问权也使用户能够访问组件所在的项目。

注解

只使用第一条规则。所以如果设置所有的 Component listComponentsProject ,只会应用 Component list

如果检查翻译许可,则会执行另外的步骤:

  1. 群组 Languages 与访问过的翻译进行匹配,它会被组件或项目级别的访问忽略。

提示

使用 Language selectionProject selection 来自动包括所有语言或项目。

检查项目的访问权限

用户必须是链接到项目的组或项目中的任何组件的成员。拥有成员身份就足够了,访问项目不需要特定的权限 (这被用于默认的 查看者 小组,见 默认群组和角色 )。

检查对组件的访问

用户一旦能够访问包含的项目,就可以不受限制地访问组件。在开启 受限制的访问 的情况下,访问组件需要对该组件的显式权限 (或者它所在的组件列表)。

管理用户和群组

可使用 Django 管理界面管理所有用户和他们所在的各种组,你可以通过附加 /admin/ 到 Weblate 站点 URL来访问它们。

管理每个项目的访问控制

注解

这个特性只对使用访问控制的项目起作用,见 项目访问控制

具有 Manage project access 特权的用户(请参见 访问控制 )还可以通过项目页面上的打开访问控制来管理用户。这个界面允许你:

  • 将现有用户添加到项目中

  • 邀请新用户参加到项目中

  • 更改用户权限

  • 撤销用户访问

3.11 新版功能.

  • 重新发送用户电子邮件邀请 (使任何之前发送的邀请无效)

可在任意项目的 Manage 菜单中看到用户管理:

../_images/manage-users.png

预定义的群组

Weblate 的项目带有预定义的群组,可以为之指定用户。

Translate

可以翻译项目,并将离线的翻译上传。

Sources

可以在:ref: ‘ monollingual ‘和源字符串信息中编辑源字符串。

Languages

可以管理翻译语言(添加或删除翻译)。

Glossary

可以管理词汇表(添加或删除权限,或上传)。

Memory

可以管理翻译记忆库。

Screenshots

可以管理截屏(添加或删除截屏,并将其与源字符串关联)。

Review

可以在复查时批准翻译。

VCS

可以管理版本控制系统(VCS)并访问导出的仓库。

Administration

在项目中可以有所有的权限。

Billing

可以访问账单信息(请参见 账单 )。

客户访问控制

To gain more access control adjustments in a project, you can set Access control to Custom to switch over to using the Django admin-interface instead of the one in Weblate.

If you want to do this by default for all current and new projects, configure the DEFAULT_ACCESS_CONTROL to administrate all permissions and relations using the Django admin interface.

警告

通过将其打开, Weblate 会删除所有为这个项目建立的 项目访问控制 。如果没有事件的管理权限却去做的话,会立即丢失管理项目的访问权限。

默认群组和角色

这些角色和组是在安装时创建的。在升级时,内置角色总是通过数据库迁移保持最新。自定义更改不会丢失。如果要定义自己的权限集,请定义新角色。

特权列表

账单(请参见 账单

查看账单信息[Administration, Billing]

修改

下载更改[Administration]

注释

发表注释[Administration, Edit source, Power user, Review strings, Translate]

删除注释[Administration]

组件

编辑组件设置[Administration]

锁定组件,防止翻译 [Administration]

词汇表

添加词汇表入口[Administration, Manage glossary, Power user]

编辑词汇表入口[Administration, Manage glossary, Power user]

删除词汇表入口[Administration, Manage glossary, Power user]

上传词汇表入口[Administration, Manage glossary, Power user]

自动建议

使用自动建议 [Administration, Edit source, Power user, Review strings, Translate]

翻译记忆库

编辑翻译记忆库 [Administration, Manage languages]

删除翻译记忆库 [Administration, Manage languages]

项目

编辑项目设置[Administration]

更改项目访问权限[Administration]

报告

下载报告[Administration]

截图

添加截屏[Administration, Manage screenshots]

编辑截屏[Administration, Manage screenshots]

删除截屏[Administration, Manage screenshots]

源字符串

编辑附加的字符串信息 [Administration, Edit source]

字符串

添加新字符串 [Administration]

移除一条字符串 [Administration]

忽略失败的检查 [Administration, Edit source, Power user, Review strings, Translate]

编辑字符串 [Administration, Edit source, Power user, Review strings, Translate]

复查字符串[Administration, Review strings]

当建议被强制执行时编辑字符串 [Administration, Review strings]

编辑源字符串[Administration, Edit source, Power user]

建议

接受建议 [Administration, Edit source, Power user, Review strings, Translate]

添加建议 [Administration, Edit source, Add suggestion, Power user, Review strings, Translate]

删除建议 [Administration, Power user]

为建议投票 [Administration, Edit source, Power user, Review strings, Translate]

翻译

添加翻译语言 [Administration, Power user, Manage languages]

执行自动翻译[Administration, Manage languages]

删除现有翻译 [Administration, Manage languages]

添加几种语言进行翻译 [Administration, Manage languages]

上传

定义所上传翻译的作者 [Administration]

使用上传的内容覆盖现有的字符串[Administration, Edit source, Power user, Review strings, Translate]

上传翻译 [Administration, Edit source, Power user, Review strings, Translate]

版本控制系统(VCS )

访问内部仓库 [Administration, Access repository, Power user, Manage repository]

将更改提交到内部代码库[Administration, Manage repository]

从内部存储库推送更改 [Administration, Manage repository]

重置内部代码库的更改 [Administration, Manage repository]

查看上游仓库位置 [Administration, Access repository, Power user, Manage repository]

更新内部代码库[Administration, Manage repository]

全网站范围的特权

使用管理界面

添加新项目

添加语言定义

管理语言定义

管理群组

管理用户

管理角色

管理公告

管理翻译记忆库

管理组件列表

注解

站点范围的特权不会被授予任何默认角色。它们功能强大,非常接近超级用户的地位。它们中的大多数都会影响到你的 Weblate 安装中的所有项目。

群组列表

下面的群组在安装时建立(或在执行 setupgroups 后), 您可以自由修改它们。但是,如果它们被删除或重命名,迁移后将重新创建这些名称。

访客

定义非授权用户的权限。

这个群组只包括匿名用户(请参见 ANONYMOUS_USER_NAME )。

你可以从群组中去掉角色,来限制非授权用户的权限。

默认角色: Add suggestion, Access repository

Viewers

这一角色确保公开项目对所有用户可见。所有用户默认是这个群组的成员。

By default 自动分配组 makes all new accounts members of this group when they join.

默认角色:无

用户

所有用户的默认群组。

By default 自动分配组 makes all new accounts members of this group when they join.

默认角色: Power user

校对

复核员的群组(参见 翻译工作流 )。

默认角色: Review strings

管理人员

管理员的群组。

默认角色: Administration

警告

决不要移除预先定义的 Weblate 群组和用户,因为这会这可能会导致意想不到的问题。如果你不需要他们,你可以删除他们的所有特权。