mirror of
https://github.com/awatertrevi/infisical.git
synced 2026-10-07 13:27:46 +00:00
added user controller and modified auth method page
This commit is contained in:
@@ -148,6 +148,43 @@ export const updateAuthProvider = async (req: Request, res: Response) => {
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Update auth provider of the current user to [authProvider]
|
||||
* @param req
|
||||
* @param res
|
||||
* @returns
|
||||
*/
|
||||
export const updateAuthProviders = async (req: Request, res: Response) => {
|
||||
const {
|
||||
authProviders
|
||||
} = req.body;
|
||||
|
||||
if (
|
||||
req.user?.authProvider === AuthProvider.OKTA_SAML
|
||||
|| req.user?.authProvider === AuthProvider.AZURE_SAML
|
||||
|| req.user?.authProvider === AuthProvider.JUMPCLOUD_SAML
|
||||
) {
|
||||
return res.status(400).send({
|
||||
message: "Failed to update user authentication method because SAML SSO is enforced"
|
||||
});
|
||||
}
|
||||
|
||||
const user = await User.findByIdAndUpdate(
|
||||
req.user._id.toString(),
|
||||
{
|
||||
authProviders
|
||||
},
|
||||
{
|
||||
new: true
|
||||
}
|
||||
);
|
||||
|
||||
return res.status(200).send({
|
||||
user
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Return organizations that the current user is part of.
|
||||
* @param req
|
||||
|
||||
@@ -13,6 +13,7 @@ export interface IUser extends Document {
|
||||
_id: Types.ObjectId;
|
||||
authId?: string;
|
||||
authProvider?: AuthProvider;
|
||||
authProviders?: AuthProvider[];
|
||||
email: string;
|
||||
firstName?: string;
|
||||
lastName?: string;
|
||||
|
||||
@@ -57,6 +57,24 @@ router.patch(
|
||||
usersController.updateAuthProvider
|
||||
);
|
||||
|
||||
router.put(
|
||||
"/me/auth-providers",
|
||||
requireAuth({
|
||||
acceptedAuthModes: [AUTH_MODE_JWT, AUTH_MODE_API_KEY],
|
||||
}),
|
||||
body("authProviders").exists().isArray({
|
||||
min: 1,
|
||||
}).custom((authProviders: AuthProvider[]) => {
|
||||
return authProviders.every(provider => [
|
||||
AuthProvider.EMAIL,
|
||||
AuthProvider.GOOGLE,
|
||||
AuthProvider.GITHUB
|
||||
].includes(provider))
|
||||
}),
|
||||
validateRequest,
|
||||
usersController.updateAuthProviders,
|
||||
);
|
||||
|
||||
router.get(
|
||||
"/me/organizations",
|
||||
requireAuth({
|
||||
|
||||
Reference in New Issue
Block a user