mirror of
https://github.com/fosrl/pangolin.git
synced 2026-03-03 17:26:38 +00:00
Fix credentials
This commit is contained in:
@@ -13,7 +13,7 @@
|
|||||||
|
|
||||||
import { Request, Response, NextFunction } from "express";
|
import { Request, Response, NextFunction } from "express";
|
||||||
import { z } from "zod";
|
import { z } from "zod";
|
||||||
import { db, olms } from "@server/db";
|
import { db, Olm, olms } from "@server/db";
|
||||||
import { clients } from "@server/db";
|
import { clients } from "@server/db";
|
||||||
import response from "@server/lib/response";
|
import response from "@server/lib/response";
|
||||||
import HttpCode from "@server/types/HttpCode";
|
import HttpCode from "@server/types/HttpCode";
|
||||||
@@ -146,7 +146,9 @@ export async function reGenerateClientSecret(
|
|||||||
});
|
});
|
||||||
|
|
||||||
return response(res, {
|
return response(res, {
|
||||||
data: existingOlms,
|
data: {
|
||||||
|
olmId: existingOlms[0].olmId,
|
||||||
|
},
|
||||||
success: true,
|
success: true,
|
||||||
error: false,
|
error: false,
|
||||||
message: "Credentials regenerated successfully",
|
message: "Credentials regenerated successfully",
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import { NextFunction, Request, Response } from "express";
|
import { NextFunction, Request, Response } from "express";
|
||||||
import { db, exitNodes, exitNodeOrgs, ExitNode, ExitNodeOrg } from "@server/db";
|
import { db, exitNodes, exitNodeOrgs, ExitNode, ExitNodeOrg, RemoteExitNode } from "@server/db";
|
||||||
import HttpCode from "@server/types/HttpCode";
|
import HttpCode from "@server/types/HttpCode";
|
||||||
import { z } from "zod";
|
import { z } from "zod";
|
||||||
import { remoteExitNodes } from "@server/db";
|
import { remoteExitNodes } from "@server/db";
|
||||||
@@ -22,7 +22,6 @@ import { fromError } from "zod-validation-error";
|
|||||||
import { hashPassword } from "@server/auth/password";
|
import { hashPassword } from "@server/auth/password";
|
||||||
import logger from "@server/logger";
|
import logger from "@server/logger";
|
||||||
import { and, eq } from "drizzle-orm";
|
import { and, eq } from "drizzle-orm";
|
||||||
import { UpdateRemoteExitNodeResponse } from "@server/routers/remoteExitNode/types";
|
|
||||||
import { OpenAPITags, registry } from "@server/openApi";
|
import { OpenAPITags, registry } from "@server/openApi";
|
||||||
import { disconnectClient } from "@server/routers/ws";
|
import { disconnectClient } from "@server/routers/ws";
|
||||||
|
|
||||||
@@ -108,11 +107,8 @@ export async function reGenerateExitNodeSecret(
|
|||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
return response<UpdateRemoteExitNodeResponse>(res, {
|
return response(res, {
|
||||||
data: {
|
data: null,
|
||||||
remoteExitNodeId,
|
|
||||||
secret
|
|
||||||
},
|
|
||||||
success: true,
|
success: true,
|
||||||
error: false,
|
error: false,
|
||||||
message: "Remote Exit Node secret updated successfully",
|
message: "Remote Exit Node secret updated successfully",
|
||||||
|
|||||||
@@ -214,7 +214,9 @@ export async function reGenerateSiteSecret(
|
|||||||
}
|
}
|
||||||
|
|
||||||
return response(res, {
|
return response(res, {
|
||||||
data: existingNewt,
|
data: {
|
||||||
|
newtId: existingNewt ? existingNewt.newtId : undefined
|
||||||
|
},
|
||||||
success: true,
|
success: true,
|
||||||
error: false,
|
error: false,
|
||||||
message: "Credentials regenerated successfully",
|
message: "Credentials regenerated successfully",
|
||||||
|
|||||||
@@ -6,11 +6,6 @@ export type CreateRemoteExitNodeResponse = {
|
|||||||
secret: string;
|
secret: string;
|
||||||
};
|
};
|
||||||
|
|
||||||
export type UpdateRemoteExitNodeResponse = {
|
|
||||||
remoteExitNodeId: string;
|
|
||||||
secret: string;
|
|
||||||
}
|
|
||||||
|
|
||||||
export type PickRemoteExitNodeDefaultsResponse = {
|
export type PickRemoteExitNodeDefaultsResponse = {
|
||||||
remoteExitNodeId: string;
|
remoteExitNodeId: string;
|
||||||
secret: string;
|
secret: string;
|
||||||
|
|||||||
@@ -25,12 +25,6 @@ import RegenerateCredentialsModal from "@app/components/RegenerateCredentialsMod
|
|||||||
import { useSubscriptionStatusContext } from "@app/hooks/useSubscriptionStatusContext";
|
import { useSubscriptionStatusContext } from "@app/hooks/useSubscriptionStatusContext";
|
||||||
import { useLicenseStatusContext } from "@app/hooks/useLicenseStatusContext";
|
import { useLicenseStatusContext } from "@app/hooks/useLicenseStatusContext";
|
||||||
import { build } from "@server/build";
|
import { build } from "@server/build";
|
||||||
import {
|
|
||||||
Tooltip,
|
|
||||||
TooltipContent,
|
|
||||||
TooltipProvider,
|
|
||||||
TooltipTrigger
|
|
||||||
} from "@app/components/ui/tooltip";
|
|
||||||
import { SecurityFeaturesAlert } from "@app/components/SecurityFeaturesAlert";
|
import { SecurityFeaturesAlert } from "@app/components/SecurityFeaturesAlert";
|
||||||
|
|
||||||
export default function CredentialsPage() {
|
export default function CredentialsPage() {
|
||||||
|
|||||||
@@ -11,12 +11,6 @@ import {
|
|||||||
SettingsSectionTitle
|
SettingsSectionTitle
|
||||||
} from "@app/components/Settings";
|
} from "@app/components/Settings";
|
||||||
import { Button } from "@app/components/ui/button";
|
import { Button } from "@app/components/ui/button";
|
||||||
import {
|
|
||||||
Tooltip,
|
|
||||||
TooltipContent,
|
|
||||||
TooltipProvider,
|
|
||||||
TooltipTrigger
|
|
||||||
} from "@app/components/ui/tooltip";
|
|
||||||
import { useClientContext } from "@app/hooks/useClientContext";
|
import { useClientContext } from "@app/hooks/useClientContext";
|
||||||
import { useEnvContext } from "@app/hooks/useEnvContext";
|
import { useEnvContext } from "@app/hooks/useEnvContext";
|
||||||
import { useLicenseStatusContext } from "@app/hooks/useLicenseStatusContext";
|
import { useLicenseStatusContext } from "@app/hooks/useLicenseStatusContext";
|
||||||
@@ -55,15 +49,22 @@ export default function CredentialsPage() {
|
|||||||
const res = await api.get(`/org/${orgId}/pick-client-defaults`);
|
const res = await api.get(`/org/${orgId}/pick-client-defaults`);
|
||||||
if (res && res.status === 200) {
|
if (res && res.status === 200) {
|
||||||
const data = res.data.data;
|
const data = res.data.data;
|
||||||
setClientDefaults(data);
|
|
||||||
|
|
||||||
await api.post(
|
const rekeyRes = await api.post(
|
||||||
`/re-key/${client?.clientId}/regenerate-client-secret`,
|
`/re-key/${client?.clientId}/regenerate-client-secret`,
|
||||||
{
|
{
|
||||||
secret: data.olmSecret
|
secret: data.olmSecret
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
if (rekeyRes && rekeyRes.status === 200) {
|
||||||
|
const rekeyData = rekeyRes.data.data;
|
||||||
|
setClientDefaults({
|
||||||
|
...data,
|
||||||
|
olmId: rekeyData.olmId,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
toast({
|
toast({
|
||||||
title: t("credentialsSaved"),
|
title: t("credentialsSaved"),
|
||||||
description: t("credentialsSavedDescription")
|
description: t("credentialsSavedDescription")
|
||||||
|
|||||||
@@ -22,12 +22,6 @@ import RegenerateCredentialsModal from "@app/components/RegenerateCredentialsMod
|
|||||||
import { useLicenseStatusContext } from "@app/hooks/useLicenseStatusContext";
|
import { useLicenseStatusContext } from "@app/hooks/useLicenseStatusContext";
|
||||||
import { useSubscriptionStatusContext } from "@app/hooks/useSubscriptionStatusContext";
|
import { useSubscriptionStatusContext } from "@app/hooks/useSubscriptionStatusContext";
|
||||||
import { build } from "@server/build";
|
import { build } from "@server/build";
|
||||||
import {
|
|
||||||
Tooltip,
|
|
||||||
TooltipContent,
|
|
||||||
TooltipProvider,
|
|
||||||
TooltipTrigger
|
|
||||||
} from "@app/components/ui/tooltip";
|
|
||||||
import { SecurityFeaturesAlert } from "@app/components/SecurityFeaturesAlert";
|
import { SecurityFeaturesAlert } from "@app/components/SecurityFeaturesAlert";
|
||||||
|
|
||||||
export default function CredentialsPage() {
|
export default function CredentialsPage() {
|
||||||
@@ -111,15 +105,24 @@ PersistentKeepalive = 5`;
|
|||||||
const res = await api.get(`/org/${orgId}/pick-site-defaults`);
|
const res = await api.get(`/org/${orgId}/pick-site-defaults`);
|
||||||
if (res && res.status === 200) {
|
if (res && res.status === 200) {
|
||||||
const data = res.data.data;
|
const data = res.data.data;
|
||||||
setSiteDefaults(data);
|
|
||||||
|
|
||||||
await api.post(
|
const rekeyRes = await api.post(
|
||||||
`/re-key/${site?.siteId}/regenerate-site-secret`,
|
`/re-key/${site?.siteId}/regenerate-site-secret`,
|
||||||
{
|
{
|
||||||
type: "newt",
|
type: "newt",
|
||||||
secret: data.newtSecret
|
secret: data.newtSecret
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
if (rekeyRes && rekeyRes.status === 200) {
|
||||||
|
const rekeyData = rekeyRes.data.data;
|
||||||
|
if (rekeyData && rekeyData.newtId) {
|
||||||
|
setSiteDefaults({
|
||||||
|
...data,
|
||||||
|
newtId: rekeyData.newtId
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user