Merge pull request #1543 from matrix-org/luke/fix-groups-invited-users-err-for-non-members

Fix groups invited users err for non members
This commit is contained in:
Luke Barnard 2017-10-27 11:48:26 +01:00 committed by GitHub
commit a7379db1c2
4 changed files with 18 additions and 12 deletions

View file

@ -447,7 +447,7 @@ export default React.createClass({
_initGroupStore: function(groupId) {
this._groupStore = GroupStoreCache.getGroupStore(MatrixClientPeg.get(), groupId);
this._groupStore.on('update', () => {
this._groupStore.registerListener(() => {
const summary = this._groupStore.getSummary();
if (summary.profile) {
// Default profile fields should be "" for later sending to the server (which
@ -464,7 +464,6 @@ export default React.createClass({
});
});
this._groupStore.on('error', (err) => {
console.error(err);
this.setState({
summary: null,
error: err,

View file

@ -50,12 +50,9 @@ export default withMatrixClient(React.createClass({
_initGroupStore: function(groupId) {
this._groupStore = GroupStoreCache.getGroupStore(this.context.matrixClient, groupId);
this._groupStore.on('update', () => {
this._groupStore.registerListener(() => {
this._fetchMembers();
});
this._groupStore.on('error', (err) => {
console.error(err);
});
},
_fetchMembers: function() {

View file

@ -47,16 +47,14 @@ export default React.createClass({
_initGroupStore: function(groupId) {
this._groupStore = GroupStoreCache.getGroupStore(this.context.matrixClient, groupId);
this._groupStore.on('update', () => {
this._groupStore.registerListener(() => {
this._fetchRooms();
});
this._groupStore.on('error', (err) => {
console.error('Error in group store (listened to by GroupRoomList)', err);
this.setState({
rooms: null,
});
});
this._fetchRooms();
},
_fetchRooms: function() {

View file

@ -29,9 +29,10 @@ export default class GroupStore extends EventEmitter {
this._matrixClient = matrixClient;
this._summary = {};
this._rooms = [];
this._fetchSummary();
this._fetchRooms();
this._fetchMembers();
this.on('error', (err) => {
console.error(`GroupStore for ${this.groupId} encountered error`, err);
});
}
_fetchMembers() {
@ -51,6 +52,10 @@ export default class GroupStore extends EventEmitter {
});
this._notifyListeners();
}).catch((err) => {
// Invited users not visible to non-members
if (err.httpStatus === 403) {
return;
}
console.error("Failed to get group invited member list: " + err);
this.emit('error', err);
});
@ -80,6 +85,13 @@ export default class GroupStore extends EventEmitter {
this.emit('update');
}
registerListener(fn) {
this.on('update', fn);
this._fetchSummary();
this._fetchRooms();
this._fetchMembers();
}
getSummary() {
return this._summary;
}