From 14326713ed34ebd64ebd80d8afe92ce6e970452f 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 159248a20..4e77be56c 100644 --- a/server/system/rest/user.go +++ b/server/system/rest/user.go @@ -388,6 +388,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])