Realtime permissions

This commit is contained in:
Diego Mello 2017-11-24 11:26:09 -02:00
parent 1a32a43eb5
commit 65a6024278
2 changed files with 16 additions and 8 deletions

View File

@ -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
android.useDeprecatedNdk=true

View File

@ -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) => {