PermissionManagePolicies

PermissionManagePolicies

new PermissionManagePolicies()

Description:
  • INTERNAL CODE DOCUMENTATION COMPLETE

    Permission Manage Policies Controller

    A sophisticated Stimulus controller that provides an interactive permission matrix for managing CakePHP authorization policies. Features hierarchical checkbox management with indeterminate states, batch processing for performance, and asynchronous AJAX updates with queue management.

    Key Features:

    • Hierarchical checkbox management (class-level controls method-level checkboxes)
    • Indeterminate state indicators for partial selections
    • Batch processing with loading overlay for performance optimization
    • Asynchronous AJAX queue management for reliable server updates
    • Dynamic event listener management with cleanup
Source:

Extends

  • Controller

Members

changeQueue

Description:
  • Queue for managing sequential AJAX requests to prevent race conditions. @type {Array}

Source:

Queue for managing sequential AJAX requests to prevent race conditions. @type {Array}

Methods

changeMethod(method, isChecked)

Description:
  • Queue permission change for server update Adds change to queue and processes if not already processing

Source:
Parameters:
Name Type Description
method HTMLElement

The method checkbox element

isChecked Boolean

Whether the checkbox is checked

checkClass(className, permissionId)

Description:
  • Update class-level checkbox state based on method selections Implements three-state logic: checked, unchecked, and indeterminate

Source:
Parameters:
Name Type Description
className String

The class name to check state for

permissionId String

The permission ID to check state for

classClicked(event)

Description:
  • Handle class-level checkbox clicks Updates all method-level checkboxes and manages indeterminate state

Source:
Parameters:
Name Type Description
event Event

The click event from class checkbox

connect()

Description:
  • Controller initialization and setup Implements batch processing for performance optimization when dealing with large permission matrices. Shows loading overlay during processing.

Source:

disconnect()

Description:
  • Clean up event listeners on controller disconnect Removes all dynamically added event listeners to prevent memory leaks

Source:

hideLoadingOverlay()

Description:
  • Remove loading overlay after processing completion Cleans up spinner overlay from permissions matrix

Source:

methodClicked(event)

Description:
  • Handle method-level checkbox clicks Updates parent class checkbox state and queues server update

Source:
Parameters:
Name Type Description
event Event

The click event from method checkbox

policyClassTargetConnected(element)

Description:
  • Event handler for policy class target connection Sets up click event listeners for class-level checkboxes

Source:
Parameters:
Name Type Description
element HTMLElement

The connected policy class checkbox element

policyMethodTargetConnected(element)

Description:
  • Event handler for policy method target connection Sets up click event listeners for method-level checkboxes

Source:
Parameters:
Name Type Description
element HTMLElement

The connected policy method checkbox element

processQueue()

Description:
  • Process queued permission changes sequentially Handles AJAX communication with server for policy updates Maintains queue integrity and prevents race conditions

Source:

showLoadingOverlay()

Description:
  • Display loading overlay during batch processing Creates a Bootstrap spinner overlay for performance indication

Source: