Skip to content

Commit 162b14a

Browse files
authored
fix(auth): Allow users to delete account even without org (#1002)
Signed-off-by: Javier Rodriguez <[email protected]>
1 parent d458117 commit 162b14a

File tree

2 files changed

+16
-13
lines changed

2 files changed

+16
-13
lines changed

app/controlplane/internal/server/grpc.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -256,7 +256,7 @@ func requireRobotAccountMatcher() selector.MatchFunc {
256256

257257
// Matches all operations that require to have a current organization
258258
func requireAllButOrganizationOperationsMatcher() selector.MatchFunc {
259-
const skipRegexp = "/controlplane.v1.OrganizationService/Create|/controlplane.v1.UserService/ListMemberships"
259+
const skipRegexp = "/controlplane.v1.OrganizationService/Create|/controlplane.v1.UserService/ListMemberships|/controlplane.v1.ContextService/Current|/controlplane.v1.AuthService/DeleteAccount"
260260
return func(ctx context.Context, operation string) bool {
261261
r := regexp.MustCompile(skipRegexp)
262262
return !r.MatchString(operation)

app/controlplane/internal/service/context.go

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -41,11 +41,6 @@ func NewContextService(repoUC *biz.CASBackendUseCase, uUC *biz.UserUseCase, opts
4141
}
4242

4343
func (s *ContextService) Current(ctx context.Context, _ *pb.ContextServiceCurrentRequest) (*pb.ContextServiceCurrentResponse, error) {
44-
currentOrg, err := requireCurrentOrg(ctx)
45-
if err != nil {
46-
return nil, err
47-
}
48-
4944
currentUser, currentAPIToken, err := requireCurrentUserOrAPIToken(ctx)
5045
if err != nil {
5146
return nil, err
@@ -68,20 +63,28 @@ func (s *ContextService) Current(ctx context.Context, _ *pb.ContextServiceCurren
6863
}
6964
}
7065

71-
// Add cas backend
72-
backend, err := s.uc.FindDefaultBackend(ctx, currentOrg.ID)
73-
if err != nil && !biz.IsNotFound(err) {
74-
return nil, handleUseCaseErr(err, s.log)
66+
// Load current org if available since it can be a user with no org
67+
currentOrg, err := requireCurrentOrg(ctx)
68+
if err != nil && !errors.IsNotFound(err) {
69+
return nil, err
7570
}
7671

77-
if backend != nil {
78-
res.CurrentCasBackend = bizCASBackendToPb(backend)
72+
if currentOrg != nil {
73+
// Add cas backend
74+
backend, err := s.uc.FindDefaultBackend(ctx, currentOrg.ID)
75+
if err != nil && !biz.IsNotFound(err) {
76+
return nil, handleUseCaseErr(err, s.log)
77+
}
78+
79+
if backend != nil {
80+
res.CurrentCasBackend = bizCASBackendToPb(backend)
81+
}
7982
}
8083

8184
// Optionally add current membership
8285
if currentUser != nil {
8386
m, err := s.userUC.CurrentMembership(ctx, currentUser.ID)
84-
if err != nil {
87+
if err != nil && !biz.IsNotFound(err) {
8588
return nil, handleUseCaseErr(err, s.log)
8689
}
8790

0 commit comments

Comments
 (0)