Archived
Polish KarlDNS production UI and docs
This commit is contained in:
1 parent
ca92dc211a
commit
5beee0e5c6
61 files changed
+1566
-523
No files matched your search
@@ -26,6 +26,7 @@ from .management_shared import (
|
||||
locked_management_response,
|
||||
render_management_page_async,
|
||||
)
|
||||
from .path_params import ManagementSlugPath
|
||||
|
||||
router = APIRouter()
|
||||
router.include_router(management_passwords.router)
|
||||
@@ -33,24 +34,24 @@ router.include_router(management_domains.router)
|
||||
|
||||
|
||||
@router.get("/m/{management_slug}", response_class=HTMLResponse, include_in_schema=False)
|
||||
def manage_magic(management_slug: str, request: Request, settings: SettingsDep, store: StoreDep, service: ServiceDep) -> str:
|
||||
def manage_magic(management_slug: ManagementSlugPath, request: Request, settings: SettingsDep, store: StoreDep, service: ServiceDep) -> str:
|
||||
account = get_active_management_account(store, management_slug)
|
||||
csrf_token = dashboard_csrf_token(management_slug, account)
|
||||
if not has_management_access(request, management_slug, account):
|
||||
if not has_management_access(request, settings, management_slug, account):
|
||||
return _render_management_unlock_page(management_slug, account, csrf_token)
|
||||
return _render_management_page(service, settings, management_slug, account, csrf_token)
|
||||
|
||||
|
||||
@router.post("/m/{management_slug}/rotate", response_class=HTMLResponse, include_in_schema=False)
|
||||
async def rotate_magic_credentials(
|
||||
management_slug: str,
|
||||
management_slug: ManagementSlugPath,
|
||||
request: Request,
|
||||
settings: SettingsDep,
|
||||
store: StoreDep,
|
||||
service: ServiceDep,
|
||||
) -> str:
|
||||
account = await get_active_management_account_async(store, management_slug)
|
||||
if not has_management_access(request, management_slug, account):
|
||||
if not has_management_access(request, settings, management_slug, account):
|
||||
return locked_management_response(management_slug, account)
|
||||
form = await request_form(request, settings)
|
||||
require_dashboard_csrf(management_slug, account, first_form_value(form, "csrf"))
|
||||
@@ -75,7 +76,7 @@ async def rotate_magic_credentials(
|
||||
management_slug,
|
||||
rotated,
|
||||
dashboard_csrf_token(management_slug, rotated),
|
||||
message="Update-URL rotated.",
|
||||
message="Update URL changed. Update your router now.",
|
||||
)
|
||||
if action == "password":
|
||||
rotated = await run_in_threadpool(store.rotate_password, hostname)
|
||||
@@ -97,16 +98,16 @@ async def rotate_magic_credentials(
|
||||
management_slug,
|
||||
rotated,
|
||||
dashboard_csrf_token(management_slug, rotated),
|
||||
message="Router credentials rotated. Copy the new password now.",
|
||||
message="Router password changed. Copy it now.",
|
||||
created_account=rotated,
|
||||
)
|
||||
raise _bad_rotation_action()
|
||||
|
||||
|
||||
@router.post("/m/{management_slug}/delete", include_in_schema=False)
|
||||
async def delete_magic(management_slug: str, request: Request, settings: SettingsDep, store: StoreDep, service: ServiceDep) -> Response:
|
||||
async def delete_magic(management_slug: ManagementSlugPath, request: Request, settings: SettingsDep, store: StoreDep, service: ServiceDep) -> Response:
|
||||
account = await get_active_management_account_async(store, management_slug)
|
||||
if not has_management_access(request, management_slug, account):
|
||||
if not has_management_access(request, settings, management_slug, account):
|
||||
return HTMLResponse(_render_management_unlock_page(management_slug, account, dashboard_csrf_token(management_slug, account)), status_code=401)
|
||||
form = await request_form(request, settings)
|
||||
require_dashboard_csrf(management_slug, account, first_form_value(form, "csrf"))
|
||||
@@ -114,7 +115,7 @@ async def delete_magic(management_slug: str, request: Request, settings: Setting
|
||||
try:
|
||||
await run_in_threadpool(service.delete_account, hostname, "management-link")
|
||||
except DnsProviderError:
|
||||
return PlainTextResponse("DNS delete failed; hostname was not deleted", status_code=500)
|
||||
return PlainTextResponse("DNS delete failed. Hostname was not deleted.", status_code=500)
|
||||
await run_in_threadpool(
|
||||
store.log_update_event,
|
||||
hostname,
|
||||
@@ -126,7 +127,7 @@ async def delete_magic(management_slug: str, request: Request, settings: Setting
|
||||
)
|
||||
return HTMLResponse(
|
||||
_page(
|
||||
"DynDNS deleted",
|
||||
"Hostname deleted",
|
||||
trusted(
|
||||
"""
|
||||
<main>
|
||||
|
||||
Reference in new issue
Block a user