예제 #1
0
 public static function editUser($oldUser, $editUser, $connection)
 {
     $changes = false;
     $password = hash($GLOBALS["password_hash"], $editUser['password']);
     $changeSQL = array();
     if ($oldUser['name'] != $editUser['name']) {
         array_push($changeSQL, ' name="' . $editUser['name'] . '"');
         $changes = true;
     }
     if ($oldUser['password'] != $password) {
         usertools::setPassword($oldUser['username'], $editUser['password'], $connection);
     }
     if ($oldUser['broleid'] != $editUser['broleid']) {
         usertools::setRole($oldUser['id'], $oldUser['broleid'], $editUser['broleid'], $connection);
     }
     if ($changes) {
         $SQLUpdate = "UPDATE users_profile SET";
         foreach ($changeSQL as $singlechange) {
             $SQLUpdate .= $singlechange;
         }
         $SQLUpdate .= ' WHERE user_profile_id="' . $oldUser["id"] . '";';
         $connection->exec($SQLUpdate);
     }
 }
예제 #2
0
파일: user.php 프로젝트: hersche/Peta
 /**
  *
  * @param int $oldUserId
  * @param array $editUser a post-variable which contains a user..
  * working var-names:
  * password = cleartext-password<br />
  * name = the name of the user..<br />
  * username = the username<br />
  * role = the new role
  * @param PDO $connection
  */
 public static function editUser($oldUserId, $editUser, $connection)
 {
     if (!empty($editUser)) {
         $fakeOldUser = usertools::getAlienUserbyId($oldUserId, $connection);
         $changes = false;
         $changeSQL = array();
         $remeberExisting = array();
         $userRoleIds = array();
         $getUsedRoles = array();
         foreach (array_keys($_POST) as $key) {
             if (substr($key, 0, 5) == "role_") {
                 $getUsedRoles[] = $_POST[$key];
             }
         }
         foreach ($fakeOldUser->getRoles() as $uRole) {
             $userRoleIds[] = $uRole->getId();
         }
         if (!empty($editUser['role']) && $fakeOldUser->getUsername() != $editUser['username']) {
             array_push($changeSQL, ' name="' . $editUser['name'] . '"');
             if ($_SESSION['user']->getId() == $oldUserId) {
                 $_SESSION['user']->setName($editUser['name']);
             }
             $changes = true;
         }
         if (!empty($editUser['password'])) {
             $password = hash($GLOBALS["password_hash"], $editUser['password']);
             if ($fakeOldUser->getPassword() != $password) {
                 usertools::setPassword($fakeOldUser->getUsername(), $editUser['password'], $connection);
                 $changes = true;
             }
         }
         usertools::setRole($fakeOldUser, $getUsedRoles, $connection);
         $changes = true;
     }
     if ($changes) {
         $SQLUpdate = "UPDATE users_profile SET";
         foreach ($changeSQL as $singlechange) {
             $SQLUpdate .= $singlechange;
         }
         $SQLUpdate .= ' WHERE user_profile_id="' . $fakeOldUser->getId() . '";';
         $connection->exec($SQLUpdate);
     }
 }