Exemple #1
0
def init_local():
    # Change session engine bind, if needed.
    if Session.get_bind(None) != _engine:
        log.debug("init_local(): [Re-]configuring session bind.")
        Session.configure(bind=_engine)

    # Detect stale pool database connections.
    # In case of failure, the pool will reconnect automatically.
    # This is not needed when using only models, but it is needed when using either the engine
    # or the session directly to do raw queries.
    try:
        Session.execute("SELECT 1")

    except OperationalError, e:
        if getattr(e, 'connection_invalidated') and e.connection_invalidated:
            log.warn("init_local(): database connection was invalidated.")
        else:
            log.warn("init_local(): database exception: '%s'." % ( str(e) ) )
Exemple #2
0
 def get_by_lower_email(workspace_id, email):
     query = """SELECT * FROM "user"
                             WHERE workspace_id = %i
                                 AND lower(email) = lower(%s)
                             LIMIT 1""" % (workspace_id,
                                           escape_pg_string(email))
     r = Session.execute(query)
     rr = r.fetchone()
     Session.rollback()
     return rr
Exemple #3
0
Fichier : user.py Projet : tmbx/kas
 def get_by_lower_email(workspace_id, email):
     query = """SELECT * FROM "user"
                             WHERE workspace_id = %i
                                 AND lower(email) = lower(%s)
                             LIMIT 1""" % (
         workspace_id,
         escape_pg_string(email),
     )
     r = Session.execute(query)
     rr = r.fetchone()
     Session.rollback()
     return rr
Exemple #4
0
 def requested_in_last_seconds(workspace_id, user_id, max_seconds):
     query = """SELECT * FROM wsrequest
                             WHERE workspace_id=%i
                                 AND user_id=%i
                                 AND (date_part('epoch', now()) - req_date) < %i
                                 ORDER BY req_date DESC
                                 LIMIT 1""" \
                             % ( workspace_id, user_id, max_seconds)
     log.debug("requested_in_last_seconds(): query='%s'." % ( query ) )
     r = Session.execute(query)
     rr = r.fetchone()
     Session.rollback()
     if rr:
         return True
     return False
Exemple #5
0
 def requested_in_last_seconds(workspace_id, user_id, max_seconds):
     query = """SELECT * FROM wsrequest
                             WHERE workspace_id=%i
                                 AND user_id=%i
                                 AND (date_part('epoch', now()) - req_date) < %i
                                 ORDER BY req_date DESC
                                 LIMIT 1""" \
                             % ( workspace_id, user_id, max_seconds)
     log.debug("requested_in_last_seconds(): query='%s'." % (query))
     r = Session.execute(query)
     rr = r.fetchone()
     Session.rollback()
     if rr:
         return True
     return False
Exemple #6
0
 def accepted_lately(workspace_id, user_id):
     max_seconds = 600
     query = """SELECT * FROM chatrequest 
                             WHERE workspace_id=%i 
                                 AND user_id=%i 
                                 AND accepted=True
                                 AND (date_part('epoch', now()) - accepted_date) < %i
                                 ORDER BY accepted_date DESC
                                 LIMIT 1""" \
                             % ( workspace_id, user_id, max_seconds)
     log.debug("accepted_in_last_seconds(): query='%s'." % ( query ) )
     r = Session.execute(query)
     rr = r.fetchone()
     Session.rollback()
     if rr:
         return True
     return False
Exemple #7
0
    def delete_workspace(workspace_id):
        # This part is done with the current transaction (commit must be done in the callers).
        ws = Workspace.get_by(id=workspace_id)
        if not ws: return
        ws.deleted = True

        Session.execute("DELETE FROM chatmessage WHERE workspace_id=%i" % ( workspace_id ))
        Session.execute("DELETE FROM chatrequest WHERE workspace_id=%i" % ( workspace_id ))
        Session.execute("DELETE FROM kfsnode WHERE workspace_id=%i" % ( workspace_id ))
        Session.execute("DELETE FROM vncsession WHERE workspace_id=%i" % ( workspace_id ))
        Session.execute("DELETE FROM wsrequest WHERE workspace_id=%i" % ( workspace_id ))
        Session.execute("DELETE FROM \"user\" WHERE workspace_id=%i" % ( workspace_id ))