MCPcopy Index your code
hub / github.com/bytebase/bytebase / GetUsersByMember

Function GetUsersByMember

backend/utils/member.go:90–125  ·  view source on GitHub ↗

GetUsersByMember gets user messages by member. The member should be in users/{email}, serviceAccounts/{email}, workloadIdentities/{email}, or groups/{email} format.

(ctx context.Context, stores *store.Store, workspace string, member string)

Source from the content-addressed store, hash-verified

88// GetUsersByMember gets user messages by member.
89// The member should be in users/{email}, serviceAccounts/{email}, workloadIdentities/{email}, or groups/{email} format.
90func GetUsersByMember(ctx context.Context, stores *store.Store, workspace string, member string) []*store.UserMessage {
91 var users []*store.UserMessage
92 if strings.HasPrefix(member, common.UserNamePrefix) {
93 user := getUserByIdentifier(ctx, stores, member, common.UserNamePrefix)
94 if user != nil {
95 users = append(users, user)
96 }
97 } else if strings.HasPrefix(member, common.ServiceAccountNamePrefix) {
98 user := getUserByIdentifier(ctx, stores, member, common.ServiceAccountNamePrefix)
99 if user != nil {
100 users = append(users, user)
101 }
102 } else if strings.HasPrefix(member, common.WorkloadIdentityNamePrefix) {
103 user := getUserByIdentifier(ctx, stores, member, common.WorkloadIdentityNamePrefix)
104 if user != nil {
105 users = append(users, user)
106 }
107 } else if strings.HasPrefix(member, common.GroupPrefix) {
108 group, err := stores.GetGroupByName(ctx, workspace, member)
109 if err != nil {
110 slog.Error("failed to get group", slog.String("group", member), log.BBError(err))
111 return users
112 }
113 if group == nil {
114 slog.Error("cannot found group", slog.String("group", member))
115 return users
116 }
117 for _, member := range group.Payload.Members {
118 user := getUserByIdentifier(ctx, stores, member.Member, common.UserNamePrefix)
119 if user != nil {
120 users = append(users, user)
121 }
122 }
123 }
124 return users
125}
126
127// getUserByIdentifier gets user message by identifier.
128// The identifier should be in {prefix}{email} format where prefix is one of:

Callers 2

Calls 5

BBErrorFunction · 0.92
getUserByIdentifierFunction · 0.85
GetGroupByNameMethod · 0.80
StringMethod · 0.65
ErrorMethod · 0.45

Tested by

no test coverage detected