From 704c67dec8a1e62da43523938dc0e5322d306411 Mon Sep 17 00:00:00 2001 From: Maycon Santos Date: Thu, 11 Apr 2024 10:02:51 +0200 Subject: [PATCH] Allow owners that did not create the account to delete it (#1825) Sometimes the Owner role will be passed to new users, and they need to be able to delete the account --- management/server/account.go | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/management/server/account.go b/management/server/account.go index 20bd15ad6..099369fc2 100644 --- a/management/server/account.go +++ b/management/server/account.go @@ -242,19 +242,19 @@ type UserPermissions struct { } type UserInfo struct { - ID string `json:"id"` - Email string `json:"email"` - Name string `json:"name"` - Role string `json:"role"` - AutoGroups []string `json:"auto_groups"` - Status string `json:"-"` - IsServiceUser bool `json:"is_service_user"` - IsBlocked bool `json:"is_blocked"` - NonDeletable bool `json:"non_deletable"` - LastLogin time.Time `json:"last_login"` - Issued string `json:"issued"` + ID string `json:"id"` + Email string `json:"email"` + Name string `json:"name"` + Role string `json:"role"` + AutoGroups []string `json:"auto_groups"` + Status string `json:"-"` + IsServiceUser bool `json:"is_service_user"` + IsBlocked bool `json:"is_blocked"` + NonDeletable bool `json:"non_deletable"` + LastLogin time.Time `json:"last_login"` + Issued string `json:"issued"` IntegrationReference integration_reference.IntegrationReference `json:"-"` - Permissions UserPermissions `json:"permissions"` + Permissions UserPermissions `json:"permissions"` } // getRoutesToSync returns the enabled routes for the peer ID and the routes @@ -1120,7 +1120,7 @@ func (am *DefaultAccountManager) DeleteAccount(accountID, userID string) error { return status.Errorf(status.PermissionDenied, "user is not allowed to delete account") } - if user.Id != account.CreatedBy { + if user.Role != UserRoleOwner { return status.Errorf(status.PermissionDenied, "user is not allowed to delete account. Only account owner can delete account") } for _, otherUser := range account.Users {