def logout(self, came_from='/'):
     if request.identity is not None:
         username = request.identity['repoze.who.userid']
         if 'GUEST-' in username:
             DBSession = DBSessionmaker()
             try:
                 u = DBSession.query(User).filter(User.user_name == username).all()
             except:
                 DBSession.close()
                 redirect('/logout_handler')
             if len(u) == 0:
                 DBSession.close()
                 redirect('/logout_handler')
             buds = DBSession.query(Buddies).filter(or_(Buddies.user_initiated == u[0], Buddies.user_target == u[0])).all()
             msgs = DBSession.query(Message).filter(or_(Message.uto == u[0], Message.ufrom == u[0])).all()
             try:
                 buds = DBSession.query(Buddies).filter(or_(Buddies.user_initiated == u[0], Buddies.user_target == u[0])).all()
                 msgs = DBSession.query(Message).filter(or_(Message.uto == u[0], Message.ufrom == u[0])).all()
             except:
                 DBSession.close()
                 redirect('/logout_handler')
             DBSession.delete(u[0])
             for b in buds:
                 DBSession.delete(b)
             for m in msgs:
                 DBSession.delete(m)
             DBSession.commit()
             DBSession.close()
     redirect('/logout_handler')
示例#2
0
 def logout(self, came_from='/'):
     if request.identity is not None:
         username = request.identity['repoze.who.userid']
         if 'GUEST-' in username:
             DBSession = DBSessionmaker()
             try:
                 u = DBSession.query(User).filter(
                     User.user_name == username).all()
             except:
                 DBSession.close()
                 redirect('/logout_handler')
             if len(u) == 0:
                 DBSession.close()
                 redirect('/logout_handler')
             buds = DBSession.query(Buddies).filter(
                 or_(Buddies.user_initiated == u[0],
                     Buddies.user_target == u[0])).all()
             msgs = DBSession.query(Message).filter(
                 or_(Message.uto == u[0], Message.ufrom == u[0])).all()
             try:
                 buds = DBSession.query(Buddies).filter(
                     or_(Buddies.user_initiated == u[0],
                         Buddies.user_target == u[0])).all()
                 msgs = DBSession.query(Message).filter(
                     or_(Message.uto == u[0], Message.ufrom == u[0])).all()
             except:
                 DBSession.close()
                 redirect('/logout_handler')
             DBSession.delete(u[0])
             for b in buds:
                 DBSession.delete(b)
             for m in msgs:
                 DBSession.delete(m)
             DBSession.commit()
             DBSession.close()
     redirect('/logout_handler')