本文档描述了 Gitea 的用户和组织管理系统,包括用户账户、组织结构、团队以及这些实体之间的关系。有关用户和组织相关的仓库权限,请参阅 仓库系统。
Gitea 的用户和组织管理提供了一个灵活的框架来管理个人贡献者、组织及其相应的权限。此系统处理
来源
用户模型是个人账户和组织的双重基础
User 结构体通过 Type 字段服务于多种目的
每个账户都有个人资料信息、身份验证详细信息和可见性设置,这些设置控制账户如何向他人显示。
来源
组织被实现为一种特殊的、具有附加功能的*用户*类型
每个组织都有
来源
用户可以通过以下方式创建:
用户创建过程包括
来源
Gitea 支持多种认证方法
| 身份验证类型 | 描述 | 实现 |
|---|---|---|
| 本地 | 存储在 Gitea 数据库中的基于密码的身份验证 | models/auth/auth.go |
| OAuth2 | 通过外部 OAuth 提供商进行身份验证 | models/auth/oauth2.go |
| LDAP/AD | 目录服务身份验证 | models/auth/ldap.go |
| PAM | Linux 可插拔身份验证模块 | models/auth/pam.go |
| SMTP | 电子邮件服务器身份验证 | models/auth/smtp.go |
密码身份验证包括
来源
用户可以自定义其账户的各个方面
个人资料定制包括
来源
组织提供了一种集体分组用户和管理仓库访问的方式。
每个组织都有
来源
团队是控制组织内仓库访问的主要机制
团队可以对不同的仓库单元具有不同的访问级别,从而实现精细的权限控制。
来源
用户可以关注其他用户以跟踪他们的活动
关注关系
follow 表中跟踪来源
Gitea 允许用户通过三个级别来控制其可见性
| 可见性级别 | 描述 |
|---|---|
| 公开 | 对所有访问者可见(登录或未登录) |
| 有限 | 仅对登录用户可见 |
| 私有 | 仅对管理员和组织团队成员可见 |
可见性会影响
来源
用户会收到关于各种活动的通知
通知偏好可以按用户设置
EmailNotificationsEnabled:接收除自己的通知外的所有通知EmailNotificationsOnMention:仅在被提及/@提及时接收通知EmailNotificationsDisabled:无电子邮件通知EmailNotificationsAndYourOwn:所有通知,包括您自己的来源
管理员拥有管理用户和组织的特殊能力
管理员用户管理包括
来源
用户和组织管理系统遵循 Gitea 的分层架构
此架构分离了
来源
REST API 提供用于以编程方式管理用户和组织的端点
| 端点 | 方法 | 描述 |
|---|---|---|
/api/v1/users | GET | 列出用户 |
/api/v1/users/{username} | GET | 获取用户信息 |
/api/v1/admin/users | POST | 创建用户(仅管理员) |
/api/v1/admin/users/{username} | PATCH | 更新用户(仅管理员) |
/api/v1/admin/users/{username} | DELETE | 删除用户(仅管理员) |
/api/v1/orgs | GET | 列出组织 |
/api/v1/orgs | POST | 创建组织 |
/api/v1/orgs/{org} | GET | 获取组织信息 |
/api/v1/orgs/{org}/members | GET | 列出组织成员 |
/api/v1/orgs/{org}/teams | GET | 列出组织团队 |
这些 API 端点支持用户和组织管理任务的自动化。
来源
可以通过应用程序设置来配置用户和组织系统的行为
| 设置 | 描述 | 默认 |
|---|---|---|
DISABLE_REGULAR_ORG_CREATION | 普通用户是否可以创建组织 | false |
DEFAULT_ORG_VISIBILITY | 新组织的默认可见性 | 公开 |
DEFAULT_ORG_MEMBER_VISIBLE | 组织成员默认是否可见 | true |
DEFAULT_USER_VISIBILITY | 新用户的默认可见性 | 公开 |
DEFAULT_ALLOW_CREATE_ORGANIZATION | 用户默认是否可以创建组织 | true |
EMAIL_DOMAIN_ALLOWLIST | 将用户注册限制在特定的电子邮件域 | 无 |
PASSWORD_COMPLEXITY | 密码复杂度要求 | 无 |
这些设置允许管理员控制用户和组织系统的默认行为和安全性。
来源