Mercurial > kallithea
comparison pylons_app/model/user_model.py @ 474:a3d9d24acbec celery
Implemented password reset(forms/models/ tasks) and mailing tasks.
Added smtp mailer, configurations, cleaned user model
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Mon, 13 Sep 2010 01:27:41 +0200 |
parents | d66a7fa7689b |
children | a08f610e545e |
comparison
equal
deleted
inserted
replaced
473:6b934c9607e7 | 474:a3d9d24acbec |
---|---|
1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
2 # encoding: utf-8 | 2 # encoding: utf-8 |
3 # Model for users | 3 # Model for users |
4 # Copyright (C) 2009-2010 Marcin Kuzminski <marcin@python-works.com> | 4 # Copyright (C) 2009-2010 Marcin Kuzminski <marcin@python-works.com> |
5 | 5 # |
6 # This program is free software; you can redistribute it and/or | 6 # This program is free software; you can redistribute it and/or |
7 # modify it under the terms of the GNU General Public License | 7 # modify it under the terms of the GNU General Public License |
8 # as published by the Free Software Foundation; version 2 | 8 # as published by the Free Software Foundation; version 2 |
9 # of the License or (at your opinion) any later version of the license. | 9 # of the License or (at your opinion) any later version of the license. |
10 # | 10 # |
21 """ | 21 """ |
22 Created on April 9, 2010 | 22 Created on April 9, 2010 |
23 Model for users | 23 Model for users |
24 @author: marcink | 24 @author: marcink |
25 """ | 25 """ |
26 | 26 from pylons_app.lib import auth |
27 from pylons.i18n.translation import _ | |
28 from pylons_app.lib.celerylib import tasks, run_task | |
27 from pylons_app.model.db import User | 29 from pylons_app.model.db import User |
28 from pylons_app.model.meta import Session | 30 from pylons_app.model.meta import Session |
29 from pylons.i18n.translation import _ | 31 import traceback |
30 import logging | 32 import logging |
31 log = logging.getLogger(__name__) | 33 log = logging.getLogger(__name__) |
32 | 34 |
33 class DefaultUserException(Exception):pass | 35 class DefaultUserException(Exception):pass |
34 | 36 |
41 return self.sa.query(User).filter(User.username == 'default').scalar() | 43 return self.sa.query(User).filter(User.username == 'default').scalar() |
42 | 44 |
43 def get_user(self, id): | 45 def get_user(self, id): |
44 return self.sa.query(User).get(id) | 46 return self.sa.query(User).get(id) |
45 | 47 |
46 def get_user_by_name(self,name): | 48 def get_user_by_name(self, name): |
47 return self.sa.query(User).filter(User.username == name).scalar() | 49 return self.sa.query(User).filter(User.username == name).scalar() |
48 | 50 |
49 def create(self, form_data): | 51 def create(self, form_data): |
50 try: | 52 try: |
51 new_user = User() | 53 new_user = User() |
52 for k, v in form_data.items(): | 54 for k, v in form_data.items(): |
53 setattr(new_user, k, v) | 55 setattr(new_user, k, v) |
54 | 56 |
55 self.sa.add(new_user) | 57 self.sa.add(new_user) |
56 self.sa.commit() | 58 self.sa.commit() |
57 except Exception as e: | 59 except: |
58 log.error(e) | 60 log.error(traceback.format_exc()) |
59 self.sa.rollback() | 61 self.sa.rollback() |
60 raise | 62 raise |
61 | 63 |
62 def create_registration(self, form_data): | 64 def create_registration(self, form_data): |
63 try: | 65 try: |
66 if k != 'admin': | 68 if k != 'admin': |
67 setattr(new_user, k, v) | 69 setattr(new_user, k, v) |
68 | 70 |
69 self.sa.add(new_user) | 71 self.sa.add(new_user) |
70 self.sa.commit() | 72 self.sa.commit() |
71 except Exception as e: | 73 except: |
72 log.error(e) | 74 log.error(traceback.format_exc()) |
73 self.sa.rollback() | 75 self.sa.rollback() |
74 raise | 76 raise |
75 | 77 |
76 def update(self, uid, form_data): | 78 def update(self, uid, form_data): |
77 try: | 79 try: |
86 else: | 88 else: |
87 setattr(new_user, k, v) | 89 setattr(new_user, k, v) |
88 | 90 |
89 self.sa.add(new_user) | 91 self.sa.add(new_user) |
90 self.sa.commit() | 92 self.sa.commit() |
91 except Exception as e: | 93 except: |
92 log.error(e) | 94 log.error(traceback.format_exc()) |
93 self.sa.rollback() | 95 self.sa.rollback() |
94 raise | 96 raise |
95 | 97 |
96 def update_my_account(self, uid, form_data): | 98 def update_my_account(self, uid, form_data): |
97 try: | 99 try: |
107 if k not in ['admin', 'active']: | 109 if k not in ['admin', 'active']: |
108 setattr(new_user, k, v) | 110 setattr(new_user, k, v) |
109 | 111 |
110 self.sa.add(new_user) | 112 self.sa.add(new_user) |
111 self.sa.commit() | 113 self.sa.commit() |
112 except Exception as e: | 114 except: |
113 log.error(e) | 115 log.error(traceback.format_exc()) |
114 self.sa.rollback() | 116 self.sa.rollback() |
115 raise | 117 raise |
116 | 118 |
117 def delete(self, id): | 119 def delete(self, id): |
118 | |
119 try: | 120 try: |
120 | 121 |
121 user = self.sa.query(User).get(id) | 122 user = self.sa.query(User).get(id) |
122 if user.username == 'default': | 123 if user.username == 'default': |
123 raise DefaultUserException( | 124 raise DefaultUserException( |
124 _("You can't remove this user since it's" | 125 _("You can't remove this user since it's" |
125 " crucial for entire application")) | 126 " crucial for entire application")) |
126 self.sa.delete(user) | 127 self.sa.delete(user) |
127 self.sa.commit() | 128 self.sa.commit() |
128 except Exception as e: | 129 except: |
129 log.error(e) | 130 log.error(traceback.format_exc()) |
130 self.sa.rollback() | 131 self.sa.rollback() |
131 raise | 132 raise |
133 | |
134 def reset_password(self, data): | |
135 run_task(tasks.reset_user_password, data['email']) |