mirror of
https://github.com/Start9Labs/start-os.git
synced 2026-03-30 04:01:58 +00:00
fix private domain dns ip and hide private domaains for wg gateways
This commit is contained in:
@@ -34,23 +34,34 @@ import { InterfaceAddressItemComponent } from './item.component'
|
||||
template: `
|
||||
<header>
|
||||
{{ 'Gateway' | i18n }}: {{ gatewayGroup().gatewayName }}
|
||||
<button
|
||||
tuiDropdown
|
||||
tuiButton
|
||||
iconStart="@tui.plus"
|
||||
[style.margin-inline-start]="'auto'"
|
||||
[(tuiDropdownOpen)]="addOpen"
|
||||
>
|
||||
{{ 'Add Domain' | i18n }}
|
||||
<tui-data-list *tuiDropdown (click)="addOpen.set(false)">
|
||||
<button tuiOption (click)="addPublicDomain()">
|
||||
{{ 'Public Domain' | i18n }}
|
||||
</button>
|
||||
<button tuiOption (click)="addPrivateDomain()">
|
||||
{{ 'Private Domain' | i18n }}
|
||||
</button>
|
||||
</tui-data-list>
|
||||
</button>
|
||||
@if (gatewayGroup().isWireguard) {
|
||||
<button
|
||||
tuiButton
|
||||
iconStart="@tui.plus"
|
||||
[style.margin-inline-start]="'auto'"
|
||||
(click)="addPublicDomain()"
|
||||
>
|
||||
{{ 'Add Public Domain' | i18n }}
|
||||
</button>
|
||||
} @else {
|
||||
<button
|
||||
tuiDropdown
|
||||
tuiButton
|
||||
iconStart="@tui.plus"
|
||||
[style.margin-inline-start]="'auto'"
|
||||
[(tuiDropdownOpen)]="addOpen"
|
||||
>
|
||||
{{ 'Add Domain' | i18n }}
|
||||
<tui-data-list *tuiDropdown (click)="addOpen.set(false)">
|
||||
<button tuiOption (click)="addPublicDomain()">
|
||||
{{ 'Public Domain' | i18n }}
|
||||
</button>
|
||||
<button tuiOption (click)="addPrivateDomain()">
|
||||
{{ 'Private Domain' | i18n }}
|
||||
</button>
|
||||
</tui-data-list>
|
||||
</button>
|
||||
}
|
||||
</header>
|
||||
<table
|
||||
[appTable]="[
|
||||
|
||||
@@ -5,6 +5,7 @@ import {
|
||||
signal,
|
||||
} from '@angular/core'
|
||||
import { ErrorService, i18nPipe } from '@start9labs/shared'
|
||||
import { utils } from '@start9labs/start-sdk'
|
||||
import { TuiButton, TuiDialogContext, TuiIcon, TuiLoader } from '@taiga-ui/core'
|
||||
import { TuiButtonLoading } from '@taiga-ui/kit'
|
||||
import { injectContext, PolymorpheusComponent } from '@taiga-ui/polymorpheus'
|
||||
@@ -22,7 +23,7 @@ export type PrivateDnsValidationData = {
|
||||
template: `
|
||||
@let gatewayName =
|
||||
context.data.gateway.name || context.data.gateway.ipInfo.name;
|
||||
@let internalIp = context.data.gateway.ipInfo.lanIp[0] || ('Error' | i18n);
|
||||
@let internalIp = lanIp || ('Error' | i18n);
|
||||
|
||||
<h2>{{ 'DNS Server Config' | i18n }}</h2>
|
||||
<p>
|
||||
@@ -146,6 +147,12 @@ export class PrivateDnsValidationComponent {
|
||||
readonly context =
|
||||
injectContext<TuiDialogContext<void, PrivateDnsValidationData>>()
|
||||
|
||||
get lanIp() {
|
||||
return this.context.data.gateway.ipInfo.subnets
|
||||
.map(s => utils.IpNet.parse(s))
|
||||
.find(s => s.isIpv4())?.address
|
||||
}
|
||||
|
||||
readonly loading = signal(false)
|
||||
readonly pass = signal<boolean | undefined>(undefined)
|
||||
|
||||
|
||||
@@ -158,6 +158,7 @@ export class InterfaceService {
|
||||
return {
|
||||
gatewayId: g.id,
|
||||
gatewayName: g.name,
|
||||
isWireguard: g.ipInfo?.deviceType === 'wireguard',
|
||||
addresses,
|
||||
}
|
||||
})
|
||||
@@ -313,6 +314,7 @@ export type GatewayAddress = {
|
||||
export type GatewayAddressGroup = {
|
||||
gatewayId: string
|
||||
gatewayName: string
|
||||
isWireguard: boolean
|
||||
addresses: GatewayAddress[]
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user