DeleteDomainController
class DeleteDomainController extends BaseController (View source)
Properties
| protected PDO | $db | from BaseController | |
| protected array | $requestData | from BaseController | |
| protected MessageService | $messageService | from BaseController | |
| protected ConfigurationManager | $config | from BaseController | |
| protected LoggerInterface | $logger | from BaseController |
Methods
Abstract method to be implemented by subclasses to run the controller logic.
Constructor for BaseController.
Whether a POST to this controller must carry a valid _token.
Get a module config value with legacy fallback.
Renders a template with the given parameters.
Build a PdnsCapabilities snapshot from the session-cached PowerDNS version. Constant-time and synchronous - never triggers detection, never makes a network call. Safe to call from render() on every page.
Capabilities to use when filtering selectable record types, or null to skip version filtering entirely.
Trigger a session-cached refresh of PowerDNS version + capabilities.
Redirects to a specified URL with optional arguments.
Sets a message to be displayed for a specific script.
Checks a condition and displays an error message if the condition is true.
Renders a pagination widget for a paginated listing.
Check if the logged-in user has the given permission
Whether the logged-in user wants the page to span the full browser width
Check if the logged-in user owns the given zone directly or via group membership
Stops the request unless the current user may open the zone (showError exits).
The zone service the API uses, told what the connected server supports.
What the enabled modules offer for a capability (wizard actions, lookup links, export formats), honouring each module's admin restriction.
Why the current user cannot pick any zone owner (groups_only mode), or null.
Owner and groups of the add-zone forms, checked against the shared ownership rules.
No description
No description
No description
Group names keyed by id, for the group column of the zone lists.
Rebuilds ordername/auth after a record write so signed zones keep answering.
Flash the outcome of a zone write to a page: the given text on success, the result's reason on failure.
Sets the current page identifier used for navigation highlighting.
Checks if the user has a specific permission and displays an error message if not.
Displays an error message.
Gets a safe value from the request data.
Sets validation constraints for the request data.
Displays the first validation error.
Adds a system-wide message that will be displayed on any page
Details
void
run()
Abstract method to be implemented by subclasses to run the controller logic.
__construct(array $request)
Constructor for BaseController.
protected bool
requiresCsrfValidation()
Whether a POST to this controller must carry a valid _token.
Controllers that authenticate statelessly, receive third-party posts, or validate their own flow-scoped token override this and return false.
bool
isPost()
Checks if the current request is a POST request.
ConfigurationManager
getConfig()
Gets the application configuration.
protected mixed
getModuleConfig(string $module, string $key, mixed $default = null)
Get a module config value with legacy fallback.
Checks modules.
void
render(string $template, array $params)
Renders a template with the given parameters.
protected PdnsCapabilities
getPdnsCapabilities()
Build a PdnsCapabilities snapshot from the session-cached PowerDNS version. Constant-time and synchronous - never triggers detection, never makes a network call. Safe to call from render() on every page.
Controllers that want a freshly-detected version should call refreshPdnsCapabilities() explicitly before rendering so they own the latency cost rather than imposing it on every other page.
protected PdnsCapabilities|null
getRecordTypeCapabilities()
Capabilities to use when filtering selectable record types, or null to skip version filtering entirely.
Only API backends can report their PowerDNS version, so only there can we safely hide types a newer-than-server feature would need. On SQL backends the version is never known, and strict-unknown filtering would wrongly and permanently drop valid types (HTTPS, SVCB, ZONEMD, ...) from every form. Returning null there leaves the configured/default type list intact.
protected void
refreshPdnsCapabilities()
Trigger a session-cached refresh of PowerDNS version + capabilities.
Makes at most one API call per minute (rate-limited via the session
timestamp pdns_version_last_attempt) and is a no-op when no PowerDNS
API is configured. Runs in both API and SQL backend modes: the
version display is useful in either mode whenever pdns_api is
configured, even though capability gates only matter for API mode.
Page renders that don't call this just read whatever is already cached.
void
validateCsrfToken()
Validates the CSRF token from the request.
void
redirect(string $url, array $args = [])
Redirects to a specified URL with optional arguments.
Automatically prepends base_url_prefix for subfolder deployments.
void
setMessage(string $script, string $type, string $content)
Sets a message to be displayed for a specific script.
array|null
getMessages(string $script)
Gets messages for a specific script.
void
checkCondition(bool $condition, string $errorMessage)
Checks a condition and displays an error message if the condition is true.
protected UserPreferenceService
createUserPreferenceService()
No description
protected UserTimezoneService
createUserTimezoneService()
No description
protected PaginationService
createPaginationService()
No description
protected string
presentPagination(int $totalItems, int $itemsPerPage, string $path, array $queryParams = [])
Renders a pagination widget for a paginated listing.
$path is the route with the {PageNumber} placeholder already in place
(e.g. '/zones/forward?start={PageNumber}'). $queryParams are extra
key => value pairs appended urlencoded, in order, skipping absent and blank values.
protected DnsBackendProvider
createDnsBackendProvider()
No description
protected DnsDataService
createDnsDataService()
No description
protected ZoneRepositoryInterface
createZoneRepository()
No description
protected DomainRepositoryInterface
createDomainRepository()
No description
protected RecordRepositoryInterface
createRecordRepository()
No description
protected UserRepository
createUserRepository()
No description
protected PermissionService
createPermissionService()
No description
protected UserManagementService
createUserManagementService()
No description
protected ApiPermissionService
createApiPermissionService()
No description
protected bool
hasPermission(string $permission)
Check if the logged-in user has the given permission
protected bool
getWideLayout()
Whether the logged-in user wants the page to span the full browser width
protected bool
isZoneOwner(int $zoneId)
Check if the logged-in user owns the given zone directly or via group membership
protected void
requireZoneView(int $zoneId)
Stops the request unless the current user may open the zone (showError exits).
protected UserGroupRepositoryInterface
createUserGroupRepository()
No description
protected ZoneManagementService
createZoneManagementService()
The zone service the API uses, told what the connected server supports.
protected ModuleRegistry
moduleRegistry()
Enabled modules, loaded once per request.
protected array
moduleCapabilityData(string $capability, array $context = [])
What the enabled modules offer for a capability (wizard actions, lookup links, export formats), honouring each module's admin restriction.
protected bool
moduleProvides(string $capability)
No description
protected AuditService
createAuditService()
No description
protected ZoneMetadataService
createZoneMetadataService()
No description
protected ZoneSigningService
createZoneSigningService()
No description
protected ZoneCreateOwnershipResolver
createZoneCreateOwnershipResolver()
No description
protected string|null
zoneOwnerOptionsBlocker()
Why the current user cannot pick any zone owner (groups_only mode), or null.
protected ZoneOwnershipResolution
resolveZoneOwnershipFromForm(Request $request)
Owner and groups of the add-zone forms, checked against the shared ownership rules.
protected UserGroupMemberRepositoryInterface
createUserGroupMemberRepository()
No description
protected DbPermissionTemplateRepository
createPermissionTemplateRepository()
No description
protected PermissionTemplateWriteService
createPermissionTemplateWriteService()
No description
protected DashboardStatsService
createDashboardStatsService()
No description
protected ZoneEditService
createZoneEditService()
No description
protected ZoneListPermissionService
createZoneListPermissionService()
No description
protected array
groupNamesById()
Group names keyed by id, for the group column of the zone lists.
protected ZoneGroupRepositoryInterface
createZoneGroupRepository()
No description
protected ReverseTtlResolver
createReverseTtlResolver()
No description
protected RecordManagerInterface
createRecordManager()
No description
protected SOARecordManagerInterface
createSOARecordManager()
No description
protected DnssecProvider
createDnssecProvider()
No description
protected void
rectifyZoneAfterWrite(string $zoneName)
Rebuilds ordername/auth after a record write so signed zones keep answering.
Call after the transaction commits: the rectifier reads committed rows.
protected RecordManagerService
createRecordManagerService()
No description
protected RecordAddService
createRecordAddService()
No description
protected ReverseRecordCreator
createReverseRecordCreator()
No description
protected BatchReverseRecordCreator
createBatchReverseRecordCreator()
No description
protected DomainManagerInterface
createDomainManager()
No description
protected CatalogZoneService
createCatalogZoneService()
No description
protected RepositoryFactory
getRepositoryFactory(DnsBackendProvider|null $backendProvider = null)
No description
protected int|null
getCurrentUserId()
Get current user ID
protected void
reportZoneWrite(string $script, ZoneWriteResult $result, string $successMessage)
Flash the outcome of a zone write to a page: the given text on success, the result's reason on failure.
protected UserContextService
getUserContextService()
Get the user context service
protected void
setCurrentPage(string $page)
Sets the current page identifier used for navigation highlighting.
protected void
setPageTitle(string $title)
Sets the page title displayed in the header.
void
checkPermission(string $permission, string $errorMessage)
Checks if the user has a specific permission and displays an error message if not.
void
showError(string $error, string|null $recordName = null)
Displays an error message.
array
getRequest()
Gets the request data.
string
getSafeRequestValue(string $key)
Gets a safe value from the request data.
void
setValidationConstraints(array $constraints)
Sets validation constraints for the request data.
void
setRequestRules(array $rules)
Sets validation rules for the request data.
bool
doValidateRequest(array|null $data = null)
Validates the request data.
void
showFirstValidationError(array|null $data = null)
Displays the first validation error.
void
addSystemMessage(string $type, string $content)
Adds a system-wide message that will be displayed on any page