Mercurial > farol > farol
view farol/session.py @ 0:4a9f23230eba
Initial Release
author | Benoît Allard <benoit.allard@greenbone.net> |
---|---|
date | Wed, 24 Sep 2014 10:07:49 +0200 |
parents | |
children | 4219d6fb4c38 |
line wrap: on
line source
# -*- encoding: utf-8 -*- # Description: # Farol Session Management # # Authors: # BenoƮt Allard <benoit.allard@greenbone.net> # # Copyright: # Copyright (C) 2014 Greenbone Networks GmbH # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation; either version 2 # of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. """\ Stuff related to temporary storage """ from functools import wraps import uuid from flask import session, flash, redirect, url_for CVRFs = {} def set_current(cvrf): session['id'] = uuid.uuid4() CVRFs[session['id']] = cvrf def get_current(): if not has_current(): return None return CVRFs[session['id']] def has_current(): if 'id' not in session: return False if session['id'] not in CVRFs: return False return CVRFs[session['id']] is not None def del_current(): if 'id' in session: if session['id'] in CVRFs: del CVRFs[session['id']] del session['id'] def document_required(f): @wraps(f) def decorated_function(*args, **kwargs): if not has_current(): flash('Operation invalid without document', 'warning') return redirect(url_for('new')) return f(*args, **kwargs) return decorated_function