- put lock setting out of Conference

This commit is contained in:
Richard Alam 2017-06-16 10:08:31 -07:00
parent 2ce9b95775
commit d8bc6fc2db
17 changed files with 196 additions and 186 deletions

View File

@ -5,7 +5,12 @@ gradle clean
gradle resolveDeps gradle resolveDeps
gradle war deploy gradle war deploy
sudo chown -R red5.red5 /usr/share/red5/webapps
# Remove slf4j jar as it conflicts with logging with red5 # Remove slf4j jar as it conflicts with logging with red5
sudo rm /usr/share/red5/webapps/bigbluebutton/WEB-INF/lib/slf4j-api-1.7.23.jar FILE=/usr/share/red5/webapps/bigbluebutton/WEB-INF/lib/slf4j-api-1.7.23.jar
if [ -f $FILE ]
then
sudo rm $FILE
fi

View File

@ -26,8 +26,10 @@ package org.bigbluebutton.core
import org.bigbluebutton.core.managers.UserManager; import org.bigbluebutton.core.managers.UserManager;
import org.bigbluebutton.core.model.LiveMeeting; import org.bigbluebutton.core.model.LiveMeeting;
import org.bigbluebutton.core.vo.CameraSettingsVO; import org.bigbluebutton.core.vo.CameraSettingsVO;
import org.bigbluebutton.core.vo.LockSettingsVO;
import org.bigbluebutton.main.model.options.LockOptions;
import org.bigbluebutton.main.model.users.BBBUser; import org.bigbluebutton.main.model.users.BBBUser;
import org.bigbluebutton.util.SessionTokenUtil; import org.bigbluebutton.util.SessionTokenUtil;
public class UsersUtil public class UsersUtil
{ {
@ -73,16 +75,16 @@ package org.bigbluebutton.core
return LiveMeeting.inst().meeting.recorded; return LiveMeeting.inst().meeting.recorded;
} }
public static function amIPublishing():ArrayCollection { public static function myCamSettings():ArrayCollection {
return UserManager.getInstance().getConference().amIPublishing() as ArrayCollection; return LiveMeeting.inst().myStatus.myCamSettings() as ArrayCollection;
} }
public static function addCameraSettings(camSettings:CameraSettingsVO):void { public static function addCameraSettings(camSettings:CameraSettingsVO):void {
UserManager.getInstance().getConference().addCameraSettings(camSettings); LiveMeeting.inst().myStatus.addCameraSettings(camSettings);
} }
public static function removeCameraSettings(camIndex:int):void { public static function removeCameraSettings(camIndex:int):void {
UserManager.getInstance().getConference().removeCameraSettings(camIndex); LiveMeeting.inst().myStatus.removeCameraSettings(camIndex);
} }
public static function hasWebcamStream(userID:String):Boolean { public static function hasWebcamStream(userID:String):Boolean {
@ -103,6 +105,14 @@ package org.bigbluebutton.core
return null; return null;
} }
public static function setDefaultLayout(defaultLayout:String):void {
LiveMeeting.inst().meeting.defaultLayout = defaultLayout;
}
public static function getDefaultLayout():String {
return LiveMeeting.inst().meeting.defaultLayout;
}
public static function getUserIDs():ArrayCollection { public static function getUserIDs():ArrayCollection {
return UserManager.getInstance().getConference().getUserIDs(); return UserManager.getInstance().getConference().getUserIDs();
} }
@ -287,5 +297,28 @@ package org.bigbluebutton.core
myUser.applyLockSettings(); myUser.applyLockSettings();
} }
/**
* Read default lock settings from config.xml
* */
public static function configLockSettings():void {
var lockOptions:LockOptions = Options.getOptions(LockOptions) as LockOptions;
var lockSettings:LockSettingsVO = new LockSettingsVO(lockOptions.disableCam, lockOptions.disableMic,
lockOptions.disablePrivateChat, lockOptions.disablePublicChat,
lockOptions.lockedLayout, lockOptions.lockOnJoin,
lockOptions.lockOnJoinConfigurable);
setLockSettings(lockSettings);
}
public static function getLockSettings():LockSettingsVO {
return LiveMeeting.inst().meetingStatus.lockSettings;
}
public static function setLockSettings(lockSettings:LockSettingsVO):void {
LiveMeeting.inst().meetingStatus.lockSettings = lockSettings;
UsersUtil.applyLockSettings();
UserManager.getInstance().getConference().refreshUsers(); // we need to refresh after updating the lock settings to trigger the user item renderers to redraw
}
} }
} }

