Exemple #1
0
def validateSession(userId, appId, sessionId):
    print("validate user")
    sessionValid = True
    result = checkfetchSessionDataExsists(userId, appId, sessionId)
    if result != "" and result is not None:
        sessionInsec = (datetime.now() -
                        result["LAST_REQ_TIME"]).total_seconds()
        lastloginInSec = (datetime.now() -
                          result["LOGIN_TIME"]).total_seconds()
        config = excecuteFetchoneQuery(
            "SELECT * FROM TB_APP_CONFIGS where app_id like '" + appId + "'")
        if config != "" and config is not None:
            sessionExpiry = config["SESSION_TIMEOUT"]
            loginExpiry = config["LOGIN_TIMEOUT"]
            newExpiry = config["NEW_DAY_EXPIRY"]
            isNewExpiry = isNewDay(result["LOGIN_TIME"], newExpiry)
            if result[
                    "SESSION_ID"] == sessionId and sessionInsec > sessionExpiry and lastloginInSec > loginExpiry and (
                        not isNewExpiry):
                updatesessionExpiry(userId, appId)
                sessionValid = False
            else:
                updateSession(userId, appId, sessionId)
        else:
            sessionValid = False
    else:
        sessionValid = False
    return sessionValid
def fetchSessionDataExsists(userId, appId):
    sessionData = ""
    result = excecuteFetchoneQuery(
        """SELECT * FROM "TB_USER_LAST_LOGIN" where "USER_ID" like '""" +
        userId + """' and "APP_ID" like '""" + appId + "'")
    if result != "" and result is not None:
        if result["SESSION_ID"] != "" and result["SESSION_ID"] is not None:
            sessionData = result
    return sessionData
def pinExpiry(appid, userid):
    logging.debug("pin expiry")
    result = excecuteFetchoneQuery(
        """SELECT max("CHANGE_TIME") as LAST_MODF FROM "TB_USER_PASSWORDS" where "USER_ID" like '"""
        + userid + """' and "APP_ID" like '""" + appid + "'")
    if result != "" and str(result) != "[None]" and result is not None:
        logging.debug("password present")
        maxModf = result["LAST_MODF"]
        config = excecuteFetchoneQuery(
            """SELECT * FROM "TB_APP_CONFIGS" where "APP_ID" like '""" +
            appid + "'")
        if config != "" and config is not None:
            passwordExpiry = config["PASS_CHANGE_FREQ"]
            logging.debug(maxModf)
            return checkExpiry(maxModf, passwordExpiry)
        else:
            return True
    else:
        logging.debug("No previous password")
        return False
def login_user(req, userId, appid):
    logging.debug("Login user")
    pin = req['requestData']['pin']
    result = excecuteFetchoneQuery(
        """SELECT * FROM "TB_USER_DETAILS" where "USER_ID" like '""" + userId +
        """' and "APP_ID" like '""" + appid + "'")
    res = authenticate_user(result, userId, appid, pin)
    if res['loginResp']['code'] == "000":
        sessionId = fetchSession(userId, appid)
        res = updateRespJson(res, "loginResp", {"sessionId": sessionId})
    return res