MCPcopy Index your code
hub / github.com/APIParkLab/APIPark / accesses

Method accesses

module/permit/system/iml.go:27–57  ·  view source on GitHub ↗
(ctx context.Context)

Source from the content-addressed store, hash-verified

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

Callers 2

PermissionsMethod · 0.95
domainMethod · 0.95

Calls 1

ListMethod · 0.65

Tested by

no test coverage detected