]> ruin.nu Git - ndwebbie.git/blob - lib/NDWeb.pm
Enable launch confirmation for all attackers
[ndwebbie.git] / lib / NDWeb.pm
1 package NDWeb;
2 use Moose;
3 use namespace::autoclean;
4
5 use Catalyst::Runtime 5.80;
6
7 # Set flags and add plugins for the application
8 #
9 #         -Debug: activates the debug mode for very useful log messages
10 #   ConfigLoader: will load the configuration from a Config::General file in the
11 #                 application's home directory
12 # Static::Simple: will serve static files from the application's root
13 #                 directory
14
15 use parent qw/Catalyst/;
16
17 use Catalyst qw/
18         -Debug
19         ConfigLoader
20         Static::Simple
21
22         Authentication
23         Authentication::Store::NDWeb
24         Authentication::Credential::Password
25
26         Authorization::Roles
27         Authorization::ACL
28
29         Session::DynamicExpiry
30         Session
31         Session::Store::File
32         Session::State::Cookie
33
34         Cache
35         PageCache
36 /;
37
38 extends 'Catalyst';
39
40 our $VERSION = '0.01';
41 $VERSION = eval $VERSION;
42
43 sub signal_bots {
44         system 'killall','-USR1', 'ndbot.pl';
45 }
46
47 #$SIG{__WARN__} = sub { NDWeb->log->warn(@_); };
48
49 # Configure the application.
50 #
51 # Note that settings in ndweb.conf (or other external
52 # configuration file that you set up manually) take precedence
53 # over this when using ConfigLoader. Thus configuration
54 # details given here can function as a default configuration,
55 # with an external configuration file acting as an override for
56 # local deployment.
57
58 __PACKAGE__->config(
59         name => 'NDWeb',
60         # Disable deprecated behavior needed by old applications
61         disable_component_resolution_regex_fallback => 1,
62 );
63 __PACKAGE__->config->{'Plugin::Authentication'}{'use_session'} = 1;
64 __PACKAGE__->config(session => {
65         storage => "/tmp/ndweb-$>/session",
66         directory_umask => 077,
67         expires => 300,
68         verify_address => 1,
69         cookie_secure => 2,
70 });
71 __PACKAGE__->config( "Plugin::Cache" => {
72         backend => {
73                 class => "Cache::FileCache",
74                 cache_root => "/tmp/ndweb-$>",
75                 namespace => "cache",
76                 default_expires_in => 3600,
77                 directory_umask => 077,
78         },
79 });
80
81 __PACKAGE__->config( page_cache => {
82         set_http_headers => 1,
83         disable_index => 1,
84 });
85
86 __PACKAGE__->config( default_model => 'Model');
87 __PACKAGE__->config( encoding => 'UTF-8');
88 # Start the application
89 __PACKAGE__->setup();
90
91 __PACKAGE__->deny_access_unless('/users',[qw/admin_users/]);
92 __PACKAGE__->allow_access_if('/users/sms',[qw/users_sms/]);
93 __PACKAGE__->allow_access_if('/users/postsms',[qw/users_sms/]);
94 __PACKAGE__->deny_access_unless('/alliances',[qw/alliances/]);
95 __PACKAGE__->deny_access_unless('/alliances/resources',[qw/alliances_resources/]);
96 __PACKAGE__->deny_access_unless('/graphs/alliancevsintel',[qw/graphs_intel/]);
97 __PACKAGE__->deny_access_unless('/graphs/avgalliancevsintel',[qw/graphs_intel/]);
98 __PACKAGE__->deny_access_unless('/members',[qw/members/]);
99 __PACKAGE__->allow_access_if('/members/postowncoords',[qw/attack_menu/]);
100 __PACKAGE__->allow_access_if('/members/launchConfirmation',[qw/attack_menu/]);
101 __PACKAGE__->allow_access_if('/members/postconfirmation',[qw/attack_menu/]);
102 __PACKAGE__->deny_access_unless('/members/defenders',[qw/members_defenders/]);
103 __PACKAGE__->deny_access_unless('/covop',[qw/covop/]);
104 __PACKAGE__->deny_access_unless('/calls',[qw/calls_edit/]);
105 __PACKAGE__->allow_access_if('/calls/index',[qw/calls_list/]);
106 __PACKAGE__->allow_access_if('/calls/list',[qw/calls_list/]);
107 __PACKAGE__->allow_access_if('/calls/edit',[qw/members/]);
108 __PACKAGE__->allow_access_if('/calls/findCall',[qw/members/]);
109 __PACKAGE__->deny_access_unless('/raids',[qw/raids_edit/]);
110 __PACKAGE__->allow_access_if('/raids/index',[qw//]);
111 __PACKAGE__->allow_access_if('/raids/view',[qw//]);
112 __PACKAGE__->allow_access_if('/raids/targetcalc',[qw//]);
113 __PACKAGE__->allow_access_if('/raids/fleetcalc',[qw//]);
114 __PACKAGE__->allow_access_if('/raids/calcredir',[qw//]);
115 __PACKAGE__->allow_access_if('/raids/findRaid',[qw//]);
116 __PACKAGE__->allow_access_if('/raids/log',[qw//]);
117 __PACKAGE__->deny_access_unless('/intel',[qw/intel/]);
118 __PACKAGE__->deny_access_unless('/intel/members',[qw/intel_members/]);
119 __PACKAGE__->deny_access_unless('/intel/member',[qw/intel_member/]);
120 __PACKAGE__->deny_access_unless('/intel/naps',[qw/intel_naps/]);
121 __PACKAGE__->deny_access_unless('/jsrpc',[qw//]);
122 __PACKAGE__->allow_access_if('/jsrpc/end',1);
123 __PACKAGE__->deny_access_unless('/forum/allUnread',[qw//]);
124 __PACKAGE__->deny_access_unless('/forum/privmsg',[qw//]);
125 __PACKAGE__->deny_access_unless('/settings',[qw//]);
126 __PACKAGE__->deny_access_unless('/textexport/alliance',[qw/textexport_alliance/]);
127
128 =head1 NAME
129
130 NDWeb - Catalyst based application
131
132 =head1 SYNOPSIS
133
134     script/ndweb_server.pl
135
136 =head1 DESCRIPTION
137
138 [enter your description here]
139
140 =head1 SEE ALSO
141
142 L<NDWeb::Controller::Root>, L<Catalyst>
143
144 =head1 AUTHOR
145
146 Catalyst developer
147
148 =head1 LICENSE
149
150 This library is free software. You can redistribute it and/or modify
151 it under the same terms as Perl itself.
152
153 =cut
154
155 1;