This repository has been archived on 2024-05-31. You can view files and clone it, but cannot push or open issues or pull requests.
authentik/passbook/api/v2/urls.py

104 lines
4.7 KiB
Python
Raw Normal View History

2019-10-28 13:44:46 +00:00
"""api v2 urls"""
2019-10-28 16:40:57 +00:00
from django.conf.urls import url
from django.urls import path
from drf_yasg import openapi
from drf_yasg.views import get_schema_view
from rest_framework import routers
2019-10-28 16:40:57 +00:00
from structlog import get_logger
2019-10-28 16:40:57 +00:00
from passbook.api.permissions import CustomObjectPermissions
2020-02-28 10:48:55 +00:00
from passbook.audit.api import EventViewSet
from passbook.core.api.applications import ApplicationViewSet
2019-10-28 16:55:36 +00:00
from passbook.core.api.factors import FactorViewSet
from passbook.core.api.groups import GroupViewSet
from passbook.core.api.invitations import InvitationViewSet
2019-10-28 16:40:57 +00:00
from passbook.core.api.policies import PolicyViewSet
2019-10-28 16:55:36 +00:00
from passbook.core.api.propertymappings import PropertyMappingViewSet
2019-10-28 16:40:57 +00:00
from passbook.core.api.providers import ProviderViewSet
from passbook.core.api.sources import SourceViewSet
from passbook.core.api.users import UserViewSet
2019-10-28 16:55:36 +00:00
from passbook.factors.captcha.api import CaptchaFactorViewSet
from passbook.factors.dummy.api import DummyFactorViewSet
from passbook.factors.email.api import EmailFactorViewSet
from passbook.factors.otp.api import OTPFactorViewSet
from passbook.factors.password.api import PasswordFactorViewSet
2020-05-08 16:29:18 +00:00
from passbook.flows.api import FlowFactorBindingViewSet, FlowViewSet
2019-10-28 16:40:57 +00:00
from passbook.lib.utils.reflection import get_apps
from passbook.policies.expiry.api import PasswordExpiryPolicyViewSet
2020-02-19 08:49:57 +00:00
from passbook.policies.expression.api import ExpressionPolicyViewSet
2019-10-28 16:40:57 +00:00
from passbook.policies.hibp.api import HaveIBeenPwendPolicyViewSet
from passbook.policies.password.api import PasswordPolicyViewSet
from passbook.policies.reputation.api import ReputationPolicyViewSet
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
2019-12-31 11:51:16 +00:00
from passbook.providers.saml.api import SAMLPropertyMappingViewSet, SAMLProviderViewSet
from passbook.sources.ldap.api import LDAPPropertyMappingViewSet, LDAPSourceViewSet
2019-10-28 16:40:57 +00:00
from passbook.sources.oauth.api import OAuthSourceViewSet
2019-10-28 16:40:57 +00:00
LOGGER = get_logger()
router = routers.DefaultRouter()
2019-10-28 16:40:57 +00:00
for _passbook_app in get_apps():
2019-12-31 11:51:16 +00:00
if hasattr(_passbook_app, "api_mountpoint"):
2019-10-28 16:40:57 +00:00
for prefix, viewset in _passbook_app.api_mountpoint:
router.register(prefix, viewset)
LOGGER.debug("Mounted API URLs", app_name=_passbook_app.name)
2019-12-31 11:51:16 +00:00
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/haveibeenpwned", HaveIBeenPwendPolicyViewSet)
router.register("policies/password", PasswordPolicyViewSet)
router.register("policies/reputation", ReputationPolicyViewSet)
router.register("policies/webhook", WebhookPolicyViewSet)
2020-02-19 08:49:57 +00:00
router.register("policies/expression", ExpressionPolicyViewSet)
2019-12-31 11:51:16 +00:00
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)
2020-05-08 16:29:18 +00:00
router.register("flows", FlowViewSet)
router.register("flows/bindings", FlowFactorBindingViewSet)
2019-10-28 16:40:57 +00:00
info = openapi.Info(
title="passbook API",
2019-12-31 11:51:16 +00:00
default_version="v2",
2019-10-28 16:40:57 +00:00
contact=openapi.Contact(email="hello@beryju.org"),
license=openapi.License(name="MIT License"),
)
SchemaView = get_schema_view(
2019-12-31 11:51:16 +00:00
info, public=True, permission_classes=(CustomObjectPermissions,),
2019-10-28 16:40:57 +00:00
)
urlpatterns = [
2019-12-31 11:51:16 +00:00
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"),
2019-10-28 16:40:57 +00:00
] + router.urls