Prepare State::Cookie for distribution
[catagits/Catalyst-Plugin-Session-State-Cookie.git] / lib / Catalyst / Plugin / Session / State / Cookie.pm
index e865c3e..3ba6dd1 100644 (file)
@@ -6,13 +6,25 @@ use warnings;
 
 use NEXT;
 
+our $VERSION = "0.01";
+
+sub setup_session {
+       my $c = shift;
+
+       $c->NEXT::setup_session(@_);
+
+       $c->config->{session}{cookie_name} ||= "session";
+}
+
 sub finalize {
     my $c = shift;
 
+       my $cookie_name = $c->config->{session}{cookie_name};
+
     if ( my $sid = $c->sessionid ) {
-        my $cookie = $c->request->cookies->{session};
+        my $cookie = $c->request->cookies->{$cookie_name};
         if ( !$cookie or $cookie->value ne $sid ) {
-            $c->response->cookies->{session} = { value => $sid };
+            $c->response->cookies->{$cookie_name} = { value => $sid };
             $c->log->debug(qq/A cookie with the session id "$sid" was saved/)
               if $c->debug;
         }
@@ -24,7 +36,9 @@ sub finalize {
 sub prepare_cookies {
     my $c = shift;
 
-    if ( my $cookie = $c->request->cookies->{session} ) {
+       my $cookie_name = $c->config->{session}{cookie_name};
+
+    if ( my $cookie = $c->request->cookies->{$cookie_name} ) {
         my $sid = $cookie->value;
         $c->sessionid($sid);
         $c->log->debug(qq/Found sessionid "$sid" in cookie/) if $c->debug;
@@ -68,6 +82,16 @@ Will set a cookie called C<session> if it doesn't exist or if it's value is not
 
 =back
 
+=head1 CONFIGURATION
+
+=over 4
+
+=item cookie_name
+
+The name of the cookie to store (defaults to C<session>).
+
+=back
+
 =head1 SEE ALSO
 
 L<Catalyst>, L<Catalyst::Plugin::Session>.