|
|
|
@ -34,70 +34,73 @@ from passbook.policies.webhook.api import WebhookPolicyViewSet
|
|
|
|
|
from passbook.providers.app_gw.api import ApplicationGatewayProviderViewSet
|
|
|
|
|
from passbook.providers.oauth.api import OAuth2ProviderViewSet
|
|
|
|
|
from passbook.providers.oidc.api import OpenIDProviderViewSet
|
|
|
|
|
from passbook.providers.saml.api import (SAMLPropertyMappingViewSet,
|
|
|
|
|
SAMLProviderViewSet)
|
|
|
|
|
from passbook.sources.ldap.api import (LDAPPropertyMappingViewSet,
|
|
|
|
|
LDAPSourceViewSet)
|
|
|
|
|
from passbook.providers.saml.api import SAMLPropertyMappingViewSet, SAMLProviderViewSet
|
|
|
|
|
from passbook.sources.ldap.api import LDAPPropertyMappingViewSet, LDAPSourceViewSet
|
|
|
|
|
from passbook.sources.oauth.api import OAuthSourceViewSet
|
|
|
|
|
|
|
|
|
|
LOGGER = get_logger()
|
|
|
|
|
router = routers.DefaultRouter()
|
|
|
|
|
|
|
|
|
|
for _passbook_app in get_apps():
|
|
|
|
|
if hasattr(_passbook_app, 'api_mountpoint'):
|
|
|
|
|
if hasattr(_passbook_app, "api_mountpoint"):
|
|
|
|
|
for prefix, viewset in _passbook_app.api_mountpoint:
|
|
|
|
|
router.register(prefix, viewset)
|
|
|
|
|
LOGGER.debug("Mounted API URLs", app_name=_passbook_app.name)
|
|
|
|
|
|
|
|
|
|
router.register('core/applications', ApplicationViewSet)
|
|
|
|
|
router.register('core/invitations', InvitationViewSet)
|
|
|
|
|
router.register('core/groups', GroupViewSet)
|
|
|
|
|
router.register('core/users', UserViewSet)
|
|
|
|
|
router.register('audit/events', EventViewSet)
|
|
|
|
|
router.register('sources/all', SourceViewSet)
|
|
|
|
|
router.register('sources/ldap', LDAPSourceViewSet)
|
|
|
|
|
router.register('sources/oauth', OAuthSourceViewSet)
|
|
|
|
|
router.register('policies/all', PolicyViewSet)
|
|
|
|
|
router.register('policies/passwordexpiry', PasswordExpiryPolicyViewSet)
|
|
|
|
|
router.register('policies/groupmembership', GroupMembershipPolicyViewSet)
|
|
|
|
|
router.register('policies/haveibeenpwned', HaveIBeenPwendPolicyViewSet)
|
|
|
|
|
router.register('policies/fieldmatcher', FieldMatcherPolicyViewSet)
|
|
|
|
|
router.register('policies/password', PasswordPolicyViewSet)
|
|
|
|
|
router.register('policies/reputation', ReputationPolicyViewSet)
|
|
|
|
|
router.register('policies/ssologin', SSOLoginPolicyViewSet)
|
|
|
|
|
router.register('policies/webhook', WebhookPolicyViewSet)
|
|
|
|
|
router.register('providers/all', ProviderViewSet)
|
|
|
|
|
router.register('providers/applicationgateway', ApplicationGatewayProviderViewSet)
|
|
|
|
|
router.register('providers/oauth', OAuth2ProviderViewSet)
|
|
|
|
|
router.register('providers/openid', OpenIDProviderViewSet)
|
|
|
|
|
router.register('providers/saml', SAMLProviderViewSet)
|
|
|
|
|
router.register('propertymappings/all', PropertyMappingViewSet)
|
|
|
|
|
router.register('propertymappings/ldap', LDAPPropertyMappingViewSet)
|
|
|
|
|
router.register('propertymappings/saml', SAMLPropertyMappingViewSet)
|
|
|
|
|
router.register('factors/all', FactorViewSet)
|
|
|
|
|
router.register('factors/captcha', CaptchaFactorViewSet)
|
|
|
|
|
router.register('factors/dummy', DummyFactorViewSet)
|
|
|
|
|
router.register('factors/email', EmailFactorViewSet)
|
|
|
|
|
router.register('factors/otp', OTPFactorViewSet)
|
|
|
|
|
router.register('factors/password', PasswordFactorViewSet)
|
|
|
|
|
router.register("core/applications", ApplicationViewSet)
|
|
|
|
|
router.register("core/invitations", InvitationViewSet)
|
|
|
|
|
router.register("core/groups", GroupViewSet)
|
|
|
|
|
router.register("core/users", UserViewSet)
|
|
|
|
|
router.register("audit/events", EventViewSet)
|
|
|
|
|
router.register("sources/all", SourceViewSet)
|
|
|
|
|
router.register("sources/ldap", LDAPSourceViewSet)
|
|
|
|
|
router.register("sources/oauth", OAuthSourceViewSet)
|
|
|
|
|
router.register("policies/all", PolicyViewSet)
|
|
|
|
|
router.register("policies/passwordexpiry", PasswordExpiryPolicyViewSet)
|
|
|
|
|
router.register("policies/groupmembership", GroupMembershipPolicyViewSet)
|
|
|
|
|
router.register("policies/haveibeenpwned", HaveIBeenPwendPolicyViewSet)
|
|
|
|
|
router.register("policies/fieldmatcher", FieldMatcherPolicyViewSet)
|
|
|
|
|
router.register("policies/password", PasswordPolicyViewSet)
|
|
|
|
|
router.register("policies/reputation", ReputationPolicyViewSet)
|
|
|
|
|
router.register("policies/ssologin", SSOLoginPolicyViewSet)
|
|
|
|
|
router.register("policies/webhook", WebhookPolicyViewSet)
|
|
|
|
|
router.register("providers/all", ProviderViewSet)
|
|
|
|
|
router.register("providers/applicationgateway", ApplicationGatewayProviderViewSet)
|
|
|
|
|
router.register("providers/oauth", OAuth2ProviderViewSet)
|
|
|
|
|
router.register("providers/openid", OpenIDProviderViewSet)
|
|
|
|
|
router.register("providers/saml", SAMLProviderViewSet)
|
|
|
|
|
router.register("propertymappings/all", PropertyMappingViewSet)
|
|
|
|
|
router.register("propertymappings/ldap", LDAPPropertyMappingViewSet)
|
|
|
|
|
router.register("propertymappings/saml", SAMLPropertyMappingViewSet)
|
|
|
|
|
router.register("factors/all", FactorViewSet)
|
|
|
|
|
router.register("factors/captcha", CaptchaFactorViewSet)
|
|
|
|
|
router.register("factors/dummy", DummyFactorViewSet)
|
|
|
|
|
router.register("factors/email", EmailFactorViewSet)
|
|
|
|
|
router.register("factors/otp", OTPFactorViewSet)
|
|
|
|
|
router.register("factors/password", PasswordFactorViewSet)
|
|
|
|
|
|
|
|
|
|
info = openapi.Info(
|
|
|
|
|
title="passbook API",
|
|
|
|
|
default_version='v2',
|
|
|
|
|
default_version="v2",
|
|
|
|
|
# description="Test description",
|
|
|
|
|
# terms_of_service="https://www.google.com/policies/terms/",
|
|
|
|
|
contact=openapi.Contact(email="hello@beryju.org"),
|
|
|
|
|
license=openapi.License(name="MIT License"),
|
|
|
|
|
)
|
|
|
|
|
SchemaView = get_schema_view(
|
|
|
|
|
info,
|
|
|
|
|
public=True,
|
|
|
|
|
permission_classes=(CustomObjectPermissions,),
|
|
|
|
|
info, public=True, permission_classes=(CustomObjectPermissions,),
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
urlpatterns = [
|
|
|
|
|
url(r'^swagger(?P<format>\.json|\.yaml)$',
|
|
|
|
|
SchemaView.without_ui(cache_timeout=0), name='schema-json'),
|
|
|
|
|
path('swagger/', SchemaView.with_ui('swagger', cache_timeout=0), name='schema-swagger-ui'),
|
|
|
|
|
path('redoc/', SchemaView.with_ui('redoc', cache_timeout=0), name='schema-redoc'),
|
|
|
|
|
url(
|
|
|
|
|
r"^swagger(?P<format>\.json|\.yaml)$",
|
|
|
|
|
SchemaView.without_ui(cache_timeout=0),
|
|
|
|
|
name="schema-json",
|
|
|
|
|
),
|
|
|
|
|
path(
|
|
|
|
|
"swagger/",
|
|
|
|
|
SchemaView.with_ui("swagger", cache_timeout=0),
|
|
|
|
|
name="schema-swagger-ui",
|
|
|
|
|
),
|
|
|
|
|
path("redoc/", SchemaView.with_ui("redoc", cache_timeout=0), name="schema-redoc"),
|
|
|
|
|
] + router.urls
|
|
|
|
|