Merge lp:~kangol/openobject-client-web/trunk-autocleanloginfields into lp:openobject-client-web/trunk

Proposed by Christophe Simonis (OpenERP)
Status: Merged
Merged at revision: 4104
Proposed branch: lp:~kangol/openobject-client-web/trunk-autocleanloginfields
Merge into: lp:openobject-client-web/trunk
Diff against target: 38 lines (+7/-11)
1 file modified
addons/openerp/controllers/utils.py (+7/-11)
To merge this branch: bzr merge lp:~kangol/openobject-client-web/trunk-autocleanloginfields
Reviewer Review Type Date Requested Status
Xavier (Open ERP) Pending
Review via email: mp+43678@code.launchpad.net

Description of the change

The function clean_login_fields on decorated secured methods remove the known fields from the kwargs. As an web-addons can add fields to the login page, thoses new fields need to be removed as well. As conventions, theses fields have to starts with "login_".

To post a comment you must log in.
Revision history for this message
Xavier (Open ERP) (xmo-deactivatedaccount) wrote :

Modified a pair of things during merge: used `del kw[k]` in the second loop as we know the key is in the dict (we got it from there), and replaced the string-splitting by a literal tuple (let's not use perl-isms for 3 constant strings in a function)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'addons/openerp/controllers/utils.py'
2--- addons/openerp/controllers/utils.py 2010-11-18 13:32:02 +0000
3+++ addons/openerp/controllers/utils.py 2010-12-14 18:04:53 +0000
4@@ -91,27 +91,23 @@
5 def secured(fn):
6 """A Decorator to make a SecuredController controller method secured.
7 """
8- def clear_login_fields(kw={}):
9+ def clear_login_fields(kw):
10
11 if not kw.get('login_action'):
12 return
13
14- if kw.has_key('db'): del kw['db']
15- if kw.has_key('user'): del kw['user']
16- if kw.has_key('password'): del kw['password']
17- if kw.has_key('login_action'): del kw['login_action']
18+ for k in 'db user password'.split():
19+ kw.pop(k, None)
20+ for k in kw.keys():
21+ if k.startswith('login_'):
22+ kw.pop(k, None)
23
24 def get_orig_args(kw={}):
25 if not kw.get('login_action'):
26 return kw
27
28 new_kw = kw.copy()
29-
30- if new_kw.has_key('db'): del new_kw['db']
31- if new_kw.has_key('user'): del new_kw['user']
32- if new_kw.has_key('password'): del new_kw['password']
33- if new_kw.has_key('login_action'): del new_kw['login_action']
34-
35+ clear_login_fields(new_kw)
36 return new_kw
37
38 def wrapper(*args, **kw):