Documentation
¶
Index ¶
- func HandleChangePassword(c *gin.Context)
- func HandleCliLogin(c *gin.Context)
- func HandleIsSignUpOpen(c *gin.Context)
- func HandleLogin(c *gin.Context)
- func HandleLogout(ctx *gin.Context)
- func HandleRetrieveInitialUserExists(c *gin.Context)
- func HandleRetrieveUserPublicKey(ctx *gin.Context)
- func HandleRetriveUserDetails(ctx *gin.Context)
- func HandleSignup(c *gin.Context)
- func HandleStopImpersonation(c *gin.Context)
- func HandleSubdomainLoginAuthorize(c *gin.Context)
- func HandleSubdomainLoginCallback(c *gin.Context)
- func HandleUpdateUserDetails(ctx *gin.Context)
- func HandleVerifyEmailAddress(c *gin.Context)
- func IsEmailMatchingARegex(email string, regEx []string) bool
- func SetAuthCookie(ctx *gin.Context, token string, tokenDuration int) error
- func SetSubdomainsAuthCookie(ctx *gin.Context, token string) error
- func UserIsBeingImpersonated(c *gin.Context) (bool, error)
- type LoginRequestBody
- type SignUpRequestBody
- type VerifyEmailAddressRequestBody
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func HandleChangePassword ¶
TODO: ratelimit? POST /api/v1/auth/change-password change the password of current user
func HandleIsSignUpOpen ¶
HandleIsSignUpOpen godoc @Summary Check if signup is open @Schemes @Description Check if signup is open @Tags Authentication @Accept json @Produce json @Success 200 {object} serializers.IsSignUpOpenSerializer @Router /api/v1/auth/is-signup-open [get]
func HandleLogin ¶
Login godoc @Summary Login @Schemes @Description Login @Tags Authentication @Accept json @Produce json @Param request body LoginRequestBody true "Credentials" @Success 200 {object} serializers.TokenSerializer @Failure 400 "Invalid credentials or already logged in" @Failure 406 "User not approved" @Failure 412 "Email not verified" @Failure 429 "Ratelimit exceeded" @Failure 500 "Internal server error" @Router /api/v1/auth/login [post]
func HandleLogout ¶
Logout godoc @Summary Logout @Schemes @Description Logout @Tags Authentication @Accept json @Produce json @Success 200 "" @Router /api/v1/auth/logout [post]
func HandleRetrieveInitialUserExists ¶
HandleRetrieveInitialUserExists godoc @Summary Check if at lease one user exists @Schemes @Description retrieve if at least one user exists for the current instance of codebox @Tags Authentication @Accept json @Produce json @Success 200 {object} serializers.InitialUserExistsSerializer @Failure 429 "Ratelimit exceeded" @Router /api/v1/auth/initial-user-exists [get]
func HandleRetrieveUserPublicKey ¶
GET /api/v1/auth/user-ssh-public-key retrieve user's ssh public key
func HandleRetriveUserDetails ¶
GET /api/v1/auth/user-details retrieve details about the current user
func HandleSignup ¶
Signup godoc @Summary Signup @Schemes @Description Signup @Tags Authentication @Accept json @Produce json @Param request body SignUpRequestBody true "Credentials" @Success 200 @Failure 429 "Ratelimit exceeded" @Router /api/v1/auth/signup [post]
func HandleStopImpersonation ¶
HandleStopImpersonation godoc @Summary API to stop the impersonation of a user @Schemes @Description API to stop the impersonation of a user @Tags Admin @Accept json @Produce json @Success 200 @Router /api/v1/stop-impersonation [post]
func HandleUpdateUserDetails ¶
PUT or PATCH /api/v1/auth/user-details update user first and last name
func HandleVerifyEmailAddress ¶
HandleVerifyEmailAddress godoc @Summary Verify Email Address @Schemes @Description Verify Email Address @Tags Authentication @Accept json @Produce json @Param request body VerifyEmailAddressRequestBody true "Verification code" @Success 200 @Failure 400 "Missing or invalid field" @Failure 412 "Logged in users cannot verify email" @Failure 406 "Invalid verification code" @Failure 409 "Email already verified" @Failure 500 "Internal server error" @Router /api/v1/auth/verify-email-address [post]
func IsEmailMatchingARegex ¶
Check if email is matching at least one of the given regex
func SetAuthCookie ¶
set authentication cookie
func SetSubdomainsAuthCookie ¶
set authentication cookie for subdomains Note: This cookie uses a different name compared to the main website's authorization cookie. This addresses a scenario where a subdomain (within the codebox server's wildcard domain) might attempt to set a cookie with the same name as the secure codebox server's authorization cookie, which browsers prevent.
Types ¶
type LoginRequestBody ¶
type SignUpRequestBody ¶
type VerifyEmailAddressRequestBody ¶
type VerifyEmailAddressRequestBody struct {
Code string `json:"code" binding:"required"`
}