Revision bf0c6de5 snf-astakos-app/astakos/im/forms.py

b/snf-astakos-app/astakos/im/forms.py
89 89
        """
90 90
        Changes the order of fields, and removes the username field.
91 91
        """
92
        request = kwargs.get('request', None)
92
        request = kwargs.pop('request', None)
93 93
        if request:
94
            kwargs.pop('request')
95 94
            self.ip = request.META.get('REMOTE_ADDR',
96 95
                                       request.META.get('HTTP_X_REAL_IP', None))
97 96

  
......
150 149
        save behavior is complete.
151 150
        """
152 151
        user = super(LocalUserCreationForm, self).save(commit=False)
153
        user.renew_token()
154 152
        if commit:
155 153
            user.save()
156 154
            logger._log(LOGGING_LEVEL, 'Created user %s' % user.email, [])
......
240 238
    def save(self, commit=True):
241 239
        user = super(ThirdPartyUserCreationForm, self).save(commit=False)
242 240
        user.set_unusable_password()
243
        user.renew_token()
244 241
        user.provider = get_query(self.request).get('provider')
245 242
        if commit:
246 243
            user.save()
......
385 382
        fields = ('email', 'first_name', 'last_name', 'auth_token', 'auth_token_expires')
386 383

  
387 384
    def __init__(self, *args, **kwargs):
385
        self.session_key = kwargs.pop('session_key', None)
388 386
        super(ProfileForm, self).__init__(*args, **kwargs)
389 387
        instance = getattr(self, 'instance', None)
390 388
        ro_fields = ('email', 'auth_token', 'auth_token_expires')
......
396 394
        user = super(ProfileForm, self).save(commit=False)
397 395
        user.is_verified = True
398 396
        if self.cleaned_data.get('renew'):
399
            user.renew_token()
397
            user.renew_token(
398
                flush_sessions=True,
399
                current_key=self.session_key
400
            )
400 401
        if commit:
401 402
            user.save()
402 403
        return user
......
523 524
                                   help_text='Unsetting this may result in security risk.')
524 525

  
525 526
    def __init__(self, user, *args, **kwargs):
527
        self.session_key = kwargs.pop('session_key', None)
526 528
        super(ExtendedPasswordChangeForm, self).__init__(user, *args, **kwargs)
527 529

  
528 530
    def save(self, commit=True):
529
        if NEWPASSWD_INVALIDATE_TOKEN or self.cleaned_data.get('renew'):
530
            self.user.renew_token()
531
        try:
532
            if NEWPASSWD_INVALIDATE_TOKEN or self.cleaned_data.get('renew'):
533
                self.user.renew_token()
534
            self.user.flush_sessions(current_key=self.session_key)
535
        except AttributeError:
536
            # if user model does has not such methods
537
            pass
531 538
        return super(ExtendedPasswordChangeForm, self).save(commit=commit)
532 539

  
533 540
class ExtendedSetPasswordForm(SetPasswordForm):
......
536 543
    to optionally renew also the token.
537 544
    """
538 545
    if not NEWPASSWD_INVALIDATE_TOKEN:
539
        renew = forms.BooleanField(label='Renew token', required=False,
540
                                   initial=True,
541
                                   help_text='Unsetting this may result in security risk.')
546
        renew = forms.BooleanField(
547
            label='Renew token',
548
            required=False,
549
            initial=True,
550
            help_text='Unsetting this may result in security risk.'
551
        )
542 552
    
543 553
    def __init__(self, user, *args, **kwargs):
544 554
        super(ExtendedSetPasswordForm, self).__init__(user, *args, **kwargs)
545 555
    
546 556
    def save(self, commit=True):
547
        if NEWPASSWD_INVALIDATE_TOKEN or self.cleaned_data.get('renew'):
548
            if isinstance(self.user, AstakosUser):
557
        try:
558
            self.user = AstakosUser.objects.get(id=self.user.id)
559
            if NEWPASSWD_INVALIDATE_TOKEN or self.cleaned_data.get('renew'):
549 560
                self.user.renew_token()
561
            self.user.flush_sessions()
562
        except BaseException, e:
563
            logger.exception(e)
564
            pass
550 565
        return super(ExtendedSetPasswordForm, self).save(commit=commit)

Also available in: Unified diff