Fixed rule
[clearscm.git] / maps / bin / updateprofile.cgi
index a2f9a82..2dc9146 100755 (executable)
@@ -2,8 +2,8 @@
 ################################################################################
 #
 # File:         $RCSfile: updateprofile.cgi,v $
-# Revision:    $Revision: 1.1 $
-# Description: Update the users profile
+# Revision:     $Revision: 1.1 $
+# Description:  Update the users profile
 # Author:       Andrew@DeFaria.com
 # Created:      Mon Jan 16 20:25:32 PST 2006
 # Modified:     $Date: 2013/06/12 14:05:47 $
@@ -16,67 +16,95 @@ use strict;
 use warnings;
 
 use FindBin;
-$0 = $FindBin::Script;
 
-use lib $FindBin::Bin;
+local $0 = $FindBin::Script;
+
+use lib "$FindBin::Bin/../lib";
+use lib "$FindBin::Bin/../../lib";
 
 use MAPS;
 use MAPSWeb;
 
 use CGI qw (:standard);
 
-my $userid;
-my $Userid;
-my $fullname           = param ("fullname");
-my $email              = param ("email");
-my $old_password       = param ("old_password");
-my $new_password       = param ("new_password");
-my $repeated_password  = param ("repeated_password");
-my $mapspop            = param ("MAPSPOP");
-my $history            = param ("history");
-my $days               = param ("days");
-my $dates              = param ("dates");
-my $tag_and_forward    = param ("tag_and_forward");
+my ($userid, $Userid);
+my $name              = param 'fullname';
+my $email             = param 'email';
+my $old_password      = param 'old_password';
+my $new_password      = param 'new_password';
+my $repeated_password = param 'repeated_password';
+my $mapspop           = param 'MAPSPOP';
+my $history           = param 'history';
+my $days              = param 'days';
+my $dates             = param 'dates';
+my $tag_and_forward   = param 'tag_and_forward';
 
 sub Body {
   my %options = (
-    "MAPSPOP"          => $mapspop,
-    "History"          => $history,
-    "Page"             => $days,
-    "Dates"            => $dates,
-    "Tag&Forward"      => $tag_and_forward
+    MAPSPOP       => $mapspop,
+    History       => $history,
+    Page          => $days,
+    Dates         => $dates,
+    'Tag&Forward' => $tag_and_forward,
   );
 
-  if (defined $old_password && $old_password ne "") {
-    my $dbpassword             = UserExists $userid;
-    my $encrypted_old_password = Encrypt $old_password, $userid;
+  if ($old_password) {
+    my $dbpassword             = UserExists($userid);
+    my $encrypted_old_password = Encrypt($old_password, $userid);
 
     if ($dbpassword ne $encrypted_old_password) {
-      DisplayError "Your old password was not correct!";
+      DisplayError 'Your old password was not correct!';
     } # if
   } # if
 
-  if (UpdateUser ($userid, $fullname, $email, $new_password) != 0) {
+  if ($new_password) {
+    unless ($old_password) {
+      DisplayError "You must provide your old password in order to change it";
+    } else {
+      if ($repeated_password ne $new_password) {
+        DisplayError "Your new password does not match your repeat password";
+      } else {
+        $new_password = Encrypt($new_password, $userid);
+      } # if
+    } # unless
+  } # if
+
+  if (UpdateUser(
+    userid   => $userid,
+    name     => $name,
+    email    => $email,
+    password => $new_password,
+  ) != 0) {
     DisplayError "Unable to update user record for user $userid";
   } # if
 
-  if (UpdateUserOptions ($userid, %options) != 0) {
+  if (UpdateUserOptions($userid, %options) != 0) {
     DisplayError "Unable to update user options for user $userid";
   } # if
 
-  print h2 {-class     => "header",
-           -align      => "center"},
+  print h2 {-class => 'header',
+            -align => 'center'},
     "${Userid}'s profile has been updated";
+
+  return;
 } # Body
 
 $userid = Heading (
-  "getcookie",
-  "",
-  "Update Profile",
-  "Update user's profile"
+  'getcookie',
+  '',
+  'Update Profile',
+  "Update user's profile",
 );
+
+$userid //= $ENV{USER};
+
 $Userid = ucfirst $userid;
-SetContext $userid;
-NavigationBar $userid;
+
+SetContext($userid);
+NavigationBar($userid);
+
 Body;
+
 Footing;
+
+exit;
\ No newline at end of file