View File

@ -18,6 +18,9 @@
*/ */
package org.bigbluebutton.core.model package org.bigbluebutton.core.model
{ {
import mx.collections.ArrayCollection;
import org.bigbluebutton.core.vo.CameraSettingsVO;
public class MyStatus { public class MyStatus {
@ -41,6 +44,29 @@ package org.bigbluebutton.core.model
public var isPresenter: Boolean = false; public var isPresenter: Boolean = false;
public var myEmojiStatus: String = "none"; public var myEmojiStatus: String = "none";
private var _myCamSettings:ArrayCollection = new ArrayCollection();
public function addCameraSettings(camSettings: CameraSettingsVO): void {
if(!_myCamSettings.contains(camSettings)) {
_myCamSettings.addItem(camSettings);
}
}
public function removeCameraSettings(camIndex:int): void {
if (camIndex != -1) {
for(var i:int = 0; i < _myCamSettings.length; i++) {
if (_myCamSettings.getItemAt(i) != null && _myCamSettings.getItemAt(i).camIndex == camIndex) {
_myCamSettings.removeItemAt(i);
return;
}
}
}
}
public function myCamSettings():ArrayCollection {
return _myCamSettings;
}
} }
} }

View File

@ -18,77 +18,77 @@
*/ */
package org.bigbluebutton.core.vo package org.bigbluebutton.core.vo
{ {
public class LockSettingsVO public class LockSettingsVO
{ {
private var lockOnJoinConfigurable:Boolean; private var lockOnJoinConfigurable:Boolean = true;
private var disableCam:Boolean; private var disableCam:Boolean = false;
private var disableMic:Boolean; private var disableMic:Boolean = false;
private var disablePrivateChat:Boolean; private var disablePrivateChat:Boolean = false;
private var disablePublicChat:Boolean; private var disablePublicChat:Boolean = false;
private var lockedLayout:Boolean; private var lockedLayout:Boolean = false;
private var lockOnJoin:Boolean; private var lockOnJoin:Boolean = false;
public function LockSettingsVO(pDisableCam:Boolean, public function LockSettingsVO(pDisableCam:Boolean,
pDisableMic:Boolean, pDisableMic:Boolean,
pDisablePrivateChat:Boolean, pDisablePrivateChat:Boolean,
pDisablePublicChat:Boolean, pDisablePublicChat:Boolean,
pLockLayout: Boolean, pLockLayout: Boolean,
pLockOnJoin:Boolean, pLockOnJoin:Boolean,
pLockOnJoinConfigurable:Boolean) pLockOnJoinConfigurable:Boolean)
{ {
this.disableCam = pDisableCam; this.disableCam = pDisableCam;
this.disableMic = pDisableMic; this.disableMic = pDisableMic;
this.disablePrivateChat = pDisablePrivateChat; this.disablePrivateChat = pDisablePrivateChat;
this.disablePublicChat = pDisablePublicChat; this.disablePublicChat = pDisablePublicChat;
this.lockedLayout = pLockLayout; this.lockedLayout = pLockLayout;
this.lockOnJoin = pLockOnJoin; this.lockOnJoin = pLockOnJoin;
this.lockOnJoinConfigurable = pLockOnJoinConfigurable; this.lockOnJoinConfigurable = pLockOnJoinConfigurable;
} }
public function toMap():Object { public function toMap():Object {
var map:Object = { var map:Object = {
disableCam: this.disableCam, disableCam: this.disableCam,
disableMic: this.disableMic, disableMic: this.disableMic,
disablePrivateChat: this.disablePrivateChat, disablePrivateChat: this.disablePrivateChat,
disablePublicChat: this.disablePublicChat, disablePublicChat: this.disablePublicChat,
lockedLayout: this.lockedLayout, lockedLayout: this.lockedLayout,
lockOnJoin: this.lockOnJoin, lockOnJoin: this.lockOnJoin,
lockOnJoinConfigurable: this.lockOnJoinConfigurable lockOnJoinConfigurable: this.lockOnJoinConfigurable
}; };
return map; return map;
} }
public function getDisableCam():Boolean { public function getDisableCam():Boolean {
return disableCam; return disableCam;
} }
public function getDisableMic():Boolean { public function getDisableMic():Boolean {
return disableMic; return disableMic;
} }
public function getDisablePrivateChat():Boolean { public function getDisablePrivateChat():Boolean {
return disablePrivateChat; return disablePrivateChat;
} }
public function getDisablePublicChat():Boolean { public function getDisablePublicChat():Boolean {
return disablePublicChat; return disablePublicChat;
} }
public function getLockedLayout():Boolean { public function getLockedLayout():Boolean {
return lockedLayout; return lockedLayout;
} }
public function getLockOnJoin():Boolean { public function getLockOnJoin():Boolean {
return lockOnJoin; return lockOnJoin;
} }
public function getLockOnJoinConfigurable():Boolean { public function getLockOnJoinConfigurable():Boolean {
return lockOnJoinConfigurable; return lockOnJoinConfigurable;
} }
public function isAnythingLocked():Boolean { public function isAnythingLocked():Boolean {
return ( lockedLayout || disableCam || disableMic || disablePrivateChat || disablePublicChat ); return ( lockedLayout || disableCam || disableMic || disablePrivateChat || disablePublicChat );
} }
} }
} }

