/** * Delete the user from the system * * User data is never 'hard deleted' from the database. Instead the 'is_active' flag is set to 1 * */ public static function delete($user_id, $true_delete = FALSE) { Logger::log("Enter: function User::delete"); // check whether user is already deleted if ($true_delete) { $sql = 'SELECT * from {users} WHERE user_id=?'; $data = array($user_id); } else { $sql = 'SELECT * from {users} WHERE user_id=? AND is_active = ?'; $data = array($user_id, DELETED); } $res = Dal::query($sql, $data); if ($res->numRows() > 0 && !$true_delete) { Logger::log("Throwing exception USER_ALREADY_DELETED | message: Can not delete a deleted user"); throw new PAException(USER_ALREADY_DELETED, "Can not delete a deleted user."); } else { if ($true_delete) { $sql = 'DELETE FROM {users} WHERE user_id = ?'; $sql1 = 'DELETE FROM {user_profile_data} WHERE user_id = ?'; $data = array($user_id); $res = Dal::query($sql, $data); $res = Dal::query($sql1, $data); } else { $sql = 'UPDATE {users} SET login_name = CONCAT(?, login_name), email = CONCAT(?, email), is_active = ? WHERE user_id = ?'; $data = array(MARK_DELETED_USER . $user_id . MARK_DELETED_USER, MARK_DELETED_USER . $user_id . MARK_DELETED_USER, DELETED, $user_id); //updated login_name will be of the kind #17#gurpreet.Here 17 is the user_id, gurpreet is login_name and # is serving as delimiter. $res = Dal::query($sql, $data); } } // make sure there aren't any lingering entries in networks_users or groups_users Network::leave_all_networks($user_id); Group::leave_all_groups($user_id); Logger::log("Exit: function User::delete"); }