annotate farol/controller.py @ 63:b4fb652484b4

Define a split_fields function to split fields, and use it
author Benoît Allard <benoit.allard@greenbone.net>
date Wed, 08 Oct 2014 14:15:16 +0200
parents ce49bd1512dd
children 5535ac5fef37
rev   line source
58
fbc413b8a46e Unify note update/creation from forms
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
1 # -*- encoding: utf-8 -*-
fbc413b8a46e Unify note update/creation from forms
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
2 # Description:
fbc413b8a46e Unify note update/creation from forms
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
3 # Common controller Web stuffs
fbc413b8a46e Unify note update/creation from forms
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
4 #
fbc413b8a46e Unify note update/creation from forms
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
5 # Authors:
fbc413b8a46e Unify note update/creation from forms
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
6 # BenoƮt Allard <benoit.allard@greenbone.net>
fbc413b8a46e Unify note update/creation from forms
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
7 #
fbc413b8a46e Unify note update/creation from forms
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
8 # Copyright:
fbc413b8a46e Unify note update/creation from forms
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
9 # Copyright (C) 2014 Greenbone Networks GmbH
fbc413b8a46e Unify note update/creation from forms
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
10 #
fbc413b8a46e Unify note update/creation from forms
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
11 # This program is free software; you can redistribute it and/or
fbc413b8a46e Unify note update/creation from forms
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
12 # modify it under the terms of the GNU General Public License
fbc413b8a46e Unify note update/creation from forms
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
13 # as published by the Free Software Foundation; either version 2
fbc413b8a46e Unify note update/creation from forms
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
14 # of the License, or (at your option) any later version.
fbc413b8a46e Unify note update/creation from forms
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
15 #
fbc413b8a46e Unify note update/creation from forms
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
16 # This program is distributed in the hope that it will be useful,
fbc413b8a46e Unify note update/creation from forms
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
17 # but WITHOUT ANY WARRANTY; without even the implied warranty of
fbc413b8a46e Unify note update/creation from forms
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
18 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
fbc413b8a46e Unify note update/creation from forms
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
19 # GNU General Public License for more details.
fbc413b8a46e Unify note update/creation from forms
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
20 #
fbc413b8a46e Unify note update/creation from forms
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
21 # You should have received a copy of the GNU General Public License
fbc413b8a46e Unify note update/creation from forms
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
22 # along with this program; if not, write to the Free Software
fbc413b8a46e Unify note update/creation from forms
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
23 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
fbc413b8a46e Unify note update/creation from forms
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
24
fbc413b8a46e Unify note update/creation from forms
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
25 """\
fbc413b8a46e Unify note update/creation from forms
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
26 Some common routines for handling of Notes, Acknowledgments and Reference that
fbc413b8a46e Unify note update/creation from forms
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
27 is shared for the Document and the Vulnerabilities.
fbc413b8a46e Unify note update/creation from forms
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
28 """
fbc413b8a46e Unify note update/creation from forms
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
29
fbc413b8a46e Unify note update/creation from forms
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
30 from flask import request
fbc413b8a46e Unify note update/creation from forms
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
31
62
ce49bd1512dd Make pyflafes a happier
Benoît Allard <benoit.allard@greenbone.net>
parents: 61
diff changeset
32 from farolluz.cvrf import CVRFNote, CVRFReference, CVRFAcknowledgment
58
fbc413b8a46e Unify note update/creation from forms
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
33
63
b4fb652484b4 Define a split_fields function to split fields, and use it
Benoît Allard <benoit.allard@greenbone.net>
parents: 62
diff changeset
34 def split_fields(field, separator=','):
b4fb652484b4 Define a split_fields function to split fields, and use it
Benoît Allard <benoit.allard@greenbone.net>
parents: 62
diff changeset
35 if not field:
b4fb652484b4 Define a split_fields function to split fields, and use it
Benoît Allard <benoit.allard@greenbone.net>
parents: 62
diff changeset
36 return []
b4fb652484b4 Define a split_fields function to split fields, and use it
Benoît Allard <benoit.allard@greenbone.net>
parents: 62
diff changeset
37 return [f.strip() for f in field.split(separator)]
b4fb652484b4 Define a split_fields function to split fields, and use it
Benoît Allard <benoit.allard@greenbone.net>
parents: 62
diff changeset
38
58
fbc413b8a46e Unify note update/creation from forms
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
39 def update_note_from_request(note):
fbc413b8a46e Unify note update/creation from forms
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
40 note._type = request.form['type']
fbc413b8a46e Unify note update/creation from forms
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
41 note._ordinal = int(request.form['ordinal'])
fbc413b8a46e Unify note update/creation from forms
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
42 note._note = request.form['note']
fbc413b8a46e Unify note update/creation from forms
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
43 note._title = request.form['title'] or None
fbc413b8a46e Unify note update/creation from forms
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
44 note._audience = request.form['audience'] or None
fbc413b8a46e Unify note update/creation from forms
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
45
fbc413b8a46e Unify note update/creation from forms
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
46 def create_note_from_request():
fbc413b8a46e Unify note update/creation from forms
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
47 title = request.form['title'] or None
fbc413b8a46e Unify note update/creation from forms
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
48 audience = request.form['audience'] or None
fbc413b8a46e Unify note update/creation from forms
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
49
fbc413b8a46e Unify note update/creation from forms
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
50 return CVRFNote(request.form['type'], int(request.form['ordinal']),
fbc413b8a46e Unify note update/creation from forms
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
51 request.form['note'], title, audience)
60
c6e7175ff28c Unify acknowledgments update/creation from forms
Benoît Allard <benoit.allard@greenbone.net>
parents: 58
diff changeset
52
61
55b72057b066 Unify reference update/creation from forms
Benoît Allard <benoit.allard@greenbone.net>
parents: 60
diff changeset
53 def update_reference_from_request(ref):
55b72057b066 Unify reference update/creation from forms
Benoît Allard <benoit.allard@greenbone.net>
parents: 60
diff changeset
54 ref._type = request.form['type'] or None
55b72057b066 Unify reference update/creation from forms
Benoît Allard <benoit.allard@greenbone.net>
parents: 60
diff changeset
55 ref._url = request.form['url']
55b72057b066 Unify reference update/creation from forms
Benoît Allard <benoit.allard@greenbone.net>
parents: 60
diff changeset
56 ref._description = request.form['description']
55b72057b066 Unify reference update/creation from forms
Benoît Allard <benoit.allard@greenbone.net>
parents: 60
diff changeset
57
55b72057b066 Unify reference update/creation from forms
Benoît Allard <benoit.allard@greenbone.net>
parents: 60
diff changeset
58 def create_reference_from_request():
55b72057b066 Unify reference update/creation from forms
Benoît Allard <benoit.allard@greenbone.net>
parents: 60
diff changeset
59 return CVRFReference(request.form['url'], request.form['description'],
55b72057b066 Unify reference update/creation from forms
Benoît Allard <benoit.allard@greenbone.net>
parents: 60
diff changeset
60 request.form['type'] or None)
55b72057b066 Unify reference update/creation from forms
Benoît Allard <benoit.allard@greenbone.net>
parents: 60
diff changeset
61
60
c6e7175ff28c Unify acknowledgments update/creation from forms
Benoît Allard <benoit.allard@greenbone.net>
parents: 58
diff changeset
62 def update_acknowledgment_from_request(ack):
63
b4fb652484b4 Define a split_fields function to split fields, and use it
Benoît Allard <benoit.allard@greenbone.net>
parents: 62
diff changeset
63 ack._names = split_fields(request.form['names'])
b4fb652484b4 Define a split_fields function to split fields, and use it
Benoît Allard <benoit.allard@greenbone.net>
parents: 62
diff changeset
64 ack._organizations = split_fields(request.form['organizations'])
60
c6e7175ff28c Unify acknowledgments update/creation from forms
Benoît Allard <benoit.allard@greenbone.net>
parents: 58
diff changeset
65 ack._description = request.form['description'] or None
c6e7175ff28c Unify acknowledgments update/creation from forms
Benoît Allard <benoit.allard@greenbone.net>
parents: 58
diff changeset
66 ack._url = request.form['url'] or None
c6e7175ff28c Unify acknowledgments update/creation from forms
Benoît Allard <benoit.allard@greenbone.net>
parents: 58
diff changeset
67
c6e7175ff28c Unify acknowledgments update/creation from forms
Benoît Allard <benoit.allard@greenbone.net>
parents: 58
diff changeset
68 def create_acknowledgment_from_request():
c6e7175ff28c Unify acknowledgments update/creation from forms
Benoît Allard <benoit.allard@greenbone.net>
parents: 58
diff changeset
69 ack = CVRFAcknowledgment()
63
b4fb652484b4 Define a split_fields function to split fields, and use it
Benoît Allard <benoit.allard@greenbone.net>
parents: 62
diff changeset
70 ack._names = split_fields(request.form['names'])
b4fb652484b4 Define a split_fields function to split fields, and use it
Benoît Allard <benoit.allard@greenbone.net>
parents: 62
diff changeset
71 ack._organizations = split_fields(request.form['organizations'])
60
c6e7175ff28c Unify acknowledgments update/creation from forms
Benoît Allard <benoit.allard@greenbone.net>
parents: 58
diff changeset
72 ack._description = request.form['description'] or None
c6e7175ff28c Unify acknowledgments update/creation from forms
Benoît Allard <benoit.allard@greenbone.net>
parents: 58
diff changeset
73 ack._url = request.form['url'] or None
c6e7175ff28c Unify acknowledgments update/creation from forms
Benoît Allard <benoit.allard@greenbone.net>
parents: 58
diff changeset
74 return ack

http://farol.wald.intevation.org