Mercurial > kallithea
comparison pylons_app/controllers/login.py @ 417:3ed2d46a2ca7
permission refactoring,
Implemented views for default permissions,
fixes #23 user registration is controlled by permission system.
Implemented manual registration option
websetup fills default permissions
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Sat, 21 Aug 2010 16:34:37 +0200 |
parents | 98abf8953b87 |
children | 63c697d1a631 |
comparison
equal
deleted
inserted
replaced
416:25ab66a26975 | 417:3ed2d46a2ca7 |
---|---|
15 # | 15 # |
16 # You should have received a copy of the GNU General Public License | 16 # You should have received a copy of the GNU General Public License |
17 # along with this program; if not, write to the Free Software | 17 # along with this program; if not, write to the Free Software |
18 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, | 18 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, |
19 # MA 02110-1301, USA. | 19 # MA 02110-1301, USA. |
20 | |
21 """ | |
22 Created on April 22, 2010 | |
23 login controller for pylons | |
24 @author: marcink | |
25 """ | |
20 from formencode import htmlfill | 26 from formencode import htmlfill |
21 from pylons import request, response, session, tmpl_context as c, url | 27 from pylons import request, response, session, tmpl_context as c, url |
22 from pylons.controllers.util import abort, redirect | 28 from pylons.controllers.util import abort, redirect |
23 from pylons_app.lib.auth import AuthUser | 29 from pylons_app.lib.auth import AuthUser, HasPermissionAnyDecorator |
24 from pylons_app.lib.base import BaseController, render | 30 from pylons_app.lib.base import BaseController, render |
25 from pylons_app.model.forms import LoginForm, RegisterForm | 31 from pylons_app.model.forms import LoginForm, RegisterForm |
26 from pylons_app.model.user_model import UserModel | 32 from pylons_app.model.user_model import UserModel |
27 import formencode | 33 import formencode |
28 import logging | 34 import logging |
29 """ | |
30 Created on April 22, 2010 | |
31 login controller for pylons | |
32 @author: marcink | |
33 """ | |
34 | 35 |
35 log = logging.getLogger(__name__) | 36 log = logging.getLogger(__name__) |
36 | 37 |
37 class LoginController(BaseController): | 38 class LoginController(BaseController): |
38 | 39 |
59 prefix_error=False, | 60 prefix_error=False, |
60 encoding="UTF-8") | 61 encoding="UTF-8") |
61 | 62 |
62 return render('/login.html') | 63 return render('/login.html') |
63 | 64 |
64 | 65 @HasPermissionAnyDecorator('hg.admin', 'hg.register.auto_activate', 'hg.register.manual_activate') |
65 def register(self): | 66 def register(self): |
67 user_model = UserModel() | |
68 c.auto_active = False | |
69 for perm in user_model.get_default().user_perms: | |
70 if perm.permission.permission_name == 'hg.register.auto_activate': | |
71 c.auto_active = False | |
72 break | |
73 | |
66 if request.POST: | 74 if request.POST: |
67 user_model = UserModel() | 75 |
68 register_form = RegisterForm()() | 76 register_form = RegisterForm()() |
69 try: | 77 try: |
70 form_result = register_form.to_python(dict(request.POST)) | 78 form_result = register_form.to_python(dict(request.POST)) |
79 form_result['active'] = c.auto_active | |
71 user_model.create_registration(form_result) | 80 user_model.create_registration(form_result) |
72 return redirect(url('login_home')) | 81 return redirect(url('login_home')) |
73 | 82 |
74 except formencode.Invalid as errors: | 83 except formencode.Invalid as errors: |
75 return htmlfill.render( | 84 return htmlfill.render( |