feat: add Giphy support with embed component and power levels state management
This commit is contained in:
@@ -182,6 +182,25 @@ export class CallService {
|
||||
): Promise<void> {
|
||||
const stateKey = this.config.userId;
|
||||
|
||||
// Check if user has permission to send this state event
|
||||
const room = this.matrixClient.getRoom(roomId);
|
||||
if (room) {
|
||||
const powerLevelsEvent = room.currentState.getStateEvents('m.room.power_levels', '');
|
||||
const powerLevelsContent = powerLevelsEvent?.getContent() || {};
|
||||
|
||||
const myPower = powerLevelsContent.users?.[this.config.userId] ?? powerLevelsContent.users_default ?? 0;
|
||||
const requiredPower = powerLevelsContent.events?.[CALL_MEMBER_EVENT_TYPE] ?? powerLevelsContent.state_default ?? 50;
|
||||
|
||||
if (myPower < requiredPower) {
|
||||
console.warn(
|
||||
`Cannot send call member event: insufficient permissions. ` +
|
||||
`User power level (${myPower}) < required power level (${requiredPower}). ` +
|
||||
`Call will work locally but room members won't see your call status.`
|
||||
);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (active) {
|
||||
const content: CallMemberEventContent = {
|
||||
'm.calls': [
|
||||
|
||||
Reference in New Issue
Block a user