MCPcopy Create free account
hub / github.com/bytebase/bytebase / checkPermission

Method checkPermission

backend/api/v1/group_service.go:267–281  ·  view source on GitHub ↗
(ctx context.Context, group *store.GroupMessage, user *store.UserMessage, permission string)

Source from the content-addressed store, hash-verified

265}
266
267func (s *GroupService) checkPermission(ctx context.Context, group *store.GroupMessage, user *store.UserMessage, permission string) error {
268 member := getMemberInGroup(user, group)
269 if member != nil && member.Role == storepb.GroupMember_OWNER {
270 return nil
271 }
272
273 ok, err := s.iamManager.CheckPermission(ctx, permission, user, common.GetWorkspaceIDFromContext(ctx))
274 if err != nil {
275 return connect.NewError(connect.CodeInternal, errors.Wrap(err, "failed to check permission"))
276 }
277 if !ok {
278 return connect.NewError(connect.CodePermissionDenied, errors.Errorf("user does not have permission %q", permission))
279 }
280 return nil
281}
282
283func convertToGroupPayload(group *v1pb.Group) (*storepb.GroupPayload, error) {
284 payload := &storepb.GroupPayload{}

Callers 2

UpdateGroupMethod · 0.95
DeleteGroupMethod · 0.95

Calls 4

getMemberInGroupFunction · 0.85
CheckPermissionMethod · 0.80
ErrorfMethod · 0.80

Tested by

no test coverage detected