Skip to content

auth #

fn authenticate #

fn authenticate(mut db database.DB, username string, password string) !User

Authenticate user (check username and password)

fn create_user #

fn create_user(mut db database.DB, new_user NewUser) !User

Create a new user (validates, hashes password, inserts into database)

fn delete_user #

fn delete_user(mut db database.DB, id int) !

Delete user by ID

fn delete_user_by_username #

fn delete_user_by_username(mut db database.DB, username string) !

Delete user by username

fn find_by_email #

fn find_by_email(mut db database.DB, email string) !User

Find user by email

fn find_by_id #

fn find_by_id(mut db database.DB, id int) !User

Find user by ID

fn find_by_username #

fn find_by_username(mut db database.DB, username string) !User

Find user by username

fn handle_login #

fn handle_login(mut ctx http.Context, mut db database.DB) http.Response

Login handler - authenticates user and creates session Expects POST with form data: username, password

fn handle_login_page #

fn handle_login_page(mut ctx http.Context) http.Response

Login page handler (GET) Returns simple HTML login form

fn handle_logout #

fn handle_logout(mut ctx http.Context) http.Response

Logout handler - destroys session

fn handle_register #

fn handle_register(mut ctx http.Context, mut db database.DB) http.Response

Register handler - creates new user account Expects POST with form data: username, email, password

fn handle_register_page #

fn handle_register_page(mut ctx http.Context) http.Response

Register page handler (GET) Returns simple HTML registration form

fn hash_password #

fn hash_password(password string) !string

Hash password using bcrypt

fn list_users #

fn list_users(mut db database.DB) ![]User

List all users (admin function)

fn validate_email #

fn validate_email(email string) !bool

Validate email (basic check)

fn validate_password #

fn validate_password(password string) !bool

Validate password strength

fn validate_username #

fn validate_username(username string) !bool

Validate username (3-30 alphanumeric/underscore)

fn verify_password #

fn verify_password(password string, hash string) bool

Verify password against bcrypt hash

struct LoginRequest #

struct LoginRequest {
pub:
	username string
	password string
}

LoginRequest represents login form data

struct NewUser #

struct NewUser {
pub:
	username string
	email    string
	password string // Plain text password (will be hashed)
}

NewUser data for creating a user

struct RegisterRequest #

struct RegisterRequest {
pub:
	username string
	email    string
	password string
}

RegisterRequest represents registration form data

struct User #

struct User {
pub mut:
	id            int
	username      string
	email         string
	password_hash string
	created_at    time.Time
	updated_at    time.Time
}

User represents an authenticated user