12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- <?php
- /**
- * Created by PhpStorm.
- * User: robin
- * Date: 9/30/15
- * Time: 7:04 PM
- */
-
- namespace Luticate\Auth\Business;
-
- use Illuminate\Http\Request;
- use Luticate\Auth\DBO\LuticateUsersDbo;
- use Luticate\Utils\LuRoute;
-
- class LuticateBusiness
- {
- const TOKEN_HEADER = "X-Authentication";
-
- /**
- * @var LuticateUsersDbo
- */
- private static $_currentUser;
-
- 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) {
- $value = LuticatePermissionsBusiness::getUserPermission(self::$_currentUser->getId(), $permission);
- if (!$value->getVal()) {
- return false;
- }
- }
- return true;
- }
-
- /**
- * @param $route LuRoute
- */
- public static function setupAuth($route)
- {
- $route->setMiddleware(function($permissions, $request)
- {
- return self::authFilter($permissions, $request);
- });
- }
-
- /**
- * @param $route LuRoute
- */
- public static function setupRoutes($route)
- {
- $prefix = "/luticate";
- $ns = 'Luticate\Auth\Business\\';
- $route->post("$prefix/login", "${ns}LuticateUsersBusiness", "login");
- $route->post("$prefix/add", "${ns}LuticateUsersBusiness", "add");
- }
- }
|