def logout_all(): open_djsets = DJSet.query.filter(DJSet.dtend == None).order_by(DJSet.dtstart.desc()).all() for djset in open_djsets: djset.dtend = datetime.utcnow() db.session.commit() redis_conn.delete("dj_timeout")
def logout_all_but_current(dj): current_djset = None open_djsets = DJSet.query.filter(DJSet.dtend == None).order_by(DJSet.dtstart.desc()).all() for djset in open_djsets: if current_djset is None and djset.dj_id == dj.id: current_djset = djset else: djset.dtend = datetime.utcnow() db.session.commit() redis_conn.delete("dj_timeout") return current_djset
def change_autologout(): if request.method == 'GET': dj_timeout = redis_conn.get('dj_timeout') if dj_timeout is None: return jsonify(success=True, autologout=True) else: return jsonify(success=True, autologout=False) elif request.method == 'POST': if 'autologout' not in request.form: return jsonify(success=False, error='No autologout field given in POST') if request.form['autologout'] == 'enable': redis_conn.delete('dj_timeout') # This needs to be reexpired now since dj_timeout changed after dj_interact return jsonify(success=True, autologout=True) else: redis_conn.set('dj_timeout', app.config['EXTENDED_DJ_TIMEOUT']) return jsonify(success=True, autologout=False)
def logout(setid): djset = DJSet.query.get_or_404(setid) if djset.dtend is None: djset.dtend = datetime.datetime.utcnow() else: # This has already been logged out return redirect(url_for('trackman.login')) db.session.commit() # Reset the dj activity timeout period redis_conn.delete('dj_timeout') # Set dj_active expiration to NO_DJ_TIMEOUT to reduce automation start time redis_conn.set('dj_active', 'false') redis_conn.expire('dj_active', int(app.config['NO_DJ_TIMEOUT'])) # email playlist if 'email_playlist' in request.form and request.form.get('email_playlist') == 'true': email_playlist(djset) return redirect(url_for('trackman.login'))