Beispiel #1
0
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")
Beispiel #2
0
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
Beispiel #3
0
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)
Beispiel #4
0
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'))