summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorNathan Kinkade <nkinkade@nkinka.de>2010-01-09 23:02:55 +0000
committerNathan Kinkade <nkinkade@nkinka.de>2010-01-09 23:02:55 +0000
commit0a67b836a9b5021c91b9c327d3693991c3248dfc (patch)
tree91f49ca62a9ffd586e01bde700068f87e884181a /modules
parent232c0b7fd0df7f84543bc29380a0734ef1e84a02 (diff)
parentbd9f945e3f2de4ea2402bd3941dba69c79ddc5a4 (diff)
Merge branch 'master' of git://github.com/gallery/gallery3
Diffstat (limited to 'modules')
-rw-r--r--modules/gallery/controllers/file_proxy.php37
-rw-r--r--modules/gallery/libraries/Theme_View.php5
-rw-r--r--modules/gallery/tests/controller_auth_data.txt2
-rw-r--r--modules/slideshow/helpers/slideshow_theme.php2
-rw-r--r--modules/user/libraries/drivers/IdentityProvider/Gallery.php5
5 files changed, 29 insertions, 22 deletions
diff --git a/modules/gallery/controllers/file_proxy.php b/modules/gallery/controllers/file_proxy.php
index f0a38fbe..646edf17 100644
--- a/modules/gallery/controllers/file_proxy.php
+++ b/modules/gallery/controllers/file_proxy.php
@@ -28,16 +28,17 @@
*/
class File_Proxy_Controller extends Controller {
public function __call($function, $args) {
- // request_uri: http://example.com/gallery3/var/trunk/albums/foo/bar.jpg
- $request_uri = Input::instance()->server("REQUEST_URI");
+ // request_uri: gallery3/var/trunk/albums/foo/bar.jpg
+ $request_uri = rawurldecode(Input::instance()->server("REQUEST_URI"));
+
$request_uri = preg_replace("/\?.*/", "", $request_uri);
- // var_uri: http://example.com/gallery3/var/
+ // var_uri: gallery3/var/
$var_uri = url::file("var/");
// Make sure that the request is for a file inside var
- $offset = strpos($request_uri, $var_uri);
- if ($offset === false) {
+ $offset = strpos(rawurldecode($request_uri), $var_uri);
+ if ($offset !== 0) {
throw new Kohana_404_Exception();
}
@@ -55,9 +56,16 @@ class File_Proxy_Controller extends Controller {
// If the last element is .album.jpg, pop that off since it's not a real item
$path = preg_replace("|/.album.jpg$|", "", $path);
+ $encoded_path = array();
+ foreach (explode("/", $path) as $path_part) {
+ $encoded_path[] = rawurlencode($path_part);
+ }
// We now have the relative path to the item. Search for it in the path cache
- $item = ORM::factory("item")->where("relative_path_cache", "=", $path)->find();
+ // The patch cache is urlencoded so re-encode the path. (it was decoded earlier to
+ // insure that the paths are normalized.
+ $item = ORM::factory("item")
+ ->where("relative_path_cache", "=", implode("/", $encoded_path))->find();
if (!$item->loaded()) {
// We didn't turn it up. It's possible that the relative_path_cache is out of date here.
// There was fallback code, but bharat deleted it in 8f1bca74. If it turns out to be
@@ -81,14 +89,6 @@ class File_Proxy_Controller extends Controller {
throw new Kohana_404_Exception();
}
- if ($type == "albums") {
- $file = $item->file_path();
- } else if ($type == "resizes") {
- $file = $item->resize_path();
- } else {
- $file = $item->thumb_path();
- }
-
// Make sure we have access to the item
if (!access::can("view", $item)) {
throw new Kohana_404_Exception();
@@ -104,11 +104,18 @@ class File_Proxy_Controller extends Controller {
throw new Kohana_404_Exception();
}
+ if ($type == "albums") {
+ $file = $item->file_path();
+ } else if ($type == "resizes") {
+ $file = $item->resize_path();
+ } else {
+ $file = $item->thumb_path();
+ }
+
if (!file_exists($file)) {
throw new Kohana_404_Exception();
}
- header('Last-Modified: '.gmdate('D, d M Y H:i:s T', $item->updated));
header("Pragma:");
// Check that the content hasn't expired or it wasn't changed since cached
expires::check(2592000, $item->updated);
diff --git a/modules/gallery/libraries/Theme_View.php b/modules/gallery/libraries/Theme_View.php
index f78a7018..a6d1806c 100644
--- a/modules/gallery/libraries/Theme_View.php
+++ b/modules/gallery/libraries/Theme_View.php
@@ -278,9 +278,10 @@ class Theme_View_Core extends Gallery_View {
}
if (Session::instance()->get("debug")) {
- if ($function != "head") {
+ if ($function != "head" && $function != "body_attributes") {
array_unshift(
- $blocks, "<div class=\"g-annotated-theme-block g-annotated-theme-block_$function g-clear-fix\">" .
+ $blocks,
+ "<div class=\"g-annotated-theme-block g-annotated-theme-block_$function g-clear-fix\">" .
"<div class=\"title\">$function</div>");
$blocks[] = "</div>";
}
diff --git a/modules/gallery/tests/controller_auth_data.txt b/modules/gallery/tests/controller_auth_data.txt
index c1fffe6a..beabee49 100644
--- a/modules/gallery/tests/controller_auth_data.txt
+++ b/modules/gallery/tests/controller_auth_data.txt
@@ -13,7 +13,7 @@ modules/gallery/controllers/login.php ajax
modules/gallery/controllers/login.php auth_ajax DIRTY_AUTH
modules/gallery/controllers/login.php html DIRTY_AUTH
modules/gallery/controllers/login.php auth_html DIRTY_AUTH
-modules/gallery/controllers/logout.php index DIRTY_CSRF|DIRTY_AUTH
+modules/gallery/controllers/logout.php index DIRTY_AUTH
modules/gallery/controllers/maintenance.php index DIRTY_AUTH
modules/gallery/controllers/quick.php form_edit DIRTY_CSRF
modules/gallery/controllers/simple_uploader.php start DIRTY_AUTH
diff --git a/modules/slideshow/helpers/slideshow_theme.php b/modules/slideshow/helpers/slideshow_theme.php
index 163d2bd8..6aaf371c 100644
--- a/modules/slideshow/helpers/slideshow_theme.php
+++ b/modules/slideshow/helpers/slideshow_theme.php
@@ -18,7 +18,7 @@
* Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
*/
class slideshow_theme_Core {
- static function head($theme) {
+ static function page_bottom($theme) {
$proto = (empty($_SERVER["HTTPS"]) || $_SERVER["HTTPS"] === "off") ? "http" : "https";
return "<script src=\"$proto://apps.cooliris.com/slideshow/go.js\" " .
"type=\"text/javascript\"></script>";
diff --git a/modules/user/libraries/drivers/IdentityProvider/Gallery.php b/modules/user/libraries/drivers/IdentityProvider/Gallery.php
index 50064287..d874512c 100644
--- a/modules/user/libraries/drivers/IdentityProvider/Gallery.php
+++ b/modules/user/libraries/drivers/IdentityProvider/Gallery.php
@@ -127,9 +127,8 @@ class IdentityProvider_Gallery_Driver implements IdentityProvider_Driver {
*/
public function get_user_list($ids) {
return ORM::factory("user")
- ->in("id", $ids)
- ->find_all()
- ->as_array();
+ ->where("id", "IN", $ids)
+ ->find_all();
}
/**