This commit is contained in:
2020-02-05 18:41:00 -05:00
parent ef95717d7c
commit 33fe158465
2 changed files with 84 additions and 11 deletions
+5 -4
View File
@@ -16,7 +16,7 @@ database:
port = 5432;
};
mailsend:
mailsendBAK:
{
from = "savvy@chiefsoft.com";
server = "smtp.google.com";
@@ -26,10 +26,11 @@ mailsend:
name = "CoreGrade Beta";
};
mailsendBAK:
mailsend:
{
from = "demo@coregrade.com";
server = "virtualmail.chiefsoft.com";
from = "support@coregrade.com";
# server = "virtualmail.chiefsoft.com";
server = "10.0.0.23";
domain = "coregrade.com";
user = "support@coregrade.com";
pass = "may12002!x";
+79 -7
View File
@@ -15,6 +15,8 @@
#define CREATE_BY_EMAIL 1000
#define CREATE_BY_PHONE 2000
long CreateDefaultPage(CVars in, CVars &out);
struct MemoryStruct {
char *memory;
size_t size;
@@ -142,12 +144,14 @@ long SessionCheck(long uid, const char *sessionid, int create) {
return -1L; // Invalif parameters
}
// Clean old sessions
pgsql_exec("DELETE FROM members_session WHERE member_id=%ld AND updated < (now() - interval '15 minutes')", uid);
pgsql_exec("DELETE FROM members_session WHERE member_id=%ld AND updated < (now() - interval '35 minutes')", uid);
// Update/check existing session
if (create == 0 && pgsql_exec("UPDATE members_session SET updated=NOW() WHERE member_id=%ld AND session='%s'", uid, sessionid) > 0) {
return 1L; // Session updated
}
if (create > 0) {
pgsql_exec("DELETE FROM members_session WHERE member_id=%ld", uid);
// Check session i?
const PGresult *res = pgsql_query("SELECT * FROM members_session WHERE member_id=%ld AND session<>'%s'", uid, sessionid);
if (res != NULL && pgsql_num_rows(res) > 0) {
@@ -180,13 +184,18 @@ long LoginCoreGradeAccount(CVars in, CVars &out) {
REQ_STRING(in, "password", 5, 49, "(.*)");
REQ_STRING(in, "sessionid", 4, 40, "(.*)");
OPTIONAL(in, "loc") REQ_STRING(in, "loc", 3, 15, "(.*)");
ret = load_db_record(out, "SELECT UPPER( md5( now()::text ) ) AS sessionid, *,id AS member_id FROM members WHERE status=1 AND LOWER(username)=LOWER('%s') AND password= md5('%s')", in["username"].c_str(), in["password"].c_str());
if (ret) {
if (SessionCheck(out["member_id"].Long(), out["sessionid"].c_str(), 1) > 0) {
out["stauts"] = "OK";
CVars y, z;
y["member_id"] = out["member_id"];
y["member_id"].set_valid(true);
CreateDefaultPage(y, z);
ret = PHP_API_OK;
} else {
out["status"] = "Session check failed";
@@ -220,9 +229,9 @@ long CreateCoreGradeAccountPending(CVars in, CVars &out) {
ALTER TABLE ONLY members_pending
ADD CONSTRAINT members_pending_id_key UNIQUE (id);
*/
REQ_STRING(in, "username", 5, 49, "(.*)");
REQ_STRING(in, "firstname", 2, 49, "(.*)");
REQ_STRING(in, "lastname", 2, 49, "(.*)");
@@ -289,6 +298,69 @@ long CreateCoreGradeAccountPending(CVars in, CVars &out) {
}
//******************************************************************************
long CreateDefaultPage(CVars in, CVars &out) {
logfmt(logINFO, "CreateDefaultPage()");
long ret = PHP_API_BAD_PARAM;
long member_id = REQ_LONG(in, "member_id", 1, -1);
const char *loc = getenv("REMOTE_ADDR");
try {
load_db_record(out, "SELECT 'PG'|| UPPER( md5( now()::text ) ) AS page_key");
// long lonkF = load_db_record(out, "SELECT *,id AS pending_id FROM members_pages WHERE member_id = %lu AND page_mode='DEFAULT' ", in["member_id"].Long());
const PGresult* res = pgsql_query("SELECT id FROM members_pages WHERE member_id = %lu AND page_mode='DEFAULT' ", in["member_id"].Long());
int rcc= pgsql_num_rows(res);
if (rcc == 0) {
CVars x;
x["member_id"] = member_id;
x["member_id"].set_valid(true);
x["page_key"] = out["page_key"];
x["page_key"].set_valid(true);
x["page_mode"] = "DEFAULT";
x["page_mode"].set_valid(true);
x["title"] = "My default page.";
x["title"].set_valid(true);
ret = insert_db_record(DBS_VALID, "members_pages", "members_pages_id_seq", x);
if (ret > 0) {
// AccountPendingMail(x); welcome email
}
}
} catch (bad_parameter) {
out["status"] = "ERROR";
}
logfmt(logINFO, "/CreateDefaultPage()");
return ret;
}
/*
CREATE TABLE members_pages (
id SERIAL,
member_id INT REFERENCES members(id),
page_mode VARCHAR(15),
page_key VARCHAR(150) UNIQUE NOT NULL,
title VARCHAR(50),
status integer DEFAULT 1,
added timestamp without time zone DEFAULT now()
);
ALTER TABLE ONLY members_pages
ADD CONSTRAINT members_pages_id_key UNIQUE (id);
*/
//*****************************************************************************
long CreateCoreGradeAccount(CVars in, CVars &out) {
logfmt(logINFO, "CreateCoreGradeAccount()");
long ret = PHP_API_BAD_PARAM;
@@ -326,7 +398,7 @@ long CreateCoreGradeAccount(CVars in, CVars &out) {
// pgsql_query("UPDATE members SET password = md5('%s') WHERE id = %lu", in["pass1"].c_str(), ret);
pgsql_query("UPDATE members_pending SET status = 5,verified=now() WHERE id = %lu", out["pending_id"].Long());
// AccountPendingMail(x); welcome email
// AccountPendingMail(x); welcome email
}