*(minor): small refactor
This commit is contained in:
0
passbook/policies/sso/__init__.py
Normal file
0
passbook/policies/sso/__init__.py
Normal file
4
passbook/policies/sso/admin.py
Normal file
4
passbook/policies/sso/admin.py
Normal file
@ -0,0 +1,4 @@
|
||||
"""autodiscover admin"""
|
||||
from passbook.lib.admin import admin_autoregister
|
||||
|
||||
admin_autoregister('passbook_policies_sso')
|
||||
11
passbook/policies/sso/apps.py
Normal file
11
passbook/policies/sso/apps.py
Normal file
@ -0,0 +1,11 @@
|
||||
"""passbook sso policy app config"""
|
||||
|
||||
from django.apps import AppConfig
|
||||
|
||||
|
||||
class PassbookPoliciesSSOConfig(AppConfig):
|
||||
"""passbook sso policy app config"""
|
||||
|
||||
name = 'passbook.policies.sso'
|
||||
label = 'passbook_policies_sso'
|
||||
verbose_name = 'passbook Policies.SSO'
|
||||
19
passbook/policies/sso/forms.py
Normal file
19
passbook/policies/sso/forms.py
Normal file
@ -0,0 +1,19 @@
|
||||
"""passbook Policy forms"""
|
||||
|
||||
from django import forms
|
||||
|
||||
from passbook.policies.forms import GENERAL_FIELDS
|
||||
from passbook.policies.sso.models import SSOLoginPolicy
|
||||
|
||||
|
||||
class SSOLoginPolicyForm(forms.ModelForm):
|
||||
"""Edit SSOLoginPolicy instances"""
|
||||
|
||||
class Meta:
|
||||
|
||||
model = SSOLoginPolicy
|
||||
fields = GENERAL_FIELDS
|
||||
widgets = {
|
||||
'name': forms.TextInput(),
|
||||
'order': forms.NumberInput(),
|
||||
}
|
||||
27
passbook/policies/sso/migrations/0001_initial.py
Normal file
27
passbook/policies/sso/migrations/0001_initial.py
Normal file
@ -0,0 +1,27 @@
|
||||
# Generated by Django 2.2.6 on 2019-10-07 14:07
|
||||
|
||||
import django.db.models.deletion
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
initial = True
|
||||
|
||||
dependencies = [
|
||||
('passbook_core', '0001_initial'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='SSOLoginPolicy',
|
||||
fields=[
|
||||
('policy_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='passbook_core.Policy')),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'SSO Login Policy',
|
||||
'verbose_name_plural': 'SSO Login Policies',
|
||||
},
|
||||
bases=('passbook_core.policy',),
|
||||
),
|
||||
]
|
||||
0
passbook/policies/sso/migrations/__init__.py
Normal file
0
passbook/policies/sso/migrations/__init__.py
Normal file
22
passbook/policies/sso/models.py
Normal file
22
passbook/policies/sso/models.py
Normal file
@ -0,0 +1,22 @@
|
||||
"""sso models"""
|
||||
from django.utils.translation import gettext as _
|
||||
|
||||
from passbook.core.models import Policy
|
||||
from passbook.policies.struct import PolicyRequest, PolicyResult
|
||||
|
||||
|
||||
class SSOLoginPolicy(Policy):
|
||||
"""Policy that applies to users that have authenticated themselves through SSO"""
|
||||
|
||||
form = 'passbook.policies.sso.forms.SSOLoginPolicyForm'
|
||||
|
||||
def passes(self, request: PolicyRequest) -> PolicyResult:
|
||||
"""Check if user instance passes this policy"""
|
||||
from passbook.factors.view import AuthenticationView
|
||||
is_sso_login = request.user.session.get(AuthenticationView.SESSION_IS_SSO_LOGIN, False)
|
||||
return PolicyResult(is_sso_login)
|
||||
|
||||
class Meta:
|
||||
|
||||
verbose_name = _('SSO Login Policy')
|
||||
verbose_name_plural = _('SSO Login Policies')
|
||||
Reference in New Issue
Block a user