访问控制

Weblate comes with a fine-grained privilege system to assign user permissions for the whole instance with predefined roles, or by assigning one or more groups of permissions to users for everything, or individual projects, components, glossaries, and so on.

项目访问控制

备注

Hosted Weblate 上托管的免费套餐项目始终是 公开的。如果你想限制对项目的访问,请切换到付费套餐。

Limit user access to individual projects by selecting a different 访问控制 setting. The available options are:

公开的

对所有人可见。

任何已验证用户均可参与贡献。

版本控制系统仓库可能会暴露给所有人。

对于开源项目请选择这个,或者当你的 Weblate 实例是私密的被锁定时选择它。

受保护的

对所有人可见。

只允许指定的用户贡献。

只有指定的用户可访问版本控制系统仓库。

如果要增加项目可见性,但仍希望控制谁可以作贡献,请选择这个。

私有的

只对指定的用户可见。

只允许指定的用户贡献。

只有指定的用户可访问版本控制系统仓库。

完全不应该公开暴露的项目请选择这个。

自定义

只对指定的用户可见。

只允许指定的用户贡献。

只有指定的用户可访问版本控制系统仓库。

Hosted Weblate 上不可用。

你必须使用 全站访问控制 设置所有权限。

如果您想以一种特定的、精细定制的方式定义访问,请在你自己的 Weblate 实例上选择这个。

可以在每个项目的配置( 管理设置)的 访问 选项卡中更改 访问控制

../_images/project-access.webp

The default can also be changed by setting DEFAULT_ACCESS_CONTROL.

备注

Even Private project statistics are counted into the site-wide statistics and language summary. This does not reveal project names or any other info.

备注

Instance administraotrs can modify the default permission sets available to users in Public, Protected, and Private projects by using custom settings.

参见

访问控制

管理每个项目的访问控制

适用于 公开受保护私有 项目:

