Revision badcb2a9 snf-astakos-app/astakos/im/models.py
b/snf-astakos-app/astakos/im/models.py | ||
---|---|---|
661 | 661 |
|
662 | 662 |
return True |
663 | 663 |
|
664 |
def can_remove_auth_provider(self, provider): |
|
665 |
if len(self.get_active_auth_providers()) <= 1: |
|
664 |
def can_remove_auth_provider(self, module): |
|
665 |
provider = auth_providers.get_provider(module) |
|
666 |
existing = self.get_active_auth_providers() |
|
667 |
existing_for_provider = self.get_active_auth_providers(module=module) |
|
668 |
|
|
669 |
if len(existing) <= 1: |
|
670 |
return False |
|
671 |
|
|
672 |
if len(existing_for_provider) == 1 and provider.is_required(): |
|
666 | 673 |
return False |
674 |
|
|
667 | 675 |
return True |
668 | 676 |
|
669 | 677 |
def can_change_password(self): |
670 | 678 |
return self.has_auth_provider('local', auth_backend='astakos') |
671 | 679 |
|
680 |
def has_required_auth_providers(self): |
|
681 |
required = auth_providers.REQUIRED_PROVIDERS |
|
682 |
for provider in required: |
|
683 |
if not self.has_auth_provider(provider): |
|
684 |
return False |
|
685 |
return True |
|
686 |
|
|
672 | 687 |
def has_auth_provider(self, provider, **kwargs): |
673 | 688 |
return bool(self.auth_providers.filter(module=provider, |
674 | 689 |
**kwargs).count()) |
... | ... | |
743 | 758 |
|
744 | 759 |
return providers |
745 | 760 |
|
746 |
def get_active_auth_providers(self): |
|
761 |
def get_active_auth_providers(self, **filters):
|
|
747 | 762 |
providers = [] |
748 |
for provider in self.auth_providers.active(): |
|
763 |
for provider in self.auth_providers.active(**filters):
|
|
749 | 764 |
if auth_providers.get_provider(provider.module).is_available_for_login(): |
750 | 765 |
providers.append(provider) |
751 | 766 |
return providers |
... | ... | |
784 | 799 |
|
785 | 800 |
class AstakosUserAuthProviderManager(models.Manager): |
786 | 801 |
|
787 |
def active(self): |
|
788 |
return self.filter(active=True) |
|
802 |
def active(self, **filters):
|
|
803 |
return self.filter(active=True, **filters)
|
|
789 | 804 |
|
790 | 805 |
|
791 | 806 |
class AstakosUserAuthProvider(models.Model): |
Also available in: Unified diff