Commit | Line | Data |
ad93b3e9 |
1 | package TestApp;\r |
2 | \r |
3 | use strict;\r |
4 | use Catalyst;\r |
5 | use Data::Dumper;\r |
6 | \r |
7 | TestApp->config( $ENV{TESTAPP_CONFIG} );\r |
8 | \r |
9 | TestApp->setup( @{$ENV{TESTAPP_PLUGINS}} );\r |
10 | \r |
11 | sub user_login : Global {\r |
12 | my ( $self, $c ) = @_;\r |
13 | \r |
14 | ## this allows anyone to login regardless of status.\r |
15 | $c->authenticate({ username => $c->request->params->{'username'},\r |
16 | password => $c->request->params->{'password'}\r |
17 | });\r |
18 | \r |
19 | if ( $c->user_exists ) {\r |
20 | if ( $c->req->params->{detach} ) {\r |
21 | $c->detach( $c->req->params->{detach} );\r |
22 | }\r |
23 | $c->res->body( $c->user->get('username') . ' logged in' );\r |
24 | }\r |
25 | else {\r |
26 | $c->res->body( 'not logged in' );\r |
27 | }\r |
28 | }\r |
29 | \r |
30 | sub notdisabled_login : Global {\r |
31 | my ( $self, $c ) = @_;\r |
32 | \r |
33 | $c->authenticate({ username => $c->request->params->{'username'},\r |
34 | password => $c->request->params->{'password'},\r |
35 | status => [ 'active', 'registered' ]\r |
36 | });\r |
37 | \r |
38 | if ( $c->user_exists ) {\r |
39 | if ( $c->req->params->{detach} ) {\r |
40 | $c->detach( $c->req->params->{detach} );\r |
41 | }\r |
42 | $c->res->body( $c->user->get('username') . ' logged in' );\r |
43 | }\r |
44 | else {\r |
45 | $c->res->body( 'not logged in' );\r |
46 | }\r |
47 | }\r |
48 | \r |
49 | sub searchargs_login : Global {\r |
50 | my ( $self, $c ) = @_;\r |
51 | \r |
52 | my $username = $c->request->params->{'username'} || '';\r |
53 | my $email = $c->request->params->{'email'} || '';\r |
54 | \r |
55 | $c->authenticate({ \r |
56 | password => $c->request->params->{'password'},\r |
57 | dbix_class => {\r |
58 | searchargs => [ { "-or" => [ username => $username,\r |
59 | email => $email ]}, \r |
60 | { prefetch => qw/ map_user_role /}\r |
61 | ]\r |
62 | }\r |
63 | });\r |
64 | \r |
65 | if ( $c->user_exists ) {\r |
66 | if ( $c->req->params->{detach} ) {\r |
67 | $c->detach( $c->req->params->{detach} );\r |
68 | }\r |
69 | $c->res->body( $c->user->get('username') . ' logged in' );\r |
70 | }\r |
71 | else {\r |
72 | $c->res->body( 'not logged in' );\r |
73 | }\r |
74 | }\r |
75 | \r |
76 | sub resultset_login : Global {\r |
77 | my ( $self, $c ) = @_;\r |
78 | \r |
79 | my $username = $c->request->params->{'username'} || '';\r |
80 | my $email = $c->request->params->{'email'} || '';\r |
81 | \r |
82 | \r |
83 | my $rs = $c->model('TestApp::User')->search({ "-or" => [ username => $username,\r |
84 | email => $email ]});\r |
85 | \r |
86 | $c->authenticate({ \r |
87 | password => $c->request->params->{'password'},\r |
88 | dbix_class => { resultset => $rs }\r |
89 | });\r |
90 | \r |
91 | if ( $c->user_exists ) {\r |
92 | if ( $c->req->params->{detach} ) {\r |
93 | $c->detach( $c->req->params->{detach} );\r |
94 | }\r |
95 | $c->res->body( $c->user->get('username') . ' logged in' );\r |
96 | }\r |
97 | else {\r |
98 | $c->res->body( 'not logged in' );\r |
99 | }\r |
100 | }\r |
101 | \r |
102 | ## need to add a resultset login test and a search args login test\r |
103 | \r |
104 | sub user_logout : Global {\r |
105 | my ( $self, $c ) = @_;\r |
106 | \r |
107 | $c->logout;\r |
108 | \r |
109 | if ( ! $c->user ) {\r |
110 | $c->res->body( 'logged out' );\r |
111 | }\r |
112 | else {\r |
113 | $c->res->body( 'not logged ok' );\r |
114 | }\r |
115 | }\r |
116 | \r |
117 | sub get_session_user : Global {\r |
118 | my ( $self, $c ) = @_;\r |
f26005a7 |
119 | \r |
ad93b3e9 |
120 | if ( $c->user_exists ) {\r |
f26005a7 |
121 | $c->res->body($c->user->get('username')); # . " " . Dumper($c->user->get_columns()) );\r |
ad93b3e9 |
122 | }\r |
123 | }\r |
124 | \r |
125 | sub is_admin : Global {\r |
126 | my ( $self, $c ) = @_;\r |
127 | \r |
128 | eval {\r |
129 | if ( $c->assert_user_roles( qw/admin/ ) ) {\r |
130 | $c->res->body( 'ok' );\r |
131 | }\r |
132 | };\r |
133 | if ($@) {\r |
134 | $c->res->body( 'failed' );\r |
135 | }\r |
136 | }\r |
137 | \r |
138 | sub is_admin_user : Global {\r |
139 | my ( $self, $c ) = @_;\r |
140 | \r |
141 | eval {\r |
142 | if ( $c->assert_user_roles( qw/admin user/ ) ) {\r |
143 | $c->res->body( 'ok' );\r |
144 | }\r |
145 | };\r |
146 | if ($@) {\r |
147 | $c->res->body( 'failed' );\r |
148 | }\r |
149 | }\r |
150 | \r |
151 | sub set_usersession : Global {\r |
152 | my ( $self, $c, $value ) = @_;\r |
153 | $c->user_session->{foo} = $value;\r |
154 | $c->res->body( 'ok' );\r |
155 | }\r |
156 | \r |
157 | sub get_usersession : Global {\r |
158 | my ( $self, $c ) = @_;\r |
159 | $c->res->body( $c->user_session->{foo} || '' );\r |
160 | }\r |
161 | \r |
162 | \r |
163 | 1;\r |