AAuditPro Suite· Complete manual

The login screen

URL: /login. Fields:

On success: session ID regenerated (per session_regenerate_id(true)), users.last_login_at + last_login_ip stamped, redirect to dashboard. Audit log entry: m00.login.success.

Failed login

Forgot password

  1. Click "Forgot password" on login screen

  2. Enter email

    System always responds "if the email exists, a reset link has been sent" — never reveals existence.

  3. If email exists

    Generates 64-char random token + 1-hour expiry. Stores in password_resets. M17 emails the link.

  4. Click link → set new password

    Token validated. Password bcrypt-hashed + saved. Token deleted. Audit log + automatic logout of all sessions.

Sessions

AspectBehaviour
StoragePHP session files in storage/sessions/ (gitignored)
Default TTL8 hours of inactivity
Remember-me TTL30 days
Cookie nameACWMS_SESS (HttpOnly, Secure in production, SameSite=Strict)
Regenerated onlogin + privilege change + sensitive action (e.g. password change)
CSRF tokenPer-session, rotated on regeneration; required on every POST

Active sessions screen

URL: /my-profile/sessions. Lists every active session for the logged-in user:

Useful when a user suspects their account was used elsewhere — kill all other sessions in one click.

Change password

My Profile → Change password. Form: current password (verified) · new password · confirm new password. Validation:

Logout

Header → user dropdown → Sign out. POST to /logout with CSRF. Session destroyed server-side + cookie cleared. Audit log entry. Redirect to /login.

The user dropdown menu

Top-right of every page once logged in:

Watch out

Don't share login credentials. Every action is stamped with the logged-in user's ID — sharing means audit trail breaks. If a junior needs partner-level access for a specific task, give them temporary elevated permission via Roles & Permissions, not a borrowed login.

Tip — passphrase over password

"correct-horse-battery-staple" beats "P@ssw0rd123!" for both memorability + entropy. The 12-char minimum supports passphrase use. Encourage staff to memorise long passphrases.