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