From ccff248264ff717d515f753e460769b9bf33b38d Mon Sep 17 00:00:00 2001 From: Byron Jones Date: Wed, 28 May 2014 12:28:18 +0800 Subject: Bug 1016199: move skins/assets to data/assets r=dkl, a=justdave --- Bugzilla/Install/Filesystem.pm | 31 +++++++++++++++++++++++++++---- 1 file changed, 27 insertions(+), 4 deletions(-) (limited to 'Bugzilla/Install') diff --git a/Bugzilla/Install/Filesystem.pm b/Bugzilla/Install/Filesystem.pm index b2ac04aca..d980a2199 100644 --- a/Bugzilla/Install/Filesystem.pm +++ b/Bugzilla/Install/Filesystem.pm @@ -117,6 +117,7 @@ sub FILESYSTEM { my $localconfig = bz_locations()->{'localconfig'}; my $template_cache = bz_locations()->{'template_cache'}; my $graphsdir = bz_locations()->{'graphsdir'}; + my $assetsdir = bz_locations()->{'assetsdir'}; # We want to set the permissions the same for all localconfig files # across all PROJECTs, so we do something special with $localconfig, @@ -199,7 +200,7 @@ sub FILESYSTEM { dirs => DIR_CGI_WRITE | DIR_ALSO_WS_SERVE }, "$datadir/db" => { files => CGI_WRITE, dirs => DIR_CGI_WRITE }, - "$skinsdir/assets" => { files => WS_SERVE, + $assetsdir => { files => WS_SERVE, dirs => DIR_CGI_OVERWRITE | DIR_ALSO_WS_SERVE }, # Readable directories @@ -260,7 +261,8 @@ sub FILESYSTEM { # The name of each directory that we should actually *create*, # pointing at its default permissions. my %create_dirs = ( - # This is DIR_ALSO_WS_SERVE because it contains $webdotdir. + # This is DIR_ALSO_WS_SERVE because it contains $webdotdir and + # $assetsdir. $datadir => DIR_CGI_OVERWRITE | DIR_ALSO_WS_SERVE, # Directories that are read-only for cgi scripts "$datadir/mining" => DIR_CGI_READ, @@ -271,7 +273,7 @@ sub FILESYSTEM { $attachdir => DIR_CGI_WRITE, $graphsdir => DIR_CGI_WRITE | DIR_ALSO_WS_SERVE, $webdotdir => DIR_CGI_WRITE | DIR_ALSO_WS_SERVE, - "$skinsdir/assets" => DIR_CGI_WRITE | DIR_ALSO_WS_SERVE, + $assetsdir => DIR_CGI_WRITE | DIR_ALSO_WS_SERVE, # Directories that contain content served directly by the web server. "$skinsdir/custom" => DIR_WS_SERVE, "$skinsdir/contrib" => DIR_WS_SERVE, @@ -361,6 +363,18 @@ EOT Deny from all EOT }, + + "$assetsdir/.htaccess" => { perms => WS_SERVE, contents => < + Allow from all + + +# And no directory listings, either. +Deny from all +EOT + }, + ); Bugzilla::Hook::process('install_filesystem', { @@ -526,9 +540,18 @@ sub _convert_single_file_skins { # delete all automatically generated css files to force recreation at the next # request. sub _remove_dynamic_css_files { - foreach my $file (glob(bz_locations()->{skinsdir} . '/assets/*.css')) { + foreach my $file (glob(bz_locations()->{assetsdir} . '/*.css')) { unlink($file); } + + # remove old skins/assets directory + my $old_path = bz_locations()->{skinsdir} . '/assets'; + if (-d $old_path) { + foreach my $file (glob("$old_path/*.css")) { + unlink($file); + } + rmdir($old_path); + } } sub create_htaccess { -- cgit v1.2.3-24-g4f1b