class BatchPtrRecordController 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

void
run()

Abstract method to be implemented by subclasses to run the controller logic.

__construct(array $request)

Constructor for BaseController.

bool
requiresCsrfValidation()

Whether a POST to this controller must carry a valid _token.

bool
isPost()

Checks if the current request is a POST request.

getConfig()

Gets the application configuration.

mixed
getModuleConfig(string $module, string $key, mixed $default = null)

Get a module config value with legacy fallback.

void
render(string $template, array $params)

Renders a template with the given parameters.

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.

getRecordTypeCapabilities()

Capabilities to use when filtering selectable record types, or null to skip version filtering entirely.

void
refreshPdnsCapabilities()

Trigger a session-cached refresh of PowerDNS version + capabilities.

void
validateCsrfToken()

Validates the CSRF token from the request.

void
redirect(string $url, array $args = [])

Redirects to a specified URL with optional arguments.

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.

string
presentPagination(int $totalItems, int $itemsPerPage, string $path, array $queryParams = [])

Renders a pagination widget for a paginated listing.

bool
hasPermission(string $permission)

Check if the logged-in user has the given permission

bool
getWideLayout()

Whether the logged-in user wants the page to span the full browser width

bool
isZoneOwner(int $zoneId)

Check if the logged-in user owns the given zone directly or via group membership

void
requireZoneView(int $zoneId)

Stops the request unless the current user may open the zone (showError exits).

createZoneManagementService()

The zone service the API uses, told what the connected server supports.

moduleRegistry()

Enabled modules, loaded once per request.

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.

bool
moduleProvides(string $capability)

No description

string|null
zoneOwnerOptionsBlocker()

Why the current user cannot pick any zone owner (groups_only mode), or null.

resolveZoneOwnershipFromForm(Request $request)

Owner and groups of the add-zone forms, checked against the shared ownership rules.

array
groupNamesById()

Group names keyed by id, for the group column of the zone lists.

void
rectifyZoneAfterWrite(string $zoneName)

Rebuilds ordername/auth after a record write so signed zones keep answering.

getRepositoryFactory(DnsBackendProvider|null $backendProvider = null)

No description

int|null
getCurrentUserId()

Get current user ID

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.

getUserContextService()

Get the user context service

void
setCurrentPage(string $page)

Sets the current page identifier used for navigation highlighting.

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

void
checkId()

No description

Details

void run()

Abstract method to be implemented by subclasses to run the controller logic.

Return Value

void

__construct(array $request)

Constructor for BaseController.

Parameters

array $request

The request data.

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.

Return Value

bool

bool isPost()

Checks if the current request is a POST request.

Return Value

bool

True if the request method is POST, false otherwise.

ConfigurationManager getConfig()

Gets the application configuration.

Return Value

ConfigurationManager

The application configuration.

protected mixed getModuleConfig(string $module, string $key, mixed $default = null)

Get a module config value with legacy fallback.

Checks modules.. first, then falls back to . for backward compatibility with pre-module config layouts.

Parameters

string $module
string $key
mixed $default

Return Value

mixed

void render(string $template, array $params)

Renders a template with the given parameters.

Parameters

string $template

The template to render.

array $params

The parameters to pass to the template.

Return Value

void

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.

Return Value

PdnsCapabilities

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.

Return Value

PdnsCapabilities|null

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.

Return Value

void

void validateCsrfToken()

Validates the CSRF token from the request.

Return Value

void

void redirect(string $url, array $args = [])

Redirects to a specified URL with optional arguments.

Automatically prepends base_url_prefix for subfolder deployments.

Parameters

string $url

The URL to redirect to.

array $args

The arguments to pass as query parameters.

Return Value

void

void setMessage(string $script, string $type, string $content)

Sets a message to be displayed for a specific script.

Parameters

string $script

The script to set the message for.

string $type

The type of message (error, warning, success, info).

string $content

The content of the message.

Return Value

void

array|null getMessages(string $script)

Gets messages for a specific script.

Parameters

string $script

The script to get messages for.

Return Value

array|null

The messages for the script, or null if no messages are set.

void checkCondition(bool $condition, string $errorMessage)

Checks a condition and displays an error message if the condition is true.

Parameters

bool $condition

The condition to check.

string $errorMessage

The error message to display if the condition is true.

Return Value

void

protected UserPreferenceService createUserPreferenceService()

No description

Return Value

UserPreferenceService

protected UserTimezoneService createUserTimezoneService()

No description

Return Value

UserTimezoneService

protected PaginationService createPaginationService()

No description

Return Value

PaginationService

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.

Parameters

int $totalItems
int $itemsPerPage
string $path
array $queryParams

Return Value

string

protected DnsBackendProvider createDnsBackendProvider()

No description

Return Value

DnsBackendProvider

protected DnsDataService createDnsDataService()

No description

Return Value

DnsDataService

protected ZoneRepositoryInterface createZoneRepository()

No description

protected DomainRepositoryInterface createDomainRepository()

No description

protected RecordRepositoryInterface createRecordRepository()

No description

protected UserRepository createUserRepository()

No description

Return Value

UserRepository

protected PermissionService createPermissionService()

No description

Return Value

PermissionService

protected UserManagementService createUserManagementService()

No description

Return Value

UserManagementService

protected ApiPermissionService createApiPermissionService()

No description

Return Value

ApiPermissionService

protected bool hasPermission(string $permission)

Check if the logged-in user has the given permission

Parameters

string $permission

Return Value

bool

protected bool getWideLayout()

Whether the logged-in user wants the page to span the full browser width

Return Value

bool

protected bool isZoneOwner(int $zoneId)

Check if the logged-in user owns the given zone directly or via group membership

Parameters

int $zoneId

Return Value

bool

protected void requireZoneView(int $zoneId)

Stops the request unless the current user may open the zone (showError exits).

Parameters

int $zoneId

Return Value

void

protected UserGroupRepositoryInterface createUserGroupRepository()

No description

protected ZoneManagementService createZoneManagementService()

The zone service the API uses, told what the connected server supports.

Return Value

ZoneManagementService

protected ModuleRegistry moduleRegistry()

Enabled modules, loaded once per request.

Return Value

ModuleRegistry

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.

Parameters

string $capability
array $context

Placeholders for the modules' url patterns, e.g. zone_id

Return Value

array

protected bool moduleProvides(string $capability)

No description

Parameters

string $capability

Return Value

bool

protected AuditService createAuditService()

No description

Return Value

AuditService

protected ZoneMetadataService createZoneMetadataService()

No description

Return Value

ZoneMetadataService

protected ZoneSigningService createZoneSigningService()

No description

Return Value

ZoneSigningService

protected ZoneCreateOwnershipResolver createZoneCreateOwnershipResolver()

No description

protected string|null zoneOwnerOptionsBlocker()

Why the current user cannot pick any zone owner (groups_only mode), or null.

Return Value

string|null

protected ZoneOwnershipResolution resolveZoneOwnershipFromForm(Request $request)

Owner and groups of the add-zone forms, checked against the shared ownership rules.

Parameters

Request $request

Return Value

ZoneOwnershipResolution

protected UserGroupMemberRepositoryInterface createUserGroupMemberRepository()

No description

protected DbPermissionTemplateRepository createPermissionTemplateRepository()

No description

protected PermissionTemplateWriteService createPermissionTemplateWriteService()

No description

protected DashboardStatsService createDashboardStatsService()

No description

Return Value

DashboardStatsService

protected ZoneEditService createZoneEditService()

No description

Return Value

ZoneEditService

protected ZoneListPermissionService createZoneListPermissionService()

No description

protected array groupNamesById()

Group names keyed by id, for the group column of the zone lists.

Return Value

array

protected ZoneGroupRepositoryInterface createZoneGroupRepository()

No description

protected ReverseTtlResolver createReverseTtlResolver()

No description

Return Value

ReverseTtlResolver

protected RecordManagerInterface createRecordManager()

No description

Return Value

RecordManagerInterface

protected SOARecordManagerInterface createSOARecordManager()

No description

protected DnssecProvider createDnssecProvider()

No description

Return Value

DnssecProvider

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.

Parameters

string $zoneName

Return Value

void

protected RecordManagerService createRecordManagerService()

No description

Return Value

RecordManagerService

protected RecordAddService createRecordAddService()

No description

Return Value

RecordAddService

protected ReverseRecordCreator createReverseRecordCreator()

No description

Return Value

ReverseRecordCreator

protected BatchReverseRecordCreator createBatchReverseRecordCreator()

No description

protected DomainManagerInterface createDomainManager()

No description

Return Value

DomainManagerInterface

protected CatalogZoneService createCatalogZoneService()

No description

Return Value

CatalogZoneService

protected RepositoryFactory getRepositoryFactory(DnsBackendProvider|null $backendProvider = null)

No description

Parameters

DnsBackendProvider|null $backendProvider

Return Value

RepositoryFactory

protected int|null getCurrentUserId()

Get current user ID

Return Value

int|null

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.

Parameters

string $script
ZoneWriteResult $result
string $successMessage

Return Value

void

protected UserContextService getUserContextService()

Get the user context service

Return Value

UserContextService

protected void setCurrentPage(string $page)

Sets the current page identifier used for navigation highlighting.

Parameters

string $page

The page identifier

Return Value

void

protected void setPageTitle(string $title)

Sets the page title displayed in the header.

Parameters

string $title

The page title

Return Value

void

void checkPermission(string $permission, string $errorMessage)

Checks if the user has a specific permission and displays an error message if not.

Parameters

string $permission

The permission to check.

string $errorMessage

The error message to display if the user does not have the permission.

Return Value

void

void showError(string $error, string|null $recordName = null)

Displays an error message.

Parameters

string $error

The error message to display.

string|null $recordName

Optional record name for context

Return Value

void

array getRequest()

Gets the request data.

Return Value

array

The request data.

string getSafeRequestValue(string $key)

Gets a safe value from the request data.

Parameters

string $key

The key to get the value for.

Return Value

string

The safe value.

void setValidationConstraints(array $constraints)

Sets validation constraints for the request data.

Parameters

array $constraints

The validation constraints.

Return Value

void

void setRequestRules(array $rules)

Sets validation rules for the request data.

Parameters

array $rules

The validation rules.

Return Value

void

bool doValidateRequest(array|null $data = null)

Validates the request data.

Parameters

array|null $data

Optional data to validate. If not provided, uses $this->requestData

Return Value

bool

True if the request data is valid, false otherwise.

void showFirstValidationError(array|null $data = null)

Displays the first validation error.

Parameters

array|null $data

Optional data to validate. If not provided, uses $this->requestData

Return Value

void

void addSystemMessage(string $type, string $content)

Adds a system-wide message that will be displayed on any page

Parameters

string $type

The type of message (error, warning, success, info)

string $content

The content of the message

Return Value

void

void checkId()

No description

Return Value

void