Changeset 83 for trunk/DNSDB.pm
- Timestamp:
- 02/25/11 17:56:25 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/DNSDB.pm
r78 r83 30 30 &addDomain &delDomain &domainName 31 31 &addGroup &delGroup &getChildren &groupName 32 &addUser & delUser &userFullName &userStatus32 &addUser &updateUser &delUser &userFullName &userStatus &getUserData 33 33 &getSOA &getRecLine &getDomRecs 34 34 &addRec &updateRec &delRec … … 45 45 &addDomain &delDomain &domainName 46 46 &addGroup &delGroup &getChildren &groupName 47 &addUser & delUser &userFullName &userStatus47 &addUser &updateUser &delUser &userFullName &userStatus &getUserData 48 48 &getSOA &getRecLine &getDomRecs 49 49 &addRec &updateRec &delRec … … 753 753 754 754 755 ## DNSDB:: updateUser() 756 # 757 sub updateUser { 758 my $dbh = shift; 759 my $uid = shift; 760 my $username = shift; 761 my $group = shift; 762 my $pass = shift; 763 my $state = shift; 764 my $type = shift; 765 my $fname = shift || $username; 766 my $lname = shift || ''; 767 my $phone = shift || ''; # not going format-check 768 769 my $failmsg = ''; 770 771 # Allow transactions, and raise an exception on errors so we can catch it later. 772 # Use local to make sure these get "reset" properly on exiting this block 773 local $dbh->{AutoCommit} = 0; 774 local $dbh->{RaiseError} = 1; 775 776 my $sth; 777 778 # Password can be left blank; if so we assume there's one on file. 779 # Actual blank passwords are bad, mm'kay? 780 if (!$pass) { 781 $sth = $dbh->prepare("SELECT password FROM users WHERE user_id=?"); 782 $sth->execute($uid); 783 ($pass) = $sth->fetchrow_array; 784 } else { 785 $pass = unix_md5_crypt($pass); 786 } 787 788 eval { 789 my $sth = $dbh->prepare(q( 790 UPDATE users 791 SET username=?, password=?, firstname=?, lastname=?, phone=?, type=?, status=? 792 WHERE user_id=? 793 ) 794 ); 795 $sth->execute($username, $pass, $fname, $lname, $phone, $type, $state, $uid); 796 $dbh->commit; 797 }; 798 if ($@) { 799 my $msg = $@; 800 eval { $dbh->rollback; }; 801 return ('FAIL',"$failmsg: $msg"); 802 } else { 803 return ('OK','OK'); 804 } 805 } # end updateUser() 806 807 755 808 ## DNSDB::delUser() 756 809 # … … 826 879 return $status; 827 880 } # end userStatus() 881 882 883 ## DNSDB::getUserData() 884 # Get misc user data for display 885 sub getUserData { 886 my $dbh = shift; 887 my $uid = shift; 888 889 my $sth = $dbh->prepare("SELECT group_id,username,firstname,lastname,phone,type,status,inherit_perm ". 890 "FROM users WHERE user_id=?"); 891 $sth->execute($uid); 892 return $sth->fetchrow_hashref(); 893 894 } # end getUserData() 828 895 829 896
Note:
See TracChangeset
for help on using the changeset viewer.