Improve detection of state where Usermin config dir exists, but root does not
authorJamie Cameron <jcameron@webmin.com>
Thu, 2 Jun 2011 17:25:22 +0000 (10:25 -0700)
committerJamie Cameron <jcameron@webmin.com>
Thu, 2 Jun 2011 17:25:22 +0000 (10:25 -0700)
http://www.virtualmin.com/node/18259

usermin/index.cgi
usermin/install_check.pl
usermin/lang/en

index b2f90a0..78d8252 100755 (executable)
@@ -37,13 +37,22 @@ elsif (&same_file($config{'usermin_dir'}, $config_directory)) {
        &ui_print_footer("/", $text{'index'});
        exit;
        }
+&get_usermin_miniserv_config(\%miniserv);
+if (!$miniserv{'root'} && !-d $miniserv{'root'}) {
+       &ui_print_header(undef, $text{'index_title'}, "", undef, 1, 1);
+
+       print "<p>",&text('index_eroot', "<tt>$config{'usermin_dir'}</tt>",
+                         "<tt>$miniserv{'root'}</tt>"),"<p>\n";
+
+       &ui_print_footer("/", $text{'index'});
+       exit;
+       }
 
 $ver = &get_usermin_version();
 &ui_print_header(undef, $text{'index_title'}, "", undef, 1, 1, 0,
        &help_search_link("usermin", "google"), undef, undef,
        &text('index_version', $ver));
 
-&get_usermin_miniserv_config(\%miniserv);
 @links = ( "edit_access.cgi",
           "edit_bind.cgi",
           "edit_ui.cgi",
index 1081da1..cb26030 100755 (executable)
@@ -10,7 +10,11 @@ sub is_installed
 {
 if (-r "$config{'usermin_dir'}/miniserv.conf" &&
     !&same_file($config{'usermin_dir'}, $config_directory)) {
-       return $_[0] ? 2 : 1;
+       my %miniserv;
+       &get_usermin_miniserv_config(\%miniserv);
+       if ($miniserv{'root'} && -d $miniserv{'root'}) {
+               return $_[0] ? 2 : 1;
+               }
        }
 return 0;
 }
index 54e33f5..fcca8eb 100644 (file)
@@ -13,6 +13,7 @@ index_rpm=Install Usermin RPM package
 index_tgz=Install Usermin tar.gz package
 index_deb=Install Usermin Debian package
 index_esame=The Usermin configuration directory $1 set on the <a href='$2'>module configuration</a> page is the same as Webmin's directory, which is not correct.
+index_eroot=The Usermin configuration directory $1 exists, but the program root directory $2 that it refers to does not! You should manually download and re-install Usermin.
 index_restart=Restart Usermin
 index_restartmsg=Click this button to re-start the Usermin server process. This may be necessary if you have recently upgraded Perl.