Removed /usr/local from CDPATH
[clearscm.git] / maps / bin / updateprofile.cgi
1 #!/usr/bin/perl
2 ################################################################################
3 #
4 # File:         $RCSfile: updateprofile.cgi,v $
5 # Revision:     $Revision: 1.1 $
6 # Description:  Update the users profile
7 # Author:       Andrew@DeFaria.com
8 # Created:      Mon Jan 16 20:25:32 PST 2006
9 # Modified:     $Date: 2013/06/12 14:05:47 $
10 # Language:     perl
11 #
12 # (c) Copyright 2000-2006, Andrew@DeFaria.com, all rights reserved.
13 #
14 ################################################################################
15 use strict;
16 use warnings;
17
18 use FindBin;
19
20 local $0 = $FindBin::Script;
21
22 use lib "$FindBin::Bin/../lib";
23 use lib "$FindBin::Bin/../../lib";
24
25 use MAPS;
26 use MAPSWeb;
27
28 use CGI qw (:standard);
29
30 my ($userid, $Userid);
31 my $name              = param 'fullname';
32 my $email             = param 'email';
33 my $old_password      = param 'old_password';
34 my $new_password      = param 'new_password';
35 my $repeated_password = param 'repeated_password';
36 my $mapspop           = param 'MAPSPOP';
37 my $history           = param 'history';
38 my $days              = param 'days';
39 my $dates             = param 'dates';
40 my $tag_and_forward   = param 'tag_and_forward';
41
42 sub Body {
43   my %options = (
44     MAPSPOP       => $mapspop,
45     History       => $history,
46     Page          => $days,
47     Dates         => $dates,
48     'Tag&Forward' => $tag_and_forward,
49   );
50
51   if ($old_password) {
52     my $dbpassword             = UserExists($userid);
53     my $encrypted_old_password = Encrypt($old_password, $userid);
54
55     if ($dbpassword ne $encrypted_old_password) {
56       DisplayError 'Your old password was not correct!';
57     } # if
58   } # if
59
60   if ($new_password) {
61     unless ($old_password) {
62       DisplayError "You must provide your old password in order to change it";
63     } else {
64       if ($repeated_password ne $new_password) {
65         DisplayError "Your new password does not match your repeat password";
66       } else {
67         $new_password = Encrypt($new_password, $userid);
68       } # if
69     } # unless
70   } # if
71
72   if (UpdateUser(
73     userid   => $userid,
74     name     => $name,
75     email    => $email,
76     password => $new_password,
77   ) != 0) {
78     DisplayError "Unable to update user record for user $userid";
79   } # if
80
81   if (UpdateUserOptions($userid, %options) != 0) {
82     DisplayError "Unable to update user options for user $userid";
83   } # if
84
85   print h2 {-class => 'header',
86             -align => 'center'},
87     "${Userid}'s profile has been updated";
88
89   return;
90 } # Body
91
92 $userid = Heading (
93   'getcookie',
94   '',
95   'Update Profile',
96   "Update user's profile",
97 );
98
99 $userid //= $ENV{USER};
100
101 $Userid = ucfirst $userid;
102
103 SetContext($userid);
104 NavigationBar($userid);
105
106 Body;
107
108 Footing;
109
110 exit;