Skip to content
Snippets Groups Projects
Commit a1e7618c authored by srosse's avatar srosse
Browse files

OO-4584: always allow guest flag, max participants + 1

parent 8b37fe96
No related branches found
No related tags found
No related merge requests found
......@@ -89,7 +89,8 @@ public interface BigBlueButtonManager {
public List<BigBlueButtonMeeting> getAllMeetings();
public String join(BigBlueButtonMeeting meeting, Identity identity, boolean moderator, boolean guest, BigBlueButtonErrors errors);
public String join(BigBlueButtonMeeting meeting, Identity identity, boolean moderator, boolean guest,
Boolean isRunning, BigBlueButtonErrors errors);
public boolean isMeetingRunning(BigBlueButtonMeeting meeting);
......
......@@ -94,7 +94,7 @@ public class BigBlueButtonManagerImpl implements BigBlueButtonManager, Initializ
Boolean.FALSE, Boolean.FALSE, // cam, mic
Boolean.FALSE, Boolean.TRUE, // chat
Boolean.FALSE, Boolean.FALSE, // node, layout
GuestPolicyEnum.ALWAYS_DENY, templates);
GuestPolicyEnum.ALWAYS_ACCEPT, templates);
defaultTemplate("sys-classes", "Classes", 20, 30,
Boolean.FALSE, Boolean.FALSE, Boolean.TRUE, // recording
......@@ -102,7 +102,7 @@ public class BigBlueButtonManagerImpl implements BigBlueButtonManager, Initializ
Boolean.TRUE, Boolean.TRUE, // cam, mic
Boolean.FALSE, Boolean.FALSE, // chat
Boolean.FALSE, Boolean.FALSE, // node, layout
GuestPolicyEnum.ALWAYS_DENY, templates);
GuestPolicyEnum.ALWAYS_ACCEPT, templates);
defaultTemplate("sys-cafe", "Cafe", 10, 10,
Boolean.FALSE, Boolean.FALSE, Boolean.TRUE, // recording
......@@ -110,7 +110,7 @@ public class BigBlueButtonManagerImpl implements BigBlueButtonManager, Initializ
Boolean.FALSE, Boolean.FALSE, // cam, mic
Boolean.TRUE, Boolean.FALSE, // chat
Boolean.FALSE, Boolean.FALSE, // node, layout
GuestPolicyEnum.ALWAYS_DENY, templates);
GuestPolicyEnum.ALWAYS_ACCEPT, templates);
}
private void defaultTemplate(String externalId, String name, Integer maxConcurrentMeetings, Integer maxParticipants,
......@@ -297,15 +297,14 @@ public class BigBlueButtonManagerImpl implements BigBlueButtonManager, Initializ
if(doc == null || errors.hasErrors() || !BigBlueButtonUtils.checkSuccess(doc, errors)) {
return false;
}
String running = BigBlueButtonUtils.getFirstElementValue(doc.getDocumentElement(), "running");
return "true".equals(running);
}
@Override
public String join(BigBlueButtonMeeting meeting, Identity identity, boolean moderator, boolean guest, BigBlueButtonErrors errors) {
public String join(BigBlueButtonMeeting meeting, Identity identity, boolean moderator, boolean guest, Boolean isRunning, BigBlueButtonErrors errors) {
String joinUrl = null;
if(createBigBlueButtonMeeting(meeting, errors)) {
if((isRunning != null && isRunning.booleanValue()) || createBigBlueButtonMeeting(meeting, errors)) {
joinUrl = buildJoinUrl(meeting, identity, moderator, guest);
}
return joinUrl;
......@@ -348,10 +347,9 @@ public class BigBlueButtonManagerImpl implements BigBlueButtonManager, Initializ
if(meeting.getEntry() != null) {
businessPath = "[RepositoryEntry:" + meeting.getEntry().getKey() + "]";
if(StringHelper.containsNonWhitespace(meeting.getSubIdent())) {
businessPath = "[CourseNode:" + meeting.getSubIdent() + "]";
businessPath += "[CourseNode:" + meeting.getSubIdent() + "]";
}
} else if(meeting.getBusinessGroup() != null) {
businessPath = "[BusinessGroup:" + meeting.getBusinessGroup().getKey() + "]";
} else {
businessPath = "[RepositoryEntry:0]";
......@@ -381,7 +379,7 @@ public class BigBlueButtonManagerImpl implements BigBlueButtonManager, Initializ
if(template != null) {
uriBuilder
.optionalParameter("maxParticipants", template.getMaxParticipants())
.optionalParameter("maxParticipants", template.getMaxParticipants().intValue() + 1)
.optionalParameter("record", "true")
// video options
.optionalParameter("muteOnStart", template.getMuteOnStart())
......@@ -397,7 +395,7 @@ public class BigBlueButtonManagerImpl implements BigBlueButtonManager, Initializ
.optionalParameter("lockSettingsDisableNote", template.getLockSettingsDisableNote())
.optionalParameter("lockSettingsLockedLayout", template.getLockSettingsLockedLayout())
// guest policy
.optionalParameter("guestPolicy", template.getGuestPolicyEnum().name());
.optionalParameter("guestPolicy", GuestPolicyEnum.ALWAYS_ACCEPT.name());
}
Document doc = sendRequest(uriBuilder, errors);
......
......@@ -158,7 +158,7 @@ public class BigBlueButtonUtils {
protected static void print(Document document) {
if(log.isDebugEnabled()) {
try(StringWriter writer = new StringWriter()) {
try(StringWriter writer = new StringWriter()) {
TransformerFactory factory = TransformerFactory.newInstance();
factory.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true);
Transformer transformer = factory.newTransformer();
......
......@@ -234,12 +234,15 @@ public class BigBlueButtonMeetingController extends FormBasicController implemen
String meetingUrl = null;
BigBlueButtonErrors errors = new BigBlueButtonErrors();
if(moderator || administrator) {
meetingUrl = bigBlueButtonManager.join(meeting, getIdentity(), (administrator || moderator), false, errors);
meetingUrl = bigBlueButtonManager.join(meeting, getIdentity(), (administrator || moderator), false, null, errors);
BigBlueButtonEvent openEvent = new BigBlueButtonEvent(meeting.getKey(), getIdentity().getKey());
CoordinatorManager.getInstance().getCoordinator().getEventBus().fireEventToListenersOf(openEvent, meetingOres);
} else if(!moderatorStartMeeting || bigBlueButtonManager.isMeetingRunning(meeting)) {
} else if(!moderatorStartMeeting) {
boolean guest = ureq.getUserSession().getRoles().isGuestOnly();
meetingUrl = bigBlueButtonManager.join(meeting, getIdentity(), false, guest, errors);
meetingUrl = bigBlueButtonManager.join(meeting, getIdentity(), false, guest, null, errors);
} else if(bigBlueButtonManager.isMeetingRunning(meeting)) {
boolean guest = ureq.getUserSession().getRoles().isGuestOnly();
meetingUrl = bigBlueButtonManager.join(meeting, getIdentity(), false, guest, Boolean.TRUE, errors);
}
redirectTo(ureq, meetingUrl, errors);
}
......
......@@ -32,7 +32,6 @@ import org.olat.core.gui.control.WindowControl;
import org.olat.core.util.StringHelper;
import org.olat.modules.bigbluebutton.BigBlueButtonManager;
import org.olat.modules.bigbluebutton.BigBlueButtonMeetingTemplate;
import org.olat.modules.bigbluebutton.GuestPolicyEnum;
import org.springframework.beans.factory.annotation.Autowired;
/**
......@@ -45,9 +44,6 @@ public class EditBigBlueButtonTemplateController extends FormBasicController {
private static final String[] maxParticipantsKeys = new String[] { "2", "5", "10", "25", "50", "100" };
private static final String[] onKeys = new String[] { "yes", "no" };
private static final String[] guestPolicyKeys = new String[] {
GuestPolicyEnum.ALWAYS_DENY.name(), GuestPolicyEnum.ASK_MODERATOR.name(), GuestPolicyEnum.ALWAYS_ACCEPT.name()
};
private TextElement nameEl;
private TextElement descriptionEl;
......@@ -64,8 +60,6 @@ public class EditBigBlueButtonTemplateController extends FormBasicController {
private SingleSelection lockSettingsDisablePublicChatEl;
private SingleSelection lockSettingsDisableNoteEl;
private SingleSelection lockSettingsLockedLayoutEl;
private SingleSelection guestPolicyEl;
private final boolean readOnly;
private BigBlueButtonMeetingTemplate template;
......@@ -159,14 +153,6 @@ public class EditBigBlueButtonTemplateController extends FormBasicController {
Boolean lockSettingsLockedLayout = template == null ? null : template.getLockSettingsLockedLayout();
lockSettingsLockedLayoutEl = uifactory.addRadiosHorizontal("template.lockSettingsLockedLayout", formLayout, onKeys, onValues);
select(lockSettingsLockedLayout, lockSettingsLockedLayoutEl, false);
GuestPolicyEnum guestPolicy = template == null ? GuestPolicyEnum.ALWAYS_DENY : template.getGuestPolicyEnum();
String[] guestPolicyValues = new String[] {
translate("guest.policy.always.deny"), translate("guest.policy.ask.moderator"),
translate("guest.policy.always.accept")
};
guestPolicyEl = uifactory.addRadiosHorizontal("template.guestPolicy", formLayout, guestPolicyKeys, guestPolicyValues);
guestPolicyEl.select(guestPolicy.name(), true);
FormLayoutContainer buttonLayout = FormLayoutContainer.createButtonLayout("buttons", getTranslator());
formLayout.add("buttons", buttonLayout);
......@@ -195,7 +181,6 @@ public class EditBigBlueButtonTemplateController extends FormBasicController {
lockSettingsDisablePublicChatEl.setEnabled(false);
lockSettingsDisableNoteEl.setEnabled(false);
lockSettingsLockedLayoutEl.setEnabled(false);
guestPolicyEl.setEnabled(false);
}
private void select(Boolean val, SingleSelection selectEl, boolean defaultValue) {
......@@ -277,10 +262,6 @@ public class EditBigBlueButtonTemplateController extends FormBasicController {
template.setLockSettingsDisablePublicChat(getSelected(lockSettingsDisablePublicChatEl));
template.setLockSettingsDisableNote(getSelected(lockSettingsDisableNoteEl));
template.setLockSettingsLockedLayout(getSelected(lockSettingsLockedLayoutEl));
if(guestPolicyEl.isOneSelected()) {
template.setGuestPolicyEnum(GuestPolicyEnum.valueOf(guestPolicyEl.getSelectedKey()));
}
template = bigBlueButtonManager.updateTemplate(template);
fireEvent(ureq, Event.DONE_EVENT);
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment