hydra/src/lib/Hydra.pm

88 lines
2.2 KiB
Perl

package Hydra;
use strict;
use warnings;
use parent 'Catalyst';
use Moose;
use Hydra::Model::DB;
use Catalyst::Runtime '5.70';
use Catalyst qw/ConfigLoader
Static::Simple
StackTrace
Authentication
Authorization::Roles
Session
Session::Store::FastMmap
Session::State::Cookie
AccessLog
Captcha/,
'-Log=warn,fatal,error';
use CatalystX::RoleApplicator;
our $VERSION = '0.01';
__PACKAGE__->config(
name => 'Hydra',
default_view => "TT",
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",
},
},
},
},
'Plugin::Static::Simple' => {
send_etag => 1,
expires => 3600
},
'View::JSON' => {
expose_stash => 'json'
},
'Plugin::Session' => {
expires => 3600 * 24 * 2,
storage => Hydra::Model::DB::getHydraPath . "/session_data"
},
'Plugin::AccessLog' => {
formatter => {
format => '%h %l %u %t "%r" %s %b "%{Referer}i" "%{User-Agent}i" %[handle_time]',
},
},
'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',
font => __PACKAGE__->path_to("ttf/StayPuft.ttf"),
},
create => [ qw/ttf circle/ ],
particle => [ 3500 ],
out => { force => 'jpeg' }
},
);
__PACKAGE__->apply_request_class_roles(qw/Catalyst::TraitFor::Request::ProxyBase/);
__PACKAGE__->setup();
1;