⚙️
API
  • velsym/universal-pack
  • velsym/dependency-injection
  • velsym/routing
  • velsym/auth
  • velsym/database
Powered by GitBook
On this page
  • Velsym\Auth
  • Roles
  • BaseUser
  • AuthStatus
  • Velsym\Auth\Middleware
  • AuthCanAccess

velsym/auth

Ready to use package for authentication in Velsym framework.

composer require velsym/auth

Velsym\Auth

Roles

A Singleton class that is used to define user roles that work inside the velsym application.

Methods

  • set(roles) - defines roles working in the application.

    Returns: void

    Params:

    • roles - key-value array of roles. Key is name of the role and value is an integer (can be used to defined hierarchy).

  • get() - returns the list of roles.

    Returns: array

Examples

Example role setup
use Velsym\Auth\Roles;

$roles = [
    "USER" => 10,
    "PREMIUM" => 20,
    "ADMIN" => 30
];
Roles::set($roles);

BaseUser

An abstract class extended by BaseModel[Link Required]. Used to create custom user.

Properties

Methods

  • getRole() - returns the role that is assigned to the user.

    Returns: string

  • setRole(role) - used to promote/demote/change user's role.

    Returns: void

    Params:

    • role - string of user's role.

Examples

How to create custom user
use Velsym\Auth\BaseUser;

class BasicUser extends BaseUser
{
    const TABLE_NAME = "basic_user";

    private string $name;

    public function getName(): string
    {
        return $this->name;
    }

    public function setName(string $name): void
    {
        $this->name = $name;
    }
}

AuthStatus

Manages status of the (un)authenticated user.

Methods

  • logIn(user) - binds client with the user.

    Returns: void

    Params:

  • logOut() - unbinds the user from client.

    Returns: void

  • getUser() - if user is logged in then the user object is returned. Otherwise null is returned.

  • isLoggedIn() - checks if any user is bound to the client.

    Returns: bool - true if user is authenticated and false if not.

Examples

How to use AuthStatus
use Velsym\Auth\AuthStatus;

$user = new BasicUser();
$user->setRole("ADMIN");
$user->setName("Jordan");

AuthStatus::getUser();    // returns NULL.
AuthStatus::isLoggedIn(); // Returns false.
AuthStatus::logOut();     // Does nothing since user isn't logged it yet.

AuthStatus::logIn($user); // User is now logged in.

AuthStatus::getUser();    // returns copy of $user. NOT THE SAME INSTANCE!
                          // meaning that (===) will return false.
AuthStatus::isLoggedIn(); // Returns true.
AuthStatus::logOut();     // Logs out the user.

Velsym\Auth\Middleware

AuthCanAccess

Check if the user's role is sufficient to access route. If role has higher interger/value than required, then it will also be allowed.

Params

  • role - role required to access the route.

  • redirectPath - url to which client should be redirected.

Examples

How to use AuthCanAccess
use Velsym\Routing\RouteHelper;
use Velsym\Routing\Attributes\Route;
use Velsym\Routing\Attributes\Middleware;
use Velsym\Communication\Response;
use Velsym\Auth\Middleware\AuthCanAccess;

class ExampleRoutes extends RouteHelper
{
    #[Middleware(
        middleware: AuthCanAccess::class,
        params: [ 'role' => "ADMIN", 'redirectPath' => "/home" ]
    )]
    #[Route( path: "/admin", methods: ["GET", "POST"] )]
    public function home(): Response
    {
        // ...
    }
}
Previousvelsym/routingNextvelsym/database

Last updated 1 year ago

role - takes one of the roles defined in the .

user - Instance of class extended by .

Returns: NULL or instance of class extended by

Example below uses BasicUser from the example titled and role setup from the example title .

Roles
BaseUser
BaseUser
"How to create custom user"
"Example role setup"