feat(user): assign superuser role to first registered user
Add logic to check if registering user is the first one and assign 'superuser' role instead of default 'visitor' role. This ensures proper initial admin setup for new deployments.
This commit is contained in:
16
userAct.go
16
userAct.go
@@ -89,7 +89,21 @@ func RegisterHandler(w http.ResponseWriter, r *http.Request) {
|
||||
return
|
||||
}
|
||||
|
||||
userID, err := AddUser(req.Username, req.Passwd, "visitor")
|
||||
// Check weather the user is the first user, if it is, give the superuser level
|
||||
userList, err := DBListUsers()
|
||||
if err != nil {
|
||||
SendErrorResponse(w, http.StatusInternalServerError, err.Error())
|
||||
postLog.Error(fmt.Sprintf("[RegisterHandler] Failed to list users: %v", err))
|
||||
return
|
||||
}
|
||||
newUserType := ""
|
||||
if len(userList) == 0 {
|
||||
newUserType = "superuser"
|
||||
} else {
|
||||
newUserType = "visitor"
|
||||
}
|
||||
|
||||
userID, err := AddUser(req.Username, req.Passwd, newUserType)
|
||||
if err != nil {
|
||||
SendErrorResponse(w, http.StatusInternalServerError, err.Error())
|
||||
postLog.Error(fmt.Sprintf("[RegisterHandler] Failed to register user \"%s\": %v", req.Username, err))
|
||||
|
||||
Reference in New Issue
Block a user