@webiny/cognito 6.3.0 → 6.4.0-beta.0
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.js +23 -24
- package/Cognito.js.map +1 -1
- package/admin/Cognito.js +35 -41
- package/admin/Cognito.js.map +1 -1
- package/admin/CognitoLogin.js +8 -13
- package/admin/CognitoLogin.js.map +1 -1
- package/admin/Extension.js +17 -16
- package/admin/Extension.js.map +1 -1
- package/admin/SecurityPermission.js +11 -14
- package/admin/SecurityPermission.js.map +1 -1
- package/admin/domain/permissionsSchema.js +14 -9
- package/admin/domain/permissionsSchema.js.map +1 -1
- package/admin/features/permissions/abstractions.js +2 -1
- package/admin/features/permissions/abstractions.js.map +1 -1
- package/admin/features/permissions/feature.js +2 -1
- package/admin/features/permissions/feature.js.map +1 -1
- package/admin/federatedIdentityProviders.js +7 -6
- package/admin/federatedIdentityProviders.js.map +1 -1
- package/admin/presentation/Cognito/CognitoLoginScreen.js +39 -42
- package/admin/presentation/Cognito/CognitoLoginScreen.js.map +1 -1
- package/admin/presentation/Cognito/CognitoPresenter.js +250 -275
- package/admin/presentation/Cognito/CognitoPresenter.js.map +1 -1
- package/admin/presentation/Cognito/abstractions.js +2 -1
- package/admin/presentation/Cognito/abstractions.js.map +1 -1
- package/admin/presentation/Cognito/components/Divider.js +12 -13
- package/admin/presentation/Cognito/components/Divider.js.map +1 -1
- package/admin/presentation/Cognito/components/FederatedLogin.js +24 -29
- package/admin/presentation/Cognito/components/FederatedLogin.js.map +1 -1
- package/admin/presentation/Cognito/components/FederatedProviders.js +7 -10
- package/admin/presentation/Cognito/components/FederatedProviders.js.map +1 -1
- package/admin/presentation/Cognito/components/FooterSignIn.js +9 -12
- package/admin/presentation/Cognito/components/FooterSignIn.js.map +1 -1
- package/admin/presentation/Cognito/components/PasswordResetCodeSent.js +33 -37
- package/admin/presentation/Cognito/components/PasswordResetCodeSent.js.map +1 -1
- package/admin/presentation/Cognito/components/RequestPasswordResetCode.js +35 -39
- package/admin/presentation/Cognito/components/RequestPasswordResetCode.js.map +1 -1
- package/admin/presentation/Cognito/components/RequireNewPassword.js +44 -48
- package/admin/presentation/Cognito/components/RequireNewPassword.js.map +1 -1
- package/admin/presentation/Cognito/components/SetNewPassword.js +70 -71
- package/admin/presentation/Cognito/components/SetNewPassword.js.map +1 -1
- package/admin/presentation/Cognito/components/SignIn.js +52 -59
- package/admin/presentation/Cognito/components/SignIn.js.map +1 -1
- package/admin/presentation/Cognito/components/View.js +41 -60
- package/admin/presentation/Cognito/components/View.js.map +1 -1
- package/admin/presentation/Cognito/feature.js +12 -11
- package/admin/presentation/Cognito/feature.js.map +1 -1
- package/admin/presentation/shared/createPasswordValidator.js +13 -24
- package/admin/presentation/shared/createPasswordValidator.js.map +1 -1
- package/admin/presentation/shared/usePasswordValidator.js +11 -10
- package/admin/presentation/shared/usePasswordValidator.js.map +1 -1
- package/admin/presentation/userMenu/AccountDetails.js +15 -18
- package/admin/presentation/userMenu/AccountDetails.js.map +1 -1
- package/admin/presentation/userMenu/useIsDefaultTenant.js +5 -11
- package/admin/presentation/userMenu/useIsDefaultTenant.js.map +1 -1
- package/admin/routes.js +16 -17
- package/admin/routes.js.map +1 -1
- package/admin/ui/UserItem.js +0 -3
- package/admin/ui/components/AvatarImage/AvatarImage.js +25 -37
- package/admin/ui/components/AvatarImage/AvatarImage.js.map +1 -1
- package/admin/ui/components/AvatarImage/AvatarImagePreview.js +49 -51
- package/admin/ui/components/AvatarImage/AvatarImagePreview.js.map +1 -1
- package/admin/ui/components/AvatarImage/AvatarImageTrigger.js +25 -26
- package/admin/ui/components/AvatarImage/AvatarImageTrigger.js.map +1 -1
- package/admin/ui/components/AvatarImage/index.js +0 -2
- package/admin/ui/views/Account/Account.js +117 -130
- package/admin/ui/views/Account/Account.js.map +1 -1
- package/admin/ui/views/Account/graphql.js +5 -4
- package/admin/ui/views/Account/graphql.js.map +1 -1
- package/admin/ui/views/Account/index.js +0 -2
- package/admin/ui/views/Users/UsersDataList.js +146 -159
- package/admin/ui/views/Users/UsersDataList.js.map +1 -1
- package/admin/ui/views/Users/UsersForm.js +151 -162
- package/admin/ui/views/Users/UsersForm.js.map +1 -1
- package/admin/ui/views/Users/UsersView.js +9 -9
- package/admin/ui/views/Users/UsersView.js.map +1 -1
- package/admin/ui/views/Users/components/DeleteAction.js +23 -30
- package/admin/ui/views/Users/components/DeleteAction.js.map +1 -1
- package/admin/ui/views/Users/graphql.js +9 -10
- package/admin/ui/views/Users/graphql.js.map +1 -1
- package/admin/ui/views/Users/hooks/useUserForm.js +104 -114
- package/admin/ui/views/Users/hooks/useUserForm.js.map +1 -1
- package/admin/ui/views/Users/search.js +21 -0
- package/admin/ui/views/Users/search.js.map +1 -0
- package/admin/ui/views/utils.js +9 -7
- package/admin/ui/views/utils.js.map +1 -1
- package/api/CognitoApiFeature.js +15 -17
- package/api/CognitoApiFeature.js.map +1 -1
- package/api/domain/Username.js +5 -4
- package/api/domain/Username.js.map +1 -1
- package/api/domain/errors.js +37 -56
- package/api/domain/errors.js.map +1 -1
- package/api/features/CognitoIdp/CognitoIdentityProvider.js +49 -51
- package/api/features/CognitoIdp/CognitoIdentityProvider.js.map +1 -1
- package/api/features/CognitoIdp/abstractions.js +2 -1
- package/api/features/CognitoIdp/abstractions.js.map +1 -1
- package/api/features/CognitoIdp/feature.js +6 -5
- package/api/features/CognitoIdp/feature.js.map +1 -1
- package/api/features/CognitoIdp/index.js +0 -2
- package/api/features/CognitoService/CognitoService.js +93 -83
- package/api/features/CognitoService/CognitoService.js.map +1 -1
- package/api/features/CognitoService/abstractions.js +3 -5
- package/api/features/CognitoService/abstractions.js.map +1 -1
- package/api/features/CognitoService/feature.js +7 -6
- package/api/features/CognitoService/feature.js.map +1 -1
- package/api/features/CognitoService/index.js +0 -2
- package/api/features/CreateUser/CreateUserUseCase.js +62 -88
- package/api/features/CreateUser/CreateUserUseCase.js.map +1 -1
- package/api/features/CreateUser/abstractions.js +2 -1
- package/api/features/CreateUser/abstractions.js.map +1 -1
- package/api/features/CreateUser/feature.js +6 -5
- package/api/features/CreateUser/feature.js.map +1 -1
- package/api/features/CreateUser/index.js +0 -2
- package/api/features/CreateUser/schema.js +14 -13
- package/api/features/CreateUser/schema.js.map +1 -1
- package/api/features/DeleteUser/DeleteUserUseCase.js +34 -41
- package/api/features/DeleteUser/DeleteUserUseCase.js.map +1 -1
- package/api/features/DeleteUser/abstractions.js +2 -1
- package/api/features/DeleteUser/abstractions.js.map +1 -1
- package/api/features/DeleteUser/feature.js +6 -5
- package/api/features/DeleteUser/feature.js.map +1 -1
- package/api/features/DeleteUser/index.js +0 -2
- package/api/features/UpdateUser/UpdateUserUseCase.js +49 -71
- package/api/features/UpdateUser/UpdateUserUseCase.js.map +1 -1
- package/api/features/UpdateUser/abstractions.js +2 -1
- package/api/features/UpdateUser/abstractions.js.map +1 -1
- package/api/features/UpdateUser/feature.js +6 -5
- package/api/features/UpdateUser/feature.js.map +1 -1
- package/api/features/UpdateUser/index.js +0 -2
- package/api/features/UpdateUser/schema.js +13 -12
- package/api/features/UpdateUser/schema.js.map +1 -1
- package/api/features/UserInstaller/UserInstaller.js +36 -36
- package/api/features/UserInstaller/UserInstaller.js.map +1 -1
- package/api/features/UserInstaller/feature.js +6 -5
- package/api/features/UserInstaller/feature.js.map +1 -1
- package/api/graphql/user.gql.js +83 -107
- package/api/graphql/user.gql.js.map +1 -1
- package/index.js +0 -2
- package/package.json +22 -23
- package/static/svg/search.43fa797c.svg +20 -0
- package/admin/ui/UserItem.js.map +0 -1
- package/admin/ui/components/AvatarImage/index.js.map +0 -1
- package/admin/ui/views/Account/index.js.map +0 -1
- package/api/features/CognitoIdp/index.js.map +0 -1
- package/api/features/CognitoService/index.js.map +0 -1
- package/api/features/CreateUser/index.js.map +0 -1
- package/api/features/DeleteUser/index.js.map +0 -1
- package/api/features/UpdateUser/index.js.map +0 -1
- package/index.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"admin/ui/views/Users/graphql.js","sources":["../../../../../src/admin/ui/views/Users/graphql.ts"],"sourcesContent":["import gql from \"graphql-tag\";\n\nconst listUserFields = /* GraphQL */ `\n {\n id\n email\n firstName\n lastName\n avatar\n createdOn\n external\n }\n`;\n\nconst userFormFields = () => {\n return /* GraphQL */ `\n {\n id\n email\n firstName\n lastName\n avatar\n external\n roles {\n id\n slug\n name\n }\n teams {\n id\n slug\n name\n }\n }\n `;\n};\n\nexport const LIST_USERS: any = gql`\n query ListUsers {\n adminUsers {\n users: listUsers {\n data ${listUserFields}\n }\n }\n }\n`;\n\nexport const READ_USER: any = () => gql`\n query GetUser($id: ID!) {\n adminUsers {\n user: getUser(where: { id: $id }){\n data ${userFormFields()}\n error {\n code\n message\n }\n }\n }\n }\n`;\n\nexport const CREATE_USER: any = gql`\n mutation CreateUser($data: AdminUsersCreateInput!){\n adminUsers {\n user: createUser(data: $data) {\n data ${listUserFields}\n error {\n code\n message\n data\n }\n }\n }\n }\n`;\n\nexport const UPDATE_USER: any = () => gql`\n mutation UpdateUser($id: ID!, $data: AdminUsersUpdateInput!){\n adminUsers {\n user: updateUser(id: $id, data: $data) {\n data ${userFormFields()}\n error {\n code\n message\n data\n }\n }\n }\n }\n`;\n\nexport const DELETE_USER: any = gql`\n mutation DeleteUser($id: ID!) {\n adminUsers {\n deleteUser(id: $id) {\n data\n error {\n code\n message\n }\n }\n }\n }\n`;\n"],"names":["listUserFields","userFormFields","LIST_USERS","gql","READ_USER","CREATE_USER","UPDATE_USER","DELETE_USER"],"mappings":";AAEA,MAAMA,iBAA+B,CAAC;;;;;;;;;;AAUtC,CAAC;AAED,MAAMC,iBAAiB,IACE,CAAC;;;;;;;;;;;;;;;;;;;IAmBtB,CAAC;AAGE,MAAMC,aAAkBC,WAAG,CAAC;;;;qBAId,EAAEH,eAAe;;;;AAItC,CAAC;AAEM,MAAMI,YAAiB,IAAMD,WAAG,CAAC;;;;qBAInB,EAAEF,iBAAiB;;;;;;;;AAQxC,CAAC;AAEM,MAAMI,cAAmBF,WAAG,CAAC;;;;qBAIf,EAAEH,eAAe;;;;;;;;;AAStC,CAAC;AAEM,MAAMM,cAAmB,IAAMH,WAAG,CAAC;;;;qBAIrB,EAAEF,iBAAiB;;;;;;;;;AASxC,CAAC;AAEM,MAAMM,cAAmBJ,WAAG,CAAC;;;;;;;;;;;;AAYpC,CAAC"}
|
|
@@ -6,122 +6,112 @@ import { CREATE_USER, LIST_USERS, READ_USER, UPDATE_USER } from "../graphql.js";
|
|
|
6
6
|
import omit from "lodash/omit.js";
|
|
7
7
|
import { Routes } from "../../../../routes.js";
|
|
8
8
|
import { useToast } from "@webiny/admin-ui";
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
9
|
+
function useUserForm() {
|
|
10
|
+
const { goToRoute } = useRouter();
|
|
11
|
+
const { route } = useRoute(Routes.Users.List);
|
|
12
|
+
const toast = useToast();
|
|
13
|
+
const wcp = useWcp();
|
|
14
|
+
const teams = wcp.canUseTeams();
|
|
15
|
+
const id = route.params.id;
|
|
16
|
+
const newUser = true === route.params.new;
|
|
17
|
+
const { data, loading: userLoading } = useQuery(READ_USER({
|
|
18
|
+
teams
|
|
19
|
+
}), {
|
|
20
|
+
variables: {
|
|
21
|
+
id
|
|
22
|
+
},
|
|
23
|
+
skip: !id,
|
|
24
|
+
onCompleted: (data)=>{
|
|
25
|
+
if (!data) return;
|
|
26
|
+
const { error } = data.adminUsers.user;
|
|
27
|
+
if (error) {
|
|
28
|
+
goToRoute(Routes.Users.List);
|
|
29
|
+
toast.showWarningToast({
|
|
30
|
+
title: "Error loading user profile",
|
|
31
|
+
description: error.message,
|
|
32
|
+
duration: 1 / 0
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
const [create, { loading: createLoading }] = useMutation(CREATE_USER, {
|
|
38
|
+
refetchQueries: [
|
|
39
|
+
{
|
|
40
|
+
query: LIST_USERS
|
|
41
|
+
}
|
|
42
|
+
]
|
|
43
|
+
});
|
|
44
|
+
const [update, { loading: updateLoading }] = useMutation(UPDATE_USER({
|
|
45
|
+
teams
|
|
46
|
+
}), {
|
|
47
|
+
refetchQueries: [
|
|
48
|
+
{
|
|
49
|
+
query: LIST_USERS
|
|
50
|
+
}
|
|
51
|
+
]
|
|
52
|
+
});
|
|
53
|
+
const loading = userLoading || createLoading || updateLoading;
|
|
54
|
+
const onSubmit = useCallback(async (data)=>{
|
|
55
|
+
const { id, ...rest } = data;
|
|
56
|
+
const [operation, args] = newUser ? [
|
|
57
|
+
create,
|
|
58
|
+
{
|
|
59
|
+
variables: {
|
|
60
|
+
data
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
] : [
|
|
64
|
+
update,
|
|
65
|
+
{
|
|
66
|
+
variables: {
|
|
67
|
+
id,
|
|
68
|
+
data: omit(rest, [
|
|
69
|
+
"external"
|
|
70
|
+
])
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
];
|
|
74
|
+
const result = await operation(args);
|
|
75
|
+
const { data: user, error } = result.data.adminUsers.user;
|
|
76
|
+
if (error) return void toast.showWarningToast({
|
|
77
|
+
title: "Error updating user profile",
|
|
78
|
+
description: error.message,
|
|
79
|
+
duration: 1 / 0
|
|
80
|
+
});
|
|
81
|
+
if (newUser) goToRoute(Routes.Users.List, {
|
|
82
|
+
id: user.id
|
|
44
83
|
});
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
loading: createLoading
|
|
50
|
-
}] = useMutation(CREATE_USER, {
|
|
51
|
-
refetchQueries: [{
|
|
52
|
-
query: LIST_USERS
|
|
53
|
-
}]
|
|
54
|
-
});
|
|
55
|
-
const [update, {
|
|
56
|
-
loading: updateLoading
|
|
57
|
-
}] = useMutation(UPDATE_USER({
|
|
58
|
-
teams
|
|
59
|
-
}), {
|
|
60
|
-
refetchQueries: [{
|
|
61
|
-
query: LIST_USERS
|
|
62
|
-
}]
|
|
63
|
-
});
|
|
64
|
-
const loading = userLoading || createLoading || updateLoading;
|
|
65
|
-
const onSubmit = useCallback(async data => {
|
|
66
|
-
const {
|
|
67
|
-
id,
|
|
68
|
-
...rest
|
|
69
|
-
} = data;
|
|
70
|
-
const [operation, args] = !newUser ? [update, {
|
|
71
|
-
variables: {
|
|
84
|
+
toast.showSuccessToast({
|
|
85
|
+
title: "User saved successfully."
|
|
86
|
+
});
|
|
87
|
+
}, [
|
|
72
88
|
id,
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
}
|
|
98
|
-
toast.showSuccessToast({
|
|
99
|
-
title: "User saved successfully."
|
|
100
|
-
});
|
|
101
|
-
}, [id, newUser]);
|
|
102
|
-
const user = userLoading ? {} : data ? data.adminUsers.user.data : {};
|
|
103
|
-
const showEmptyView = !newUser && !userLoading && isEmpty(user);
|
|
104
|
-
return {
|
|
105
|
-
id,
|
|
106
|
-
loading,
|
|
107
|
-
user: {
|
|
108
|
-
...user,
|
|
109
|
-
group: user.group ? user.group.id : undefined,
|
|
110
|
-
team: user.team ? user.team.id : undefined
|
|
111
|
-
},
|
|
112
|
-
onSubmit,
|
|
113
|
-
isNewUser: newUser,
|
|
114
|
-
fullName: `${user.firstName || ""} ${user.lastName || ""}`.trim(),
|
|
115
|
-
showEmptyView,
|
|
116
|
-
createUser() {
|
|
117
|
-
goToRoute(Routes.Users.List, {
|
|
118
|
-
new: true
|
|
119
|
-
});
|
|
120
|
-
},
|
|
121
|
-
cancelEditing() {
|
|
122
|
-
goToRoute(Routes.Users.List);
|
|
123
|
-
}
|
|
124
|
-
};
|
|
89
|
+
newUser
|
|
90
|
+
]);
|
|
91
|
+
const user = userLoading ? {} : data ? data.adminUsers.user.data : {};
|
|
92
|
+
const showEmptyView = !newUser && !userLoading && isEmpty(user);
|
|
93
|
+
return {
|
|
94
|
+
id,
|
|
95
|
+
loading,
|
|
96
|
+
user: {
|
|
97
|
+
...user,
|
|
98
|
+
group: user.group ? user.group.id : void 0,
|
|
99
|
+
team: user.team ? user.team.id : void 0
|
|
100
|
+
},
|
|
101
|
+
onSubmit,
|
|
102
|
+
isNewUser: newUser,
|
|
103
|
+
fullName: `${user.firstName || ""} ${user.lastName || ""}`.trim(),
|
|
104
|
+
showEmptyView,
|
|
105
|
+
createUser () {
|
|
106
|
+
goToRoute(Routes.Users.List, {
|
|
107
|
+
new: true
|
|
108
|
+
});
|
|
109
|
+
},
|
|
110
|
+
cancelEditing () {
|
|
111
|
+
goToRoute(Routes.Users.List);
|
|
112
|
+
}
|
|
113
|
+
};
|
|
125
114
|
}
|
|
115
|
+
export { useUserForm };
|
|
126
116
|
|
|
127
117
|
//# sourceMappingURL=useUserForm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"admin/ui/views/Users/hooks/useUserForm.js","sources":["../../../../../../src/admin/ui/views/Users/hooks/useUserForm.ts"],"sourcesContent":["import { useCallback } from \"react\";\nimport { useMutation, useQuery } from \"@apollo/react-hooks\";\nimport isEmpty from \"lodash/isEmpty.js\";\nimport { useRoute, useRouter, useWcp } from \"@webiny/app-admin\";\nimport { CREATE_USER, LIST_USERS, READ_USER, UPDATE_USER } from \"~/admin/ui/views/Users/graphql.js\";\nimport omit from \"lodash/omit.js\";\nimport { Routes } from \"~/admin/routes.js\";\nimport { useToast } from \"@webiny/admin-ui\";\n\nexport type UseUserForm = ReturnType<typeof useUserForm>;\n\ninterface SubmitUserCallableParams {\n id?: string;\n firstName: string;\n lastName: string;\n email: string;\n password?: string;\n avatar: {\n src?: string;\n };\n external?: boolean;\n}\n\ninterface SubmitUserCallable {\n (data: SubmitUserCallableParams): Promise<void>;\n}\n\nexport function useUserForm() {\n const { goToRoute } = useRouter();\n const { route } = useRoute(Routes.Users.List);\n const toast = useToast();\n\n const wcp = useWcp();\n const teams = wcp.canUseTeams();\n\n const id = route.params.id;\n const newUser = route.params.new === true;\n\n const { data, loading: userLoading } = useQuery(READ_USER({ teams }), {\n variables: { id },\n skip: !id,\n onCompleted: data => {\n if (!data) {\n return;\n }\n\n const { error } = data.adminUsers.user;\n if (error) {\n goToRoute(Routes.Users.List);\n toast.showWarningToast({\n title: \"Error loading user profile\",\n description: error.message,\n duration: Infinity\n });\n }\n }\n });\n\n const [create, { loading: createLoading }] = useMutation(CREATE_USER, {\n refetchQueries: [{ query: LIST_USERS }]\n });\n\n const [update, { loading: updateLoading }] = useMutation(UPDATE_USER({ teams }), {\n refetchQueries: [{ query: LIST_USERS }]\n });\n\n const loading = userLoading || createLoading || updateLoading;\n\n const onSubmit = useCallback<SubmitUserCallable>(\n async data => {\n const { id, ...rest } = data;\n const [operation, args] = !newUser\n ? [update, { variables: { id, data: omit(rest, [\"external\"]) } }]\n : [create, { variables: { data } }];\n\n const result = await operation(args);\n\n const { data: user, error } = result.data.adminUsers.user;\n\n if (error) {\n toast.showWarningToast({\n title: \"Error updating user profile\",\n description: error.message,\n duration: Infinity\n });\n return;\n }\n\n if (newUser) {\n goToRoute(Routes.Users.List, { id: user.id });\n }\n toast.showSuccessToast({\n title: \"User saved successfully.\"\n });\n },\n [id, newUser]\n );\n\n const user = userLoading ? {} : data ? data.adminUsers.user.data : {};\n\n const showEmptyView = !newUser && !userLoading && isEmpty(user);\n\n return {\n id,\n loading,\n user: {\n ...user,\n group: user.group ? user.group.id : undefined,\n team: user.team ? user.team.id : undefined\n },\n onSubmit,\n isNewUser: newUser,\n fullName: `${user.firstName || \"\"} ${user.lastName || \"\"}`.trim(),\n showEmptyView,\n createUser() {\n goToRoute(Routes.Users.List, { new: true });\n },\n cancelEditing() {\n goToRoute(Routes.Users.List);\n }\n };\n}\n"],"names":["useUserForm","goToRoute","useRouter","route","useRoute","Routes","toast","useToast","wcp","useWcp","teams","id","newUser","data","userLoading","useQuery","READ_USER","error","Infinity","create","createLoading","useMutation","CREATE_USER","LIST_USERS","update","updateLoading","UPDATE_USER","loading","onSubmit","useCallback","rest","operation","args","omit","result","user","showEmptyView","isEmpty","undefined"],"mappings":";;;;;;;;AA2BO,SAASA;IACZ,MAAM,EAAEC,SAAS,EAAE,GAAGC;IACtB,MAAM,EAAEC,KAAK,EAAE,GAAGC,SAASC,OAAO,KAAK,CAAC,IAAI;IAC5C,MAAMC,QAAQC;IAEd,MAAMC,MAAMC;IACZ,MAAMC,QAAQF,IAAI,WAAW;IAE7B,MAAMG,KAAKR,MAAM,MAAM,CAAC,EAAE;IAC1B,MAAMS,UAAUT,AAAqB,SAArBA,MAAM,MAAM,CAAC,GAAG;IAEhC,MAAM,EAAEU,IAAI,EAAE,SAASC,WAAW,EAAE,GAAGC,SAASC,UAAU;QAAEN;IAAM,IAAI;QAClE,WAAW;YAAEC;QAAG;QAChB,MAAM,CAACA;QACP,aAAaE,CAAAA;YACT,IAAI,CAACA,MACD;YAGJ,MAAM,EAAEI,KAAK,EAAE,GAAGJ,KAAK,UAAU,CAAC,IAAI;YACtC,IAAII,OAAO;gBACPhB,UAAUI,OAAO,KAAK,CAAC,IAAI;gBAC3BC,MAAM,gBAAgB,CAAC;oBACnB,OAAO;oBACP,aAAaW,MAAM,OAAO;oBAC1B,UAAUC;gBACd;YACJ;QACJ;IACJ;IAEA,MAAM,CAACC,QAAQ,EAAE,SAASC,aAAa,EAAE,CAAC,GAAGC,YAAYC,aAAa;QAClE,gBAAgB;YAAC;gBAAE,OAAOC;YAAW;SAAE;IAC3C;IAEA,MAAM,CAACC,QAAQ,EAAE,SAASC,aAAa,EAAE,CAAC,GAAGJ,YAAYK,YAAY;QAAEhB;IAAM,IAAI;QAC7E,gBAAgB;YAAC;gBAAE,OAAOa;YAAW;SAAE;IAC3C;IAEA,MAAMI,UAAUb,eAAeM,iBAAiBK;IAEhD,MAAMG,WAAWC,YACb,OAAMhB;QACF,MAAM,EAAEF,EAAE,EAAE,GAAGmB,MAAM,GAAGjB;QACxB,MAAM,CAACkB,WAAWC,KAAK,GAAG,AAACpB,UAErB;YAACO;YAAQ;gBAAE,WAAW;oBAAEN;gBAAK;YAAE;SAAE,GADjC;YAACW;YAAQ;gBAAE,WAAW;oBAAEb;oBAAI,MAAMsB,KAAKH,MAAM;wBAAC;qBAAW;gBAAE;YAAE;SAAE;QAGrE,MAAMI,SAAS,MAAMH,UAAUC;QAE/B,MAAM,EAAE,MAAMG,IAAI,EAAElB,KAAK,EAAE,GAAGiB,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI;QAEzD,IAAIjB,OAAO,YACPX,MAAM,gBAAgB,CAAC;YACnB,OAAO;YACP,aAAaW,MAAM,OAAO;YAC1B,UAAUC;QACd;QAIJ,IAAIN,SACAX,UAAUI,OAAO,KAAK,CAAC,IAAI,EAAE;YAAE,IAAI8B,KAAK,EAAE;QAAC;QAE/C7B,MAAM,gBAAgB,CAAC;YACnB,OAAO;QACX;IACJ,GACA;QAACK;QAAIC;KAAQ;IAGjB,MAAMuB,OAAOrB,cAAc,CAAC,IAAID,OAAOA,KAAK,UAAU,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC;IAEpE,MAAMuB,gBAAgB,CAACxB,WAAW,CAACE,eAAeuB,QAAQF;IAE1D,OAAO;QACHxB;QACAgB;QACA,MAAM;YACF,GAAGQ,IAAI;YACP,OAAOA,KAAK,KAAK,GAAGA,KAAK,KAAK,CAAC,EAAE,GAAGG;YACpC,MAAMH,KAAK,IAAI,GAAGA,KAAK,IAAI,CAAC,EAAE,GAAGG;QACrC;QACAV;QACA,WAAWhB;QACX,UAAU,GAAGuB,KAAK,SAAS,IAAI,GAAG,CAAC,EAAEA,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI;QAC/DC;QACA;YACInC,UAAUI,OAAO,KAAK,CAAC,IAAI,EAAE;gBAAE,KAAK;YAAK;QAC7C;QACA;YACIJ,UAAUI,OAAO,KAAK,CAAC,IAAI;QAC/B;IACJ;AACJ"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import __rslib_svgr_url__0__ from "../../../../static/svg/search.43fa797c.svg";
|
|
2
|
+
import * as __rspack_external_react from "react";
|
|
3
|
+
const SvgSearch = (props)=>/*#__PURE__*/ __rspack_external_react.createElement("svg", {
|
|
4
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
5
|
+
xmlSpace: "preserve",
|
|
6
|
+
width: 24,
|
|
7
|
+
height: 24,
|
|
8
|
+
viewBox: "0 0 24 24",
|
|
9
|
+
...props
|
|
10
|
+
}, /*#__PURE__*/ __rspack_external_react.createElement("path", {
|
|
11
|
+
fill: "none",
|
|
12
|
+
d: "M0 0h24v24H0z"
|
|
13
|
+
}), /*#__PURE__*/ __rspack_external_react.createElement("path", {
|
|
14
|
+
fill: "currentColor",
|
|
15
|
+
d: "M15.5 14h-.79l-.28-.27a6.5 6.5 0 0 0 1.48-5.34c-.47-2.78-2.79-5-5.59-5.34a6.505 6.505 0 0 0-7.27 7.27c.34 2.8 2.56 5.12 5.34 5.59a6.5 6.5 0 0 0 5.34-1.48l.27.28v.79l4.25 4.25c.41.41 1.08.41 1.49 0s.41-1.08 0-1.49zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14"
|
|
16
|
+
}));
|
|
17
|
+
const search = __rslib_svgr_url__0__;
|
|
18
|
+
export default search;
|
|
19
|
+
export { SvgSearch as ReactComponent };
|
|
20
|
+
|
|
21
|
+
//# sourceMappingURL=search.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admin/ui/views/Users/search.js","sources":["../../../../../src/admin/ui/views/Users/search.svg"],"sourcesContent":["import * as React from \"react\";\nconst SvgSearch = props => <svg xmlns=\"http://www.w3.org/2000/svg\" xmlSpace=\"preserve\" width={24} height={24} viewBox=\"0 0 24 24\" {...props}><path fill=\"none\" d=\"M0 0h24v24H0z\" /><path fill=\"currentColor\" d=\"M15.5 14h-.79l-.28-.27a6.5 6.5 0 0 0 1.48-5.34c-.47-2.78-2.79-5-5.59-5.34a6.505 6.505 0 0 0-7.27 7.27c.34 2.8 2.56 5.12 5.34 5.59a6.5 6.5 0 0 0 5.34-1.48l.27.28v.79l4.25 4.25c.41.41 1.08.41 1.49 0s.41-1.08 0-1.49zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14\" /></svg>;\nexport { SvgSearch as ReactComponent };\nexport default \"__RSLIB_SVGR_AUTO_PUBLIC_PATH__static/svg/search.43fa797c.svg\";"],"names":["SvgSearch","props"],"mappings":";;AACA,MAAMA,YAAYC,CAAAA,QAAAA,WAAAA,GAAS,sCAAC;QAAI,OAAM;QAA6B,UAAS;QAAW,OAAO;QAAI,QAAQ;QAAI,SAAQ;QAAa,GAAGA,KAAK;qBAAE,sCAAC;QAAK,MAAK;QAAO,GAAE;sBAAkB,sCAAC;QAAK,MAAK;QAAe,GAAE;;AAE/M"}
|
package/admin/ui/views/utils.js
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
1
|
+
const deserializeSorters = (data)=>{
|
|
2
|
+
if ("string" != typeof data) return data;
|
|
3
|
+
const [field, orderBy] = data.split("_");
|
|
4
|
+
const order = "asc" === String(orderBy).toLowerCase() ? "asc" : "desc";
|
|
5
|
+
return [
|
|
6
|
+
field,
|
|
7
|
+
order
|
|
8
|
+
];
|
|
8
9
|
};
|
|
10
|
+
export { deserializeSorters };
|
|
9
11
|
|
|
10
12
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"admin/ui/views/utils.js","sources":["../../../../src/admin/ui/views/utils.ts"],"sourcesContent":["type SortTypes = \"asc\" | \"desc\";\nexport const deserializeSorters = (data: string): [string, SortTypes] => {\n if (typeof data !== \"string\") {\n return data;\n }\n const [field, orderBy] = data.split(\"_\") as [string, SortTypes];\n const order = String(orderBy).toLowerCase() === \"asc\" ? \"asc\" : \"desc\";\n return [field, order];\n};\n"],"names":["deserializeSorters","data","field","orderBy","order","String"],"mappings":"AACO,MAAMA,qBAAqB,CAACC;IAC/B,IAAI,AAAgB,YAAhB,OAAOA,MACP,OAAOA;IAEX,MAAM,CAACC,OAAOC,QAAQ,GAAGF,KAAK,KAAK,CAAC;IACpC,MAAMG,QAAQC,AAAkC,UAAlCA,OAAOF,SAAS,WAAW,KAAe,QAAQ;IAChE,OAAO;QAACD;QAAOE;KAAM;AACzB"}
|
package/api/CognitoApiFeature.js
CHANGED
|
@@ -6,23 +6,21 @@ import { CreateUserFeature } from "./features/CreateUser/index.js";
|
|
|
6
6
|
import { UpdateUserFeature } from "./features/UpdateUser/index.js";
|
|
7
7
|
import { DeleteUserFeature } from "./features/DeleteUser/index.js";
|
|
8
8
|
import { CognitoServiceFeature } from "./features/CognitoService/feature.js";
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
// Register GraphQL schema
|
|
24
|
-
container.register(AdminUsersSchema);
|
|
25
|
-
}
|
|
9
|
+
const CognitoApiFeature = createFeature({
|
|
10
|
+
name: "CognitoApiFeature",
|
|
11
|
+
register (container) {
|
|
12
|
+
CreateUserFeature.register(container);
|
|
13
|
+
UpdateUserFeature.register(container);
|
|
14
|
+
DeleteUserFeature.register(container);
|
|
15
|
+
UserInstallerFeature.register(container);
|
|
16
|
+
CognitoIdpFeature.register(container);
|
|
17
|
+
CognitoServiceFeature.register(container, {
|
|
18
|
+
region: String(process.env.COGNITO_REGION),
|
|
19
|
+
userPoolId: String(process.env.COGNITO_USER_POOL_ID)
|
|
20
|
+
});
|
|
21
|
+
container.register(AdminUsersSchema);
|
|
22
|
+
}
|
|
26
23
|
});
|
|
24
|
+
export { CognitoApiFeature };
|
|
27
25
|
|
|
28
26
|
//# sourceMappingURL=CognitoApiFeature.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"api/CognitoApiFeature.js","sources":["../../src/api/CognitoApiFeature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { AdminUsersSchema } from \"~/api/graphql/user.gql.js\";\nimport { UserInstallerFeature } from \"./features/UserInstaller/feature.js\";\nimport { CognitoIdpFeature } from \"./features/CognitoIdp/index.js\";\nimport { CreateUserFeature } from \"./features/CreateUser/index.js\";\nimport { UpdateUserFeature } from \"./features/UpdateUser/index.js\";\nimport { DeleteUserFeature } from \"./features/DeleteUser/index.js\";\nimport { CognitoServiceFeature } from \"~/api/features/CognitoService/feature.js\";\n\nexport const CognitoApiFeature = createFeature({\n name: \"CognitoApiFeature\",\n register(container) {\n // Register features\n CreateUserFeature.register(container);\n UpdateUserFeature.register(container);\n DeleteUserFeature.register(container);\n UserInstallerFeature.register(container);\n CognitoIdpFeature.register(container);\n CognitoServiceFeature.register(container, {\n region: String(process.env.COGNITO_REGION),\n userPoolId: String(process.env.COGNITO_USER_POOL_ID)\n });\n\n // Register GraphQL schema\n container.register(AdminUsersSchema);\n }\n});\n"],"names":["CognitoApiFeature","createFeature","container","CreateUserFeature","UpdateUserFeature","DeleteUserFeature","UserInstallerFeature","CognitoIdpFeature","CognitoServiceFeature","String","process","AdminUsersSchema"],"mappings":";;;;;;;;AASO,MAAMA,oBAAoBC,cAAc;IAC3C,MAAM;IACN,UAASC,SAAS;QAEdC,kBAAkB,QAAQ,CAACD;QAC3BE,kBAAkB,QAAQ,CAACF;QAC3BG,kBAAkB,QAAQ,CAACH;QAC3BI,qBAAqB,QAAQ,CAACJ;QAC9BK,kBAAkB,QAAQ,CAACL;QAC3BM,sBAAsB,QAAQ,CAACN,WAAW;YACtC,QAAQO,OAAOC,QAAQ,GAAG,CAAC,cAAc;YACzC,YAAYD,OAAOC,QAAQ,GAAG,CAAC,oBAAoB;QACvD;QAGAR,UAAU,QAAQ,CAACS;IACvB;AACJ"}
|
package/api/domain/Username.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"api/domain/Username.js","sources":["../../../src/api/domain/Username.ts"],"sourcesContent":["import type { AdminUser, CreateUserInput } from \"@webiny/api-core/features/users/shared/types.js\";\n\nexport class Username {\n static fromUser(user: AdminUser | CreateUserInput) {\n return user.email.toLowerCase();\n }\n}\n"],"names":["Username","user"],"mappings":"AAEO,MAAMA;IACT,OAAO,SAASC,IAAiC,EAAE;QAC/C,OAAOA,KAAK,KAAK,CAAC,WAAW;IACjC;AACJ"}
|
package/api/domain/errors.js
CHANGED
|
@@ -1,63 +1,44 @@
|
|
|
1
1
|
import { BaseError } from "@webiny/feature/api";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
data: {
|
|
12
|
-
email
|
|
13
|
-
}
|
|
14
|
-
});
|
|
15
|
-
}
|
|
2
|
+
class CognitoAccountExistsError extends BaseError {
|
|
3
|
+
constructor(email){
|
|
4
|
+
super({
|
|
5
|
+
message: "An account with this email already exists in your Cognito User Pool.",
|
|
6
|
+
data: {
|
|
7
|
+
email
|
|
8
|
+
}
|
|
9
|
+
}), this.code = "Cognito/Account/Exists";
|
|
10
|
+
}
|
|
16
11
|
}
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
data: {
|
|
27
|
-
error
|
|
28
|
-
}
|
|
29
|
-
});
|
|
30
|
-
}
|
|
12
|
+
class CognitoCreateUserError extends BaseError {
|
|
13
|
+
constructor(error){
|
|
14
|
+
super({
|
|
15
|
+
message: `Failed to create user in Cognito: ${error.message}`,
|
|
16
|
+
data: {
|
|
17
|
+
error
|
|
18
|
+
}
|
|
19
|
+
}), this.code = "Cognito/User/Create";
|
|
20
|
+
}
|
|
31
21
|
}
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
data: {
|
|
42
|
-
error
|
|
43
|
-
}
|
|
44
|
-
});
|
|
45
|
-
}
|
|
22
|
+
class CognitoUpdateUserError extends BaseError {
|
|
23
|
+
constructor(error){
|
|
24
|
+
super({
|
|
25
|
+
message: `Failed to update user in Cognito: ${error.message}`,
|
|
26
|
+
data: {
|
|
27
|
+
error
|
|
28
|
+
}
|
|
29
|
+
}), this.code = "Cognito/User/Update";
|
|
30
|
+
}
|
|
46
31
|
}
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
data: {
|
|
57
|
-
error
|
|
58
|
-
}
|
|
59
|
-
});
|
|
60
|
-
}
|
|
32
|
+
class CognitoDeleteUserError extends BaseError {
|
|
33
|
+
constructor(error){
|
|
34
|
+
super({
|
|
35
|
+
message: `Failed to delete user from Cognito: ${error.message}`,
|
|
36
|
+
data: {
|
|
37
|
+
error
|
|
38
|
+
}
|
|
39
|
+
}), this.code = "Cognito/User/Delete";
|
|
40
|
+
}
|
|
61
41
|
}
|
|
42
|
+
export { CognitoAccountExistsError, CognitoCreateUserError, CognitoDeleteUserError, CognitoUpdateUserError };
|
|
62
43
|
|
|
63
44
|
//# sourceMappingURL=errors.js.map
|
package/api/domain/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"api/domain/errors.js","sources":["../../../src/api/domain/errors.ts"],"sourcesContent":["import { BaseError } from \"@webiny/feature/api\";\n\n/**\n * Error when a user already exists in Cognito User Pool\n */\nexport class CognitoAccountExistsError extends BaseError<{ email: string }> {\n override readonly code = \"Cognito/Account/Exists\" as const;\n\n constructor(email: string) {\n super({\n message: `An account with this email already exists in your Cognito User Pool.`,\n data: { email }\n });\n }\n}\n\n/**\n * Error when creating a user in Cognito fails\n */\nexport class CognitoCreateUserError extends BaseError<{ error: Error }> {\n override readonly code = \"Cognito/User/Create\" as const;\n\n constructor(error: Error) {\n super({\n message: `Failed to create user in Cognito: ${error.message}`,\n data: { error }\n });\n }\n}\n\n/**\n * Error when updating a user in Cognito fails\n */\nexport class CognitoUpdateUserError extends BaseError<{ error: Error }> {\n override readonly code = \"Cognito/User/Update\" as const;\n\n constructor(error: Error) {\n super({\n message: `Failed to update user in Cognito: ${error.message}`,\n data: { error }\n });\n }\n}\n\n/**\n * Error when deleting a user from Cognito fails\n */\nexport class CognitoDeleteUserError extends BaseError<{ error: Error }> {\n override readonly code = \"Cognito/User/Delete\" as const;\n\n constructor(error: Error) {\n super({\n message: `Failed to delete user from Cognito: ${error.message}`,\n data: { error }\n });\n }\n}\n"],"names":["CognitoAccountExistsError","BaseError","email","CognitoCreateUserError","error","CognitoUpdateUserError","CognitoDeleteUserError"],"mappings":";AAKO,MAAMA,kCAAkCC;IAG3C,YAAYC,KAAa,CAAE;QACvB,KAAK,CAAC;YACF,SAAS;YACT,MAAM;gBAAEA;YAAM;QAClB,SANc,IAAI,GAAG;IAOzB;AACJ;AAKO,MAAMC,+BAA+BF;IAGxC,YAAYG,KAAY,CAAE;QACtB,KAAK,CAAC;YACF,SAAS,CAAC,kCAAkC,EAAEA,MAAM,OAAO,EAAE;YAC7D,MAAM;gBAAEA;YAAM;QAClB,SANc,IAAI,GAAG;IAOzB;AACJ;AAKO,MAAMC,+BAA+BJ;IAGxC,YAAYG,KAAY,CAAE;QACtB,KAAK,CAAC;YACF,SAAS,CAAC,kCAAkC,EAAEA,MAAM,OAAO,EAAE;YAC7D,MAAM;gBAAEA;YAAM;QAClB,SANc,IAAI,GAAG;IAOzB;AACJ;AAKO,MAAME,+BAA+BL;IAGxC,YAAYG,KAAY,CAAE;QACtB,KAAK,CAAC;YACF,SAAS,CAAC,oCAAoC,EAAEA,MAAM,OAAO,EAAE;YAC/D,MAAM;gBAAEA;YAAM;QAClB,SANc,IAAI,GAAG;IAOzB;AACJ"}
|