@webiny/cognito 0.0.0-unstable.0d717d18dd
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Cognito.d.ts +55 -0
- package/Cognito.js +102 -0
- package/Cognito.js.map +1 -0
- package/LICENSE +21 -0
- package/README.md +11 -0
- package/admin/Cognito.d.ts +8 -0
- package/admin/Cognito.js +50 -0
- package/admin/Cognito.js.map +1 -0
- package/admin/CognitoLogin.d.ts +7 -0
- package/admin/CognitoLogin.js +13 -0
- package/admin/CognitoLogin.js.map +1 -0
- package/admin/DefaultCognitoSignInConfig.d.ts +23 -0
- package/admin/DefaultCognitoSignInConfig.js +51 -0
- package/admin/DefaultCognitoSignInConfig.js.map +1 -0
- package/admin/Extension.d.ts +2 -0
- package/admin/Extension.js +45 -0
- package/admin/Extension.js.map +1 -0
- package/admin/SecurityPermission.d.ts +2 -0
- package/admin/SecurityPermission.js +15 -0
- package/admin/SecurityPermission.js.map +1 -0
- package/admin/SignInExtension.d.ts +2 -0
- package/admin/SignInExtension.js +9 -0
- package/admin/SignInExtension.js.map +1 -0
- package/admin/domain/permissionsSchema.d.ts +10 -0
- package/admin/domain/permissionsSchema.js +18 -0
- package/admin/domain/permissionsSchema.js.map +1 -0
- package/admin/features/account/getCurrentUser/GetCurrentUserGateway.d.ts +11 -0
- package/admin/features/account/getCurrentUser/GetCurrentUserGateway.js +44 -0
- package/admin/features/account/getCurrentUser/GetCurrentUserGateway.js.map +1 -0
- package/admin/features/account/getCurrentUser/GetCurrentUserUseCase.d.ts +10 -0
- package/admin/features/account/getCurrentUser/GetCurrentUserUseCase.js +19 -0
- package/admin/features/account/getCurrentUser/GetCurrentUserUseCase.js.map +1 -0
- package/admin/features/account/getCurrentUser/abstractions/GetCurrentUserGateway.d.ts +16 -0
- package/admin/features/account/getCurrentUser/abstractions/GetCurrentUserGateway.js +5 -0
- package/admin/features/account/getCurrentUser/abstractions/GetCurrentUserGateway.js.map +1 -0
- package/admin/features/account/getCurrentUser/abstractions/GetCurrentUserUseCase.d.ts +10 -0
- package/admin/features/account/getCurrentUser/abstractions/GetCurrentUserUseCase.js +5 -0
- package/admin/features/account/getCurrentUser/abstractions/GetCurrentUserUseCase.js.map +1 -0
- package/admin/features/account/getCurrentUser/abstractions/index.d.ts +6 -0
- package/admin/features/account/getCurrentUser/abstractions/index.js +2 -0
- package/admin/features/account/getCurrentUser/feature.d.ts +3 -0
- package/admin/features/account/getCurrentUser/feature.js +19 -0
- package/admin/features/account/getCurrentUser/feature.js.map +1 -0
- package/admin/features/account/getCurrentUser/index.d.ts +1 -0
- package/admin/features/account/getCurrentUser/index.js +1 -0
- package/admin/features/account/updateCurrentUser/UpdateCurrentUserGateway.d.ts +11 -0
- package/admin/features/account/updateCurrentUser/UpdateCurrentUserGateway.js +48 -0
- package/admin/features/account/updateCurrentUser/UpdateCurrentUserGateway.js.map +1 -0
- package/admin/features/account/updateCurrentUser/UpdateCurrentUserUseCase.d.ts +10 -0
- package/admin/features/account/updateCurrentUser/UpdateCurrentUserUseCase.js +19 -0
- package/admin/features/account/updateCurrentUser/UpdateCurrentUserUseCase.js.map +1 -0
- package/admin/features/account/updateCurrentUser/abstractions/UpdateCurrentUserGateway.d.ts +26 -0
- package/admin/features/account/updateCurrentUser/abstractions/UpdateCurrentUserGateway.js +5 -0
- package/admin/features/account/updateCurrentUser/abstractions/UpdateCurrentUserGateway.js.map +1 -0
- package/admin/features/account/updateCurrentUser/abstractions/UpdateCurrentUserUseCase.d.ts +13 -0
- package/admin/features/account/updateCurrentUser/abstractions/UpdateCurrentUserUseCase.js +5 -0
- package/admin/features/account/updateCurrentUser/abstractions/UpdateCurrentUserUseCase.js.map +1 -0
- package/admin/features/account/updateCurrentUser/abstractions/index.d.ts +8 -0
- package/admin/features/account/updateCurrentUser/abstractions/index.js +2 -0
- package/admin/features/account/updateCurrentUser/feature.d.ts +3 -0
- package/admin/features/account/updateCurrentUser/feature.js +19 -0
- package/admin/features/account/updateCurrentUser/feature.js.map +1 -0
- package/admin/features/account/updateCurrentUser/index.d.ts +1 -0
- package/admin/features/account/updateCurrentUser/index.js +1 -0
- package/admin/features/permissions/abstractions.d.ts +17 -0
- package/admin/features/permissions/abstractions.js +6 -0
- package/admin/features/permissions/abstractions.js.map +1 -0
- package/admin/features/permissions/feature.d.ts +14 -0
- package/admin/features/permissions/feature.js +7 -0
- package/admin/features/permissions/feature.js.map +1 -0
- package/admin/features/users/createUser/CreateUserGateway.d.ts +11 -0
- package/admin/features/users/createUser/CreateUserGateway.js +49 -0
- package/admin/features/users/createUser/CreateUserGateway.js.map +1 -0
- package/admin/features/users/createUser/CreateUserUseCase.d.ts +10 -0
- package/admin/features/users/createUser/CreateUserUseCase.js +18 -0
- package/admin/features/users/createUser/CreateUserUseCase.js.map +1 -0
- package/admin/features/users/createUser/abstractions/CreateUserGateway.d.ts +21 -0
- package/admin/features/users/createUser/abstractions/CreateUserGateway.js +5 -0
- package/admin/features/users/createUser/abstractions/CreateUserGateway.js.map +1 -0
- package/admin/features/users/createUser/abstractions/CreateUserUseCase.d.ts +14 -0
- package/admin/features/users/createUser/abstractions/CreateUserUseCase.js +5 -0
- package/admin/features/users/createUser/abstractions/CreateUserUseCase.js.map +1 -0
- package/admin/features/users/createUser/abstractions/index.d.ts +2 -0
- package/admin/features/users/createUser/abstractions/index.js +2 -0
- package/admin/features/users/createUser/feature.d.ts +3 -0
- package/admin/features/users/createUser/feature.js +19 -0
- package/admin/features/users/createUser/feature.js.map +1 -0
- package/admin/features/users/createUser/index.d.ts +2 -0
- package/admin/features/users/createUser/index.js +2 -0
- package/admin/features/users/deleteUser/DeleteUserGateway.d.ts +11 -0
- package/admin/features/users/deleteUser/DeleteUserGateway.js +40 -0
- package/admin/features/users/deleteUser/DeleteUserGateway.js.map +1 -0
- package/admin/features/users/deleteUser/DeleteUserUseCase.d.ts +10 -0
- package/admin/features/users/deleteUser/DeleteUserUseCase.js +18 -0
- package/admin/features/users/deleteUser/DeleteUserUseCase.js.map +1 -0
- package/admin/features/users/deleteUser/abstractions/DeleteUserGateway.d.ts +11 -0
- package/admin/features/users/deleteUser/abstractions/DeleteUserGateway.js +5 -0
- package/admin/features/users/deleteUser/abstractions/DeleteUserGateway.js.map +1 -0
- package/admin/features/users/deleteUser/abstractions/DeleteUserUseCase.d.ts +11 -0
- package/admin/features/users/deleteUser/abstractions/DeleteUserUseCase.js +5 -0
- package/admin/features/users/deleteUser/abstractions/DeleteUserUseCase.js.map +1 -0
- package/admin/features/users/deleteUser/abstractions/index.d.ts +2 -0
- package/admin/features/users/deleteUser/abstractions/index.js +2 -0
- package/admin/features/users/deleteUser/feature.d.ts +3 -0
- package/admin/features/users/deleteUser/feature.js +19 -0
- package/admin/features/users/deleteUser/feature.js.map +1 -0
- package/admin/features/users/deleteUser/index.d.ts +2 -0
- package/admin/features/users/deleteUser/index.js +2 -0
- package/admin/features/users/getUser/GetUserGateway.d.ts +11 -0
- package/admin/features/users/getUser/GetUserGateway.js +57 -0
- package/admin/features/users/getUser/GetUserGateway.js.map +1 -0
- package/admin/features/users/getUser/GetUserUseCase.d.ts +10 -0
- package/admin/features/users/getUser/GetUserUseCase.js +18 -0
- package/admin/features/users/getUser/GetUserUseCase.js.map +1 -0
- package/admin/features/users/getUser/abstractions/GetUserGateway.d.ts +32 -0
- package/admin/features/users/getUser/abstractions/GetUserGateway.js +5 -0
- package/admin/features/users/getUser/abstractions/GetUserGateway.js.map +1 -0
- package/admin/features/users/getUser/abstractions/GetUserUseCase.d.ts +14 -0
- package/admin/features/users/getUser/abstractions/GetUserUseCase.js +5 -0
- package/admin/features/users/getUser/abstractions/GetUserUseCase.js.map +1 -0
- package/admin/features/users/getUser/abstractions/index.d.ts +2 -0
- package/admin/features/users/getUser/abstractions/index.js +2 -0
- package/admin/features/users/getUser/feature.d.ts +3 -0
- package/admin/features/users/getUser/feature.js +19 -0
- package/admin/features/users/getUser/feature.js.map +1 -0
- package/admin/features/users/getUser/index.d.ts +2 -0
- package/admin/features/users/getUser/index.js +2 -0
- package/admin/features/users/listUsers/ListUsersGateway.d.ts +11 -0
- package/admin/features/users/listUsers/ListUsersGateway.js +39 -0
- package/admin/features/users/listUsers/ListUsersGateway.js.map +1 -0
- package/admin/features/users/listUsers/ListUsersUseCase.d.ts +10 -0
- package/admin/features/users/listUsers/ListUsersUseCase.js +18 -0
- package/admin/features/users/listUsers/ListUsersUseCase.js.map +1 -0
- package/admin/features/users/listUsers/abstractions/ListUsersGateway.d.ts +17 -0
- package/admin/features/users/listUsers/abstractions/ListUsersGateway.js +5 -0
- package/admin/features/users/listUsers/abstractions/ListUsersGateway.js.map +1 -0
- package/admin/features/users/listUsers/abstractions/ListUsersUseCase.d.ts +10 -0
- package/admin/features/users/listUsers/abstractions/ListUsersUseCase.js +5 -0
- package/admin/features/users/listUsers/abstractions/ListUsersUseCase.js.map +1 -0
- package/admin/features/users/listUsers/abstractions/index.d.ts +2 -0
- package/admin/features/users/listUsers/abstractions/index.js +2 -0
- package/admin/features/users/listUsers/feature.d.ts +3 -0
- package/admin/features/users/listUsers/feature.js +19 -0
- package/admin/features/users/listUsers/feature.js.map +1 -0
- package/admin/features/users/listUsers/index.d.ts +2 -0
- package/admin/features/users/listUsers/index.js +2 -0
- package/admin/features/users/updateUser/UpdateUserGateway.d.ts +11 -0
- package/admin/features/users/updateUser/UpdateUserGateway.js +59 -0
- package/admin/features/users/updateUser/UpdateUserGateway.js.map +1 -0
- package/admin/features/users/updateUser/UpdateUserUseCase.d.ts +10 -0
- package/admin/features/users/updateUser/UpdateUserUseCase.js +18 -0
- package/admin/features/users/updateUser/UpdateUserUseCase.js.map +1 -0
- package/admin/features/users/updateUser/abstractions/UpdateUserGateway.d.ts +33 -0
- package/admin/features/users/updateUser/abstractions/UpdateUserGateway.js +5 -0
- package/admin/features/users/updateUser/abstractions/UpdateUserGateway.js.map +1 -0
- package/admin/features/users/updateUser/abstractions/UpdateUserUseCase.d.ts +15 -0
- package/admin/features/users/updateUser/abstractions/UpdateUserUseCase.js +5 -0
- package/admin/features/users/updateUser/abstractions/UpdateUserUseCase.js.map +1 -0
- package/admin/features/users/updateUser/abstractions/index.d.ts +2 -0
- package/admin/features/users/updateUser/abstractions/index.js +2 -0
- package/admin/features/users/updateUser/feature.d.ts +3 -0
- package/admin/features/users/updateUser/feature.js +19 -0
- package/admin/features/users/updateUser/feature.js.map +1 -0
- package/admin/features/users/updateUser/index.d.ts +2 -0
- package/admin/features/users/updateUser/index.js +2 -0
- package/admin/federatedIdentityProviders.d.ts +9 -0
- package/admin/federatedIdentityProviders.js +10 -0
- package/admin/federatedIdentityProviders.js.map +1 -0
- package/admin/index.d.ts +2 -0
- package/admin/index.js +2 -0
- package/admin/presentation/Cognito/CognitoLoginScreen.d.ts +10 -0
- package/admin/presentation/Cognito/CognitoLoginScreen.js +60 -0
- package/admin/presentation/Cognito/CognitoLoginScreen.js.map +1 -0
- package/admin/presentation/Cognito/CognitoPresenter.d.ts +81 -0
- package/admin/presentation/Cognito/CognitoPresenter.js +386 -0
- package/admin/presentation/Cognito/CognitoPresenter.js.map +1 -0
- package/admin/presentation/Cognito/CognitoSignInConfig.d.ts +31 -0
- package/admin/presentation/Cognito/CognitoSignInConfig.js +5 -0
- package/admin/presentation/Cognito/CognitoSignInConfig.js.map +1 -0
- package/admin/presentation/Cognito/abstractions.d.ts +91 -0
- package/admin/presentation/Cognito/abstractions.js +5 -0
- package/admin/presentation/Cognito/abstractions.js.map +1 -0
- package/admin/presentation/Cognito/components/ConfirmTotpCode.d.ts +26 -0
- package/admin/presentation/Cognito/components/ConfirmTotpCode.js +45 -0
- package/admin/presentation/Cognito/components/ConfirmTotpCode.js.map +1 -0
- package/admin/presentation/Cognito/components/Divider.d.ts +20 -0
- package/admin/presentation/Cognito/components/Divider.js +16 -0
- package/admin/presentation/Cognito/components/Divider.js.map +1 -0
- package/admin/presentation/Cognito/components/FederatedLogin.d.ts +24 -0
- package/admin/presentation/Cognito/components/FederatedLogin.js +43 -0
- package/admin/presentation/Cognito/components/FederatedLogin.js.map +1 -0
- package/admin/presentation/Cognito/components/FederatedProviders.d.ts +44 -0
- package/admin/presentation/Cognito/components/FederatedProviders.js +11 -0
- package/admin/presentation/Cognito/components/FederatedProviders.js.map +1 -0
- package/admin/presentation/Cognito/components/FooterSignIn.d.ts +23 -0
- package/admin/presentation/Cognito/components/FooterSignIn.js +13 -0
- package/admin/presentation/Cognito/components/FooterSignIn.js.map +1 -0
- package/admin/presentation/Cognito/components/PasswordResetCodeSent.d.ts +27 -0
- package/admin/presentation/Cognito/components/PasswordResetCodeSent.js +40 -0
- package/admin/presentation/Cognito/components/PasswordResetCodeSent.js.map +1 -0
- package/admin/presentation/Cognito/components/RequestPasswordResetCode.d.ts +26 -0
- package/admin/presentation/Cognito/components/RequestPasswordResetCode.js +42 -0
- package/admin/presentation/Cognito/components/RequestPasswordResetCode.js.map +1 -0
- package/admin/presentation/Cognito/components/RequireNewPassword.d.ts +26 -0
- package/admin/presentation/Cognito/components/RequireNewPassword.js +52 -0
- package/admin/presentation/Cognito/components/RequireNewPassword.js.map +1 -0
- package/admin/presentation/Cognito/components/SetNewPassword.d.ts +26 -0
- package/admin/presentation/Cognito/components/SetNewPassword.js +79 -0
- package/admin/presentation/Cognito/components/SetNewPassword.js.map +1 -0
- package/admin/presentation/Cognito/components/SetupTotp.d.ts +25 -0
- package/admin/presentation/Cognito/components/SetupTotp.js +60 -0
- package/admin/presentation/Cognito/components/SetupTotp.js.map +1 -0
- package/admin/presentation/Cognito/components/SignIn.d.ts +26 -0
- package/admin/presentation/Cognito/components/SignIn.js +64 -0
- package/admin/presentation/Cognito/components/SignIn.js.map +1 -0
- package/admin/presentation/Cognito/components/View.d.ts +98 -0
- package/admin/presentation/Cognito/components/View.js +48 -0
- package/admin/presentation/Cognito/components/View.js.map +1 -0
- package/admin/presentation/Cognito/components/index.d.ts +292 -0
- package/admin/presentation/Cognito/components/index.js +29 -0
- package/admin/presentation/Cognito/components/index.js.map +1 -0
- package/admin/presentation/Cognito/feature.d.ts +3 -0
- package/admin/presentation/Cognito/feature.js +17 -0
- package/admin/presentation/Cognito/feature.js.map +1 -0
- package/admin/presentation/Cognito/signInFeature.d.ts +1 -0
- package/admin/presentation/Cognito/signInFeature.js +11 -0
- package/admin/presentation/Cognito/signInFeature.js.map +1 -0
- package/admin/presentation/shared/createPasswordValidator.d.ts +8 -0
- package/admin/presentation/shared/createPasswordValidator.js +16 -0
- package/admin/presentation/shared/createPasswordValidator.js.map +1 -0
- package/admin/presentation/shared/usePasswordValidator.d.ts +1 -0
- package/admin/presentation/shared/usePasswordValidator.js +16 -0
- package/admin/presentation/shared/usePasswordValidator.js.map +1 -0
- package/admin/presentation/userMenu/AccountDetails.d.ts +6 -0
- package/admin/presentation/userMenu/AccountDetails.js +20 -0
- package/admin/presentation/userMenu/AccountDetails.js.map +1 -0
- package/admin/presentation/userMenu/useIsDefaultTenant.d.ts +1 -0
- package/admin/presentation/userMenu/useIsDefaultTenant.js +9 -0
- package/admin/presentation/userMenu/useIsDefaultTenant.js.map +1 -0
- package/admin/routes.d.ts +10 -0
- package/admin/routes.js +20 -0
- package/admin/routes.js.map +1 -0
- package/admin/ui/UserItem.d.ts +10 -0
- package/admin/ui/UserItem.js +0 -0
- package/admin/ui/components/AvatarImage/AvatarImage.d.ts +3 -0
- package/admin/ui/components/AvatarImage/AvatarImage.js +31 -0
- package/admin/ui/components/AvatarImage/AvatarImage.js.map +1 -0
- package/admin/ui/components/AvatarImage/AvatarImagePreview.d.ts +10 -0
- package/admin/ui/components/AvatarImage/AvatarImagePreview.js +53 -0
- package/admin/ui/components/AvatarImage/AvatarImagePreview.js.map +1 -0
- package/admin/ui/components/AvatarImage/AvatarImageTrigger.d.ts +7 -0
- package/admin/ui/components/AvatarImage/AvatarImageTrigger.js +28 -0
- package/admin/ui/components/AvatarImage/AvatarImageTrigger.js.map +1 -0
- package/admin/ui/components/AvatarImage/index.d.ts +1 -0
- package/admin/ui/components/AvatarImage/index.js +1 -0
- package/admin/ui/views/Account/Account.d.ts +2 -0
- package/admin/ui/views/Account/Account.js +137 -0
- package/admin/ui/views/Account/Account.js.map +1 -0
- package/admin/ui/views/Account/index.d.ts +1 -0
- package/admin/ui/views/Account/index.js +1 -0
- package/admin/ui/views/Users/UsersDataList.d.ts +3 -0
- package/admin/ui/views/Users/UsersDataList.js +177 -0
- package/admin/ui/views/Users/UsersDataList.js.map +1 -0
- package/admin/ui/views/Users/UsersForm.d.ts +5 -0
- package/admin/ui/views/Users/UsersForm.js +169 -0
- package/admin/ui/views/Users/UsersForm.js.map +1 -0
- package/admin/ui/views/Users/UsersView.d.ts +2 -0
- package/admin/ui/views/Users/UsersView.js +14 -0
- package/admin/ui/views/Users/UsersView.js.map +1 -0
- package/admin/ui/views/Users/components/DeleteAction.d.ts +7 -0
- package/admin/ui/views/Users/components/DeleteAction.js +29 -0
- package/admin/ui/views/Users/components/DeleteAction.js.map +1 -0
- package/admin/ui/views/Users/hooks/useUserForm.d.ts +27 -0
- package/admin/ui/views/Users/hooks/useUserForm.js +101 -0
- package/admin/ui/views/Users/hooks/useUserForm.js.map +1 -0
- package/admin/ui/views/Users/search.js +21 -0
- package/admin/ui/views/Users/search.js.map +1 -0
- package/admin/ui/views/Users/search.svg +20 -0
- package/admin/ui/views/utils.d.ts +3 -0
- package/admin/ui/views/utils.js +12 -0
- package/admin/ui/views/utils.js.map +1 -0
- package/api/CognitoApiFeature.d.ts +4 -0
- package/api/CognitoApiFeature.js +26 -0
- package/api/CognitoApiFeature.js.map +1 -0
- package/api/domain/Username.d.ts +4 -0
- package/api/domain/Username.js +8 -0
- package/api/domain/Username.js.map +1 -0
- package/api/domain/errors.d.ts +37 -0
- package/api/domain/errors.js +44 -0
- package/api/domain/errors.js.map +1 -0
- package/api/features/CognitoIdp/CognitoIdentityProvider.d.ts +15 -0
- package/api/features/CognitoIdp/CognitoIdentityProvider.js +63 -0
- package/api/features/CognitoIdp/CognitoIdentityProvider.js.map +1 -0
- package/api/features/CognitoIdp/abstractions.d.ts +15 -0
- package/api/features/CognitoIdp/abstractions.js +5 -0
- package/api/features/CognitoIdp/abstractions.js.map +1 -0
- package/api/features/CognitoIdp/feature.d.ts +4 -0
- package/api/features/CognitoIdp/feature.js +11 -0
- package/api/features/CognitoIdp/feature.js.map +1 -0
- package/api/features/CognitoIdp/index.d.ts +2 -0
- package/api/features/CognitoIdp/index.js +2 -0
- package/api/features/CognitoService/CognitoService.d.ts +20 -0
- package/api/features/CognitoService/CognitoService.js +100 -0
- package/api/features/CognitoService/CognitoService.js.map +1 -0
- package/api/features/CognitoService/abstractions.d.ts +54 -0
- package/api/features/CognitoService/abstractions.js +6 -0
- package/api/features/CognitoService/abstractions.js.map +1 -0
- package/api/features/CognitoService/feature.d.ts +8 -0
- package/api/features/CognitoService/feature.js +13 -0
- package/api/features/CognitoService/feature.js.map +1 -0
- package/api/features/CognitoService/index.d.ts +1 -0
- package/api/features/CognitoService/index.js +1 -0
- package/api/features/CreateUser/CreateUserUseCase.d.ts +22 -0
- package/api/features/CreateUser/CreateUserUseCase.js +80 -0
- package/api/features/CreateUser/CreateUserUseCase.js.map +1 -0
- package/api/features/CreateUser/abstractions.d.ts +35 -0
- package/api/features/CreateUser/abstractions.js +5 -0
- package/api/features/CreateUser/abstractions.js.map +1 -0
- package/api/features/CreateUser/feature.d.ts +4 -0
- package/api/features/CreateUser/feature.js +11 -0
- package/api/features/CreateUser/feature.js.map +1 -0
- package/api/features/CreateUser/index.d.ts +2 -0
- package/api/features/CreateUser/index.js +2 -0
- package/api/features/CreateUser/schema.d.ts +15 -0
- package/api/features/CreateUser/schema.js +18 -0
- package/api/features/CreateUser/schema.js.map +1 -0
- package/api/features/DeleteUser/DeleteUserUseCase.d.ts +16 -0
- package/api/features/DeleteUser/DeleteUserUseCase.js +47 -0
- package/api/features/DeleteUser/DeleteUserUseCase.js.map +1 -0
- package/api/features/DeleteUser/abstractions.d.ts +19 -0
- package/api/features/DeleteUser/abstractions.js +5 -0
- package/api/features/DeleteUser/abstractions.js.map +1 -0
- package/api/features/DeleteUser/feature.d.ts +4 -0
- package/api/features/DeleteUser/feature.js +11 -0
- package/api/features/DeleteUser/feature.js.map +1 -0
- package/api/features/DeleteUser/index.d.ts +2 -0
- package/api/features/DeleteUser/index.js +2 -0
- package/api/features/UpdateUser/UpdateUserUseCase.d.ts +21 -0
- package/api/features/UpdateUser/UpdateUserUseCase.js +66 -0
- package/api/features/UpdateUser/UpdateUserUseCase.js.map +1 -0
- package/api/features/UpdateUser/abstractions.d.ts +33 -0
- package/api/features/UpdateUser/abstractions.js +5 -0
- package/api/features/UpdateUser/abstractions.js.map +1 -0
- package/api/features/UpdateUser/feature.d.ts +4 -0
- package/api/features/UpdateUser/feature.js +11 -0
- package/api/features/UpdateUser/feature.js.map +1 -0
- package/api/features/UpdateUser/index.d.ts +2 -0
- package/api/features/UpdateUser/index.js +2 -0
- package/api/features/UpdateUser/schema.d.ts +14 -0
- package/api/features/UpdateUser/schema.js +17 -0
- package/api/features/UpdateUser/schema.js.map +1 -0
- package/api/features/UserInstaller/UserInstaller.d.ts +27 -0
- package/api/features/UserInstaller/UserInstaller.js +48 -0
- package/api/features/UserInstaller/UserInstaller.js.map +1 -0
- package/api/features/UserInstaller/feature.d.ts +4 -0
- package/api/features/UserInstaller/feature.js +11 -0
- package/api/features/UserInstaller/feature.js.map +1 -0
- package/api/graphql/user.gql.d.ts +8 -0
- package/api/graphql/user.gql.js +143 -0
- package/api/graphql/user.gql.js.map +1 -0
- package/api/index.d.ts +1 -0
- package/api/index.js +1 -0
- package/index.d.ts +1 -0
- package/index.js +1 -0
- package/infra/CognitoFederationPulumi.d.ts +8 -0
- package/infra/CognitoFederationPulumi.js +17 -0
- package/infra/CognitoFederationPulumi.js.map +1 -0
- package/package.json +51 -0
- package/static/svg/search.43fa797c.svg +20 -0
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { createFeature } from "@webiny/feature/api";
|
|
2
|
+
import { CreateUserUseCase } from "./CreateUserUseCase.js";
|
|
3
|
+
const CreateUserFeature = createFeature({
|
|
4
|
+
name: "CreateUserFeature",
|
|
5
|
+
register (container) {
|
|
6
|
+
container.register(CreateUserUseCase);
|
|
7
|
+
}
|
|
8
|
+
});
|
|
9
|
+
export { CreateUserFeature };
|
|
10
|
+
|
|
11
|
+
//# sourceMappingURL=feature.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/features/CreateUser/feature.js","sources":["../../../../src/api/features/CreateUser/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { CreateUserUseCase } from \"./CreateUserUseCase.js\";\n\nexport const CreateUserFeature = createFeature({\n name: \"CreateUserFeature\",\n register(container) {\n container.register(CreateUserUseCase);\n }\n});\n"],"names":["CreateUserFeature","createFeature","container","CreateUserUseCase"],"mappings":";;AAGO,MAAMA,oBAAoBC,cAAc;IAC3C,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC;IACvB;AACJ"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const createAdminUserValidation: z.ZodObject<{
|
|
3
|
+
id: z.ZodOptional<z.ZodString>;
|
|
4
|
+
displayName: z.ZodOptional<z.ZodString>;
|
|
5
|
+
email: z.ZodString;
|
|
6
|
+
firstName: z.ZodOptional<z.ZodString>;
|
|
7
|
+
lastName: z.ZodOptional<z.ZodString>;
|
|
8
|
+
password: z.ZodString;
|
|
9
|
+
avatar: z.ZodNullable<z.ZodOptional<z.ZodObject<{
|
|
10
|
+
id: z.ZodString;
|
|
11
|
+
src: z.ZodString;
|
|
12
|
+
}, z.core.$strip>>>;
|
|
13
|
+
roles: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
|
|
14
|
+
teams: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
|
|
15
|
+
}, z.core.$strip>;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
const createAdminUserValidation = z.object({
|
|
3
|
+
id: z.string().min(1).optional(),
|
|
4
|
+
displayName: z.string().min(1).optional(),
|
|
5
|
+
email: z.string().email(),
|
|
6
|
+
firstName: z.string().optional(),
|
|
7
|
+
lastName: z.string().optional(),
|
|
8
|
+
password: z.string().min(8),
|
|
9
|
+
avatar: z.object({
|
|
10
|
+
id: z.string().min(1),
|
|
11
|
+
src: z.string().url()
|
|
12
|
+
}).optional().nullable(),
|
|
13
|
+
roles: z.array(z.string()).optional().default([]),
|
|
14
|
+
teams: z.array(z.string()).optional().default([])
|
|
15
|
+
});
|
|
16
|
+
export { createAdminUserValidation };
|
|
17
|
+
|
|
18
|
+
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/features/CreateUser/schema.js","sources":["../../../../src/api/features/CreateUser/schema.ts"],"sourcesContent":["import { z } from \"zod\";\n\nexport const createAdminUserValidation = z.object({\n id: z.string().min(1).optional(),\n displayName: z.string().min(1).optional(),\n email: z.string().email(),\n firstName: z.string().optional(),\n lastName: z.string().optional(),\n password: z.string().min(8),\n avatar: z\n .object({\n id: z.string().min(1),\n src: z.string().url()\n })\n .optional()\n .nullable(),\n roles: z.array(z.string()).optional().default([]),\n teams: z.array(z.string()).optional().default([])\n});\n"],"names":["createAdminUserValidation","z"],"mappings":";AAEO,MAAMA,4BAA4BC,EAAE,MAAM,CAAC;IAC9C,IAAIA,EAAE,MAAM,GAAG,GAAG,CAAC,GAAG,QAAQ;IAC9B,aAAaA,EAAE,MAAM,GAAG,GAAG,CAAC,GAAG,QAAQ;IACvC,OAAOA,EAAE,MAAM,GAAG,KAAK;IACvB,WAAWA,EAAE,MAAM,GAAG,QAAQ;IAC9B,UAAUA,EAAE,MAAM,GAAG,QAAQ;IAC7B,UAAUA,EAAE,MAAM,GAAG,GAAG,CAAC;IACzB,QAAQA,EAAAA,MACG,CAAC;QACJ,IAAIA,EAAE,MAAM,GAAG,GAAG,CAAC;QACnB,KAAKA,EAAE,MAAM,GAAG,GAAG;IACvB,GACC,QAAQ,GACR,QAAQ;IACb,OAAOA,EAAE,KAAK,CAACA,EAAE,MAAM,IAAI,QAAQ,GAAG,OAAO,CAAC,EAAE;IAChD,OAAOA,EAAE,KAAK,CAACA,EAAE,MAAM,IAAI,QAAQ,GAAG,OAAO,CAAC,EAAE;AACpD"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Result } from "@webiny/feature/api";
|
|
2
|
+
import { DeleteUserUseCase as CoreDeleteUser } from "@webiny/api-core/features/users/DeleteUser/index.js";
|
|
3
|
+
import { GetUserUseCase } from "@webiny/api-core/features/users/GetUser/index.js";
|
|
4
|
+
import { IdentityContext } from "@webiny/api-core/features/security/IdentityContext/index.js";
|
|
5
|
+
import { DeleteUserUseCase as UseCaseAbstraction } from "./abstractions.js";
|
|
6
|
+
import { CognitoService } from "../CognitoService/abstractions.js";
|
|
7
|
+
declare class DeleteUserUseCaseImpl implements UseCaseAbstraction.Interface {
|
|
8
|
+
private identityContext;
|
|
9
|
+
private cognitoService;
|
|
10
|
+
private deleteUserUseCase;
|
|
11
|
+
private getUserUseCase;
|
|
12
|
+
constructor(identityContext: IdentityContext.Interface, cognitoService: CognitoService.Interface, deleteUserUseCase: CoreDeleteUser.Interface, getUserUseCase: GetUserUseCase.Interface);
|
|
13
|
+
execute(id: string): Promise<Result<void, UseCaseAbstraction.Error>>;
|
|
14
|
+
}
|
|
15
|
+
export declare const DeleteUserUseCase: import("@webiny/di").Implementation<typeof DeleteUserUseCaseImpl>;
|
|
16
|
+
export {};
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { Result, createImplementation } from "@webiny/feature/api";
|
|
2
|
+
import { DeleteUserUseCase } from "@webiny/api-core/features/users/DeleteUser/index.js";
|
|
3
|
+
import { GetUserUseCase } from "@webiny/api-core/features/users/GetUser/index.js";
|
|
4
|
+
import { NotAuthorizedError } from "@webiny/api-core/features/users/shared/errors.js";
|
|
5
|
+
import { IdentityContext } from "@webiny/api-core/features/security/IdentityContext/index.js";
|
|
6
|
+
import { DeleteUserUseCase as external_abstractions_js_DeleteUserUseCase } from "./abstractions.js";
|
|
7
|
+
import { Username } from "../../domain/Username.js";
|
|
8
|
+
import { CognitoDeleteUserError } from "../../domain/errors.js";
|
|
9
|
+
import { CognitoService } from "../CognitoService/abstractions.js";
|
|
10
|
+
class DeleteUserUseCaseImpl {
|
|
11
|
+
constructor(identityContext, cognitoService, deleteUserUseCase, getUserUseCase){
|
|
12
|
+
this.identityContext = identityContext;
|
|
13
|
+
this.cognitoService = cognitoService;
|
|
14
|
+
this.deleteUserUseCase = deleteUserUseCase;
|
|
15
|
+
this.getUserUseCase = getUserUseCase;
|
|
16
|
+
}
|
|
17
|
+
async execute(id) {
|
|
18
|
+
const permission = await this.identityContext.getPermission("adminUsers.user");
|
|
19
|
+
if (!permission) return Result.fail(new NotAuthorizedError());
|
|
20
|
+
const getUserResult = await this.getUserUseCase.execute({
|
|
21
|
+
id
|
|
22
|
+
});
|
|
23
|
+
if (getUserResult.isFail()) return Result.fail(getUserResult.error);
|
|
24
|
+
const user = getUserResult.value;
|
|
25
|
+
const deleteUserResult = await this.deleteUserUseCase.execute(id);
|
|
26
|
+
if (deleteUserResult.isFail()) return Result.fail(deleteUserResult.error);
|
|
27
|
+
try {
|
|
28
|
+
await this.cognitoService.deleteUser(Username.fromUser(user));
|
|
29
|
+
return Result.ok();
|
|
30
|
+
} catch (cognitoError) {
|
|
31
|
+
return Result.fail(new CognitoDeleteUserError(cognitoError));
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
const DeleteUserUseCase_DeleteUserUseCase = createImplementation({
|
|
36
|
+
abstraction: external_abstractions_js_DeleteUserUseCase,
|
|
37
|
+
implementation: DeleteUserUseCaseImpl,
|
|
38
|
+
dependencies: [
|
|
39
|
+
IdentityContext,
|
|
40
|
+
CognitoService,
|
|
41
|
+
DeleteUserUseCase,
|
|
42
|
+
GetUserUseCase
|
|
43
|
+
]
|
|
44
|
+
});
|
|
45
|
+
export { DeleteUserUseCase_DeleteUserUseCase as DeleteUserUseCase };
|
|
46
|
+
|
|
47
|
+
//# sourceMappingURL=DeleteUserUseCase.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/features/DeleteUser/DeleteUserUseCase.js","sources":["../../../../src/api/features/DeleteUser/DeleteUserUseCase.ts"],"sourcesContent":["import { createImplementation } from \"@webiny/feature/api\";\nimport { Result } from \"@webiny/feature/api\";\nimport { DeleteUserUseCase as CoreDeleteUser } from \"@webiny/api-core/features/users/DeleteUser/index.js\";\nimport { GetUserUseCase } from \"@webiny/api-core/features/users/GetUser/index.js\";\nimport { NotAuthorizedError } from \"@webiny/api-core/features/users/shared/errors.js\";\nimport { IdentityContext } from \"@webiny/api-core/features/security/IdentityContext/index.js\";\nimport { DeleteUserUseCase as UseCaseAbstraction } from \"./abstractions.js\";\nimport { Username } from \"~/api/domain/Username.js\";\nimport { CognitoDeleteUserError } from \"~/api/domain/errors.js\";\nimport { CognitoService } from \"../CognitoService/abstractions.js\";\n\nclass DeleteUserUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private identityContext: IdentityContext.Interface,\n private cognitoService: CognitoService.Interface,\n private deleteUserUseCase: CoreDeleteUser.Interface,\n private getUserUseCase: GetUserUseCase.Interface\n ) {}\n\n async execute(id: string): Promise<Result<void, UseCaseAbstraction.Error>> {\n const permission = await this.identityContext.getPermission(\"adminUsers.user\");\n if (!permission) {\n return Result.fail(new NotAuthorizedError());\n }\n\n // Get user to have email for Cognito deletion\n const getUserResult = await this.getUserUseCase.execute({ id });\n if (getUserResult.isFail()) {\n return Result.fail(getUserResult.error);\n }\n\n const user = getUserResult.value;\n\n // Delete user from the database\n const deleteUserResult = await this.deleteUserUseCase.execute(id);\n if (deleteUserResult.isFail()) {\n return Result.fail(deleteUserResult.error);\n }\n\n // Delete user from Cognito\n try {\n await this.cognitoService.deleteUser(Username.fromUser(user));\n\n return Result.ok();\n } catch (cognitoError) {\n return Result.fail(new CognitoDeleteUserError(cognitoError as Error));\n }\n }\n}\n\nexport const DeleteUserUseCase = createImplementation({\n abstraction: UseCaseAbstraction,\n implementation: DeleteUserUseCaseImpl,\n dependencies: [IdentityContext, CognitoService, CoreDeleteUser, GetUserUseCase]\n});\n"],"names":["DeleteUserUseCaseImpl","identityContext","cognitoService","deleteUserUseCase","getUserUseCase","id","permission","Result","NotAuthorizedError","getUserResult","user","deleteUserResult","Username","cognitoError","CognitoDeleteUserError","DeleteUserUseCase","createImplementation","UseCaseAbstraction","IdentityContext","CognitoService","CoreDeleteUser","GetUserUseCase"],"mappings":";;;;;;;;;AAWA,MAAMA;IACF,YACYC,eAA0C,EAC1CC,cAAwC,EACxCC,iBAA2C,EAC3CC,cAAwC,CAClD;aAJUH,eAAe,GAAfA;aACAC,cAAc,GAAdA;aACAC,iBAAiB,GAAjBA;aACAC,cAAc,GAAdA;IACT;IAEH,MAAM,QAAQC,EAAU,EAAmD;QACvE,MAAMC,aAAa,MAAM,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC;QAC5D,IAAI,CAACA,YACD,OAAOC,OAAO,IAAI,CAAC,IAAIC;QAI3B,MAAMC,gBAAgB,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;YAAEJ;QAAG;QAC7D,IAAII,cAAc,MAAM,IACpB,OAAOF,OAAO,IAAI,CAACE,cAAc,KAAK;QAG1C,MAAMC,OAAOD,cAAc,KAAK;QAGhC,MAAME,mBAAmB,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAACN;QAC9D,IAAIM,iBAAiB,MAAM,IACvB,OAAOJ,OAAO,IAAI,CAACI,iBAAiB,KAAK;QAI7C,IAAI;YACA,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU,CAACC,SAAS,QAAQ,CAACF;YAEvD,OAAOH,OAAO,EAAE;QACpB,EAAE,OAAOM,cAAc;YACnB,OAAON,OAAO,IAAI,CAAC,IAAIO,uBAAuBD;QAClD;IACJ;AACJ;AAEO,MAAME,sCAAoBC,qBAAqB;IAClD,aAAaC;IACb,gBAAgBjB;IAChB,cAAc;QAACkB;QAAiBC;QAAgBC;QAAgBC;KAAe;AACnF"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { Result } from "@webiny/feature/api";
|
|
2
|
+
import type { NotAuthorizedError } from "@webiny/api-core/features/users/shared/errors.js";
|
|
3
|
+
import type { DeleteUserUseCase as CoreDeleteUser } from "@webiny/api-core/features/users/DeleteUser/index.js";
|
|
4
|
+
import type { CognitoDeleteUserError } from "../../../api/domain/errors.js";
|
|
5
|
+
export interface IDeleteUserUseCaseErrors {
|
|
6
|
+
authorization: NotAuthorizedError;
|
|
7
|
+
deleteUser: CoreDeleteUser.Error;
|
|
8
|
+
cognitoDeleteUser: CognitoDeleteUserError;
|
|
9
|
+
}
|
|
10
|
+
type IDeleteAdminUserError = IDeleteUserUseCaseErrors[keyof IDeleteUserUseCaseErrors];
|
|
11
|
+
export interface IDeleteUserUseCase {
|
|
12
|
+
execute(id: string): Promise<Result<void, IDeleteAdminUserError>>;
|
|
13
|
+
}
|
|
14
|
+
export declare const DeleteUserUseCase: import("@webiny/di").Abstraction<IDeleteUserUseCase>;
|
|
15
|
+
export declare namespace DeleteUserUseCase {
|
|
16
|
+
type Interface = IDeleteUserUseCase;
|
|
17
|
+
type Error = IDeleteAdminUserError;
|
|
18
|
+
}
|
|
19
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/features/DeleteUser/abstractions.js","sources":["../../../../src/api/features/DeleteUser/abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { Result } from \"@webiny/feature/api\";\nimport type { NotAuthorizedError } from \"@webiny/api-core/features/users/shared/errors.js\";\nimport type { DeleteUserUseCase as CoreDeleteUser } from \"@webiny/api-core/features/users/DeleteUser/index.js\";\nimport type { CognitoDeleteUserError } from \"~/api/domain/errors.js\";\n\nexport interface IDeleteUserUseCaseErrors {\n authorization: NotAuthorizedError;\n deleteUser: CoreDeleteUser.Error;\n cognitoDeleteUser: CognitoDeleteUserError;\n}\n\ntype IDeleteAdminUserError = IDeleteUserUseCaseErrors[keyof IDeleteUserUseCaseErrors];\n\nexport interface IDeleteUserUseCase {\n execute(id: string): Promise<Result<void, IDeleteAdminUserError>>;\n}\n\nexport const DeleteUserUseCase = createAbstraction<IDeleteUserUseCase>(\"DeleteUserUseCase\");\n\nexport namespace DeleteUserUseCase {\n export type Interface = IDeleteUserUseCase;\n export type Error = IDeleteAdminUserError;\n}\n"],"names":["DeleteUserUseCase","createAbstraction"],"mappings":";AAkBO,MAAMA,oBAAoBC,kBAAsC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { createFeature } from "@webiny/feature/api";
|
|
2
|
+
import { DeleteUserUseCase } from "./DeleteUserUseCase.js";
|
|
3
|
+
const DeleteUserFeature = createFeature({
|
|
4
|
+
name: "DeleteUserFeature",
|
|
5
|
+
register (container) {
|
|
6
|
+
container.register(DeleteUserUseCase);
|
|
7
|
+
}
|
|
8
|
+
});
|
|
9
|
+
export { DeleteUserFeature };
|
|
10
|
+
|
|
11
|
+
//# sourceMappingURL=feature.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/features/DeleteUser/feature.js","sources":["../../../../src/api/features/DeleteUser/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { DeleteUserUseCase } from \"./DeleteUserUseCase.js\";\n\nexport const DeleteUserFeature = createFeature({\n name: \"DeleteUserFeature\",\n register(container) {\n container.register(DeleteUserUseCase);\n }\n});\n"],"names":["DeleteUserFeature","createFeature","container","DeleteUserUseCase"],"mappings":";;AAGO,MAAMA,oBAAoBC,cAAc;IAC3C,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC;IACvB;AACJ"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Result } from "@webiny/feature/api";
|
|
2
|
+
import { UpdateUserUseCase as CoreUpdateUser } from "@webiny/api-core/features/users/UpdateUser/index.js";
|
|
3
|
+
import { GetUserUseCase } from "@webiny/api-core/features/users/GetUser/index.js";
|
|
4
|
+
import type { AdminUser } from "@webiny/api-core/types/users.js";
|
|
5
|
+
import { IdentityContext } from "@webiny/api-core/features/security/IdentityContext/index.js";
|
|
6
|
+
import { UpdateUserUseCase as UseCaseAbstraction } from "./abstractions.js";
|
|
7
|
+
import type { UpdateAdminUserInput } from "./abstractions.js";
|
|
8
|
+
import { CognitoService } from "../../../api/features/CognitoService/index.js";
|
|
9
|
+
declare class UpdateUserUseCaseImpl implements UseCaseAbstraction.Interface {
|
|
10
|
+
private identityContext;
|
|
11
|
+
private cognitoService;
|
|
12
|
+
private updateUserUseCase;
|
|
13
|
+
private getUserUseCase;
|
|
14
|
+
private updateAttributes;
|
|
15
|
+
constructor(identityContext: IdentityContext.Interface, cognitoService: CognitoService.Interface, updateUserUseCase: CoreUpdateUser.Interface, getUserUseCase: GetUserUseCase.Interface);
|
|
16
|
+
execute(id: string, input: UpdateAdminUserInput): Promise<Result<AdminUser, UseCaseAbstraction.Error>>;
|
|
17
|
+
}
|
|
18
|
+
export declare const UpdateUserUseCase: typeof UpdateUserUseCaseImpl & {
|
|
19
|
+
__abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IUpdateUserUseCase>;
|
|
20
|
+
};
|
|
21
|
+
export {};
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { Result } from "@webiny/feature/api";
|
|
2
|
+
import { UpdateUserUseCase } from "@webiny/api-core/features/users/UpdateUser/index.js";
|
|
3
|
+
import { GetUserUseCase } from "@webiny/api-core/features/users/GetUser/index.js";
|
|
4
|
+
import { NotAuthorizedError, UserValidationError } from "@webiny/api-core/features/users/shared/errors.js";
|
|
5
|
+
import { IdentityContext } from "@webiny/api-core/features/security/IdentityContext/index.js";
|
|
6
|
+
import { UpdateUserUseCase as external_abstractions_js_UpdateUserUseCase } from "./abstractions.js";
|
|
7
|
+
import { Username } from "../../domain/Username.js";
|
|
8
|
+
import { CognitoUpdateUserError } from "../../domain/errors.js";
|
|
9
|
+
import { updateAdminUserValidation } from "./schema.js";
|
|
10
|
+
import { CognitoService } from "../CognitoService/index.js";
|
|
11
|
+
const defaultUpdateAttributes = {
|
|
12
|
+
family_name: "lastName",
|
|
13
|
+
given_name: "firstName",
|
|
14
|
+
preferred_username: "email"
|
|
15
|
+
};
|
|
16
|
+
class UpdateUserUseCaseImpl {
|
|
17
|
+
constructor(identityContext, cognitoService, updateUserUseCase, getUserUseCase){
|
|
18
|
+
this.identityContext = identityContext;
|
|
19
|
+
this.cognitoService = cognitoService;
|
|
20
|
+
this.updateUserUseCase = updateUserUseCase;
|
|
21
|
+
this.getUserUseCase = getUserUseCase;
|
|
22
|
+
this.updateAttributes = defaultUpdateAttributes;
|
|
23
|
+
}
|
|
24
|
+
async execute(id, input) {
|
|
25
|
+
const permission = await this.identityContext.getPermission("adminUsers.user");
|
|
26
|
+
if (!permission) return Result.fail(new NotAuthorizedError());
|
|
27
|
+
const validation = updateAdminUserValidation.safeParse(input);
|
|
28
|
+
if (!validation.success) return Result.fail(new UserValidationError(validation.error.issues[0].message));
|
|
29
|
+
const data = validation.data;
|
|
30
|
+
const { password, ...userDataWithoutPassword } = data;
|
|
31
|
+
const getUserResult = await this.getUserUseCase.execute({
|
|
32
|
+
id
|
|
33
|
+
});
|
|
34
|
+
if (getUserResult.isFail()) return Result.fail(getUserResult.error);
|
|
35
|
+
const originalUser = getUserResult.value;
|
|
36
|
+
const updateUserResult = await this.updateUserUseCase.execute(id, userDataWithoutPassword);
|
|
37
|
+
if (updateUserResult.isFail()) return Result.fail(updateUserResult.error);
|
|
38
|
+
const updatedUser = updateUserResult.value;
|
|
39
|
+
try {
|
|
40
|
+
const attributes = {};
|
|
41
|
+
Object.keys(this.updateAttributes).forEach((attr)=>{
|
|
42
|
+
const mappedAttr = this.updateAttributes[attr];
|
|
43
|
+
const attrValue = "function" == typeof mappedAttr ? mappedAttr(updatedUser) : updatedUser[mappedAttr];
|
|
44
|
+
attributes[attr] = attrValue;
|
|
45
|
+
});
|
|
46
|
+
if (originalUser.email !== updatedUser.email) attributes["email_verified"] = "true";
|
|
47
|
+
await this.cognitoService.updateUserAttributes(Username.fromUser(originalUser), attributes);
|
|
48
|
+
if (password) await this.cognitoService.setPermanentPassword(Username.fromUser(updatedUser), password);
|
|
49
|
+
return Result.ok(updatedUser);
|
|
50
|
+
} catch (cognitoError) {
|
|
51
|
+
return Result.fail(new CognitoUpdateUserError(cognitoError));
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
const UpdateUserUseCase_UpdateUserUseCase = external_abstractions_js_UpdateUserUseCase.createImplementation({
|
|
56
|
+
implementation: UpdateUserUseCaseImpl,
|
|
57
|
+
dependencies: [
|
|
58
|
+
IdentityContext,
|
|
59
|
+
CognitoService,
|
|
60
|
+
UpdateUserUseCase,
|
|
61
|
+
GetUserUseCase
|
|
62
|
+
]
|
|
63
|
+
});
|
|
64
|
+
export { UpdateUserUseCase_UpdateUserUseCase as UpdateUserUseCase };
|
|
65
|
+
|
|
66
|
+
//# sourceMappingURL=UpdateUserUseCase.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/features/UpdateUser/UpdateUserUseCase.js","sources":["../../../../src/api/features/UpdateUser/UpdateUserUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { UpdateUserUseCase as CoreUpdateUser } from \"@webiny/api-core/features/users/UpdateUser/index.js\";\nimport { GetUserUseCase } from \"@webiny/api-core/features/users/GetUser/index.js\";\nimport {\n NotAuthorizedError,\n UserValidationError\n} from \"@webiny/api-core/features/users/shared/errors.js\";\nimport type { AdminUser } from \"@webiny/api-core/types/users.js\";\nimport { IdentityContext } from \"@webiny/api-core/features/security/IdentityContext/index.js\";\nimport { UpdateUserUseCase as UseCaseAbstraction } from \"./abstractions.js\";\nimport { Username } from \"~/api/domain/Username.js\";\nimport { CognitoUpdateUserError } from \"~/api/domain/errors.js\";\nimport { updateAdminUserValidation } from \"./schema.js\";\nimport type { UpdateAdminUserInput } from \"./abstractions.js\";\nimport { CognitoService } from \"~/api/features/CognitoService/index.js\";\n\ntype MappedAttrType = (user: AdminUser) => string | keyof AdminUser;\n\nconst defaultUpdateAttributes = {\n family_name: \"lastName\",\n given_name: \"firstName\",\n preferred_username: \"email\"\n};\n\nclass UpdateUserUseCaseImpl implements UseCaseAbstraction.Interface {\n private updateAttributes: Record<string, string | MappedAttrType>;\n\n constructor(\n private identityContext: IdentityContext.Interface,\n private cognitoService: CognitoService.Interface,\n private updateUserUseCase: CoreUpdateUser.Interface,\n private getUserUseCase: GetUserUseCase.Interface\n ) {\n this.updateAttributes = defaultUpdateAttributes;\n }\n\n async execute(\n id: string,\n input: UpdateAdminUserInput\n ): Promise<Result<AdminUser, UseCaseAbstraction.Error>> {\n const permission = await this.identityContext.getPermission(\"adminUsers.user\");\n if (!permission) {\n return Result.fail(new NotAuthorizedError());\n }\n\n // Validate input (including password)\n const validation = updateAdminUserValidation.safeParse(input);\n if (!validation.success) {\n return Result.fail(new UserValidationError(validation.error.issues[0].message));\n }\n\n const data = validation.data;\n const { password, ...userDataWithoutPassword } = data;\n\n // Get original user to know the email before update\n const getUserResult = await this.getUserUseCase.execute({ id });\n if (getUserResult.isFail()) {\n return Result.fail(getUserResult.error);\n }\n\n const originalUser = getUserResult.value;\n\n // Update user in api-core\n const updateUserResult = await this.updateUserUseCase.execute(id, userDataWithoutPassword);\n if (updateUserResult.isFail()) {\n return Result.fail(updateUserResult.error);\n }\n\n const updatedUser = updateUserResult.value;\n\n // Update user in Cognito\n try {\n // Build new attributes\n const attributes: Record<string, string> = {};\n\n Object.keys(this.updateAttributes).forEach(attr => {\n const mappedAttr = this.updateAttributes[\n attr as keyof typeof this.updateAttributes\n ] as MappedAttrType;\n const attrValue =\n typeof mappedAttr === \"function\"\n ? mappedAttr(updatedUser)\n : updatedUser[mappedAttr];\n attributes[attr] = attrValue;\n });\n\n // If email changed, set email_verified to true\n if (originalUser.email !== updatedUser.email) {\n attributes[\"email_verified\"] = \"true\";\n }\n\n await this.cognitoService.updateUserAttributes(\n Username.fromUser(originalUser),\n attributes\n );\n\n // Update password if provided\n if (password) {\n await this.cognitoService.setPermanentPassword(\n Username.fromUser(updatedUser),\n password\n );\n }\n\n return Result.ok(updatedUser);\n } catch (cognitoError) {\n return Result.fail(new CognitoUpdateUserError(cognitoError as Error));\n }\n }\n}\n\nexport const UpdateUserUseCase = UseCaseAbstraction.createImplementation({\n implementation: UpdateUserUseCaseImpl,\n dependencies: [IdentityContext, CognitoService, CoreUpdateUser, GetUserUseCase]\n});\n"],"names":["defaultUpdateAttributes","UpdateUserUseCaseImpl","identityContext","cognitoService","updateUserUseCase","getUserUseCase","id","input","permission","Result","NotAuthorizedError","validation","updateAdminUserValidation","UserValidationError","data","password","userDataWithoutPassword","getUserResult","originalUser","updateUserResult","updatedUser","attributes","Object","attr","mappedAttr","attrValue","Username","cognitoError","CognitoUpdateUserError","UpdateUserUseCase","UseCaseAbstraction","IdentityContext","CognitoService","CoreUpdateUser","GetUserUseCase"],"mappings":";;;;;;;;;;AAkBA,MAAMA,0BAA0B;IAC5B,aAAa;IACb,YAAY;IACZ,oBAAoB;AACxB;AAEA,MAAMC;IAGF,YACYC,eAA0C,EAC1CC,cAAwC,EACxCC,iBAA2C,EAC3CC,cAAwC,CAClD;aAJUH,eAAe,GAAfA;aACAC,cAAc,GAAdA;aACAC,iBAAiB,GAAjBA;aACAC,cAAc,GAAdA;QAER,IAAI,CAAC,gBAAgB,GAAGL;IAC5B;IAEA,MAAM,QACFM,EAAU,EACVC,KAA2B,EACyB;QACpD,MAAMC,aAAa,MAAM,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC;QAC5D,IAAI,CAACA,YACD,OAAOC,OAAO,IAAI,CAAC,IAAIC;QAI3B,MAAMC,aAAaC,0BAA0B,SAAS,CAACL;QACvD,IAAI,CAACI,WAAW,OAAO,EACnB,OAAOF,OAAO,IAAI,CAAC,IAAII,oBAAoBF,WAAW,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO;QAGjF,MAAMG,OAAOH,WAAW,IAAI;QAC5B,MAAM,EAAEI,QAAQ,EAAE,GAAGC,yBAAyB,GAAGF;QAGjD,MAAMG,gBAAgB,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;YAAEX;QAAG;QAC7D,IAAIW,cAAc,MAAM,IACpB,OAAOR,OAAO,IAAI,CAACQ,cAAc,KAAK;QAG1C,MAAMC,eAAeD,cAAc,KAAK;QAGxC,MAAME,mBAAmB,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAACb,IAAIU;QAClE,IAAIG,iBAAiB,MAAM,IACvB,OAAOV,OAAO,IAAI,CAACU,iBAAiB,KAAK;QAG7C,MAAMC,cAAcD,iBAAiB,KAAK;QAG1C,IAAI;YAEA,MAAME,aAAqC,CAAC;YAE5CC,OAAO,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAACC,CAAAA;gBACvC,MAAMC,aAAa,IAAI,CAAC,gBAAgB,CACpCD,KACH;gBACD,MAAME,YACF,AAAsB,cAAtB,OAAOD,aACDA,WAAWJ,eACXA,WAAW,CAACI,WAAW;gBACjCH,UAAU,CAACE,KAAK,GAAGE;YACvB;YAGA,IAAIP,aAAa,KAAK,KAAKE,YAAY,KAAK,EACxCC,UAAU,CAAC,iBAAiB,GAAG;YAGnC,MAAM,IAAI,CAAC,cAAc,CAAC,oBAAoB,CAC1CK,SAAS,QAAQ,CAACR,eAClBG;YAIJ,IAAIN,UACA,MAAM,IAAI,CAAC,cAAc,CAAC,oBAAoB,CAC1CW,SAAS,QAAQ,CAACN,cAClBL;YAIR,OAAON,OAAO,EAAE,CAACW;QACrB,EAAE,OAAOO,cAAc;YACnB,OAAOlB,OAAO,IAAI,CAAC,IAAImB,uBAAuBD;QAClD;IACJ;AACJ;AAEO,MAAME,sCAAoBC,2CAAAA,oBAAuC,CAAC;IACrE,gBAAgB7B;IAChB,cAAc;QAAC8B;QAAiBC;QAAgBC;QAAgBC;KAAe;AACnF"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { Result } from "@webiny/feature/api";
|
|
2
|
+
import type { AdminUser } from "@webiny/api-core/types/users.js";
|
|
3
|
+
import type { NotAuthorizedError, EmailTakenError, UserValidationError } from "@webiny/api-core/features/users/shared/errors.js";
|
|
4
|
+
import { UpdateUserUseCase as CoreUpdateUserUseCase } from "@webiny/api-core/features/users/UpdateUser/index.js";
|
|
5
|
+
import type { CognitoUpdateUserError } from "../../../api/domain/errors.js";
|
|
6
|
+
export interface UpdateAdminUserInput {
|
|
7
|
+
displayName?: string;
|
|
8
|
+
email?: string;
|
|
9
|
+
firstName?: string;
|
|
10
|
+
lastName?: string;
|
|
11
|
+
password?: string;
|
|
12
|
+
avatar?: Record<string, any> | null;
|
|
13
|
+
roles?: string[];
|
|
14
|
+
teams?: string[];
|
|
15
|
+
}
|
|
16
|
+
export interface IUpdateUserUseCaseErrors {
|
|
17
|
+
authorization: NotAuthorizedError;
|
|
18
|
+
validation: UserValidationError;
|
|
19
|
+
emailTaken: EmailTakenError;
|
|
20
|
+
updateAdminUser: CoreUpdateUserUseCase.Error;
|
|
21
|
+
cognitoUpdateUser: CognitoUpdateUserError;
|
|
22
|
+
}
|
|
23
|
+
type IUpdateAdminUserError = IUpdateUserUseCaseErrors[keyof IUpdateUserUseCaseErrors];
|
|
24
|
+
export interface IUpdateUserUseCase {
|
|
25
|
+
execute(id: string, input: UpdateAdminUserInput): Promise<Result<AdminUser, IUpdateAdminUserError>>;
|
|
26
|
+
}
|
|
27
|
+
export declare const UpdateUserUseCase: import("@webiny/di").Abstraction<IUpdateUserUseCase>;
|
|
28
|
+
export declare namespace UpdateUserUseCase {
|
|
29
|
+
type Interface = IUpdateUserUseCase;
|
|
30
|
+
type Input = UpdateAdminUserInput;
|
|
31
|
+
type Error = IUpdateAdminUserError;
|
|
32
|
+
}
|
|
33
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/features/UpdateUser/abstractions.js","sources":["../../../../src/api/features/UpdateUser/abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { Result } from \"@webiny/feature/api\";\nimport type { AdminUser } from \"@webiny/api-core/types/users.js\";\nimport type {\n NotAuthorizedError,\n EmailTakenError,\n UserValidationError\n} from \"@webiny/api-core/features/users/shared/errors.js\";\nimport { UpdateUserUseCase as CoreUpdateUserUseCase } from \"@webiny/api-core/features/users/UpdateUser/index.js\";\nimport type { CognitoUpdateUserError } from \"~/api/domain/errors.js\";\n\nexport interface UpdateAdminUserInput {\n displayName?: string;\n email?: string;\n firstName?: string;\n lastName?: string;\n password?: string;\n avatar?: Record<string, any> | null;\n roles?: string[];\n teams?: string[];\n}\n\nexport interface IUpdateUserUseCaseErrors {\n authorization: NotAuthorizedError;\n validation: UserValidationError;\n emailTaken: EmailTakenError;\n updateAdminUser: CoreUpdateUserUseCase.Error;\n cognitoUpdateUser: CognitoUpdateUserError;\n}\n\ntype IUpdateAdminUserError = IUpdateUserUseCaseErrors[keyof IUpdateUserUseCaseErrors];\n\nexport interface IUpdateUserUseCase {\n execute(\n id: string,\n input: UpdateAdminUserInput\n ): Promise<Result<AdminUser, IUpdateAdminUserError>>;\n}\n\nexport const UpdateUserUseCase = createAbstraction<IUpdateUserUseCase>(\"UpdateUserUseCase\");\n\nexport namespace UpdateUserUseCase {\n export type Interface = IUpdateUserUseCase;\n export type Input = UpdateAdminUserInput;\n export type Error = IUpdateAdminUserError;\n}\n"],"names":["UpdateUserUseCase","createAbstraction"],"mappings":";AAuCO,MAAMA,oBAAoBC,kBAAsC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { createFeature } from "@webiny/feature/api";
|
|
2
|
+
import { UpdateUserUseCase } from "./UpdateUserUseCase.js";
|
|
3
|
+
const UpdateUserFeature = createFeature({
|
|
4
|
+
name: "UpdateUserFeature",
|
|
5
|
+
register (container) {
|
|
6
|
+
container.register(UpdateUserUseCase);
|
|
7
|
+
}
|
|
8
|
+
});
|
|
9
|
+
export { UpdateUserFeature };
|
|
10
|
+
|
|
11
|
+
//# sourceMappingURL=feature.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/features/UpdateUser/feature.js","sources":["../../../../src/api/features/UpdateUser/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { UpdateUserUseCase } from \"./UpdateUserUseCase.js\";\n\nexport const UpdateUserFeature = createFeature({\n name: \"UpdateUserFeature\",\n register(container) {\n container.register(UpdateUserUseCase);\n }\n});\n"],"names":["UpdateUserFeature","createFeature","container","UpdateUserUseCase"],"mappings":";;AAGO,MAAMA,oBAAoBC,cAAc;IAC3C,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC;IACvB;AACJ"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const updateAdminUserValidation: z.ZodObject<{
|
|
3
|
+
displayName: z.ZodOptional<z.ZodString>;
|
|
4
|
+
email: z.ZodOptional<z.ZodString>;
|
|
5
|
+
firstName: z.ZodOptional<z.ZodString>;
|
|
6
|
+
lastName: z.ZodOptional<z.ZodString>;
|
|
7
|
+
password: z.ZodOptional<z.ZodString>;
|
|
8
|
+
avatar: z.ZodNullable<z.ZodOptional<z.ZodObject<{
|
|
9
|
+
id: z.ZodString;
|
|
10
|
+
src: z.ZodString;
|
|
11
|
+
}, z.core.$strip>>>;
|
|
12
|
+
roles: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
13
|
+
teams: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
14
|
+
}, z.core.$strip>;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
const updateAdminUserValidation = z.object({
|
|
3
|
+
displayName: z.string().min(1).optional(),
|
|
4
|
+
email: z.string().email().optional(),
|
|
5
|
+
firstName: z.string().optional(),
|
|
6
|
+
lastName: z.string().optional(),
|
|
7
|
+
password: z.string().min(8).optional(),
|
|
8
|
+
avatar: z.object({
|
|
9
|
+
id: z.string().min(1),
|
|
10
|
+
src: z.string().url()
|
|
11
|
+
}).optional().nullable(),
|
|
12
|
+
roles: z.array(z.string()).optional(),
|
|
13
|
+
teams: z.array(z.string()).optional()
|
|
14
|
+
});
|
|
15
|
+
export { updateAdminUserValidation };
|
|
16
|
+
|
|
17
|
+
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/features/UpdateUser/schema.js","sources":["../../../../src/api/features/UpdateUser/schema.ts"],"sourcesContent":["import { z } from \"zod\";\n\nexport const updateAdminUserValidation = z.object({\n displayName: z.string().min(1).optional(),\n email: z.string().email().optional(),\n firstName: z.string().optional(),\n lastName: z.string().optional(),\n password: z.string().min(8).optional(),\n avatar: z\n .object({\n id: z.string().min(1),\n src: z.string().url()\n })\n .optional()\n .nullable(),\n roles: z.array(z.string()).optional(),\n teams: z.array(z.string()).optional()\n});\n"],"names":["updateAdminUserValidation","z"],"mappings":";AAEO,MAAMA,4BAA4BC,EAAE,MAAM,CAAC;IAC9C,aAAaA,EAAE,MAAM,GAAG,GAAG,CAAC,GAAG,QAAQ;IACvC,OAAOA,EAAE,MAAM,GAAG,KAAK,GAAG,QAAQ;IAClC,WAAWA,EAAE,MAAM,GAAG,QAAQ;IAC9B,UAAUA,EAAE,MAAM,GAAG,QAAQ;IAC7B,UAAUA,EAAE,MAAM,GAAG,GAAG,CAAC,GAAG,QAAQ;IACpC,QAAQA,EAAAA,MACG,CAAC;QACJ,IAAIA,EAAE,MAAM,GAAG,GAAG,CAAC;QACnB,KAAKA,EAAE,MAAM,GAAG,GAAG;IACvB,GACC,QAAQ,GACR,QAAQ;IACb,OAAOA,EAAE,KAAK,CAACA,EAAE,MAAM,IAAI,QAAQ;IACnC,OAAOA,EAAE,KAAK,CAACA,EAAE,MAAM,IAAI,QAAQ;AACvC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { Tenant } from "@webiny/api-core/types/tenancy.js";
|
|
2
|
+
import { AppInstaller } from "@webiny/api-core/features/tenancy/InstallTenant/index.js";
|
|
3
|
+
import { GetRoleUseCase } from "@webiny/api-core/features/security/roles/GetRole/index.js";
|
|
4
|
+
import { DeleteUserUseCase } from "../../../api/features/DeleteUser/index.js";
|
|
5
|
+
import { CreateUserUseCase } from "../../../api/features/CreateUser/index.js";
|
|
6
|
+
interface UserInstallationData {
|
|
7
|
+
firstName: string;
|
|
8
|
+
lastName: string;
|
|
9
|
+
email: string;
|
|
10
|
+
password: string;
|
|
11
|
+
}
|
|
12
|
+
declare class UsersInstallerImpl implements AppInstaller.Interface<UserInstallationData> {
|
|
13
|
+
private getRole;
|
|
14
|
+
private createUserUseCase;
|
|
15
|
+
private deleteUserUseCase;
|
|
16
|
+
readonly alwaysRun = false;
|
|
17
|
+
readonly appName = "Cognito";
|
|
18
|
+
readonly dependsOn: string[];
|
|
19
|
+
private createdUser;
|
|
20
|
+
constructor(getRole: GetRoleUseCase.Interface, createUserUseCase: CreateUserUseCase.Interface, deleteUserUseCase: DeleteUserUseCase.Interface);
|
|
21
|
+
install(_: Tenant, data: UserInstallationData): Promise<void>;
|
|
22
|
+
uninstall(): Promise<void>;
|
|
23
|
+
}
|
|
24
|
+
export declare const UserInstaller: typeof UsersInstallerImpl & {
|
|
25
|
+
__abstraction: import("@webiny/di").Abstraction<import("@webiny/api-core/features/tenancy/InstallTenant/abstractions").IAppInstaller<Record<string, any>>>;
|
|
26
|
+
};
|
|
27
|
+
export {};
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { AppInstaller } from "@webiny/api-core/features/tenancy/InstallTenant/index.js";
|
|
2
|
+
import { GetRoleUseCase } from "@webiny/api-core/features/security/roles/GetRole/index.js";
|
|
3
|
+
import { DeleteUserUseCase } from "../DeleteUser/index.js";
|
|
4
|
+
import { CreateUserUseCase } from "../CreateUser/index.js";
|
|
5
|
+
class UsersInstallerImpl {
|
|
6
|
+
constructor(getRole, createUserUseCase, deleteUserUseCase){
|
|
7
|
+
this.getRole = getRole;
|
|
8
|
+
this.createUserUseCase = createUserUseCase;
|
|
9
|
+
this.deleteUserUseCase = deleteUserUseCase;
|
|
10
|
+
this.alwaysRun = false;
|
|
11
|
+
this.appName = "Cognito";
|
|
12
|
+
this.dependsOn = [
|
|
13
|
+
"Security"
|
|
14
|
+
];
|
|
15
|
+
}
|
|
16
|
+
async install(_, data) {
|
|
17
|
+
const roleResult = await this.getRole.execute({
|
|
18
|
+
slug: "full-access"
|
|
19
|
+
});
|
|
20
|
+
if (roleResult.isFail()) throw new Error(`Failed to get full-access role: ${roleResult.error.message}`);
|
|
21
|
+
const role = roleResult.value;
|
|
22
|
+
const userWithDisplayName = {
|
|
23
|
+
...data,
|
|
24
|
+
displayName: `${data.firstName} ${data.lastName}`,
|
|
25
|
+
roles: [
|
|
26
|
+
role.id
|
|
27
|
+
],
|
|
28
|
+
teams: []
|
|
29
|
+
};
|
|
30
|
+
const createResult = await this.createUserUseCase.execute(userWithDisplayName);
|
|
31
|
+
if (createResult.isFail()) throw new Error(`Failed to create admin user: ${createResult.error.message}`);
|
|
32
|
+
this.createdUser = createResult.value;
|
|
33
|
+
}
|
|
34
|
+
async uninstall() {
|
|
35
|
+
if (this.createdUser) await this.deleteUserUseCase.execute(this.createdUser.id);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
const UserInstaller = AppInstaller.createImplementation({
|
|
39
|
+
implementation: UsersInstallerImpl,
|
|
40
|
+
dependencies: [
|
|
41
|
+
GetRoleUseCase,
|
|
42
|
+
CreateUserUseCase,
|
|
43
|
+
DeleteUserUseCase
|
|
44
|
+
]
|
|
45
|
+
});
|
|
46
|
+
export { UserInstaller };
|
|
47
|
+
|
|
48
|
+
//# sourceMappingURL=UserInstaller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/features/UserInstaller/UserInstaller.js","sources":["../../../../src/api/features/UserInstaller/UserInstaller.ts"],"sourcesContent":["import type { Tenant } from \"@webiny/api-core/types/tenancy.js\";\nimport type { AdminUser } from \"@webiny/api-core/types/users.js\";\nimport { AppInstaller } from \"@webiny/api-core/features/tenancy/InstallTenant/index.js\";\nimport { GetRoleUseCase } from \"@webiny/api-core/features/security/roles/GetRole/index.js\";\nimport { DeleteUserUseCase } from \"~/api/features/DeleteUser/index.js\";\nimport { CreateUserUseCase } from \"~/api/features/CreateUser/index.js\";\n\ninterface UserInstallationData {\n firstName: string;\n lastName: string;\n email: string;\n password: string;\n}\n\nclass UsersInstallerImpl implements AppInstaller.Interface<UserInstallationData> {\n readonly alwaysRun = false;\n readonly appName = \"Cognito\";\n readonly dependsOn = [\"Security\"];\n private createdUser: AdminUser | undefined;\n\n constructor(\n private getRole: GetRoleUseCase.Interface,\n private createUserUseCase: CreateUserUseCase.Interface,\n private deleteUserUseCase: DeleteUserUseCase.Interface\n ) {}\n\n async install(_: Tenant, data: UserInstallationData): Promise<void> {\n // Load `full-access` role and assign it to the new user\n const roleResult = await this.getRole.execute({ slug: \"full-access\" });\n if (roleResult.isFail()) {\n throw new Error(`Failed to get full-access role: ${roleResult.error.message}`);\n }\n\n const role = roleResult.value;\n\n // Create user with displayName and full-access role\n const userWithDisplayName: CreateUserUseCase.Input = {\n ...data,\n displayName: `${data.firstName} ${data.lastName}`,\n roles: [role.id],\n teams: []\n };\n\n const createResult = await this.createUserUseCase.execute(userWithDisplayName);\n if (createResult.isFail()) {\n throw new Error(`Failed to create admin user: ${createResult.error.message}`);\n }\n\n this.createdUser = createResult.value;\n }\n\n async uninstall(): Promise<void> {\n if (this.createdUser) {\n await this.deleteUserUseCase.execute(this.createdUser.id);\n }\n }\n}\n\nexport const UserInstaller = AppInstaller.createImplementation({\n implementation: UsersInstallerImpl,\n dependencies: [GetRoleUseCase, CreateUserUseCase, DeleteUserUseCase]\n});\n"],"names":["UsersInstallerImpl","getRole","createUserUseCase","deleteUserUseCase","_","data","roleResult","Error","role","userWithDisplayName","createResult","UserInstaller","AppInstaller","GetRoleUseCase","CreateUserUseCase","DeleteUserUseCase"],"mappings":";;;;AAcA,MAAMA;IAMF,YACYC,OAAiC,EACjCC,iBAA8C,EAC9CC,iBAA8C,CACxD;aAHUF,OAAO,GAAPA;aACAC,iBAAiB,GAAjBA;aACAC,iBAAiB,GAAjBA;aARH,SAAS,GAAG;aACZ,OAAO,GAAG;aACV,SAAS,GAAG;YAAC;SAAW;IAO9B;IAEH,MAAM,QAAQC,CAAS,EAAEC,IAA0B,EAAiB;QAEhE,MAAMC,aAAa,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;YAAE,MAAM;QAAc;QACpE,IAAIA,WAAW,MAAM,IACjB,MAAM,IAAIC,MAAM,CAAC,gCAAgC,EAAED,WAAW,KAAK,CAAC,OAAO,EAAE;QAGjF,MAAME,OAAOF,WAAW,KAAK;QAG7B,MAAMG,sBAA+C;YACjD,GAAGJ,IAAI;YACP,aAAa,GAAGA,KAAK,SAAS,CAAC,CAAC,EAAEA,KAAK,QAAQ,EAAE;YACjD,OAAO;gBAACG,KAAK,EAAE;aAAC;YAChB,OAAO,EAAE;QACb;QAEA,MAAME,eAAe,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAACD;QAC1D,IAAIC,aAAa,MAAM,IACnB,MAAM,IAAIH,MAAM,CAAC,6BAA6B,EAAEG,aAAa,KAAK,CAAC,OAAO,EAAE;QAGhF,IAAI,CAAC,WAAW,GAAGA,aAAa,KAAK;IACzC;IAEA,MAAM,YAA2B;QAC7B,IAAI,IAAI,CAAC,WAAW,EAChB,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;IAEhE;AACJ;AAEO,MAAMC,gBAAgBC,aAAa,oBAAoB,CAAC;IAC3D,gBAAgBZ;IAChB,cAAc;QAACa;QAAgBC;QAAmBC;KAAkB;AACxE"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { createFeature } from "@webiny/feature/api";
|
|
2
|
+
import { UserInstaller } from "./UserInstaller.js";
|
|
3
|
+
const UserInstallerFeature = createFeature({
|
|
4
|
+
name: "UserInstallerFeature",
|
|
5
|
+
register (container) {
|
|
6
|
+
container.register(UserInstaller);
|
|
7
|
+
}
|
|
8
|
+
});
|
|
9
|
+
export { UserInstallerFeature };
|
|
10
|
+
|
|
11
|
+
//# sourceMappingURL=feature.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/features/UserInstaller/feature.js","sources":["../../../../src/api/features/UserInstaller/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { UserInstaller } from \"./UserInstaller.js\";\n\nexport const UserInstallerFeature = createFeature({\n name: \"UserInstallerFeature\",\n register(container) {\n container.register(UserInstaller);\n }\n});\n"],"names":["UserInstallerFeature","createFeature","container","UserInstaller"],"mappings":";;AAGO,MAAMA,uBAAuBC,cAAc;IAC9C,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC;IACvB;AACJ"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { CoreGraphQLSchemaFactory } from "@webiny/api-graphql/graphql/abstractions.js";
|
|
2
|
+
declare class AdminUserSchemaImpl implements CoreGraphQLSchemaFactory.Interface {
|
|
3
|
+
execute(builder: CoreGraphQLSchemaFactory.SchemaBuilder): CoreGraphQLSchemaFactory.Return;
|
|
4
|
+
}
|
|
5
|
+
export declare const AdminUsersSchema: typeof AdminUserSchemaImpl & {
|
|
6
|
+
__abstraction: import("@webiny/di").Abstraction<import("@webiny/api-graphql/graphql/abstractions.core").ICoreGraphQLSchemaFactory>;
|
|
7
|
+
};
|
|
8
|
+
export {};
|