TlfUserAccess.php

<?php

namespace Phad\Integration;

/**
 * Access methods are inherited from `\Phad\Integration\DynamicAccess`, except for `user_has_role()` and the constructor. Access methods can be modified dynamically in the same way as `DynamicAccess`, except for `user_has_role`.
 *
 */
class TlfUserAccess extends \Phad\Integration\DynamicAccess implements \Phad\AccessInterface {

    protected \Tlf\User\Package $user_package;

    /** `user_has_role` callable is NOT used on TlfUserAccess. You may modify the other callables, but this one will have noe effect. */
    public $user_has_role;

    public function __construct(\Tlf\User\Package $user_package){
        $this->user_package = $user_package;
    }

    /**
     * Check if the currently logged-in user has the given role. Only handles one role check. Use `role:some_role` in your access rules.
     *
     * @param $role string a single role's name
     */
    public function user_has_role(string $role): bool {
        $user = $this->user_package->get_user();
        return $user->has_role($role);
    }
}