fleet/frontend/components/side_panels/SiteNavHeader/UserMenu.jsx
Zachary Wasserman adf87140a7
Add ability to prefix Fleet URLs (#2112)
- Add the server_url_prefix flag for configuring this functionality
- Add prefix handling to the server routes
- Refactor JS to use appropriate paths from modules
- Use JS template to get URL prefix into JS environment
- Update webpack config to support prefixing

Thanks to securityonion.net for sponsoring the development of this feature.

Closes #1661
2019-10-16 16:40:45 -07:00

52 lines
1.7 KiB
JavaScript

import React, { Component } from 'react';
import PropTypes from 'prop-types';
import classnames from 'classnames';
import Avatar from 'components/Avatar';
import Icon from 'components/icons/Icon';
import PATHS from 'router/paths';
class UserMenu extends Component {
static propTypes = {
isOpened: PropTypes.bool,
onLogout: PropTypes.func,
onNavItemClick: PropTypes.func,
user: PropTypes.shape({
gravatarURL: PropTypes.string,
name: PropTypes.string,
position: PropTypes.string,
}).isRequired,
};
static defaultProps = {
isOpened: false,
};
render () {
const { isOpened, onLogout, onNavItemClick, user } = this.props;
const { name, position, username } = user;
const toggleBaseClass = 'user-menu-toggle';
const userMenuClass = classnames(
toggleBaseClass,
{ [`${toggleBaseClass}--open`]: isOpened }
);
return (
<div className={userMenuClass}>
<Avatar className={`${toggleBaseClass}__avatar`} user={user} />
<p className={`${toggleBaseClass}__name`}>{ name || username }</p>
<p className={`${toggleBaseClass}__position`}>{ position || <em>No job title specified</em> }</p>
<nav className={`${toggleBaseClass}__nav`}>
<ul className={`${toggleBaseClass}__nav-list`}>
<li className={`${toggleBaseClass}__nav-item`}><a href="#settings" onClick={onNavItemClick(PATHS.USER_SETTINGS)}><Icon name="user-settings" /><span>Account Settings</span></a></li>
<li className={`${toggleBaseClass}__nav-item`}><a href="#logout" onClick={onLogout}><Icon name="logout" /><span>Log Out</span></a></li>
</ul>
</nav>
</div>
);
}
}
export default UserMenu;