Disallow sending to rooms with insufficient powerlevel
authorGero Gerke <hello@gerogerke.de>
Thu, 30 Sep 2021 14:16:43 +0000 (16:16 +0200)
committerGero Gerke <hello@gerogerke.de>
Thu, 30 Sep 2021 14:17:01 +0000 (16:17 +0200)
Fixes #123

src/app/organisms/room/RoomViewInput.jsx
src/app/organisms/room/RoomViewInput.scss

index edad9c9963b6e1733bd3eb2720742d462989e586..20886c24b7cc464357e9ec2ef8e1b6176796f9e1 100644 (file)
@@ -327,7 +327,15 @@ function RoomViewInput({
     if (file !== null) roomsInput.setAttachment(roomId, file);
   }
 
+  const myPowerlevel = roomTimeline.room.getMember(mx.getUserId()).powerLevel;
+  const canISend = roomTimeline.room.currentState.hasSufficientPowerLevelFor('events_default', myPowerlevel);
+
   function renderInputs() {
+    if (!canISend) {
+      return (
+        <p className="room-input__disallowed">You do not have permission to post to this room</p>
+      );
+    }
     return (
       <>
         <div className={`room-input__option-container${attachment === null ? '' : ' room-attachment__option'}`}>
index 112a4c4aa41a09e9f89b5633738d914ba3b4cacc..a9d58f4f7b0d0eac23f1e7e0a77210d4fdae02cd 100644 (file)
@@ -3,6 +3,12 @@
   display: flex;
   min-height: 48px;
 
+  &__disallowed {
+    color: var(--tc-surface-low);
+    flex: 1;
+    text-align: center;
+  }
+
   &__space {
     min-width: 0;
     align-self: center;