fix(auth): always serialize User.Role so admin (role 0) is not omitted

The Role field used json:"role,omitempty". Admin is RoleAdmin = 0, so an
admin profile serialized without a `role` key. The admin-frontend gates the
admin menu (user management, settings) on `role === 0`, and its normalizeRole
helper defaults a missing role to non-admin, so admins lost the admin menu.

Drop omitempty so role 0 is always sent. Add a regression test.
This commit is contained in:
naiba
2026-05-31 12:05:11 +00:00
parent 34ab8a31bc
commit f7f8264ec0
2 changed files with 33 additions and 1 deletions
+1 -1
View File
@@ -25,7 +25,7 @@ type User struct {
Common
Username string `json:"username,omitempty" gorm:"uniqueIndex"`
Password string `json:"password,omitempty" gorm:"type:char(72)"`
Role Role `json:"role,omitempty"`
Role Role `json:"role"`
AgentSecret string `json:"agent_secret,omitempty" gorm:"type:char(32)"`
RejectPassword bool `json:"reject_password,omitempty"`
TokenVersion uint64 `json:"-" gorm:"not null;default:0"`