All checks were successful
CI / Coding Standards (push) Successful in 44s
CI / PHPStan (push) Successful in 49s
CI / Tests (PHP 8.1) (push) Successful in 54s
CI / Tests (PHP 8.2) (push) Successful in 51s
CI / Tests (PHP 8.3) (push) Successful in 39s
CI / No Debug Code (push) Successful in 3s
- Add phpcs.xml.dist: excludes PSR-4 file naming, camelCase naming, short array syntax, and redundant per-method/property docblocks - Fix wp_unslash() on all $_POST reads (LoginPage, AvailabilityController) - Add phpcs:ignore for password field (must not be sanitized) - Fix Yoda conditions throughout (AvailabilityRepository, AvailabilityEndpoint, BookingEndpoint, AvailabilityController) - Fix inline comments to end with full stops (AdminMenu) - Replace short ternary ?: with explicit full ternary (BookingEndpoint) - Rename $namespace param to $route_namespace (reserved keyword warning) - Add short descriptions to doc blocks that had tag-only blocks - Add nonce suppression comment in handleFormAction (nonce verified by caller) - Update composer.json and CI to use phpcs.xml.dist Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
45 lines
1.0 KiB
PHP
45 lines
1.0 KiB
PHP
<?php
|
|
declare(strict_types=1);
|
|
|
|
namespace Unsupervised\Schedular\Roles;
|
|
|
|
class RoleManager {
|
|
|
|
public const INSTRUCTOR = 'us_instructor';
|
|
public const STUDENT = 'us_student';
|
|
|
|
public const CAP_MANAGE_AVAILABILITY = 'manage_availability';
|
|
public const CAP_VIEW_LESSONS = 'view_own_lessons';
|
|
public const CAP_BOOK_LESSON = 'book_lesson';
|
|
|
|
public function register(): void {
|
|
add_action( 'init', [ $this, 'createRoles' ] );
|
|
}
|
|
|
|
public function createRoles(): void {
|
|
if ( get_role( self::INSTRUCTOR ) === null ) {
|
|
add_role(
|
|
self::INSTRUCTOR,
|
|
__( 'Instructor', 'unsupervised-schedular' ),
|
|
[
|
|
'read' => true,
|
|
self::CAP_MANAGE_AVAILABILITY => true,
|
|
self::CAP_VIEW_LESSONS => true,
|
|
]
|
|
);
|
|
}
|
|
|
|
if ( get_role( self::STUDENT ) === null ) {
|
|
add_role(
|
|
self::STUDENT,
|
|
__( 'Student', 'unsupervised-schedular' ),
|
|
[
|
|
'read' => true,
|
|
self::CAP_BOOK_LESSON => true,
|
|
self::CAP_VIEW_LESSONS => true,
|
|
]
|
|
);
|
|
}
|
|
}
|
|
}
|