feat: publish Dever core with project scaffolding and versioned AI skills
This commit is contained in:
1 parent
70fa73cdc2
commit
ac458ffa7f
960 files changed
+221319
-1163
No files matched your search
@@ -0,0 +1,81 @@
|
||||
# 成员应用
|
||||
|
||||
成员应用建立租户关系并验证有效成员。
|
||||
|
||||
- 包:`user.membership.app`
|
||||
- 公开类型:无
|
||||
- 公开方法:
|
||||
- `grant_owner`
|
||||
- `require_active`
|
||||
- `active`
|
||||
- 使用:
|
||||
- `user.membership.grant_owner(account_id, selected_tenant_id)`
|
||||
- `user.membership.require_active(account_id, selected_tenant_id)`
|
||||
- `user.membership.active(stored)`
|
||||
|
||||
## 授予所有者
|
||||
|
||||
本节定义对应的源码合同。
|
||||
|
||||
- 函数:`grant_owner`
|
||||
- 输入:
|
||||
- `account_id: user.account.model.principal.id`:用户主体
|
||||
- `selected_tenant_id: platform.tenant.model.id`:租户
|
||||
- 输出:无
|
||||
|
||||
```dever
|
||||
grant_owner(
|
||||
account_id: user.account.model.principal.id,
|
||||
selected_tenant_id: platform.tenant.model.id
|
||||
) () {
|
||||
stored = model.create(
|
||||
{
|
||||
user_id = account_id
|
||||
tenant_id = selected_tenant_id
|
||||
role = model.MembershipRole.Owner
|
||||
}
|
||||
)
|
||||
discarded = stored
|
||||
}
|
||||
```
|
||||
|
||||
## 验证有效成员
|
||||
|
||||
本节定义对应的源码合同。
|
||||
|
||||
- 函数:`require_active`
|
||||
- 输入:
|
||||
- `account_id: user.account.model.principal.id`:用户主体
|
||||
- `selected_tenant_id: platform.tenant.model.id`:租户
|
||||
- 输出:无
|
||||
|
||||
```dever
|
||||
require_active(
|
||||
account_id: user.account.model.principal.id,
|
||||
selected_tenant_id: platform.tenant.model.id
|
||||
) () {
|
||||
stored = model.first(
|
||||
{
|
||||
where = user_id == account_id and tenant_id == selected_tenant_id and status == model.MembershipStatus.Active
|
||||
}
|
||||
)
|
||||
active(stored)
|
||||
}
|
||||
```
|
||||
|
||||
## 检查查询结果
|
||||
|
||||
本节定义对应的源码合同。
|
||||
|
||||
- 函数:`active`
|
||||
- 输入:
|
||||
- `stored: user.membership.model.Membership?`:成员查询结果
|
||||
- 输出:无
|
||||
|
||||
```dever
|
||||
active(stored: model.Membership) () {}
|
||||
|
||||
active(stored: null) () {
|
||||
fail(dever.api.Error.Unauthorized)
|
||||
}
|
||||
```
|
||||
@@ -0,0 +1,75 @@
|
||||
# 租户成员模型
|
||||
|
||||
控制库保存用户主体在租户中的角色。
|
||||
|
||||
- 包:`user.membership.model`
|
||||
- 公开类型:
|
||||
- `MembershipRole`
|
||||
- `MembershipStatus`
|
||||
- `Membership`
|
||||
- 公开方法:无
|
||||
- 使用:无
|
||||
|
||||
## 成员角色
|
||||
|
||||
本节定义对应的源码合同。
|
||||
|
||||
- 类型:`MembershipRole`
|
||||
- 分支:
|
||||
- `Owner`:所有者
|
||||
- `Editor`:编辑
|
||||
- `Reader`:读者
|
||||
|
||||
```dever
|
||||
type MembershipRole {
|
||||
Owner = "所有者"
|
||||
Editor = "编辑"
|
||||
Reader = "读者"
|
||||
}
|
||||
```
|
||||
|
||||
## 成员状态
|
||||
|
||||
本节定义对应的源码合同。
|
||||
|
||||
- 类型:`MembershipStatus`
|
||||
- 分支:
|
||||
- `Active`:启用
|
||||
- `Disabled`:禁用
|
||||
|
||||
```dever
|
||||
type MembershipStatus {
|
||||
Active = "启用"
|
||||
Disabled = "禁用"
|
||||
}
|
||||
```
|
||||
|
||||
## 成员记录
|
||||
|
||||
本节定义对应的源码合同。
|
||||
|
||||
- 类型:`Membership`
|
||||
- 字段:
|
||||
- `user_id: user.account.model.principal.id`:用户主体
|
||||
- `tenant_id: platform.tenant.model.id`:租户
|
||||
- `role: MembershipRole`:角色
|
||||
- `status: MembershipStatus`:状态
|
||||
|
||||
```dever
|
||||
global type Membership {
|
||||
user_id: user.account.model.principal.id
|
||||
tenant_id: platform.tenant.model.id
|
||||
role: MembershipRole index
|
||||
status: MembershipStatus default MembershipStatus.Active index
|
||||
}
|
||||
```
|
||||
|
||||
## 成员唯一约束
|
||||
|
||||
本节定义对应的源码合同。
|
||||
|
||||
- 声明:`unique(user_id, tenant_id)`
|
||||
|
||||
```dever
|
||||
unique(user_id, tenant_id)
|
||||
```
|
||||
Reference in new issue
Block a user