summaryrefslogtreecommitdiff
path: root/modules/gallery/helpers/gallery.php
diff options
context:
space:
mode:
authorNathan Kinkade <nkinkade@nkinka.de>2010-09-17 20:23:05 +0000
committerNathan Kinkade <nkinkade@nkinka.de>2010-09-17 20:23:05 +0000
commit7a5de04e51daa102840a02af6b9ce8138d08c4bb (patch)
treea3f8bcb9ac961523b4835b8865c152c8835f25e7 /modules/gallery/helpers/gallery.php
parentf96a75f2b13a0bd7a37b320aa5655f67868ca80d (diff)
parent3e1743b21fd35b9d6d540e827292f1f4f006b531 (diff)
Pulled latest source from upstream.
Diffstat (limited to 'modules/gallery/helpers/gallery.php')
-rw-r--r--modules/gallery/helpers/gallery.php24
1 files changed, 24 insertions, 0 deletions
diff --git a/modules/gallery/helpers/gallery.php b/modules/gallery/helpers/gallery.php
index 3f83b23d..ca8c92c9 100644
--- a/modules/gallery/helpers/gallery.php
+++ b/modules/gallery/helpers/gallery.php
@@ -37,6 +37,30 @@ class gallery_Core {
}
/**
+ * If the gallery is only available to registered users and the user is not logged in, present
+ * the login page.
+ */
+ static function private_gallery() {
+ if (Router::$controller != "login" &&
+ Router::$controller != "combined" &&
+ identity::active_user()->guest &&
+ !access::user_can(identity::guest(), "view", item::root()) &&
+ php_sapi_name() != "cli") {
+ if (Router::$controller == "admin") {
+ // At this point we're in the admin theme and it doesn't have a themed login page, so
+ // we can't just swap in the login controller and have it work. So redirect back to the
+ // root item where we'll run this code again with the site theme.
+ url::redirect(item::root()->abs_url());
+ } else {
+ Session::instance()->set("continue_url", url::abs_current());
+ Router::$controller = "login";
+ Router::$controller_path = MODPATH . "gallery/controllers/login.php";
+ Router::$method = "html";
+ }
+ }
+ }
+
+ /**
* This function is called when the Gallery is fully initialized. We relay it to modules as the
* "gallery_ready" event. Any module that wants to perform an action at the start of every
* request should implement the <module>_event::gallery_ready() handler.