Changeset 294 for trunk/DNSDB.pm


Ignore:
Timestamp:
03/29/12 13:22:59 (12 years ago)
Author:
Kris Deugau
Message:

/trunk

"Move action logging for change group default permissions" mutated
into "Move action logging for (change group default permissions),
(add user), (update user), (update user permissions)". See #35.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/DNSDB.pm

    r293 r294  
    11151115  my $inherit = shift || 0;
    11161116
    1117   my $failmsg = '';
     1117  my $resultmsg = '';
    11181118
    11191119  # see if we're switching from inherited to custom.  for bonus points,
     
    11211121  # to set/alter custom perms, and both if we're switching from custom to
    11221122  # 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').
    11241125        " FROM ".($type eq 'user' ? 'users' : 'groups')." u ".
    11251126        " JOIN groups g ON u.".($type eq 'user' ? '' : 'parent_')."group_id=g.group_id ".
     
    11271128  $sth->execute($id);
    11281129
    1129   my ($wasinherited,$permid,$parpermid) = $sth->fetchrow_array;
     1130  my ($wasinherited,$permid,$parpermid,$parid,$name) = $sth->fetchrow_array;
    11301131
    11311132# hack phtoui
     
    11681169    } # (inherited->)? custom
    11691170
     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));
    11701177    $dbh->commit;
    11711178  }; # end eval
     
    11731180    my $msg = $@;
    11741181    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);
    11801186} # end changePermissions()
    11811187
     
    20062012  local $dbh->{RaiseError} = 1;
    20072013
    2008   my $failmsg = '';
    2009 
    20102014  # Wrap all the SQL in a transaction
    20112015  eval {
     
    20592063##fixme: add another table to hold name/email for log table?
    20602064
     2065    _log($dbh, (group_id => $group, entry => "Added user $username ($fname $lname)"));
    20612066    # once we get here, we should have suceeded.
    20622067    $dbh->commit;
     
    20662071    my $msg = $@;
    20672072    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");
    20722081} # end addUser
    20732082
     
    21122121  my $phone = shift || '';      # not going format-check
    21132122
    2114   my $failmsg = '';
     2123  my $resultmsg = '';
    21152124
    21162125  # Allow transactions, and raise an exception on errors so we can catch it later.
     
    21242133  # Actual blank passwords are bad, mm'kay?
    21252134  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));
    21292136  } else {
    21302137    $pass = unix_md5_crypt($pass);
     
    21322139
    21332140  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);
    21412145    $dbh->commit;
    21422146  };
     
    21442148    my $msg = $@;
    21452149    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);
    21502158} # end updateUser()
    21512159
Note: See TracChangeset for help on using the changeset viewer.