summaryrefslogtreecommitdiff
path: root/modules/gallery/helpers
diff options
context:
space:
mode:
Diffstat (limited to 'modules/gallery/helpers')
-rw-r--r--modules/gallery/helpers/data_rest.php16
-rw-r--r--modules/gallery/helpers/gallery.php4
-rw-r--r--modules/gallery/helpers/identity.php7
-rw-r--r--modules/gallery/helpers/json.php4
4 files changed, 20 insertions, 11 deletions
diff --git a/modules/gallery/helpers/data_rest.php b/modules/gallery/helpers/data_rest.php
index e45a4645..48de2a3a 100644
--- a/modules/gallery/helpers/data_rest.php
+++ b/modules/gallery/helpers/data_rest.php
@@ -23,7 +23,11 @@ class data_rest_Core {
access::required("view", $item);
$p = $request->params;
- switch (isset($p->size) ? $p->size : "full") {
+ if (!isset($p->size) || !in_array($p->size, array("thumb", "resize", "full"))) {
+ throw new Rest_Exception("Bad Request", 400, array("errors" => array("size" => "invalid")));
+ }
+
+ switch ($p->size) {
case "thumb":
$entity = array(
"width" => $item->thumb_width,
@@ -38,7 +42,6 @@ class data_rest_Core {
"path" => $item->resize_path());
break;
- default:
case "full":
$entity = array(
"width" => $item->width,
@@ -47,8 +50,13 @@ class data_rest_Core {
break;
}
- $entity["size"] = filesize($entity["path"]);
- $entity["contents"] = file_get_contents($entity["path"]);
+ if (file_exists($entity["path"]) && is_file($entity["path"])) {
+ $entity["size"] = filesize($entity["path"]);
+ $entity["contents"] = file_get_contents($entity["path"]);
+ } else {
+ $entity["size"] = null;
+ $entity["contents"] = null;
+ }
unset($entity["path"]);
$result = array(
diff --git a/modules/gallery/helpers/gallery.php b/modules/gallery/helpers/gallery.php
index 54d16322..3f83b23d 100644
--- a/modules/gallery/helpers/gallery.php
+++ b/modules/gallery/helpers/gallery.php
@@ -60,7 +60,7 @@ class gallery_Core {
* @return string
*/
static function date_time($timestamp) {
- return date(module::get_var("gallery", "date_time_format", "Y-M-d H:i:s"), $timestamp);
+ return date(module::get_var("gallery", "date_time_format"), $timestamp);
}
/**
@@ -69,7 +69,7 @@ class gallery_Core {
* @return string
*/
static function date($timestamp) {
- return date(module::get_var("gallery", "date_format", "Y-M-d"), $timestamp);
+ return date(module::get_var("gallery", "date_format"), $timestamp);
}
/**
diff --git a/modules/gallery/helpers/identity.php b/modules/gallery/helpers/identity.php
index 5f1664ec..5de05948 100644
--- a/modules/gallery/helpers/identity.php
+++ b/modules/gallery/helpers/identity.php
@@ -66,17 +66,20 @@ class identity_Core {
// The installer cannot set a user into the session, so it just sets an id which we should
// upconvert into a user.
- // @todo set the user name into the session instead of 2 and then use it to get the user object
+ // @todo set the user name into the session instead of 2 and then use it to get the
+ // user object
if ($user === 2) {
auth::login(IdentityProvider::instance()->admin_user());
}
- if (!$session->get("group_ids")) {
+ // Cache the group ids for a day to trade off performance for security updates.
+ if (!$session->get("group_ids") || $session->get("group_ids_timeout", 0) < time()) {
$ids = array();
foreach ($user->groups() as $group) {
$ids[] = $group->id;
}
$session->set("group_ids", $ids);
+ $session->set("group_ids_timeout", time() + 86400);
}
} catch (Exception $e) {
// Log it, so we at least have so notification that we swallowed the exception.
diff --git a/modules/gallery/helpers/json.php b/modules/gallery/helpers/json.php
index a39db27a..a88608aa 100644
--- a/modules/gallery/helpers/json.php
+++ b/modules/gallery/helpers/json.php
@@ -25,9 +25,7 @@ class json_Core {
* @param mixed $message string or object to json encode and print
*/
static function reply($message) {
- if (!headers_sent()) {
- header("Content-Type: application/json; charset=" . Kohana::CHARSET);
- }
+ header("Content-Type: application/json; charset=" . Kohana::CHARSET);
print json_encode($message);
}
} \ No newline at end of file