/
page_forbidden.php
50 lines (43 loc) · 1.37 KB
/
page_forbidden.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<?php
namespace Concrete\Controller\SinglePage;
use Concrete\Core\Http\ResponseFactoryInterface;
use Concrete\Core\Page\Controller\PageController;
use Concrete\Core\Url\Resolver\Manager\ResolverManagerInterface;
use Concrete\Core\User\User;
use Symfony\Component\HttpFoundation\Response;
class PageForbidden extends PageController
{
protected $viewPath = '/frontend/page_forbidden';
/**
* {@inheritdoc}
*
* @see \Concrete\Core\Controller\AbstractController::on_start()
*/
public function on_start()
{
return $this->checkRedirectToLogin();
}
/**
* @return \Symfony\Component\HttpFoundation\Response|null
*/
public function view()
{
return $this->checkRedirectToLogin();
}
/**
* @return \Symfony\Component\HttpFoundation\Response|null
*/
protected function checkRedirectToLogin()
{
$result = null;
$user = $this->app->make(User::class);
if (!$user->isRegistered()) {
$config = $this->app->make('config');
if ($config->get('concrete.permissions.forward_to_login')) {
$destination = $this->app->make(ResolverManagerInterface::class)->resolve(['/login']);
$result = $this->app->make(ResponseFactoryInterface::class)->redirect($destination, Response::HTTP_FOUND);
}
}
return $result;
}
}