2008-11-25 11:01:42 +00:00
|
|
|
package Hydra;
|
2008-10-28 10:19:31 +00:00
|
|
|
|
|
|
|
use strict;
|
|
|
|
use warnings;
|
2013-01-23 12:41:57 +00:00
|
|
|
use parent 'Catalyst';
|
2013-03-29 21:57:32 +00:00
|
|
|
use Moose;
|
2013-05-25 19:36:58 +00:00
|
|
|
use Hydra::Plugin;
|
2012-03-13 12:30:41 +00:00
|
|
|
use Hydra::Model::DB;
|
2008-10-28 10:19:31 +00:00
|
|
|
use Catalyst::Runtime '5.70';
|
2011-11-25 15:44:18 +00:00
|
|
|
use Catalyst qw/ConfigLoader
|
2014-05-01 14:33:25 +00:00
|
|
|
Unicode::Encoding
|
2008-10-28 10:19:31 +00:00
|
|
|
Static::Simple
|
|
|
|
StackTrace
|
2008-11-26 19:48:04 +00:00
|
|
|
Authentication
|
2008-11-26 23:25:24 +00:00
|
|
|
Authorization::Roles
|
2008-11-26 19:48:04 +00:00
|
|
|
Session
|
|
|
|
Session::Store::FastMmap
|
|
|
|
Session::State::Cookie
|
2013-02-27 17:33:47 +00:00
|
|
|
AccessLog
|
|
|
|
Captcha/,
|
2013-01-23 12:41:57 +00:00
|
|
|
'-Log=warn,fatal,error';
|
2013-03-29 21:57:32 +00:00
|
|
|
use CatalystX::RoleApplicator;
|
|
|
|
|
2013-01-23 12:41:57 +00:00
|
|
|
|
2008-10-28 10:19:31 +00:00
|
|
|
our $VERSION = '0.01';
|
|
|
|
|
2008-11-18 14:48:40 +00:00
|
|
|
__PACKAGE__->config(
|
2008-11-25 11:01:42 +00:00
|
|
|
name => 'Hydra',
|
2008-11-28 14:36:04 +00:00
|
|
|
default_view => "TT",
|
2008-11-29 00:04:45 +00:00
|
|
|
authentication => {
|
|
|
|
default_realm => "dbic",
|
|
|
|
realms => {
|
|
|
|
dbic => {
|
|
|
|
credential => {
|
|
|
|
class => "Password",
|
|
|
|
password_field => "password",
|
|
|
|
password_type => "hashed",
|
|
|
|
password_hash_type => "SHA-1",
|
|
|
|
},
|
|
|
|
store => {
|
|
|
|
class => "DBIx::Class",
|
|
|
|
user_class => "DB::Users",
|
|
|
|
role_relation => "userroles",
|
|
|
|
role_field => "role",
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
2011-09-15 08:27:17 +00:00
|
|
|
},
|
2013-02-25 17:18:05 +00:00
|
|
|
'Plugin::Static::Simple' => {
|
|
|
|
send_etag => 1,
|
|
|
|
expires => 3600
|
|
|
|
},
|
2011-09-15 08:27:17 +00:00
|
|
|
'View::JSON' => {
|
2013-02-25 20:04:10 +00:00
|
|
|
expose_stash => 'json'
|
2011-09-15 08:27:17 +00:00
|
|
|
},
|
|
|
|
'Plugin::Session' => {
|
2013-11-06 14:15:35 +00:00
|
|
|
expires => 3600 * 24 * 7,
|
2015-07-01 23:01:44 +00:00
|
|
|
storage => Hydra::Model::DB::getHydraPath . "/www/session_data",
|
2013-11-06 14:14:31 +00:00
|
|
|
unlink_on_exit => 0
|
2011-09-15 08:27:17 +00:00
|
|
|
},
|
2012-11-05 16:37:23 +00:00
|
|
|
'Plugin::AccessLog' => {
|
2013-01-22 12:19:08 +00:00
|
|
|
formatter => {
|
|
|
|
format => '%h %l %u %t "%r" %s %b "%{Referer}i" "%{User-Agent}i" %[handle_time]',
|
2012-11-05 16:37:23 +00:00
|
|
|
},
|
|
|
|
},
|
2013-02-27 17:33:47 +00:00
|
|
|
'Plugin::Captcha' => {
|
|
|
|
session_name => 'hydra-captcha',
|
|
|
|
new => {
|
|
|
|
width => 270,
|
|
|
|
height => 80,
|
|
|
|
ptsize => 20,
|
|
|
|
lines => 30,
|
|
|
|
thickness => 1,
|
|
|
|
rndmax => 5,
|
|
|
|
scramble => 1,
|
|
|
|
#send_ctobg => 1,
|
|
|
|
bgcolor => '#ffffff',
|
2013-03-04 11:16:13 +00:00
|
|
|
font => __PACKAGE__->path_to("ttf/StayPuft.ttf"),
|
2013-02-27 17:33:47 +00:00
|
|
|
},
|
|
|
|
create => [ qw/ttf circle/ ],
|
|
|
|
particle => [ 3500 ],
|
|
|
|
out => { force => 'jpeg' }
|
|
|
|
},
|
2008-11-28 14:36:04 +00:00
|
|
|
);
|
2008-10-28 10:19:31 +00:00
|
|
|
|
2013-03-29 21:57:32 +00:00
|
|
|
__PACKAGE__->apply_request_class_roles(qw/Catalyst::TraitFor::Request::ProxyBase/);
|
|
|
|
|
2013-05-25 19:36:58 +00:00
|
|
|
my $plugins;
|
|
|
|
|
|
|
|
has 'hydra_plugins' => (
|
|
|
|
is => 'ro',
|
|
|
|
default => sub { return $plugins; }
|
|
|
|
);
|
|
|
|
|
|
|
|
after setup_finalize => sub {
|
|
|
|
my $class = shift;
|
2013-07-02 11:54:18 +00:00
|
|
|
$plugins = [Hydra::Plugin->instantiate(db => $class->model('DB'), config => $class->config)];
|
2013-05-25 19:36:58 +00:00
|
|
|
};
|
|
|
|
|
2008-10-28 10:19:31 +00:00
|
|
|
__PACKAGE__->setup();
|
|
|
|
|
|
|
|
1;
|