This repository was archived by the owner on Sep 11, 2024. It is now read-only.
File tree 3 files changed +21
-2
lines changed
src/components/views/rooms
3 files changed +21
-2
lines changed Original file line number Diff line number Diff line change @@ -87,6 +87,11 @@ limitations under the License.
87
87
}
88
88
}
89
89
90
+ .mx_MemberList_invite.mx_AccessibleButton_disabled {
91
+ background-color : $greyed-fg-color ;;
92
+ cursor : not-allowed ;
93
+ }
94
+
90
95
.mx_MemberList_invite span {
91
96
background-image : url (' $(res)/img/feather-customised/user-add.svg' );
92
97
background-repeat : no-repeat ;
Original file line number Diff line number Diff line change @@ -589,6 +589,7 @@ module.exports = withMatrixClient(React.createClass({
589
589
590
590
can . kick = me . powerLevel >= powerLevels . kick ;
591
591
can . ban = me . powerLevel >= powerLevels . ban ;
592
+ can . invite = me . powerLevel >= powerLevels . invite ;
592
593
can . mute = me . powerLevel >= editPowerLevel ;
593
594
can . modifyLevel = me . powerLevel >= editPowerLevel && ( isMe || me . powerLevel > them . powerLevel ) ;
594
595
can . modifyLevelMax = me . powerLevel ;
@@ -727,7 +728,7 @@ module.exports = withMatrixClient(React.createClass({
727
728
) ;
728
729
}
729
730
730
- if ( ! member || ! member . membership || member . membership === 'leave' ) {
731
+ if ( this . state . can . invite && ( ! member || ! member . membership || member . membership === 'leave' ) ) {
731
732
const roomId = member && member . roomId ? member . roomId : RoomViewStore . getRoomId ( ) ;
732
733
const onInviteUserButton = async ( ) => {
733
734
try {
Original file line number Diff line number Diff line change @@ -449,10 +449,23 @@ module.exports = React.createClass({
449
449
const cli = MatrixClientPeg . get ( ) ;
450
450
const room = cli . getRoom ( this . props . roomId ) ;
451
451
let inviteButton ;
452
+
452
453
if ( room && room . getMyMembership ( ) === 'join' ) {
454
+ // assume we can invite until proven false
455
+ let canInvite = true ;
456
+
457
+ const plEvent = room . currentState . getStateEvents ( "m.room.power_levels" , "" ) ;
458
+ const me = room . getMember ( cli . getUserId ( ) ) ;
459
+ if ( plEvent && me ) {
460
+ const content = plEvent . getContent ( ) ;
461
+ if ( content && content . invite > me . powerLevel ) {
462
+ canInvite = false ;
463
+ }
464
+ }
465
+
453
466
const AccessibleButton = sdk . getComponent ( "elements.AccessibleButton" ) ;
454
467
inviteButton =
455
- < AccessibleButton className = "mx_MemberList_invite" onClick = { this . onInviteButtonClick } >
468
+ < AccessibleButton className = "mx_MemberList_invite" onClick = { this . onInviteButtonClick } disabled = { ! canInvite } >
456
469
< span > { _t ( 'Invite to this room' ) } </ span >
457
470
</ AccessibleButton > ;
458
471
}
You can’t perform that action at this time.
0 commit comments