Mercurial > farol > farol
diff 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 diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/farol/session.py Wed Sep 24 10:07:49 2014 +0200 @@ -0,0 +1,65 @@ +# -*- 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