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 | |
16 | sub logout : Global { |
17 | my ( $self, $c ) = @_; |
18 | $c->res->output( |
19 | "logged out after " . $c->session->{counter} . " requests" ); |
20 | $c->delete_session("logout"); |
21 | } |
22 | |
23 | sub set_session_variable : Global { |
24 | my ( $self, $c, $var, $val ) = @_; |
25 | $c->session->{$var} = $val; |
26 | $c->res->output("session variable set"); |
27 | } |
28 | |
29 | sub get_session_variable : Global { |
30 | my ( $self, $c, $var ) = @_; |
31 | my $val = $c->session->{$var} || 'n.a.'; |
32 | $c->res->output("VAR_$var=$val"); |
33 | } |
34 | |
35 | sub get_sessid : Global { |
36 | my ( $self, $c ) = @_; |
37 | my $sid = $c->sessionid || 'n.a.'; |
38 | $c->res->output("SID=$sid"); |
39 | } |
40 | |
41 | sub dump_session : Global { |
42 | my ( $self, $c ) = @_; |
43 | my $sid = $c->sessionid || 'n.a.'; |
44 | my $dump = Dumper($c->session || 'n.a.'); |
45 | $c->res->output("[SID=$sid]\n$dump"); |
46 | } |
47 | |
48 | sub change_sessid : Global { |
49 | my ( $self, $c ) = @_; |
50 | $c->change_session_id; |
51 | $c->res->output("session id changed"); |
52 | } |
53 | |
54 | sub page : Global { |
55 | my ( $self, $c ) = @_; |
56 | if ( $c->session_is_valid ) { |
57 | $c->res->output("you are logged in, session expires at " . $c->session_expires); |
58 | $c->session->{counter}++; |
59 | } |
60 | else { |
61 | $c->res->output("please login"); |
62 | } |
63 | } |
64 | |
65 | sub user_agent : Global { |
66 | my ( $self, $c ) = @_; |
67 | $c->res->output('UA=' . $c->req->user_agent); |
68 | } |
69 | |
a491a59b |
70 | sub accessor_test : Global { |
71 | my ( $self, $c ) = @_; |
72 | |
73 | $c->session( |
74 | one => 1, |
75 | two => 2, |
76 | ); |
77 | |
78 | $c->session( { |
79 | three => 3, |
80 | four => 4, |
81 | }, |
82 | ); |
83 | |
84 | $c->session->{five} = 5; |
85 | |
86 | for my $key (keys %{ $c->session }) { |
87 | $c->res->write("$key: " . $c->session->{$key} . "\n"); |
88 | } |
89 | } |
90 | |
834ab0b8 |
91 | sub dump_these_loads_session : Global { |
92 | my ($self, $c) = @_; |
93 | |
94 | $c->dump_these(); |
95 | if ($c->_session) { |
96 | $c->res->write('LOADED') |
97 | } |
98 | else { |
99 | $c->res->write('NOT'); |
100 | } |
101 | } |
102 | |
064c3709 |
103 | 1; |