@truedat/auth 8.14.3 → 8.14.5

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 (78) hide show
  1. package/package.json +4 -4
  2. package/src/groups/components/GroupCard.js +2 -2
  3. package/src/groups/components/GroupCards.js +129 -37
  4. package/src/groups/components/GroupForm.js +13 -7
  5. package/src/groups/components/GroupFormModal.js +8 -7
  6. package/src/groups/components/GroupInfoModal.js +6 -6
  7. package/src/groups/components/GroupMemberPicker.js +2 -4
  8. package/src/groups/components/GroupRouteModal.js +15 -10
  9. package/src/groups/components/__tests__/GroupCards.spec.js +94 -0
  10. package/src/groups/components/__tests__/GroupForm.spec.js +2 -2
  11. package/src/groups/components/__tests__/GroupModals.spec.js +42 -16
  12. package/src/groups/components/__tests__/__snapshots__/GroupCards.spec.js.snap +14 -0
  13. package/src/messages/en.js +6 -5
  14. package/src/messages/es.js +8 -7
  15. package/src/styles/Groups.less +96 -131
  16. package/src/styles/UserCard.less +416 -0
  17. package/src/styles/UserModals.less +831 -0
  18. package/src/styles/Users.less +313 -0
  19. package/src/users/components/AdminUserRoutes.js +7 -20
  20. package/src/users/components/EditUser.js +7 -34
  21. package/src/users/components/EditUserModal.js +150 -0
  22. package/src/users/components/NewUser.js +128 -17
  23. package/src/users/components/Password.js +11 -189
  24. package/src/users/components/UserAcls.js +117 -6
  25. package/src/users/components/UserActions.js +99 -34
  26. package/src/users/components/UserCard.js +171 -22
  27. package/src/users/components/UserCards.js +188 -35
  28. package/src/users/components/UserFormFields.js +206 -0
  29. package/src/users/components/UserGroupAclRow.js +8 -2
  30. package/src/users/components/UserGroupAcls.js +2 -2
  31. package/src/users/components/UserGroupLink.js +21 -0
  32. package/src/users/components/UserInfoModal.js +228 -0
  33. package/src/users/components/UserPasswordField.js +66 -0
  34. package/src/users/components/UserPasswordModal.js +210 -0
  35. package/src/users/components/UserRoutes.js +4 -13
  36. package/src/users/components/UserTabs.js +5 -2
  37. package/src/users/components/UserTypeSelector.js +109 -0
  38. package/src/users/components/UsersAndGroups.js +39 -5
  39. package/src/users/components/UsersTable.js +234 -0
  40. package/src/users/components/__tests__/EditUser.spec.js +84 -10
  41. package/src/users/components/__tests__/NewUser.spec.js +34 -4
  42. package/src/users/components/__tests__/Password.spec.js +53 -146
  43. package/src/users/components/__tests__/UserAcls.spec.js +62 -2
  44. package/src/users/components/__tests__/UserCard.spec.js +111 -5
  45. package/src/users/components/__tests__/UserCards.spec.js +149 -0
  46. package/src/users/components/__tests__/UserGroupAclRow.spec.js +19 -1
  47. package/src/users/components/__tests__/UserModals.spec.js +554 -0
  48. package/src/users/components/__tests__/UserRoutes.spec.js +8 -3
  49. package/src/users/components/__tests__/UserTypeSelector.spec.js +32 -0
  50. package/src/users/components/__tests__/UsersAndGroups.spec.js +17 -0
  51. package/src/users/components/__tests__/__snapshots__/UserCard.spec.js.snap +66 -37
  52. package/src/users/components/__tests__/__snapshots__/UserCards.spec.js.snap +375 -75
  53. package/src/users/components/__tests__/__snapshots__/UserGroupAclRow.spec.js.snap +7 -3
  54. package/src/users/components/__tests__/__snapshots__/UserRoutes.spec.js.snap +4 -13
  55. package/src/users/hooks/useSortedGroups.js +13 -0
  56. package/src/users/hooks/useUserModalOperation.js +55 -0
  57. package/src/users/reducers/__tests__/userRedirect.spec.js +14 -3
  58. package/src/users/reducers/index.js +1 -0
  59. package/src/users/reducers/userModalOperation.js +29 -0
  60. package/src/users/reducers/userRedirect.js +5 -4
  61. package/src/users/sagas/__tests__/updateUser.spec.js +19 -1
  62. package/src/users/sagas/createUser.js +12 -5
  63. package/src/users/sagas/deleteUser.js +12 -5
  64. package/src/users/sagas/updateUser.js +19 -8
  65. package/src/users/selectors/__tests__/filterUsers.spec.js +11 -0
  66. package/src/users/selectors/__tests__/getUserAcls.spec.js +1 -0
  67. package/src/users/selectors/__tests__/getUserGroupAcls.spec.js +2 -0
  68. package/src/users/selectors/filterUsers.js +9 -1
  69. package/src/users/selectors/getUserGroupAcls.js +1 -0
  70. package/src/users/components/User.js +0 -68
  71. package/src/users/components/UserPassword.js +0 -24
  72. package/src/users/components/__tests__/User.spec.js +0 -20
  73. package/src/users/components/__tests__/UserPassword.spec.js +0 -24
  74. package/src/users/components/__tests__/__snapshots__/EditUser.spec.js.snap +0 -281
  75. package/src/users/components/__tests__/__snapshots__/NewUser.spec.js.snap +0 -321
  76. package/src/users/components/__tests__/__snapshots__/Password.spec.js.snap +0 -128
  77. package/src/users/components/__tests__/__snapshots__/User.spec.js.snap +0 -129
  78. package/src/users/components/__tests__/__snapshots__/UserPassword.spec.js.snap +0 -124
