Bristol SU Support Package
src
Authorization
Middleware
CheckLoggedIntoActivityForType.php
Go to the documentation of this file.
1
<?php
2
3
namespace
BristolSU\Support\Authorization\Middleware
;
4
5
use
BristolSU\Support\Authentication\Contracts\Authentication
;
6
use
BristolSU\Support\Authorization\Exception\ActivityRequiresGroup
;
7
use
BristolSU\Support\Authorization\Exception\ActivityRequiresParticipant
;
8
use
BristolSU\Support\Authorization\Exception\ActivityRequiresRole
;
9
use
BristolSU\Support\Authorization\Exception\ActivityRequiresUser
;
10
use
Closure
;
11
use
Illuminate\Http\Request
;
12
16
class
CheckLoggedIntoActivityForType
17
{
23
private
$authentication
;
24
29
public
function
__construct
(
Authentication
$authentication
)
30
{
31
$this->authentication =
$authentication
;
32
}
33
44
public
function
handle
(Request $request,
Closure
$next)
45
{
46
$activity = $request->route(
'activity_slug'
);
47
if
($activity->activity_for ===
'user'
&& $this->authentication->getUser() === null) {
48
throw
new
ActivityRequiresUser
(
49
'Activity requires a user to be logged in,'
, 403, null, $activity
50
);
51
}
52
if
($activity->activity_for ===
'group'
&& $this->authentication->getGroup() === null) {
53
throw
new
ActivityRequiresGroup
(
54
'Activity requires a group to be logged in,'
, 403, null, $activity
55
);
56
}
57
if
($activity->activity_for ===
'role'
&& $this->authentication->getRole() === null) {
58
throw
new
ActivityRequiresRole
(
59
'Activity requires a role to be logged in,'
, 403, null, $activity
60
);
61
}
62
return
$next($request);
63
}
64
}
BristolSU\Support\Authorization\Middleware\CheckLoggedIntoActivityForType\__construct
__construct(Authentication $authentication)
Definition:
CheckLoggedIntoActivityForType.php:29
BristolSU\Support\Authorization\Middleware\CheckLoggedIntoActivityForType
Definition:
CheckLoggedIntoActivityForType.php:16
BristolSU\Support\Authentication\Contracts\Authentication
Definition:
Authentication.php:15
BristolSU\Support\Authorization\Middleware
Definition:
CheckActivityEnabled.php:3
Closure
ActivityRequiresRole
BristolSU\Support\Authorization\Exception\ActivityRequiresGroup
Definition:
ActivityRequiresGroup.php:10
ActivityRequiresUser
BristolSU\Support\Authorization\Exception\ActivityRequiresRole
Definition:
ActivityRequiresRole.php:10
Authentication
ActivityRequiresParticipant
BristolSU\Support\Authorization\Middleware\CheckLoggedIntoActivityForType\handle
handle(Request $request, Closure $next)
Definition:
CheckLoggedIntoActivityForType.php:44
Request
BristolSU\Support\Authorization\Exception\ActivityRequiresUser
Definition:
ActivityRequiresUser.php:11
ActivityRequiresGroup
BristolSU\Support\Authorization\Middleware\CheckLoggedIntoActivityForType\$authentication
$authentication
Definition:
CheckLoggedIntoActivityForType.php:23
Generated by
1.8.13