Revision 34a76cdb snf-astakos-app/astakos/im/models.py
b/snf-astakos-app/astakos/im/models.py | ||
---|---|---|
570 | 570 |
if q.count() != 0: |
571 | 571 |
raise ValidationError({'__all__': [_(astakos_messages.UNIQUE_EMAIL_IS_ACTIVE_CONSTRAIN_ERR)]}) |
572 | 572 |
|
573 |
def email_change_is_pending(self): |
|
574 |
return self.emailchanges.count() > 0 |
|
575 |
|
|
573 | 576 |
@property |
574 | 577 |
def signed_terms(self): |
575 | 578 |
term = get_latest_terms() |
... | ... | |
960 | 963 |
|
961 | 964 |
|
962 | 965 |
class EmailChangeManager(models.Manager): |
966 |
|
|
963 | 967 |
@transaction.commit_on_success |
964 | 968 |
def change_email(self, activation_key): |
965 | 969 |
""" |
... | ... | |
993 | 997 |
raise ValueError(_(astakos_messages.NEW_EMAIL_ADDR_RESERVED)) |
994 | 998 |
# update user |
995 | 999 |
user = AstakosUser.objects.get(pk=email_change.user_id) |
1000 |
old_email = user.email |
|
996 | 1001 |
user.email = email_change.new_email_address |
997 | 1002 |
user.save() |
998 | 1003 |
email_change.delete() |
1004 |
msg = "User %d changed email from %s to %s" % (user.pk, old_email, |
|
1005 |
user.email) |
|
1006 |
logger.log(LOGGING_LEVEL, msg) |
|
999 | 1007 |
return user |
1000 | 1008 |
except EmailChange.DoesNotExist: |
1001 | 1009 |
raise ValueError(_(astakos_messages.INVALID_ACTIVATION_KEY)) |
... | ... | |
1005 | 1013 |
new_email_address = models.EmailField(_(u'new e-mail address'), |
1006 | 1014 |
help_text=_(astakos_messages.EMAIL_CHANGE_NEW_ADDR_HELP)) |
1007 | 1015 |
user = models.ForeignKey( |
1008 |
AstakosUser, unique=True, related_name='emailchange_user')
|
|
1016 |
AstakosUser, unique=True, related_name='emailchanges')
|
|
1009 | 1017 |
requested_at = models.DateTimeField(default=datetime.now()) |
1010 | 1018 |
activation_key = models.CharField( |
1011 | 1019 |
max_length=40, unique=True, db_index=True) |
1012 | 1020 |
|
1013 | 1021 |
objects = EmailChangeManager() |
1014 | 1022 |
|
1023 |
def get_url(self): |
|
1024 |
return reverse('email_change_confirm', |
|
1025 |
kwargs={'activation_key': self.activation_key}) |
|
1026 |
|
|
1015 | 1027 |
def activation_key_expired(self): |
1016 | 1028 |
expiration_date = timedelta(days=EMAILCHANGE_ACTIVATION_DAYS) |
1017 | 1029 |
return self.requested_at + expiration_date < datetime.now() |
Also available in: Unified diff