@@ -5,39 +5,6 @@ use Dancer2::Plugin::Auth::Tiny;
5
5
use Dancer2::Plugin::CryptPassphrase;
6
6
use Feature::Compat::Try;
7
7
8
- =pod
9
-
10
- Running list of updates to the tutorial
11
-
12
- cpanm \
13
- Dancer2::Plugin::Auth::Tiny \
14
- Dancer2::Plugin::CryptPassphrase
15
-
16
- Then add those to cpanfile
17
-
18
- Create users:
19
-
20
- sqlite3 db/dlblog.db < db/users.sql
21
-
22
- Then rerun:
23
-
24
- dbicdump -o dump_directory=./lib \
25
- -o components='["InflateColumn::DateTime"]' \
26
- DLBlog::Schema dbi:SQLite:db/dlblog.db '{ quote_char => "\"" }'
27
-
28
- Explain that Auth::Tiny has other features, but we configured it
29
- minimally.
30
-
31
- Use sessions in auth only.
32
-
33
- TODO: README
34
-
35
- Create a new password:
36
-
37
- perl -MCrypt::Passphrase -E'my $auth=Crypt::Passphrase->new(encoder=>"Argon2"); say $auth->hash_password("test")'
38
-
39
- =cut
40
-
41
8
get ' /' => sub {
42
9
# Give us the most recent first
43
10
my @entries = resultset(' Entry' )-> search(
@@ -50,12 +17,12 @@ get '/' => sub {
50
17
get ' /entry/:id[Int]' => sub {
51
18
my $id = route_parameters-> get(' id' );
52
19
my $entry = resultset( ' Entry' )-> find( $id );
53
- template ' entry' , { entry => $entry , page_title => $entry -> title };
20
+ template ' entry' , { entry => $entry };
54
21
};
55
22
56
23
get ' /create' => needs login => sub {
57
24
# Vars are passed to templates automatically
58
- template ' create_update' , { post_to => uri_for ' /create' , page_title => ' Create Entry ' };
25
+ template ' create_update' , { post_to => uri_for ' /create' };
59
26
};
60
27
61
28
post ' /create' => needs login => sub {
@@ -88,7 +55,7 @@ get '/update/:id[Int]' => needs login => sub {
88
55
my $id = route_parameters-> get(' id' );
89
56
my $entry = resultset( ' Entry' )-> find( $id );
90
57
var $_ => $entry -> $_ foreach qw< title summary content > ;
91
- template ' create_update' , { post_to => uri_for " /update/$id " , page_title => " Edit Entry $id " };
58
+ template ' create_update' , { post_to => uri_for " /update/$id " };
92
59
};
93
60
94
61
post ' /update/:id[Int]' => needs login => sub {
@@ -121,13 +88,13 @@ post '/update/:id[Int]' => needs login => sub {
121
88
redirect uri_for " /entry/" . $entry -> id; # redirect does not need a return
122
89
};
123
90
124
- get ' /delete/:id' => needs login => sub {
91
+ get ' /delete/:id[Int] ' => needs login => sub {
125
92
my $id = route_parameters-> get(' id' );
126
93
my $entry = resultset( ' Entry' )-> find( $id );
127
- template ' delete' , { entry => $entry , page_title => " Delete Entry $id " };
94
+ template ' delete' , { entry => $entry };
128
95
};
129
96
130
- post ' /delete/:id' => needs login => sub {
97
+ post ' /delete/:id[Int] ' => needs login => sub {
131
98
my $id = route_parameters-> get(' id' );
132
99
my $entry = resultset( ' Entry' )-> find( $id );
133
100
if ( !$entry ) {
@@ -148,7 +115,7 @@ post '/delete/:id' => needs login => sub {
148
115
};
149
116
150
117
get ' /login' => sub {
151
- template ' login' => { return_url => params-> { return_url }, page_title => ' Login ' };
118
+ template ' login' => { return_url => params-> { return_url } };
152
119
};
153
120
154
121
post ' /login' => sub {
@@ -158,8 +125,8 @@ post '/login' => sub {
158
125
159
126
my $user = resultset( ' User' )-> find({ username => $username });
160
127
if ( $user and verify_password( $password , $user -> password) ) {
161
- session user => $username ;
162
128
app-> change_session_id;
129
+ session user => $username ;
163
130
info " $username successfully logged in" ;
164
131
return redirect $return_url || ' /' ;
165
132
}
@@ -174,10 +141,5 @@ get '/logout' => sub {
174
141
redirect uri_for " /" ;
175
142
};
176
143
177
- hook before_layout_render => sub {
178
- my ($tokens , $ref_content ) = @_ ;
179
- $tokens -> { page_title } = ' Welcome!' unless $tokens -> { page_title };
180
- };
181
-
182
144
true;
183
145
0 commit comments