diff --git a/packages/components-faraday/src/components/Admin/AddEditUser.js b/packages/components-faraday/src/components/Admin/AddEditUser.js index 45454fbd8e06f202d4776d3ad3f6c51c68cad6d7..74e235305cf16a343bb2871a0352536d8bd3aa7d 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 eb9b5cec9493be46809ba4bddafabf961eba5db9..ee33093e2176bcb429d904f8d4d5637aaa4eaeed 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 6c86d7cf0af6dbf4cd7697cb324da72a0865af46..7b325481ccfefa823809c0e259b84dd436c2f965 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" ]