fix
This commit is contained in:
@@ -16,7 +16,8 @@ Welcome to {{site_name}}!. In order to complete your registration , click or cop
|
||||
</td></tr><tr><td style="height:20px; background-color:#CEF6E3 font-size:14px;">
|
||||
Click Link : https://{{server_name}}/vemail?vlnk={{verify_link}}
|
||||
<br></td></tr><tr><td>
|
||||
{{site_name}} gives empowers you to form, find and join one or more groups. As a group member you will receive the benefit of wholesale prices on leading brands from reputable sellers on the purchases you need for your home, your business or your life!
|
||||
{{site_name}},your personalized learning in one place with tools to make it happen. {{site_name}} makes it easy to track due dates of goals set, focus plans with e-alerts in your workspace and dashboard.
|
||||
|
||||
</td></tr><tr><td>
|
||||
|
||||
</td></tr><tr><td>
|
||||
|
||||
@@ -23,6 +23,9 @@
|
||||
#define COREGRADE_ACCOUNT_TESTEMAIL 11001
|
||||
#define COREGRADE_ACCOUNT_PENDING 11010
|
||||
#define COREGRADE_VERIFY_PENDING_LINK 11015
|
||||
|
||||
#define COREGRADE_START_RESET_PASSWORD 11017
|
||||
|
||||
#define COREGRADE_ACCOUNT_CREATEACC 11020
|
||||
#define COREGRADE_ACCOUNT_LOGIN 11025
|
||||
#define COREGRADE_ACCOUNT_ADDCARD 11027
|
||||
@@ -41,7 +44,9 @@
|
||||
//**************************************************************
|
||||
|
||||
|
||||
|
||||
#define RESET_START 100
|
||||
#define RESET_CONFIRM 200
|
||||
#define RESET_COMPLETE 300
|
||||
|
||||
|
||||
|
||||
@@ -56,15 +61,15 @@
|
||||
#define COREGRADE_INTERSW_DO_TRANSFER 560
|
||||
#define COREGRADE_INTERSW_QUERY_TRANSACTION 561
|
||||
|
||||
#define COREGRADE_ADD_MONEYRECIPIENT 600
|
||||
#define COREGRADE_ADD_MONEYRECIPIENT 600
|
||||
|
||||
#define COREGRADE_CREATE_USER_ACCOUNT 700
|
||||
#define COREGRADE_USER_ACCOUNT_LOGIN 710
|
||||
#define COREGRADE_START_PASSWORDRESET 720
|
||||
#define COREGRADE_COMPLETE_PASSWORDRESET 730
|
||||
|
||||
#define COREGRADE_START_ADDMONEY 770
|
||||
#define COREGRADE_COMPLETE_ADDMONEY 775
|
||||
#define COREGRADE_START_ADDMONEY 770
|
||||
#define COREGRADE_COMPLETE_ADDMONEY 775
|
||||
|
||||
#define COREGRADE_ADD_MOBILE_TOPUPNUM 900
|
||||
#define COREGRADE_PROMO_CALL 990
|
||||
@@ -78,27 +83,27 @@
|
||||
|
||||
|
||||
#define COREGRADE_TOPUP_ORDER 900020
|
||||
#define COREGRADE_TOPUP_ORDER_PURCHASE 900030
|
||||
#define COREGRADE_TOPUP_ORDER_PURCHASE 900030
|
||||
#define COREGRADE_PAYPAL_IPNMSG 900090
|
||||
|
||||
|
||||
|
||||
#define COREGRADE_BULKTOPUP_ORDER 700010
|
||||
#define COREGRADE_BULKTOPUP_ITEM 700020
|
||||
#define COREGRADE_BULKTOPUP_ITEMUPDATE 700030
|
||||
#define COREGRADE_BULKTOPUP_DELIVER 700040
|
||||
#define COREGRADE_BULKTOPUP_ORDER 700010
|
||||
#define COREGRADE_BULKTOPUP_ITEM 700020
|
||||
#define COREGRADE_BULKTOPUP_ITEMUPDATE 700030
|
||||
#define COREGRADE_BULKTOPUP_DELIVER 700040
|
||||
|
||||
|
||||
#define COREGRADE_BALANCE_TOPUP_ORDER 800020
|
||||
#define COREGRADE_BALANCE_TOPUP_PURCHASE 800030
|
||||
#define COREGRADE_BALANCE_TOPUP_PAYMENT 800040
|
||||
#define COREGRADE_BALANCE_TOPUP_PURCHASE 800030
|
||||
#define COREGRADE_BALANCE_TOPUP_PAYMENT 800040
|
||||
|
||||
|
||||
#define VIRTUAL_AIRTOPUP 70011
|
||||
#define VIRTUAL_AIRTOPUP 70011
|
||||
|
||||
#define PAY_MODE_BALANCE 0
|
||||
#define PAY_MODE_CCARD 1
|
||||
#define PAY_MODE_BONUS 9
|
||||
#define PAY_MODE_BONUS 9
|
||||
|
||||
#define APPROVED_BALANCE 5
|
||||
#define DISAPROVE_BALANCE 3
|
||||
|
||||
@@ -8,6 +8,14 @@ long WelcomeAccountMail(CVars in);
|
||||
long GroupCreateMemberMail(CVars in);
|
||||
long CreateCoreGradeGroupMail(CVars in);
|
||||
|
||||
long member_email_calls(long action, CVars in, CVars &out);
|
||||
/*long transporter_email_calls(long action, CVars in, CVars &out);
|
||||
long agent_email_calls(long action, CVars in, CVars &out);
|
||||
long cron_email_calls(long action, CVars in, CVars &out);
|
||||
long alert_email_calls(long action, CVars in, CVars &out);
|
||||
long email_test(CVars in, CVars &out);
|
||||
long provider_email_calls(long action, CVars in, CVars &out); */
|
||||
long carpool_email_calls(long action, CVars in, CVars &out);
|
||||
|
||||
|
||||
long send_email(CVars in, CVars &out);
|
||||
|
||||
@@ -11,10 +11,15 @@
|
||||
#include "pgsql_wrapper.h"
|
||||
#include "cfg.h"
|
||||
#include <curl/curl.h>
|
||||
#include "email.h"
|
||||
|
||||
|
||||
#define CREATE_BY_EMAIL 1000
|
||||
#define CREATE_BY_PHONE 2000
|
||||
|
||||
|
||||
|
||||
|
||||
long CreateDefaultPage(CVars in, CVars &out);
|
||||
long CreateUserPage(CVars in, CVars &out);
|
||||
long AddPageCard(CVars in, CVars &out);
|
||||
@@ -94,6 +99,8 @@ string base64_decode(string const& encoded_string) {
|
||||
return ret;
|
||||
}
|
||||
|
||||
long passwordReset(CVars in, CVars &out);
|
||||
|
||||
long account_calls(CVars in, CVars &out) {
|
||||
logfmt(logINFO, "account_calls()");
|
||||
out["result"] = "YES I GET TO BACK END";
|
||||
@@ -111,6 +118,10 @@ long account_calls(CVars in, CVars &out) {
|
||||
return CreateCoreGradeAccountPending(in, out);
|
||||
break;
|
||||
|
||||
case COREGRADE_START_RESET_PASSWORD:
|
||||
return passwordReset(in, out);
|
||||
break;
|
||||
|
||||
case COREGRADE_ACCOUNT_CREATEACC:
|
||||
return CreateCoreGradeAccount(in, out);
|
||||
break;
|
||||
@@ -122,11 +133,179 @@ long account_calls(CVars in, CVars &out) {
|
||||
case COREGRADE_ACCOUNT_ADDPAGECARD:
|
||||
return AddPageCard(in, out);
|
||||
break;
|
||||
|
||||
}
|
||||
logfmt(logINFO, "/account_calls()");
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/*************************************************************************************************************************/
|
||||
|
||||
long startPassReset(CVars in, CVars &out);
|
||||
long confirmPassReset(CVars in, CVars &out);
|
||||
long completePassReset(CVars in, CVars &out);
|
||||
|
||||
long passwordReset(CVars in, CVars &out) {
|
||||
logfmt(logINFO, "passwordReset()");
|
||||
|
||||
long mode = REQ_LONG(in, "mode", 0, -1);
|
||||
switch (mode) {
|
||||
|
||||
case RESET_START:
|
||||
return startPassReset(in, out);
|
||||
break;
|
||||
|
||||
case RESET_CONFIRM:
|
||||
return confirmPassReset(in, out);
|
||||
break;
|
||||
|
||||
case RESET_COMPLETE:
|
||||
return completePassReset(in, out);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
#define RESET_START 100
|
||||
#define RESET_CONFIRM 200
|
||||
#define RESET_COMPLETE 300
|
||||
*/
|
||||
|
||||
long startPassReset(CVars in, CVars &out) {
|
||||
logfmt(logINFO, "startPassReset()");
|
||||
long ret = PHP_API_BAD_PARAM;
|
||||
CVars x, y;
|
||||
try {
|
||||
REQ_STRING(in, "username", 2, 49, "(.*)");
|
||||
const char *loc = getenv("REMOTE_ADDR");
|
||||
ret = load_db_record(out, "SELECT id AS member_id,now() AS reset_seed FROM members WHERE status=1 AND LOWER(username)=LOWER('%s') ", in["username"].c_str());
|
||||
if (ret && out["member_id"].Long() > 0) {
|
||||
// remove all existing session
|
||||
pgsql_exec("UPDATE resetpassword SET status=7 WHERE status NOT IN (3,5) AND member_id=%ld ", out["member_id"].Long());
|
||||
// Create New Session Now
|
||||
|
||||
if (load_db_record(y, "SELECT floor( random()*100000) AS reset_pin ,md5('%s') AS reset_key", out["reset_seed"].c_str()) >= 0) {
|
||||
x["username"] = in["username"];
|
||||
x["member_id"] = out["member_id"];
|
||||
x["loc"] = loc;
|
||||
x["reset_key"] = y["reset_key"];
|
||||
x["reset_pin"] = y["reset_pin"];
|
||||
|
||||
x["username"].set_valid(true);
|
||||
x["loc"].set_valid(true);
|
||||
x["reset_key"].set_valid(true);
|
||||
x["reset_pin"].set_valid(true);
|
||||
x["member_id"].set_valid(true);
|
||||
|
||||
out["reset_id"] = insert_db_record(DBS_VALID, "resetpassword", "resetpassword_id_seq", x);
|
||||
if (out["reset_id"].Long() > 0) {
|
||||
ret = PHP_API_OK;
|
||||
out["reset_key"] = "YOU WILL GET THIS IF PIN IS CORRECT IN CONFIRM"; //x["reset_key"];
|
||||
out["mode"] = RESET_START;
|
||||
member_email_calls(in["action"].Long(), out, x); // note the use of out to send in
|
||||
}
|
||||
}
|
||||
} else {
|
||||
x["username"] = in["username"];
|
||||
x["loc"] = loc;
|
||||
x["status"] = 3;
|
||||
|
||||
x["username"].set_valid(true);
|
||||
x["loc"].set_valid(true);
|
||||
x["status"].set_valid(true);
|
||||
out["reset_id"] = insert_db_record(DBS_VALID, "resetpassword", "resetpassword_id_seq", x);
|
||||
|
||||
out["status_message"] = "Invalid Username or disabled account";
|
||||
out["status_advice"] = "Check username or Contact support";
|
||||
}
|
||||
out["reset_seed="] = "REMOVED";
|
||||
} catch (bad_parameter) {
|
||||
out["status_message"] = "Reset Error A00";
|
||||
logfmt(logINFO, "ERROR CALL long startPassReset(CVars in, CVars &out)");
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
long confirmPassReset(CVars in, CVars &out) {
|
||||
logfmt(logINFO, "confirmPassReset()");
|
||||
long ret = PHP_API_BAD_PARAM;
|
||||
CVars x, y;
|
||||
try {
|
||||
REQ_STRING(in, "username", 2, 49, "(.*)");
|
||||
REQ_LONG(in, "reset_pin", 0, -1);
|
||||
const char *loc = getenv("REMOTE_ADDR");
|
||||
|
||||
ret = load_db_record(out, "SELECT *, id AS reset_id FROM resetpassword WHERE status = 0 AND LOWER(username)=LOWER('%s') AND reset_pin='%lu' AND loc='%s'", in["username"].c_str(), in["reset_pin"].Long(), loc);
|
||||
if (ret && out["id"].Long() > 0) {
|
||||
pgsql_query("UPDATE resetpassword SET status = 1 WHERE id =%lu", out["reset_id"].Long());
|
||||
ret = PHP_API_OK;
|
||||
} else {
|
||||
out["status_message"] = "Invalid PIN or disabled account";
|
||||
out["status_advice"] = "Contact support or Start all over";
|
||||
}
|
||||
// out["reset_seed="] = "REMOVED";
|
||||
} catch (bad_parameter) {
|
||||
out["status_message"] = "Reset Error A02";
|
||||
logfmt(logINFO, "ERROR CALL long confirmPassReset(CVars in, CVars &out)");
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
long completePassReset(CVars in, CVars &out) {
|
||||
logfmt(logINFO, "completePassReset()");
|
||||
long ret = PHP_API_BAD_PARAM;
|
||||
CVars x, y;
|
||||
try {
|
||||
REQ_STRING(in, "username", 2, 49, "(.*)");
|
||||
REQ_STRING(in, "newpass", 5, 15, "(.*)");
|
||||
REQ_LONG(in, "reset_pin", 0, -1);
|
||||
REQ_STRING(in, "reset_key", 2, 49, "(.*)");
|
||||
|
||||
const char *loc = getenv("REMOTE_ADDR");
|
||||
|
||||
ret = load_db_record(out, "SELECT *,id AS reset_id FROM resetpassword WHERE status=1 AND LOWER(username)=LOWER('%s') AND reset_pin='%lu' AND loc='%s' AND reset_key='%s'", in["username"].c_str(), in["reset_pin"].Long(), loc, in["reset_key"].c_str());
|
||||
if (ret && out["reset_id"].Long() > 0) {
|
||||
char mcf[128];
|
||||
int result = 0; //libscrypt_hash(mcf, in["password"].c_str(), SCRYPT_N, SCRYPT_r, SCRYPT_p);
|
||||
if (result > 0) {
|
||||
if (pgsql_query("UPDATE members SET password='%s' WHERE id =%lu", mcf, out["member_id"].Long()) >= 0) {
|
||||
pgsql_query("UPDATE resetpassword SET status = 5,reset_key=NULL WHERE id =%lu", out["reset_id"].Long());
|
||||
ret = PHP_API_OK;
|
||||
}
|
||||
|
||||
out["reset_key"] = "YOU WILL GET THIS IF PIN IS CORRECT IN CONFIRM"; //x["reset_key"];
|
||||
out["mode"] = RESET_COMPLETE;
|
||||
member_email_calls(in["action"].Long(), out, x); // note the use of out to send in
|
||||
} else {
|
||||
logfmt(logINFO, "ERROR create hash using SCRYPT");
|
||||
}
|
||||
} else {
|
||||
out["status_message"] = "Invalid call or disabled account";
|
||||
out["status_advice"] = "Contact Support";
|
||||
}
|
||||
// out["reset_seed="] = "REMOVED";
|
||||
} catch (bad_parameter) {
|
||||
out["status_message"] = "Reset Error A03";
|
||||
logfmt(logINFO, "ERROR CALL long confirmPassReset(CVars in, CVars &out)");
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
/*************************************************************************************************************************/
|
||||
long AddPageCard(CVars in, CVars &out) {
|
||||
long ret = PHP_API_BAD_PARAM;
|
||||
@@ -155,16 +334,13 @@ long AddPageCard(CVars in, CVars &out) {
|
||||
x["member_id"] = in["member_id"];
|
||||
x["member_id"].set_valid(true);
|
||||
x["item_type"] = in["item_type"];
|
||||
x["item_type"].set_valid( true );
|
||||
x["item_type"].set_valid(true);
|
||||
|
||||
ret = insert_db_record(DBS_VALID, "members_page_item", "members_page_item_id_seq", x);
|
||||
out["page_item_id"] = insert_db_record(DBS_VALID, "members_page_item", "members_page_item_id_seq", x);
|
||||
|
||||
|
||||
|
||||
|
||||
// } else {
|
||||
// out["status"] = "Error";
|
||||
// }
|
||||
if (out["page_item_id"].Long()) {
|
||||
ret = PHP_API_OK;
|
||||
}
|
||||
|
||||
} catch (bad_parameter) {
|
||||
out["status"] = "Invalid session ID";
|
||||
@@ -271,6 +447,14 @@ long LoginCoreGradeAccount(CVars in, CVars &out) {
|
||||
out["status"] = "Invalid username and/or password";
|
||||
}
|
||||
|
||||
// make sure we have folder for the user
|
||||
if (out["folder"] == "") {
|
||||
load_db_record(out, "SELECT upper(md5( now()::text )) AS folder");
|
||||
CVars x;
|
||||
x["folder"] = out["folder"];
|
||||
x["folder"].set_valid(true);
|
||||
update_db_record(DBS_VALID, "members", x, out["member_id"].Long());
|
||||
}
|
||||
|
||||
logfmt(logINFO, "/LoginCoreGradeAccount()");
|
||||
return ret;
|
||||
|
||||
@@ -12,7 +12,197 @@ void vars2form( CVars &v, C_CGI_Form &form );
|
||||
|
||||
extern int mailsend(CVars in,CVars &out);
|
||||
|
||||
long carpool_email_calls(long email_action, CVars in, CVars &out) {
|
||||
|
||||
logfmt(logINFO, "carpool_email_calls() action=%lu", email_action);
|
||||
out["result"] = "ECHO BACKEND";
|
||||
|
||||
CVars x, y, z, x1, x2;
|
||||
long ret = 0;
|
||||
const char *loc = getenv("REMOTE_ADDR");
|
||||
C_CGI_Form form("", "");
|
||||
|
||||
char accept_link[150];
|
||||
char reject_link[150];
|
||||
|
||||
out["contactus"] = CfgReadChar("system.contactus");
|
||||
out["facebook"] = CfgReadChar("system.facebook");
|
||||
out["twitter"] = CfgReadChar("system.twitter");
|
||||
out["site_www"] = CfgReadChar("system.site_www");
|
||||
//https://www.float.sg/
|
||||
|
||||
try {
|
||||
form.LetStr("site_name", "Float");
|
||||
form.LetStr("site_www", out["site_www"].c_str());
|
||||
form.LetStr("contactus", out["contactus"].c_str());
|
||||
form.LetStr("facebook", out["facebook"].c_str());
|
||||
form.LetStr("twitter", out["twitter"].c_str());
|
||||
// email_action = SAVVY_BKO_CARPOOL_FRIENDMESSAGE;
|
||||
logfmt(logINFO, "carpool_email_calls() 11 - JOY email_action=%lu", email_action);
|
||||
|
||||
switch (email_action) {
|
||||
logfmt(logINFO, "carpool_email_calls() 00 - FAITH");
|
||||
/*
|
||||
case SAVVY_BKO_CARPOOL_FRIENDMESSAGE:
|
||||
logfmt(logINFO, "carpool_email_calls() 01");
|
||||
if (load_db_record(x, "SELECT cf.email AS friend_email, cf.*,cp.member_id,m.firstname AS invite_firstname FROM members_carpool_friends cf LEFT JOIN members_carpool cp ON cp.id =cf.carpool_id LEFT JOIN members m ON m.id =cp.member_id WHERE cf.id =%lu ", in["carpool_friend_id"].Long())) {
|
||||
|
||||
snprintf(accept_link, sizeof (accept_link), "lmsg/carpool?pid=%s&ans=accept", x["link"].c_str());
|
||||
snprintf(reject_link, sizeof (reject_link), "lmsg/carpool?pid=%s&ans=reject", x["link"].c_str());
|
||||
|
||||
form.LetStr("reject_link", reject_link);
|
||||
form.LetStr("accept_link", accept_link);
|
||||
|
||||
logfmt(logINFO, "carpool_email_calls() 02");
|
||||
// form.LetStr("msgid", "ABCDEFGHIJKLMNOPQRST");
|
||||
logfmt(logINFO, "carpool_email_calls() 03");
|
||||
vars2form(x, form);
|
||||
form.LetStr("subject", "Carpool Invitation");
|
||||
form.LetStr("email", x["friend_email"].c_str());
|
||||
form.Email("carpool/carpool_invite.mailfile");
|
||||
}
|
||||
break;
|
||||
|
||||
case SAVVY_BKO_CARPOOL_FRIENDACCEPT:
|
||||
logfmt(logINFO, "carpool_email_calls() 01");
|
||||
if (load_db_record(x, "SELECT m.email AS sender_email, cf.*,cp.member_id,cf.firstname AS friend_firstname FROM members_carpool_friends cf LEFT JOIN members_carpool cp ON cp.id =cf.carpool_id LEFT JOIN members m ON m.id =cp.member_id WHERE cf.id =%lu ", in["carpool_friend_id"].Long())) {
|
||||
|
||||
snprintf(accept_link, sizeof (accept_link), "lmsg/carpool?pid=%s&ans=accept", x["link"].c_str());
|
||||
snprintf(reject_link, sizeof (reject_link), "lmsg/carpool?pid=%s&ans=reject", x["link"].c_str());
|
||||
|
||||
form.LetStr("reject_link", reject_link);
|
||||
form.LetStr("accept_link", accept_link);
|
||||
|
||||
logfmt(logINFO, "carpool_email_calls() 02");
|
||||
// form.LetStr("msgid", "ABCDEFGHIJKLMNOPQRST");
|
||||
logfmt(logINFO, "carpool_email_calls() 03");
|
||||
vars2form(x, form);
|
||||
form.LetStr("subject", "Carpool Accepted");
|
||||
form.LetStr("email", x["sender_email"].c_str());
|
||||
//form.LetStr("email", "olu@float.sg");
|
||||
form.Email("carpool/carpool_accepted.mailfile");
|
||||
}
|
||||
break;
|
||||
*/
|
||||
}
|
||||
} catch (bad_parameter) {
|
||||
logfmt(logINFO, "ERROR CALL long member_email_calls(CVars in, CVars &out)");
|
||||
}
|
||||
|
||||
logfmt(logINFO, "/carpool_email_calls()");
|
||||
return ret;
|
||||
}
|
||||
|
||||
long member_email_calls(long action, CVars in, CVars &out) {
|
||||
logfmt(logINFO, "member_email_calls()");
|
||||
out["result"] = "ECHO BACKEND";
|
||||
|
||||
|
||||
CVars x, y, z, x1, x2;
|
||||
long ret = 0;
|
||||
long mode = 0;
|
||||
const char *loc = getenv("REMOTE_ADDR");
|
||||
C_CGI_Form form("", "");
|
||||
// form.LetStr("subject", "KleenApp Email Test");
|
||||
out["contactus"] = CfgReadChar("system.contactus");
|
||||
out["facebook"] = CfgReadChar("system.facebook");
|
||||
out["twitter"] = CfgReadChar("system.twitter");
|
||||
|
||||
//https://www.float.sg/
|
||||
|
||||
form.LetStr("site_name", "Float");
|
||||
form.LetStr("contactus", out["contactus"].c_str());
|
||||
form.LetStr("facebook", out["facebook"].c_str());
|
||||
form.LetStr("twitter", out["twitter"].c_str());
|
||||
|
||||
CGIList *inv_list = new CGIList(&form, "inv_items");
|
||||
char listing_items[1024];
|
||||
//const PGresult *res;
|
||||
|
||||
try {
|
||||
|
||||
switch (action) {
|
||||
/*
|
||||
case SAVVY_USER_LOGINACCOUNT:
|
||||
if (load_db_record(x, "SELECT *,email as email2,now() AS last_login2 FROM members WHERE id = %lu ", in["member_id"].Long())) {
|
||||
vars2form(x, form);
|
||||
form.LetStr("subject", "Float Account Access");
|
||||
form.LetStr("email", x["email2"].c_str());
|
||||
// form.Email("member/user_login.mailfile");
|
||||
}
|
||||
break;
|
||||
|
||||
case SAVVY_USER_CREATEACCOUNT:
|
||||
|
||||
if (in["pending_id"].Long() > 0) {
|
||||
if (load_db_record(x, " SELECT * FROM members_pending WHERE id=%lu", in["pending_id"].Long()) > 0) {
|
||||
vars2form(x, form);
|
||||
form.LetStr("subject", "Confirm your Float Account");
|
||||
form.LetStr("email", x["email"].c_str());
|
||||
form.Email("member/user_pending.mailfile");
|
||||
}
|
||||
} else {
|
||||
if (in["member_id"].Long() > 0) {
|
||||
|
||||
if (load_db_record(x, "SELECT *,email as email2,now() AS last_login2 FROM members WHERE id = %lu ", in["member_id"].Long())) {
|
||||
vars2form(x, form);
|
||||
form.LetStr("subject", "Welcome to Float ");
|
||||
form.LetStr("email", x["email2"].c_str());
|
||||
form.Email("member/user_welcome.mailfile");
|
||||
}
|
||||
} // member created first time email only
|
||||
}
|
||||
break;
|
||||
case FLOAT_SYSTEM_EMAIL_NOTIFICATION:
|
||||
|
||||
if (load_db_record(x, "SELECT * FROM members_notification WHERE id =%lu ", in["notify_id"].Long())) {
|
||||
vars2form(x, form);
|
||||
form.LetStr("subject", "Float - Save Money and Time");
|
||||
form.LetStr("email", "olu@float.sg");
|
||||
form.LetStr("email", "ses66181@gmal.com");
|
||||
// form.LetStr("email", x["email2"].c_str());
|
||||
form.Email("member/user_notification.mailfile");
|
||||
}
|
||||
|
||||
|
||||
break;
|
||||
*/
|
||||
case COREGRADE_START_RESET_PASSWORD:
|
||||
mode = REQ_LONG(in, "mode", 0, -1);
|
||||
if (load_db_record(x, "SELECT m.firstname,p.*,m.email AS member_email FROM resetpassword p LEFT JOIN members m ON m.id=p.member_id WHERE p.id=%lu ", in["reset_id"].Long())) {
|
||||
vars2form(x, form);
|
||||
form.LetStr("subject", "Reset Password");
|
||||
form.LetStr("email", x["member_email"].c_str());
|
||||
|
||||
switch (mode) {
|
||||
case RESET_START:
|
||||
form.Email("member/reset_password.mailfile");
|
||||
break;
|
||||
|
||||
case RESET_CONFIRM:
|
||||
|
||||
break;
|
||||
|
||||
case RESET_COMPLETE:
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
} catch (bad_parameter) {
|
||||
logfmt(logINFO, "ERROR CALL long member_email_calls(CVars in, CVars &out)");
|
||||
}
|
||||
|
||||
logfmt(logINFO, "/member_email_calls()");
|
||||
return ret;
|
||||
}
|
||||
////TO_CHAR(r.service_date :: TIMESTAMP, 'Day Mon dd, yyyy HH:MI AM') AS long_date
|
||||
|
||||
long AccountPendingMail(CVars in)
|
||||
{
|
||||
|
||||
@@ -89,7 +89,14 @@ defined('EXIT__AUTO_MAX') OR define('EXIT__AUTO_MAX', 125); // highest auto
|
||||
define('COREGRADE_ACCOUNT_TESTEMAIL',11001);
|
||||
define('COREGRADE_ACCOUNT_PENDING',11010);
|
||||
define('COREGRADE_VERIFY_PENDING_LINK',11015);
|
||||
|
||||
define('COREGRADE_START_RESET_PASSWORD',11017);
|
||||
|
||||
define('COREGRADE_ACCOUNT_CREATEACC',11020);
|
||||
define('COREGRADE_ACCOUNT_LOGIN',11025);
|
||||
define('COREGRADE_ACCOUNT_ADDCARD', 11027);
|
||||
define('COREGRADE_ACCOUNT_ADDPAGECARD', 11029);
|
||||
define('COREGRADE_ACCOUNT_ADDPAGECARD', 11029);
|
||||
|
||||
define('RESET_START', 100);
|
||||
define('RESET_CONFIRM', 200 );
|
||||
define('RESET_COMPLETE', 300 );
|
||||
@@ -26,20 +26,20 @@ class Auth extends Start_Controller {
|
||||
$data["page_title"] = "";
|
||||
$data["username"] = $username; //"auxsupport";
|
||||
$data["password"] = $password;
|
||||
$data["sessionid"] ="12345678901234567890";
|
||||
$data["sessionid"] = "12345678901234567890";
|
||||
$out = [];
|
||||
$this->coregrade_webapi(COREGRADE_ACCOUNT_LOGIN, $data, $out);
|
||||
//print_r( $data );
|
||||
//print_r( $out );
|
||||
if (count($out) > 0 && isset($out["sessionid"]) && isset($out["member_id"]) && $out["member_id"] > 0 ) {
|
||||
// print_r($out);
|
||||
if (count($out) > 0 && isset($out["sessionid"]) && isset($out["member_id"]) && $out["member_id"] > 0) {
|
||||
// print_r($out);
|
||||
//$this->getSessionData($out[0], $session_data); // just for testing
|
||||
|
||||
$this->buildUserSession(PHP_API_OK, $out);
|
||||
$valid_login = true;
|
||||
$this->session->set_flashdata('in', $out);
|
||||
redirect("member/index");
|
||||
$login_done = true;
|
||||
redirect("member/index");
|
||||
$login_done = true;
|
||||
} else {
|
||||
$error_message = "Invalid Username/Password";
|
||||
}
|
||||
@@ -48,12 +48,11 @@ class Auth extends Start_Controller {
|
||||
|
||||
|
||||
|
||||
// $this->renderMemberPages('view_dash', $data);
|
||||
// $login_done = true;
|
||||
|
||||
// $this->renderMemberPages('view_dash', $data);
|
||||
// $login_done = true;
|
||||
// exit();
|
||||
}
|
||||
// echo 'hhhh jjjj';
|
||||
// echo 'hhhh jjjj';
|
||||
//$this->coregrade_webapi(100, $data, $out);
|
||||
// print_r($out);
|
||||
|
||||
@@ -105,17 +104,28 @@ class Auth extends Start_Controller {
|
||||
}
|
||||
|
||||
public function resetpass() {
|
||||
//$this->load->view('home/home');
|
||||
//echo "START RESET 1";
|
||||
$data = array();
|
||||
$out = array();
|
||||
$data["next_page"] = 0;
|
||||
$data["error_message"] = "";
|
||||
if ($_POST) {
|
||||
$data['username'] = trim($this->input->post('username'));
|
||||
$data["mode"] = RESET_START;
|
||||
if ($data['username'] != '') {
|
||||
$this->coregrade_webapi(COREGRADE_START_RESET_PASSWORD, $data, $out);
|
||||
$data["next_page"] = 100;
|
||||
} else {
|
||||
$data["error_message"] = "Please enter a valis username to continue";
|
||||
}
|
||||
}
|
||||
|
||||
$this->load->view('auth/view_head');
|
||||
$this->load->view('auth/view_reset_password');
|
||||
$this->load->view('auth/view_reset_password', $data);
|
||||
$this->load->view('auth/view_foot');
|
||||
}
|
||||
|
||||
public function logout() {
|
||||
$this->index();
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -34,7 +34,7 @@ $next_page = isset($next_page) ? $next_page : 0;
|
||||
<div class="collapse-margin search-content mt-0">
|
||||
<div class="card-header" id="headingOne" role="button" data-toggle="collapse" data-target="#collapseOne" aria-expanded="false" aria-controls="collapseOne">
|
||||
<span class="lead collapse-title">
|
||||
What does royalty free mean?
|
||||
How Do I Personalize My Learning Platforms?
|
||||
</span>
|
||||
</div>
|
||||
<div id="collapseOne" class="collapse" aria-labelledby="headingOne" data-parent="#accordionExample">
|
||||
@@ -46,7 +46,7 @@ $next_page = isset($next_page) ? $next_page : 0;
|
||||
<div class="collapse-margin">
|
||||
<div class="card-header" id="headingTwo" role="button" data-toggle="collapse" data-target="#collapseTwo" aria-expanded="false" aria-controls="collapseTwo">
|
||||
<span class="lead collapse-title collapsed">
|
||||
What do you mean by item and end product?
|
||||
How Do I create My Cards?
|
||||
</span>
|
||||
</div>
|
||||
<div id="collapseTwo" class="collapse" aria-labelledby="headingTwo" data-parent="#accordionExample">
|
||||
@@ -70,7 +70,7 @@ $next_page = isset($next_page) ? $next_page : 0;
|
||||
<div class="collapse-margin search-content">
|
||||
<div class="card-header" id="headingFour" role="button" data-toggle="collapse" data-target="#collapseFour" aria-expanded="false" aria-controls="collapseFour">
|
||||
<span class="lead collapse-title collapsed">
|
||||
What does non-exclusive mean?
|
||||
How to Add to my Cards?
|
||||
</span>
|
||||
</div>
|
||||
<div id="collapseFour" class="collapse" aria-labelledby="headingFour" data-parent="#accordionExample">
|
||||
@@ -118,7 +118,7 @@ $next_page = isset($next_page) ? $next_page : 0;
|
||||
<div class="collapse-margin search-content">
|
||||
<div class="card-header" id="headingEight" role="button" data-toggle="collapse" data-target="#collapseEight" aria-expanded="false" aria-controls="collapseEight">
|
||||
<span class="lead collapse-title collapsed">
|
||||
Can I re-distribute an item? What about under an Extended License?
|
||||
How Do I Share my Personalized Cards?
|
||||
</span>
|
||||
</div>
|
||||
<div id="collapseEight" class="collapse" aria-labelledby="headingEight" data-parent="#accordionExample">
|
||||
|
||||
@@ -44,19 +44,18 @@
|
||||
|
||||
<!-- BEGIN: Main Menu-->
|
||||
<div class="horizontal-menu-wrapper">
|
||||
<div class="header-navbar navbar-expand-sm navbar navbar-horizontal floating-nav navbar-light navbar-without-dd-arrow navbar-shadow menu-border" role="navigation" data-menu="menu-wrapper">
|
||||
<div class="header-navbar navbar-expand-sm navbar navbar-horizontal floating-nav navbar-light navbar-without-dd-arrow navbar-shadow menu-border" role="navigation" data-menu="menu-wrapper" style=" background-color: aliceblue;">
|
||||
<div class="navbar-header">
|
||||
<ul class="nav navbar-nav flex-row">
|
||||
<li class="nav-item mr-auto"><a class="navbar-brand" href="/">
|
||||
<div class="brand-logo"></div>
|
||||
<h2 class="brand-text mb-0">CoreGrade</h2>
|
||||
<h2 class="brand-text mb-0" style="padding-left: 20px;">CoreGrade</h2>
|
||||
</a></li>
|
||||
<!-- li class="nav-item nav-toggle"><a class="nav-link modern-nav-toggle pr-0" data-toggle="collapse"><i class="feather icon-x d-block d-xl-none font-medium-4 primary toggle-icon"></i><i class="toggle-icon feather icon-disc font-medium-4 d-none d-xl-block collapse-toggle-icon primary" data-ticon="icon-disc"></i></a></li -->
|
||||
</ul>
|
||||
</div>
|
||||
<!-- Horizontal menu content-->
|
||||
<div class="navbar-container main-menu-content" data-menu="menu-container">
|
||||
<!-- include ../../../includes/mixins-->
|
||||
<div class="navbar-container main-menu-content menu-right" data-menu="menu-container">
|
||||
<ul class="nav navbar-nav" id="main-menu-navigation" data-menu="menu-navigation">
|
||||
<li class="dropdown nav-item" data-menu="dropdown"><a class="dropdown-toggle nav-link" href="/" data-toggle="dropdown"><i class="feather icon-home"></i><span data-i18n="Dashboard">Home</span></a>
|
||||
|
||||
@@ -65,10 +64,11 @@
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
<!-- END: Main Menu-->
|
||||
<!-- END: Main Menu-->
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
$next_page = isset($next_page) ? $next_page : 0;
|
||||
?>
|
||||
|
||||
<body class="vertical-layout vertical-menu-modern 1-column navbar-floating footer-static bg-full-screen-image blank-page blank-page" data-open="click" data-menu="vertical-menu-modern" data-col="1-column">
|
||||
<!-- BEGIN: Content-->
|
||||
<div class="app-content content">
|
||||
<div class="content-overlay"></div>
|
||||
|
||||
@@ -25,24 +25,26 @@ $next_page = isset($next_page) ? $next_page : 0;
|
||||
<h4 class="mb-0">Reset Password</h4>
|
||||
</div>
|
||||
</div>
|
||||
<p class="px-2">Please enter your new password.</p>
|
||||
|
||||
<div class="card-content">
|
||||
<div class="card-body pt-1">
|
||||
<?
|
||||
if ($next_page == 0) {
|
||||
?>
|
||||
<form>
|
||||
<p class="px-2">Please tell us your username.</p>
|
||||
<form method="POST" action="/auth/resetpass">
|
||||
<fieldset class="form-label-group">
|
||||
<input type="text" class="form-control" id="user-email" placeholder="Email" required>
|
||||
<input type="text" class="form-control" id="user-email" placeholder="Email" name="username" required>
|
||||
<label for="user-email">Email</label>
|
||||
</fieldset>
|
||||
|
||||
<fieldset class="form-label-group">
|
||||
|
||||
if the account is valid, you will receive instruction in your email to continue the reset process.
|
||||
|
||||
</fieldset>
|
||||
|
||||
<fieldset class="form-label-group">
|
||||
|
||||
<?= $error_message ?>
|
||||
</fieldset>
|
||||
<div class="row pt-2">
|
||||
<div class="col-12 col-md-6 mb-1">
|
||||
@@ -53,10 +55,33 @@ $next_page = isset($next_page) ? $next_page : 0;
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<?php
|
||||
} else if ($next_page == 100) {
|
||||
?>
|
||||
<form method="POST" action="/">
|
||||
<fieldset class="form-label-group">
|
||||
Check your email <b><?= $username ?></b> for a link to continue this process.
|
||||
|
||||
</fieldset>
|
||||
|
||||
<fieldset class="form-label-group">
|
||||
<span style="color:red;">The email will expire in a few minutes if you did not receive the password reset email, please contact us.</span>
|
||||
</fieldset>
|
||||
|
||||
<fieldset class="form-label-group">
|
||||
<?= $error_message ?>
|
||||
</fieldset>
|
||||
<div class="row pt-2">
|
||||
|
||||
<div class="col-12 col-md-6 mb-1">
|
||||
<button type="submit" class="btn btn-primary btn-block px-0">Return Home</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<?php
|
||||
} else {
|
||||
?>
|
||||
|
||||
<form>
|
||||
<fieldset class="form-label-group">
|
||||
<input type="text" class="form-control" id="user-email" placeholder="Email" required>
|
||||
|
||||
@@ -40,7 +40,7 @@
|
||||
<link rel="stylesheet" href="/assets/css/responsive.css">
|
||||
|
||||
<!-- Favicon -->
|
||||
<link rel="shortcut icon" type="image/png" href="/assets/img/logo-sm.png">
|
||||
<link rel="shortcut icon" type="image/png" href="/assets/img/coregrade.ico">
|
||||
|
||||
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
|
||||
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
|
||||
@@ -81,7 +81,7 @@
|
||||
<li><a href="#pricing" class="smoothscroll">PLANS</a></li>
|
||||
<li><a href="#download" class="smoothscroll">APP</a></li>
|
||||
<li><a href="#contact" class="smoothscroll">CONTACT</a></li>
|
||||
<li style="background-color: #FC6443;" onclick="viewLogin(); return;"><a href="/auth" >ACCOUNT</a></li>
|
||||
<li style="background-color: #FC6443;" onclick="viewLogin(); return;"><a href="/auth" >START</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
@@ -200,7 +200,7 @@
|
||||
<p class="pill-title">You Are</p>
|
||||
<ul class="pricing-pill wow fadeIn">
|
||||
<li class="active" data-value="individual"><span>Individual</span></li>
|
||||
<li data-value="company"><span>Groups</span></li>
|
||||
<li data-value="company"><span>Need More</span></li>
|
||||
<!--
|
||||
<li data-value="tutor"><span>Parents</span></li>
|
||||
-->
|
||||
@@ -216,19 +216,20 @@
|
||||
<span class="price-tag">Free</span>
|
||||
<h4 class="sublead">Empowering <br> New Skills</h4>
|
||||
<ul class="pricing-list">
|
||||
<li><p>Step-by-step Learning Path</p></li>
|
||||
<li><p>Creative Learning Path</p></li>
|
||||
<li><p>Stay in the loop</p></li>
|
||||
<li><p>Accessibility</p></li>
|
||||
</ul>
|
||||
<a href="/auth/newuser" onclick="viewLogin(); return;" class="btn btn-default btn-outline">Get Started</a>
|
||||
</li>
|
||||
<li id="company">
|
||||
<h2 class="lead2">Groups</h2>
|
||||
<h2 class="lead2">CoreGrade Plus</h2>
|
||||
<span class="price-tag">Contact Us</span>
|
||||
<h4 class="sublead">Quality support that <br> drives success</h4>
|
||||
<ul class="pricing-list">
|
||||
<li><p>Everything Individual + </p></li>
|
||||
<li><p>Integrations</p></li>
|
||||
<li><p>Focus on laid-back acquirements</p></li>
|
||||
<li><p>Flexible Learning</p></li>
|
||||
<li><p>Personal Assistant</p></li>
|
||||
</ul>
|
||||
<a href="/auth/newuser" class="btn btn-default btn-outline">Make me a Pro</a>
|
||||
@@ -264,7 +265,6 @@
|
||||
<button class="btn btn-default btn-fill">Join CoreGrade</button>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -293,7 +293,7 @@
|
||||
<div class="row">
|
||||
<div class="col-xs-12">
|
||||
<div class="download-app text-center wow fadeIn">
|
||||
<img src="/assets/img/mobile_slid.png" alt="Mobile Slide">
|
||||
<!--dimg src="/assets/img/mobile_slid.png" alt="Mobile Slide" -->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -438,7 +438,7 @@ Table of Contents
|
||||
.subscribe-area {
|
||||
width: 100%;
|
||||
height: auto;
|
||||
background-image: url('../img/subscribe_bg.jpg');
|
||||
background-image: url('../img/coregrade_subscribe.jpg');
|
||||
background-repeat: no-repeat;
|
||||
background-position: center;
|
||||
background-size: cover;
|
||||
@@ -489,6 +489,7 @@ Table of Contents
|
||||
width: 100%;
|
||||
height: auto;
|
||||
margin-top: 100px;
|
||||
background-size: contain;
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
Regular → Executable
Reference in New Issue
Block a user