43 lines
1.1 KiB
Go
43 lines
1.1 KiB
Go
package user
|
|
|
|
import (
|
|
"github.com/gin-gonic/gin"
|
|
)
|
|
|
|
// RegisterBaseRoutes registers unauthenticated routes (login, register, password-reset).
|
|
func RegisterBaseRoutes(r *gin.Engine) {
|
|
r.POST("/login", LoginUser)
|
|
r.POST("/register", RegisterUser)
|
|
|
|
pwReset := r.Group("/password-reset")
|
|
{
|
|
pwReset.POST("/request", RequestPasswordReset)
|
|
pwReset.GET("/validate/:token", ValidateResetToken)
|
|
pwReset.POST("/reset", ResetPassword)
|
|
}
|
|
}
|
|
|
|
// RegisterRoutes registers user-related routes
|
|
func RegisterRoutes(r *gin.RouterGroup) {
|
|
userGroup := r.Group("/user")
|
|
{
|
|
// Protected routes - require authentication
|
|
userGroup.GET("/profile", GetUserProfile)
|
|
userGroup.PUT("/display-name", UpdateDisplayName)
|
|
userGroup.PUT("/email", UpdateEmail)
|
|
userGroup.PUT("/password", UpdatePassword)
|
|
userGroup.PUT("/language", UpdateLanguage)
|
|
}
|
|
|
|
// Admin routes - require admin role
|
|
adminGroup := r.Group("/users")
|
|
adminGroup.Use(RequireAdmin())
|
|
{
|
|
adminGroup.GET("", ListUsers)
|
|
adminGroup.GET("/:id", GetUser)
|
|
adminGroup.PUT("/:id/role", UpdateUserRole)
|
|
adminGroup.PUT("/:id/password", ChangeUserPassword)
|
|
adminGroup.DELETE("/:id", DeleteUser)
|
|
}
|
|
}
|