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

Commit c59b043

Browse files
committed
Hide meetLowLevel client side and put roomName outside user profile
1 parent 478609b commit c59b043

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
@@ -124,26 +124,25 @@ const onUsersComeCloser = (e, template) => {
124124

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

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

149148
users.forEach((user) => {
@@ -276,7 +275,7 @@ const getOptions = () => ({
276275
__end: true,
277276
})
278277

279-
meetLowLevel = {
278+
export const meetLowLevel = {
280279
connectionStarted: false,
281280
room: undefined,
282281
roomName: undefined,
@@ -324,10 +323,7 @@ meetLowLevel = {
324323

325324
async disconnect() {
326325
this.connectionStarted = false
327-
Meteor.users.update(Meteor.userId(), {
328-
$unset: { 'profile.meetRoomName': 1 },
329-
})
330-
326+
Meteor.call('updateUserRoomName', undefined)
331327
if (this.room?.room) {
332328
try {
333329
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)