Browse Source

begin auth filter

tags/0.1.0
Robin Thoni 8 years ago
parent
commit
6f31895c1b

+ 1
- 0
composer.json View File

16
     }],
16
     }],
17
     "require": {
17
     "require": {
18
       "laravel/lumen-framework": "5.1.x-dev",
18
       "laravel/lumen-framework": "5.1.x-dev",
19
+      "firebase/php-jwt": "~2.0",
19
       "luticate/utils": "*"
20
       "luticate/utils": "*"
20
     },
21
     },
21
     "require-dev": {
22
     "require-dev": {

+ 5
- 0
src/Auth/Business/LuticatePermissionsBusiness.php View File

11
     {
11
     {
12
         $this->dataAccess = new LuticatePermissionsDataAccess();
12
         $this->dataAccess = new LuticatePermissionsDataAccess();
13
     }
13
     }
14
+
15
+    public static function getUserPermission($user_id, $permission_name)
16
+    {
17
+        return LuticatePermissionsDataAccess::getUserPermission($user_id, $permission_name);
18
+    }
14
 }
19
 }

+ 48
- 0
src/Auth/Business/LuticateUsersBusiness.php View File

2
 
2
 
3
 namespace Luticate\Auth\Business;
3
 namespace Luticate\Auth\Business;
4
 
4
 
5
+use Illuminate\Http\Request;
5
 use Luticate\Utils\LuBusiness;
6
 use Luticate\Utils\LuBusiness;
6
 use Luticate\Auth\DataAccess\LuticateUsersDataAccess;
7
 use Luticate\Auth\DataAccess\LuticateUsersDataAccess;
7
 use Luticate\Auth\DBO\LuticateUsersDbo;
8
 use Luticate\Auth\DBO\LuticateUsersDbo;
9
+use Luticate\Utils\LuRoute;
8
 
10
 
9
 class LuticateUsersBusiness extends LuBusiness {
11
 class LuticateUsersBusiness extends LuBusiness {
12
+    /**
13
+     * @var LuticateUsersDbo
14
+     */
15
+    private static $_currentUser;
16
+
17
+    const TOKEN_HEADER = "X-Authentication";
18
+
10
     public function __construct()
19
     public function __construct()
11
     {
20
     {
12
         $this->dataAccess = new LuticateUsersDataAccess();
21
         $this->dataAccess = new LuticateUsersDataAccess();
13
     }
22
     }
23
+
24
+    public static function getCurrentUser()
25
+    {
26
+        return self::$_currentUser;
27
+    }
28
+
29
+    /**
30
+     * @param $permissions string[]
31
+     * @param $request Request
32
+     * @return bool
33
+     */
34
+    public static function authFilter($permissions, $request)
35
+    {
36
+        $token = $request->header(self::TOKEN_HEADER);
37
+        if ($token == null)
38
+        {
39
+            return false;
40
+        }
41
+        $data = JwtHelper::decode($token);
42
+        if ($data == null)
43
+        {
44
+            return false;
45
+        }
46
+        $user_id = $data[JwtHelper::USER_KEY];
47
+
48
+        foreach ($permissions as $permission) {
49
+            if (!LuticatePermissionsBusiness::getUserPermission($user_id, $permission)) {
50
+                return false;
51
+            }
52
+        }
53
+
54
+        $user = LuticateUsersBusiness::getById($user_id);
55
+        if ($user == null)
56
+        {
57
+            return false;
58
+        }
59
+        self::$_currentUser = $user;
60
+        return true;
61
+    }
14
 }
62
 }

+ 6
- 0
src/Auth/DataAccess/LuticatePermissionsDataAccess.php View File

2
 
2
 
3
 namespace Luticate\Auth\DataAccess;
3
 namespace Luticate\Auth\DataAccess;
4
 
4
 
5
+use Luticate\Auth\DataAccess\SP\SpLuGetUserPermission;
5
 use Luticate\Utils\LuDataAccess;
6
 use Luticate\Utils\LuDataAccess;
6
 use Luticate\Auth\DataAccess\Models\LuticatePermissions;
7
 use Luticate\Auth\DataAccess\Models\LuticatePermissions;
7
 use Luticate\Auth\DBO\LuticatePermissionsDbo;
8
 use Luticate\Auth\DBO\LuticatePermissionsDbo;
12
         parent::__construct();
13
         parent::__construct();
13
         $this->model = new LuticatePermissions();
14
         $this->model = new LuticatePermissions();
14
     }
15
     }
16
+
17
+    public static function getUserPermission($user_id, $permission_name)
18
+    {
19
+        return SpLuGetUserPermission::execute($user_id, $permission_name);
20
+    }
15
 }
21
 }

Loading…
Cancel
Save