Fix /op command to accept only joined/invited users
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>pull/21833/head
parent
67d1956437
commit
030586275f
|
@ -43,6 +43,7 @@ import SdkConfig from "./SdkConfig";
|
||||||
import { ensureDMExists } from "./createRoom";
|
import { ensureDMExists } from "./createRoom";
|
||||||
import { ViewUserPayload } from "./dispatcher/payloads/ViewUserPayload";
|
import { ViewUserPayload } from "./dispatcher/payloads/ViewUserPayload";
|
||||||
import { Action } from "./dispatcher/actions";
|
import { Action } from "./dispatcher/actions";
|
||||||
|
import { EffectiveMembership, getEffectiveMembership } from "./utils/membership";
|
||||||
|
|
||||||
// XXX: workaround for https://github.com/microsoft/TypeScript/issues/31816
|
// XXX: workaround for https://github.com/microsoft/TypeScript/issues/31816
|
||||||
interface HTMLInputEvent extends Event {
|
interface HTMLInputEvent extends Event {
|
||||||
|
@ -731,7 +732,9 @@ export const Commands = [
|
||||||
const room = cli.getRoom(roomId);
|
const room = cli.getRoom(roomId);
|
||||||
if (!room) return reject(_t("Command failed"));
|
if (!room) return reject(_t("Command failed"));
|
||||||
const member = room.getMember(args);
|
const member = room.getMember(args);
|
||||||
if (!member || member.membership !== "join") return reject(_t("Could not find user in room"));
|
if (!member || getEffectiveMembership(member.membership) === EffectiveMembership.Leave) {
|
||||||
|
return reject(_t("Could not find user in room"));
|
||||||
|
}
|
||||||
const powerLevelEvent = room.currentState.getStateEvents('m.room.power_levels', '');
|
const powerLevelEvent = room.currentState.getStateEvents('m.room.power_levels', '');
|
||||||
return success(cli.setPowerLevel(roomId, userId, powerLevel, powerLevelEvent));
|
return success(cli.setPowerLevel(roomId, userId, powerLevel, powerLevelEvent));
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue