KMP PHP API Reference

MemberAuthorizationsCell extends Cell
in package

Member Authorizations View Cell

Purpose: Provides comprehensive member authorization dashboard functionality for member profile views, displaying current, pending, and historical authorization status with age-appropriate activity suggestions and interactive management capabilities.

Core Responsibilities:

  • Authorization Status Dashboard - Current, pending, and historical authorization counts
  • Age-Appropriate Activity Discovery - Activity suggestions based on member age
  • Authorization Lifecycle Visualization - Status-aware display with detailed information
  • Interactive Authorization Management - Request initiation and status tracking
  • Current User Identity Support - Self-service authorization management

Architecture: This view cell extends CakePHP Cell to provide reusable authorization dashboard functionality that can be embedded in member profiles, administrative interfaces, and self-service portals. It integrates with the Activities authorization system and provides real-time authorization status information.

Dashboard Features:

  • Current Authorizations: Active authorizations with expiration tracking
  • Pending Authorizations: Authorization requests awaiting approval
  • Historical Authorizations: Previous authorizations with status details
  • Available Activities: Age-appropriate activities available for request
  • Authorization Statistics: Summary counts for quick overview

Member Context Support:

  • Profile Integration: Embedded in member profile views
  • Self-Service: Current user authorization management (id = -1)
  • Administrative: Manager access to member authorization status
  • Age-Based Filtering: Activities filtered by member age requirements

Status Visualization: Provides detailed status information including:

  • Authorization approver information for pending requests
  • Denial/revocation reasons with approver accountability
  • Expiration status and timeline information
  • Activity group organization for clarity

Integration Points:

  • AuthorizationsTable - Authorization lifecycle management
  • ActivitiesTable - Activity configuration and age requirements
  • MembersTable - Member profile and age calculation
  • Identity Service - Current user identification
  • Authorization Status Constants - Status-aware display logic

Performance Considerations:

  • Efficient count queries for dashboard statistics
  • Age-based activity filtering at database level
  • Selective field loading for member information
  • Optimized contain patterns for association data

Usage Examples:

// Member profile integration
echo $this->cell('Activities.MemberAuthorizations', [$member->id]);

// Self-service authorization dashboard
echo $this->cell('Activities.MemberAuthorizations', [-1]); // Current user

// Administrative authorization overview
echo $this->cell('Activities.MemberAuthorizations', [$memberId]);

Template Integration: Renders tabbed interface with:

  • Authorization status summary
  • Current authorizations listing
  • Pending requests with approver information
  • Available activities for new requests
  • Historical authorization timeline

Security Features:

  • Identity-based access control for current user
  • Age-appropriate activity filtering
  • Status-aware information display
  • Approval workflow transparency

Error Handling:

  • Graceful handling of missing member data
  • Empty state display for members without authorizations
  • Age calculation validation and fallback

Troubleshooting:

  • Verify member exists and has valid age information
  • Check activity age requirements configuration
  • Validate authorization table associations
  • Monitor query performance for large authorization datasets
Tags
see
Authorization

Authorization entity with status management

see
AuthorizationsTable

Authorization lifecycle management

see
ActivitiesTable

Activity configuration and requirements

see
Member

Member entity with age calculation

Table of Contents

Methods

display()  : void
Display Member Authorization Dashboard
initialize()  : void
Initialization logic run at the end of object construction.
addConditions()  : SelectQuery
Add Authorization Query Conditions

Methods

display()

Display Member Authorization Dashboard

public display(int $id) : void

Generates comprehensive authorization dashboard for specified member with current status, pending requests, historical data, and available activities.

Dashboard Components:

  • Current authorization count with active status
  • Pending authorization count with approval tracking
  • Historical authorization count for lifecycle view
  • Age-appropriate activities available for request
  • Member profile integration with age-based filtering

Identity Management:

  • Special handling for id = -1 (current authenticated user)
  • Identity service integration for self-service access
  • Secure member identification and validation

Age-Based Activity Filtering: Activities are filtered based on member's calculated age:

  • minimum_age <= member.age <= maximum_age
  • Prevents inappropriate activity suggestions
  • Ensures compliance with activity requirements

Performance Optimization:

  • Efficient count queries for dashboard statistics
  • Selective field loading for member information
  • Optimized activity discovery queries
  • Minimal data transfer for dashboard rendering

Data Preparation: Sets template variables:

  • pendingAuthCount: Number of pending authorization requests
  • isEmpty: Boolean indicating if member has any authorizations
  • id: Member identifier for template linking
  • activities: Age-appropriate activities available for request
  • member: Member entity with profile information
Parameters
$id : int

Member ID (-1 for current authenticated user)

addConditions()

Add Authorization Query Conditions

protected addConditions(SelectQuery $q) : SelectQuery

Enhances authorization queries with status-aware display logic, approver information, and comprehensive authorization lifecycle data.

Status-Aware Display Logic: Creates conditional expressions for authorization status display:

  • DENIED: Shows rejection details with approver and reasoning
  • REVOKED: Shows revocation details with revoker and reasoning
  • EXPIRED: Shows simple expiration message
  • OTHER: Default empty display for active authorizations

Query Enhancements:

  • Core authorization fields (id, member_id, activity_id, status)
  • Temporal information (start_on, expires_on)
  • Status-conditional reasoning display
  • Comprehensive association data loading

Association Loading:

  • CurrentPendingApprovals: Active approval workflow information
  • Activities: Activity name and configuration details
  • RevokedBy: Revoker identity for accountability
  • Approvers: Approval workflow participant information

Display Logic Features:

  • Concatenated status messages with context
  • Approver accountability for decisions
  • Temporal information integration
  • Comprehensive audit trail display
Parameters
$q : SelectQuery

Base authorization query to enhance

Return values
SelectQuery

Enhanced query with conditions and associations


        
On this page

Search results