from django.urls import path
from . import views
from . import browser_views
from .security_api import LoginOptionsView, BrowserIdentityView, SecuritySummaryView, IdentityLinkView, SecurityActionView

app_name = "users"
urlpatterns = [
    path('auth-options/',LoginOptionsView.as_view()),
    path('browser/identity/<str:kind>/<str:stage>/',BrowserIdentityView.as_view()),
    path('security/',SecuritySummaryView.as_view()),
    path('security/link/<str:kind>/<str:stage>/',IdentityLinkView.as_view()),
    path('security/action/<str:action>/',SecurityActionView.as_view()),
    path('security/action/<str:action>/<uuid:object_id>/',SecurityActionView.as_view()),
    path("browser/csrf/", browser_views.BrowserCSRFView.as_view(), name="browser-csrf"),
    path("browser/login/", browser_views.BrowserLoginView.as_view(), name="browser-login"),
    path("browser/refresh/", browser_views.BrowserRefreshView.as_view(), name="browser-refresh"),
    path("browser/logout/", browser_views.BrowserLogoutView.as_view(), name="browser-logout"),
    path("register/", views.RegisterView.as_view(), name="register"),
    path("login/", views.LoginView.as_view(), name="login"),
    path("token/refresh/", views.RefreshView.as_view(), name="refresh"),
    path("me/", views.ProfileView.as_view(), name="me"),
    path("email/verify/", views.VerifyEmailView.as_view(), name="verify-email"),
    path("email/resend/", views.ResendVerificationView.as_view(), name="resend-email"),
    path("email/change/", views.EmailChangeRequestView.as_view(), name="change-email"),
    path("email/change/confirm/", views.EmailChangeConfirmView.as_view(), name="confirm-email-change"),
    path("password/reset/", views.PasswordResetRequestView.as_view(), name="reset-password"),
    path("password/reset/confirm/", views.PasswordResetConfirmView.as_view(), name="confirm-password-reset"),
    path("password/change/", views.PasswordChangeView.as_view(), name="change-password"),
    path("logout/", views.LogoutView.as_view(), name="logout"),
    path("logout-all/", views.LogoutAllView.as_view(), name="logout-all"),
]