@@ -1,62 +1,91 @@
1
1
  // Jest Snapshot v1, https://goo.gl/fbAQLP
2
2
 
3
- exports[`<UserCard /> matches the latest snapshot when showing UID 1`] = `
3
+ exports[`<UserCard /> matches the latest snapshot 1`] = `
4
4
  <div>
5
5
  <div
6
- class="ui card"
6
+ class="ui card td-card-base td-card--user"
7
7
  >
8
- <div
9
- class="content"
8
+ <a
9
+ aria-label="user.info.open"
10
+ class="content uc-card-link"
11
+ data-discover="true"
12
+ href="/users/1"
10
13
  >
11
- <a
12
- class="header"
13
- data-discover="true"
14
- href="/users/1"
14
+ <div
15
+ class="uc-summary"
16
+ >
17
+ <div
18
+ class="uc-avatar"
19
+ >
20
+ JB
21
+ </div>
22
+ <div
23
+ class="uc-name"
24
+ title="Joe Bloggs"
25
+ >
26
+ Joe Bloggs
27
+ </div>
28
+ </div>
29
+ <div
30
+ class="uc-meta-grid"
15
31
  >
16
32
  <i
17
33
  aria-hidden="true"
18
34
  class="user icon"
19
35
  />
20
- joe
21
- </a>
22
- <div
23
- class="description"
24
- >
25
- Joe Bloggs
26
- <br />
27
- joe@bloggs.net
36
+ <span
37
+ class="uc-username"
38
+ >
39
+ joe
40
+ </span>
41
+ <i
42
+ aria-hidden="true"
43
+ class="mail icon"
44
+ />
45
+ <span
46
+ class="uc-email"
47
+ >
48
+ joe@bloggs.net
49
+ </span>
28
50
  </div>
29
- </div>
30
- </div>
31
- </div>
32
- `;
33
-
34
- exports[`<UserCard /> matches the latest snapshot when showing full name 1`] = `
35
- <div>
36
- <div
37
- class="ui card"
38
- >
51
+ </a>
39
52
  <div
40
- class="content"
53
+ class="uc-actions"
41
54
  >
42
55
  <a
43
- class="header"
56
+ aria-label="users.actions.edit"
57
+ class="uc-action-btn"
44
58
  data-discover="true"
