@webiny/cognito 6.3.0 → 6.4.0-beta.1

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.
Files changed (148) hide show
  1. package/Cognito.js +23 -24
  2. package/Cognito.js.map +1 -1
  3. package/admin/Cognito.js +35 -41
  4. package/admin/Cognito.js.map +1 -1
  5. package/admin/CognitoLogin.js +8 -13
  6. package/admin/CognitoLogin.js.map +1 -1
  7. package/admin/Extension.js +17 -16
  8. package/admin/Extension.js.map +1 -1
  9. package/admin/SecurityPermission.js +11 -14
  10. package/admin/SecurityPermission.js.map +1 -1
  11. package/admin/domain/permissionsSchema.js +14 -9
  12. package/admin/domain/permissionsSchema.js.map +1 -1
  13. package/admin/features/permissions/abstractions.js +2 -1
  14. package/admin/features/permissions/abstractions.js.map +1 -1
  15. package/admin/features/permissions/feature.js +2 -1
  16. package/admin/features/permissions/feature.js.map +1 -1
  17. package/admin/federatedIdentityProviders.js +7 -6
  18. package/admin/federatedIdentityProviders.js.map +1 -1
  19. package/admin/presentation/Cognito/CognitoLoginScreen.js +39 -42
  20. package/admin/presentation/Cognito/CognitoLoginScreen.js.map +1 -1
  21. package/admin/presentation/Cognito/CognitoPresenter.js +250 -275
  22. package/admin/presentation/Cognito/CognitoPresenter.js.map +1 -1
  23. package/admin/presentation/Cognito/abstractions.js +2 -1
  24. package/admin/presentation/Cognito/abstractions.js.map +1 -1
  25. package/admin/presentation/Cognito/components/Divider.js +12 -13
  26. package/admin/presentation/Cognito/components/Divider.js.map +1 -1
  27. package/admin/presentation/Cognito/components/FederatedLogin.js +24 -29
  28. package/admin/presentation/Cognito/components/FederatedLogin.js.map +1 -1
  29. package/admin/presentation/Cognito/components/FederatedProviders.js +7 -10
  30. package/admin/presentation/Cognito/components/FederatedProviders.js.map +1 -1
  31. package/admin/presentation/Cognito/components/FooterSignIn.js +9 -12
  32. package/admin/presentation/Cognito/components/FooterSignIn.js.map +1 -1
  33. package/admin/presentation/Cognito/components/PasswordResetCodeSent.js +33 -37
  34. package/admin/presentation/Cognito/components/PasswordResetCodeSent.js.map +1 -1
  35. package/admin/presentation/Cognito/components/RequestPasswordResetCode.js +35 -39
  36. package/admin/presentation/Cognito/components/RequestPasswordResetCode.js.map +1 -1
  37. package/admin/presentation/Cognito/components/RequireNewPassword.js +44 -48
  38. package/admin/presentation/Cognito/components/RequireNewPassword.js.map +1 -1
  39. package/admin/presentation/Cognito/components/SetNewPassword.js +70 -71
  40. package/admin/presentation/Cognito/components/SetNewPassword.js.map +1 -1
  41. package/admin/presentation/Cognito/components/SignIn.js +52 -59
  42. package/admin/presentation/Cognito/components/SignIn.js.map +1 -1
  43. package/admin/presentation/Cognito/components/View.js +41 -60
  44. package/admin/presentation/Cognito/components/View.js.map +1 -1
  45. package/admin/presentation/Cognito/feature.js +12 -11
  46. package/admin/presentation/Cognito/feature.js.map +1 -1
  47. package/admin/presentation/shared/createPasswordValidator.js +13 -24
  48. package/admin/presentation/shared/createPasswordValidator.js.map +1 -1
  49. package/admin/presentation/shared/usePasswordValidator.js +11 -10
  50. package/admin/presentation/shared/usePasswordValidator.js.map +1 -1
  51. package/admin/presentation/userMenu/AccountDetails.js +15 -18
  52. package/admin/presentation/userMenu/AccountDetails.js.map +1 -1
  53. package/admin/presentation/userMenu/useIsDefaultTenant.js +5 -11
  54. package/admin/presentation/userMenu/useIsDefaultTenant.js.map +1 -1
  55. package/admin/routes.js +16 -17
  56. package/admin/routes.js.map +1 -1
  57. package/admin/ui/UserItem.js +0 -3
  58. package/admin/ui/components/AvatarImage/AvatarImage.js +25 -37
  59. package/admin/ui/components/AvatarImage/AvatarImage.js.map +1 -1
  60. package/admin/ui/components/AvatarImage/AvatarImagePreview.js +49 -51
  61. package/admin/ui/components/AvatarImage/AvatarImagePreview.js.map +1 -1
  62. package/admin/ui/components/AvatarImage/AvatarImageTrigger.js +25 -26
  63. package/admin/ui/components/AvatarImage/AvatarImageTrigger.js.map +1 -1
  64. package/admin/ui/components/AvatarImage/index.js +0 -2
  65. package/admin/ui/views/Account/Account.js +117 -130
  66. package/admin/ui/views/Account/Account.js.map +1 -1
  67. package/admin/ui/views/Account/graphql.js +5 -4
  68. package/admin/ui/views/Account/graphql.js.map +1 -1
  69. package/admin/ui/views/Account/index.js +0 -2
  70. package/admin/ui/views/Users/UsersDataList.js +146 -159
  71. package/admin/ui/views/Users/UsersDataList.js.map +1 -1
  72. package/admin/ui/views/Users/UsersForm.js +151 -162
  73. package/admin/ui/views/Users/UsersForm.js.map +1 -1
  74. package/admin/ui/views/Users/UsersView.js +9 -9
  75. package/admin/ui/views/Users/UsersView.js.map +1 -1
  76. package/admin/ui/views/Users/components/DeleteAction.js +23 -30
  77. package/admin/ui/views/Users/components/DeleteAction.js.map +1 -1
  78. package/admin/ui/views/Users/graphql.js +9 -10
  79. package/admin/ui/views/Users/graphql.js.map +1 -1
  80. package/admin/ui/views/Users/hooks/useUserForm.js +104 -114
  81. package/admin/ui/views/Users/hooks/useUserForm.js.map +1 -1
  82. package/admin/ui/views/Users/search.js +21 -0
  83. package/admin/ui/views/Users/search.js.map +1 -0
  84. package/admin/ui/views/utils.js +9 -7
  85. package/admin/ui/views/utils.js.map +1 -1
  86. package/api/CognitoApiFeature.js +15 -17
  87. package/api/CognitoApiFeature.js.map +1 -1
  88. package/api/domain/Username.js +5 -4
  89. package/api/domain/Username.js.map +1 -1
  90. package/api/domain/errors.js +37 -56
  91. package/api/domain/errors.js.map +1 -1
  92. package/api/features/CognitoIdp/CognitoIdentityProvider.js +49 -51
  93. package/api/features/CognitoIdp/CognitoIdentityProvider.js.map +1 -1
  94. package/api/features/CognitoIdp/abstractions.js +2 -1
  95. package/api/features/CognitoIdp/abstractions.js.map +1 -1
  96. package/api/features/CognitoIdp/feature.js +6 -5
  97. package/api/features/CognitoIdp/feature.js.map +1 -1
  98. package/api/features/CognitoIdp/index.js +0 -2
  99. package/api/features/CognitoService/CognitoService.js +93 -83
  100. package/api/features/CognitoService/CognitoService.js.map +1 -1
  101. package/api/features/CognitoService/abstractions.js +3 -5
  102. package/api/features/CognitoService/abstractions.js.map +1 -1
  103. package/api/features/CognitoService/feature.js +7 -6
  104. package/api/features/CognitoService/feature.js.map +1 -1
  105. package/api/features/CognitoService/index.js +0 -2
  106. package/api/features/CreateUser/CreateUserUseCase.js +62 -88
  107. package/api/features/CreateUser/CreateUserUseCase.js.map +1 -1
  108. package/api/features/CreateUser/abstractions.js +2 -1
  109. package/api/features/CreateUser/abstractions.js.map +1 -1
  110. package/api/features/CreateUser/feature.js +6 -5
  111. package/api/features/CreateUser/feature.js.map +1 -1
  112. package/api/features/CreateUser/index.js +0 -2
  113. package/api/features/CreateUser/schema.js +14 -13
  114. package/api/features/CreateUser/schema.js.map +1 -1
  115. package/api/features/DeleteUser/DeleteUserUseCase.js +34 -41
  116. package/api/features/DeleteUser/DeleteUserUseCase.js.map +1 -1
  117. package/api/features/DeleteUser/abstractions.js +2 -1
  118. package/api/features/DeleteUser/abstractions.js.map +1 -1
  119. package/api/features/DeleteUser/feature.js +6 -5
  120. package/api/features/DeleteUser/feature.js.map +1 -1
  121. package/api/features/DeleteUser/index.js +0 -2
  122. package/api/features/UpdateUser/UpdateUserUseCase.js +49 -71
  123. package/api/features/UpdateUser/UpdateUserUseCase.js.map +1 -1
  124. package/api/features/UpdateUser/abstractions.js +2 -1
  125. package/api/features/UpdateUser/abstractions.js.map +1 -1
  126. package/api/features/UpdateUser/feature.js +6 -5
  127. package/api/features/UpdateUser/feature.js.map +1 -1
  128. package/api/features/UpdateUser/index.js +0 -2
  129. package/api/features/UpdateUser/schema.js +13 -12
  130. package/api/features/UpdateUser/schema.js.map +1 -1
  131. package/api/features/UserInstaller/UserInstaller.js +36 -36
  132. package/api/features/UserInstaller/UserInstaller.js.map +1 -1
  133. package/api/features/UserInstaller/feature.js +6 -5
  134. package/api/features/UserInstaller/feature.js.map +1 -1
  135. package/api/graphql/user.gql.js +83 -107
  136. package/api/graphql/user.gql.js.map +1 -1
  137. package/index.js +0 -2
  138. package/package.json +23 -24
  139. package/static/svg/search.43fa797c.svg +20 -0
  140. package/admin/ui/UserItem.js.map +0 -1
  141. package/admin/ui/components/AvatarImage/index.js.map +0 -1
  142. package/admin/ui/views/Account/index.js.map +0 -1
  143. package/api/features/CognitoIdp/index.js.map +0 -1
  144. package/api/features/CognitoService/index.js.map +0 -1
  145. package/api/features/CreateUser/index.js.map +0 -1
  146. package/api/features/DeleteUser/index.js.map +0 -1
  147. package/api/features/UpdateUser/index.js.map +0 -1
  148. package/index.js.map +0 -1
@@ -1,174 +1,163 @@
1
- import React, { useMemo } from "react";
1
+ import react, { useMemo } from "react";
2
2
  import { i18n } from "@webiny/app/i18n/index.js";
3
3
  import { Form } from "@webiny/form";
4
4
  import { validation } from "@webiny/validation";
5
- import { SimpleForm, SimpleFormHeader, SimpleFormFooter, SimpleFormContent, EmptyView, RolesMultiAutocomplete, TeamsMultiAutocomplete, useAuthentication, useRouter } from "@webiny/app-admin";
6
- import { ReactComponent as AddIcon } from "@webiny/icons/add.svg";
7
- import { ReactComponent as SecurityIcon } from "@webiny/icons/gpp_maybe.svg";
8
- import { ReactComponent as SecurityTeamsIcon } from "@webiny/icons/admin_panel_settings.svg";
9
- import { ReactComponent as SettingsIcon } from "@webiny/icons/settings.svg";
10
- import { Accordion, Alert, OverlayLoader, Button, Input, Grid, Link } from "@webiny/admin-ui";
11
- import { config as appConfig } from "@webiny/app/config.js";
5
+ import { EmptyView, RolesMultiAutocomplete, SimpleForm, SimpleFormContent, SimpleFormFooter, SimpleFormHeader, TeamsMultiAutocomplete, useAuthentication, useRouter } from "@webiny/app-admin";
6
+ import { ReactComponent } from "@webiny/icons/add.svg";
7
+ import { ReactComponent as gpp_maybe_svg_ReactComponent } from "@webiny/icons/gpp_maybe.svg";
8
+ import { ReactComponent as admin_panel_settings_svg_ReactComponent } from "@webiny/icons/admin_panel_settings.svg";
9
+ import { ReactComponent as settings_svg_ReactComponent } from "@webiny/icons/settings.svg";
10
+ import { Accordion, Alert, Button, Grid, Input, Link, OverlayLoader } from "@webiny/admin-ui";
11
+ import { config } from "@webiny/app/config.js";
12
12
  import { AvatarImage } from "../../components/AvatarImage/index.js";
13
13
  import { useUserForm } from "./hooks/useUserForm.js";
14
14
  import { usePasswordValidator } from "../../../presentation/shared/usePasswordValidator.js";
15
15
  import { Routes } from "../../../routes.js";
16
16
  const t = i18n.ns("app-security-admin-users/account-form");
17
- export const UserForm = ({
18
- teams
19
- }) => {
20
- const {
21
- identity
22
- } = useAuthentication();
23
- const userForm = useUserForm();
24
- const passwordValidator = usePasswordValidator();
25
- const {
26
- getLink
27
- } = useRouter();
28
- const isExternal = userForm.user?.external === true;
29
- const formTitle = userForm.isNewUser ? "New User" : userForm.fullName;
30
- const isNewUser = userForm.isNewUser;
31
- const emailIsDisabled = appConfig.getKey("ADMIN_USER_CAN_CHANGE_EMAIL", process.env.REACT_APP_ADMIN_USER_CAN_CHANGE_EMAIL === "false");
32
- const groupValidators = useMemo(() => {
33
- return teams ? [] : [validation.create("required")];
34
- }, [teams]);
35
- const accountLink = getLink(Routes.Users.Account);
36
-
37
- // Render "No content" selected view.
38
- if (userForm.showEmptyView) {
39
- return /*#__PURE__*/React.createElement(EmptyView, {
40
- icon: /*#__PURE__*/React.createElement(SettingsIcon, null),
41
- title: t`Click on the left side list to display user details or create a...`,
42
- action: /*#__PURE__*/React.createElement(Button, {
43
- icon: /*#__PURE__*/React.createElement(AddIcon, null),
44
- text: t`New User`,
45
- "data-testid": "new-record-button",
46
- onClick: userForm.createUser
47
- })
17
+ const UserForm = ({ teams })=>{
18
+ const { identity } = useAuthentication();
19
+ const userForm = useUserForm();
20
+ const passwordValidator = usePasswordValidator();
21
+ const { getLink } = useRouter();
22
+ const isExternal = userForm.user?.external === true;
23
+ const formTitle = userForm.isNewUser ? "New User" : userForm.fullName;
24
+ const isNewUser = userForm.isNewUser;
25
+ const emailIsDisabled = config.getKey("ADMIN_USER_CAN_CHANGE_EMAIL", "false" === process.env.REACT_APP_ADMIN_USER_CAN_CHANGE_EMAIL);
26
+ const groupValidators = useMemo(()=>teams ? [] : [
27
+ validation.create("required")
28
+ ], [
29
+ teams
30
+ ]);
31
+ const accountLink = getLink(Routes.Users.Account);
32
+ if (userForm.showEmptyView) return /*#__PURE__*/ react.createElement(EmptyView, {
33
+ icon: /*#__PURE__*/ react.createElement(settings_svg_ReactComponent, null),
34
+ title: t`Click on the left side list to display user details or create a...`,
35
+ action: /*#__PURE__*/ react.createElement(Button, {
36
+ icon: /*#__PURE__*/ react.createElement(ReactComponent, null),
37
+ text: t`New User`,
38
+ "data-testid": "new-record-button",
39
+ onClick: userForm.createUser
40
+ })
48
41
  });
49
- }
50
- const isSelf = userForm.user.id === identity.id;
51
- const isDisabled = isExternal || isSelf;
52
- return /*#__PURE__*/React.createElement(Form, {
53
- data: userForm.user,
54
- onSubmit: userForm.onSubmit
55
- }, ({
56
- data,
57
- form,
58
- Bind
59
- }) => /*#__PURE__*/React.createElement(SimpleForm, {
60
- size: "lg"
61
- }, userForm.loading && /*#__PURE__*/React.createElement(OverlayLoader, null), /*#__PURE__*/React.createElement("div", {
62
- className: "mb-xl"
63
- }, /*#__PURE__*/React.createElement(Bind, {
64
- name: "avatar"
65
- }, /*#__PURE__*/React.createElement(AvatarImage, {
66
- round: true,
67
- disabled: isDisabled
68
- }))), /*#__PURE__*/React.createElement(SimpleFormHeader, {
69
- title: formTitle
70
- }), /*#__PURE__*/React.createElement(SimpleFormContent, null, isExternal && /*#__PURE__*/React.createElement(Grid, {
71
- className: "mb-lg"
72
- }, /*#__PURE__*/React.createElement(Grid.Column, {
73
- span: 12
74
- }, /*#__PURE__*/React.createElement(Alert, {
75
- type: "info",
76
- title: "External User"
77
- }, "This user is an external user and cannot be edited."))), isSelf && /*#__PURE__*/React.createElement(Grid, {
78
- className: "mb-lg"
79
- }, /*#__PURE__*/React.createElement(Grid.Column, {
80
- span: 12
81
- }, /*#__PURE__*/React.createElement(Alert, {
82
- type: "info",
83
- title: "Own Profile"
84
- }, "You cannot edit your own profile using this form. Please use the ", /*#__PURE__*/React.createElement(Link, {
85
- to: accountLink
86
- }, "account settings"), " instead."))), /*#__PURE__*/React.createElement(Accordion, {
87
- variant: "underline"
88
- }, /*#__PURE__*/React.createElement(Accordion.Item, {
89
- title: "Bio",
90
- description: "Account information",
91
- icon: /*#__PURE__*/React.createElement(SettingsIcon, null),
92
- defaultOpen: true
93
- }, /*#__PURE__*/React.createElement(Grid, null, /*#__PURE__*/React.createElement(Grid.Column, {
94
- span: 12
95
- }, /*#__PURE__*/React.createElement(Bind, {
96
- name: "firstName",
97
- validators: validation.create("required")
98
- }, /*#__PURE__*/React.createElement(Input, {
99
- label: t`First Name`,
100
- disabled: isDisabled,
101
- "data-testid": "account.firstname"
102
- }))), /*#__PURE__*/React.createElement(Grid.Column, {
103
- span: 12
104
- }, /*#__PURE__*/React.createElement(Bind, {
105
- name: "lastName",
106
- validators: validation.create("required")
107
- }, /*#__PURE__*/React.createElement(Input, {
108
- label: t`Last Name`,
109
- disabled: isDisabled,
110
- "data-testid": "account.lastname"
111
- }))), /*#__PURE__*/React.createElement(Grid.Column, {
112
- span: 12
113
- }, /*#__PURE__*/React.createElement(Bind, {
114
- name: "email",
115
- validators: validation.create("required,email")
116
- }, /*#__PURE__*/React.createElement(Input, {
117
- value: data.email,
118
- label: t`Email`,
119
- disabled: emailIsDisabled || isDisabled,
120
- "data-testid": "account.email",
121
- autoComplete: "new-password",
122
- description: "Email is your unique identifier used to login!"
123
- }))), /*#__PURE__*/React.createElement(Grid.Column, {
124
- span: 12
125
- }, /*#__PURE__*/React.createElement(Bind, {
126
- name: "password",
127
- validators: passwordValidator
128
- }, /*#__PURE__*/React.createElement(Input, {
129
- autoComplete: "new-password",
130
- disabled: isDisabled,
131
- description: data.id && "Type a new password to reset it.",
132
- type: "password",
133
- label: "Password",
134
- "data-testid": "account.password"
135
- }))))), /*#__PURE__*/React.createElement(Accordion.Item, {
136
- title: "Roles",
137
- description: "Assign to security roles",
138
- icon: /*#__PURE__*/React.createElement(SecurityIcon, null)
139
- }, /*#__PURE__*/React.createElement(Grid, null, /*#__PURE__*/React.createElement(Grid.Column, {
140
- span: 12
141
- }, /*#__PURE__*/React.createElement(Bind, {
142
- name: "roles",
143
- validators: groupValidators
144
- }, /*#__PURE__*/React.createElement(RolesMultiAutocomplete, {
145
- label: "Roles",
146
- "data-testid": "roles-autocomplete",
147
- disabled: isDisabled
148
- }))))), teams ? /*#__PURE__*/React.createElement(Accordion.Item, {
149
- title: "Teams",
150
- description: "Assign to teams",
151
- icon: /*#__PURE__*/React.createElement(SecurityTeamsIcon, null)
152
- }, /*#__PURE__*/React.createElement(Grid, null, /*#__PURE__*/React.createElement(Grid.Column, {
153
- span: 12
154
- }, /*#__PURE__*/React.createElement(Bind, {
155
- name: "teams"
156
- }, /*#__PURE__*/React.createElement(TeamsMultiAutocomplete, {
157
- label: "Teams",
158
- "data-testid": "teams-autocomplete",
159
- disabled: isDisabled
160
- }))))) : null)), /*#__PURE__*/React.createElement(SimpleFormFooter, {
161
- "data-testid": "form-footer"
162
- }, /*#__PURE__*/React.createElement(Button, {
163
- variant: "secondary",
164
- text: t`Cancel`,
165
- onClick: userForm.cancelEditing
166
- }), /*#__PURE__*/React.createElement(Button, {
167
- variant: "primary",
168
- text: isNewUser ? t`Create user` : t`Update user`,
169
- disabled: isDisabled,
170
- onClick: form.submit
171
- }))));
42
+ const isSelf = userForm.user.id === identity.id;
43
+ const isDisabled = isExternal || isSelf;
44
+ return /*#__PURE__*/ react.createElement(Form, {
45
+ data: userForm.user,
46
+ onSubmit: userForm.onSubmit
47
+ }, ({ data, form, Bind })=>/*#__PURE__*/ react.createElement(SimpleForm, {
48
+ size: "lg"
49
+ }, userForm.loading && /*#__PURE__*/ react.createElement(OverlayLoader, null), /*#__PURE__*/ react.createElement("div", {
50
+ className: "mb-xl"
51
+ }, /*#__PURE__*/ react.createElement(Bind, {
52
+ name: "avatar"
53
+ }, /*#__PURE__*/ react.createElement(AvatarImage, {
54
+ round: true,
55
+ disabled: isDisabled
56
+ }))), /*#__PURE__*/ react.createElement(SimpleFormHeader, {
57
+ title: formTitle
58
+ }), /*#__PURE__*/ react.createElement(SimpleFormContent, null, isExternal && /*#__PURE__*/ react.createElement(Grid, {
59
+ className: "mb-lg"
60
+ }, /*#__PURE__*/ react.createElement(Grid.Column, {
61
+ span: 12
62
+ }, /*#__PURE__*/ react.createElement(Alert, {
63
+ type: "info",
64
+ title: "External User"
65
+ }, "This user is an external user and cannot be edited."))), isSelf && /*#__PURE__*/ react.createElement(Grid, {
66
+ className: "mb-lg"
67
+ }, /*#__PURE__*/ react.createElement(Grid.Column, {
68
+ span: 12
69
+ }, /*#__PURE__*/ react.createElement(Alert, {
70
+ type: "info",
71
+ title: "Own Profile"
72
+ }, "You cannot edit your own profile using this form. Please use the ", /*#__PURE__*/ react.createElement(Link, {
73
+ to: accountLink
74
+ }, "account settings"), " instead."))), /*#__PURE__*/ react.createElement(Accordion, {
75
+ variant: "underline"
76
+ }, /*#__PURE__*/ react.createElement(Accordion.Item, {
77
+ title: "Bio",
78
+ description: "Account information",
79
+ icon: /*#__PURE__*/ react.createElement(settings_svg_ReactComponent, null),
80
+ defaultOpen: true
81
+ }, /*#__PURE__*/ react.createElement(Grid, null, /*#__PURE__*/ react.createElement(Grid.Column, {
82
+ span: 12
83
+ }, /*#__PURE__*/ react.createElement(Bind, {
84
+ name: "firstName",
85
+ validators: validation.create("required")
86
+ }, /*#__PURE__*/ react.createElement(Input, {
87
+ label: t`First Name`,
88
+ disabled: isDisabled,
89
+ "data-testid": "account.firstname"
90
+ }))), /*#__PURE__*/ react.createElement(Grid.Column, {
91
+ span: 12
92
+ }, /*#__PURE__*/ react.createElement(Bind, {
93
+ name: "lastName",
94
+ validators: validation.create("required")
95
+ }, /*#__PURE__*/ react.createElement(Input, {
96
+ label: t`Last Name`,
97
+ disabled: isDisabled,
98
+ "data-testid": "account.lastname"
99
+ }))), /*#__PURE__*/ react.createElement(Grid.Column, {
100
+ span: 12
101
+ }, /*#__PURE__*/ react.createElement(Bind, {
102
+ name: "email",
103
+ validators: validation.create("required,email")
104
+ }, /*#__PURE__*/ react.createElement(Input, {
105
+ value: data.email,
106
+ label: t`Email`,
107
+ disabled: emailIsDisabled || isDisabled,
108
+ "data-testid": "account.email",
109
+ autoComplete: "new-password",
110
+ description: "Email is your unique identifier used to login!"
111
+ }))), /*#__PURE__*/ react.createElement(Grid.Column, {
112
+ span: 12
113
+ }, /*#__PURE__*/ react.createElement(Bind, {
114
+ name: "password",
115
+ validators: passwordValidator
116
+ }, /*#__PURE__*/ react.createElement(Input, {
117
+ autoComplete: "new-password",
118
+ disabled: isDisabled,
119
+ description: data.id && "Type a new password to reset it.",
120
+ type: "password",
121
+ label: "Password",
122
+ "data-testid": "account.password"
123
+ }))))), /*#__PURE__*/ react.createElement(Accordion.Item, {
124
+ title: "Roles",
125
+ description: "Assign to security roles",
126
+ icon: /*#__PURE__*/ react.createElement(gpp_maybe_svg_ReactComponent, null)
127
+ }, /*#__PURE__*/ react.createElement(Grid, null, /*#__PURE__*/ react.createElement(Grid.Column, {
128
+ span: 12
129
+ }, /*#__PURE__*/ react.createElement(Bind, {
130
+ name: "roles",
131
+ validators: groupValidators
132
+ }, /*#__PURE__*/ react.createElement(RolesMultiAutocomplete, {
133
+ label: "Roles",
134
+ "data-testid": "roles-autocomplete",
135
+ disabled: isDisabled
136
+ }))))), teams ? /*#__PURE__*/ react.createElement(Accordion.Item, {
137
+ title: "Teams",
138
+ description: "Assign to teams",
139
+ icon: /*#__PURE__*/ react.createElement(admin_panel_settings_svg_ReactComponent, null)
140
+ }, /*#__PURE__*/ react.createElement(Grid, null, /*#__PURE__*/ react.createElement(Grid.Column, {
141
+ span: 12
142
+ }, /*#__PURE__*/ react.createElement(Bind, {
143
+ name: "teams"
144
+ }, /*#__PURE__*/ react.createElement(TeamsMultiAutocomplete, {
145
+ label: "Teams",
146
+ "data-testid": "teams-autocomplete",
147
+ disabled: isDisabled
148
+ }))))) : null)), /*#__PURE__*/ react.createElement(SimpleFormFooter, {
149
+ "data-testid": "form-footer"
150
+ }, /*#__PURE__*/ react.createElement(Button, {
151
+ variant: "secondary",
152
+ text: t`Cancel`,
153
+ onClick: userForm.cancelEditing
154
+ }), /*#__PURE__*/ react.createElement(Button, {
155
+ variant: "primary",
156
+ text: isNewUser ? t`Create user` : t`Update user`,
157
+ disabled: isDisabled,
158
+ onClick: form.submit
159
+ }))));
172
160
  };
161
+ export { UserForm };
173
162
 
174
163
  //# sourceMappingURL=UsersForm.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","useMemo","i18n","Form","validation","SimpleForm","SimpleFormHeader","SimpleFormFooter","SimpleFormContent","EmptyView","RolesMultiAutocomplete","TeamsMultiAutocomplete","useAuthentication","useRouter","ReactComponent","AddIcon","SecurityIcon","SecurityTeamsIcon","SettingsIcon","Accordion","Alert","OverlayLoader","Button","Input","Grid","Link","config","appConfig","AvatarImage","useUserForm","usePasswordValidator","Routes","t","ns","UserForm","teams","identity","userForm","passwordValidator","getLink","isExternal","user","external","formTitle","isNewUser","fullName","emailIsDisabled","getKey","process","env","REACT_APP_ADMIN_USER_CAN_CHANGE_EMAIL","groupValidators","create","accountLink","Users","Account","showEmptyView","createElement","icon","title","action","text","onClick","createUser","isSelf","id","isDisabled","data","onSubmit","form","Bind","size","loading","className","name","round","disabled","Column","span","type","to","variant","Item","description","defaultOpen","validators","label","value","email","autoComplete","cancelEditing","submit"],"sources":["UsersForm.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\nimport { i18n } from \"@webiny/app/i18n/index.js\";\nimport { Form } from \"@webiny/form\";\nimport { validation } from \"@webiny/validation\";\nimport {\n SimpleForm,\n SimpleFormHeader,\n SimpleFormFooter,\n SimpleFormContent,\n EmptyView,\n RolesMultiAutocomplete,\n TeamsMultiAutocomplete,\n useAuthentication,\n useRouter\n} from \"@webiny/app-admin\";\nimport { ReactComponent as AddIcon } from \"@webiny/icons/add.svg\";\nimport { ReactComponent as SecurityIcon } from \"@webiny/icons/gpp_maybe.svg\";\nimport { ReactComponent as SecurityTeamsIcon } from \"@webiny/icons/admin_panel_settings.svg\";\nimport { ReactComponent as SettingsIcon } from \"@webiny/icons/settings.svg\";\nimport { Accordion, Alert, OverlayLoader, Button, Input, Grid, Link } from \"@webiny/admin-ui\";\nimport { config as appConfig } from \"@webiny/app/config.js\";\nimport { AvatarImage } from \"../../components/AvatarImage/index.js\";\nimport { useUserForm } from \"~/admin/ui/views/Users/hooks/useUserForm.js\";\nimport { usePasswordValidator } from \"~/admin/presentation/shared/usePasswordValidator.js\";\nimport { Routes } from \"~/admin/routes.js\";\n\nconst t = i18n.ns(\"app-security-admin-users/account-form\");\n\nexport interface UserFormProps {\n teams: boolean;\n}\n\nexport const UserForm = ({ teams }: UserFormProps) => {\n const { identity } = useAuthentication();\n const userForm = useUserForm();\n const passwordValidator = usePasswordValidator();\n const { getLink } = useRouter();\n\n const isExternal = userForm.user?.external === true;\n const formTitle = userForm.isNewUser ? \"New User\" : userForm.fullName;\n const isNewUser = userForm.isNewUser;\n\n const emailIsDisabled = appConfig.getKey(\n \"ADMIN_USER_CAN_CHANGE_EMAIL\",\n process.env.REACT_APP_ADMIN_USER_CAN_CHANGE_EMAIL === \"false\"\n );\n\n const groupValidators = useMemo(() => {\n return teams ? [] : [validation.create(\"required\")];\n }, [teams]);\n\n const accountLink = getLink(Routes.Users.Account);\n\n // Render \"No content\" selected view.\n if (userForm.showEmptyView) {\n return (\n <EmptyView\n icon={<SettingsIcon />}\n title={t`Click on the left side list to display user details or create a...`}\n action={\n <Button\n icon={<AddIcon />}\n text={t`New User`}\n data-testid=\"new-record-button\"\n onClick={userForm.createUser}\n />\n }\n />\n );\n }\n\n const isSelf = userForm.user.id === identity.id;\n const isDisabled = isExternal || isSelf;\n\n return (\n <Form data={userForm.user} onSubmit={userForm.onSubmit}>\n {({ data, form, Bind }) => (\n <SimpleForm size={\"lg\"}>\n {userForm.loading && <OverlayLoader />}\n <div className={\"mb-xl\"}>\n <Bind name=\"avatar\">\n <AvatarImage round disabled={isDisabled} />\n </Bind>\n </div>\n <SimpleFormHeader title={formTitle} />\n <SimpleFormContent>\n {isExternal && (\n <Grid className={\"mb-lg\"}>\n <Grid.Column span={12}>\n <Alert type={\"info\"} title={\"External User\"}>\n This user is an external user and cannot be edited.\n </Alert>\n </Grid.Column>\n </Grid>\n )}\n {isSelf && (\n <Grid className={\"mb-lg\"}>\n <Grid.Column span={12}>\n <Alert type={\"info\"} title={\"Own Profile\"}>\n You cannot edit your own profile using this form. Please use\n the <Link to={accountLink}>account settings</Link> instead.\n </Alert>\n </Grid.Column>\n </Grid>\n )}\n <Accordion variant={\"underline\"}>\n <Accordion.Item\n title={\"Bio\"}\n description={\"Account information\"}\n icon={<SettingsIcon />}\n defaultOpen={true}\n >\n <Grid>\n <Grid.Column span={12}>\n <Bind\n name=\"firstName\"\n validators={validation.create(\"required\")}\n >\n <Input\n label={t`First Name`}\n disabled={isDisabled}\n data-testid=\"account.firstname\"\n />\n </Bind>\n </Grid.Column>\n <Grid.Column span={12}>\n <Bind\n name=\"lastName\"\n validators={validation.create(\"required\")}\n >\n <Input\n label={t`Last Name`}\n disabled={isDisabled}\n data-testid=\"account.lastname\"\n />\n </Bind>\n </Grid.Column>\n <Grid.Column span={12}>\n <Bind\n name=\"email\"\n validators={validation.create(\"required,email\")}\n >\n <Input\n value={data.email}\n label={t`Email`}\n disabled={emailIsDisabled || isDisabled}\n data-testid=\"account.email\"\n autoComplete=\"new-password\"\n description={\n \"Email is your unique identifier used to login!\"\n }\n />\n </Bind>\n </Grid.Column>\n <Grid.Column span={12}>\n <Bind name=\"password\" validators={passwordValidator}>\n <Input\n autoComplete=\"new-password\"\n disabled={isDisabled}\n description={\n data.id && \"Type a new password to reset it.\"\n }\n type=\"password\"\n label={\"Password\"}\n data-testid=\"account.password\"\n />\n </Bind>\n </Grid.Column>\n </Grid>\n </Accordion.Item>\n <Accordion.Item\n title={\"Roles\"}\n description={\"Assign to security roles\"}\n icon={<SecurityIcon />}\n >\n <Grid>\n <Grid.Column span={12}>\n <Bind name={\"roles\"} validators={groupValidators}>\n <RolesMultiAutocomplete\n label={\"Roles\"}\n data-testid=\"roles-autocomplete\"\n disabled={isDisabled}\n />\n </Bind>\n </Grid.Column>\n </Grid>\n </Accordion.Item>\n {teams ? (\n <Accordion.Item\n title={\"Teams\"}\n description={\"Assign to teams\"}\n icon={<SecurityTeamsIcon />}\n >\n <Grid>\n <Grid.Column span={12}>\n <Bind name={\"teams\"}>\n <TeamsMultiAutocomplete\n label={\"Teams\"}\n data-testid=\"teams-autocomplete\"\n disabled={isDisabled}\n />\n </Bind>\n </Grid.Column>\n </Grid>\n </Accordion.Item>\n ) : null}\n </Accordion>\n </SimpleFormContent>\n <SimpleFormFooter data-testid={\"form-footer\"}>\n <Button\n variant={\"secondary\"}\n text={t`Cancel`}\n onClick={userForm.cancelEditing}\n />\n <Button\n variant={\"primary\"}\n text={isNewUser ? t`Create user` : t`Update user`}\n disabled={isDisabled}\n onClick={form.submit}\n />\n </SimpleFormFooter>\n </SimpleForm>\n )}\n </Form>\n );\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"admin/ui/views/Users/UsersForm.js","sources":["../../../../../src/admin/ui/views/Users/UsersForm.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\nimport { i18n } from \"@webiny/app/i18n/index.js\";\nimport { Form } from \"@webiny/form\";\nimport { validation } from \"@webiny/validation\";\nimport {\n SimpleForm,\n SimpleFormHeader,\n SimpleFormFooter,\n SimpleFormContent,\n EmptyView,\n RolesMultiAutocomplete,\n TeamsMultiAutocomplete,\n useAuthentication,\n useRouter\n} from \"@webiny/app-admin\";\nimport { ReactComponent as AddIcon } from \"@webiny/icons/add.svg\";\nimport { ReactComponent as SecurityIcon } from \"@webiny/icons/gpp_maybe.svg\";\nimport { ReactComponent as SecurityTeamsIcon } from \"@webiny/icons/admin_panel_settings.svg\";\nimport { ReactComponent as SettingsIcon } from \"@webiny/icons/settings.svg\";\nimport { Accordion, Alert, OverlayLoader, Button, Input, Grid, Link } from \"@webiny/admin-ui\";\nimport { config as appConfig } from \"@webiny/app/config.js\";\nimport { AvatarImage } from \"../../components/AvatarImage/index.js\";\nimport { useUserForm } from \"~/admin/ui/views/Users/hooks/useUserForm.js\";\nimport { usePasswordValidator } from \"~/admin/presentation/shared/usePasswordValidator.js\";\nimport { Routes } from \"~/admin/routes.js\";\n\nconst t = i18n.ns(\"app-security-admin-users/account-form\");\n\nexport interface UserFormProps {\n teams: boolean;\n}\n\nexport const UserForm = ({ teams }: UserFormProps) => {\n const { identity } = useAuthentication();\n const userForm = useUserForm();\n const passwordValidator = usePasswordValidator();\n const { getLink } = useRouter();\n\n const isExternal = userForm.user?.external === true;\n const formTitle = userForm.isNewUser ? \"New User\" : userForm.fullName;\n const isNewUser = userForm.isNewUser;\n\n const emailIsDisabled = appConfig.getKey(\n \"ADMIN_USER_CAN_CHANGE_EMAIL\",\n process.env.REACT_APP_ADMIN_USER_CAN_CHANGE_EMAIL === \"false\"\n );\n\n const groupValidators = useMemo(() => {\n return teams ? [] : [validation.create(\"required\")];\n }, [teams]);\n\n const accountLink = getLink(Routes.Users.Account);\n\n // Render \"No content\" selected view.\n if (userForm.showEmptyView) {\n return (\n <EmptyView\n icon={<SettingsIcon />}\n title={t`Click on the left side list to display user details or create a...`}\n action={\n <Button\n icon={<AddIcon />}\n text={t`New User`}\n data-testid=\"new-record-button\"\n onClick={userForm.createUser}\n />\n }\n />\n );\n }\n\n const isSelf = userForm.user.id === identity.id;\n const isDisabled = isExternal || isSelf;\n\n return (\n <Form data={userForm.user} onSubmit={userForm.onSubmit}>\n {({ data, form, Bind }) => (\n <SimpleForm size={\"lg\"}>\n {userForm.loading && <OverlayLoader />}\n <div className={\"mb-xl\"}>\n <Bind name=\"avatar\">\n <AvatarImage round disabled={isDisabled} />\n </Bind>\n </div>\n <SimpleFormHeader title={formTitle} />\n <SimpleFormContent>\n {isExternal && (\n <Grid className={\"mb-lg\"}>\n <Grid.Column span={12}>\n <Alert type={\"info\"} title={\"External User\"}>\n This user is an external user and cannot be edited.\n </Alert>\n </Grid.Column>\n </Grid>\n )}\n {isSelf && (\n <Grid className={\"mb-lg\"}>\n <Grid.Column span={12}>\n <Alert type={\"info\"} title={\"Own Profile\"}>\n You cannot edit your own profile using this form. Please use\n the <Link to={accountLink}>account settings</Link> instead.\n </Alert>\n </Grid.Column>\n </Grid>\n )}\n <Accordion variant={\"underline\"}>\n <Accordion.Item\n title={\"Bio\"}\n description={\"Account information\"}\n icon={<SettingsIcon />}\n defaultOpen={true}\n >\n <Grid>\n <Grid.Column span={12}>\n <Bind\n name=\"firstName\"\n validators={validation.create(\"required\")}\n >\n <Input\n label={t`First Name`}\n disabled={isDisabled}\n data-testid=\"account.firstname\"\n />\n </Bind>\n </Grid.Column>\n <Grid.Column span={12}>\n <Bind\n name=\"lastName\"\n validators={validation.create(\"required\")}\n >\n <Input\n label={t`Last Name`}\n disabled={isDisabled}\n data-testid=\"account.lastname\"\n />\n </Bind>\n </Grid.Column>\n <Grid.Column span={12}>\n <Bind\n name=\"email\"\n validators={validation.create(\"required,email\")}\n >\n <Input\n value={data.email}\n label={t`Email`}\n disabled={emailIsDisabled || isDisabled}\n data-testid=\"account.email\"\n autoComplete=\"new-password\"\n description={\n \"Email is your unique identifier used to login!\"\n }\n />\n </Bind>\n </Grid.Column>\n <Grid.Column span={12}>\n <Bind name=\"password\" validators={passwordValidator}>\n <Input\n autoComplete=\"new-password\"\n disabled={isDisabled}\n description={\n data.id && \"Type a new password to reset it.\"\n }\n type=\"password\"\n label={\"Password\"}\n data-testid=\"account.password\"\n />\n </Bind>\n </Grid.Column>\n </Grid>\n </Accordion.Item>\n <Accordion.Item\n title={\"Roles\"}\n description={\"Assign to security roles\"}\n icon={<SecurityIcon />}\n >\n <Grid>\n <Grid.Column span={12}>\n <Bind name={\"roles\"} validators={groupValidators}>\n <RolesMultiAutocomplete\n label={\"Roles\"}\n data-testid=\"roles-autocomplete\"\n disabled={isDisabled}\n />\n </Bind>\n </Grid.Column>\n </Grid>\n </Accordion.Item>\n {teams ? (\n <Accordion.Item\n title={\"Teams\"}\n description={\"Assign to teams\"}\n icon={<SecurityTeamsIcon />}\n >\n <Grid>\n <Grid.Column span={12}>\n <Bind name={\"teams\"}>\n <TeamsMultiAutocomplete\n label={\"Teams\"}\n data-testid=\"teams-autocomplete\"\n disabled={isDisabled}\n />\n </Bind>\n </Grid.Column>\n </Grid>\n </Accordion.Item>\n ) : null}\n </Accordion>\n </SimpleFormContent>\n <SimpleFormFooter data-testid={\"form-footer\"}>\n <Button\n variant={\"secondary\"}\n text={t`Cancel`}\n onClick={userForm.cancelEditing}\n />\n <Button\n variant={\"primary\"}\n text={isNewUser ? t`Create user` : t`Update user`}\n disabled={isDisabled}\n onClick={form.submit}\n />\n </SimpleFormFooter>\n </SimpleForm>\n )}\n </Form>\n );\n};\n"],"names":["t","i18n","UserForm","teams","identity","useAuthentication","userForm","useUserForm","passwordValidator","usePasswordValidator","getLink","useRouter","isExternal","formTitle","isNewUser","emailIsDisabled","appConfig","process","groupValidators","useMemo","validation","accountLink","Routes","EmptyView","SettingsIcon","Button","AddIcon","isSelf","isDisabled","Form","data","form","Bind","SimpleForm","OverlayLoader","AvatarImage","SimpleFormHeader","SimpleFormContent","Grid","Alert","Link","Accordion","Input","SecurityIcon","RolesMultiAutocomplete","SecurityTeamsIcon","TeamsMultiAutocomplete","SimpleFormFooter"],"mappings":"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"}
@@ -1,14 +1,14 @@
1
- import React from "react";
2
- import { LeftPanel, RightPanel, SplitView } from "@webiny/app-admin";
1
+ import react from "react";
2
+ import { LeftPanel, RightPanel, SplitView, useWcp } from "@webiny/app-admin";
3
3
  import UsersDataList from "./UsersDataList.js";
4
- import { useWcp } from "@webiny/app-admin";
5
4
  import { UserForm } from "./UsersForm.js";
6
- export const UsersView = () => {
7
- const wcp = useWcp();
8
- const teams = wcp.canUseTeams();
9
- return /*#__PURE__*/React.createElement(SplitView, null, /*#__PURE__*/React.createElement(LeftPanel, null, /*#__PURE__*/React.createElement(UsersDataList, null)), /*#__PURE__*/React.createElement(RightPanel, null, /*#__PURE__*/React.createElement(UserForm, {
10
- teams: teams
11
- })));
5
+ const UsersView = ()=>{
6
+ const wcp = useWcp();
7
+ const teams = wcp.canUseTeams();
8
+ return /*#__PURE__*/ react.createElement(SplitView, null, /*#__PURE__*/ react.createElement(LeftPanel, null, /*#__PURE__*/ react.createElement(UsersDataList, null)), /*#__PURE__*/ react.createElement(RightPanel, null, /*#__PURE__*/ react.createElement(UserForm, {
9
+ teams: teams
10
+ })));
12
11
  };
12
+ export { UsersView };
13
13
 
14
14
  //# sourceMappingURL=UsersView.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","LeftPanel","RightPanel","SplitView","UsersDataList","useWcp","UserForm","UsersView","wcp","teams","canUseTeams","createElement"],"sources":["UsersView.tsx"],"sourcesContent":["import React from \"react\";\nimport { LeftPanel, RightPanel, SplitView } from \"@webiny/app-admin\";\nimport UsersDataList from \"~/admin/ui/views/Users/UsersDataList.js\";\nimport { useWcp } from \"@webiny/app-admin\";\nimport { UserForm } from \"./UsersForm.js\";\n\nexport const UsersView = () => {\n const wcp = useWcp();\n\n const teams = wcp.canUseTeams();\n\n return (\n <SplitView>\n <LeftPanel>\n <UsersDataList />\n </LeftPanel>\n <RightPanel>\n <UserForm teams={teams} />\n </RightPanel>\n </SplitView>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,SAAS,EAAEC,UAAU,EAAEC,SAAS,QAAQ,mBAAmB;AACpE,OAAOC,aAAa;AACpB,SAASC,MAAM,QAAQ,mBAAmB;AAC1C,SAASC,QAAQ;AAEjB,OAAO,MAAMC,SAAS,GAAGA,CAAA,KAAM;EAC3B,MAAMC,GAAG,GAAGH,MAAM,CAAC,CAAC;EAEpB,MAAMI,KAAK,GAAGD,GAAG,CAACE,WAAW,CAAC,CAAC;EAE/B,oBACIV,KAAA,CAAAW,aAAA,CAACR,SAAS,qBACNH,KAAA,CAAAW,aAAA,CAACV,SAAS,qBACND,KAAA,CAAAW,aAAA,CAACP,aAAa,MAAE,CACT,CAAC,eACZJ,KAAA,CAAAW,aAAA,CAACT,UAAU,qBACPF,KAAA,CAAAW,aAAA,CAACL,QAAQ;IAACG,KAAK,EAAEA;EAAM,CAAE,CACjB,CACL,CAAC;AAEpB,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"admin/ui/views/Users/UsersView.js","sources":["../../../../../src/admin/ui/views/Users/UsersView.tsx"],"sourcesContent":["import React from \"react\";\nimport { LeftPanel, RightPanel, SplitView } from \"@webiny/app-admin\";\nimport UsersDataList from \"~/admin/ui/views/Users/UsersDataList.js\";\nimport { useWcp } from \"@webiny/app-admin\";\nimport { UserForm } from \"./UsersForm.js\";\n\nexport const UsersView = () => {\n const wcp = useWcp();\n\n const teams = wcp.canUseTeams();\n\n return (\n <SplitView>\n <LeftPanel>\n <UsersDataList />\n </LeftPanel>\n <RightPanel>\n <UserForm teams={teams} />\n </RightPanel>\n </SplitView>\n );\n};\n"],"names":["UsersView","wcp","useWcp","teams","SplitView","LeftPanel","UsersDataList","RightPanel","UserForm"],"mappings":";;;;AAMO,MAAMA,YAAY;IACrB,MAAMC,MAAMC;IAEZ,MAAMC,QAAQF,IAAI,WAAW;IAE7B,OAAO,WAAP,GACI,oBAACG,WAASA,MAAAA,WAAAA,GACN,oBAACC,WAASA,MAAAA,WAAAA,GACN,oBAACC,eAAaA,QAAAA,WAAAA,GAElB,oBAACC,YAAUA,MAAAA,WAAAA,GACP,oBAACC,UAAQA;QAAC,OAAOL;;AAIjC"}
@@ -1,36 +1,29 @@
1
- import React from "react";
1
+ import react from "react";
2
2
  import { i18n } from "@webiny/app/i18n/index.js";
3
3
  import { useSecurity } from "@webiny/app-admin";
4
- import { Tooltip } from "@webiny/ui/Tooltip/index.js";
5
- import { DeleteIcon } from "@webiny/ui/List/DataList/icons/index.js";
4
+ import { DeleteIcon, Tooltip } from "@webiny/admin-ui";
6
5
  const t = i18n.ns("app-identity/admin/users/data-list");
7
- export const DeleteAction = ({
8
- item,
9
- onClick
10
- }) => {
11
- const {
12
- identity
13
- } = useSecurity();
14
- if (identity.id === item.id) {
15
- return /*#__PURE__*/React.createElement(Tooltip, {
16
- placement: "bottom",
17
- content: /*#__PURE__*/React.createElement("span", null, t`You can't delete your own user account.`)
18
- }, /*#__PURE__*/React.createElement(DeleteIcon, {
19
- disabled: true
20
- }));
21
- }
22
- if (item.external) {
23
- return /*#__PURE__*/React.createElement(Tooltip, {
24
- placement: "bottom",
25
- content: /*#__PURE__*/React.createElement("span", null, t`You can't delete external users.`)
26
- }, /*#__PURE__*/React.createElement(DeleteIcon, {
27
- disabled: true
28
- }));
29
- }
30
- return /*#__PURE__*/React.createElement(DeleteIcon, {
31
- onClick: onClick,
32
- "data-testid": "default-data-list.delete"
33
- });
6
+ const DeleteAction = ({ item, onClick })=>{
7
+ const { identity } = useSecurity();
8
+ if (identity.id === item.id) return /*#__PURE__*/ react.createElement(Tooltip, {
9
+ side: "bottom",
10
+ content: /*#__PURE__*/ react.createElement("span", null, t`You can't delete your own user account.`),
11
+ trigger: /*#__PURE__*/ react.createElement(DeleteIcon, {
12
+ disabled: true
13
+ })
14
+ });
15
+ if (item.external) return /*#__PURE__*/ react.createElement(Tooltip, {
16
+ side: "bottom",
17
+ content: /*#__PURE__*/ react.createElement("span", null, t`You can't delete external users.`),
18
+ trigger: /*#__PURE__*/ react.createElement(DeleteIcon, {
19
+ disabled: true
20
+ })
21
+ });
22
+ return /*#__PURE__*/ react.createElement(DeleteIcon, {
23
+ onClick: onClick,
24
+ "data-testid": "default-data-list.delete"
25
+ });
34
26
  };
27
+ export { DeleteAction };
35
28
 
36
29
  //# sourceMappingURL=DeleteAction.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","i18n","useSecurity","Tooltip","DeleteIcon","t","ns","DeleteAction","item","onClick","identity","id","createElement","placement","content","disabled","external"],"sources":["DeleteAction.tsx"],"sourcesContent":["import React from \"react\";\nimport { i18n } from \"@webiny/app/i18n/index.js\";\nimport { useSecurity } from \"@webiny/app-admin\";\nimport { Tooltip } from \"@webiny/ui/Tooltip/index.js\";\nimport { DeleteIcon } from \"@webiny/ui/List/DataList/icons/index.js\";\nimport type { UserItem } from \"~/admin/ui/UserItem.js\";\n\nconst t = i18n.ns(\"app-identity/admin/users/data-list\");\n\nexport interface DeleteActionProps {\n item: UserItem;\n onClick: () => void;\n}\n\nexport const DeleteAction = ({ item, onClick }: DeleteActionProps) => {\n const { identity } = useSecurity();\n\n if (identity.id === item.id) {\n return (\n <Tooltip\n placement={\"bottom\"}\n content={<span>{t`You can't delete your own user account.`}</span>}\n >\n <DeleteIcon disabled />\n </Tooltip>\n );\n }\n\n if (item.external) {\n return (\n <Tooltip\n placement={\"bottom\"}\n content={<span>{t`You can't delete external users.`}</span>}\n >\n <DeleteIcon disabled />\n </Tooltip>\n );\n }\n\n return <DeleteIcon onClick={onClick} data-testid={\"default-data-list.delete\"} />;\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,IAAI,QAAQ,2BAA2B;AAChD,SAASC,WAAW,QAAQ,mBAAmB;AAC/C,SAASC,OAAO,QAAQ,6BAA6B;AACrD,SAASC,UAAU,QAAQ,yCAAyC;AAGpE,MAAMC,CAAC,GAAGJ,IAAI,CAACK,EAAE,CAAC,oCAAoC,CAAC;AAOvD,OAAO,MAAMC,YAAY,GAAGA,CAAC;EAAEC,IAAI;EAAEC;AAA2B,CAAC,KAAK;EAClE,MAAM;IAAEC;EAAS,CAAC,GAAGR,WAAW,CAAC,CAAC;EAElC,IAAIQ,QAAQ,CAACC,EAAE,KAAKH,IAAI,CAACG,EAAE,EAAE;IACzB,oBACIX,KAAA,CAAAY,aAAA,CAACT,OAAO;MACJU,SAAS,EAAE,QAAS;MACpBC,OAAO,eAAEd,KAAA,CAAAY,aAAA,eAAOP,CAAC,yCAAgD;IAAE,gBAEnEL,KAAA,CAAAY,aAAA,CAACR,UAAU;MAACW,QAAQ;IAAA,CAAE,CACjB,CAAC;EAElB;EAEA,IAAIP,IAAI,CAACQ,QAAQ,EAAE;IACf,oBACIhB,KAAA,CAAAY,aAAA,CAACT,OAAO;MACJU,SAAS,EAAE,QAAS;MACpBC,OAAO,eAAEd,KAAA,CAAAY,aAAA,eAAOP,CAAC,kCAAyC;IAAE,gBAE5DL,KAAA,CAAAY,aAAA,CAACR,UAAU;MAACW,QAAQ;IAAA,CAAE,CACjB,CAAC;EAElB;EAEA,oBAAOf,KAAA,CAAAY,aAAA,CAACR,UAAU;IAACK,OAAO,EAAEA,OAAQ;IAAC,eAAa;EAA2B,CAAE,CAAC;AACpF,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"admin/ui/views/Users/components/DeleteAction.js","sources":["../../../../../../src/admin/ui/views/Users/components/DeleteAction.tsx"],"sourcesContent":["import React from \"react\";\nimport { i18n } from \"@webiny/app/i18n/index.js\";\nimport { useSecurity } from \"@webiny/app-admin\";\nimport { Tooltip, DeleteIcon } from \"@webiny/admin-ui\";\nimport type { UserItem } from \"~/admin/ui/UserItem.js\";\n\nconst t = i18n.ns(\"app-identity/admin/users/data-list\");\n\nexport interface DeleteActionProps {\n item: UserItem;\n onClick: () => void;\n}\n\nexport const DeleteAction = ({ item, onClick }: DeleteActionProps) => {\n const { identity } = useSecurity();\n\n if (identity.id === item.id) {\n return (\n <Tooltip\n side={\"bottom\"}\n content={<span>{t`You can't delete your own user account.`}</span>}\n trigger={<DeleteIcon disabled />}\n />\n );\n }\n\n if (item.external) {\n return (\n <Tooltip\n side={\"bottom\"}\n content={<span>{t`You can't delete external users.`}</span>}\n trigger={<DeleteIcon disabled />}\n />\n );\n }\n\n return <DeleteIcon onClick={onClick} data-testid={\"default-data-list.delete\"} />;\n};\n"],"names":["t","i18n","DeleteAction","item","onClick","identity","useSecurity","Tooltip","DeleteIcon"],"mappings":";;;;AAMA,MAAMA,IAAIC,KAAK,EAAE,CAAC;AAOX,MAAMC,eAAe,CAAC,EAAEC,IAAI,EAAEC,OAAO,EAAqB;IAC7D,MAAM,EAAEC,QAAQ,EAAE,GAAGC;IAErB,IAAID,SAAS,EAAE,KAAKF,KAAK,EAAE,EACvB,OAAO,WAAP,GACI,oBAACI,SAAOA;QACJ,MAAM;QACN,uBAAS,oBAAC,cAAMP,CAAC,CAAC,uCAAuC,CAAC;QAC1D,uBAAS,oBAACQ,YAAUA;YAAC;;;IAKjC,IAAIL,KAAK,QAAQ,EACb,OAAO,WAAP,GACI,oBAACI,SAAOA;QACJ,MAAM;QACN,uBAAS,oBAAC,cAAMP,CAAC,CAAC,gCAAgC,CAAC;QACnD,uBAAS,oBAACQ,YAAUA;YAAC;;;IAKjC,OAAO,WAAP,GAAO,oBAACA,YAAUA;QAAC,SAASJ;QAAS,eAAa;;AACtD"}
@@ -1,5 +1,5 @@
1
- import gql from "graphql-tag";
2
- const listUserFields = /* GraphQL */`
1
+ import graphql_tag from "graphql-tag";
2
+ const listUserFields = `
3
3
  {
4
4
  id
5
5
  email
@@ -10,8 +10,7 @@ const listUserFields = /* GraphQL */`
10
10
  external
11
11
  }
12
12
  `;
13
- const userFormFields = () => {
14
- return /* GraphQL */`
13
+ const userFormFields = ()=>`
15
14
  {
16
15
  id
17
16
  email
@@ -31,8 +30,7 @@ const userFormFields = () => {
31
30
  }
32
31
  }
33
32
  `;
34
- };
35
- export const LIST_USERS = gql`
33
+ const LIST_USERS = graphql_tag`
36
34
  query ListUsers {
37
35
  adminUsers {
38
36
  users: listUsers {
@@ -41,7 +39,7 @@ export const LIST_USERS = gql`
41
39
  }
42
40
  }
43
41
  `;
44
- export const READ_USER = () => gql`
42
+ const READ_USER = ()=>graphql_tag`
45
43
  query GetUser($id: ID!) {
46
44
  adminUsers {
47
45
  user: getUser(where: { id: $id }){
@@ -54,7 +52,7 @@ export const READ_USER = () => gql`
54
52
  }
55
53
  }
56
54
  `;
57
- export const CREATE_USER = gql`
55
+ const CREATE_USER = graphql_tag`
58
56
  mutation CreateUser($data: AdminUsersCreateInput!){
59
57
  adminUsers {
60
58
  user: createUser(data: $data) {
@@ -68,7 +66,7 @@ export const CREATE_USER = gql`
68
66
  }
69
67
  }
70
68
  `;
71
- export const UPDATE_USER = () => gql`
69
+ const UPDATE_USER = ()=>graphql_tag`
72
70
  mutation UpdateUser($id: ID!, $data: AdminUsersUpdateInput!){
73
71
  adminUsers {
74
72
  user: updateUser(id: $id, data: $data) {
@@ -82,7 +80,7 @@ export const UPDATE_USER = () => gql`
82
80
  }
83
81
  }
84
82
  `;
85
- export const DELETE_USER = gql`
83
+ const DELETE_USER = graphql_tag`
86
84
  mutation DeleteUser($id: ID!) {
87
85
  adminUsers {
88
86
  deleteUser(id: $id) {
@@ -95,5 +93,6 @@ export const DELETE_USER = gql`
95
93
  }
96
94
  }
97
95
  `;
96
+ export { CREATE_USER, DELETE_USER, LIST_USERS, READ_USER, UPDATE_USER };
98
97
 
99
98
  //# sourceMappingURL=graphql.js.map