MCPcopy Create free account
hub / github.com/APIParkLab/APIPark / accesses

Method accesses

module/permit/team/iml.go:33–63  ·  view source on GitHub ↗
(ctx context.Context, teamId string)

Source from the content-addressed store, hash-verified

31}
32
33func (m *imlTeamPermitModule) accesses(ctx context.Context, teamId string) ([]string, error) {
34
35 // 判断是否是访客,如果是,直接返回访客权限
36 if utils.GuestAllow() && utils.IsGuest(ctx) {
37 return access.GuestAccess(role.GroupTeam), nil
38 }
39 uid := utils.UserId(ctx)
40 roleMembers, err := m.roleMemberService.List(ctx, role.TeamTarget(teamId), uid)
41 if err != nil {
42 return nil, err
43 }
44 if len(roleMembers) == 0 {
45 return []string{}, nil
46 }
47 roleIds := utils.SliceToSlice(roleMembers, func(rm *role.Member) string {
48 return rm.Role
49 })
50 roles, err := m.roleService.List(ctx, roleIds...)
51 if err != nil {
52 return nil, err
53 }
54 permits := make(map[string]struct{})
55 for _, r := range roles {
56 for _, p := range r.Permit {
57 permits[p] = struct{}{}
58 }
59 }
60 return utils.MapToSlice(permits, func(k string, v struct{}) string {
61 return k
62 }), nil
63}
64
65func (m *imlTeamPermitModule) domain(ctx *gin.Context) ([]string, []string, bool) {
66 teamId := ctx.Query("team")

Callers 2

PermissionsMethod · 0.95
domainMethod · 0.95

Calls 1

ListMethod · 0.65

Tested by

no test coverage detected