diff --git a/wrenchboard/src/shared_tool/wrenchboard_api_main.cc b/wrenchboard/src/shared_tool/wrenchboard_api_main.cc index 3678e733..aaaed0f7 100644 --- a/wrenchboard/src/shared_tool/wrenchboard_api_main.cc +++ b/wrenchboard/src/shared_tool/wrenchboard_api_main.cc @@ -461,8 +461,12 @@ long wrenchboard_api_main(CVars in, CVars &out) { } REQ_STRING(in, "reset_link", 1, 100, "(.*)"); + REQ_STRING(in, "reset_uid", 1, 100, "(.*)"); + REQ_STRING(in, "m_uid", 1, 100, "(.*)"); REQ_STRING(in, "newpass", 5, 20, "(.*)"); - if (load_db_record(out, "SELECT p.id AS lostpass_id,p.member_id, m.* FROM password_reset p LEFT JOIN members m ON m.id = p.member_id WHERE p.pass_link ='%s' AND p.status = 3 ", in["reset_link"].c_str())) { + if (load_db_record(out, "SELECT p.id AS lostpass_id,p.member_id, m.* FROM password_reset p " + " LEFT JOIN members m ON m.id = p.member_id " + " WHERE p.pass_link ='%s' AND p.status = 3 AND p.uid='%s' ", in["reset_link"].c_str(), in["reset_uid"].c_str())) { if (out["lostpass_id"].Long() > 0){ pgsql_exec("UPDATE password_reset SET status = 5, expired = now() WHERE status IN (3) AND member_id=%lu AND id = %lu ", out["member_id"].Long(), out["lostpass_id"].Long()); pgsql_exec("UPDATE members SET password =md5('%s') WHERE id = %lu ", in["newpass"].c_str(), out["member_id"].Long());