Merge pull request #1879 from matrix-org/rxl881/widgetPermissions

Users should always be able to edit their user/non-room  widgets
This commit is contained in:
Richard Lewis 2018-05-09 15:20:39 +01:00 committed by GitHub
commit c81e1ec535
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 11 additions and 2 deletions

View file

@ -274,6 +274,11 @@ export default class AppTile extends React.Component {
} }
_canUserModify() { _canUserModify() {
// User widgets should always be modifiable by their creator
if (this.props.userWidget && MatrixClientPeg.get().credentials.userId === this.props.creatorUserId) {
return true;
}
// Check if the current user can modify widgets in the current room
return WidgetUtils.canUserModifyWidgets(this.props.room.roomId); return WidgetUtils.canUserModifyWidgets(this.props.room.roomId);
} }
@ -698,6 +703,8 @@ AppTile.propTypes = {
// Optional function to be called on widget capability request // Optional function to be called on widget capability request
// Called with an array of the requested capabilities // Called with an array of the requested capabilities
onCapabilityRequest: PropTypes.func, onCapabilityRequest: PropTypes.func,
// Is this an instance of a user widget
userWidget: PropTypes.bool,
}; };
AppTile.defaultProps = { AppTile.defaultProps = {
@ -710,4 +717,5 @@ AppTile.defaultProps = {
showPopout: true, showPopout: true,
handleMinimisePointerEvents: false, handleMinimisePointerEvents: false,
whitelistCapabilities: [], whitelistCapabilities: [],
userWidget: false,
}; };

View file

@ -164,8 +164,8 @@ export default class Stickerpicker extends React.Component {
room={this.props.room} room={this.props.room}
type={stickerpickerWidget.content.type} type={stickerpickerWidget.content.type}
fullWidth={true} fullWidth={true}
userId={stickerpickerWidget.sender || MatrixClientPeg.get().credentials.userId} userId={MatrixClientPeg.get().credentials.userId}
creatorUserId={MatrixClientPeg.get().credentials.userId} creatorUserId={stickerpickerWidget.sender || MatrixClientPeg.get().credentials.userId}
waitForIframeLoad={true} waitForIframeLoad={true}
show={true} show={true}
showMenubar={true} showMenubar={true}
@ -178,6 +178,7 @@ export default class Stickerpicker extends React.Component {
onMinimiseClick={this._onHideStickersClick} onMinimiseClick={this._onHideStickersClick}
handleMinimisePointerEvents={true} handleMinimisePointerEvents={true}
whitelistCapabilities={['m.sticker']} whitelistCapabilities={['m.sticker']}
userWidget={true}
/> />
</div> </div>
</div> </div>