@@ -185,7 +184,7 @@ ListRow.contextTypes = {
ListRow.defaultProps = {
item: {
name: 'Owner',
- description: "Rule them all. This role can't be deleted",
+ description: 'Rule them all. This role can\'t be deleted',
nb_users: 1,
icon: 'envelope',
},
diff --git a/packages/strapi-plugin-users-permissions/admin/src/components/Policies/index.js b/packages/strapi-plugin-users-permissions/admin/src/components/Policies/index.js
index 357140ab31..b5041ce24f 100644
--- a/packages/strapi-plugin-users-permissions/admin/src/components/Policies/index.js
+++ b/packages/strapi-plugin-users-permissions/admin/src/components/Policies/index.js
@@ -1,8 +1,8 @@
/**
-*
-* Policies
-*
-*/
+ *
+ * Policies
+ *
+ */
import React from 'react';
import cn from 'classnames';
@@ -10,24 +10,42 @@ import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { get, isEmpty, map, takeRight, toLower, without } from 'lodash';
-import Input from 'components/InputsIndex';
+import { InputsIndex as Input } from 'strapi-helper-plugin';
import BoundRoute from '../BoundRoute';
import styles from './styles.scss';
-class Policies extends React.Component { // eslint-disable-line react/prefer-stateless-function
- handleChange = (e) => this.context.onChange(e);
+class Policies extends React.Component {
+ // eslint-disable-line react/prefer-stateless-function
+ handleChange = e => this.context.onChange(e);
render() {
const baseTitle = 'users-permissions.Policies.header';
const title = this.props.shouldDisplayPoliciesHint ? 'hint' : 'title';
const value = get(this.props.values, this.props.inputSelectName);
- const path = without(this.props.inputSelectName.split('.'), 'permissions', 'controllers', 'policy');
- const controllerRoutes = get(this.props.routes, without(this.props.inputSelectName.split('.'), 'permissions', 'controllers', 'policy')[0]);
- const routes = isEmpty(controllerRoutes) ? [] : controllerRoutes.filter(o => toLower(o.handler) === toLower(takeRight(path, 2).join('.')));
+ const path = without(
+ this.props.inputSelectName.split('.'),
+ 'permissions',
+ 'controllers',
+ 'policy',
+ );
+ const controllerRoutes = get(
+ this.props.routes,
+ without(
+ this.props.inputSelectName.split('.'),
+ 'permissions',
+ 'controllers',
+ 'policy',
+ )[0],
+ );
+ const routes = isEmpty(controllerRoutes)
+ ? []
+ : controllerRoutes.filter(
+ o => toLower(o.handler) === toLower(takeRight(path, 2).join('.')),
+ );
return (
-
+
@@ -44,12 +62,16 @@ class Policies extends React.Component { // eslint-disable-line react/prefer-sta
validations={{}}
value={value}
/>
- ) : ''}
+ ) : (
+ ''
+ )}
- {!this.props.shouldDisplayPoliciesHint ? (
- map(routes, (route, key) => )
- ) : ''}
+ {!this.props.shouldDisplayPoliciesHint
+ ? map(routes, (route, key) => (
+
+ ))
+ : ''}
diff --git a/packages/strapi-plugin-users-permissions/admin/src/components/PopUpForm/index.js b/packages/strapi-plugin-users-permissions/admin/src/components/PopUpForm/index.js
index a5ddf37372..65b5eca6bf 100644
--- a/packages/strapi-plugin-users-permissions/admin/src/components/PopUpForm/index.js
+++ b/packages/strapi-plugin-users-permissions/admin/src/components/PopUpForm/index.js
@@ -23,7 +23,7 @@ import {
takeRight,
} from 'lodash';
-import Input from 'components/InputsIndex';
+import { InputsIndex as Input } from 'strapi-helper-plugin';
// Translations
import en from '../../translations/en.json';
diff --git a/packages/strapi-plugin-users-permissions/admin/src/containers/App/index.js b/packages/strapi-plugin-users-permissions/admin/src/containers/App/index.js
index 1a5f371252..13b8244bf9 100644
--- a/packages/strapi-plugin-users-permissions/admin/src/containers/App/index.js
+++ b/packages/strapi-plugin-users-permissions/admin/src/containers/App/index.js
@@ -33,13 +33,21 @@ class App extends React.Component {
return (
-
+
-
+
diff --git a/packages/strapi-plugin-users-permissions/admin/src/containers/AuthPage/index.js b/packages/strapi-plugin-users-permissions/admin/src/containers/AuthPage/index.js
index 4eef86c52a..f55c17b2c6 100644
--- a/packages/strapi-plugin-users-permissions/admin/src/containers/AuthPage/index.js
+++ b/packages/strapi-plugin-users-permissions/admin/src/containers/AuthPage/index.js
@@ -14,11 +14,7 @@ import { findIndex, get, isBoolean, isEmpty, map, replace } from 'lodash';
import cn from 'classnames';
// Design
-import Button from 'components/Button';
-import Input from 'components/InputsIndex';
-
-// Utils
-import auth from 'utils/auth';
+import { auth, Button, InputsIndex as Input } from 'strapi-helper-plugin';
import pluginId from '../../pluginId';
@@ -39,20 +35,19 @@ import makeSelectAuthPage from './selectors';
import styles from './styles.scss';
-export class AuthPage extends React.Component { // eslint-disable-line react/prefer-stateless-function
+export class AuthPage extends React.Component {
+ // eslint-disable-line react/prefer-stateless-function
componentDidMount() {
auth.clearAppStorage();
this.setForm();
}
componentDidUpdate(prevProps) {
- const {
+ const {
hideLoginErrorsInput,
- match: {
- params : {
- authType,
- },
- },
+ match: {
+ params: { authType },
+ },
submitSuccess,
} = this.props;
@@ -64,7 +59,7 @@ export class AuthPage extends React.Component { // eslint-disable-line react/pre
if (submitSuccess) {
switch (authType) {
case 'login':
- case 'reset-password':
+ case 'reset-password':
// Check if we have token to handle redirection to login or admin.
// Done to prevent redirection to admin after reset password if user should
// not have access.
@@ -86,46 +81,71 @@ export class AuthPage extends React.Component { // eslint-disable-line react/pre
getFormErrors = () => {
const { formErrors } = this.props;
return get(formErrors, ['0', 'errors', '0', 'id']);
- }
+ };
setForm = () => {
const {
- location: {
- search,
- },
+ location: { search },
match: {
- params: {
- authType,
- id,
- },
+ params: { authType, id },
},
- setForm,
- } = this.props;
+ setForm,
+ } = this.props;
const params = search ? replace(search, '?code=', '') : id;
-
+
setForm(authType, params);
- }
+ };
isAuthType = type => {
- const { match: { params: { authType } } } = this.props;
+ const {
+ match: {
+ params: { authType },
+ },
+ } = this.props;
return authType === type;
- }
-
- handleSubmit = (e) => {
+ };
+
+ handleSubmit = e => {
const { modifiedData, setErrors, submit } = this.props;
e.preventDefault();
const formErrors = Object.keys(modifiedData).reduce((acc, key) => {
- if (isEmpty(get(modifiedData, key)) && !isBoolean(get(modifiedData, key))) {
- acc.push({ name: key, errors: [{ id: 'components.Input.error.validation.required' }] });
+ if (
+ isEmpty(get(modifiedData, key)) &&
+ !isBoolean(get(modifiedData, key))
+ ) {
+ acc.push({
+ name: key,
+ errors: [{ id: 'components.Input.error.validation.required' }],
+ });
}
- if (!isEmpty(get(modifiedData, 'password')) && !isEmpty(get(modifiedData, 'confirmPassword')) && findIndex(acc, ['name', 'confirmPassword']) === -1) {
+ if (
+ !isEmpty(get(modifiedData, 'password')) &&
+ !isEmpty(get(modifiedData, 'confirmPassword')) &&
+ findIndex(acc, ['name', 'confirmPassword']) === -1
+ ) {
if (modifiedData.password.length < 6) {
- acc.push({ name: 'password', errors: [{ id: 'users-permissions.components.Input.error.password.length' }] });
+ acc.push({
+ name: 'password',
+ errors: [
+ {
+ id: 'users-permissions.components.Input.error.password.length',
+ },
+ ],
+ });
}
-
- if (get(modifiedData, 'password') !== get(modifiedData, 'confirmPassword')) {
- acc.push({ name: 'confirmPassword', errors: [{ id: 'users-permissions.components.Input.error.password.noMatch' }] });
+
+ if (
+ get(modifiedData, 'password') !== get(modifiedData, 'confirmPassword')
+ ) {
+ acc.push({
+ name: 'confirmPassword',
+ errors: [
+ {
+ id: 'users-permissions.components.Input.error.password.noMatch',
+ },
+ ],
+ });
}
}
@@ -137,23 +157,35 @@ export class AuthPage extends React.Component { // eslint-disable-line react/pre
if (isEmpty(formErrors)) {
submit(this.context);
}
- }
+ };
redirect = path => this.props.history.push(path);
renderButton = () => {
- const { match: { params: { authType } }, submitSuccess } = this.props;
+ const {
+ match: {
+ params: { authType },
+ },
+ submitSuccess,
+ } = this.props;
if (this.isAuthType('login')) {
return (
-
+
);
}
- const isEmailForgotSent = this.isAuthType('forgot-password') && submitSuccess;
- const label = isEmailForgotSent ? 'users-permissions.Auth.form.button.forgot-password.success' : `users-permissions.Auth.form.button.${authType}`;
-
+ const isEmailForgotSent =
+ this.isAuthType('forgot-password') && submitSuccess;
+ const label = isEmailForgotSent
+ ? 'users-permissions.Auth.form.button.forgot-password.success'
+ : `users-permissions.Auth.form.button.${authType}`;
+
return (
);
- }
+ };
+
+ renderLogo = () =>
+ this.isAuthType('register') && (
+
+

+
+ );
- renderLogo = () => this.isAuthType('register') &&
;
-
renderLink = () => {
if (this.isAuthType('login')) {
return (
@@ -178,7 +215,10 @@ export class AuthPage extends React.Component { // eslint-disable-line react/pre
);
}
- if (this.isAuthType('forgot-password') || this.isAuthType('register-success')) {
+ if (
+ this.isAuthType('forgot-password') ||
+ this.isAuthType('register-success')
+ ) {
return (
@@ -187,37 +227,41 @@ export class AuthPage extends React.Component { // eslint-disable-line react/pre
}
return
;
- }
+ };
renderInputs = () => {
- const {
+ const {
didCheckErrors,
formErrors,
match: {
- params: {
- authType,
- },
+ params: { authType },
},
modifiedData,
noErrorsDescription,
onChangeInput,
submitSuccess,
} = this.props;
-
+
const inputs = get(form, ['form', authType]);
- const isForgotEmailSent = this.isAuthType('forgot-password') && submitSuccess;
+ const isForgotEmailSent =
+ this.isAuthType('forgot-password') && submitSuccess;
return map(inputs, (input, key) => {
- const label =
- isForgotEmailSent
- ? { id: 'users-permissions.Auth.form.forgot-password.email.label.success' }
- : get(input, 'label');
-
+ const label = isForgotEmailSent
+ ? {
+ id:
+ 'users-permissions.Auth.form.forgot-password.email.label.success',
+ }
+ : get(input, 'label');
+
return (
);
});
- }
+ };
render() {
const { modifiedData, noErrorsDescription, submitSuccess } = this.props;
- let divStyle = this.isAuthType('register') ? { marginTop: '3.2rem' } : { marginTop: '.9rem' };
+ let divStyle = this.isAuthType('register')
+ ? { marginTop: '3.2rem' }
+ : { marginTop: '.9rem' };
if (this.isAuthType('forgot-password') && submitSuccess) {
divStyle = { marginTop: '.9rem', minHeight: '18.2rem' };
@@ -251,26 +297,32 @@ export class AuthPage extends React.Component { // eslint-disable-line react/pre
)}
- {this.isAuthType('register') && }
+ {this.isAuthType('register') && (
+
+ )}
@@ -323,13 +373,20 @@ function mapDispatchToProps(dispatch) {
setForm,
submit,
},
- dispatch
+ dispatch,
);
}
-const withConnect = connect(mapStateToProps, mapDispatchToProps);
-const withReducer = strapi.injectReducer({ key: 'authPage', reducer, pluginId });
-const withSaga = strapi.injectSaga({ key: 'authPage', saga, pluginId });
+const withConnect = connect(
+ mapStateToProps,
+ mapDispatchToProps,
+);
+const withReducer = window.strapi.injectReducer({
+ key: 'authPage',
+ reducer,
+ pluginId,
+});
+const withSaga = window.strapi.injectSaga({ key: 'authPage', saga, pluginId });
export default compose(
withReducer,
diff --git a/packages/strapi-plugin-users-permissions/admin/src/containers/AuthPage/saga.js b/packages/strapi-plugin-users-permissions/admin/src/containers/AuthPage/saga.js
index f58df3ac6a..88c997984e 100644
--- a/packages/strapi-plugin-users-permissions/admin/src/containers/AuthPage/saga.js
+++ b/packages/strapi-plugin-users-permissions/admin/src/containers/AuthPage/saga.js
@@ -1,7 +1,6 @@
import { get, includes, isArray, omit, set } from 'lodash';
import { call, fork, put, select, takeLatest } from 'redux-saga/effects';
-import auth from 'utils/auth';
-import request from 'utils/request';
+import { auth, request } from 'strapi-helper-plugin';
import { updateHasAdmin } from '../Initializer/actions';
diff --git a/packages/strapi-plugin-users-permissions/admin/src/containers/EditPage/index.js b/packages/strapi-plugin-users-permissions/admin/src/containers/EditPage/index.js
index 21f3e27d81..4131b47733 100644
--- a/packages/strapi-plugin-users-permissions/admin/src/containers/EditPage/index.js
+++ b/packages/strapi-plugin-users-permissions/admin/src/containers/EditPage/index.js
@@ -14,11 +14,13 @@ import { findIndex, get, isEmpty, isEqual, size } from 'lodash';
import cn from 'classnames';
// Design
-import BackHeader from 'components/BackHeader';
-import Input from 'components/InputsIndex';
-import LoadingIndicator from 'components/LoadingIndicator';
-import LoadingIndicatorPage from 'components/LoadingIndicatorPage';
-import PluginHeader from 'components/PluginHeader';
+import {
+ BackHeader,
+ InputsIndex as Input,
+ LoadingIndicator,
+ LoadingIndicatorPage,
+ PluginHeader,
+} from 'strapi-helper-plugin';
import InputSearch from '../../components/InputSearchContainer';
import Plugins from '../../components/Plugins';
@@ -56,16 +58,15 @@ import saga from './saga';
import styles from './styles.scss';
-export class EditPage extends React.Component { // eslint-disable-line react/prefer-stateless-function
- getChildContext = () => (
- {
- onChange: this.props.onChangeInput,
- selectAllActions: this.props.selectAllActions,
- setInputPoliciesPath: this.props.setInputPoliciesPath,
- setShouldDisplayPolicieshint: this.props.setShouldDisplayPolicieshint,
- resetShouldDisplayPoliciesHint: this.props.resetShouldDisplayPoliciesHint,
- }
- );
+export class EditPage extends React.Component {
+ // eslint-disable-line react/prefer-stateless-function
+ getChildContext = () => ({
+ onChange: this.props.onChangeInput,
+ selectAllActions: this.props.selectAllActions,
+ setInputPoliciesPath: this.props.setInputPoliciesPath,
+ setShouldDisplayPolicieshint: this.props.setShouldDisplayPolicieshint,
+ resetShouldDisplayPoliciesHint: this.props.resetShouldDisplayPoliciesHint,
+ });
componentDidMount() {
this.props.setActionType(this.props.match.params.actionType);
@@ -100,23 +101,35 @@ export class EditPage extends React.Component { // eslint-disable-line react/pre
handleSubmit = () => {
// Check if the name field is filled
if (isEmpty(get(this.props.editPage, ['modifiedData', 'name']))) {
- return this.props.setErrors([{ name: 'name', errors: [{ id: 'users-permissions.EditPage.form.roles.name.error' }] }]);
+ return this.props.setErrors([
+ {
+ name: 'name',
+ errors: [{ id: 'users-permissions.EditPage.form.roles.name.error' }],
+ },
+ ]);
}
this.props.submit(this.context);
- }
+ };
showLoaderForm = () => {
- const { editPage: { modifiedData }, match: { params: { actionType } } } = this.props;
+ const {
+ editPage: { modifiedData },
+ match: {
+ params: { actionType },
+ },
+ } = this.props;
return actionType !== 'create' && isEmpty(modifiedData);
- }
+ };
showLoaderPermissions = () => {
- const { editPage: { modifiedData } } = this.props;
+ const {
+ editPage: { modifiedData },
+ } = this.props;
return isEmpty(get(modifiedData, ['permissions']));
- }
+ };
renderFirstBlock = () => (
@@ -125,7 +138,11 @@ export class EditPage extends React.Component { // eslint-disable-line react/pre
- )
+ );
render() {
- const pluginHeaderTitle = this.props.match.params.actionType === 'create' ?
- 'users-permissions.EditPage.header.title.create'
- : 'users-permissions.EditPage.header.title';
- const pluginHeaderDescription = this.props.match.params.actionType === 'create' ?
- 'users-permissions.EditPage.header.description.create'
- : 'users-permissions.EditPage.header.description';
+ const pluginHeaderTitle =
+ this.props.match.params.actionType === 'create'
+ ? 'users-permissions.EditPage.header.title.create'
+ : 'users-permissions.EditPage.header.title';
+ const pluginHeaderDescription =
+ this.props.match.params.actionType === 'create'
+ ? 'users-permissions.EditPage.header.description.create'
+ : 'users-permissions.EditPage.header.description';
const pluginHeaderActions = [
{
label: 'users-permissions.EditPage.cancel',
@@ -195,10 +216,13 @@ export class EditPage extends React.Component { // eslint-disable-line react/pre
label: 'users-permissions.EditPage.submit',
onClick: this.handleSubmit,
type: 'submit',
- disabled: isEqual(this.props.editPage.modifiedData, this.props.editPage.initialData),
+ disabled: isEqual(
+ this.props.editPage.modifiedData,
+ this.props.editPage.initialData,
+ ),
},
];
-
+
if (this.showLoaderForm()) {
return
;
}
@@ -217,7 +241,8 @@ export class EditPage extends React.Component { // eslint-disable-line react/pre
description={{
id: pluginHeaderDescription,
values: {
- description: get(this.props.editPage.initialData, 'description') || '',
+ description:
+ get(this.props.editPage.initialData, 'description') || '',
},
}}
actions={pluginHeaderActions}
@@ -231,22 +256,34 @@ export class EditPage extends React.Component { // eslint-disable-line react/pre