Commit | Line | Data |
064c3709 |
1 | package SessionTestApp::Controller::Root; |
2 | use strict; |
3 | use warnings; |
4 | use Data::Dumper; |
5 | |
6 | use base qw/Catalyst::Controller/; |
7 | |
8 | __PACKAGE__->config( namespace => '' ); |
9 | |
10 | sub login : Global { |
11 | my ( $self, $c ) = @_; |
12 | $c->session; |
13 | $c->res->output("logged in"); |
14 | } |
15 | |
2a1463db |
16 | sub login_without_address : Global { |
17 | my ( $self, $c ) = @_; |
18 | $c->session; |
19 | $c->log->debug($c->request->address); |
20 | delete $c->session->{__address}; |
21 | $c->res->output("logged in (without address)"); |
22 | } |
23 | |
064c3709 |
24 | sub logout : Global { |
25 | my ( $self, $c ) = @_; |
26 | $c->res->output( |
27 | "logged out after " . $c->session->{counter} . " requests" ); |
28 | $c->delete_session("logout"); |
29 | } |
30 | |
1b41775a |
31 | sub logout_redirect : Global { |
a2e23c04 |
32 | my ( $self, $c ) = @_; |
1b41775a |
33 | |
34 | $c->logout; |
35 | $c->res->output("redirect from here"); |
36 | $c->res->redirect( $c->uri_for('from_logout_redirect') ); |
37 | } |
38 | |
39 | sub from_logout_redirect : Global { |
40 | my ( $self, $c ) = @_; |
41 | $c->res->output( "got here from logout_redirect" ); |
a2e23c04 |
42 | } |
43 | |
064c3709 |
44 | sub set_session_variable : Global { |
45 | my ( $self, $c, $var, $val ) = @_; |
46 | $c->session->{$var} = $val; |
47 | $c->res->output("session variable set"); |
48 | } |
49 | |
50 | sub get_session_variable : Global { |
51 | my ( $self, $c, $var ) = @_; |
52 | my $val = $c->session->{$var} || 'n.a.'; |
53 | $c->res->output("VAR_$var=$val"); |
54 | } |
55 | |
56 | sub get_sessid : Global { |
57 | my ( $self, $c ) = @_; |
58 | my $sid = $c->sessionid || 'n.a.'; |
59 | $c->res->output("SID=$sid"); |
60 | } |
61 | |
62 | sub dump_session : Global { |
63 | my ( $self, $c ) = @_; |
64 | my $sid = $c->sessionid || 'n.a.'; |
65 | my $dump = Dumper($c->session || 'n.a.'); |
66 | $c->res->output("[SID=$sid]\n$dump"); |
67 | } |
68 | |
69 | sub change_sessid : Global { |
70 | my ( $self, $c ) = @_; |
71 | $c->change_session_id; |
72 | $c->res->output("session id changed"); |
73 | } |
74 | |
75 | sub page : Global { |
76 | my ( $self, $c ) = @_; |
77 | if ( $c->session_is_valid ) { |
78 | $c->res->output("you are logged in, session expires at " . $c->session_expires); |
79 | $c->session->{counter}++; |
80 | } |
81 | else { |
82 | $c->res->output("please login"); |
83 | } |
84 | } |
85 | |
86 | sub user_agent : Global { |
87 | my ( $self, $c ) = @_; |
88 | $c->res->output('UA=' . $c->req->user_agent); |
89 | } |
90 | |
a491a59b |
91 | sub accessor_test : Global { |
92 | my ( $self, $c ) = @_; |
93 | |
94 | $c->session( |
95 | one => 1, |
96 | two => 2, |
97 | ); |
98 | |
99 | $c->session( { |
100 | three => 3, |
101 | four => 4, |
102 | }, |
103 | ); |
104 | |
105 | $c->session->{five} = 5; |
106 | |
107 | for my $key (keys %{ $c->session }) { |
108 | $c->res->write("$key: " . $c->session->{$key} . "\n"); |
109 | } |
110 | } |
111 | |
834ab0b8 |
112 | sub dump_these_loads_session : Global { |
113 | my ($self, $c) = @_; |
114 | |
115 | $c->dump_these(); |
116 | if ($c->_session) { |
117 | $c->res->write('LOADED') |
118 | } |
119 | else { |
120 | $c->res->write('NOT'); |
121 | } |
122 | } |
123 | |
601be17a |
124 | sub change_session_expires : Global { |
d32c2b5a |
125 | my ($self, $c) = @_; |
601be17a |
126 | $c->change_session_expires(31536000); |
d32c2b5a |
127 | $c->res->output($c->session_expires); |
128 | } |
129 | |
71bde3b4 |
130 | sub reset_session_expires : Global { |
131 | my ($self, $c) = @_; |
132 | $c->reset_session_expires; |
133 | $c->res->output($c->session_expires); |
134 | } |
135 | |
064c3709 |
136 | 1; |