mirror of
https://github.com/webmin/webmin.git
synced 2025-07-29 11:50:54 +00:00
206 lines
7.8 KiB
Perl
Executable File
206 lines
7.8 KiB
Perl
Executable File
#!/usr/local/bin/perl
|
|
# edit_group.cgi
|
|
# Display a form for editing or creating a group
|
|
|
|
require './user-lib.pl';
|
|
&ReadParse();
|
|
$n = $in{'num'};
|
|
%access = &get_module_acl();
|
|
if ($n eq "") {
|
|
$access{'gcreate'}==1 || &error($text{'gedit_ecreate'});
|
|
&ui_print_header(undef, $text{'gedit_title2'}, "", "create_group");
|
|
}
|
|
else {
|
|
@glist = &list_groups();
|
|
%group = %{$glist[$n]};
|
|
&can_edit_group(\%access, \%group) ||
|
|
&error($text{'gedit_eedit'});
|
|
&ui_print_header(undef, $text{'gedit_title'}, "", "edit_group");
|
|
}
|
|
|
|
&build_group_used(\%gused);
|
|
|
|
print "<form action=\"save_group.cgi\" method=post>\n";
|
|
if ($n ne "") {
|
|
print "<input type=hidden name=num value=\"$n\">\n";
|
|
}
|
|
print "<table border width=100%>\n";
|
|
print "<tr $tb> <td><b>$text{'gedit_details'}</b></td> </tr>\n";
|
|
print "<tr $cb> <td><table width=100%>\n";
|
|
|
|
print "<tr> <td valign=top>",&hlink("<b>$text{'gedit_group'}</b>","ggroup"),
|
|
"</td>\n";
|
|
if ($n eq "") {
|
|
print "<td valign=top><input name=group size=10></td>\n";
|
|
}
|
|
else {
|
|
print "<td valign=top><tt>$group{'group'}</tt></td>\n";
|
|
}
|
|
|
|
print "<td valign=middle>",&hlink("<b>$text{'gedit_gid'}</b>","ggid"),"</td>\n";
|
|
if ($n eq "") {
|
|
print "<td>\n";
|
|
$defgid = &allocate_gid(\%gused);
|
|
|
|
if ( $access{'calcgid'} && $access{'autogid'} && $access{'usergid'} ) {
|
|
# Show options for calculated, auto-incremented and user entered GID
|
|
printf "<input type=radio name=gid_def value=1 %s> %s\n",
|
|
$config{'gid_mode'} eq '1' ? "checked" : "",
|
|
$text{'gedit_gid_def'};
|
|
printf "<input type=radio name=gid_def value=2 %s> %s\n",
|
|
$config{'gid_mode'} eq '2' ? "checked" : "",
|
|
$text{'gedit_gid_calc'};
|
|
printf "<input type=radio name=gid_def value=0 %s> %s\n",
|
|
$config{'gid_mode'} eq '0' ? "checked" : "",
|
|
"<input name=gid size=10 value='$defgid'>";
|
|
}
|
|
|
|
if ( $access{'calcgid'} && $access{'autogid'} && !$access{'usergid'} ) {
|
|
# Show options for calculated and auto-incremented GID
|
|
printf "<input type=radio name=gid_def value=1 %s> %s\n",
|
|
$config{'gid_mode'} eq '1' ? "checked" : "",
|
|
$text{'gedit_gid_def'};
|
|
printf "<input type=radio name=gid_def value=2 %s> %s\n",
|
|
$config{'gid_mode'} eq '2' ? "checked" : "",
|
|
$text{'gedit_gid_calc'};
|
|
}
|
|
|
|
if ( $access{'calcgid'} && !$access{'autogid'} && $access{'usergid'} ) {
|
|
# Show options for calculated and user entered GID
|
|
printf "<input type=radio name=gid_def value=2 %s> %s\n",
|
|
$config{'gid_mode'} eq '2' ? "checked" : "",
|
|
$text{'gedit_gid_calc'};
|
|
printf "<input type=radio name=gid_def value=0 %s> %s\n",
|
|
$config{'gid_mode'} eq '0' ? "checked" : "",
|
|
"<input name=gid size=10 value='$defgid'>";
|
|
}
|
|
|
|
if ( !$access{'calcgid'} && $access{'autogid'} && $access{'usergid'} ) {
|
|
# Show options for auto-incremented and user entered GID
|
|
printf "<input type=radio name=gid_def value=1 %s> %s\n",
|
|
$config{'gid_mode'} eq '1' ? "checked" : "",
|
|
$text{'gedit_gid_def'};
|
|
printf "<input type=radio name=gid_def value=0 %s> %s\n",
|
|
$config{'gid_mode'} eq '0' ? "checked" : "",
|
|
"<input name=gid size=10 value='$defgid'>";
|
|
}
|
|
|
|
if ( $access{'calcgid'} && !$access{'autogid'} && !$access{'usergid'} ) {
|
|
# Hidden field for calculated GID
|
|
print "<input type=hidden name=gid_def value=2>";
|
|
print "$text{'gedit_gid_calc'} from Berkeley style cksum\n";
|
|
}
|
|
|
|
if ( !$access{'calcgid'} && $access{'autogid'} && !$access{'usergid'} ) {
|
|
# Hidden field for auto-incremented GID
|
|
print "<input type=hidden name=gid_def value=1>";
|
|
print "$text{'gedit_gid_calc'}\n";
|
|
}
|
|
|
|
if ( !$access{'calcgid'} && !$access{'autogid'} && $access{'usergid'} ) {
|
|
# Show field for user entered GID
|
|
print "<input type=hidden name=gid_def value=0>";
|
|
print "GID: <input name=gid size=10 value='$defgid'>\n";
|
|
}
|
|
|
|
if ( !$access{'calcgid'} && !$access{'autogid'} && !$access{'usergid'} ) {
|
|
if ( $config{'gid_mode'} eq '0' ) {
|
|
print "<input type=hidden name=gid_def value=0>";
|
|
print "GID: <input name=gid size=10 value='$defgid'>\n";
|
|
} else {
|
|
print "<input type=hidden name=gid_def value=$config{'gid_mode'}>";
|
|
print "$text{'gedit_gid_def'}\n" if ( $config{'gid_mode'} eq '1' );
|
|
print "$text{'gedit_gid_calc'}\n" if ( $config{'gid_mode'} eq '2' );
|
|
}
|
|
}
|
|
print "</td></tr>\n";
|
|
}
|
|
else {
|
|
print "<td valign=top><input name=gid size=10 ",
|
|
"value=\"$group{'gid'}\"></td>\n";
|
|
}
|
|
print "</tr>\n";
|
|
|
|
print "<tr> <td valign=top>",&hlink("<b>$text{'pass'}</b>","gpasswd"),"</td>\n";
|
|
printf "<td valign=top><input type=radio name=passmode value=0 %s> $text{'none2'}<br>\n",
|
|
$group{'pass'} eq "" ? "checked" : "";
|
|
printf "<input type=radio name=passmode value=1 %s> $text{'encrypted'}\n",
|
|
$group{'pass'} eq "" ? "" : "checked";
|
|
print "<input name=encpass size=13 value=\"$group{'pass'}\"><br>\n";
|
|
print "<input type=radio name=passmode value=2 %s> $text{'clear'}\n";
|
|
print "<input name=pass size=15></td>\n";
|
|
|
|
# Member chooser
|
|
local $w = 500;
|
|
local $h = 200;
|
|
if ($gconfig{'db_sizeusers'}) {
|
|
($w, $h) = split(/x/, $gconfig{'db_sizeusers'});
|
|
}
|
|
print "<td valign=top>",&hlink("<b>$text{'gedit_members'}</b>","gmembers"),
|
|
"</td>\n";
|
|
print "<td><table><tr><td><textarea wrap=auto name=members rows=5 cols=10>",
|
|
join("\n", split(/,/ , $group{'members'})),"</textarea></td>\n";
|
|
print "<td valign=top><input type=button onClick='ifield = document.forms[0].members; chooser = window.open(\"my_user_chooser.cgi?multi=1&user=\"+escape(ifield.value), \"chooser\", \"toolbar=no,menubar=no,scrollbars=yes,width=$w,height=$h\"); chooser.ifield = ifield; window.ifield = ifield' value=\"...\"></td></tr></table></td> </tr>\n";
|
|
print "</table></td></tr></table><p>\n";
|
|
|
|
if ($n ne "") {
|
|
if ($access{'chgid'} == 1 || $access{'mothers'} == 1) {
|
|
print "<table border width=100%>\n";
|
|
print "<tr $tb> <td><b>$text{'onsave'}</b></td> </tr>\n";
|
|
print "<tr $cb> <td><table>\n";
|
|
|
|
if ($access{'chgid'} == 1) {
|
|
print "<tr> <td>",&hlink($text{'chgid'},"gchgid"),"</td>\n";
|
|
print "<td><input type=radio name=chgid value=0 checked> $text{'no'}</td>\n";
|
|
print "<td><input type=radio name=chgid value=1> $text{'gedit_homedirs'}</td>\n";
|
|
print "<td><input type=radio name=chgid value=2> $text{'gedit_allfiles'}</td> </tr>\n";
|
|
}
|
|
|
|
if ($access{'mothers'} == 1) {
|
|
print "<tr> <td>",&hlink($text{'gedit_mothers'},"others"),"</td>\n";
|
|
printf "<td><input type=radio name=others value=1 %s> $text{'yes'}</td>\n",
|
|
$config{'default_other'} ? "checked" : "";
|
|
printf "<td><input type=radio name=others value=0 %s> $text{'no'}</td> </tr>\n",
|
|
$config{'default_other'} ? "" : "checked";
|
|
}
|
|
|
|
print "</table></td> </tr></table><p>\n";
|
|
}
|
|
}
|
|
else {
|
|
if ($access{'cothers'} == 1) {
|
|
print "<table border width=100%>\n";
|
|
print "<tr $tb> <td><b>$text{'uedit_oncreate'}</b></td> </tr>\n";
|
|
print "<tr $cb> <td><table>\n";
|
|
|
|
if ($access{'cothers'} == 1) {
|
|
print "<tr> <td>",&hlink($text{'gedit_cothers'},"others"),"</td>\n";
|
|
printf "<td><input type=radio name=others value=1 %s> $text{'yes'}</td>\n",
|
|
$config{'default_other'} ? "checked" : "";
|
|
|
|
printf "<td><input type=radio name=others value=0 %s> $text{'no'}</td> </tr>\n",
|
|
$config{'default_other'} ? "" : "checked";
|
|
}
|
|
|
|
print "</table></td> </tr></table><p>\n";
|
|
}
|
|
}
|
|
|
|
if ($n ne "") {
|
|
print "<table width=100%>\n";
|
|
print "<tr> <td><input type=submit value=\"$text{'save'}\"></td>\n";
|
|
|
|
if ($access{'gdelete'}) {
|
|
print "</form><form action=\"delete_group.cgi\">\n";
|
|
print "<input type=hidden name=num value=\"$n\">\n";
|
|
print "<td align=right><input type=submit value=\"$text{'delete'}\"></td> </tr>\n";
|
|
}
|
|
print "</form></table><p>\n";
|
|
}
|
|
else {
|
|
print "<input type=submit value=\"$text{'create'}\"></form><p>\n";
|
|
}
|
|
|
|
&ui_print_footer("", $text{'index_return'});
|
|
|