#!/usr/bin/perl
&ReadConfig
();
my
%engines
;
tie
%engines
,
'HTML::Merge::Engine'
;
my
$engine
=
$engines
{
""
};
my
$action
= param(
'action'
);
my
$code
= UNIVERSAL::can(__PACKAGE__,
"do$action"
);
$user
= param(
'user'
);
do
"bk_lib.pl"
;
&backend_header
;
unless
(
$user
) {
print
"No user selected.\n"
;
&backend_footer
;
exit
;
}
&$code
if
$code
;
print
<<HTML;
<B>Managing user <U>$user</U></B>:<BR><BR>
HTML
my
(
$name
,
$tag
) =
$engine
->GetUserName(
$user
);
openform(
'EDIT'
,
'user'
);
print
<<HTML;
Name: <INPUT NAME="name" VALUE="$name"><BR>
Tag: <INPUT NAME="tag" VALUE="$tag"><BR>
<INPUT TYPE=SUBMIT VALUE="Update details">
</FORM>
<FORM ACTION="$ENV{'SCRIPT_NAME'}" onSubmit="return confirm_it();"
NAME="form" METHOD=POST>
<INPUT NAME="user" VALUE="$user" TYPE=HIDDEN>
<INPUT NAME="action" VALUE="CHPASS" TYPE=HIDDEN>
HTML
HTML::Merge::Development::Transfer;
print
<<HTML;
Password: <INPUT NAME="pass" TYPE=PASSWORD><BR>
Password (again): <INPUT NAME="pass2" TYPE=PASSWORD><BR>
<INPUT TYPE=SUBMIT VALUE="Change password">
</FORM>
<SCRIPT>
<!--
function confirm_it() {
var form = document.form;
if (form.pass.value != form.pass2.value) {
alert("Password mismatch");
return false;
}
return true;
}
// -->
</SCRIPT>
<HR>
<A HREF="users.pl?$extra">Back to users</A>
HTML
&backend_footer
;
sub
doEDIT {
my
(
$name
,
$tag
) = (param(
'name'
), param(
'tag'
));
eval
{
$engine
->SetDBField(
'user'
=>
$user
,
'description'
=>
$name
);
$engine
->SetDBField(
'user'
=>
$user
,
'tag'
=>
$tag
);
};
if
($@) {
print
"Error: $@<BR>\n"
;
return
;
}
print
"User $user updated.<BR>\n"
;
}
sub
doCHPASS {
eval
{
$engine
->AddUser(
$user
, param(
'pass'
));
};
unless
($@) {
print
"User $user updated.<BR>\n"
;
}
else
{
print
"Error: $@<BR>\n"
;
}
}