From 838360bd4e2246451f18327a12c8f7037887e35a Mon Sep 17 00:00:00 2001 From: Dave Menninger Date: Fri, 21 Nov 2014 12:50:22 -0500 Subject: [PATCH] add user list --- Readme.markdown | 1 + lib/Lrrr.pm | 2 ++ lib/Lrrr/Authorization.pm | 6 ++++-- lib/Lrrr/Controller/Users.pm | 17 +++++++++++++++++ templates/userlist.html.ep | 10 ++++++++++ 5 files changed, 34 insertions(+), 2 deletions(-) create mode 100644 lib/Lrrr/Controller/Users.pm create mode 100644 templates/userlist.html.ep diff --git a/Readme.markdown b/Readme.markdown index 6cfa546..a7fa6cd 100644 --- a/Readme.markdown +++ b/Readme.markdown @@ -33,6 +33,7 @@ This is an example Mojolicious app. Its goals are: * ~~more tests for authentication, registration~~ * ~~add authorization ( logged in user can see some things, but not others )~~ * tests for authorization +* tests for user routes * ~~catch-all route~~, switch routes to use over() conditions * Mojolicious plugins: CSRFProtect, VaildateTiny, Toto * ~~user can create document objects into mongo~~ diff --git a/lib/Lrrr.pm b/lib/Lrrr.pm index e2c33ca..4af4977 100644 --- a/lib/Lrrr.pm +++ b/lib/Lrrr.pm @@ -60,6 +60,8 @@ sub startup { } ); + $r->get('/users')->to( controller => 'users', action => 'list' ); + $r->get( '/hidden' => sub { $self = shift; diff --git a/lib/Lrrr/Authorization.pm b/lib/Lrrr/Authorization.pm index 50fd461..42cbfe5 100644 --- a/lib/Lrrr/Authorization.pm +++ b/lib/Lrrr/Authorization.pm @@ -4,8 +4,10 @@ use strict; use warnings; my %roles = ( - admin => { create_user => 1, delete_user => 1 }, - guest => { foo => 1 } + admin => + { create_user => 1, delete_user => 1, create_post => 1, delete_post => 1 }, + author => { create_post => 1 }, + guest => { read_posts => 1 } ); sub has_priv { diff --git a/lib/Lrrr/Controller/Users.pm b/lib/Lrrr/Controller/Users.pm new file mode 100644 index 0000000..4e84aec --- /dev/null +++ b/lib/Lrrr/Controller/Users.pm @@ -0,0 +1,17 @@ +package Lrrr::Controller::Users; + +use strict; +use warnings; + +use Mojo::Base 'Mojolicious::Controller'; + +# This action will render a template +sub list { + my $self = shift; + + $self->render( template => 'userlist', format => 'html' ); + + return; +} + +1; diff --git a/templates/userlist.html.ep b/templates/userlist.html.ep new file mode 100644 index 0000000..2673975 --- /dev/null +++ b/templates/userlist.html.ep @@ -0,0 +1,10 @@ +% layout 'default'; +% title 'User List'; +

User List

+ +% my $docs = mango->db->collection('users')->find; +