Granting users Manage project access (see 特权列表) allows them to assign other users in Public`, Protected and Private (but not Custom) projects via adding them to teams.

These are the default teams provided with Weblate; teams can be added or modified by users with sufficient privileges:

管理

All available permissions for the project.

Review

Approve translations in a review.

Available only if review workflow is on.

只适用于 受保护私有 项目:

翻译

Translate the project and upload translations made offline.

原文

Edit source strings (if allowed in the project settings) and source-string info.

语言

Manage translated languages (add or remove translations).

术语表

Manage glossary (add, remove, and upload entries).

记忆存储

Manage translation memory.

截屏

Manage screenshots (add, remove, and associate them to source strings).

自动翻译

可以使用自动翻译。

版本控制系统

Manage VCS and access the exported repository.

账单

Access billing info and settings (see 账单).

../_images/manage-users.webp

These features are available on the Access control page in the project’s menu ManageUsers.

提示

You can limit teams to languages or components, and assign them designated access roles (see 特权列表).

团队管理员

Added in version 4.15.

每个团队都可以有团队管理员,他们可以在团队中添加和删除用户。这在您想要构建自治团队时很有用。

邀请新用户

添加现有用户将给这些用户发送邀请进行确认。借助 REGISTRATION_OPEN,管理员还可以使用电子邮件邀请新用户。被邀请的用户必须完成注册过程才能访问项目。

进行此操作不需要有任何站点范围的权限,项目级别的访问管理权限(如 Administration 团队成员资格)就足够了。

提示

如果被邀请的用户错过了邀请的有效期,必须下创建新邀请。

通过 用户 选项卡下的 管理界面 获取可在站点范围内使用的同样的邀请。

在 5.0 版本发生变更: Weblate 现在不自动创建账户或添加用户到团队中。此类操作只有在用户确认后才会进行。

阻止用户

Added in version 4.7.

If users misbehave in your project, you can block them from contributing. With the relevant permissions blocked, users can still see the project, but won’t be able to contribute.

每个项目的权限管理

You can set your projects to Protected or Private (see 项目访问控制), and manage users access per-project.

默认情况下,这可防止 Weblate 因 用户查看者 默认团队 本身的配置而授予其提供的访问权限。但这并不妨碍您向这些项目授予站点范围的权限,可用的方法有改变默认团队、创建一个新团队,或如下方 全站访问控制 中所述为单个部件创建额外的自定义设置。

通过 Weblate 用户界面管理权限的一个主要好处是,您可以将其委托给其他用户,而无需授予这些用户超级用户权限。为此,请将这些用户添加到项目的 Administration 团队中。

全站访问控制

备注

此功能在 Hosted Weblate 上不可用。

The permission system is based on roles defining a set of permissions, and teams linking roles to users and translations, read 用户、角色、团队和权限 for more details.

Weblate 访问控制系统最强大的功能可以在 管理界面`进行配置。您可以使用它来管理任何项目的权限。你不一定要将它切换到 :guilabel:`自定义 访问控制 来使用它。但是你必须有超级用户权限才能使用它。

如果您对实现的细节不感兴趣,只是想创建一个基于默认值的足够简单的配置,或者不能访问整个 Weblate 安装(如 Hosted Weblate),请参见 管理每个项目的访问控制 部分。

站点范围内的权限管理

要一次性管理整个实例的权限,请将用户添加到适当的 默认团队

  • 用户 (默认情况下,这是由 自动团队分配 完成的)。

  • 审校员 (如果您有专门的审校员,正在使用 审校流程)。

  • 管理者 (如果您想把大部分的管理操作委托给别人)。

您应该将所有项目配置为 公开的(参见 项目访问控制),否则 用户审校员 团队成员资格提供的站点范围权限将不起任何作用。

您还可以向默认团队授予一些您选择的额外权限。例如,你可能想给所有 用户 管理截图的权限。

您还可以定义一些新的自定义团队。如果希望继续在站点范围内管理这些团队的权限,请为 项目选择 选择一个合适的值(如 所有项目所有公开项目 )。

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

您可以创建自己的专门团队来管理不同对象(如语言、部件和项目)的权限。虽然这些团队只能授予额外的权限,但您不能通过添加另一个自定义团队来撤销全站或每个项目团队授予的任意权限。

示例:

Restricting translation to Czech to a selected set of translators, (while keeping translations to other languages public):

  1. Remove the permission to translate Czech from all users. In the default configuration this can be done by altering the Users default team.

    用户 群组

    语言选择

    按所指定

    语言

    捷克语 之外的所有语言

  1. 捷克语 译者添加一个专门的团队。

    捷克语译者 小组

    角色

    高级用户

    项目选择

    所有公共项目

    语言选择

    按所指定

    语言

    捷克语

  1. 将您希望授予此权限的用户添加到此团队中。

Management permissions this way is powerful, but can be quite a tedious job. You can only delegate it to other users by granting them Superuser status.

用户、角色、团队和权限

身份验证模型由几个对象组成:

权限

Individual permission defined by Weblate. Permissions cannot be assigned to users, only through assignment of roles.

角色

A role defines a set of permissions (and can be reused in several places).

用户

A user can belong to several teams.

群组

Groups connect roles and users with authentication objects (projects, languages, components, and component lists).

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

备注

团队可以不分配任何角色,但在这种情况下任何人都可以浏览它的项目(见下文)。

Project-browsing access

用户必须是链接到项目的团队或项目中的任何部件的成员。拥有成员身份就足够了,浏览项目不需要特定的权限 (这被用于默认的 查看者 团队,见 团队列表 )。

Component-browsing access

Granting browsing access to a user in one project gives it access to any component with derived browsing permissions. With 受限制的访问 on, access to components (or component lists) are granted explicitly.

团队范围

团队内角色分配的权限范围适用如下规则:

  • 如果团队指定了任何 部件列表,则授予该团队成员的所有权限都适用于附加到该团队的部件列表中的所有部件,并为这些部件所在的所有项目授予没有额外权限的访问权限。 部件项目 将被忽略。

    使用巨大的部件列表可能影响性能,请考虑通过项目给予访问权限。

  • 如果该团队指定了任何 部件,则授予该团队成员的所有权限都适用于附加到该团队的所有部件,并为这些部件所在的所有项目授予没有额外权限的访问权限。 项目 将被忽略。

  • 否则,如果团队指定了任何 项目,通过直接列出它们或通过将 项目选择 设置为类似 所有公开项目 的值,所有这些权限将应用于所有项目,它有效地授予访问所有项目的相同权限 不受限制的部件

  • 当验证用户是否有权限执行某些操作时,由团队的 语言 施加的限制将单独应用。也就是说,它仅适用于与翻译过程本身直接相关的操作,例如审校、保存翻译、添加建议等。

提示

使用 语言选择项目选择 来自动包括所有语言或项目。

示例:

A project foo with the components: foo/bar and foo/baz, with reviewing and management rights, in the following team:

西班牙语管理审校员 群组

角色

审校字符串管理仓库

部件

foo/bar

语言

西班牙语

Members of that team will have these permissions (assuming the default role settings):

  • 对整个项目 foo 的一般(浏览)访问,包括其中的两个部件:foo/barfoo/baz

  • 审校 foo/bar 西班牙语翻译(而非其他地方)中的字符串。

  • 管理整个 foo/bar 仓库的版本控制系统,例如提交所有语言的译者所做的待处理更改。

自动团队分配

编辑 团队`时,你可以指定 :guilabel:`自动 分配,这是一个正则表达式列表,用于根据他们的电子邮箱地址自动将新创建的用户分配到团队。此分配仅在创建账户时发生。

该功能最常见的用例是将所有新用户分配到某些默认的团队中。此行为用于默认的 UsersGuest 团队(见 团队列表)。使用正则表达式 ^.*$ 来匹配所有用户。

此选项的另一个用例可能是默认为您公司的员工提供一些额外的权限。假设他们都使用您域中的公司电子邮箱地址,这可以通过像 ^.*@mycompany.com 这样的表达式来完成。

备注

从一个 Weblate 版本升级到另一个版本时,总是会重新创建对 用户查看者 的自动团队分配。如果你想关闭它,将正则表达式设置为 ^$ (不匹配任何内容)。

备注

就目前而言,还没有办法通过用户界面将现有用户批量添加到某个团队。为此,您可以通过 REST API 来实现。

默认团队和角色

安装完成后,将创建一组默认团队(参见 团队列表)。

这些角色和团队是在安装时创建的。升级时,内置角色始终通过数据库迁移保持最新状态。实际上你无法更改它们,如果要定义自己的权限组合,请定义一个新角色。

特权列表

范围

权限

内置角色

账单(请参见 账单

查看账单信息

管理, 账单

变化

下载变化

管理

评论

发表评论

管理, 编辑源, 高级用户, 审校字符串, 翻译

删除评论

管理

解决评论

管理, 审校字符串

部件

编辑部件设置

管理

锁定部件,阻止翻译

管理, 管理仓库

术语表

添加术语表条目

管理, 管理术语表, 高级用户

Add glossary terminology

管理, 管理术语表, 高级用户

编辑术语表条目

管理, 管理术语表, 高级用户

删除术语表条目

管理, 管理术语表, 高级用户

上传术语表条目

管理, 管理术语表, 高级用户

自动建议

使用自动建议

管理, 编辑源, 高级用户, 审校字符串, 翻译

翻译记忆库

编辑翻译记忆

管理, 管理翻译记忆库

删除翻译记忆

管理, 管理翻译记忆库

项目

编辑项目设置

管理

管理项目访问权

管理

报告

下载报告

管理

截屏

添加截图

管理, 管理截图

编辑截图

管理, 管理截图

删除截图

管理, 管理截图

源字符串

编辑字符串额外信息

管理, 编辑原文

字符串

添加新字符串

管理

移除字符串

管理

忽略未通过的检查

管理, 编辑源, 高级用户, 审校字符串, 翻译

编辑字符串

管理, 编辑源, 高级用户, 审校字符串, 翻译

审校字符串

管理, 审校字符串

当建议被强制执行时需要编辑字符串

管理, 审校字符串

编辑源字符串

管理, 编辑原文, 高级用户

建议

接受建议

管理, 编辑源, 高级用户, 审校字符串, 翻译

添加建议

管理, 编辑原文, 添加建议, 高级用户, 审校字符串, 翻译

删除建议

管理, 高级用户

为建议投票

管理, 编辑源, 高级用户, 审校字符串, 翻译

翻译

添加翻译语言

管理, 高级用户, 管理语言

执行自动翻译

管理, 自动翻译

删除现有翻译

管理, 管理语言

下载翻译文件

管理, 编辑原文, 访问仓库, 高级用户, 审校字符串, 翻译, 管理语言

添加多种翻译语言

管理, 管理语言

上传

定义上传译文的作者

管理

上传时覆盖已有字符串

管理, 编辑源, 高级用户, 审校字符串, 翻译

上传译文

管理, 编辑源, 高级用户, 审校字符串, 翻译

版本控制系统

访问内部仓库

管理, 访问仓库, 高级用户, 管理仓库

将更改提交到内部仓库

管理, 管理仓库

从内部仓库推送更改

管理, 管理仓库

重置内部仓库的更改

管理, 管理仓库

查看上游仓库位置

管理, 访问仓库, 高级用户, 管理仓库

更新内部仓库

管理, 管理仓库

全网站范围的特权

使用管理界面

添加新项目

添加新项目

添加语言定义

管理语言定义

管理团队

管理用户

管理角色

管理公告

管理翻译记忆库

机器翻译

管理部件列表

管理账单

Manage site-wide add-ons

备注

Site-wide privileges are not granted to any default role. These are powerful and quite close to the Superuser status. Most of them affect all projects in your Weblate installation.

内置角色列表

管理

View billing info, Download changes, Post comment, Delete comment, Resolve comment, Edit component settings, Lock component, preventing translations, Add glossary entry, Delete glossary entry, Edit glossary entry, Add glossary terminology, Upload glossary entries, Use automatic suggestions, Delete translation memory, Edit translation memory, Edit project settings, Manage project access, Download reports, Add screenshot, Delete screenshot, Edit screenshot, Edit additional string info, Accept suggestion, Add suggestion, Delete suggestion, Vote on suggestion, Add language for translation, Add several languages for translation, Perform automatic translation, Delete existing translation, Download translation file, Add new string, Dismiss failing check, Remove a string, Edit strings, Edit string when suggestions are enforced, Review strings, Edit source strings, Define author of uploaded translation, Overwrite existing strings with upload, Upload translations, Access the internal repository, Commit changes to the internal repository, Push change from the internal repository, Reset changes in the internal repository, Update the internal repository, View upstream repository location

编辑原文

发表评论, 使用自动建议, 编辑附加的字符串信息, 接受建议, 添加建议, 对建议投票, 下载翻译文件, 不理会失败的检查, 编辑字符串, 编辑源字符串, 用上传覆盖现有字符串, 上传翻译

添加建议

添加建议

访问仓库

下载翻译文件, 访问内部仓库, 查看上游仓库位置

管理术语表

Add glossary entry, Delete glossary entry, Edit glossary entry, Add glossary terminology, Upload glossary entries

高级用户

发表评论, 添加术语表项目, 删除术语表项目, 编辑术语表项目, 上传术语表项目, 使用自动建议, 接受建议, 添加建议, 删除建议, 对建议投票, 添加一种翻译语言, 下载翻译文件, 不理会失败的检查, 编辑字符串, 编辑源字符串, 用上传覆盖现有翻译, 上传翻译, 访问内部仓库, 查看上游仓库位置

审校字符串

发表评论, 解决评论, 使用自动建议, 接受建议, 添加建议, 对建议投票, 下载翻译文件, 不理会失败的检查, 编辑字符串, 当建议被强制时编辑字符串, 审校字符串, 用上传覆盖现有翻译, 上传翻译

翻译

发表评论, 使用自动建议, 接受建议, 添加建议, 对建议投票, 下载翻译文件, 不理会失败的检查, 编辑字符串, 用上传覆盖现有字符串, 上传翻译

管理语言

添加一种翻译语言, 添加几种翻译语言, 删除现有翻译, 下载翻译文件

自动翻译

执行自动翻译

管理翻译记忆库

删除翻译记忆库, 编辑翻译记忆库

管理截图

添加截图, 删除截图, 编辑截图

管理仓库

锁定部件防止翻译, 访问内部仓库, 提交更改到内部仓库, 从内部仓库推送更改, 重置内部仓库中的更改, 更新内部仓库, 查看上游仓库位置

账单

查看账单信息

添加新项目

添加新项目

团队列表

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

访客

定义非授权用户的权限。

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

Remove roles from this team to limit permissions for non-authenticated users.

默认角色:添加建议访问仓库

查看者

This role ensures the visibility of public projects to all users. By default, all users are members of this team.

默认情况下,自动团队分配 将会使所有新账户在加入时成为该团队的成员。

默认角色:无

用户

所有用户的默认团队。

默认情况下,自动团队分配 将会使所有新账户在加入时成为该团队的成员。

默认角色:高级用户

审校员

审校员的群组(参见 翻译工作流)。

默认角色:审校字符串

管理者

管理员的群组。

默认角色:管理

项目创建者

Added in version 5.1.

可以新建项目的用户。

默认角色 添加新项目

警告

Never remove the predefined Weblate teams and users, as that can lead to unexpected problems! If you have no use for them, simply remove all their privileges instead.

额外访问限制

如果您想以不那么公开的方式使用您的 Weblate 安装,即只允许新用户在受邀的基础上,可以通过配置 Weblate 以这样一种方式来实现,即只有已知用户才能访问它。为此,您可以将 REGISTRATION_OPEN 设置为 False 以防止任何新用户注册,并将 REQUIRE_LOGIN 设置为 /.* 以要求登录 访问所有网站页面。这基本上是锁定您的 Weblate 安装的方法。

提示

您可以使用内置的 邀请新用户 来添加新用户。