45
- href="/users/1"
59
+ href="/users/1/edit"
60
+ title="users.actions.edit"
46
61
  >
47
62
  <i
48
63
  aria-hidden="true"
49
- class="user icon"
64
+ class="pencil alternate icon"
50
65
  />
51
- joe
66
+ <span
67
+ class="uc-action-label"
68
+ >
69
+ users.actions.edit
70
+ </span>
52
71
  </a>
53
- <div
54
- class="description"
72
+ <a
73
+ aria-label="user.actions.edit_password"
74
+ class="uc-action-btn uc-action-btn--key"
75
+ data-discover="true"
76
+ href="/users/1/password"
77
+ title="user.actions.edit_password"
55
78
  >
56
- Joe Bloggs
57
- <br />
58
- joe@bloggs.net
59
- </div>
79
+ <i
80
+ aria-hidden="true"
81
+ class="key icon"
82
+ />
83
+ <span
84
+ class="uc-action-label"
85
+ >
86
+ user.actions.edit_password
87
+ </span>
88
+ </a>
60
89
  </div>
61
90
  </div>
62
91
  </div>
@@ -3,118 +3,418 @@
3
3
  exports[`<UserCards /> matches the latest snapshot 1`] = `
4
4
  <div>
5
5
  <div
6
- class="ui input"
7
- >
8
- <input
9
- placeholder="user.search.placeholder"
10
- type="text"
11
- value=""
12
- />
13
- </div>
14
- <a
15
- class="ui primary right floated button"
16
- data-discover="true"
17
- href="/users/new"
18
- role="button"
19
- >
20
- <i
21
- aria-hidden="true"
22
- class="add user icon"
23
- />
24
- users.actions.create
25
- </a>
26
- <h3
27
- class="ui dividing header"
28
- >
29
- user.type.admin
30
- </h3>
31
- <div
32
- class="ui cards"
6
+ class="users-toolbar"
33
7
  >
34
8
  <div
35
- class="ui card"
9
+ class="ui left icon input"
10
+ >
11
+ <i
12
+ aria-hidden="true"
13
+ class="search icon"
14
+ />
15
+ <input
16
+ placeholder="user.search.placeholder"
17
+ type="text"
18
+ value=""
19
+ />
20
+ </div>
21
+ <div
22
+ class="users-toolbar-actions"
36
23
  >
37
24
  <div
38
- class="content"
25
+ aria-label="users.view.label"
26
+ class="ui buttons users-view-buttons"
27
+ role="group"
39
28
  >
40
- <a
41
- class="header"
42
- data-discover="true"
43
- href="/users/1"
29
+ <button
30
+ aria-pressed="true"
31
+ class="ui active primary button"
32
+ type="button"
44
33
  >
45
34
  <i
46
35
  aria-hidden="true"
47
- class="user icon"
36
+ class="grid layout icon"
48
37
  />
49
- user
50
- </a>
51
- <div
52
- class="description"
38
+ users.view.cards
39
+ </button>
40
+ <button
41
+ aria-pressed="false"
42
+ class="ui button"
43
+ type="button"
53
44
  >
54
- Pepito Pérez
55
- <br />
56
- email@email.com
57
- </div>
45
+ <i
46
+ aria-hidden="true"
47
+ class="list icon"
48
+ />
49
+ users.view.table
50
+ </button>
58
51
  </div>
52
+ <a
53
+ class="ui primary button"
54
+ data-discover="true"
55
+ href="/users/new"
56
+ role="button"
57
+ >
58
+ <i
59
+ aria-hidden="true"
60
+ class="add user icon"
61
+ />
62
+ users.actions.create
63
+ </a>
59
64
  </div>
60
65
  </div>
61
- <h3
62
- class="ui dividing header"
63
- >
64
- user.type.user
65
- </h3>
66
66
  <div
67
- class="ui cards"
67
+ class="accordion ui fluid styled users-role-accordion"
68
68
  >
69
69
  <div
70
- class="ui card"
70
+ class="active title users-role-title users-role-title--admin"
71
71
  >
72
- <div
73
- class="content"
72
+ <button
73
+ aria-controls="users-role-panel-admin"
74
+ aria-expanded="true"
75
+ class="users-role-toggle"
76
+ type="button"
74
77
  >
75
- <a
76
- class="header"
77
- data-discover="true"
78
- href="/users/2"
78
+ <span
79
+ class="users-role-title-content"
79
80
  >
80
81
  <i
81
82
  aria-hidden="true"
82
- class="user icon"
83
+ class="angle up icon users-role-chevron"
83
84
  />
84
- user2
85
- </a>
85
+ <h3
86
+ class="ui header users-role-title-header"
87
+ >
88
+ <div
89
+ class="content"
90
+ >
91
+ user.type.admin
92
+ </div>
93
+ </h3>
94
+ <div
95
+ class="ui circular label users-role-count"
96
+ >
97
+ 1
98
+ </div>
99
+ </span>
100
+ </button>
101
+ <div
102
+ class="users-results"
103
+ role="status"
104
+ >
86
105
  <div
87
- class="description"
106
+ class="ui label"
88
107
  >
89
- Miguel Muñoz
90
- <br />
91
- email2@email.com
108
+ users.results
92
109
  </div>
93
110
  </div>
94
111
  </div>
95
112
  <div
96
- class="ui card"
113
+ class="content active users-role-content"
114
+ id="users-role-panel-admin"
97
115
  >
98
116
  <div
99
- class="content"
117
+ class="ui cards users-role-card-group"
118
+ >
119
+ <div
120
+ class="ui card td-card-base td-card--user"
121
+ >
122
+ <a
123
+ aria-label="user.info.open"
124
+ class="content uc-card-link"
125
+ data-discover="true"
126
+ href="/users/1"
127
+ >
128
+ <div
129
+ class="uc-summary"
130
+ >
131
+ <div
132
+ class="uc-avatar"
133
+ >
134
+ PP
135
+ </div>
136
+ <div
137
+ class="uc-name"
138
+ title="Pepito Pérez"
139
+ >
140
+ Pepito Pérez
141
+ </div>
142
+ </div>
143
+ <div
144
+ class="uc-meta-grid"
145
+ >
146
+ <i
147
+ aria-hidden="true"
148
+ class="user icon"
149
+ />
150
+ <span
151
+ class="uc-username"
152
+ >
153
+ user
154
+ </span>
155
+ <i
156
+ aria-hidden="true"
157
+ class="mail icon"
158
+ />
159
+ <span
160
+ class="uc-email"
161
+ >
162
+ email@email.com
163
+ </span>
164
+ </div>
165
+ </a>
166
+ <div
167
+ class="uc-actions"
168
+ >
169
+ <a
170
+ aria-label="users.actions.edit"
171
+ class="uc-action-btn"
172
+ data-discover="true"
173
+ href="/users/1/edit"
174
+ title="users.actions.edit"
175
+ >
176
+ <i
177
+ aria-hidden="true"
178
+ class="pencil alternate icon"
179
+ />
180
+ <span
181
+ class="uc-action-label"
182
+ >
183
+ users.actions.edit
184
+ </span>
185
+ </a>
186
+ <a
187
+ aria-label="user.actions.edit_password"
188
+ class="uc-action-btn uc-action-btn--key"
189
+ data-discover="true"
190
+ href="/users/1/password"
191
+ title="user.actions.edit_password"
192
+ >
193
+ <i
194
+ aria-hidden="true"
195
+ class="key icon"
196
+ />
197
+ <span
198
+ class="uc-action-label"
199
+ >
200
+ user.actions.edit_password
201
+ </span>
202
+ </a>
203
+ </div>
204
+ </div>
205
+ </div>
206
+ </div>
207
+ <div
208
+ class="active title users-role-title users-role-title--user"
209
+ >
210
+ <button
211
+ aria-controls="users-role-panel-user"
212
+ aria-expanded="true"
213
+ class="users-role-toggle"
214
+ type="button"
100
215
  >
101
- <a
102
- class="header"
103
- data-discover="true"
104
- href="/users/3"
216
+ <span
217
+ class="users-role-title-content"
105
218
  >
106
219
  <i
107
220
  aria-hidden="true"
108
- class="user icon"
221
+ class="angle up icon users-role-chevron"
109
222
  />
110
- user3
111
- </a>
223
+ <h3
224
+ class="ui header users-role-title-header"
225
+ >
226
+ <div
227
+ class="content"
228
+ >
229
+ user.type.user
230
+ </div>
231
+ </h3>
232
+ <div
233
+ class="ui circular label users-role-count"
234
+ >
235
+ 2
236
+ </div>
237
+ </span>
238
+ </button>
239
+ </div>
240
+ <div
241
+ class="content active users-role-content"
242
+ id="users-role-panel-user"
243
+ >
244
+ <div
245
+ class="ui cards users-role-card-group"
246
+ >
247
+ <div
248
+ class="ui card td-card-base td-card--user"
249
+ >
250
+ <a
251
+ aria-label="user.info.open"
252
+ class="content uc-card-link"
253
+ data-discover="true"
254
+ href="/users/2"
255
+ >
256
+ <div
257
+ class="uc-summary"
258
+ >
259
+ <div
260
+ class="uc-avatar"
261
+ >
262
+ MM
263
+ </div>
264
+ <div
265
+ class="uc-name"
266
+ title="Miguel Muñoz"
267
+ >
268
+ Miguel Muñoz
269
+ </div>
270
+ </div>
271
+ <div
272
+ class="uc-meta-grid"
273
+ >
274
+ <i
275
+ aria-hidden="true"
276
+ class="user icon"
277
+ />
278
+ <span
279
+ class="uc-username"
280
+ >
281
+ user2
282
+ </span>
283
+ <i
284
+ aria-hidden="true"
285
+ class="mail icon"
286
+ />
287
+ <span
288
+ class="uc-email"
289
+ >
290
+ email2@email.com
291
+ </span>
292
+ </div>
293
+ </a>
294
+ <div
295
+ class="uc-actions"
296
+ >
297
+ <a
298
+ aria-label="users.actions.edit"
299
+ class="uc-action-btn"
300
+ data-discover="true"
301
+ href="/users/2/edit"
302
+ title="users.actions.edit"
303
+ >
304
+ <i
305
+ aria-hidden="true"
306
+ class="pencil alternate icon"
307
+ />
308
+ <span
309
+ class="uc-action-label"
310
+ >
311
+ users.actions.edit
312
+ </span>
313
+ </a>
314
+ <a
315
+ aria-label="user.actions.edit_password"
316
+ class="uc-action-btn uc-action-btn--key"
317
+ data-discover="true"
318
+ href="/users/2/password"
319
+ title="user.actions.edit_password"
320
+ >
321
+ <i
322
+ aria-hidden="true"
323
+ class="key icon"
324
+ />
325
+ <span
326
+ class="uc-action-label"
327
+ >
328
+ user.actions.edit_password
329
+ </span>
330
+ </a>
331
+ </div>
332
+ </div>
112
333
  <div
113
- class="description"
334
+ class="ui card td-card-base td-card--user"
114
335
  >
115
- Rosa Martin
116
- <br />
117
- email3@email.com
336
+ <a
337
+ aria-label="user.info.open"
338
+ class="content uc-card-link"
339
+ data-discover="true"
340
+ href="/users/3"
341
+ >
342
+ <div
343
+ class="uc-summary"
344
+ >
345
+ <div
346
+ class="uc-avatar"
347
+ >
348
+ RM
349
+ </div>
350
+ <div
351
+ class="uc-name"
352
+ title="Rosa Martin"
353
+ >
354
+ Rosa Martin
355
+ </div>
356
+ </div>
357
+ <div
358
+ class="uc-meta-grid"
359
+ >
360
+ <i
361
+ aria-hidden="true"
362
+ class="user icon"
363
+ />
364
+ <span
365
+ class="uc-username"
366
+ >
367
+ user3
368
+ </span>
369
+ <i
370
+ aria-hidden="true"
371
+ class="mail icon"
372
+ />
373
+ <span
374
+ class="uc-email"
375
+ >
376
+ email3@email.com
377
+ </span>
378
+ </div>
379
+ </a>
380
+ <div
381
+ class="uc-actions"
382
+ >
383
+ <a
384
+ aria-label="users.actions.edit"
385
+ class="uc-action-btn"
386
+ data-discover="true"
387
+ href="/users/3/edit"
388
+ title="users.actions.edit"
389
+ >
390
+ <i
391
+ aria-hidden="true"
392
+ class="pencil alternate icon"
393
+ />
394
+ <span
395
+ class="uc-action-label"
396
+ >
397
+ users.actions.edit
398
+ </span>
399
+ </a>
400
+ <a
401
+ aria-label="user.actions.edit_password"
402
+ class="uc-action-btn uc-action-btn--key"
403
+ data-discover="true"
404
+ href="/users/3/password"
405
+ title="user.actions.edit_password"
406
+ >
407
+ <i
408
+ aria-hidden="true"
409
+ class="key icon"
410
+ />
411
+ <span
412
+ class="uc-action-label"
413
+ >
414
+ user.actions.edit_password
415
+ </span>
416
+ </a>
417
+ </div>
118
418
  </div>
119
419
  </div>
120
420
  </div>
@@ -10,14 +10,18 @@ exports[`<UserGroupAclRow /> matches the latest snapshot 1`] = `
10
10
  <td
