-
Notifications
You must be signed in to change notification settings - Fork 9
/
CreateRoleRequest.go
82 lines (77 loc) · 3.56 KB
/
CreateRoleRequest.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
package moziacl
import (
"sync"
)
// CreateRoleRequest 结构体
type CreateRoleRequest struct {
// 角色包含的权限name列表
AddPermissionNames []string `json:"add_permission_names,omitempty" xml:"add_permission_names>string,omitempty"`
// 角色审批人userId列表
ApproverUserIds []string `json:"approver_user_ids,omitempty" xml:"approver_user_ids>string,omitempty"`
// 角色归属的应用name,不传则以appKey对应的应用为准
TargetAppName string `json:"target_app_name,omitempty" xml:"target_app_name,omitempty"`
// 角色描述
Description string `json:"description,omitempty" xml:"description,omitempty"`
// 角色中文名称
Title string `json:"title,omitempty" xml:"title,omitempty"`
// 角色类型,重点注意:如果创建租户内角色,则必须填“Realm_Role”,ISV开发者创建应用侧角色,则可不填
Type string `json:"type,omitempty" xml:"type,omitempty"`
// 请求扩展字段
RequestMetaData string `json:"request_meta_data,omitempty" xml:"request_meta_data,omitempty"`
// 角色包含的数据权限,以json传入
DataPermissionJsonStr string `json:"data_permission_json_str,omitempty" xml:"data_permission_json_str,omitempty"`
// 角色英文名称
TitleEN string `json:"title_e_n,omitempty" xml:"title_e_n,omitempty"`
// 角色审批规则类型(random、self 两种类型)
RuleType string `json:"rule_type,omitempty" xml:"rule_type,omitempty"`
// 角色申请规则(1表示公开可申请,2表示公开不可申请、3表示不公开)
PublicAttri string `json:"public_attri,omitempty" xml:"public_attri,omitempty"`
// 风险等级:L表示低风险,M表示中风,H表示高风险
AssignLevel string `json:"assign_level,omitempty" xml:"assign_level,omitempty"`
// 角色唯一code,在ACL中全局唯一
Name string `json:"name,omitempty" xml:"name,omitempty"`
// 角色回收策略(REVOKE代表用户所在部门发生变化时,该用户的权限将被回收,RESERVE代表用户所在部门发生变化时,该用户的权限将被保留,TRANSFER_REVOKE代表个人主动转岗时回收 - 只在小二主动申请转岗时回收本权限)
RevokeRule string `json:"revoke_rule,omitempty" xml:"revoke_rule,omitempty"`
// 扩展字段
ExtentionMap string `json:"extention_map,omitempty" xml:"extention_map,omitempty"`
// 操作主体
PrincipalParam *BucUserPrincipalParam `json:"principal_param,omitempty" xml:"principal_param,omitempty"`
// 操作人的userId
OperatorUserId int64 `json:"operator_user_id,omitempty" xml:"operator_user_id,omitempty"`
// 角色归属人userId
OwnerUserId int64 `json:"owner_user_id,omitempty" xml:"owner_user_id,omitempty"`
// 是否数据权限,角色没有挂载数据权限,则为false
IsData bool `json:"is_data,omitempty" xml:"is_data,omitempty"`
}
var poolCreateRoleRequest = sync.Pool{
New: func() any {
return new(CreateRoleRequest)
},
}
// GetCreateRoleRequest() 从对象池中获取CreateRoleRequest
func GetCreateRoleRequest() *CreateRoleRequest {
return poolCreateRoleRequest.Get().(*CreateRoleRequest)
}
// ReleaseCreateRoleRequest 释放CreateRoleRequest
func ReleaseCreateRoleRequest(v *CreateRoleRequest) {
v.AddPermissionNames = v.AddPermissionNames[:0]
v.ApproverUserIds = v.ApproverUserIds[:0]
v.TargetAppName = ""
v.Description = ""
v.Title = ""
v.Type = ""
v.RequestMetaData = ""
v.DataPermissionJsonStr = ""
v.TitleEN = ""
v.RuleType = ""
v.PublicAttri = ""
v.AssignLevel = ""
v.Name = ""
v.RevokeRule = ""
v.ExtentionMap = ""
v.PrincipalParam = nil
v.OperatorUserId = 0
v.OwnerUserId = 0
v.IsData = false
poolCreateRoleRequest.Put(v)
}