Bristol SU Support Package
CheckLoggedIntoActivityForType.php
Go to the documentation of this file.
1 <?php
2 
4 
10 use Closure;
12 
17 {
23  private $authentication;
24 
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 }