Add random password generation for new users
- Move GenerateRandomPassword to auth package for reuse - Make password optional in user creation (generates 16-char if empty) - Return generated password in response for user to copy - Add Generate/Copy UI with show/hide toggle
This commit is contained in:
parent
7cdc561dcc
commit
8b2d2649ac
4 changed files with 80 additions and 20 deletions
|
|
@ -7,6 +7,7 @@ import (
|
|||
"strconv"
|
||||
"strings"
|
||||
|
||||
"git.workaround.org/chaas/imc/backend/internal/auth"
|
||||
"git.workaround.org/chaas/imc/backend/internal/db"
|
||||
"git.workaround.org/chaas/imc/backend/internal/mail"
|
||||
"github.com/gin-gonic/gin"
|
||||
|
|
@ -22,7 +23,7 @@ func NewUserHandler(database *db.DB) *UserHandler {
|
|||
|
||||
type CreateUserRequest struct {
|
||||
Email string `json:"email" binding:"required"`
|
||||
Password string `json:"password" binding:"required"`
|
||||
Password string `json:"password"`
|
||||
Quota int64 `json:"quota"`
|
||||
}
|
||||
|
||||
|
|
@ -169,7 +170,11 @@ func (h *UserHandler) Create(c *gin.Context) {
|
|||
return
|
||||
}
|
||||
|
||||
passwordHash := "{BLF-CRYPT}" + req.Password
|
||||
password := req.Password
|
||||
if password == "" {
|
||||
password = auth.GenerateRandomPassword(16)
|
||||
}
|
||||
passwordHash := "{BLF-CRYPT}" + password
|
||||
|
||||
err = h.db.CreateUser(ctx, domain.ID, req.Email, passwordHash, req.Quota)
|
||||
if err != nil {
|
||||
|
|
@ -178,7 +183,7 @@ func (h *UserHandler) Create(c *gin.Context) {
|
|||
return
|
||||
}
|
||||
|
||||
Created(c, map[string]string{"message": "user created"})
|
||||
Created(c, map[string]interface{}{"message": "user created", "password": password})
|
||||
}
|
||||
|
||||
func (h *UserHandler) Update(c *gin.Context) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue