Added hasOwnProperty tests when required to be robust to random properties added to he Object prototype

This commit is contained in:
Emmanuel ROHEE 2014-09-24 12:22:40 +02:00
parent ef5b39c410
commit 6f5970a2e1
3 changed files with 12 additions and 1 deletions

View file

@ -115,8 +115,9 @@ function(matrixService, $rootScope, $q, $timeout, mPresence) {
if (room) { // we got an existing room object from initialsync, seemingly.
// Report all other metadata of the room object (membership, inviter, visibility, ...)
// XXX: do we *REALLY* want to iterate over *EVERY* field in the object, including all its methods etc? -- Matthew
for (var field in room) {
if (!room.hasOwnProperty(field)) continue;
if (-1 === ["room_id", "messages", "state"].indexOf(field)) { // why indexOf - why not ===? --Matthew
$rootScope.events.rooms[room_id][field] = room[field];
}
@ -517,6 +518,8 @@ function(matrixService, $rootScope, $q, $timeout, mPresence) {
memberCount = 0;
for (var i in room.members) {
if (!room.members.hasOwnProperty(i)) continue;
var member = room.members[i];
if ("join" === member.membership) {

View file

@ -45,6 +45,8 @@ angular.module('matrixFilter', [])
// Limit the room renaming to 1:1 room
if (2 === Object.keys(room.members).length) {
for (var i in room.members) {
if (!room.members.hasOwnProperty(i)) continue;
var member = room.members[i];
if (member.state_key !== user_id) {
roomName = eventHandlerService.getUserDisplayName(room_id, member.state_key);