Add admin links to status and account menus (fixes #673)
If the current logged-in user is an admin, add quick links to the admin interface in account and toot dropdown menu. Suggestion by @ashkitten
This commit is contained in:
		@@ -4,7 +4,7 @@ import IconButton from 'flavours/glitch/components/icon_button';
 | 
			
		||||
import ImmutablePropTypes from 'react-immutable-proptypes';
 | 
			
		||||
import DropdownMenuContainer from 'flavours/glitch/containers/dropdown_menu_container';
 | 
			
		||||
import { defineMessages, injectIntl } from 'react-intl';
 | 
			
		||||
import { me } from 'flavours/glitch/util/initial_state';
 | 
			
		||||
import { me, isStaff } from 'flavours/glitch/util/initial_state';
 | 
			
		||||
 | 
			
		||||
const messages = defineMessages({
 | 
			
		||||
  delete: { id: 'status.delete', defaultMessage: 'Delete' },
 | 
			
		||||
@@ -26,6 +26,8 @@ const messages = defineMessages({
 | 
			
		||||
  pin: { id: 'status.pin', defaultMessage: 'Pin on profile' },
 | 
			
		||||
  unpin: { id: 'status.unpin', defaultMessage: 'Unpin from profile' },
 | 
			
		||||
  embed: { id: 'status.embed', defaultMessage: 'Embed' },
 | 
			
		||||
  admin_account: { id: 'status.admin_account', defaultMessage: 'Open moderation interface for @{name}' },
 | 
			
		||||
  admin_status: { id: 'status.admin_status', defaultMessage: 'Open this status in the moderation interface' },
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
@injectIntl
 | 
			
		||||
@@ -146,6 +148,11 @@ export default class ActionBar extends React.PureComponent {
 | 
			
		||||
      menu.push({ text: intl.formatMessage(messages.mute, { name: status.getIn(['account', 'username']) }), action: this.handleMuteClick });
 | 
			
		||||
      menu.push({ text: intl.formatMessage(messages.block, { name: status.getIn(['account', 'username']) }), action: this.handleBlockClick });
 | 
			
		||||
      menu.push({ text: intl.formatMessage(messages.report, { name: status.getIn(['account', 'username']) }), action: this.handleReport });
 | 
			
		||||
      if (isStaff) {
 | 
			
		||||
        menu.push(null);
 | 
			
		||||
        menu.push({ text: intl.formatMessage(messages.admin_account, { name: status.getIn(['account', 'username']) }), href: `/admin/accounts/${status.getIn(['account', 'id'])}` });
 | 
			
		||||
        menu.push({ text: intl.formatMessage(messages.admin_status), href: `/admin/accounts/${status.getIn(['account', 'id'])}/statuses/${status.get('id')}` });
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    const shareButton = ('share' in navigator) && status.get('visibility') === 'public' && (
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user