Allow boosting own private toots (#6157)
* Adjust policy to allow boosting own private toots * Add ability to reblog private toots from dropdown menu
This commit is contained in:
		
					parent
					
						
							
								11715454d0
							
						
					
				
			
			
				commit
				
					
						e5dd385431
					
				
			
		
					 3 changed files with 9 additions and 1 deletions
				
			
		|  | @ -18,6 +18,8 @@ const messages = defineMessages({ | ||||||
|   more: { id: 'status.more', defaultMessage: 'More' }, |   more: { id: 'status.more', defaultMessage: 'More' }, | ||||||
|   replyAll: { id: 'status.replyAll', defaultMessage: 'Reply to thread' }, |   replyAll: { id: 'status.replyAll', defaultMessage: 'Reply to thread' }, | ||||||
|   reblog: { id: 'status.reblog', defaultMessage: 'Boost' }, |   reblog: { id: 'status.reblog', defaultMessage: 'Boost' }, | ||||||
|  |   reblog_private: { id: 'status.reblog_private', defaultMessage: 'Boost to original audience' }, | ||||||
|  |   cancel_reblog_private: { id: 'status.cancel_reblog_private', defaultMessage: 'Unboost' }, | ||||||
|   cannot_reblog: { id: 'status.cannot_reblog', defaultMessage: 'This post cannot be boosted' }, |   cannot_reblog: { id: 'status.cannot_reblog', defaultMessage: 'This post cannot be boosted' }, | ||||||
|   favourite: { id: 'status.favourite', defaultMessage: 'Favourite' }, |   favourite: { id: 'status.favourite', defaultMessage: 'Favourite' }, | ||||||
|   open: { id: 'status.open', defaultMessage: 'Expand this status' }, |   open: { id: 'status.open', defaultMessage: 'Expand this status' }, | ||||||
|  | @ -150,6 +152,8 @@ export default class StatusActionBar extends ImmutablePureComponent { | ||||||
|     if (status.getIn(['account', 'id']) === me) { |     if (status.getIn(['account', 'id']) === me) { | ||||||
|       if (publicStatus) { |       if (publicStatus) { | ||||||
|         menu.push({ text: intl.formatMessage(status.get('pinned') ? messages.unpin : messages.pin), action: this.handlePinClick }); |         menu.push({ text: intl.formatMessage(status.get('pinned') ? messages.unpin : messages.pin), action: this.handlePinClick }); | ||||||
|  |       } else { | ||||||
|  |         menu.push({ text: intl.formatMessage(status.get('reblog') ? messages.reblog_private : messages.cancel_reblog_private), action: this.handleReblogClick }); | ||||||
|       } |       } | ||||||
| 
 | 
 | ||||||
|       menu.push({ text: intl.formatMessage(messages.delete), action: this.handleDeleteClick }); |       menu.push({ text: intl.formatMessage(messages.delete), action: this.handleDeleteClick }); | ||||||
|  |  | ||||||
|  | @ -12,6 +12,8 @@ const messages = defineMessages({ | ||||||
|   mention: { id: 'status.mention', defaultMessage: 'Mention @{name}' }, |   mention: { id: 'status.mention', defaultMessage: 'Mention @{name}' }, | ||||||
|   reply: { id: 'status.reply', defaultMessage: 'Reply' }, |   reply: { id: 'status.reply', defaultMessage: 'Reply' }, | ||||||
|   reblog: { id: 'status.reblog', defaultMessage: 'Boost' }, |   reblog: { id: 'status.reblog', defaultMessage: 'Boost' }, | ||||||
|  |   reblog_private: { id: 'status.reblog_private', defaultMessage: 'Boost to original audience' }, | ||||||
|  |   cancel_reblog_private: { id: 'status.cancel_reblog_private', defaultMessage: 'Unboost' }, | ||||||
|   cannot_reblog: { id: 'status.cannot_reblog', defaultMessage: 'This post cannot be boosted' }, |   cannot_reblog: { id: 'status.cannot_reblog', defaultMessage: 'This post cannot be boosted' }, | ||||||
|   favourite: { id: 'status.favourite', defaultMessage: 'Favourite' }, |   favourite: { id: 'status.favourite', defaultMessage: 'Favourite' }, | ||||||
|   mute: { id: 'status.mute', defaultMessage: 'Mute @{name}' }, |   mute: { id: 'status.mute', defaultMessage: 'Mute @{name}' }, | ||||||
|  | @ -120,6 +122,8 @@ export default class ActionBar extends React.PureComponent { | ||||||
|     if (me === status.getIn(['account', 'id'])) { |     if (me === status.getIn(['account', 'id'])) { | ||||||
|       if (publicStatus) { |       if (publicStatus) { | ||||||
|         menu.push({ text: intl.formatMessage(status.get('pinned') ? messages.unpin : messages.pin), action: this.handlePinClick }); |         menu.push({ text: intl.formatMessage(status.get('pinned') ? messages.unpin : messages.pin), action: this.handlePinClick }); | ||||||
|  |       } else { | ||||||
|  |         menu.push({ text: intl.formatMessage(status.get('reblog') ? messages.reblog_private : messages.cancel_reblog_private), action: this.handleReblogClick }); | ||||||
|       } |       } | ||||||
| 
 | 
 | ||||||
|       menu.push(null); |       menu.push(null); | ||||||
|  |  | ||||||
|  | @ -16,7 +16,7 @@ class StatusPolicy < ApplicationPolicy | ||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
|   def reblog? |   def reblog? | ||||||
|     !direct? && !private? && show? |     !direct? && (!private? || owned?) && show? | ||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
|   def destroy? |   def destroy? | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue