diff --git a/wrenchboard/src/shared_tool/account.cc b/wrenchboard/src/shared_tool/account.cc index fc032bab..12eb7fb8 100644 --- a/wrenchboard/src/shared_tool/account.cc +++ b/wrenchboard/src/shared_tool/account.cc @@ -1855,7 +1855,18 @@ long account_session_check(CVars in, CVars out) { logfmt(logINFO, "long account_session_check(CVars in, CVars out)"); long ret = PHP_INVALID_SESSION; try { + long session_expire_minutes = 15; REQ_STRING(in, "sessionid", 4, 140, "(.*)"); + OPTIONAL(in, "mode") REQ_LONG(in, "mode", 1, -1); + if (in["mode"].Long() == 900 ){ + if (load_db_record(out, "SELECT s.* FROM members_session s LEFT JOIN members m ON m.id=s.member_id " + " WHERE s.updated > (now() - interval '%lu minutes') " + " AND s.session='%s'", member_id, session_expire_minutes, in["sessionid"].c_str()) > 0) { + //pgsql_exec("UPDATE members_session SET updated=NOW() WHERE member_id=%ld AND session='%s'", in["sessionid"].c_str()); + ret = PHP_API_OK; + } + return ret; + } long member_id = REQ_LONG(in, "member_id", 1, -1); if (load_db_record(out, "SELECT uid FROM members_session WHERE session='%s' AND member_id = %lu", in["sessionid"].c_str(),member_id) > 0) { if (SessionCheck(out["uid"].Long(), in["sessionid"].c_str(), 0) > 0) { diff --git a/wrenchboard/src/shared_tool/media.cc b/wrenchboard/src/shared_tool/media.cc index ceacba6c..b9fbee1f 100644 --- a/wrenchboard/src/shared_tool/media.cc +++ b/wrenchboard/src/shared_tool/media.cc @@ -64,7 +64,8 @@ long WrenchFindStoredMedia(CVars in, CVars &out) { switch(file_section_no){ case WRENCH_FILE_PROFILE: - snprintf(vname, sizeof (vname), "SELECT * FROM members WHERE id =1", in["file_uid"].c_str()); + //file_uid is the UID of the user + snprintf(vname, sizeof (vname), "SELECT * FROM members WHERE uid ='%s'", in["file_uid"].c_str()); break; case WRENCH_FILE_MYFILE: diff --git a/www-api/app/Controllers/BaseController.php b/www-api/app/Controllers/BaseController.php index 5ceacd23..3a32c78f 100644 --- a/www-api/app/Controllers/BaseController.php +++ b/www-api/app/Controllers/BaseController.php @@ -99,10 +99,20 @@ abstract class BaseController extends Controller return $wrenchboard->cfgReadChar($config_item); } + public function sessionCheckString($sessionid){ + $in["action"] = WRENCHBOARD_SESSION_CHECK; + $in["sessionid"] = $sessionid; + $in["member_id"] = 0; // just for capatibility + $in["mode"] = 900; + $wrenchboard = new \App\Models\BackendModel(); + $ret = $wrenchboard->wrenchboard_api($in, $out); + return $ret; + } public function sessionCheck($sessionid,$member_id){ $in["action"] = WRENCHBOARD_SESSION_CHECK; $in["sessionid"] = $sessionid; $in["member_id"] = $member_id; + $in["mode"] = 0; $wrenchboard = new \App\Models\BackendModel(); $ret = $wrenchboard->wrenchboard_api($in, $out); return $ret; diff --git a/www-api/app/Controllers/WrenchMedia.php b/www-api/app/Controllers/WrenchMedia.php index 1041f5e8..a61a1fa0 100644 --- a/www-api/app/Controllers/WrenchMedia.php +++ b/www-api/app/Controllers/WrenchMedia.php @@ -51,7 +51,7 @@ class WrenchMedia extends BaseController $fileSection = $uriSegments[$segLen-2]; $fileUID = $uriSegments[$segLen-1]; - $supportedSections = ['profile'=>100,'myfile'=>200,'contracts'=>300,'family'=>400]; + $supportedSections = ['nn'=>100,'myfile'=>200,'contracts'=>300,'family'=>400]; if (!in_array($fileSection, $supportedSections)) { // section not supported // return;