aboutsummaryrefslogtreecommitdiff
blob: 93301cbddeac3c8aaff60fe13d320091feac2e7c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
package Bugzilla::Extension::Gentoo;
use strict;
use base qw(Bugzilla::Extension);

#use Bugzilla::Install::Filesystem qw(CGI_READ OWNER_EXECUTE WS_SERVE DIR_WS_SERVE);
use Bugzilla::Constants qw(bz_locations);

use POSIX qw(uname);

our $VERSION = '1.0';

sub install_filesystem {
	my ($self, $args) = @_;

	my $dirs         = $args->{'create_dirs'};
	my $files        = $args->{'files'};
	my $recurse_dirs = $args->{'recurse_dirs'};
	my $htaccess     = $args->{'htaccess'};

	my $datadir = bz_locations()->{'datadir'};

	$dirs->{"${datadir}/cached"} = { perms => 0750 };

	$files->{"zzz.txt"}        = { perms => 0644 };
	$files->{"robots-ssl.txt"} = { perms => 0644 };
	$files->{"bots.html"}      = { perms => 0644 };
	$files->{"favicon.ico"}    = { perms => 0644 };
	$files->{"runstats.sh"}    = { perms => 0700 };
	$files->{"recompile.sh"}   = { perms => 0700 };

	$recurse_dirs->{"$datadir/cached"} = {
		files => 0640, dirs => 0750
	};

	$recurse_dirs->{"images/ranks"} = {
		files => 0640, dirs => 0750
	};

	$htaccess->{"$datadir/cached/.htaccess"} = {
		perms => 0640, contents => <<EOT
# Allow access to the cached stuff
Allow from all
EOT
	};
}

sub template_before_create {
	my ($self, $args) = @_;

	my $config = $args->{config};
	my $constants = $config->{CONSTANTS};

	my %nodemap = (
		'yellowbishop' => 'bugs-web1',
		'yellowleg' => 'bugs-web2'
	);

	$constants->{GENTOO_NODE} = $nodemap{(uname())[1]} ? $nodemap{(uname())[1]} : "unknown";
	$constants->{GENTOO_APPEND_VERSION} = "+";
}

sub user_check_account_creation {
    my ($self, $args) = @_;

    my $login = $args->{login};

	ThrowUserError('restricted_email_address', {addr => $login}) if $login =~ m/.+\@gentoo\.org$/;
}

__PACKAGE__->NAME;