diff options
author | Arnold Daniels <arnold@jasny.net> | 2014-05-21 21:56:29 +0200 |
---|---|---|
committer | Arnold Daniels <arnold@jasny.net> | 2014-05-21 21:56:29 +0200 |
commit | 9f2dd8a11b9fef3ccd625781b974f8bddc074b83 (patch) | |
tree | 48014ce9c35e7bb659e190efcedd825a82b39b1a | |
parent | 7a0b6867731ab7782697434c80f7f9cd06f3f2ee (diff) | |
download | router-9f2dd8a11b9fef3ccd625781b974f8bddc074b83.zip router-9f2dd8a11b9fef3ccd625781b974f8bddc074b83.tar.gz router-9f2dd8a11b9fef3ccd625781b974f8bddc074b83.tar.bz2 |
Added support for 403 forbidden to Router and Controller
-rw-r--r-- | src/Jasny/Controller.php | 14 | ||||
-rw-r--r-- | src/Jasny/Router.php | 16 |
2 files changed, 30 insertions, 0 deletions
diff --git a/src/Jasny/Controller.php b/src/Jasny/Controller.php index ed7256b..56fd174 100644 --- a/src/Jasny/Controller.php +++ b/src/Jasny/Controller.php @@ -121,6 +121,20 @@ abstract class Controller } /** + * Give a 403 Forbidden response + * + * @param string $message + */ + protected function forbidden($message=null) + { + if ($this->router) return $this->router->forbidden($message); + + header((!empty($_SERVER['SERVER_PROTOCOL']) ? $_SERVER['SERVER_PROTOCOL'] : 'HTTP/1.1') . ' 403 Forbidden'); + echo $message ?: "Sorry, you are not allowed to view this page"; + exit(); + } + + /** * Give a 404 Not Found response * * @param string $message diff --git a/src/Jasny/Router.php b/src/Jasny/Router.php index 03f5f8d..ee3e401 100644 --- a/src/Jasny/Router.php +++ b/src/Jasny/Router.php @@ -383,6 +383,22 @@ class Router } /** + * Give a 403 Forbidden response and exit + * + * @param string $message + */ + public function forbidden($message=null) + { + if (ob_get_level() > 1) ob_end_clean(); + + if (!isset($message)) $message = "Sorry, you are not allowed to view this page"; + + header(self::getProtocol() . ' 403 Forbidden'); + if (!$this->routeTo(403, ['args'=>[403, $message]])) echo $message; + exit(); + } + + /** * Give a 404 Not Found response and exit * * @param string $message |