27 lines
873 B
PHP
27 lines
873 B
PHP
<?php
|
|
|
|
namespace KTXF\Routing\Attributes;
|
|
|
|
use Attribute;
|
|
|
|
#[Attribute(Attribute::TARGET_METHOD | Attribute::TARGET_CLASS)]
|
|
class AuthenticatedRoute
|
|
{
|
|
/**
|
|
* @param string $path Route path
|
|
* @param string $name Route name
|
|
* @param array $methods HTTP methods
|
|
* @param array $permissions Required permissions (OR logic - user needs ANY)
|
|
* Examples:
|
|
* - ['user.profile.edit'] - exact permission
|
|
* - ['user_manager.users.*'] - wildcard permission
|
|
* - ['user.edit.own', 'user.edit.any'] - multiple options
|
|
*/
|
|
public function __construct(
|
|
public readonly string $path,
|
|
public readonly string $name,
|
|
public readonly array $methods = ['GET'],
|
|
public readonly array $permissions = [],
|
|
) {}
|
|
}
|