![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/mcoil.corals.io/vendor/santigarcor/laratrust/src/Checkers/ |
<?php declare(strict_types=1); namespace Laratrust\Checkers; use Illuminate\Database\Eloquent\Model; use Illuminate\Support\Facades\Config; use Laratrust\Checkers\Role\RoleChecker; use Laratrust\Checkers\Role\RoleDefaultChecker; use Laratrust\Checkers\Role\RoleQueryChecker; use Laratrust\Checkers\User\UserChecker; use Laratrust\Checkers\User\UserDefaultChecker; use Laratrust\Checkers\User\UserQueryChecker; use Laratrust\Contracts\LaratrustUser; use Laratrust\Contracts\Role; class CheckersManager { public function __construct(protected LaratrustUser|Role|Model $model) { } /** * Return the right checker according to the configuration. */ public function getUserChecker(): UserChecker { $checker = Config::get('laratrust.checkers.user', Config::get('laratrust.checker', 'default')); switch ($checker) { case 'default': return new UserDefaultChecker($this->model); case 'query': return new UserQueryChecker($this->model); default: if (! is_a($checker, UserChecker::class, true)) { throw new \RuntimeException('User checker must extend UserChecker'); } return app()->make($checker, ['user' => $this->model]); } } /** * Return the right checker according to the configuration. */ public function getRoleChecker(): RoleChecker { $checker = Config::get('laratrust.checkers.role', Config::get('laratrust.checker', 'default')); switch ($checker) { case 'default': return new RoleDefaultChecker($this->model); case 'query': return new RoleQueryChecker($this->model); default: if (! is_a($checker, RoleChecker::class, true)) { throw new \RuntimeException('Role checker must extend RoleChecker'); } return app()->make($checker, ['role' => $this->model]); } } }