Documentation

GroupRegistrationController extends AuthenticatedController

GroupRegistrationController - Group Registration Management

Handles user group registration for events with group mode enabled. Allows users to create teams and invite members via email.

Refactored to use Data Mapper pattern with Event entities.

Features:

  • Display group registration form
  • Validate member emails
  • Create teams and send invitations
  • Track team creation status
Tags
version
2.0.0
  • Data Mapper refactoring
author

BDELIVE - Group 8

see
AuthenticatedController

For authentication requirements

see
EventTeamRepository

For team database operations

see
EventTeamInvitationRepository

For invitation operations

Table of Contents

Properties

$app  : Application
$auth  : AuthManager
$csrf  : CsrfProtection
$request  : Request
$response  : Response
$session  : SessionManager
$eventRepository  : EventRepository
$invitationRepo  : EventTeamInvitationRepository
Invitation repository instance
$teamRepo  : EventTeamRepository
Team repository instance

Methods

__construct()  : void
Constructor - Handle group registration actions
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
displayForm()  : void
Display the group registration form
getInvitationIdByToken()  : int
Get invitation ID by token (helper method)
processGroupRegistration()  : void
Process the group registration submission

Properties

Methods

__construct()

Constructor - Handle group registration actions

public __construct() : void

Supports two actions:

  • GET: Display the group registration form
  • POST with action=submitGroup: Process the group registration

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

getInvitationIdByToken()

Get invitation ID by token (helper method)

private getInvitationIdByToken(string $token) : int
Parameters
$token : string

The validation token

Return values
int

The invitation ID

processGroupRegistration()

Process the group registration submission

private processGroupRegistration(Event $event) : void

Creates a team and sends invitations to all specified email addresses.

Parameters
$event : Event

Event entity


        
On this page

Search results