Skip to content

Commit 2a45924

Browse files
committed
Merge branch 'development'
2 parents 4907b4a + 9bed6db commit 2a45924

File tree

65 files changed

+1762
-903
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

65 files changed

+1762
-903
lines changed

CHANGELOG.md

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,35 @@ All notable changes to this project will be documented in this file.
33

44
## [Unreleased]
55

6+
## 7.2.0 - 2020-07-25
7+
8+
## Added
9+
10+
- Added gravatar to frontend navbar
11+
- Added breadcrumbs on the frontend on pages that it would benefit on. Added a config item to be able to turn it off. If there are no breadcrumbs for a page the bar won't show.
12+
- Added SuperAdminCheck, AdminCheck and UserCheck middleware
13+
- Added scopes for user types
14+
- Added GET form component
15+
- Added back ARCANEDEV/LogViewer
16+
- Add container to all frontend views
17+
- Publish laravel error pages
18+
19+
## Changed
20+
21+
- Update to Laravel commit: 791c87a80d1c5eebd75e1bf499f86899d6b2b26f
22+
- Change alpine.js @click and @change methods to use x-on/x-change to not interfere with Vue
23+
- Default old request for user edit page
24+
- Wrapped backend breadcrumbs in conditional so if there are no breadcrumbs for that page the just don't show.
25+
- Allow UserTypeCheck to accept multiple types
26+
- Full width frontend messages partial
27+
- Prefix all admin permissions with admin. and refactor.
28+
- Italian language updates
29+
30+
## Removed
31+
32+
- Removed an un-needed redirect from LoginController
33+
- Remove container from frontend master view
34+
635
## [7.1.1] - 2020-07-12
736

837
## Added

app/Domains/Auth/Http/Controllers/Backend/User/DeactivatedUserController.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ public function update(Request $request, User $user, $status)
4848
$this->userService->mark($user, (int) $status);
4949

5050
return redirect()->route(
51-
(int) $status === 1 || ! $request->user()->can('access.user.reactivate') ?
51+
(int) $status === 1 || ! $request->user()->can('admin.access.user.reactivate') ?
5252
'admin.auth.user.index' :
5353
'admin.auth.user.deactivated'
5454
)->withFlashSuccess(__('The user was successfully updated.'));

