[Home]Projects/Usemod10LoginLogout

JKWiki | Projects | RecentChanges | New Login | Login
This page is read-only | View other revisions | View current revision
Showing revision 1
*** 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('');


JKWiki | Projects | RecentChanges | New Login | Login
This page is read-only | View other revisions | View current revision | login=&lt;anonymous&gt;
Edited November 3, 2005 4:44 am by JohannKlasek (diff)
Search: