Changeset 294 for trunk/DNSDB.pm
- Timestamp:
- 03/29/12 13:22:59 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/DNSDB.pm
r293 r294 1115 1115 my $inherit = shift || 0; 1116 1116 1117 my $ failmsg = '';1117 my $resultmsg = ''; 1118 1118 1119 1119 # see if we're switching from inherited to custom. for bonus points, … … 1121 1121 # to set/alter custom perms, and both if we're switching from custom to 1122 1122 # inherited. 1123 my $sth = $dbh->prepare("SELECT (u.permission_id=g.permission_id) AS was_inherited,u.permission_id,g.permission_id". 1123 my $sth = $dbh->prepare("SELECT (u.permission_id=g.permission_id) AS was_inherited,u.permission_id,g.permission_id,". 1124 ($type eq 'user' ? 'u.group_id,u.username' : 'u.parent_group_id,u.group_name'). 1124 1125 " FROM ".($type eq 'user' ? 'users' : 'groups')." u ". 1125 1126 " JOIN groups g ON u.".($type eq 'user' ? '' : 'parent_')."group_id=g.group_id ". … … 1127 1128 $sth->execute($id); 1128 1129 1129 my ($wasinherited,$permid,$parpermid ) = $sth->fetchrow_array;1130 my ($wasinherited,$permid,$parpermid,$parid,$name) = $sth->fetchrow_array; 1130 1131 1131 1132 # hack phtoui … … 1168 1169 } # (inherited->)? custom 1169 1170 1171 if ($type eq 'user') { 1172 $resultmsg = "Updated permissions for user $name"; 1173 } else { 1174 $resultmsg = "Updated default permissions for group $name"; 1175 } 1176 _log($dbh, (group_id => ($type eq 'user' ? $parid : $id), entry => $resultmsg)); 1170 1177 $dbh->commit; 1171 1178 }; # end eval … … 1173 1180 my $msg = $@; 1174 1181 eval { $dbh->rollback; }; 1175 return ('FAIL',"$failmsg: $msg ($permid)"); 1176 } else { 1177 return ('OK',$permid); 1178 } 1179 1182 return ('FAIL',"Error changing permissions: $msg"); 1183 } 1184 1185 return ('OK',$resultmsg); 1180 1186 } # end changePermissions() 1181 1187 … … 2006 2012 local $dbh->{RaiseError} = 1; 2007 2013 2008 my $failmsg = '';2009 2010 2014 # Wrap all the SQL in a transaction 2011 2015 eval { … … 2059 2063 ##fixme: add another table to hold name/email for log table? 2060 2064 2065 _log($dbh, (group_id => $group, entry => "Added user $username ($fname $lname)")); 2061 2066 # once we get here, we should have suceeded. 2062 2067 $dbh->commit; … … 2066 2071 my $msg = $@; 2067 2072 eval { $dbh->rollback; }; 2068 return ('FAIL',$msg." $failmsg"); 2069 } else { 2070 return ('OK',$user_id); 2071 } 2073 if ($config{log_failures}) { 2074 _log($dbh, (group_id => $group, entry => "Error adding user $username: $msg")); 2075 $dbh->commit; # since we enabled transactions earlier 2076 } 2077 return ('FAIL',"Error adding user $username: $msg"); 2078 } 2079 2080 return ('OK',"User $username ($fname $lname) added"); 2072 2081 } # end addUser 2073 2082 … … 2112 2121 my $phone = shift || ''; # not going format-check 2113 2122 2114 my $ failmsg = '';2123 my $resultmsg = ''; 2115 2124 2116 2125 # Allow transactions, and raise an exception on errors so we can catch it later. … … 2124 2133 # Actual blank passwords are bad, mm'kay? 2125 2134 if (!$pass) { 2126 $sth = $dbh->prepare("SELECT password FROM users WHERE user_id=?"); 2127 $sth->execute($uid); 2128 ($pass) = $sth->fetchrow_array; 2135 ($pass) = $dbh->selectrow_array("SELECT password FROM users WHERE user_id=?", undef, ($uid)); 2129 2136 } else { 2130 2137 $pass = unix_md5_crypt($pass); … … 2132 2139 2133 2140 eval { 2134 my $sth = $dbh->prepare(q( 2135 UPDATE users 2136 SET username=?, password=?, firstname=?, lastname=?, phone=?, type=?, status=? 2137 WHERE user_id=? 2138 ) 2139 ); 2140 $sth->execute($username, $pass, $fname, $lname, $phone, $type, $state, $uid); 2141 $dbh->do("UPDATE users SET username=?, password=?, firstname=?, lastname=?, phone=?, type=?, status=?". 2142 " WHERE user_id=?", undef, ($username, $pass, $fname, $lname, $phone, $type, $state, $uid)); 2143 $resultmsg = "Updated user info for $username ($fname $lname)"; 2144 _log($dbh, group_id => $group, entry => $resultmsg); 2141 2145 $dbh->commit; 2142 2146 }; … … 2144 2148 my $msg = $@; 2145 2149 eval { $dbh->rollback; }; 2146 return ('FAIL',"$failmsg: $msg"); 2147 } else { 2148 return ('OK','OK'); 2149 } 2150 if ($config{log_failures}) { 2151 _log($dbh, (group_id => $group, entry => "Error updating user $username: $msg")); 2152 $dbh->commit; # since we enabled transactions earlier 2153 } 2154 return ('FAIL',"Error updating user $username: $msg"); 2155 } 2156 2157 return ('OK',$resultmsg); 2150 2158 } # end updateUser() 2151 2159
Note:
See TracChangeset
for help on using the changeset viewer.