fix: normalize auth me payload for perfil

This commit is contained in:
Tiago Yamamoto 2026-03-04 13:20:50 -06:00
parent e701b57f6a
commit b99f4427ae

View file

@ -142,27 +142,58 @@ func (h *Handler) GetMe(w http.ResponseWriter, r *http.Request) {
}
var companyName string
var isSuperAdmin bool
isSuperAdmin := user.Superadmin || user.Role == "superadmin"
if user.CompanyID != uuid.Nil {
if c, err := h.svc.GetCompany(r.Context(), user.CompanyID); err == nil && c != nil {
companyName = c.CorporateName
if c.Category == "admin" {
isSuperAdmin = true
}
}
}
enderecos := make([]string, 0)
empresasDados := make([]string, 0)
if user.CompanyID != uuid.Nil {
empresasDados = append(empresasDados, user.CompanyID.String())
}
response := struct {
*domain.User
CompanyName string `json:"company_name"`
SuperAdmin bool `json:"superadmin"`
EmpresasDados []string `json:"empresasDados"` // Frontend expects this array
ID uuid.UUID `json:"id"`
CompanyID uuid.UUID `json:"company_id"`
Role string `json:"role"`
Nivel string `json:"nivel"`
Name string `json:"name"`
Nome string `json:"nome"`
Username string `json:"username"`
Email string `json:"email"`
EmailVerified bool `json:"email_verified"`
NomeSocial string `json:"nome-social"`
CPF string `json:"cpf"`
RegistroCompleto bool `json:"registro-completo"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
CompanyName string `json:"company_name"`
SuperAdmin bool `json:"superadmin"`
Enderecos []string `json:"enderecos"`
EmpresasDados []string `json:"empresasDados"`
}{
User: user,
CompanyName: companyName,
SuperAdmin: isSuperAdmin,
EmpresasDados: []string{user.CompanyID.String()},
ID: user.ID,
CompanyID: user.CompanyID,
Role: user.Role,
Nivel: user.Role,
Name: user.Name,
Nome: user.Name,
Username: user.Username,
Email: user.Email,
EmailVerified: user.EmailVerified,
NomeSocial: user.NomeSocial,
CPF: user.CPF,
RegistroCompleto: true,
CreatedAt: user.CreatedAt,
UpdatedAt: user.UpdatedAt,
CompanyName: companyName,
SuperAdmin: isSuperAdmin,
Enderecos: enderecos,
EmpresasDados: empresasDados,
}
writeJSON(w, http.StatusOK, response)