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 Devices are accessible at
{' '} {' '}
<Code> <Code>
[device].[user].{name} [device].{name}
</Code> </Code>
{' '} {' '}
when Magic DNS is enabled. when Magic DNS is enabled.

View File

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

View File

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

View File

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

View File

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

View File

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