summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Almdal <tnalmdal@shaw.ca>2009-03-11 13:58:38 +0000
committerTim Almdal <tnalmdal@shaw.ca>2009-03-11 13:58:38 +0000
commita521d9177f5e299d2ff25cc288e59e4bf1398a1b (patch)
tree1a0664cb4aa01d698d1dcd1b6fba9cfd3ee1e9b8
parent30239ed302c571efb0cd9c86625be30fce5b4bd9 (diff)
Force a login if everybody does not have access to the root
item. ticket #118.
-rw-r--r--core/controllers/albums.php10
-rw-r--r--modules/user/controllers/login.php10
-rw-r--r--themes/default/views/page.html.php4
3 files changed, 21 insertions, 3 deletions
diff --git a/core/controllers/albums.php b/core/controllers/albums.php
index 270b2184..9811ba13 100644
--- a/core/controllers/albums.php
+++ b/core/controllers/albums.php
@@ -23,7 +23,15 @@ class Albums_Controller extends Items_Controller {
* @see REST_Controller::_show($resource)
*/
public function _show($album) {
- access::required("view", $album);
+ try {
+ access::required("view", $album);
+ } catch (Exception $e) {
+ if ($album->id != 1) {
+ throw $e;
+ } else {
+ url::redirect("login/page");
+ }
+ }
$page_size = module::get_var("core", "page_size", 9);
$show = $this->input->get("show");
diff --git a/modules/user/controllers/login.php b/modules/user/controllers/login.php
index bf45746d..ab2dd379 100644
--- a/modules/user/controllers/login.php
+++ b/modules/user/controllers/login.php
@@ -26,6 +26,13 @@ class Login_Controller extends Controller {
}
}
+ public function page() {
+ $view = new Theme_View("page.html");
+ $view->page_type = "login";
+ $view->content = "<script>\$(\"#gLoginLink\").ready(function() {\$(\"#gLoginLink\").click();});</script>";
+ print $view;
+ }
+
private function _try_login() {
$form = $this->_login_form()->form;
@@ -44,7 +51,8 @@ class Login_Controller extends Controller {
user::login($user);
log::info("user", t("User %name logged in", array("name" => $user->name)));
print json_encode(
- array("result" => "success"));
+ array("result" => "success",
+ "location" => url::site("")));
} else {
print json_encode(
array("result" => "error",
diff --git a/themes/default/views/page.html.php b/themes/default/views/page.html.php
index d463af1b..e064665c 100644
--- a/themes/default/views/page.html.php
+++ b/themes/default/views/page.html.php
@@ -5,7 +5,9 @@
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<title>
- <? if ($page_type == "tag"): ?>
+ <? if ($page_type == "login"): ?>
+ <?= t("Please Logon to Gallery") ?>
+ <? elseif ($page_type == "tag"): ?>
<?= t("Browse Tags") ?> :: <?= $tag->name ?>
<? else: ?>
<?= t("Browse Photos") ?> :: <?= $item->title ?>