summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArnold Daniels <arnold@jasny.net>2014-05-21 21:56:29 +0200
committerArnold Daniels <arnold@jasny.net>2014-05-21 21:56:29 +0200
commit9f2dd8a11b9fef3ccd625781b974f8bddc074b83 (patch)
tree48014ce9c35e7bb659e190efcedd825a82b39b1a
parent7a0b6867731ab7782697434c80f7f9cd06f3f2ee (diff)
downloadrouter-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.php14
-rw-r--r--src/Jasny/Router.php16
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