From 843b8b192cd3e2366eceba362e013fd5fea05f1b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Toma=C5=BE=20Jerman?= Date: Tue, 10 Jan 2023 12:03:26 +0100 Subject: [PATCH] Fix server panic on user export where archived/deleted roles are used --- server/system/rest/user.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/server/system/rest/user.go b/server/system/rest/user.go index d78d4ab23..33b1cdfc2 100644 --- a/server/system/rest/user.go +++ b/server/system/rest/user.go @@ -385,6 +385,13 @@ func (ctrl *User) Export(ctx context.Context, r *request.UserExport) (rsp interf for _, m := range membership { if _, ok := roleResIndex[m.RoleID]; !ok { + // If it's not here then it was probably deleted/archived + // @todo consider adding a flag to control what happens on + // archived/deleted resources + if _, ok := roleIndex[m.RoleID]; !ok { + continue + } + roleResIndex[m.RoleID] = resource.NewRole(roleIndex[m.RoleID]) if r.InclRoles { resources = append(resources, roleResIndex[m.RoleID])