*** wiki.cgi.ORIG Tue Oct 25 12:17:21 2005
--- wiki.cgi Thu Nov 3 04:23:40 2005
***************
*** 1409,1414 ****
--- 1409,1417 ----
$result .= ' | <a href="http://sunir.org/apps/meta.pl?' . $id . '">'
. T('Search MetaWiki') . '</a>';
}
+ # 2005-10-29 JK
+ $result .= Ts(' | login=%s', ($UserID > 199 ? $UserData{'username'}."($UserID)" : '<anonymous>'));
+
if ($Section{'revision'} > 0) {
$result .= '<br>';
if ($rev eq '') { # Only for most current rev
***************
*** 3620,3645 ****
print &GetHeader('', T('Login'), "");
print &GetFormStart();
print &GetHiddenValue('enter_login', 1), "\n";
! print '<br>', T('User ID number:'), ' ',
$q->textfield(-name=>'p_userid', -value=>'',
-size=>15, -maxlength=>50);
print '<br>', T('Password:'), ' ',
$q->password_field(-name=>'p_password', -value=>'',
-size=>15, -maxlength=>50);
print '<br>', $q->submit(-name=>'Login', -value=>T('Login')), "\n";
print "<hr class=wikilinefooter>\n";
print &GetGotoBar('');
- print $q->endform;
print &GetMinimumFooter();
}
sub DoLogin {
my ($uid, $password, $success);
$success = 0;
$uid = &GetParam("p_userid", "");
$uid =~ s/\D//g;
! $password = &GetParam("p_password", "");
if (($uid > 199) && ($password ne "") && ($password ne "*")) {
$UserID = $uid;
&LoadUserData();
--- 3623,3678 ----
print &GetHeader('', T('Login'), "");
print &GetFormStart();
print &GetHiddenValue('enter_login', 1), "\n";
! # 2005-10-29, 2005-11-02 JK
! print '<br>', T('User Name:'), ' ',
! $q->textfield(-name=>'p_username', -value=>'',
! -size=>20, -maxlength=>50);
! print ' or ', T('User ID number:'), ' ',
$q->textfield(-name=>'p_userid', -value=>'',
-size=>15, -maxlength=>50);
print '<br>', T('Password:'), ' ',
$q->password_field(-name=>'p_password', -value=>'',
-size=>15, -maxlength=>50);
print '<br>', $q->submit(-name=>'Login', -value=>T('Login')), "\n";
+ print $q->endform;
+ print &GetFormStart();
+ print &GetHiddenValue('enter_login', 1), "\n";
+ print '<br>', $q->submit(-name=>'Login', -value=>T('Logout')), "\n";
+ print $q->endform;
print "<hr class=wikilinefooter>\n";
print &GetGotoBar('');
print &GetMinimumFooter();
}
sub DoLogin {
my ($uid, $password, $success);
+ my ($found, %userattr, $status, $data);
$success = 0;
+ $password = &GetParam("p_password", "");
+
+ # 2005-10-29 JK
+ my $uname = &GetParam("p_username", "");
+ if ($uname) {
+ foreach my $userdata (glob "$UserDir/?/*.db") {
+ ($status, $data) = &ReadFile($userdata);
+ if ($status) {
+ %userattr = split(/$FS1/, $data, -1); # -1 keeps trailing null fields
+ if ($userattr{'username'} eq $uname) {
+ $uid = $userattr{'id'};
+ if (defined($userattr{'password'}) &&
+ ($userattr{'password'} eq $password)) {
+ $found=1;
+ last;
+ }
+ }
+ }
+ }
+ }
+ if (! $found ) {
$uid = &GetParam("p_userid", "");
$uid =~ s/\D//g;
! }
if (($uid > 199) && ($password ne "") && ($password ne "*")) {
$UserID = $uid;
&LoadUserData();
***************
*** 3653,3663 ****
}
}
}
- print &GetHeader('', T('Login Results'), '');
if ($success) {
! print Ts('Login for user ID %s complete.', $uid);
! } else {
! print Ts('Login for user ID %s failed.', $uid);
}
print "<hr class=wikilinefooter>\n";
print &GetGotoBar('');
--- 3686,3709 ----
}
}
}
if ($success) {
! print &GetHeader('', T('Login Results'), '');
! print Ts('Login for user %s ', $UserData{'username'});
! print Ts('with ID %s complete.', $uid);
! } else {
! # logout if neither user ID nor username is given
! if (! $uid && ! $uname) {
! $SetCookie{'id'} = 0;
! $SetCookie{'randkey'} = 0;
! $SetCookie{'rev'} = 1;
! print &GetHeader('', T('Logout'), '');
! print T('Logged out.');
! }
! else {
! print &GetHeader('', T('Login Results'), '');
! print Ts('Login for user ID %s failed.', $uid);
! print "UserID=$uid \n";
! }
}
print "<hr class=wikilinefooter>\n";
print &GetGotoBar('');