hydra/src/lib/Hydra.pm

108 lines
2.7 KiB
Perl
Raw Normal View History

2008-11-25 11:01:42 +00:00
package Hydra;
use strict;
use warnings;
2013-01-23 12:41:57 +00:00
use parent 'Catalyst';
use Moose;
use Hydra::Plugin;
2012-03-13 13:30:41 +01:00
use Hydra::Model::DB;
use Catalyst::Runtime '5.70';
use Catalyst qw/ConfigLoader
Unicode::Encoding
Static::Simple
StackTrace
2008-11-26 19:48:04 +00:00
Authentication
Authorization::Roles
2008-11-26 19:48:04 +00:00
Session
Session::Store::FastMmap
Session::State::Cookie
Captcha
PrometheusTiny/,
2013-01-23 12:41:57 +00:00
'-Log=warn,fatal,error';
use CatalystX::RoleApplicator;
use YAML qw(LoadFile);
use Path::Class 'file';
2013-01-23 12:41:57 +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",
'Plugin::Authentication' => {
default_realm => "dbic",
dbic => {
credential => {
class => "Password",
password_field => "password",
password_type => "self_check",
},
store => {
class => "DBIx::Class",
user_class => "DB::Users",
role_relation => "userroles",
role_field => "role",
},
},
ldap => $ENV{'HYDRA_LDAP_CONFIG'} ? LoadFile(
file($ENV{'HYDRA_LDAP_CONFIG'})
) : undef
},
'Plugin::ConfigLoader' => {
driver => {
2021-07-26 17:11:21 +00:00
'General' => \%Hydra::Config::configGeneralOpts
}
},
'Plugin::PrometheusTiny' => {
include_action_labels => 1,
},
2013-02-25 18:18:05 +01:00
'Plugin::Static::Simple' => {
send_etag => 1,
expires => 3600
},
'View::JSON' => {
expose_stash => 'json'
},
'Plugin::Session' => {
2013-11-06 15:15:35 +01:00
expires => 3600 * 24 * 7,
storage => Hydra::Model::DB::getHydraPath . "/www/session_data",
unlink_on_exit => 0
},
2013-02-27 18:33:47 +01: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',
font => __PACKAGE__->path_to("ttf/StayPuft.ttf"),
2013-02-27 18:33:47 +01:00
},
create => [ qw/ttf circle/ ],
particle => [ 3500 ],
out => { force => 'jpeg' }
},
2008-11-28 14:36:04 +00:00
);
__PACKAGE__->apply_request_class_roles(qw/Catalyst::TraitFor::Request::ProxyBase/);
my $plugins;
has 'hydra_plugins' => (
is => 'ro',
default => sub { return $plugins; }
);
after setup_finalize => sub {
my $class = shift;
$plugins = [Hydra::Plugin->instantiate(db => $class->model('DB'), config => $class->config)];
};
__PACKAGE__->setup();
1;