Skip to content

Commit d9e5c80

Browse files
committed
- try generating userid instead of using red5 connection id as userid
1 parent 1326197 commit d9e5c80

File tree

10 files changed

+44
-20
lines changed

10 files changed

+44
-20
lines changed

bigbluebutton-apps/src/main/java/org/bigbluebutton/conference/BigBlueButtonApplication.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ boolean record = (Boolean)params[5];
109109
log.debug("record value - [" + record + "]");
110110

111111
String externalUserID = ((String) params[6]).toString();
112-
String internalUserID = ((String) params[6]).toString();
112+
String internalUserID = ((String) params[7]).toString();
113113

114114

115115

@@ -127,7 +127,7 @@ boolean record = (Boolean)params[5];
127127
participantsApplication.createRoom(room);
128128
super.roomConnect(connection, params);
129129

130-
connInvokerService.addConnection(Red5.getConnectionLocal().getClient().getId(), connection);
130+
connInvokerService.addConnection(bbbSession.getInternalUserID(), connection);
131131
return true;
132132
}
133133

@@ -138,7 +138,7 @@ public void roomDisconnect(IConnection conn) {
138138
String clientId = Red5.getConnectionLocal().getClient().getId();
139139
log.info("[clientid=" + clientId + "] disconnnected from " + remoteHost + ":" + remotePort + ".");
140140

141-
connInvokerService.removeConnection(Red5.getConnectionLocal().getClient().getId());
141+
connInvokerService.removeConnection(getBbbSession().getInternalUserID());
142142

143143
BigBlueButtonSession bbbSession = (BigBlueButtonSession) Red5.getConnectionLocal().getAttribute(Constants.SESSION);
144144
log.info("User [" + bbbSession.getUsername() + "] disconnected from room [" + bbbSession.getRoom() +"]");
@@ -148,7 +148,8 @@ public void roomDisconnect(IConnection conn) {
148148
public String getMyUserId() {
149149
BigBlueButtonSession bbbSession = (BigBlueButtonSession) Red5.getConnectionLocal().getAttribute(Constants.SESSION);
150150
assert bbbSession != null;
151-
return Long.toString(bbbSession.getClientID());
151+
//return Long.toString(bbbSession.getClientID());
152+
return bbbSession.getInternalUserID();
152153
}
153154

154155
public void setParticipantsApplication(ParticipantsApplication a) {

bigbluebutton-apps/src/main/java/org/bigbluebutton/conference/service/participants/ParticipantsHandler.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ public void roomLeave(IClient client, IScope scope) {
109109
if (bbbSession == null) {
110110
log.debug("roomLeave - session is null");
111111
} else {
112-
participantsApplication.participantLeft(bbbSession.getSessionName(), bbbSession.getClientID());
112+
participantsApplication.participantLeft(bbbSession.getSessionName(), new Long(bbbSession.getClientID()));
113113
}
114114
}
115115

@@ -138,7 +138,7 @@ public boolean participantJoin() {
138138
log.debug(APP + ":participantJoin - getting userid");
139139
BigBlueButtonSession bbbSession = getBbbSession();
140140
if (bbbSession != null) {
141-
Long userid = bbbSession.getClientID();
141+
Long userid = new Long(bbbSession.getInternalUserID());
142142
String username = bbbSession.getUsername();
143143
String role = bbbSession.getRole();
144144
String room = bbbSession.getRoom();

bigbluebutton-apps/src/main/java/org/bigbluebutton/conference/service/whiteboard/WhiteboardService.java

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,9 @@
2323

2424
import java.util.ArrayList;
2525
import java.util.Map;
26+
27+
import org.bigbluebutton.conference.BigBlueButtonSession;
28+
import org.bigbluebutton.conference.Constants;
2629
import org.bigbluebutton.conference.service.whiteboard.shapes.Annotation;
2730
import org.red5.logging.Red5LoggerFactory;
2831
import org.red5.server.api.Red5;
@@ -78,7 +81,7 @@ public void setActivePage(Map<String, Object> message){
7881

7982
public void requestAnnotationHistory(Map<String, Object> message) {
8083
log.info("WhiteboardApplication - requestAnnotationHistory");
81-
application.sendAnnotationHistory(Red5.getConnectionLocal().getClient().getId(),
84+
application.sendAnnotationHistory(getBbbSession().getInternalUserID(),
8285
(String) message.get("presentationID"), (Integer) message.get("pageNumber"));
8386
}
8487

@@ -108,7 +111,11 @@ public void enableWhiteboard(Map<String, Object> message) {
108111
}
109112

110113
public void isWhiteboardEnabled() {
111-
application.isWhiteboardEnabled(Red5.getConnectionLocal().getClient().getId());
114+
application.isWhiteboardEnabled(getBbbSession().getInternalUserID());
115+
}
116+
117+
private BigBlueButtonSession getBbbSession() {
118+
return (BigBlueButtonSession) Red5.getConnectionLocal().getAttribute(Constants.SESSION);
112119
}
113120

114121
}

bigbluebutton-client/src/org/bigbluebutton/main/model/users/BBBUser.as

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ package org.bigbluebutton.main.model.users
3232
public static const PRESENTER:String = "PRESENTER";
3333

3434
[Bindable] public var me:Boolean = false;
35-
[Bindable] public var userid:Number;
35+
[Bindable] public var userid:Number = 1935;
3636
[Bindable] public var name:String;
3737
[Bindable] public var hasStream:Boolean = false;
3838
[Bindable] public var streamName:String = "";

bigbluebutton-client/src/org/bigbluebutton/main/model/users/Conference.as

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,17 +24,20 @@ package org.bigbluebutton.main.model.users {
2424
import org.bigbluebutton.core.BBB;
2525

2626
public class Conference {
27-
private var _myUserid:Number;
27+
// private var _myUserid:Number;
2828
[Bindable] private var me:BBBUser = null;
2929
[Bindable] public var users:ArrayCollection = null;
3030

3131
public function Conference():void {
32+
LogUtil.debug("******************************************************************************* Initializing Conference");
3233
me = new BBBUser();
3334
users = new ArrayCollection();
3435
}
3536

36-
public function addUser(newuser:BBBUser):void {
37-
if (! hasParticipant(newuser.userid)) {
37+
public function addUser(newuser:BBBUser):void {
38+
LogUtil.debug("Adding new user [" + newuser.userid + "]");
39+
if (! hasParticipant(newuser.userid)) {
40+
LogUtil.debug("Am I this new user [" + newuser.userid + ", " + me.userid + "]");
3841
if (newuser.userid == me.userid) {
3942
newuser.me = true;
4043
}
@@ -216,8 +219,10 @@ package org.bigbluebutton.main.model.users {
216219
public function getMyUserId():Number {
217220
return me.userid;
218221
}
219-
public function setMyUserid(userid:int):void {
222+
223+
public function setMyUserid(userid:Number):void {
220224
me.userid = userid;
225+
LogUtil.debug("Setting my userid to [" + me.userid + "]");
221226
}
222227

223228
public function setMyName(name:String):void {

bigbluebutton-client/src/org/bigbluebutton/main/model/users/JoinService.as

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ package org.bigbluebutton.main.model.users
6969
} else if (returncode == 'SUCCESS') {
7070
LogUtil.debug("Join SUCESS = " + xml);
7171
var user:Object = {username:xml.fullname, conference:xml.conference, conferenceName:xml.confname,
72-
meetingID:xml.meetingID, externUserID:xml.externUserID, internalUserId:xml.internalUserId,
72+
meetingID:xml.meetingID, externUserID:xml.externUserID, internalUserId:xml.internalUserID,
7373
role:xml.role, room:xml.room, authToken:xml.room, record:xml.record,
7474
webvoiceconf:xml.webvoiceconf,
7575
voicebridge:xml.voicebridge, mode:xml.mode, welcome:xml.welcome, logoutUrl:xml.logoutUrl};

bigbluebutton-client/src/org/bigbluebutton/main/model/users/NetConnectionDelegate.as

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -202,7 +202,7 @@ package org.bigbluebutton.main.model.users
202202
new Responder(
203203
// result - On successful result
204204
function(result:Object):void {
205-
LogUtil.debug("Successful result: " + result);
205+
LogUtil.debug("Userid [" + result + "]");
206206
sendConnectionSuccessEvent(result);
207207
},
208208
// status - On error occurred
@@ -301,7 +301,7 @@ package org.bigbluebutton.main.model.users
301301

302302
private function sendConnectionSuccessEvent(userid:Object):void{
303303
var useridString:String = userid as String;
304-
var n:int = parseInt(useridString);
304+
var n:Number = parseInt(useridString);
305305

306306
var e:UsersConnectionEvent = new UsersConnectionEvent(UsersConnectionEvent.CONNECTION_SUCCESS);
307307
e.connection = _netConnection;

bigbluebutton-client/src/org/bigbluebutton/main/model/users/UserService.as

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ package org.bigbluebutton.main.model.users
2424

2525
import mx.collections.ArrayCollection;
2626

27+
import org.bigbluebutton.common.LogUtil;
2728
import org.bigbluebutton.core.BBB;
2829
import org.bigbluebutton.core.managers.UserConfigManager;
2930
import org.bigbluebutton.core.managers.UserManager;
@@ -105,6 +106,7 @@ package org.bigbluebutton.main.model.users
105106
}
106107

107108
public function userLoggedIn(e:UsersConnectionEvent):void{
109+
LogUtil.debug("In UserService:userLoggedIn - Setting my userid to [" + e.userid + "]");
108110
UserManager.getInstance().getConference().setMyUserid(e.userid);
109111
_conferenceParameters.connection = e.connection;
110112
_conferenceParameters.userid = e.userid;

bigbluebutton-client/src/org/bigbluebutton/main/model/users/UsersSOService.as

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -78,8 +78,10 @@ package org.bigbluebutton.main.model.users {
7878
_participantsSO.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler);
7979
_participantsSO.client = this;
8080
_participantsSO.connect(_connectionManager.connection);
81+
LogUtil.debug("In UserSOService:join - Setting my userid to [" + userid + "]");
82+
UserManager.getInstance().getConference().setMyUserid(userid);
8183
queryForParticipants();
82-
UserManager.getInstance().getConference().setMyUserid(userid);
84+
8385
}
8486

8587
private function queryForParticipants():void {
@@ -110,17 +112,24 @@ package org.bigbluebutton.main.model.users {
110112
}
111113

112114
private function becomePresenterIfLoneModerator():void {
115+
LogUtil.debug("Checking if I need to become presenter.");
113116
var participants:Conference = UserManager.getInstance().getConference();
114117
if (participants.hasOnlyOneModerator()) {
118+
LogUtil.debug("There is only one moderator in the meeting. Is it me? ");
115119
var user:BBBUser = participants.getTheOnlyModerator();
116120
if (user.me) {
121+
LogUtil.debug("Setting me as presenter because I'm the only moderator. My userid is [" + user.userid + "]");
117122
var presenterEvent:RoleChangeEvent = new RoleChangeEvent(RoleChangeEvent.ASSIGN_PRESENTER);
118123
presenterEvent.userid = user.userid;
119124
presenterEvent.username = user.name;
120125
var dispatcher:Dispatcher = new Dispatcher();
121126
dispatcher.dispatchEvent(presenterEvent);
122-
}
123-
}
127+
} else {
128+
LogUtil.debug("No. It is not me. It is [" + user.userid + ", " + user.name + "]");
129+
}
130+
} else {
131+
LogUtil.debug("No. There are more than one moderator.");
132+
}
124133
}
125134

126135
public function assignPresenter(userid:Number, name:String, assignedBy:Number):void {

bigbluebutton-web/grails-app/controllers/org/bigbluebutton/web/controllers/ApiController.groovy

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -299,7 +299,7 @@ class ApiController {
299299
}
300300

301301
UserSession us = new UserSession();
302-
us.internalUserId = RandomStringUtils.randomAlphanumeric(12).toLowerCase()
302+
us.internalUserId = System.currentTimeMillis(); //RandomStringUtils.randomAlphanumeric(12).toLowerCase()
303303
us.conferencename = meeting.getName()
304304
us.meetingID = meeting.getInternalId()
305305
us.externUserID = externUserID

0 commit comments

Comments
 (0)