app/Domains/Auth/Http/Controllers/Frontend/Auth/LoginController.php

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ protected function attemptLogin(Request $request)
9595
* @param Request $request
9696
* @param $user
9797
*
98-
* @return \Illuminate\Http\RedirectResponse
98+
* @return mixed
9999
*/
100100
protected function authenticated(Request $request, $user)
101101
{
@@ -110,7 +110,5 @@ protected function authenticated(Request $request, $user)
110110
if (config('boilerplate.access.user.single_login')) {
111111
auth()->logoutOtherDevices($request->password);
112112
}
113-
114-
return redirect()->intended($this->redirectPath());
115113
}
116114
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
<?php
2+
3+
namespace App\Domains\Auth\Http\Middleware;
4+
5+
use App\Domains\Auth\Models\User;
6+
use Closure;
7+
8+
/**
9+
* Class AdminCheck.
10+
*/
11+
class AdminCheck
12+
{
13+
/**
14+
* @param $request
15+
* @param Closure $next
16+
*
17+
* @return mixed
18+
*/
19+
public function handle($request, Closure $next)
20+
{
21+
if ($request->user() && $request->user()->isType(User::TYPE_ADMIN)) {
22+
return $next($request);
23+
}
24+
25+
return redirect()->route('frontend.index')->withFlashDanger(__('You do not have access to do that.'));
26+
}
27+
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
<?php
2+
3+
namespace App\Domains\Auth\Http\Middleware;
4+
5+
use Closure;
6+
7+
/**
8+
* Class SuperAdminCheck.
9+
*/
10+
class SuperAdminCheck
11+
{
12+
/**
13+
* @param $request
14+
* @param Closure $next
15+
*
16+
* @return mixed
17+
*/
18+
public function handle($request, Closure $next)
19+
{
20+
if ($request->user() && $request->user()->hasAllAccess()) {
21+
return $next($request);
22+
}
23+
24+
return redirect()->route('frontend.index')->withFlashDanger(__('You do not have access to do that.'));
25+
}
26+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
<?php
2+
3+
namespace App\Domains\Auth\Http\Middleware;
4+
5+
use App\Domains\Auth\Models\User;
6+
use Closure;
7+
8+
/**
9+
* Class UserCheck.
10+
*/
11+
class UserCheck
12+
{
13+
/**
14+
* @param $request
15+
* @param Closure $next
16+
*
17+
* @return mixed
18+
*/
19+
public function handle($request, Closure $next)
20+
{
21+
if ($request->user() && $request->user()->isType(User::TYPE_USER)) {
22+
return $next($request);
23+
}
24+
25+
return redirect()->route('frontend.index')->withFlashDanger(__('You do not have access to do that.'));
26+
}
27+
}

app/Domains/Auth/Http/Middleware/UserTypeCheck.php

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,18 @@ class UserTypeCheck
1818
*/
1919
public function handle($request, Closure $next, $type)
2020
{
21-
if ($request->user() && $request->user()->isType($type)) {
22-
return $next($request);
21+
if ($request->user()) {
22+
if (strpos($type, '|') !== false) {
23+
$types = explode('|', $type);
24+
25+
foreach ($types as $t) {
26+
if ($request->user()->isType($t)) {
27+
return $next($request);
28+
}
29+
}
30+
} elseif ($request->user()->isType($type)) {
31+
return $next($request);
32+
}
2333
}
2434

2535
return redirect()->route('frontend.index')->withFlashDanger(__('You do not have access to do that.'));

app/Domains/Auth/Models/Traits/Scope/UserScope.php

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,4 +37,36 @@ public function scopeByType($query, $type)
3737
{
3838
return $query->where('type', $type);
3939
}
40+
41+
/**
42+
* @param $query
43+
*
44+
* @return mixed
45+
*/
46+
public function scopeAllAccess($query)
47+
{
48+
return $query->whereHas('roles', function ($query) {
49+
$query->where('name', config('boilerplate.access.role.admin'));
50+
});
51+
}
52+
53+
/**
54+
* @param $query
55+
*
56+
* @return mixed
57+
*/
58+
public function scopeAdmins($query)
59+
{
60+
return $query->where('type', $this::TYPE_ADMIN);
61+
}
62+
63+
/**
64+
* @param $query
65+
*
66+
* @return mixed
67+
*/
68+
public function scopeUsers($query)
69+
{
70+
return $query->where('type', $this::TYPE_USER);
71+
}
4072
}

app/Domains/Auth/Models/User.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ public function sendEmailVerificationNotification(): void
131131
*/
132132
public function canImpersonate(): bool
133133
{
134-
return $this->can('access.user.impersonate');
134+
return $this->can('admin.access.user.impersonate');
135135
}
136136

137137
/**

app/Http/Kernel.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ class Kernel extends HttpKernel
5656
'2fa:enabled',
5757
'auth',
5858
'password.expires',
59-
'type:'.User::TYPE_ADMIN,
59+
'is_admin',
6060
],
6161
];
6262

@@ -75,6 +75,9 @@ class Kernel extends HttpKernel
7575
'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class,
7676
'can' => \Illuminate\Auth\Middleware\Authorize::class,
7777
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
78+
'is_admin' => \App\Domains\Auth\Http\Middleware\AdminCheck::class,
79+
'is_super_admin' => \App\Domains\Auth\Http\Middleware\SuperAdminCheck::class,
80+
'is_user' => \App\Domains\Auth\Http\Middleware\UserCheck::class,
7881
'password.confirm' => \Illuminate\Auth\Middleware\RequirePassword::class,
7982
'password.expires' => \App\Domains\Auth\Http\Middleware\PasswordExpires::class,
8083
'permission' => \Spatie\Permission\Middlewares\PermissionMiddleware::class,

0 commit comments

Comments
 (0)