X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2Fstemmaweb.pm;h=f9e109289b8d70b99b37a97d43f68fbfa9f986c2;hb=e490a3d8af8dec43ee328da99341063d6d793a8e;hp=b2f68e82e3ea5f175e73fb7a2be3c4cca489a40c;hpb=16562d80c93bb2dac55f7dd45021217d3b7bb6f6;p=scpubgit%2Fstemmaweb.git diff --git a/lib/stemmaweb.pm b/lib/stemmaweb.pm index b2f68e8..f9e1092 100644 --- a/lib/stemmaweb.pm +++ b/lib/stemmaweb.pm @@ -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" ', + 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', }, );