From 1f76a8bb641024bd0c5722976ec7fd0f6dafce49 Mon Sep 17 00:00:00 2001 From: Sterad Date: Thu, 24 Oct 2024 20:42:38 +0000 Subject: [PATCH] feat: preferably award admin access to project users with write access on user deletion (#2772) Reviewed-on: https://kolaente.dev/vikunja/vikunja/pulls/2772 Co-authored-by: Sterad Co-committed-by: Sterad --- pkg/models/user_delete.go | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/pkg/models/user_delete.go b/pkg/models/user_delete.go index ab6ef7cc6..5f8a6d88d 100644 --- a/pkg/models/user_delete.go +++ b/pkg/models/user_delete.go @@ -177,6 +177,16 @@ func ensureProjectAdminUser(s *xorm.Session, l *Project) (hadUsers bool, err err } } + for _, lu := range projectUsers { + if lu.Right == RightWrite { + lu.Right = RightAdmin + _, err = s.Where("id = ?", lu.ID). + Cols("right"). + Update(lu) + return true, err + } + } + firstUser := projectUsers[0] firstUser.Right = RightAdmin _, err = s.Where("id = ?", firstUser.ID). @@ -203,6 +213,16 @@ func ensureProjectAdminTeam(s *xorm.Session, l *Project) (hadTeams bool, err err } } + for _, lu := range projectTeams { + if lu.Right == RightWrite { + lu.Right = RightAdmin + _, err = s.Where("id = ?", lu.ID). + Cols("right"). + Update(lu) + return true, err + } + } + firstTeam := projectTeams[0] firstTeam.Right = RightAdmin _, err = s.Where("id = ?", firstTeam.ID).