From 1e8f5403ea9466eb403a51009c8eecc1cc9e83d8 Mon Sep 17 00:00:00 2001 From: Alexandru Munteanu <alexandru.munt@gmail.com> Date: Thu, 5 Apr 2018 16:10:50 +0300 Subject: [PATCH] refactor(user-management): refactor to work with new endpoint --- .../src/components/Admin/AddEditUser.js | 11 +++++++++-- .../src/components/Admin/utils.js | 19 ++++++++++++++++--- packages/xpub-faraday/config/components.json | 3 ++- 3 files changed, 27 insertions(+), 6 deletions(-) diff --git a/packages/components-faraday/src/components/Admin/AddEditUser.js b/packages/components-faraday/src/components/Admin/AddEditUser.js index 45454fbd8..74e235305 100644 --- a/packages/components-faraday/src/components/Admin/AddEditUser.js +++ b/packages/components-faraday/src/components/Admin/AddEditUser.js @@ -18,8 +18,15 @@ import { getRoleOptions, setAdmin, parseUpdateUser } from './utils' const onSubmit = (values, dispatch, { isEdit, history }) => { if (!isEdit) { const newValues = setAdmin(values) - return create('/users/invite', newValues) - .then(() => history.push('/admin/users')) + return create('/users', newValues) + .then(r => { + history.push('/admin/users') + create(`/emails`, { + email: r.email, + type: 'invite', + role: values.role, + }) + }) .catch(error => { const err = get(error, 'response') if (err) { diff --git a/packages/components-faraday/src/components/Admin/utils.js b/packages/components-faraday/src/components/Admin/utils.js index eb9b5cec9..ee33093e2 100644 --- a/packages/components-faraday/src/components/Admin/utils.js +++ b/packages/components-faraday/src/components/Admin/utils.js @@ -1,4 +1,11 @@ -import { pick, map } from 'lodash' +import { pick, map, omit } from 'lodash' + +const generatePasswordHash = () => + Array.from({ length: 4 }, () => + Math.random() + .toString(36) + .slice(4), + ).join('') export const getRoleOptions = journal => map(journal.roles, (value, key) => ({ label: value, value: key })) @@ -11,7 +18,14 @@ export const setAdmin = values => { newValues.admin = false } - return newValues + return { + ...omit(newValues, ['role']), + isConfirmed: false, + passwordResetToken: generatePasswordHash(), + password: 'defaultpass', + editorInChief: newValues.role === 'editorInChief', + handlingEditor: newValues.role === 'handlingEditor', + } } export const parseUpdateUser = values => { @@ -22,7 +36,6 @@ export const parseUpdateUser = values => { 'affiliation', 'title', 'roles', - 'rev', 'editorInChief', 'handlingEditor', ] diff --git a/packages/xpub-faraday/config/components.json b/packages/xpub-faraday/config/components.json index 6c86d7cf0..7b325481c 100644 --- a/packages/xpub-faraday/config/components.json +++ b/packages/xpub-faraday/config/components.json @@ -7,5 +7,6 @@ "pubsweet-components-faraday", "@pubsweet/component-aws-s3", "pubsweet-component-invite", - "pubsweet-component-user-manager" + "pubsweet-component-user-manager", + "pubsweet-component-email" ] -- GitLab