mirror of
https://github.com/fosrl/pangolin.git
synced 2025-05-12 21:30:35 +01:00
move resource auth to auth router
This commit is contained in:
parent
50e2d6721f
commit
cc05baf67d
3 changed files with 15 additions and 22 deletions
|
@ -281,10 +281,6 @@ authenticated.post(
|
||||||
verifyUserHasAction(ActionsEnum.setResourceAuthMethods),
|
verifyUserHasAction(ActionsEnum.setResourceAuthMethods),
|
||||||
resource.setResourcePassword,
|
resource.setResourcePassword,
|
||||||
);
|
);
|
||||||
unauthenticated.post(
|
|
||||||
"/resource/:resourceId/auth/password",
|
|
||||||
resource.authWithPassword,
|
|
||||||
);
|
|
||||||
|
|
||||||
authenticated.post(
|
authenticated.post(
|
||||||
`/resource/:resourceId/pincode`,
|
`/resource/:resourceId/pincode`,
|
||||||
|
@ -292,10 +288,6 @@ authenticated.post(
|
||||||
verifyUserHasAction(ActionsEnum.setResourceAuthMethods),
|
verifyUserHasAction(ActionsEnum.setResourceAuthMethods),
|
||||||
resource.setResourcePincode,
|
resource.setResourcePincode,
|
||||||
);
|
);
|
||||||
unauthenticated.post(
|
|
||||||
"/resource/:resourceId/auth/pincode",
|
|
||||||
resource.authWithPincode,
|
|
||||||
);
|
|
||||||
|
|
||||||
unauthenticated.get("/resource/:resourceId/auth", resource.getResourceAuthInfo);
|
unauthenticated.get("/resource/:resourceId/auth", resource.getResourceAuthInfo);
|
||||||
|
|
||||||
|
@ -382,7 +374,7 @@ unauthenticated.use("/auth", authRouter);
|
||||||
authRouter.use(
|
authRouter.use(
|
||||||
rateLimitMiddleware({
|
rateLimitMiddleware({
|
||||||
windowMin: 10,
|
windowMin: 10,
|
||||||
max: 15,
|
max: 75,
|
||||||
type: "IP_AND_PATH",
|
type: "IP_AND_PATH",
|
||||||
}),
|
}),
|
||||||
);
|
);
|
||||||
|
@ -412,3 +404,6 @@ authRouter.post(
|
||||||
);
|
);
|
||||||
authRouter.post("/reset-password/request", auth.requestPasswordReset);
|
authRouter.post("/reset-password/request", auth.requestPasswordReset);
|
||||||
authRouter.post("/reset-password/", auth.resetPassword);
|
authRouter.post("/reset-password/", auth.resetPassword);
|
||||||
|
|
||||||
|
authRouter.post("/resource/:resourceId/password", resource.authWithPassword);
|
||||||
|
authRouter.post("/resource/:resourceId/pincode", resource.authWithPincode);
|
||||||
|
|
|
@ -64,13 +64,20 @@ type ResourceAuthPortalProps = {
|
||||||
};
|
};
|
||||||
redirect: string;
|
redirect: string;
|
||||||
queryParamName: string;
|
queryParamName: string;
|
||||||
numMethods: number;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
export default function ResourceAuthPortal(props: ResourceAuthPortalProps) {
|
export default function ResourceAuthPortal(props: ResourceAuthPortalProps) {
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
|
|
||||||
const numMethods = props.numMethods;
|
const getNumMethods = () => {
|
||||||
|
let colLength = 0;
|
||||||
|
if (props.methods.pincode) colLength++;
|
||||||
|
if (props.methods.password) colLength++;
|
||||||
|
if (props.methods.sso) colLength++;
|
||||||
|
return colLength;
|
||||||
|
};
|
||||||
|
|
||||||
|
const [numMethods, setNumMethods] = useState(getNumMethods());
|
||||||
|
|
||||||
const [passwordError, setPasswordError] = useState<string | null>(null);
|
const [passwordError, setPasswordError] = useState<string | null>(null);
|
||||||
const [pincodeError, setPincodeError] = useState<string | null>(null);
|
const [pincodeError, setPincodeError] = useState<string | null>(null);
|
||||||
|
@ -117,7 +124,7 @@ export default function ResourceAuthPortal(props: ResourceAuthPortalProps) {
|
||||||
const onPinSubmit = (values: z.infer<typeof pinSchema>) => {
|
const onPinSubmit = (values: z.infer<typeof pinSchema>) => {
|
||||||
setLoadingLogin(true);
|
setLoadingLogin(true);
|
||||||
api.post<AxiosResponse<AuthWithPasswordResponse>>(
|
api.post<AxiosResponse<AuthWithPasswordResponse>>(
|
||||||
`/resource/${props.resource.id}/auth/pincode`,
|
`/auth/resource/${props.resource.id}/pincode`,
|
||||||
{ pincode: values.pin },
|
{ pincode: values.pin },
|
||||||
)
|
)
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
|
@ -141,7 +148,7 @@ export default function ResourceAuthPortal(props: ResourceAuthPortalProps) {
|
||||||
const onPasswordSubmit = (values: z.infer<typeof passwordSchema>) => {
|
const onPasswordSubmit = (values: z.infer<typeof passwordSchema>) => {
|
||||||
setLoadingLogin(true);
|
setLoadingLogin(true);
|
||||||
api.post<AxiosResponse<AuthWithPasswordResponse>>(
|
api.post<AxiosResponse<AuthWithPasswordResponse>>(
|
||||||
`/resource/${props.resource.id}/auth/password`,
|
`/auth/resource/${props.resource.id}/password`,
|
||||||
{
|
{
|
||||||
password: values.password,
|
password: values.password,
|
||||||
},
|
},
|
||||||
|
|
|
@ -80,14 +80,6 @@ export default async function ResourceAuthPage(props: {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
const getNumMethods = () => {
|
|
||||||
let colLength = 0;
|
|
||||||
if (authInfo.pincode) colLength++;
|
|
||||||
if (authInfo.password) colLength++;
|
|
||||||
if (authInfo.sso) colLength++;
|
|
||||||
return colLength;
|
|
||||||
};
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<div className="w-full max-w-md">
|
<div className="w-full max-w-md">
|
||||||
|
@ -105,7 +97,6 @@ export default async function ResourceAuthPage(props: {
|
||||||
queryParamName={
|
queryParamName={
|
||||||
process.env.RESOURCE_SESSION_QUERY_PARAM_NAME!
|
process.env.RESOURCE_SESSION_QUERY_PARAM_NAME!
|
||||||
}
|
}
|
||||||
numMethods={getNumMethods()}
|
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</>
|
</>
|
||||||
|
|
Loading…
Reference in a new issue