Add Email::Template for post-registratin email sending
[scpubgit/stemmatology.git] / stemmaweb / lib / stemmaweb.pm
1 package stemmaweb;
2 use Moose;
3 use namespace::autoclean;
4
5 use Catalyst::Runtime 5.80;
6
7 use Search::GIN::Extract::Class;
8 use Search::GIN::Extract::Attributes;
9 use Search::GIN::Extract::Multiplex;
10
11 # Set flags and add plugins for the application.
12 #
13 # Note that ORDERING IS IMPORTANT here as plugins are initialized in order,
14 # therefore you almost certainly want to keep ConfigLoader at the head of the
15 # list if you're using it.
16 #
17 #         -Debug: activates the debug mode for very useful log messages
18 #   ConfigLoader: will load the configuration from a Config::General file in the
19 #                 application's home directory
20 # Static::Simple: will serve static files from the application's root
21 #                 directory
22
23 use Catalyst qw/
24     ConfigLoader
25     Static::Simple
26     Unicode::Encoding
27     Authentication
28     Session
29     Session::Store::File
30     Session::State::Cookie
31     StatusMessage
32     StackTrace
33 /;
34
35 extends 'Catalyst';
36
37 our $VERSION = '0.01';
38
39 # Configure the application.
40 #
41 # Note that settings in stemmaweb.conf (or other external
42 # configuration file that you set up manually) take precedence
43 # over this when using ConfigLoader. Thus configuration
44 # details given here can function as a default configuration,
45 # with an external configuration file acting as an override for
46 # local deployment.
47
48 __PACKAGE__->config(
49     name => 'stemmaweb',
50     # Disable deprecated behavior needed by old applications
51     disable_component_resolution_regex_fallback => 1,
52     default_view => 'TT',
53         'View::JSON' => {
54                 expose_stash => 'result',
55         },
56         'View::TT' => {
57                 INCLUDE_PATH => [
58                         stemmaweb->path_to( 'root', 'src' ),
59                 ],
60         },
61     ## kiokudb auth store testing
62     'Plugin::Authentication' => {
63         default => {
64             credential => {
65                 class => 'Password',
66                 password_field => 'password',
67                 password_type => 'self_check',
68             },
69             store => {
70                 class => 'Model::KiokuDB',
71                 model_name => 'Directory',
72             },
73         },
74         openid => {
75             credential => {
76                 class => 'OpenID',
77                 extensions => ['http://openid.net/srv/ax/1.0' => 
78                     {
79                         ns          => 'ax',
80                         uri         => 'http://openid.net/srv/ax/1.0',
81                         mode        => 'fetch_request',
82                         required    => 'email',
83                         'type.email' => 'http://axschema.org/contact/email',
84                         # type        => {
85                         #     email => 'http://axschema.org/contact/email'
86                         # }
87                     }
88                     ],
89             },
90             store => {
91                 class => 'Model::KiokuDB',
92                 model_name => 'Directory',
93             },
94             auto_create_user => 1,
95         },
96     },
97     ## Auth with CatalystX::Controller::Auth
98     'Controller::Users' => {
99         model => 'User',
100         login_id_field => 'username',
101         login_db_field => 'username',
102         action_after_login => '/index',
103         action_after_register => '/index', 
104         register_email_from  => '"MyApp" <somebody@example.com>',
105         register_email_subject => 'Confirm registration to stemmaweb',
106         register_email_template_plain => 'register-plain.tt',
107         realm => 'default',
108         login_fields => { openid => [qw/openid_identifier/],
109                           default => [qw/username password remember/],
110         },
111     },
112 );
113
114 # Start the application
115 __PACKAGE__->setup();
116
117
118 =head1 NAME
119
120 stemmaweb - Catalyst based application
121
122 =head1 SYNOPSIS
123
124     script/stemmaweb_server.pl
125
126 =head1 DESCRIPTION
127
128 [enter your description here]
129
130 =head1 SEE ALSO
131
132 L<stemmaweb::Controller::Root>, L<Catalyst>
133
134 =head1 AUTHOR
135
136 Tara L Andrews
137
138 =head1 LICENSE
139
140 This library is free software. You can redistribute it and/or modify
141 it under the same terms as Perl itself.
142
143 =cut
144
145 1;