summary refs log tree commit diff stats
path: root/lib/Crater/Routes
diff options
context:
space:
mode:
authorAndinus <andinus@nand.sh>2022-06-11 13:59:33 +0530
committerAndinus <andinus@nand.sh>2022-06-11 14:03:34 +0530
commitf156f380d4de118e31036e80144154bdcb664ed6 (patch)
tree5373a1aff0699774aafa7979c4c5584669187eb1 /lib/Crater/Routes
parent89c60aee5a602ed5bfd73a9d5bcbbf9945aac44f (diff)
downloadcrater-f156f380d4de118e31036e80144154bdcb664ed6.tar.gz
Display gallery title, fix authentication, show directories
- Earlier non-authenticated users could access the images too.
- Serve original image if thumbnail doesn't exist.
- Show directories in gallery.
- Remove lazy loading attribute.
Diffstat (limited to 'lib/Crater/Routes')
-rw-r--r--lib/Crater/Routes/Auth.rakumod1
-rw-r--r--lib/Crater/Routes/Gallery.rakumod15
2 files changed, 11 insertions, 5 deletions
diff --git a/lib/Crater/Routes/Auth.rakumod b/lib/Crater/Routes/Auth.rakumod
index 23872e9..73e6dc7 100644
--- a/lib/Crater/Routes/Auth.rakumod
+++ b/lib/Crater/Routes/Auth.rakumod
@@ -13,7 +13,6 @@ sub auth-routes(
         get -> Crater::Session $session, 'login' {
             template 'login.crotmp', { :!error };
         }
-
         post -> Crater::Session $session, 'login' {
             request-body -> (:$pass!, *%) {
                 if $password eq $pass {
diff --git a/lib/Crater/Routes/Gallery.rakumod b/lib/Crater/Routes/Gallery.rakumod
index cf79cc6..aa3e4b6 100644
--- a/lib/Crater/Routes/Gallery.rakumod
+++ b/lib/Crater/Routes/Gallery.rakumod
@@ -8,6 +8,15 @@ sub gallery-routes(
     Crater::Gallery :$gallery!, #= gallery object
 ) is export {
     route {
+        # Logged in users can view images.
+        get -> LoggedIn $session, 'resources', 'img', *@path, :$original {
+            my $dir = $gallery.directory;
+            # Serve the thumbnail unless original image was requested.
+            $dir .= add(".crater/thumbnails") unless $original.defined;
+            static $dir, @path;
+        }
+
+        # Gallery view.
         get -> LoggedIn $session {
             template 'gallery.crotmp', {
                 gallery => $gallery.list(),
@@ -15,11 +24,9 @@ sub gallery-routes(
             };
         }
 
-        get -> {
-            redirect '/login', :see-other;
-        }
+        # Redirect to login page if not logged in.
         get -> *@path {
-            static $gallery.directory.add(".crater/thumbnails"), @path;
+            redirect '/login', :see-other;
         }
     }
 }