From d1b86c4f4683385173671643f440afb592700c21 Mon Sep 17 00:00:00 2001 From: "CHIEFSOFT\\ameye" Date: Sat, 16 Sep 2023 20:20:23 -0400 Subject: [PATCH] user login --- wrenchboard/src/shared_tool/account.cc | 33 +++++++++++++++++++++++++- www-api/app/Controllers/WrenchApi.php | 6 +++++ 2 files changed, 38 insertions(+), 1 deletion(-) diff --git a/wrenchboard/src/shared_tool/account.cc b/wrenchboard/src/shared_tool/account.cc index b3516e2a..c4c06f4f 100644 --- a/wrenchboard/src/shared_tool/account.cc +++ b/wrenchboard/src/shared_tool/account.cc @@ -2107,8 +2107,39 @@ return 0; } long LoginWrenchBoardQRAccount(CVars in, CVars &out) { + /* + $in['member_uid'] = $pieces[0]; + $in['member_username'] = $pieces[1]; + $in['family_uid'] = $pieces[2]; + */ + logfmt(logINFO, "LoginWrenchBoardQRAccount()"); + long ret = PHP_API_BAD_PARAM; + try { + // REQ_LONG( in, "whattodo", 1, -1 ); + REQ_STRING(in, "member_username", 5, 49, "(.*)"); + REQ_STRING(in, "member_uid", 5, 140, "(.*)"); + REQ_STRING(in, "family_uid", 4, 140, "(.*)"); - return 0; + const PGresult* res = pgsql_query("SELECT f.username, f.pin FROM members_family f LEFT JOIN members m ON m.id=f.member_id " + " WHERE f.uid = '%s' AND f.username = '%s' AND f.uid = '%s'' ", in["family_uid"].Long(), in["member_username"].c_str(), in["member_uid"].Long()); + if (res != NULL && pgsql_num_rows(res) > 0) { + mapf = pgsql_fetch_assoc(res,0); + CVars inx; + inx["username"] = res["username"]; res["username"].set_valid( true ); + inx["sessionid"] =res["pin"]; res["sessionid"].set_valid( true ); + inx["login_mode"] = LOGIN_MODE_FAMILY; res["login_mode"].set_valid( true ); + return LoginWrenchBoardAccount(inx, out); + } + else{ + ret = PHP_API_BAD_PARAM; + } + + } catch (bad_parameter) { + out["status"] = "ERROR"; + } + + logfmt(logINFO, "/LoginWrenchBoardQRAccount()"); + return ret; } long LoginWrenchBoardAccount(CVars in, CVars &out) { diff --git a/www-api/app/Controllers/WrenchApi.php b/www-api/app/Controllers/WrenchApi.php index 67a918e0..ec02399c 100644 --- a/www-api/app/Controllers/WrenchApi.php +++ b/www-api/app/Controllers/WrenchApi.php @@ -315,6 +315,12 @@ class WrenchApi extends BaseController if (!isset($in["login_mode"])){ $in["login_mode"] = MOBILE_LOGIN; } + $pieces = explode("@", $in['username']); + if ( count($pieces) == 3 ){ + $in['member_uid'] = $pieces[0]; + $in['member_username'] = $pieces[1]; + $in['family_uid'] = $pieces[2]; + } break; case 'userlogin': $in["action"] = WRENCHBOARD_ACCOUNT_LOGIN; if (!isset($in["login_mode"])){