Mercurial > public > src > rhodecode
comparison pylons_app/controllers/users.py @ 238:a55c17874486
Rewrite of user managment, improved forms, added some user info
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Sun, 30 May 2010 17:55:56 +0200 |
parents | fcab58c43ea1 |
children | b18f89d6d17f |
comparison
equal
deleted
inserted
replaced
237:f188b156603d | 238:a55c17874486 |
---|---|
1 from formencode import htmlfill | 1 from formencode import htmlfill |
2 from pylons import request, response, session, tmpl_context as c, url, \ | 2 from pylons import request, response, session, tmpl_context as c, url, \ |
3 app_globals as g | 3 app_globals as g |
4 from pylons.i18n.translation import _ | |
5 from pylons_app.lib import helpers as h | |
4 from pylons.controllers.util import abort, redirect | 6 from pylons.controllers.util import abort, redirect |
5 from pylons_app.lib.auth import LoginRequired | 7 from pylons_app.lib.auth import LoginRequired |
6 from pylons_app.lib.base import BaseController, render | 8 from pylons_app.lib.base import BaseController, render |
7 from pylons_app.model.db import User, UserLog | 9 from pylons_app.model.db import User, UserLog |
8 from pylons_app.model.forms import UserForm | 10 from pylons_app.model.forms import UserForm |
35 def create(self): | 37 def create(self): |
36 """POST /users: Create a new item""" | 38 """POST /users: Create a new item""" |
37 # url('users') | 39 # url('users') |
38 | 40 |
39 user_model = UserModel() | 41 user_model = UserModel() |
40 login_form = UserForm() | 42 login_form = UserForm()() |
41 try: | 43 try: |
42 form_result = login_form.to_python(dict(request.POST)) | 44 form_result = login_form.to_python(dict(request.POST)) |
43 user_model.create(form_result) | 45 user_model.create(form_result) |
46 h.flash(_('created user %s') % form_result['username'], category='success') | |
44 return redirect(url('users')) | 47 return redirect(url('users')) |
45 | 48 |
46 except formencode.Invalid as errors: | 49 except formencode.Invalid as errors: |
47 c.form_errors = errors.error_dict | 50 c.form_errors = errors.error_dict |
48 return htmlfill.render( | 51 return htmlfill.render( |
62 # Or using helpers: | 65 # Or using helpers: |
63 # h.form(url('user', id=ID), | 66 # h.form(url('user', id=ID), |
64 # method='put') | 67 # method='put') |
65 # url('user', id=ID) | 68 # url('user', id=ID) |
66 user_model = UserModel() | 69 user_model = UserModel() |
67 login_form = UserForm() | 70 login_form = UserForm(edit=True)() |
68 try: | 71 try: |
69 form_result = login_form.to_python(dict(request.POST)) | 72 form_result = login_form.to_python(dict(request.POST)) |
70 user_model.update(id, form_result) | 73 user_model.update(id, form_result) |
74 h.flash(_('User updated succesfully'), category='success') | |
71 return redirect(url('users')) | 75 return redirect(url('users')) |
72 | 76 |
73 except formencode.Invalid as errors: | 77 except formencode.Invalid as errors: |
74 errors.value | |
75 c.user = user_model.get_user(id) | 78 c.user = user_model.get_user(id) |
76 c.form_errors = errors.error_dict | 79 c.form_errors = errors.error_dict |
77 return htmlfill.render( | 80 return htmlfill.render( |
78 render('admin/users/user_edit.html'), | 81 render('admin/users/user_edit.html'), |
79 defaults=errors.value, | 82 defaults=errors.value, |
88 # method='delete') | 91 # method='delete') |
89 # url('user', id=ID) | 92 # url('user', id=ID) |
90 try: | 93 try: |
91 self.sa.delete(self.sa.query(User).get(id)) | 94 self.sa.delete(self.sa.query(User).get(id)) |
92 self.sa.commit() | 95 self.sa.commit() |
96 h.flash(_('sucessfully deleted user'), category='success') | |
93 except: | 97 except: |
94 self.sa.rollback() | 98 self.sa.rollback() |
95 raise | 99 raise |
96 return redirect(url('users')) | 100 return redirect(url('users')) |
97 | 101 |