fix
This commit is contained in:
@@ -8,6 +8,8 @@ long account_calls(CVars in, CVars &out);
|
||||
|
||||
long LoginWrenchBoardAccount( CVars in, CVars &out );
|
||||
long LoginWrenchBoardFacebook( CVars in, CVars &out );
|
||||
long LoginWrenchBoardGoogle( CVars in, CVars &out );
|
||||
long LoginWrenchBoardExternal( CVars in, CVars &out );
|
||||
long SessionCheck(long uid, const char *sessionid, int create );
|
||||
long account_session_check(CVars in, CVars out);
|
||||
long VerifySession(CVars in, CVars &out);
|
||||
|
||||
@@ -134,8 +134,9 @@ long account_calls(CVars in, CVars &out) {
|
||||
long ret = 0;
|
||||
const char * loc = getenv("REMOTE_ADDR");
|
||||
const PGresult *res;
|
||||
|
||||
//test();
|
||||
logfmt(logINFO, "action = %ld", action);
|
||||
logfmt(logINFO, "google = %ld", WRENCHBOARD_GOOGLE_LOGIN);
|
||||
//test();
|
||||
|
||||
switch (action) {
|
||||
case WRENCHBOARD_CREATE_MOBILEUSER:
|
||||
@@ -176,7 +177,7 @@ long account_calls(CVars in, CVars &out) {
|
||||
REQ_STRING(in, "email", 5, 49, "(.*)");
|
||||
REQ_STRING(in, "firstname", 1, 49, "(.*)");
|
||||
REQ_STRING(in, "lastname", 1, 40, "(.*)");
|
||||
REQ_STRING(in, "your_message", 4, 400, "(.*)");
|
||||
REQ_STRING(in, "your_message", 4, 400, "(.*)");
|
||||
//OPTIONAL( in, "loc" ) REQ_STRING (in, "loc", 3, 15, "(.*)");
|
||||
|
||||
in["loc"] = loc;
|
||||
@@ -213,6 +214,10 @@ long account_calls(CVars in, CVars &out) {
|
||||
return LoginWrenchBoardFacebook(in, out);
|
||||
break;
|
||||
|
||||
case WRENCHBOARD_GOOGLE_LOGIN:
|
||||
return LoginWrenchBoardGoogle(in, out);
|
||||
break;
|
||||
|
||||
case WRENCHBOARD_ACCOUNT_PENDING:
|
||||
return CreateWrenchBoardAccountPending(in, out);
|
||||
break;
|
||||
@@ -1283,6 +1288,9 @@ long LoginWrenchBoardFacebook(CVars in, CVars &out) {
|
||||
long res = PHP_API_BAD_PARAM;
|
||||
logfmt(logINFO, "LoginWrenchBoardFacebook()");
|
||||
REQ_STRING(in, "fb_id", 5, 49, "(.*)");
|
||||
in["external_idp_provider_id"] = in["fb_id"].Long();
|
||||
in["external_idp_provider"] = 1L; // Facebook
|
||||
in["fb_id"].set_valid(false);
|
||||
REQ_STRING(in, "email", 6, 49, "(.*)");
|
||||
OPTIONAL(in, "firstname") REQ_STRING(in, "firstname", 1, 49, "(.*)");
|
||||
else in["firstname"] = "";
|
||||
@@ -1290,8 +1298,35 @@ long LoginWrenchBoardFacebook(CVars in, CVars &out) {
|
||||
else in["lastname"] = "";
|
||||
REQ_STRING(in, "sessionid", 4, 40, "(.*)");
|
||||
OPTIONAL(in, "loc") REQ_STRING(in, "loc", 3, 15, "(.*)");
|
||||
res = LoginWrenchBoardExternal(in, out);
|
||||
logfmt(logINFO, "/LoginWrenchBoardFacebook()");
|
||||
return res;
|
||||
}
|
||||
|
||||
const char * loc = getenv("REMOTE_ADDR");
|
||||
long LoginWrenchBoardGoogle(CVars in, CVars &out) {
|
||||
long res = PHP_API_BAD_PARAM;
|
||||
logfmt(logINFO, "LoginWrenchBoardGoogle()");
|
||||
REQ_STRING(in, "google_id", 5, 49, "(.*)");
|
||||
in["external_idp_provider_id"] = in["google_id"].Long();
|
||||
in["external_idp_provider"] = 2L; // Google
|
||||
in["google_id"].set_valid(false);
|
||||
REQ_STRING(in, "email", 6, 49, "(.*)");
|
||||
OPTIONAL(in, "firstname") REQ_STRING(in, "firstname", 1, 49, "(.*)");
|
||||
else in["firstname"] = "";
|
||||
OPTIONAL(in, "lastname") REQ_STRING(in, "lastname", 1, 49, "(.*)");
|
||||
else in["lastname"] = "";
|
||||
REQ_STRING(in, "sessionid", 4, 40, "(.*)");
|
||||
OPTIONAL(in, "loc") REQ_STRING(in, "loc", 3, 15, "(.*)");
|
||||
res = LoginWrenchBoardExternal(in, out);
|
||||
logfmt(logINFO, "/LoginWrenchBoardGoogle()");
|
||||
return res;
|
||||
}
|
||||
|
||||
|
||||
long LoginWrenchBoardExternal(CVars in, CVars &out) {
|
||||
long res = PHP_API_BAD_PARAM;
|
||||
logfmt(logINFO, "LoginWrenchBoardExternal()");
|
||||
const char * loc = getenv("REMOTE_ADDR");
|
||||
in["loc"] = loc;
|
||||
in["loc"].set_valid(true);
|
||||
|
||||
@@ -1299,7 +1334,7 @@ long LoginWrenchBoardFacebook(CVars in, CVars &out) {
|
||||
if (ret > 0) {
|
||||
out["status"] = "Email is already registered";
|
||||
} else {
|
||||
ret = load_db_record(out, "SELECT *,id AS member_id FROM members WHERE LOWER(email)=LOWER('%s') AND fb_id='%s'", in["email"].c_str(), in["fb_id"].c_str());
|
||||
ret = load_db_record(out, "SELECT *,id AS member_id FROM members WHERE LOWER(email)=LOWER('%s') AND external_idp_provider_id='%s' AND external_idp_provider=%ld", in["email"].c_str(), in["external_idp_provider_id"].c_str(), in["external_idp_provider"].Long());
|
||||
if (ret > 0) {
|
||||
logfmt(logINFO, "FB account already exists");
|
||||
} else {
|
||||
@@ -1315,8 +1350,10 @@ long LoginWrenchBoardFacebook(CVars in, CVars &out) {
|
||||
xx["email"].set_valid(true);
|
||||
xx["loc"] = in["loc"];
|
||||
xx["loc"].set_valid(true);
|
||||
xx["fb_id"] = in["fb_id"];
|
||||
xx["fb_id"].set_valid(true);
|
||||
xx["external_idp_provider"] = in["external_idp_provider"];
|
||||
xx["external_idp_provider"].set_valid(true);
|
||||
xx["external_idp_provider_id"] = in["external_idp_provider_id"];
|
||||
xx["external_idp_provider_id"].set_valid(true);
|
||||
out["member_id"] = insert_db_record(DBS_VALID, "members", "members_id_seq", xx);
|
||||
ret = load_db_record(out, "SELECT *,id AS member_id FROM members WHERE id='%ld'", out["member_id"].Long());
|
||||
}
|
||||
@@ -1336,7 +1373,7 @@ long LoginWrenchBoardFacebook(CVars in, CVars &out) {
|
||||
}
|
||||
}
|
||||
}
|
||||
logfmt(logINFO, "/LoginWrenchBoardFacebook()");
|
||||
logfmt(logINFO, "/LoginWrenchBoardExternal()");
|
||||
return res;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user