From e7da8c944372178936ef6065e948556edcde9f8f Mon Sep 17 00:00:00 2001 From: "Maurice L." Date: Tue, 3 Mar 2026 15:55:39 +0100 Subject: [PATCH] Removed hardcoded string - Roles are not hardcoded anymore (closes https://git.miaurizius.de/MiauRizius/shap-planner-backend/issues/4) --- handlers/account.go | 2 +- models/dbmodels.go | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/handlers/account.go b/handlers/account.go index cd45d42..164d945 100644 --- a/handlers/account.go +++ b/handlers/account.go @@ -37,7 +37,7 @@ func Register(w http.ResponseWriter, r *http.Request) { } user.Password = hashed user.ID = utils.GenerateUUID() - user.Role = "user" + user.Role = models.RoleUser if err := storage.AddUser(&user); err != nil { log.Println("POST [api/register] " + r.RemoteAddr + ": " + err.Error()) diff --git a/models/dbmodels.go b/models/dbmodels.go index ad8b428..1dd77fa 100644 --- a/models/dbmodels.go +++ b/models/dbmodels.go @@ -24,3 +24,21 @@ type ExpenseShare struct { UserID string `json:"user_id"` ShareCents int64 `json:"share_cents"` } + +type Role int + +const ( + RoleUser = iota + RoleAdmin +) + +func (r Role) String() string { + switch r { + case RoleUser: + return "user" + case RoleAdmin: + return "admin" + default: + return "unknown" + } +}