Beispiel #1
0
    def get(self):
        try:
            client_id = self.request.GET['client_id']
        except:
            self.redirect("/error?msg=missing client_id for new session")
            return

        try:
            client = ndb.Key(urlsafe=client_id).get()
        except:
            self.redirect("/error?msg=client was not found")
            return

        session = Session()
        session.dni = client.dni
        session.subject = "Revisión"
        session.comments = ""
        session.proposal = ""
        session.put()
        self.redirect("/modifySession?session_id=" + session.key.urlsafe() + "&client_id=" + client_id)
Beispiel #2
0
def get_verified_data(jws, expected=None, session_token=None):
    headers = json_parse(get_jws_part(jws, 0))
    raw_username = headers['kikUsr']
    username = raw_username.lower()
    hostname = headers['kikCrdDm'].split('/')[0].lower()
    payload = get_jws_part(jws, 1)

    if expected is not None and payload != expected:
        logging.info('jws, payload does not match expected value')
        raise Exception('payload does not match expected value')

    try:
        data = json_parse(payload)
    except:
        data = None

    try:
        session = ndb.Key(urlsafe=session_token).get()
    except Exception as e:
        session = None
    if session is None or not isinstance(
            session, Session
    ) or session.username != username or session.hostname != hostname:
        session = None
        session_token = None
        if username not in TEST_USERS:
            verify_jws(jws, raw_username, hostname,
                       (headers.get('kikDbg') and DEBUG))
        elif not DEBUG:
            logging.info('jws, chrome user detected')
            raise Exception('chrome user detected')
        try:
            session = Session(username=username, hostname=hostname)
            session.put()
            session_token = session.key.urlsafe()
        except:
            pass

    return username, hostname, data, session_token
Beispiel #3
0
def get_verified_data(jws, expected=None, session_token=None):
    headers = json_parse(get_jws_part(jws, 0))
    raw_username = headers['kikUsr']
    username = raw_username.lower()
    hostname = headers['kikCrdDm'].split('/')[0].lower()
    payload = get_jws_part(jws, 1)

    if expected is not None and payload != expected:
        logging.info('jws, payload does not match expected value')
        raise Exception('payload does not match expected value')

    try:
        data = json_parse(payload)
    except:
        data = None

    try:
        session = ndb.Key(urlsafe=session_token).get()
    except Exception:
        session = None
    if session is None or not isinstance(session, Session) \
            or session.username != username or session.hostname != hostname:
        session_token = None
        if username not in TEST_USERS:
            verify_jws(jws, raw_username, hostname, (headers.get('kikDbg') and DEBUG))
        elif not DEBUG:
            logging.info('jws, chrome user detected')
            raise Exception('chrome user detected')
        try:
            session = Session(username=username, hostname=hostname)
            session.put()
            session_token = session.key.urlsafe()
        except:
            pass

    return username, hostname, data, session_token