Revision 2ecbbc70 snf-astakos-app/astakos/im/backends.py
b/snf-astakos-app/astakos/im/backends.py | ||
---|---|---|
48 | 48 |
from astakos.im.models import AstakosUser, Invitation |
49 | 49 |
from astakos.im.forms import * |
50 | 50 |
from astakos.im.util import get_invitation |
51 |
from astakos.im.settings import INVITATIONS_ENABLED, DEFAULT_CONTACT_EMAIL, DEFAULT_FROM_EMAIL, MODERATION_ENABLED, SITENAME, BASEURL |
|
51 |
from astakos.im.settings import INVITATIONS_ENABLED, DEFAULT_CONTACT_EMAIL, DEFAULT_FROM_EMAIL, MODERATION_ENABLED, SITENAME, BASEURL, DEFAULT_ADMIN_EMAIL
|
|
52 | 52 |
|
53 | 53 |
import socket |
54 | 54 |
import logging |
... | ... | |
143 | 143 |
return False |
144 | 144 |
|
145 | 145 |
@transaction.commit_manually |
146 |
def signup(self, form): |
|
146 |
def signup(self, form, admin_email_template_name='im/admin_notification.txt'):
|
|
147 | 147 |
""" |
148 | 148 |
Initially creates an inactive user account. If the user is preaccepted |
149 | 149 |
(has a valid invitation code) the user is activated and if the request |
... | ... | |
161 | 161 |
user.save() |
162 | 162 |
message = _('Registration completed. You can now login.') |
163 | 163 |
else: |
164 |
_send_notification(user, admin_email_template_name) |
|
164 | 165 |
message = _('Registration completed. You will receive an email upon your account\'s activation.') |
165 | 166 |
status = messages.SUCCESS |
166 | 167 |
except Invitation.DoesNotExist, e: |
... | ... | |
201 | 202 |
return globals()[formclass](initial_data, ip=self.request.META['REMOTE_ADDR']) |
202 | 203 |
|
203 | 204 |
@transaction.commit_manually |
204 |
def signup(self, form, email_template_name='im/activation_email.txt'): |
|
205 |
def signup(self, form, email_template_name='im/activation_email.txt', admin_email_template_name='im/admin_notification.txt'):
|
|
205 | 206 |
""" |
206 | 207 |
Creates an inactive user account and sends a verification email. |
207 | 208 |
|
... | ... | |
226 | 227 |
user = form.save() |
227 | 228 |
status = messages.SUCCESS |
228 | 229 |
if MODERATION_ENABLED: |
229 |
message = _('Registration completed. You will receive an email upon your account\'s activation.') |
|
230 |
try: |
|
231 |
_send_notification(user, admin_email_template_name) |
|
232 |
message = _('Registration completed. You will receive an email upon your account\'s activation.') |
|
233 |
except (SMTPException, socket.error) as e: |
|
234 |
status = messages.ERROR |
|
235 |
name = 'strerror' |
|
236 |
message = getattr(e, name) if hasattr(e, name) else e |
|
230 | 237 |
else: |
231 | 238 |
try: |
232 | 239 |
_send_verification(self.request, user, email_template_name) |
... | ... | |
256 | 263 |
sender = DEFAULT_FROM_EMAIL |
257 | 264 |
send_mail('%s account activation' % SITENAME, message, sender, [user.email]) |
258 | 265 |
logger.info('Sent activation %s', user) |
266 |
|
|
267 |
def _send_notification(user, template_name): |
|
268 |
message = render_to_string(template_name, { |
|
269 |
'user': user, |
|
270 |
'baseurl': BASEURL, |
|
271 |
'site_name': SITENAME, |
|
272 |
'support': DEFAULT_CONTACT_EMAIL}) |
|
273 |
sender = DEFAULT_FROM_EMAIL |
|
274 |
send_mail('%s account notification' % SITENAME, message, sender, [DEFAULT_ADMIN_EMAIL]) |
|
275 |
logger.info('Sent admin notification for user %s', user) |
Also available in: Unified diff