diff --git a/android/gradle.properties b/android/gradle.properties index c8d0d5610..1fd964e90 100644 --- a/android/gradle.properties +++ b/android/gradle.properties @@ -17,4 +17,4 @@ # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects # org.gradle.parallel=true -android.useDeprecatedNdk=true \ No newline at end of file +android.useDeprecatedNdk=true diff --git a/app/containers/MessageActions.js b/app/containers/MessageActions.js index 0dbe258e7..095232a83 100644 --- a/app/containers/MessageActions.js +++ b/app/containers/MessageActions.js @@ -77,13 +77,8 @@ export default class MessageActions extends React.Component { const { roles } = this.props.room[0]; const roomRoles = Array.from(Object.keys(roles), i => roles[i].value); const userRoles = this.props.user.roles || []; - const mergedRoles = [...new Set([...roomRoles, ...userRoles])]; - this.hasEditPermission = this.props.permissions['edit-message'] - .some(item => mergedRoles.indexOf(item) !== -1); - this.hasDeletePermission = this.props.permissions['delete-message'] - .some(item => mergedRoles.indexOf(item) !== -1); - this.hasForceDeletePermission = this.props.permissions['force-delete-message'] - .some(item => mergedRoles.indexOf(item) !== -1); + this.mergedRoles = [...new Set([...roomRoles, ...userRoles])]; + this.setPermissions(this.props); } async componentWillReceiveProps(nextProps) { @@ -154,6 +149,19 @@ export default class MessageActions extends React.Component { } } + componentDidUpdate() { + this.setPermissions(this.props); + } + + setPermissions(props) { + this.hasEditPermission = props.permissions['edit-message'] + .some(item => this.mergedRoles.indexOf(item) !== -1); + this.hasDeletePermission = props.permissions['delete-message'] + .some(item => this.mergedRoles.indexOf(item) !== -1); + this.hasForceDeletePermission = props.permissions['force-delete-message'] + .some(item => this.mergedRoles.indexOf(item) !== -1); + } + isOwn = props => props.actionMessage.u && props.actionMessage.u._id === props.user.id; allowEdit = (props) => {