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); } }
/** * * @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); } }