Skip to content

Commit d65a171

Browse files
authored
Merge pull request #267 from CodeIgor/master
Added: Different guard support
2 parents 90c32b9 + 0db6ae4 commit d65a171

File tree

4 files changed

+24
-8
lines changed

4 files changed

+24
-8
lines changed

README.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,9 @@ composer require kodeine/laravel-acl "^1.0"
5555
$ php artisan vendor:publish --provider="Kodeine\Acl\AclServiceProvider"
5656
```
5757

58-
> **Use your own models.**
59-
> Once you publish, it publishes the configuration file where you can define your own models which should extend to Acl models.
58+
> **Once you publish, it publishes the configuration file where you can:**
59+
> - **Use your own models**: Define your own models which should extend to Acl models.
60+
> - **Use your own guard**: Define a guard other than laravel default for user recovery.
6061
6162
4. Add the middleware to your `app/Http/Kernel.php`.
6263

@@ -100,6 +101,9 @@ Here's the TODO list for the next release.
100101

101102
# <a name="change-logs"></a>Change Logs
102103

104+
**June 14 2022**
105+
* [x] Added support for different guard
106+
103107
**September 14 2019**
104108
* [x] Updated the readme to reflect new major release
105109

src/Kodeine/Acl/AclServiceProvider.php

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,9 +50,8 @@ public function publishConfig()
5050

5151
public function registerBladeDirectives()
5252
{
53-
// role
5453
Blade::directive('role', function ($expression) {
55-
return "<?php if (Auth::check() && Auth::user()->hasRole({$expression})): ?>";
54+
return "<?php if (Auth::guard(config('acl.guard'))->check() && Auth::guard(config('acl.guard'))->user()->hasRole({$expression})): ?>";
5655
});
5756

5857
Blade::directive('endrole', function () {
@@ -61,7 +60,7 @@ public function registerBladeDirectives()
6160

6261
// permission
6362
Blade::directive('permission', function ($expression) {
64-
return "<?php if (Auth::check() && Auth::user()->hasPermission({$expression})): ?>";
63+
return "<?php if (Auth::guard(config('acl.guard'))->check() && Auth::guard(config('acl.guard'))->user()->hasPermission({$expression})): ?>";
6564
});
6665

6766
Blade::directive('endpermission', function () {

src/Kodeine/Acl/Middleware/HasPermission.php

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ class HasPermission
3939
public function handle($request, Closure $next)
4040
{
4141
$this->request = $request;
42+
$this->guard = config('acl.guard');
4243

4344
// override crud resources via config
4445
$this->crudConfigOverride();
@@ -73,8 +74,9 @@ protected function hasRole()
7374
{
7475
$request = $this->request;
7576
$role = $this->getAction('is');
77+
$guard = $this->guard;
7678

77-
return ! $this->forbiddenRoute() && $request->user()->hasRole($role);
79+
return ! $this->forbiddenRoute() && $request->user($guard)->hasRole($role);
7880
}
7981

8082
/**
@@ -86,8 +88,9 @@ protected function hasPermission()
8688
{
8789
$request = $this->request;
8890
$do = $this->getAction('can');
91+
$guard = $this->guard;
8992

90-
return ! $this->forbiddenRoute() && $request->user()->hasPermission($do);
93+
return ! $this->forbiddenRoute() && $request->user($guard)->hasPermission($do);
9194
}
9295

9396
/**
@@ -105,6 +108,9 @@ protected function protectMethods()
105108
// protection methods being passed in a route.
106109
$methods = $this->getAction('protect_methods');
107110

111+
// guard from config
112+
$guard = $this->guard;
113+
108114
// get method being called on controller.
109115
$caller = $this->parseMethod();
110116

@@ -133,7 +139,7 @@ protected function protectMethods()
133139
return $e . '.' . $this->parseAlias();
134140
}, array_keys($crud)));
135141

136-
return ! $this->forbiddenRoute() && $request->user()->hasPermission($permission);
142+
return ! $this->forbiddenRoute() && $request->user($guard)->hasPermission($permission);
137143
}
138144

139145
private function filterMethods($methods, $callback) {

src/config/acl.php

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,4 +44,11 @@
4444
*/
4545

4646
'cacheMinutes' => 1,
47+
48+
/**
49+
* Guard
50+
* Set the guard for user validations.
51+
*/
52+
53+
'guard' => config('auth.defaults.guard'),
4754
];

0 commit comments

Comments
 (0)