user

package
v0.22.9 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 4, 2026 License: Apache-2.0 Imports: 16 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func API2FA

func API2FA(w http.ResponseWriter, req *http.Request)

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 SendAdminPasswordEmail(nickname string, email string, link string) error

func SendInviteEmail

func SendInviteEmail(nickname string, email string, link string) error

func SendLoginNotificationEmail added in v0.16.0

func SendLoginNotificationEmail(nickname string, email string, ip string, date time.Time) error

func SendPasswordEmail

func SendPasswordEmail(nickname string, email string, link string) error

func SendUserToken

func SendUserToken(w http.ResponseWriter, req *http.Request, user utils.User, mfaDone bool, sudoed bool)

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(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 CreateRequestJSON struct {
	Nickname string     `validate:"required,min=3,max=32,alphanum"`
	Email    string     `validate:"omitempty,email"`
	Role     utils.Role `json:"role"`
}

type EditRequestJSON

type EditRequestJSON struct {
	Email string      `validate:"omitempty,email"`
	Role  *utils.Role `json:"role"`
}

type InviteRequestJSON

type InviteRequestJSON struct {
	Nickname string `validate:"required,min=3,max=32,alphanum"`
	FormType string
}

type LoginRequestJSON

type LoginRequestJSON struct {
	Nickname string `validate:"required,min=3,max=32,alphanum"`
	Password string `` /* 175-byte string literal not displayed */
}

type PasswordResetRequestJSON

type PasswordResetRequestJSON struct {
	Nickname string `validate:"required,min=3,max=32,alphanum"`
	Email    string `validate:"required,min=3,max=32,alphanum"`
}

type RegisterRequestJSON

type RegisterRequestJSON struct {
	Nickname    string `validate:"required,min=3,max=32,alphanum"`
	Password    string `` /* 175-byte string literal not displayed */
	RegisterKey string `validate:"required,min=1,max=512,alphanum"`
}

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"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL