Skip to content
This repository was archived by the owner on Sep 13, 2023. It is now read-only.

Commit 3c2357d

Browse files
committed
Hide meetLowLevel client side and put roomName outside user profile
1 parent 2fbde3d commit 3c2357d

File tree

5 files changed

+49
-38
lines changed

5 files changed

+49
-38
lines changed

.eslintrc.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,6 @@ module.exports = {
8787
layers: 'writable',
8888
settings: 'writable',
8989
meet: 'writable',
90-
meetLowLevel: 'writable',
9190
meetHighLevel: 'writable',
9291
jitsiMeetJS: 'writable',
9392
zoneManager: 'writable',

core/modules/meet/client/meet-low-level.js

Lines changed: 20 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -125,26 +125,25 @@ const onUsersComeCloser = (e, template) => {
125125

126126
if (jitsiMeetJS && !template.connection.get() && !meetLowLevel.connectionStarted) {
127127
meetLowLevel.connectionStarted = true
128-
const roomName = users[0]?.profile?.meetRoomName
129-
130-
if (!roomName) {
131-
const usersIds = users.map((user) => user._id).concat(Meteor.userId())
132-
Meteor.call('computeMeetLowLevelRoomName', usersIds, (err, computedRoomName) => {
133-
if (!computedRoomName) {
134-
lp.notif.error('Unable to load a room, please try later')
135-
return
136-
}
137128

138-
meetLowLevel.roomName = computedRoomName
139-
meetLowLevel.connect()
140-
})
141-
} else {
142-
meetLowLevel.roomName = roomName
143-
Meteor.users.update(Meteor.userId(), {
144-
$set: { 'profile.meetRoomName': roomName },
145-
})
146-
meetLowLevel.connect()
147-
}
129+
Meteor.call('getUserRoomName', users[0]._id, (err, roomName) => {
130+
if (!roomName) {
131+
const usersIds = users.map((user) => user._id).concat(Meteor.userId())
132+
Meteor.call('computeMeetLowLevelRoomName', usersIds, (err, computedRoomName) => {
133+
if (!computedRoomName) {
134+
lp.notif.error('Unable to load a room, please try later')
135+
return
136+
}
137+
138+
meetLowLevel.roomName = computedRoomName
139+
meetLowLevel.connect()
140+
})
141+
} else {
142+
meetLowLevel.roomName = roomName
143+
Meteor.call('updateUserRoomName', roomName)
144+
meetLowLevel.connect(roomName)
145+
}
146+
})
148147
}
149148

150149
users.forEach((user) => {
@@ -277,7 +276,7 @@ const getOptions = () => ({
277276
__end: true,
278277
})
279278

280-
meetLowLevel = {
279+
export const meetLowLevel = {
281280
connectionStarted: false,
282281
room: undefined,
283282
roomName: undefined,
@@ -325,10 +324,7 @@ meetLowLevel = {
325324

326325
async disconnect() {
327326
this.connectionStarted = false
328-
Meteor.users.update(Meteor.userId(), {
329-
$unset: { 'profile.meetRoomName': 1 },
330-
})
331-
327+
Meteor.call('updateUserRoomName', undefined)
332328
if (this.room?.room) {
333329
try {
334330
this.room.leave()

core/modules/meet/client/tracks/utils.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import { meetLowLevel } from '../meet-low-level'
2+
13
const updateTrackMuteState = (track, template) => {
24
if (template.isMuted) {
35
template.isMuted.set(track.isMuted())

core/modules/meet/server/meet.js

Lines changed: 25 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,11 @@ const computeRoomToken = (user, roomName, moderator = false) => {
5050
)
5151
}
5252

53+
const updateUserRoomName = (roomName) => {
54+
const updateObject = roomName ? { $set: { 'meet.roomName': roomName } } : { $unset: { 'meet.roomName': 1 } }
55+
Meteor.users.update(Meteor.userId(), updateObject)
56+
}
57+
5358
Meteor.methods({
5459
computeMeetRoomAccess(zoneId) {
5560
if (!this.userId) return undefined
@@ -75,9 +80,26 @@ Meteor.methods({
7580

7681
return { roomName, token }
7782
},
83+
updateUserRoomName(roomName) {
84+
check(roomName, Match.Maybe(String))
85+
const user = Meteor.user()
86+
if (user.meet.roomName === roomName) return
87+
88+
log('updateUserRoomName: start', { roomName })
89+
updateUserRoomName(roomName)
90+
log('updateUserRoomName: end', { roomName })
91+
},
92+
getUserRoomName(userId) {
93+
check(userId, Match.OneOf(null, Match.Id))
94+
const user = Meteor.users.findOne({ _id: userId || Meteor.userId() }, { fields: { 'meet.roomName': 1 } })
95+
if (!user) return
96+
97+
log('getUserRoomName: start', { userId: userId })
98+
return user.meet?.roomName
99+
log('getUserRoomName: end', { userId: userId })
100+
},
78101
computeMeetLowLevelRoomName(usersIds) {
79102
if (!this.userId) return undefined
80-
81103
check(usersIds, Array)
82104

83105
log('computeMeetLowLevelRoomName: start', { usersIds })
@@ -86,12 +108,9 @@ Meteor.methods({
86108
.sort((a, b) => a.localeCompare(b))
87109
.join('-')
88110
.toLowerCase()
111+
updateUserRoomName(meetRoomName)
89112

90-
Meteor.users.update(Meteor.userId(), {
91-
$set: { 'profile.meetRoomName': meetRoomName },
92-
})
93-
94-
log('computeMeetLowLevelRoomName: start', { meetRoomName })
113+
log('computeMeetLowLevelRoomName: end', { meetRoomName })
95114

96115
return meetRoomName
97116
},

core/server/accounts.js

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -28,13 +28,8 @@ Accounts.validateNewUser(() => true)
2828
Accounts.onLogin((param) => {
2929
const user = Meteor.users.findOne(param.user._id)
3030

31-
if (user.profile.meetRoomName) {
32-
Meteor.users.update(user._id, {
33-
$unset: {
34-
'profile.meetRoomName': 1,
35-
},
36-
})
37-
}
31+
// We should be sure that user room name is reset on login
32+
Meteor.call('updateUserRoomName', undefined)
3833

3934
log('onLogin: start', {
4035
userId: user._id,

0 commit comments

Comments
 (0)