Revision f432088a snf-astakos-app/astakos/im/models.py
b/snf-astakos-app/astakos/im/models.py | ||
---|---|---|
596 | 596 |
else: |
597 | 597 |
return auth_providers.get_provider(provider).is_available_for_login() |
598 | 598 |
|
599 |
def can_add_provider(self, provider, **kwargs): |
|
599 |
def can_add_auth_provider(self, provider, **kwargs):
|
|
600 | 600 |
provider_settings = auth_providers.get_provider(provider) |
601 | 601 |
if not provider_settings.is_available_for_login(): |
602 | 602 |
return False |
603 |
|
|
603 | 604 |
if self.has_auth_provider(provider) and \ |
604 | 605 |
provider_settings.one_per_user: |
605 | 606 |
return False |
607 |
|
|
608 |
if 'identifier' in kwargs: |
|
609 |
try: |
|
610 |
# provider with specified params already exist |
|
611 |
existing_user = AstakosUser.objects.get_auth_provider_user(provider, |
|
612 |
**kwargs) |
|
613 |
except AstakosUser.DoesNotExist: |
|
614 |
return True |
|
615 |
else: |
|
616 |
return False |
|
617 |
|
|
606 | 618 |
return True |
607 | 619 |
|
608 | 620 |
def can_remove_auth_provider(self, provider): |
... | ... | |
618 | 630 |
**kwargs).count()) |
619 | 631 |
|
620 | 632 |
def add_auth_provider(self, provider, **kwargs): |
621 |
self.auth_providers.create(module=provider, active=True, **kwargs) |
|
633 |
if self.can_add_auth_provider(provider, **kwargs): |
|
634 |
self.auth_providers.create(module=provider, active=True, **kwargs) |
|
635 |
else: |
|
636 |
raise Exception('Cannot add provider') |
|
622 | 637 |
|
623 | 638 |
def add_pending_auth_provider(self, pending): |
624 | 639 |
""" |
... | ... | |
665 | 680 |
""" |
666 | 681 |
providers = [] |
667 | 682 |
for module, provider_settings in auth_providers.PROVIDERS.iteritems(): |
668 |
if self.can_add_provider(module): |
|
683 |
if self.can_add_auth_provider(module):
|
|
669 | 684 |
providers.append(provider_settings(self)) |
670 | 685 |
|
671 | 686 |
return providers |
... | ... | |
722 | 737 |
self.user.save() |
723 | 738 |
return ret |
724 | 739 |
|
740 |
def __repr__(self): |
|
741 |
return '<AstakosUserAuthProvider %s:%s>' % (self.module, self.identifier) |
|
742 |
|
|
725 | 743 |
|
726 | 744 |
class Membership(models.Model): |
727 | 745 |
person = models.ForeignKey(AstakosUser) |
Also available in: Unified diff