Documentation
¶
Index ¶
- func API2FA(w http.ResponseWriter, req *http.Request)
- func Check2FA(w http.ResponseWriter, req *http.Request)
- func Delete2FA(w http.ResponseWriter, req *http.Request)
- func Me(w http.ResponseWriter, req *http.Request)
- func New2FA(w http.ResponseWriter, req *http.Request)
- func RefreshUserToken(w http.ResponseWriter, req *http.Request) ([]utils.Permission, bool, utils.User, error)
- func ResetPassword(w http.ResponseWriter, req *http.Request)
- func SendAdminPasswordEmail(nickname string, email string, link string) error
- func SendInviteEmail(nickname string, email string, link string) error
- func SendLoginNotificationEmail(nickname string, email string, ip string, date time.Time) error
- func SendPasswordEmail(nickname string, email string, link string) error
- func SendUserToken(w http.ResponseWriter, req *http.Request, user utils.User, mfaDone bool, ...)
- func UserCreate(w http.ResponseWriter, req *http.Request)
- func UserDelete(w http.ResponseWriter, req *http.Request)
- func UserEdit(w http.ResponseWriter, req *http.Request)
- func UserGet(w http.ResponseWriter, req *http.Request)
- func UserList(w http.ResponseWriter, req *http.Request)
- func UserLogin(w http.ResponseWriter, req *http.Request)
- func UserLogout(w http.ResponseWriter, req *http.Request)
- func UserRegister(w http.ResponseWriter, req *http.Request)
- func UserResendInviteLink(w http.ResponseWriter, req *http.Request)
- func UserSudo(w http.ResponseWriter, req *http.Request)
- func UsersIdRoute(w http.ResponseWriter, req *http.Request)
- func UsersRoute(w http.ResponseWriter, req *http.Request)
- type CreateRequestJSON
- type EditRequestJSON
- type InviteRequestJSON
- type LoginRequestJSON
- type PasswordResetRequestJSON
- type RegisterRequestJSON
- type SudoRequestJSON
- type User2FACheckRequest
- type User2FAResetRequest
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Check2FA ¶
func Check2FA(w http.ResponseWriter, req *http.Request)
Check2FA godoc @Summary Verify 2FA token @Description Validates a TOTP token for the current user to complete multi-factor authentication @Tags auth @Accept json @Produce json @Security BearerAuth @Param request body User2FACheckRequest true "TOTP token" @Success 200 {object} utils.APIResponse @Failure 401 {object} utils.HTTPErrorResult @Failure 500 {object} utils.HTTPErrorResult @Router /api/mfa [post]
func Delete2FA ¶
func Delete2FA(w http.ResponseWriter, req *http.Request)
Delete2FA godoc @Summary Reset 2FA for a user @Description Removes the 2FA key for a specified user (admin operation) @Tags auth @Accept json @Produce json @Security BearerAuth @Param request body User2FAResetRequest true "Nickname of the user to reset 2FA for" @Success 200 {object} utils.APIResponse @Failure 401 {object} utils.HTTPErrorResult @Failure 403 {object} utils.HTTPErrorResult @Failure 500 {object} utils.HTTPErrorResult @Router /api/mfa [delete]
func Me ¶
func Me(w http.ResponseWriter, req *http.Request)
Me godoc @Summary Get current user info @Description Returns the profile information of the currently authenticated user @Tags auth @Produce json @Security BearerAuth @Success 200 {object} utils.APIResponse{data=utils.User} @Failure 401 {object} utils.HTTPErrorResult @Failure 405 {object} utils.HTTPErrorResult @Failure 500 {object} utils.HTTPErrorResult @Router /api/me [get]
func New2FA ¶
func New2FA(w http.ResponseWriter, req *http.Request)
New2FA godoc @Summary Generate new 2FA key @Description Generates a new TOTP key for the current user and returns the provisioning URL @Tags auth @Produce json @Security BearerAuth @Success 200 {object} utils.APIResponse @Failure 401 {object} utils.HTTPErrorResult @Failure 500 {object} utils.HTTPErrorResult @Router /api/mfa [get]
func RefreshUserToken ¶
func RefreshUserToken(w http.ResponseWriter, req *http.Request) ([]utils.Permission, bool, utils.User, error)
func ResetPassword ¶
func ResetPassword(w http.ResponseWriter, req *http.Request)
ResetPassword godoc @Summary Request a password reset @Description Sends a password reset email to the user if email is configured @Tags auth @Accept json @Produce json @Param request body PasswordResetRequestJSON true "Nickname and email for password reset" @Success 200 {object} utils.APIResponse @Failure 401 {object} utils.HTTPErrorResult @Failure 405 {object} utils.HTTPErrorResult @Failure 500 {object} utils.HTTPErrorResult @Router /api/password-reset [post]
func SendAdminPasswordEmail ¶
func SendLoginNotificationEmail ¶ added in v0.16.0
func SendUserToken ¶
func UserCreate ¶
func UserCreate(w http.ResponseWriter, req *http.Request)
UserCreate godoc @Summary Create a new user @Description Creates a new user account with a registration key for invite-based onboarding @Tags users @Accept json @Produce json @Security BearerAuth @Param request body CreateRequestJSON true "User creation details" @Success 200 {object} utils.APIResponse @Failure 401 {object} utils.HTTPErrorResult @Failure 403 {object} utils.HTTPErrorResult @Failure 405 {object} utils.HTTPErrorResult @Failure 409 {object} utils.HTTPErrorResult @Failure 500 {object} utils.HTTPErrorResult @Router /api/users [post]
func UserDelete ¶
func UserDelete(w http.ResponseWriter, req *http.Request)
UserDelete godoc @Summary Delete a user @Description Deletes a user account by nickname @Tags users @Produce json @Security BearerAuth @Param nickname path string true "User nickname" @Success 200 {object} utils.APIResponse @Failure 401 {object} utils.HTTPErrorResult @Failure 403 {object} utils.HTTPErrorResult @Failure 405 {object} utils.HTTPErrorResult @Failure 500 {object} utils.HTTPErrorResult @Router /api/users/{nickname} [delete]
func UserEdit ¶
func UserEdit(w http.ResponseWriter, req *http.Request)
UserEdit godoc @Summary Edit a user @Description Updates user details such as email and role @Tags users @Accept json @Produce json @Security BearerAuth @Param nickname path string true "User nickname" @Param request body EditRequestJSON true "Fields to update" @Success 200 {object} utils.APIResponse @Failure 401 {object} utils.HTTPErrorResult @Failure 403 {object} utils.HTTPErrorResult @Failure 405 {object} utils.HTTPErrorResult @Failure 500 {object} utils.HTTPErrorResult @Router /api/users/{nickname} [patch]
func UserGet ¶
func UserGet(w http.ResponseWriter, req *http.Request)
UserGet godoc @Summary Get a user by nickname @Description Returns user details for the specified nickname @Tags users @Produce json @Security BearerAuth @Param nickname path string true "User nickname" @Success 200 {object} utils.APIResponse{data=utils.User} @Failure 401 {object} utils.HTTPErrorResult @Failure 403 {object} utils.HTTPErrorResult @Failure 405 {object} utils.HTTPErrorResult @Failure 500 {object} utils.HTTPErrorResult @Router /api/users/{nickname} [get]
func UserList ¶
func UserList(w http.ResponseWriter, req *http.Request)
UserList godoc @Summary List all users @Description Returns a list of all users with optional limit @Tags users @Produce json @Security BearerAuth @Param limit query int false "Maximum number of users to return" @Success 200 {object} utils.APIResponse{data=[]utils.User} @Failure 401 {object} utils.HTTPErrorResult @Failure 403 {object} utils.HTTPErrorResult @Failure 405 {object} utils.HTTPErrorResult @Failure 500 {object} utils.HTTPErrorResult @Router /api/users [get]
func UserLogin ¶
func UserLogin(w http.ResponseWriter, req *http.Request)
UserLogin godoc @Summary User login @Description Authenticates a user with nickname and password, sets JWT cookie on success @Tags auth @Accept json @Produce json @Param request body LoginRequestJSON true "Login credentials" @Success 200 {object} utils.APIResponse @Failure 401 {object} utils.HTTPErrorResult @Failure 405 {object} utils.HTTPErrorResult @Failure 500 {object} utils.HTTPErrorResult @Router /api/login [post]
func UserLogout ¶
func UserLogout(w http.ResponseWriter, req *http.Request)
UserLogout godoc @Summary User logout @Description Logs out the current user by clearing authentication cookies @Tags auth @Produce json @Success 200 {object} utils.APIResponse @Failure 405 {object} utils.HTTPErrorResult @Router /api/logout [get]
func UserRegister ¶
func UserRegister(w http.ResponseWriter, req *http.Request)
UserRegister godoc @Summary Register a new user @Description Completes user registration using a registration key (invite link) @Tags auth @Accept json @Produce json @Param request body RegisterRequestJSON true "Registration details including register key" @Success 200 {object} utils.APIResponse @Failure 401 {object} utils.HTTPErrorResult @Failure 405 {object} utils.HTTPErrorResult @Failure 500 {object} utils.HTTPErrorResult @Router /api/register [post]
func UserResendInviteLink ¶
func UserResendInviteLink(w http.ResponseWriter, req *http.Request)
UserResendInviteLink godoc @Summary Resend invite link @Description Generates a new registration key and optionally sends an invite or password reset email @Tags users @Accept json @Produce json @Security BearerAuth @Param request body InviteRequestJSON true "Nickname and form type" @Success 200 {object} utils.APIResponse @Failure 401 {object} utils.HTTPErrorResult @Failure 403 {object} utils.HTTPErrorResult @Failure 404 {object} utils.HTTPErrorResult @Failure 405 {object} utils.HTTPErrorResult @Failure 500 {object} utils.HTTPErrorResult @Router /api/invite [post]
func UserSudo ¶ added in v0.18.0
func UserSudo(w http.ResponseWriter, req *http.Request)
UserSudo godoc @Summary Elevate to sudo mode @Description Re-authenticates the user with their password to grant elevated (sudo) permissions @Tags auth @Accept json @Produce json @Security BearerAuth @Param request body SudoRequestJSON true "Password for sudo elevation" @Success 200 {object} utils.APIResponse @Failure 401 {object} utils.HTTPErrorResult @Failure 405 {object} utils.HTTPErrorResult @Failure 500 {object} utils.HTTPErrorResult @Router /api/sudo [post]
func UsersIdRoute ¶
func UsersIdRoute(w http.ResponseWriter, req *http.Request)
func UsersRoute ¶
func UsersRoute(w http.ResponseWriter, req *http.Request)
Types ¶
type CreateRequestJSON ¶
type EditRequestJSON ¶
type InviteRequestJSON ¶
type LoginRequestJSON ¶
type RegisterRequestJSON ¶
type SudoRequestJSON ¶ added in v0.18.0
type SudoRequestJSON struct {
Password string `` /* 175-byte string literal not displayed */
}
type User2FACheckRequest ¶
type User2FACheckRequest struct {
Token string `validate:"required"`
}
type User2FAResetRequest ¶
type User2FAResetRequest struct {
Nickname string `validate:"required"`
}