mirror of
https://github.com/awatertrevi/infisical.git
synced 2026-10-17 16:27:39 +00:00
114 lines
2.4 KiB
TypeScript
114 lines
2.4 KiB
TypeScript
import express from "express";
|
|
const router = express.Router();
|
|
import {
|
|
requireAuth,
|
|
validateRequest,
|
|
} from "../../middleware";
|
|
import { body, param } from "express-validator";
|
|
import { usersController } from "../../controllers/v2";
|
|
import { AuthMode } from "../../variables";
|
|
import {
|
|
AuthMethod
|
|
} from "../../models";
|
|
|
|
router.get(
|
|
"/me",
|
|
requireAuth({
|
|
acceptedAuthModes: [AuthMode.JWT, AuthMode.API_KEY],
|
|
}),
|
|
usersController.getMe
|
|
);
|
|
|
|
router.patch(
|
|
"/me/mfa",
|
|
requireAuth({
|
|
acceptedAuthModes: [AuthMode.JWT, AuthMode.API_KEY],
|
|
}),
|
|
body("isMfaEnabled").exists().isBoolean(),
|
|
validateRequest,
|
|
usersController.updateMyMfaEnabled
|
|
);
|
|
|
|
router.patch(
|
|
"/me/name",
|
|
requireAuth({
|
|
acceptedAuthModes: [AuthMode.JWT, AuthMode.API_KEY],
|
|
}),
|
|
body("firstName").exists().isString(),
|
|
body("lastName").isString(),
|
|
validateRequest,
|
|
usersController.updateName
|
|
);
|
|
|
|
router.put(
|
|
"/me/auth-methods",
|
|
requireAuth({
|
|
acceptedAuthModes: [AuthMode.JWT, AuthMode.API_KEY],
|
|
}),
|
|
body("authMethods").exists().isArray({
|
|
min: 1,
|
|
}).custom((authMethods: AuthMethod[]) => {
|
|
return authMethods.every(provider => [
|
|
AuthMethod.EMAIL,
|
|
AuthMethod.GOOGLE,
|
|
AuthMethod.GITHUB
|
|
].includes(provider))
|
|
}),
|
|
validateRequest,
|
|
usersController.updateAuthMethods,
|
|
);
|
|
|
|
router.get(
|
|
"/me/organizations",
|
|
requireAuth({
|
|
acceptedAuthModes: [AuthMode.JWT, AuthMode.API_KEY],
|
|
}),
|
|
usersController.getMyOrganizations
|
|
);
|
|
|
|
router.get(
|
|
"/me/api-keys",
|
|
requireAuth({
|
|
acceptedAuthModes: [AuthMode.JWT]
|
|
}),
|
|
usersController.getMyAPIKeys
|
|
);
|
|
|
|
router.post(
|
|
"/me/api-keys",
|
|
requireAuth({
|
|
acceptedAuthModes: [AuthMode.JWT]
|
|
}),
|
|
body("name").exists().isString().trim(),
|
|
body("expiresIn").isNumeric(),
|
|
validateRequest,
|
|
usersController.createAPIKey
|
|
);
|
|
|
|
router.delete(
|
|
"/me/api-keys/:apiKeyDataId",
|
|
requireAuth({
|
|
acceptedAuthModes: [AuthMode.JWT]
|
|
}),
|
|
param("apiKeyDataId").exists().trim(),
|
|
validateRequest,
|
|
usersController.deleteAPIKey
|
|
);
|
|
|
|
router.get(
|
|
"/me/sessions",
|
|
requireAuth({
|
|
acceptedAuthModes: [AuthMode.JWT]
|
|
}),
|
|
usersController.getMySessions
|
|
);
|
|
|
|
router.delete(
|
|
"/me/sessions",
|
|
requireAuth({
|
|
acceptedAuthModes: [AuthMode.JWT]
|
|
}),
|
|
usersController.deleteMySessions
|
|
);
|
|
|
|
export default router; |