11
11
  class=""
12
12
  >
13
- <span>
14
- resource1
13
+ <span
14
+ class="um-group-chip"
15
+ >
16
+ grupo1
15
17
  </span>
16
18
  </td>
17
19
  <td
18
20
  class=""
19
21
  >
20
- grupo1
22
+ <span>
23
+ resource1
24
+ </span>
21
25
  </td>
22
26
  <td
23
27
  class=""
@@ -71,10 +71,7 @@ exports[`<UserRoutes /> renders correctly with users/:id route 1`] = `
71
71
  UsersLoader
72
72
  </div>
73
73
  <div>
74
- UserLoader
75
- </div>
76
- <div>
77
- User
74
+ UsersAndGroups
78
75
  </div>
79
76
  </div>
80
77
  `;
@@ -85,10 +82,7 @@ exports[`<UserRoutes /> renders correctly with users/:id/edit route 1`] = `
85
82
  UsersLoader
86
83
  </div>
87
84
  <div>
88
- UserLoader
89
- </div>
90
- <div>
91
- EditUser
85
+ UsersAndGroups
92
86
  </div>
93
87
  </div>
94
88
  `;
@@ -99,10 +93,7 @@ exports[`<UserRoutes /> renders correctly with users/:id/password route 1`] = `
99
93
  UsersLoader
100
94
  </div>
101
95
  <div>
102
- UserLoader
103
- </div>
104
- <div>
105
- UserPassword
96
+ UsersAndGroups
106
97
  </div>
107
98
  </div>
108
99
  `;
@@ -113,7 +104,7 @@ exports[`<UserRoutes /> renders correctly with users/new route 1`] = `
113
104
  UsersLoader
114
105
  </div>
115
106
  <div>
116
- NewUser
107
+ UsersAndGroups
117
108
  </div>
118
109
  </div>
119
110
  `;
@@ -0,0 +1,13 @@
1
+ import _ from "lodash/fp";
2
+ import { useMemo } from "react";
3
+ import { useGroups } from "../../groups/hooks/useGroups";
4
+
5
+ const caseInsensitiveName = ({ name }) => _.lowerCase(name);
6
+
7
+ // Group options for the user forms, sorted as the former Redux `groups` state was.
8
+ export const useSortedGroups = () => {
9
+ const { groups } = useGroups();
10
+ return useMemo(() => _.sortBy(caseInsensitiveName)(groups), [groups]);
11
+ };
12
+
13
+ export default useSortedGroups;