12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- <?php
-
- namespace Luticate\Auth\Business;
-
- use Illuminate\Http\Request;
- use Luticate\Utils\LuBusiness;
- use Luticate\Auth\DataAccess\LuticateUsersDataAccess;
- use Luticate\Auth\DBO\LuticateUsersDbo;
-
- class LuticateUsersBusiness extends LuBusiness {
- /**
- * @var LuticateUsersDbo
- */
- private static $_currentUser;
-
- const TOKEN_HEADER = "X-Authentication";
-
- public function __construct()
- {
- $this->dataAccess = new LuticateUsersDataAccess();
- }
-
- public static function getCurrentUser()
- {
- return self::$_currentUser;
- }
-
- /**
- * @param $permissions string[]
- * @param $request Request
- * @return bool
- */
- public static function authFilter($permissions, $request)
- {
- $token = $request->header(self::TOKEN_HEADER);
- if ($token != null && $token != "") {
- $data = JwtHelper::decode($token);
- if ($data != null) {
- $user_id = $data[JwtHelper::USER_KEY];
- self::$_currentUser = LuticateUsersBusiness::getById($user_id);
- }
- }
-
- if (self::$_currentUser == null && count($permissions) != 0) {
- return false;
- }
-
- foreach ($permissions as $permission) {
- if (!LuticatePermissionsBusiness::getUserPermission(self::$_currentUser->getId(), $permission)) {
- return false;
- }
- }
- return true;
- }
- }
|