UNPKG

haven-secrets-core

Version:

Core for Haven, the easy to use centralized secrets manager.

27 lines (22 loc) 1.06 kB
import listGroupsForUser from "../aws/iam/users/listGroupsForUser.js"; import revokeUserFromGroups from "./revokeUserFromGroups.js"; import getUserAccessKey from "../aws/iam/users/getUserAccessKey.js"; import deleteUserAccessKey from "../aws/iam/users/deleteUserAccessKey.js"; import deleteUser from "../aws/iam/users/deleteUser.js"; import deleteInlinePolicy from "../aws/iam/policies/deleteInlinePolicy.js"; import { listGroupsForUserPolicyName } from "../utils/config.js"; const revokeUser = async (username) => { try { const list = await listGroupsForUser(username); const groupNames = list.Groups.map(({ GroupName }) => GroupName); revokeUserFromGroups(username, ...groupNames); const accessKeyId = await getUserAccessKey(username); if (accessKeyId) await deleteUserAccessKey(accessKeyId, username); await deleteInlinePolicy(listGroupsForUserPolicyName, username); return await deleteUser(username); } catch (error) { console.log(`${error.code}: ${error.message}`); return error; } }; export default revokeUser;