Commit ca65cbd9 authored by Leigh B Stoller's avatar Leigh B Stoller

Hide the image path selection box for mere users, and force paths

from directory to filename when IMAGEDIRECTORIES is turned off, or
not admin|feature enabled.
parent 64c34d7a
......@@ -56,6 +56,7 @@ my $TBPROJ_DIR = "@PROJROOT_DIR@";
my $CREATEIMAGE = "$TB/bin/create_image";
my $CLONEIMAGE = "$TB/sbin/clone_image";
my $RUNSONXEN = "$TB/sbin/runsonxen";
my $DOIMAGEDIRS = @IMAGEDIRECTORIES@;
#
# Untaint the path
......@@ -79,6 +80,7 @@ use Project;
use Image;
use OSinfo;
use Node;
use EmulabFeatures;
# Protos
sub fatal($);
......@@ -552,6 +554,17 @@ elsif (! $isadmin) {
UserError("Path: Invalid Path");
}
}
#
# Image path from the web interface does not respect the
# IMAGEDIRECTORIES feature or config variable. We fix it up here.
#
if ($newimageid_args{"path"} =~ /\/$/ &&
(! $DOIMAGEDIRS ||
! ($isadmin ||
EmulabFeatures->FeatureEnabled("ImageDirectories",
$this_user, $group)))) {
$newimageid_args{"path"} =~ s/\/$/.ndz/;
}
if ($newimageid_args{"path"} =~ /\/$/) {
if (-e $newimageid_args{"path"} && ! -d $newimageid_args{"path"}) {
UserError("Path: invalid path, it should be a directory");
......
......@@ -483,7 +483,8 @@ function SPITFORM($formfields, $errors)
#
# Path to image.
#
echo "<tr>
$style = ($isadmin ? "" : "style='display:none;'");
echo "<tr $style>
<td>Directory for Image:<br>
(must reside in $TBPROJ_DIR)</td>
<td class=left>
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment