Cache certs
[scpubgit/stemmaweb.git] / lib / stemmaweb.pm
index b2f68e8..f9e1092 100644 (file)
@@ -23,16 +23,20 @@ use Search::GIN::Extract::Multiplex;
 use Catalyst qw/
     ConfigLoader
     Static::Simple
-    Unicode::Encoding
-    +CatalystX::SimpleLogin
     Authentication
     Session
     Session::Store::File
     Session::State::Cookie
+    StatusMessage
+    StackTrace
+    Cache
 /;
 
 extends 'Catalyst';
 
+use Cache::FileCache;
+use stemmaweb::Authentication::FormHandler;
+
 our $VERSION = '0.01';
 
 # Configure the application.
@@ -48,6 +52,8 @@ __PACKAGE__->config(
     name => 'stemmaweb',
     # Disable deprecated behavior needed by old applications
     disable_component_resolution_regex_fallback => 1,
+    # Set Unicode as the default
+    encoding => 'UTF-8',
     default_view => 'TT',
        'View::JSON' => {
                expose_stash => 'result',
@@ -57,6 +63,15 @@ __PACKAGE__->config(
                        stemmaweb->path_to( 'root', 'src' ),
                ],
        },
+
+    'Plugin::Cache' => {
+        backend => {
+            class => 'Cache::FileCache',
+            namespace => 'cache',
+            default_expires_in => 86400,
+        },
+    },
+
     ## kiokudb auth store testing
     'Plugin::Authentication' => {
         default => {
@@ -67,9 +82,67 @@ __PACKAGE__->config(
             },
             store => {
                 class => 'Model::KiokuDB',
-                model_name => 'User',
+                model_name => 'Directory',
+            },
+        },
+        openid => {
+            credential => {
+                class => 'OpenID',
+                extensions => ['http://openid.net/srv/ax/1.0' => 
+                    {
+                        ns          => 'ax',
+                        uri         => 'http://openid.net/srv/ax/1.0',
+                        mode        => 'fetch_request',
+                        required    => 'email',
+                        'type.email' => 'http://axschema.org/contact/email',
+                        # type        => {
+                        #     email => 'http://axschema.org/contact/email'
+                        # }
+                    }
+                    ],
+            },
+            store => {
+                class => 'Model::KiokuDB',
+                model_name => 'Directory',
             },
-        }
+            auto_create_user => 1,
+        },
+        google => {
+            credential => {
+                class => '+stemmaweb::Authentication::Credential::Google',
+            },
+            store => {
+                class => 'Model::KiokuDB',
+                model_name => 'Directory',
+            },
+            auto_create_user => 1,
+        },
+    },
+    ## Auth with CatalystX::Controller::Auth
+    'Controller::Users' => {
+        form_handler => 'stemmaweb::Authentication::FormHandler',
+        model => 'User',
+        login_id_field => 'username',
+        login_db_field => 'username',
+        action_after_login => '/users/success',
+        action_after_register => '/users/success', 
+        enable_sending_register_email => 0,
+        register_email_from  => '"Stemmaweb" <stemmaweb@byzantini.st>',
+        register_email_subject => 'Registration to stemmaweb',
+        register_email_template_plain => 'register-plain.tt',
+        realm => 'default',
+        login_fields => { openid => [qw/openid_identifier/],
+                          default => [qw/username password remember/],
+                          google => [qw/email id_token/],
+        },
+    },
+    'View::Email::Template' => {
+        stash_key => 'email_template',
+    },
+
+    recaptcha => {
+        pub_key => '6LfR19MSAAAAACy2meHvLfZGRn3PM2rRYIAfh665',
+        priv_key => '6LfR19MSAAAAAMlQb8BdyecWNRE1bAL2YSgz2sah',
     },
 );