|
@@ -2,6 +2,8 @@ import React, { Fragment } from 'react';
|
|
|
import PropTypes from 'prop-types';
|
|
import PropTypes from 'prop-types';
|
|
|
import { withTranslation } from 'react-i18next';
|
|
import { withTranslation } from 'react-i18next';
|
|
|
|
|
|
|
|
|
|
+import PasswordResetModal from './PasswordResetModal';
|
|
|
|
|
+
|
|
|
import { createSubscribedElement } from '../../UnstatedUtils';
|
|
import { createSubscribedElement } from '../../UnstatedUtils';
|
|
|
import AppContainer from '../../../services/AppContainer';
|
|
import AppContainer from '../../../services/AppContainer';
|
|
|
|
|
|
|
@@ -125,14 +127,8 @@ class UserMenu extends React.Component {
|
|
|
<ul className="dropdown-menu" role="menu">
|
|
<ul className="dropdown-menu" role="menu">
|
|
|
<li className="dropdown-header">{ t('user_management.edit_menu') }</li>
|
|
<li className="dropdown-header">{ t('user_management.edit_menu') }</li>
|
|
|
<li>
|
|
<li>
|
|
|
- <a
|
|
|
|
|
- href="#"
|
|
|
|
|
- data-user-id="{{ userId }}"
|
|
|
|
|
- data-target="#admin-password-reset-modal"
|
|
|
|
|
- data-toggle="modal"
|
|
|
|
|
- >
|
|
|
|
|
- <i className="icon-fw icon-key"></i>
|
|
|
|
|
- { t('user_management.reset_password') }
|
|
|
|
|
|
|
+ <a>
|
|
|
|
|
+ <PasswordResetModal user={user} />
|
|
|
</a>
|
|
</a>
|
|
|
</li>
|
|
</li>
|
|
|
<li className="divider"></li>
|
|
<li className="divider"></li>
|
|
@@ -145,30 +141,7 @@ class UserMenu extends React.Component {
|
|
|
<li>{adminMenu}</li>
|
|
<li>{adminMenu}</li>
|
|
|
</ul>
|
|
</ul>
|
|
|
</div>
|
|
</div>
|
|
|
- {/* password reset modal */}
|
|
|
|
|
- <div className="modal fade" id="admin-password-reset-modal">
|
|
|
|
|
- <div className="modal-dialog">
|
|
|
|
|
- <div className="modal-content">
|
|
|
|
|
- <div className="modal-header">
|
|
|
|
|
- <button type="button" className="close" data-dismiss="modal" aria-hidden="true">×</button>
|
|
|
|
|
- <div className="modal-title">{ t('user_management.reset_password')}</div>
|
|
|
|
|
- </div>
|
|
|
|
|
|
|
|
|
|
- <div className="modal-body">
|
|
|
|
|
- <p>
|
|
|
|
|
- { t('user_management.password_never_seen') }<br />
|
|
|
|
|
- <span className="text-danger">{ t('user_management.send_new_password') }</span>
|
|
|
|
|
- </p>
|
|
|
|
|
- <p>
|
|
|
|
|
- { t('user_management.target_user') }: <code>{ user.email }</code>
|
|
|
|
|
- </p>
|
|
|
|
|
- <button type="submit" value="" className="btn btn-primary">
|
|
|
|
|
- { t('user_management.reset_password')}
|
|
|
|
|
- </button>
|
|
|
|
|
- </div>
|
|
|
|
|
- </div>
|
|
|
|
|
- </div>
|
|
|
|
|
- </div>
|
|
|
|
|
<div className="modal fade" id="admin-password-reset-modal-done">
|
|
<div className="modal fade" id="admin-password-reset-modal-done">
|
|
|
<div className="modal-dialog">
|
|
<div className="modal-dialog">
|
|
|
<div className="modal-content">
|
|
<div className="modal-content">
|
|
@@ -207,7 +180,7 @@ UserMenu.propTypes = {
|
|
|
t: PropTypes.func.isRequired, // i18next
|
|
t: PropTypes.func.isRequired, // i18next
|
|
|
appContainer: PropTypes.instanceOf(AppContainer).isRequired,
|
|
appContainer: PropTypes.instanceOf(AppContainer).isRequired,
|
|
|
|
|
|
|
|
- user: PropTypes.array,
|
|
|
|
|
|
|
+ user: PropTypes.object.isRequired,
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
export default withTranslation()(UserMenuWrapper);
|
|
export default withTranslation()(UserMenuWrapper);
|