mirror of
https://github.com/fosrl/pangolin.git
synced 2025-05-12 21:30:35 +01:00
use zod for rules ip validation
This commit is contained in:
parent
fdf1dfdeba
commit
19273ddbd5
3 changed files with 14 additions and 28 deletions
9
eslint.config.js
Normal file
9
eslint.config.js
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
// eslint.config.js
|
||||||
|
export default [
|
||||||
|
{
|
||||||
|
rules: {
|
||||||
|
semi: "error",
|
||||||
|
"prefer-const": "error"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
];
|
|
@ -95,6 +95,7 @@ export async function validateSessionToken(
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function invalidateSession(sessionId: string): Promise<void> {
|
export async function invalidateSession(sessionId: string): Promise<void> {
|
||||||
|
await db.delete(resourceSessions).where(eq(resourceSessions.userSessionId, sessionId));
|
||||||
await db.delete(sessions).where(eq(sessions.sessionId, sessionId));
|
await db.delete(sessions).where(eq(sessions.sessionId, sessionId));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,35 +1,11 @@
|
||||||
|
import z from "zod";
|
||||||
|
|
||||||
export function isValidCIDR(cidr: string): boolean {
|
export function isValidCIDR(cidr: string): boolean {
|
||||||
// Match CIDR pattern (e.g., "192.168.0.0/24")
|
return z.string().cidr().safeParse(cidr).success;
|
||||||
const cidrPattern =
|
|
||||||
/^([0-9]{1,3}\.){3}[0-9]{1,3}\/([0-9]|[1-2][0-9]|3[0-2])$/;
|
|
||||||
|
|
||||||
if (!cidrPattern.test(cidr)) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Validate IP address part
|
|
||||||
const ipPart = cidr.split("/")[0];
|
|
||||||
const octets = ipPart.split(".");
|
|
||||||
|
|
||||||
return octets.every((octet) => {
|
|
||||||
const num = parseInt(octet, 10);
|
|
||||||
return num >= 0 && num <= 255;
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export function isValidIP(ip: string): boolean {
|
export function isValidIP(ip: string): boolean {
|
||||||
const ipPattern = /^([0-9]{1,3}\.){3}[0-9]{1,3}$/;
|
return z.string().ip().safeParse(ip).success;
|
||||||
|
|
||||||
if (!ipPattern.test(ip)) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
const octets = ip.split(".");
|
|
||||||
|
|
||||||
return octets.every((octet) => {
|
|
||||||
const num = parseInt(octet, 10);
|
|
||||||
return num >= 0 && num <= 255;
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export function isValidUrlGlobPattern(pattern: string): boolean {
|
export function isValidUrlGlobPattern(pattern: string): boolean {
|
||||||
|
|
Loading…
Reference in a new issue