Mercurial > kallithea
diff rhodecode/model/user.py @ 1731:31e6eb2fb4b2 beta
implements #222 registration feedback
- a notification message is created for admins
- email template with registartion
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Sat, 26 Nov 2011 21:13:33 +0200 |
parents | da8ee2ef7f6d |
children | 48d4fcf04a29 |
line wrap: on
line diff
--- a/rhodecode/model/user.py Sat Nov 26 19:26:24 2011 +0200 +++ b/rhodecode/model/user.py Sat Nov 26 21:13:33 2011 +0200 @@ -26,6 +26,7 @@ import logging import traceback +from pylons import url from pylons.i18n.translation import _ from rhodecode.lib import safe_unicode @@ -33,7 +34,8 @@ from rhodecode.model import BaseModel from rhodecode.model.db import User, UserRepoToPerm, Repository, Permission, \ - UserToPerm, UsersGroupRepoToPerm, UsersGroupToPerm, UsersGroupMember + UserToPerm, UsersGroupRepoToPerm, UsersGroupToPerm, UsersGroupMember, \ + Notification from rhodecode.lib.exceptions import DefaultUserException, \ UserOwnsReposException @@ -43,6 +45,7 @@ log = logging.getLogger(__name__) + PERM_WEIGHTS = {'repository.none': 0, 'repository.read': 1, 'repository.write': 3, @@ -211,7 +214,8 @@ return None def create_registration(self, form_data): - from rhodecode.lib.celerylib import tasks, run_task + from rhodecode.model.notification import NotificationModel + try: new_user = User() for k, v in form_data.items(): @@ -219,18 +223,26 @@ setattr(new_user, k, v) self.sa.add(new_user) - self.sa.commit() + self.sa.flush() + + # notification to admins + subject = _('new user registration') body = ('New user registration\n' - 'username: %s\n' - 'email: %s\n') - body = body % (form_data['username'], form_data['email']) + '---------------------\n' + '- Username: %s\n' + '- Full Name: %s\n' + '- Email: %s\n') + body = body % (new_user.username, new_user.full_name, + new_user.email) + edit_url = url('edit_user', id=new_user.user_id, qualified=True) + kw = {'registered_user_url':edit_url} + NotificationModel().create(created_by=new_user, subject=subject, + body=body, recipients=None, + type_=Notification.TYPE_REGISTRATION, + email_kwargs=kw) - run_task(tasks.send_email, None, - _('[RhodeCode] New User registration'), - body) except: log.error(traceback.format_exc()) - self.sa.rollback() raise def update(self, user_id, form_data):