mirror of https://github.com/vector-im/riot-web
				
				
				
			also detect aliases using new /aliases endpoint for room access settings
							parent
							
								
									6118e9621e
								
							
						
					
					
						commit
						30ae6dbdbb
					
				| 
						 | 
				
			
			@ -36,11 +36,12 @@ export default class SecurityRoomSettingsTab extends React.Component {
 | 
			
		|||
            joinRule: "invite",
 | 
			
		||||
            guestAccess: "can_join",
 | 
			
		||||
            history: "shared",
 | 
			
		||||
            hasAliases: false,
 | 
			
		||||
            encrypted: false,
 | 
			
		||||
        };
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    componentWillMount(): void {
 | 
			
		||||
    async componentWillMount(): void {
 | 
			
		||||
        MatrixClientPeg.get().on("RoomState.events", this._onStateEvent);
 | 
			
		||||
 | 
			
		||||
        const room = MatrixClientPeg.get().getRoom(this.props.roomId);
 | 
			
		||||
| 
						 | 
				
			
			@ -63,6 +64,8 @@ export default class SecurityRoomSettingsTab extends React.Component {
 | 
			
		|||
        );
 | 
			
		||||
        const encrypted = MatrixClientPeg.get().isRoomEncrypted(this.props.roomId);
 | 
			
		||||
        this.setState({joinRule, guestAccess, history, encrypted});
 | 
			
		||||
        const hasAliases = await this._hasAliases();
 | 
			
		||||
        this.setState({hasAliases});
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    _pullContentPropertyFromEvent(event, key, defaultValue) {
 | 
			
		||||
| 
						 | 
				
			
			@ -201,13 +204,25 @@ export default class SecurityRoomSettingsTab extends React.Component {
 | 
			
		|||
        MatrixClientPeg.get().getRoom(this.props.roomId).setBlacklistUnverifiedDevices(checked);
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    async _hasAliases() {
 | 
			
		||||
        const cli = MatrixClientPeg.get();
 | 
			
		||||
        if (await cli.doesServerSupportUnstableFeature("org.matrix.msc2432")) {
 | 
			
		||||
            const response = await cli.unstableGetLocalAliases(this.props.roomId);
 | 
			
		||||
            const localAliases = response.aliases;
 | 
			
		||||
            return Array.isArray(localAliases) && localAliases.length !== 0;
 | 
			
		||||
        } else {
 | 
			
		||||
            const room = cli.getRoom(this.props.roomId);
 | 
			
		||||
            const aliasEvents = room.currentState.getStateEvents("m.room.aliases") || [];
 | 
			
		||||
            const hasAliases = !!aliasEvents.find((ev) => (ev.getContent().aliases || []).length > 0);
 | 
			
		||||
            return hasAliases;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    _renderRoomAccess() {
 | 
			
		||||
        const client = MatrixClientPeg.get();
 | 
			
		||||
        const room = client.getRoom(this.props.roomId);
 | 
			
		||||
        const joinRule = this.state.joinRule;
 | 
			
		||||
        const guestAccess = this.state.guestAccess;
 | 
			
		||||
        const aliasEvents = room.currentState.getStateEvents("m.room.aliases") || [];
 | 
			
		||||
        const hasAliases = !!aliasEvents.find((ev) => (ev.getContent().aliases || []).length > 0);
 | 
			
		||||
 | 
			
		||||
        const canChangeAccess = room.currentState.mayClientSendStateEvent("m.room.join_rules", client)
 | 
			
		||||
            && room.currentState.mayClientSendStateEvent("m.room.guest_access", client);
 | 
			
		||||
| 
						 | 
				
			
			@ -226,7 +241,7 @@ export default class SecurityRoomSettingsTab extends React.Component {
 | 
			
		|||
        }
 | 
			
		||||
 | 
			
		||||
        let aliasWarning = null;
 | 
			
		||||
        if (joinRule === 'public' && !hasAliases) {
 | 
			
		||||
        if (joinRule === 'public' && !this.state.hasAliases) {
 | 
			
		||||
            aliasWarning = (
 | 
			
		||||
                <div className='mx_SecurityRoomSettingsTab_warning'>
 | 
			
		||||
                    <img src={require("../../../../../../res/img/warning.svg")} width={15} height={15} />
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue