aboutsummaryrefslogtreecommitdiffstats
path: root/lib/appframework
diff options
context:
space:
mode:
authorThomas Müller <thomas.mueller@tmit.eu>2013-08-21 01:00:26 +0200
committerThomas Müller <thomas.mueller@tmit.eu>2013-08-21 01:00:26 +0200
commit911bd3c16f508eb8f3cb9b03a5a21e2aa72ebf79 (patch)
treea62c95caaeee6749e68123aa28af395eed36c2fe /lib/appframework
parente39083c36f7de22de78fb5bb51656111653ea42b (diff)
downloadnextcloud-server-911bd3c16f508eb8f3cb9b03a5a21e2aa72ebf79.tar.gz
nextcloud-server-911bd3c16f508eb8f3cb9b03a5a21e2aa72ebf79.zip
moving response classes over to OCP
Diffstat (limited to 'lib/appframework')
-rw-r--r--lib/appframework/controller/controller.php4
-rw-r--r--lib/appframework/http/dispatcher.php3
-rw-r--r--lib/appframework/http/downloadresponse.php2
-rw-r--r--lib/appframework/http/http.php62
-rw-r--r--lib/appframework/http/jsonresponse.php74
-rw-r--r--lib/appframework/http/redirectresponse.php2
-rw-r--r--lib/appframework/http/response.php169
-rw-r--r--lib/appframework/http/templateresponse.php126
-rw-r--r--lib/appframework/middleware/middleware.php2
-rw-r--r--lib/appframework/middleware/middlewaredispatcher.php2
-rw-r--r--lib/appframework/middleware/security/securitymiddleware.php4
11 files changed, 13 insertions, 437 deletions
diff --git a/lib/appframework/controller/controller.php b/lib/appframework/controller/controller.php
index f6f34618ec6..a7498ba0e1e 100644
--- a/lib/appframework/controller/controller.php
+++ b/lib/appframework/controller/controller.php
@@ -24,9 +24,9 @@
namespace OC\AppFramework\Controller;
-use OC\AppFramework\Http\TemplateResponse;
use OC\AppFramework\Http\Request;
use OC\AppFramework\Core\API;
+use OCP\AppFramework\Http\TemplateResponse;
/**
@@ -133,7 +133,7 @@ abstract class Controller {
* @param string $renderAs user renders a full page, blank only your template
* admin an entry in the admin settings
* @param array $headers set additional headers in name/value pairs
- * @return \OC\AppFramework\Http\TemplateResponse containing the page
+ * @return \OCP\AppFramework\Http\TemplateResponse containing the page
*/
public function render($templateName, array $params=array(),
$renderAs='user', array $headers=array()){
diff --git a/lib/appframework/http/dispatcher.php b/lib/appframework/http/dispatcher.php
index 183854650fb..ea57a6860cc 100644
--- a/lib/appframework/http/dispatcher.php
+++ b/lib/appframework/http/dispatcher.php
@@ -74,6 +74,9 @@ class Dispatcher {
} catch(\Exception $exception){
$response = $this->middlewareDispatcher->afterException(
$controller, $methodName, $exception);
+ if (is_null($response)) {
+ throw $exception;
+ }
}
$response = $this->middlewareDispatcher->afterController(
diff --git a/lib/appframework/http/downloadresponse.php b/lib/appframework/http/downloadresponse.php
index 096e4fc8331..67b9542dba6 100644
--- a/lib/appframework/http/downloadresponse.php
+++ b/lib/appframework/http/downloadresponse.php
@@ -28,7 +28,7 @@ namespace OC\AppFramework\Http;
/**
* Prompts the user to download the a file
*/
-abstract class DownloadResponse extends Response {
+class DownloadResponse extends \OCP\AppFramework\Http\Response {
private $filename;
private $contentType;
diff --git a/lib/appframework/http/http.php b/lib/appframework/http/http.php
index 73f32d13b38..e00dc9cdc4a 100644
--- a/lib/appframework/http/http.php
+++ b/lib/appframework/http/http.php
@@ -25,67 +25,7 @@
namespace OC\AppFramework\Http;
-class Http {
-
- const STATUS_CONTINUE = 100;
- const STATUS_SWITCHING_PROTOCOLS = 101;
- const STATUS_PROCESSING = 102;
- const STATUS_OK = 200;
- const STATUS_CREATED = 201;
- const STATUS_ACCEPTED = 202;
- const STATUS_NON_AUTHORATIVE_INFORMATION = 203;
- const STATUS_NO_CONTENT = 204;
- const STATUS_RESET_CONTENT = 205;
- const STATUS_PARTIAL_CONTENT = 206;
- const STATUS_MULTI_STATUS = 207;
- const STATUS_ALREADY_REPORTED = 208;
- const STATUS_IM_USED = 226;
- const STATUS_MULTIPLE_CHOICES = 300;
- const STATUS_MOVED_PERMANENTLY = 301;
- const STATUS_FOUND = 302;
- const STATUS_SEE_OTHER = 303;
- const STATUS_NOT_MODIFIED = 304;
- const STATUS_USE_PROXY = 305;
- const STATUS_RESERVED = 306;
- const STATUS_TEMPORARY_REDIRECT = 307;
- const STATUS_BAD_REQUEST = 400;
- const STATUS_UNAUTHORIZED = 401;
- const STATUS_PAYMENT_REQUIRED = 402;
- const STATUS_FORBIDDEN = 403;
- const STATUS_NOT_FOUND = 404;
- const STATUS_METHOD_NOT_ALLOWED = 405;
- const STATUS_NOT_ACCEPTABLE = 406;
- const STATUS_PROXY_AUTHENTICATION_REQUIRED = 407;
- const STATUS_REQUEST_TIMEOUT = 408;
- const STATUS_CONFLICT = 409;
- const STATUS_GONE = 410;
- const STATUS_LENGTH_REQUIRED = 411;
- const STATUS_PRECONDITION_FAILED = 412;
- const STATUS_REQUEST_ENTITY_TOO_LARGE = 413;
- const STATUS_REQUEST_URI_TOO_LONG = 414;
- const STATUS_UNSUPPORTED_MEDIA_TYPE = 415;
- const STATUS_REQUEST_RANGE_NOT_SATISFIABLE = 416;
- const STATUS_EXPECTATION_FAILED = 417;
- const STATUS_IM_A_TEAPOT = 418;
- const STATUS_UNPROCESSABLE_ENTITY = 422;
- const STATUS_LOCKED = 423;
- const STATUS_FAILED_DEPENDENCY = 424;
- const STATUS_UPGRADE_REQUIRED = 426;
- const STATUS_PRECONDITION_REQUIRED = 428;
- const STATUS_TOO_MANY_REQUESTS = 429;
- const STATUS_REQUEST_HEADER_FIELDS_TOO_LARGE = 431;
- const STATUS_INTERNAL_SERVER_ERROR = 500;
- const STATUS_NOT_IMPLEMENTED = 501;
- const STATUS_BAD_GATEWAY = 502;
- const STATUS_SERVICE_UNAVAILABLE = 503;
- const STATUS_GATEWAY_TIMEOUT = 504;
- const STATUS_HTTP_VERSION_NOT_SUPPORTED = 505;
- const STATUS_VARIANT_ALSO_NEGOTIATES = 506;
- const STATUS_INSUFFICIENT_STORAGE = 507;
- const STATUS_LOOP_DETECTED = 508;
- const STATUS_BANDWIDTH_LIMIT_EXCEEDED = 509;
- const STATUS_NOT_EXTENDED = 510;
- const STATUS_NETWORK_AUTHENTICATION_REQUIRED = 511;
+class Http extends \OCP\AppFramework\Http\Http{
private $server;
private $protocolVersion;
diff --git a/lib/appframework/http/jsonresponse.php b/lib/appframework/http/jsonresponse.php
deleted file mode 100644
index 750f8a2ad15..00000000000
--- a/lib/appframework/http/jsonresponse.php
+++ /dev/null
@@ -1,74 +0,0 @@
-<?php
-
-/**
- * ownCloud - App Framework
- *
- * @author Bernhard Posselt
- * @copyright 2012 Bernhard Posselt nukeawhale@gmail.com
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
- * License as published by the Free Software Foundation; either
- * version 3 of the License, or any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU AFFERO GENERAL PUBLIC LICENSE for more details.
- *
- * You should have received a copy of the GNU Affero General Public
- * License along with this library. If not, see <http://www.gnu.org/licenses/>.
- *
- */
-
-
-namespace OC\AppFramework\Http;
-
-
-/**
- * A renderer for JSON calls
- */
-class JSONResponse extends Response {
-
- protected $data;
-
-
- /**
- * @param array|object $data the object or array that should be transformed
- * @param int $statusCode the Http status code, defaults to 200
- */
- public function __construct($data=array(), $statusCode=Http::STATUS_OK) {
- $this->data = $data;
- $this->setStatus($statusCode);
- $this->addHeader('X-Content-Type-Options', 'nosniff');
- $this->addHeader('Content-type', 'application/json; charset=utf-8');
- }
-
-
- /**
- * Returns the rendered json
- * @return string the rendered json
- */
- public function render(){
- return json_encode($this->data);
- }
-
- /**
- * Sets values in the data json array
- * @param array|object $params an array or object which will be transformed
- * to JSON
- */
- public function setData($data){
- $this->data = $data;
- }
-
-
- /**
- * Used to get the set parameters
- * @return array the data
- */
- public function getData(){
- return $this->data;
- }
-
-}
diff --git a/lib/appframework/http/redirectresponse.php b/lib/appframework/http/redirectresponse.php
index 727e0fb642e..688447f1618 100644
--- a/lib/appframework/http/redirectresponse.php
+++ b/lib/appframework/http/redirectresponse.php
@@ -24,6 +24,8 @@
namespace OC\AppFramework\Http;
+use OCP\AppFramework\Http\Response;
+
/**
* Redirects to a different URL
diff --git a/lib/appframework/http/response.php b/lib/appframework/http/response.php
deleted file mode 100644
index 50778105f24..00000000000
--- a/lib/appframework/http/response.php
+++ /dev/null
@@ -1,169 +0,0 @@
-<?php
-
-/**
- * ownCloud - App Framework
- *
- * @author Bernhard Posselt, Thomas Tanghus, Bart Visscher
- * @copyright 2012 Bernhard Posselt nukeawhale@gmail.com
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
- * License as published by the Free Software Foundation; either
- * version 3 of the License, or any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU AFFERO GENERAL PUBLIC LICENSE for more details.
- *
- * You should have received a copy of the GNU Affero General Public
- * License along with this library. If not, see <http://www.gnu.org/licenses/>.
- *
- */
-
-
-namespace OC\AppFramework\Http;
-
-
-/**
- * Base class for responses. Also used to just send headers
- */
-class Response {
-
- /**
- * @var array default headers
- */
- private $headers = array(
- 'Cache-Control' => 'no-cache, must-revalidate'
- );
-
-
- /**
- * @var string
- */
- private $status = Http::STATUS_OK;
-
-
- /**
- * @var \DateTime
- */
- private $lastModified;
-
-
- /**
- * @var string
- */
- private $ETag;
-
-
- /**
- * Caches the response
- * @param int $cacheSeconds the amount of seconds that should be cached
- * if 0 then caching will be disabled
- */
- public function cacheFor($cacheSeconds) {
-
- if($cacheSeconds > 0) {
- $this->addHeader('Cache-Control', 'max-age=' . $cacheSeconds .
- ', must-revalidate');
- } else {
- $this->addHeader('Cache-Control', 'no-cache, must-revalidate');
- }
-
- }
-
-
- /**
- * Adds a new header to the response that will be called before the render
- * function
- * @param string $name The name of the HTTP header
- * @param string $value The value, null will delete it
- */
- public function addHeader($name, $value) {
- if(is_null($value)) {
- unset($this->headers[$name]);
- } else {
- $this->headers[$name] = $value;
- }
- }
-
-
- /**
- * Returns the set headers
- * @return array the headers
- */
- public function getHeaders() {
- $mergeWith = array();
-
- if($this->lastModified) {
- $mergeWith['Last-Modified'] =
- $this->lastModified->format(\DateTime::RFC2822);
- }
-
- if($this->ETag) {
- $mergeWith['ETag'] = '"' . $this->ETag . '"';
- }
-
- return array_merge($mergeWith, $this->headers);
- }
-
-
- /**
- * By default renders no output
- * @return null
- */
- public function render() {
- return null;
- }
-
-
- /**
- * Set response status
- * @param int $status a HTTP status code, see also the STATUS constants
- */
- public function setStatus($status) {
- $this->status = $status;
- }
-
-
- /**
- * Get response status
- */
- public function getStatus() {
- return $this->status;
- }
-
-
- /**
- * @return string the etag
- */
- public function getETag() {
- return $this->ETag;
- }
-
-
- /**
- * @return string RFC2822 formatted last modified date
- */
- public function getLastModified() {
- return $this->lastModified;
- }
-
-
- /**
- * @param string $ETag
- */
- public function setETag($ETag) {
- $this->ETag = $ETag;
- }
-
-
- /**
- * @param \DateTime $lastModified
- */
- public function setLastModified($lastModified) {
- $this->lastModified = $lastModified;
- }
-
-
-}
diff --git a/lib/appframework/http/templateresponse.php b/lib/appframework/http/templateresponse.php
deleted file mode 100644
index 0a32da4b1b4..00000000000
--- a/lib/appframework/http/templateresponse.php
+++ /dev/null
@@ -1,126 +0,0 @@
-<?php
-
-/**
- * ownCloud - App Framework
- *
- * @author Bernhard Posselt
- * @copyright 2012 Bernhard Posselt nukeawhale@gmail.com
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
- * License as published by the Free Software Foundation; either
- * version 3 of the License, or any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU AFFERO GENERAL PUBLIC LICENSE for more details.
- *
- * You should have received a copy of the GNU Affero General Public
- * License along with this library. If not, see <http://www.gnu.org/licenses/>.
- *
- */
-
-
-namespace OC\AppFramework\Http;
-
-use OC\AppFramework\Core\API;
-
-
-/**
- * Response for a normal template
- */
-class TemplateResponse extends Response {
-
- protected $templateName;
- protected $params;
- protected $api;
- protected $renderAs;
- protected $appName;
-
- /**
- * @param API $api an API instance
- * @param string $templateName the name of the template
- * @param string $appName optional if you want to include a template from
- * a different app
- */
- public function __construct(API $api, $templateName, $appName=null) {
- $this->templateName = $templateName;
- $this->appName = $appName;
- $this->api = $api;
- $this->params = array();
- $this->renderAs = 'user';
- }
-
-
- /**
- * Sets template parameters
- * @param array $params an array with key => value structure which sets template
- * variables
- */
- public function setParams(array $params){
- $this->params = $params;
- }
-
-
- /**
- * Used for accessing the set parameters
- * @return array the params
- */
- public function getParams(){
- return $this->params;
- }
-
-
- /**
- * Used for accessing the name of the set template
- * @return string the name of the used template
- */
- public function getTemplateName(){
- return $this->templateName;
- }
-
-
- /**
- * Sets the template page
- * @param string $renderAs admin, user or blank. Admin also prints the admin
- * settings header and footer, user renders the normal
- * normal page including footer and header and blank
- * just renders the plain template
- */
- public function renderAs($renderAs){
- $this->renderAs = $renderAs;
- }
-
-
- /**
- * Returns the set renderAs
- * @return string the renderAs value
- */
- public function getRenderAs(){
- return $this->renderAs;
- }
-
-
- /**
- * Returns the rendered html
- * @return string the rendered html
- */
- public function render(){
-
- if($this->appName !== null){
- $appName = $this->appName;
- } else {
- $appName = $this->api->getAppName();
- }
-
- $template = $this->api->getTemplate($this->templateName, $this->renderAs, $appName);
-
- foreach($this->params as $key => $value){
- $template->assign($key, $value);
- }
-
- return $template->fetchPage();
- }
-
-}
diff --git a/lib/appframework/middleware/middleware.php b/lib/appframework/middleware/middleware.php
index 4df88490468..b12c03c3eb8 100644
--- a/lib/appframework/middleware/middleware.php
+++ b/lib/appframework/middleware/middleware.php
@@ -24,7 +24,7 @@
namespace OC\AppFramework\Middleware;
-use OC\AppFramework\Http\Response;
+use OCP\AppFramework\Http\Response;
/**
diff --git a/lib/appframework/middleware/middlewaredispatcher.php b/lib/appframework/middleware/middlewaredispatcher.php
index c2d16134dc5..70ab108e6b8 100644
--- a/lib/appframework/middleware/middlewaredispatcher.php
+++ b/lib/appframework/middleware/middlewaredispatcher.php
@@ -25,7 +25,7 @@
namespace OC\AppFramework\Middleware;
use OC\AppFramework\Controller\Controller;
-use OC\AppFramework\Http\Response;
+use OCP\AppFramework\Http\Response;
/**
diff --git a/lib/appframework/middleware/security/securitymiddleware.php b/lib/appframework/middleware/security/securitymiddleware.php
index 52818b1b53e..4f1447e1afb 100644
--- a/lib/appframework/middleware/security/securitymiddleware.php
+++ b/lib/appframework/middleware/security/securitymiddleware.php
@@ -27,12 +27,12 @@ namespace OC\AppFramework\Middleware\Security;
use OC\AppFramework\Controller\Controller;
use OC\AppFramework\Http\Http;
use OC\AppFramework\Http\Request;
-use OC\AppFramework\Http\Response;
-use OC\AppFramework\Http\JSONResponse;
use OC\AppFramework\Http\RedirectResponse;
use OC\AppFramework\Utility\MethodAnnotationReader;
use OC\AppFramework\Middleware\Middleware;
use OC\AppFramework\Core\API;
+use OCP\AppFramework\Http\Response;
+use OCP\AppFramework\Http\JSONResponse;
/**