Merge pull request #18118 from owncloud/allow-ocs-to-send-headers

Adding header support to class OC_OCS_Result
This commit is contained in:
Thomas Müller 2015-08-07 16:21:58 +02:00
commit 404b5a2e4a
2 changed files with 48 additions and 1 deletions

View File

@ -350,6 +350,10 @@ class OC_API {
header('HTTP/1.0 401 Unauthorized');
}
foreach($result->getHeaders() as $name => $value) {
header($name . ': ' . $value);
}
if (self::isV2()) {
$statusCode = self::mapStatusCodes($result->getStatusCode());
if (!is_null($statusCode)) {

View File

@ -27,7 +27,23 @@
class OC_OCS_Result{
protected $data, $message, $statusCode, $items, $perPage;
/** @var array */
protected $data;
/** @var null|string */
protected $message;
/** @var int */
protected $statusCode;
/** @var integer */
protected $items;
/** @var integer */
protected $perPage;
/** @var array */
private $headers = [];
/**
* create the OCS_Result object
@ -106,5 +122,32 @@ class OC_OCS_Result{
return ($this->statusCode == 100);
}
/**
* Adds a new header to the response
* @param string $name The name of the HTTP header
* @param string $value The value, null will delete it
* @return $this
*/
public function addHeader($name, $value) {
$name = trim($name); // always remove leading and trailing whitespace
// to be able to reliably check for security
// headers
if(is_null($value)) {
unset($this->headers[$name]);
} else {
$this->headers[$name] = $value;
}
return $this;
}
/**
* Returns the set headers
* @return array the headers
*/
public function getHeaders() {
return $this->headers;
}
}