View File

@ -192,7 +192,7 @@ package org.bigbluebutton.main.api
var obj:Object = new Object(); var obj:Object = new Object();
var camArray: ArrayCollection = new ArrayCollection(); var camArray: ArrayCollection = new ArrayCollection();
var camSettingsArray:ArrayCollection = UsersUtil.amIPublishing(); var camSettingsArray:ArrayCollection = UsersUtil.myCamSettings();
for (var i:int = 0; i < camSettingsArray.length; i++) { for (var i:int = 0; i < camSettingsArray.length; i++) {
var camSettings:CameraSettingsVO = camSettingsArray.getItemAt(i) as CameraSettingsVO; var camSettings:CameraSettingsVO = camSettingsArray.getItemAt(i) as CameraSettingsVO;
var cam:Object = new Object(); var cam:Object = new Object();

View File

@ -161,7 +161,7 @@ package org.bigbluebutton.main.api
} }
public function handleAmISharingCamQueryEvent(event:AmISharingWebcamQueryEvent):void { public function handleAmISharingCamQueryEvent(event:AmISharingWebcamQueryEvent):void {
var camSettingsArray:ArrayCollection = UsersUtil.amIPublishing(); var camSettingsArray:ArrayCollection = UsersUtil.myCamSettings();
var payload:Object = new Object(); var payload:Object = new Object();
var camArray: ArrayCollection = new ArrayCollection(); var camArray: ArrayCollection = new ArrayCollection();
for (var i:int = 0; i < camSettingsArray.length; i++) { for (var i:int = 0; i < camSettingsArray.length; i++) {

View File

@ -1,33 +1,33 @@
/** /**
* BigBlueButton open source conferencing system - http://www.bigbluebutton.org/ * BigBlueButton open source conferencing system - http://www.bigbluebutton.org/
* *
* Copyright (c) 2012 BigBlueButton Inc. and by respective authors (see below). * Copyright (c) 2012 BigBlueButton Inc. and by respective authors (see below).
* *
* This program is free software; you can redistribute it and/or modify it under the * This program is free software; you can redistribute it and/or modify it under the
* terms of the GNU Lesser General Public License as published by the Free Software * terms of the GNU Lesser General Public License as published by the Free Software
* Foundation; either version 3.0 of the License, or (at your option) any later * Foundation; either version 3.0 of the License, or (at your option) any later
* version. * version.
* *
* BigBlueButton is distributed in the hope that it will be useful, but WITHOUT ANY * BigBlueButton is distributed in the hope that it will be useful, but WITHOUT ANY
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
* PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
* *
* You should have received a copy of the GNU Lesser General Public License along * You should have received a copy of the GNU Lesser General Public License along
* with BigBlueButton; if not, see <http://www.gnu.org/licenses/>. * with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
* *
*/ */
package org.bigbluebutton.main.model package org.bigbluebutton.main.model
{ {
public class User public class User
{ {
public var room:String; public var room:String;
public var conference:String; public var conference:String;
public var userid:String; public var userid:String;
public var externUserID:String; public var externUserID:String;
public var name:String; public var name:String;
public var role:String; public var role:String;
public var isPresenter:Boolean; public var isPresenter:Boolean;
public var authToken:String; public var authToken:String;
public var guest:Boolean; public var guest:Boolean;
} }
} }

View File

@ -402,7 +402,7 @@ package org.bigbluebutton.main.model.users
} }
public function applyLockSettings():void { public function applyLockSettings():void {
var lockSettings:LockSettingsVO = UserManager.getInstance().getConference().getLockSettings(); var lockSettings:LockSettingsVO = UsersUtil.getLockSettings();
var amNotModerator:Boolean = !UsersUtil.amIModerator(); var amNotModerator:Boolean = !UsersUtil.amIModerator();
var amNotPresenter:Boolean = !UsersUtil.amIPresenter(); var amNotPresenter:Boolean = !UsersUtil.amIPresenter();
var lockAppliesToMe:Boolean = me && amNotModerator && amNotPresenter && userLocked; var lockAppliesToMe:Boolean = me && amNotModerator && amNotPresenter && userLocked;

View File

@ -32,7 +32,6 @@ package org.bigbluebutton.main.model.users {
import org.bigbluebutton.core.Options; import org.bigbluebutton.core.Options;
import org.bigbluebutton.core.UsersUtil; import org.bigbluebutton.core.UsersUtil;
import org.bigbluebutton.core.model.LiveMeeting; import org.bigbluebutton.core.model.LiveMeeting;
import org.bigbluebutton.core.vo.CameraSettingsVO;
import org.bigbluebutton.core.vo.LockSettingsVO; import org.bigbluebutton.core.vo.LockSettingsVO;
import org.bigbluebutton.main.events.BreakoutRoomEvent; import org.bigbluebutton.main.events.BreakoutRoomEvent;
import org.bigbluebutton.main.model.options.LockOptions; import org.bigbluebutton.main.model.options.LockOptions;
@ -44,10 +43,6 @@ package org.bigbluebutton.main.model.users {
private static const LOGGER:ILogger = getClassLogger(Conference); private static const LOGGER:ILogger = getClassLogger(Conference);
private var lockSettings:LockSettingsVO;
private var _myCamSettings:ArrayCollection = null;
[Bindable] [Bindable]
public var users:ArrayCollection = null; public var users:ArrayCollection = null;
@ -59,8 +54,6 @@ package org.bigbluebutton.main.model.users {
private var sort:Sort; private var sort:Sort;
private var defaultLayout:String;
public function Conference():void { public function Conference():void {
users = new ArrayCollection(); users = new ArrayCollection();
sort = new Sort(); sort = new Sort();
@ -68,7 +61,7 @@ package org.bigbluebutton.main.model.users {
users.sort = sort; users.sort = sort;
users.refresh(); users.refresh();
breakoutRooms = new ArrayCollection(); breakoutRooms = new ArrayCollection();
_myCamSettings = new ArrayCollection();
} }
// Custom sort function for the users ArrayCollection. Need to put dial-in users at the very bottom. // Custom sort function for the users ArrayCollection. Need to put dial-in users at the very bottom.
@ -132,34 +125,7 @@ package org.bigbluebutton.main.model.users {
users.refresh(); users.refresh();
} }
public function addCameraSettings(camSettings: CameraSettingsVO): void {
if(!_myCamSettings.contains(camSettings)) {
_myCamSettings.addItem(camSettings);
}
}
public function removeCameraSettings(camIndex:int): void {
if (camIndex != -1) {
for(var i:int = 0; i < _myCamSettings.length; i++) {
if (_myCamSettings.getItemAt(i) != null && _myCamSettings.getItemAt(i).camIndex == camIndex) {
_myCamSettings.removeItemAt(i);
return;
}
}
}
}
public function amIPublishing():ArrayCollection {
return _myCamSettings;
}
public function setDefaultLayout(defaultLayout:String):void {
this.defaultLayout = defaultLayout;
}
public function getDefaultLayout():String {
return defaultLayout;
}
public function hasUser(userID:String):Boolean { public function hasUser(userID:String):Boolean {
var p:Object = getUserIndex(userID); var p:Object = getUserIndex(userID);
@ -389,18 +355,7 @@ package org.bigbluebutton.main.model.users {
return uids; return uids;
} }
/**
* Read default lock settings from config.xml
* */
public function configLockSettings():void {
var lockOptions:LockOptions = Options.getOptions(LockOptions) as LockOptions;
lockSettings = new LockSettingsVO(lockOptions.disableCam, lockOptions.disableMic,
lockOptions.disablePrivateChat, lockOptions.disablePublicChat,
lockOptions.lockedLayout, lockOptions.lockOnJoin,
lockOptions.lockOnJoinConfigurable);
setLockSettings(lockSettings);
}
public function getMyUser():BBBUser { public function getMyUser():BBBUser {
var eachUser:BBBUser; var eachUser:BBBUser;
for (var i:int = 0; i < users.length; i++) { for (var i:int = 0; i < users.length; i++) {
@ -411,14 +366,8 @@ package org.bigbluebutton.main.model.users {
} }
return null; return null;
} }
public function getLockSettings():LockSettingsVO { public function refreshUsers():void {
return lockSettings;
}
public function setLockSettings(lockSettings:LockSettingsVO):void {
this.lockSettings = lockSettings;
UsersUtil.applyLockSettings();
users.refresh(); // we need to refresh after updating the lock settings to trigger the user item renderers to redraw users.refresh(); // we need to refresh after updating the lock settings to trigger the user item renderers to redraw
} }

View File

@ -101,8 +101,6 @@ package org.bigbluebutton.main.model.users
if (success) { if (success) {
var meetingOptions : MeetingOptions = Options.getOptions(MeetingOptions) as MeetingOptions; var meetingOptions : MeetingOptions = Options.getOptions(MeetingOptions) as MeetingOptions;
LiveMeeting.inst().meetingStatus.lockSettings = UserManager.getInstance().getConference().getLockSettings();
LiveMeeting.inst().me.id = result.intUserId LiveMeeting.inst().me.id = result.intUserId
LiveMeeting.inst().me.name = result.username; LiveMeeting.inst().me.name = result.username;
LiveMeeting.inst().me.externalId = result.extUserId; LiveMeeting.inst().me.externalId = result.extUserId;

View File

@ -222,7 +222,7 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
updateCopyrightText(); updateCopyrightText();
loadBackground(); loadBackground();
UserManager.getInstance().getConference().configLockSettings(); UsersUtil.configLockSettings();
showToolbarOpt = layoutOptions.showToolbar; showToolbarOpt = layoutOptions.showToolbar;
if (!showToolbarOpt) { if (!showToolbarOpt) {
toolbarHeight = 0; toolbarHeight = 0;
@ -926,8 +926,7 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
} }
private function openLockSettingsWindow(event:LockControlEvent):void { private function openLockSettingsWindow(event:LockControlEvent):void {
var conference:Conference = UserManager.getInstance().getConference(); var lsv:LockSettingsVO = UsersUtil.getLockSettings();
var lsv:LockSettingsVO = conference.getLockSettings();
var popUp:IFlexDisplayObject = PopUpUtil.createModalPopUp(mdiCanvas, LockSettings, false); var popUp:IFlexDisplayObject = PopUpUtil.createModalPopUp(mdiCanvas, LockSettings, false);
if (popUp) { if (popUp) {

View File

@ -268,7 +268,7 @@ package org.bigbluebutton.modules.layout.managers
var layoutOptions:LayoutOptions = Options.getOptions(LayoutOptions) as LayoutOptions; var layoutOptions:LayoutOptions = Options.getOptions(LayoutOptions) as LayoutOptions;
var defaultLayout:LayoutDefinition = _layoutModel.getLayout(layoutOptions.defaultLayout); var defaultLayout:LayoutDefinition = _layoutModel.getLayout(layoutOptions.defaultLayout);
var sessionDefaulLayout:String = UserManager.getInstance().getConference().getDefaultLayout(); var sessionDefaulLayout:String = UsersUtil.getDefaultLayout();
if (sessionDefaulLayout != "NOLAYOUT") { if (sessionDefaulLayout != "NOLAYOUT") {
var sesLayout:LayoutDefinition = _layoutModel.getLayout(sessionDefaulLayout); var sesLayout:LayoutDefinition = _layoutModel.getLayout(sessionDefaulLayout);

View File

@ -39,9 +39,9 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
<fx:Script> <fx:Script>
<![CDATA[ <![CDATA[
import com.asfusion.mate.events.Dispatcher; import com.asfusion.mate.events.Dispatcher;
import mx.collections.ArrayCollection; import mx.collections.ArrayCollection;
import org.as3commons.logging.api.ILogger; import org.as3commons.logging.api.ILogger;
import org.as3commons.logging.api.getClassLogger; import org.as3commons.logging.api.getClassLogger;
import org.bigbluebutton.common.events.LocaleChangeEvent; import org.bigbluebutton.common.events.LocaleChangeEvent;
@ -130,7 +130,7 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
} }
public function refreshRole(amIModerator:Boolean):void { public function refreshRole(amIModerator:Boolean):void {
var layoutLocked:Boolean = UserManager.getInstance().getConference().getLockSettings().getLockedLayout(); var layoutLocked:Boolean = UsersUtil.getLockSettings().getLockedLayout();
this.enabled = amIModerator || !layoutLocked; this.enabled = amIModerator || !layoutLocked;
} }
]]> ]]>

View File

@ -238,7 +238,7 @@ package org.bigbluebutton.modules.users.services
map.lockedLayout, map.lockedLayout,
map.lockOnJoin, map.lockOnJoin,
map.lockOnJoinConfigurable); map.lockOnJoinConfigurable);
UserManager.getInstance().getConference().setLockSettings(lockSettings); UsersUtil.setLockSettings(lockSettings);
} }
private function sendRecordingStatusUpdate(recording:Boolean):void { private function sendRecordingStatusUpdate(recording:Boolean):void {
@ -293,7 +293,7 @@ package org.bigbluebutton.modules.users.services
var lockSettings:LockSettingsVO = new LockSettingsVO(perm.disableCam, perm.disableMic, var lockSettings:LockSettingsVO = new LockSettingsVO(perm.disableCam, perm.disableMic,
perm.disablePrivateChat, perm.disablePublicChat, perm.lockedLayout, perm.lockOnJoin, perm.lockOnJoinConfigurable); perm.disablePrivateChat, perm.disablePublicChat, perm.lockedLayout, perm.lockOnJoin, perm.lockOnJoinConfigurable);
UserManager.getInstance().getConference().setLockSettings(lockSettings); UsersUtil.setLockSettings(lockSettings);
LiveMeeting.inst().meetingStatus.isMeetingMuted = map.meetingMuted; LiveMeeting.inst().meetingStatus.isMeetingMuted = map.meetingMuted;
UsersUtil.applyLockSettings(); UsersUtil.applyLockSettings();
@ -452,7 +452,7 @@ package org.bigbluebutton.modules.users.services
bbbEvent.payload.userID = bu.userID; bbbEvent.payload.userID = bu.userID;
globalDispatcher.dispatchEvent(bbbEvent); globalDispatcher.dispatchEvent(bbbEvent);
if (_conference.getLockSettings().getDisableMic() && !bu.voiceMuted && bu.userLocked && bu.me) { if (UsersUtil.getLockSettings().getDisableMic() && !bu.voiceMuted && bu.userLocked && bu.me) {
var ev:VoiceConfEvent = new VoiceConfEvent(VoiceConfEvent.MUTE_USER); var ev:VoiceConfEvent = new VoiceConfEvent(VoiceConfEvent.MUTE_USER);
ev.userid = voiceUser.userId; ev.userid = voiceUser.userId;
ev.mute = true; ev.mute = true;

View File

@ -179,7 +179,7 @@
// reset the mute image filter so the talking indicator doesn't stick // reset the mute image filter so the talking indicator doesn't stick
muteImg.filters = null; muteImg.filters = null;
var ls:LockSettingsVO = UserManager.getInstance().getConference().getLockSettings(); var ls:LockSettingsVO = UsersUtil.getLockSettings();
if (data != null) { if (data != null) {
settingsBtn.visible = rolledOver && !data.me && !UsersUtil.isBreakout(); settingsBtn.visible = rolledOver && !data.me && !UsersUtil.isBreakout();

View File

@ -176,7 +176,7 @@
resourcesChanged(); resourcesChanged();
roomMuted = LiveMeeting.inst().meetingStatus.isMeetingMuted; roomMuted = LiveMeeting.inst().meetingStatus.isMeetingMuted;
var lockSettings:LockSettingsVO = UserManager.getInstance().getConference().getLockSettings(); var lockSettings:LockSettingsVO = UsersUtil.getLockSettings();
roomLocked = lockSettings.isAnythingLocked() && ( lockSettings.getLockOnJoin() || UsersUtil.isAnyoneLocked()); roomLocked = lockSettings.isAnythingLocked() && ( lockSettings.getLockOnJoin() || UsersUtil.isAnyoneLocked());
titleBarOverlay.tabIndex = partOptions.baseTabIndex; titleBarOverlay.tabIndex = partOptions.baseTabIndex;
@ -329,7 +329,7 @@
} }
private function handleChangedLockSettingsEvent(e:LockControlEvent):void { private function handleChangedLockSettingsEvent(e:LockControlEvent):void {
var lockSettings:LockSettingsVO = UserManager.getInstance().getConference().getLockSettings(); var lockSettings:LockSettingsVO = UsersUtil.getLockSettings();
roomLocked = lockSettings.isAnythingLocked() && (lockSettings.getLockOnJoin() || UsersUtil.isAnyoneLocked()); roomLocked = lockSettings.isAnythingLocked() && (lockSettings.getLockOnJoin() || UsersUtil.isAnyoneLocked());
} }

View File

@ -309,7 +309,7 @@ package org.bigbluebutton.modules.videoconf.maps
_isWaitingActivation = false; _isWaitingActivation = false;
var arr: ArrayCollection = UsersUtil.amIPublishing(); var arr: ArrayCollection = UsersUtil.myCamSettings();
for (var i:int = 0; i < arr.length; i++) { for (var i:int = 0; i < arr.length; i++) {
var broadcastEvent:BroadcastStartedEvent = new BroadcastStartedEvent(); var broadcastEvent:BroadcastStartedEvent = new BroadcastStartedEvent();
streamList.addItem(e.stream); streamList.addItem(e.stream);