chore: support dns use_username_in_magic_dns config

This commit is contained in:
Aarnav Tale 2024-09-25 16:22:00 -04:00
parent 90f0bf2555
commit 58e98278d1
No known key found for this signature in database
6 changed files with 16 additions and 10 deletions

View File

@ -28,7 +28,7 @@ export default function Modal({ name, disabled }: Properties) {
Devices are accessible at
{' '}
<Code>
[device].[user].{name}
[device].{name}
</Code>
{' '}
when Magic DNS is enabled.

View File

@ -25,7 +25,9 @@ export async function loader() {
const dns = {
prefixes: config.prefixes,
magicDns: config.dns.magic_dns,
baseDomain: config.dns.base_domain,
baseDomain: config.dns.use_username_in_magic_dns
? `[user].${config.dns.base_domain}`
: config.dns.base_domain,
nameservers: config.dns.nameservers.global,
splitDns: config.dns.nameservers.split,
searchDomains: config.dns.search_domains,
@ -107,7 +109,7 @@ export default function Page() {
on the tailnet. Devices will be accessible at
{' '}
<Code>
[device].[user].
[device].
{data.baseDomain}
</Code>
{' '}

View File

@ -31,6 +31,10 @@ export default function MachineRow({ machine, routes, magic, users }: Props) {
tags.unshift('Expired')
}
let prefix = magic?.startsWith('[user]')
? magic.replace('[user]', machine.user.name)
: magic
return (
<tr
key={machine.id}
@ -102,16 +106,14 @@ export default function MachineRow({ machine, routes, magic, users }: Props) {
'justify-between w-full break-keep',
)}
onPress={async () => {
const ip = `${machine.givenName}.${machine.user.name}.${magic}`
const ip = `${machine.givenName}.${prefix}`
await navigator.clipboard.writeText(ip)
toast('Copied hostname to clipboard')
}}
>
{machine.givenName}
.
{machine.user.name}
.
{magic}
{prefix}
<CopyIcon className="w-3 h-3" />
</Menu.ItemButton>
)

View File

@ -32,6 +32,10 @@ export async function loader({ request }: LoaderFunctionArgs) {
if (config.dns.magic_dns) {
magic = config.dns.base_domain
}
if (config.dns.use_username_in_magic_dns) {
magic = `[user].${magic}`
}
}
return {
@ -76,7 +80,7 @@ export default function Page() {
based on their name and also at
{' '}
<Code>
[name].[user].
[name].
{data.magic}
</Code>
</Tooltip>

View File

@ -36,7 +36,6 @@ export default function Add({ magic }: Props) {
{' '}
<Code>
[machine].
{username.length > 0 ? username : '[username]'}
.
{magic}
</Code>

View File

@ -59,7 +59,6 @@ export default function Rename({ username, magic }: Props) {
{' '}
<Code>
[machine].
{newName.length > 0 ? newName : '[new-username]'}
.
{magic}
</Code>