Documentation

ProfileController extends AuthenticatedController

ProfileController - User Profile Management

Handles user profile display and updates including first name, last name, and user status. Only accessible to authenticated users. Email and password modifications are not handled by this controller.

Features:

  • Display user profile with current information
  • Update first name with inline editing
  • Update last name with inline editing
  • Update user status (except for BDE users)
  • Form validation and CSRF protection
Tags
author

BdeLive Team

version
1.1.0
see
AuthenticatedController

For authentication requirements

see
UserManager

For database operations

Table of Contents

Properties

$app  : Application
$auth  : AuthManager
$csrf  : CsrfProtection
$request  : Request
$response  : Response
$session  : SessionManager

Methods

__construct()  : void
Constructor - Route to appropriate action based on request
processFirstName()  : void
Process first name update
processLastName()  : void
Process last name update
processUserStatus()  : void
Process user status update
getCsrfTokenForJs()  : string
Get the CSRF token for JavaScript usage
redirect()  : never
Redirect to a URL
redirectWithError()  : never
Redirect with an error message
redirectWithSuccess()  : never
Redirect with a success message
render()  : void
Render a view with automatic variable injection
setError()  : void
Set an error flash message
setFlash()  : void
Set a flash message
setInfo()  : void
Set an info flash message
setSuccess()  : void
Set a success flash message
setWarning()  : void
Set a warning flash message
validateCsrf()  : bool
Validate the CSRF token from the request

Properties

Methods

__construct()

Constructor - Route to appropriate action based on request

public __construct() : void

Handles different profile actions:

  • processFirstName: Update user's first name
  • processLastName: Update user's last name
  • processUserStatus: Update user's status
  • default: Display profile page

processFirstName()

Process first name update

public processFirstName() : void

Validates CSRF token and updates user's first name in database. Updates session data to reflect the change immediately.

Return values
void

Redirects to profile page with success or error message

processLastName()

Process last name update

public processLastName() : void

Validates CSRF token and updates user's last name in database. Updates session data to reflect the change immediately.

Return values
void

Redirects to profile page with success or error message

processUserStatus()

Process user status update

public processUserStatus() : void

Validates CSRF token and updates user's status in database. BDE users cannot change their status. Valid statuses: BUT 1, BUT 2, BUT 3, Personnel Enseignant

Return values
void

Redirects to profile page with success or error message

getCsrfTokenForJs()

Get the CSRF token for JavaScript usage

protected getCsrfTokenForJs() : string

This method is useful for embedding the token in JavaScript or as a meta tag for automatic AJAX injection.

Return values
string

The current CSRF token

redirect()

Redirect to a URL

protected redirect(string $url) : never
Parameters
$url : string

Destination URL

Return values
never

Terminates execution

redirectWithError()

Redirect with an error message

protected redirectWithError(string $url, string $message) : never
Parameters
$url : string

Destination URL

$message : string

Error message

Return values
never

Terminates execution

redirectWithSuccess()

Redirect with a success message

protected redirectWithSuccess(string $url, string $message) : never
Parameters
$url : string

Destination URL

$message : string

Success message

Return values
never

Terminates execution

render()

Render a view with automatic variable injection

protected render(string $viewPath[, array<string, mixed> $data = [] ]) : void

This method automatically injects services and data that all views need, eliminating the need to directly access $_SESSION or global functions.

Automatically injected variables:

  • $csrf: CsrfProtection service
  • $auth: AuthManager service
  • $request: Request object
  • $flash: Flash messages array (success, error, warning, info)
  • $user: Current user data (null if not logged in)
Parameters
$viewPath : string

View path (e.g., 'users/loginPageView')

$data : array<string, mixed> = []

View-specific data

setError()

Set an error flash message

protected setError(string $message) : void
Parameters
$message : string

Error message

setFlash()

Set a flash message

protected setFlash(string $type, string $message) : void
Parameters
$type : string

Message type (success, error, warning, info)

$message : string

Message to display

setInfo()

Set an info flash message

protected setInfo(string $message) : void
Parameters
$message : string

Info message

setSuccess()

Set a success flash message

protected setSuccess(string $message) : void
Parameters
$message : string

Success message

setWarning()

Set a warning flash message

protected setWarning(string $message) : void
Parameters
$message : string

Warning message

validateCsrf()

Validate the CSRF token from the request

protected validateCsrf([string|null $token = null ]) : bool

Supports both traditional POST body tokens and modern AJAX header tokens. Checks in order:

  1. Provided token parameter
  2. POST body 'csrf_token' field
  3. X-CSRF-Token HTTP header (for AJAX requests)
Parameters
$token : string|null = null

Token to validate (if null, retrieves from POST or header)

Return values
bool

True if valid, false otherwise


        
On this page

Search results