From 5a8db837600a0dc8602a43e32f6660515a7f2966 Mon Sep 17 00:00:00 2001 From: Kristoffer Dalby Date: Fri, 31 Jan 2025 12:34:20 +0100 Subject: [PATCH] return an error when renaming users from OIDC Signed-off-by: Kristoffer Dalby --- CHANGELOG.md | 2 ++ hscontrol/db/users.go | 6 ++++++ 2 files changed, 8 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5a56a1361e..c71f5ad5ad 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,8 @@ [#2350](https://github.com/juanfont/headscale/pull/2350) - Print Tailscale version instead of capability versions for outdated nodes [#2391](https://github.com/juanfont/headscale/pull/2391) +- Do not allow renaming of users from OIDC + [#2393](https://github.com/juanfont/headscale/pull/2393) ## 0.24.2 (2025-01-30) diff --git a/hscontrol/db/users.go b/hscontrol/db/users.go index c359174df6..d7f31e5b94 100644 --- a/hscontrol/db/users.go +++ b/hscontrol/db/users.go @@ -81,6 +81,8 @@ func (hsdb *HSDatabase) RenameUser(uid types.UserID, newName string) error { }) } +var ErrCannotChangeOIDCUser = errors.New("cannot edit OIDC user") + // RenameUser renames a User. Returns error if the User does // not exist or if another User exists with the new name. func RenameUser(tx *gorm.DB, uid types.UserID, newName string) error { @@ -94,6 +96,10 @@ func RenameUser(tx *gorm.DB, uid types.UserID, newName string) error { return err } + if oldUser.Provider == util.RegisterMethodOIDC { + return ErrCannotChangeOIDCUser + } + oldUser.Name = newName if err := tx.Save(&oldUser).Error; err != nil {