diff --git a/src/main/java/ch/ethz/seb/sebserver/gbl/model/session/ClientMonitoringDataView.java b/src/main/java/ch/ethz/seb/sebserver/gbl/model/session/ClientMonitoringDataView.java index 0aab5f9a..f89a2e23 100644 --- a/src/main/java/ch/ethz/seb/sebserver/gbl/model/session/ClientMonitoringDataView.java +++ b/src/main/java/ch/ethz/seb/sebserver/gbl/model/session/ClientMonitoringDataView.java @@ -20,19 +20,19 @@ import ch.ethz.seb.sebserver.gbl.model.session.ClientConnection.ConnectionStatus public interface ClientMonitoringDataView { - public static final String ATTR_STATUS = "st"; - public static final String ATTR_CONNECTION_TOKEN = "tk"; - public static final String ATTR_EXAM_USER_SESSION_ID = "si"; - public static final String ATTR_INFO = "in"; - public static final String ATTR_INDICATOR_VALUES = "iv"; - public static final String ATTR_CLIENT_GROUPS = "cg"; - public static final String ATTR_NOTIFICATION_FLAG = "nf"; + String ATTR_STATUS = "st"; + String ATTR_CONNECTION_TOKEN = "tk"; + String ATTR_EXAM_USER_SESSION_ID = "si"; + String ATTR_INFO = "in"; + String ATTR_INDICATOR_VALUES = "iv"; + String ATTR_CLIENT_GROUPS = "cg"; + String ATTR_NOTIFICATION_FLAG = "nf"; - public static final int FLAG_MISSING_PING = 1; - public static final int FLAG_PENDING_NOTIFICATION = 2; - public static final int FLAG_GRANT_NOT_CHECKED = 4; - public static final int FLAG_GRANT_DENIED = 8; - public static final int FLAG_INVALID_SEB_VERSION = 16; + int FLAG_MISSING_PING = 1; + int FLAG_PENDING_NOTIFICATION = 2; + int FLAG_GRANT_NOT_CHECKED = 4; + int FLAG_GRANT_DENIED = 8; + int FLAG_INVALID_SEB_VERSION = 16; @JsonProperty(Domain.CLIENT_CONNECTION.ATTR_ID) Long getId(); diff --git a/src/main/java/ch/ethz/seb/sebserver/gui/service/examconfig/impl/rules/AllowScreenCapture.java b/src/main/java/ch/ethz/seb/sebserver/gui/service/examconfig/impl/rules/AllowScreenCapture.java new file mode 100644 index 00000000..6312f60c --- /dev/null +++ b/src/main/java/ch/ethz/seb/sebserver/gui/service/examconfig/impl/rules/AllowScreenCapture.java @@ -0,0 +1,64 @@ +package ch.ethz.seb.sebserver.gui.service.examconfig.impl.rules; + +import ch.ethz.seb.sebserver.gbl.model.sebconfig.ConfigurationAttribute; +import ch.ethz.seb.sebserver.gbl.model.sebconfig.ConfigurationValue; +import ch.ethz.seb.sebserver.gbl.profile.GuiProfile; +import ch.ethz.seb.sebserver.gui.service.examconfig.ValueChangeRule; +import ch.ethz.seb.sebserver.gui.service.examconfig.impl.ViewContext; +import org.apache.commons.lang3.BooleanUtils; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.context.annotation.Lazy; +import org.springframework.stereotype.Service; + +@Lazy +@Service +@GuiProfile +public class AllowScreenCapture implements ValueChangeRule { + + private static final Logger log = LoggerFactory.getLogger(AllowScreenCapture.class); + + private static final String KEY_ALLOW_SCREEN_CAPTURE = "allowScreenCapture"; + private static final String KEY_ALLOW_WINDOW_CAPTURE = "allowWindowCapture"; + private static final String KEY_BLOCK_SS = "blockScreenShotsLegacy"; + @Override + public boolean observesAttribute(final ConfigurationAttribute attribute) { + return KEY_ALLOW_SCREEN_CAPTURE.equals(attribute.name) || KEY_ALLOW_WINDOW_CAPTURE.equals(attribute.name); + } + + @Override + public void applyRule( + final ViewContext context, + final ConfigurationAttribute attribute, + final ConfigurationValue value) { + + if (context.isReadonly() || StringUtils.isBlank(value.value)) { + return; + } + + try { + + if (KEY_ALLOW_SCREEN_CAPTURE.equals(attribute.name)) { + if (BooleanUtils.toBoolean(value.value)) { + context.enable(KEY_ALLOW_WINDOW_CAPTURE); + } else { + context.setValue(KEY_ALLOW_WINDOW_CAPTURE, "false"); + context.setValue(KEY_BLOCK_SS, "false"); + context.disable(KEY_ALLOW_WINDOW_CAPTURE); + context.disable(KEY_BLOCK_SS); + } + } else if (KEY_ALLOW_WINDOW_CAPTURE.equals(attribute.name)) { + if (BooleanUtils.toBoolean(value.value)) { + context.enable(KEY_BLOCK_SS); + } else { + context.setValue(KEY_BLOCK_SS, "false"); + context.disable(KEY_BLOCK_SS); + } + } + + } catch (final Exception e) { + log.warn("Failed to apply rule: ", e); + } + } +} diff --git a/src/main/java/ch/ethz/seb/sebserver/gui/service/examconfig/impl/rules/MediaCapture.java b/src/main/java/ch/ethz/seb/sebserver/gui/service/examconfig/impl/rules/MediaCapture.java new file mode 100644 index 00000000..ddc917b0 --- /dev/null +++ b/src/main/java/ch/ethz/seb/sebserver/gui/service/examconfig/impl/rules/MediaCapture.java @@ -0,0 +1,58 @@ +package ch.ethz.seb.sebserver.gui.service.examconfig.impl.rules; + +import ch.ethz.seb.sebserver.gbl.model.sebconfig.ConfigurationAttribute; +import ch.ethz.seb.sebserver.gbl.model.sebconfig.ConfigurationValue; +import ch.ethz.seb.sebserver.gbl.profile.GuiProfile; +import ch.ethz.seb.sebserver.gui.service.examconfig.ValueChangeRule; +import ch.ethz.seb.sebserver.gui.service.examconfig.impl.ViewContext; +import org.apache.commons.lang3.BooleanUtils; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.context.annotation.Lazy; +import org.springframework.stereotype.Service; + +@Lazy +@Service +@GuiProfile +public class MediaCapture implements ValueChangeRule { + + private static final Logger log = LoggerFactory.getLogger(MediaCapture.class); + + private static final String KEY_MEDIA_AUTOPLAY = "browserMediaAutoplay"; + private static final String KEY_MEDIA_AUTOPLAY_AUDIO = "browserMediaAutoplayAudio"; + + private static final String KEY_MEDIA_AUTOPLAY_VIDEO = "browserMediaAutoplayVideo"; + + + @Override + public boolean observesAttribute(final ConfigurationAttribute attribute) { + return KEY_MEDIA_AUTOPLAY.equals(attribute.name); + } + + @Override + public void applyRule( + final ViewContext context, + final ConfigurationAttribute attribute, + final ConfigurationValue value) { + + if (context.isReadonly() || StringUtils.isBlank(value.value)) { + return; + } + + try { + if (BooleanUtils.toBoolean(value.value)) { + context.enable(KEY_MEDIA_AUTOPLAY_AUDIO); + context.enable(KEY_MEDIA_AUTOPLAY_VIDEO); + } else { + context.setValue(KEY_MEDIA_AUTOPLAY_AUDIO, "false"); + context.setValue(KEY_MEDIA_AUTOPLAY_VIDEO, "false"); + context.disable(KEY_MEDIA_AUTOPLAY_AUDIO); + context.disable(KEY_MEDIA_AUTOPLAY_VIDEO); + } + + } catch (final Exception e) { + log.warn("Failed to apply rule: ", e); + } + } +} diff --git a/src/main/resources/config/sql/base/V27__exam_config_gui_additions_v1_6.sql b/src/main/resources/config/sql/base/V27__exam_config_gui_additions_v1_6.sql index b6f3d955..9e433d24 100644 --- a/src/main/resources/config/sql/base/V27__exam_config_gui_additions_v1_6.sql +++ b/src/main/resources/config/sql/base/V27__exam_config_gui_additions_v1_6.sql @@ -31,13 +31,13 @@ INSERT IGNORE INTO configuration_attribute VALUES UPDATE configuration_attribute SET default_value='false' WHERE id=59; UPDATE configuration_attribute SET name='allowCustomDownUploadLocation' WHERE id=972; -UPDATE orientation SET y_position=2 WHERE config_attribute_id=60; -UPDATE orientation SET y_position=3 WHERE config_attribute_id=61; -UPDATE orientation SET y_position=4 WHERE config_attribute_id=972; -UPDATE orientation SET y_position=11 WHERE config_attribute_id=63; -UPDATE orientation SET y_position=6 WHERE config_attribute_id=64; -UPDATE orientation SET y_position=7 WHERE config_attribute_id=65; -UPDATE orientation SET y_position=13 WHERE config_attribute_id=66; +UPDATE orientation SET y_position=2 WHERE config_attribute_id=60 AND template_id=0; +UPDATE orientation SET y_position=3 WHERE config_attribute_id=61 AND template_id=0; +UPDATE orientation SET y_position=4 WHERE config_attribute_id=972 AND template_id=0; +UPDATE orientation SET y_position=11 WHERE config_attribute_id=63 AND template_id=0; +UPDATE orientation SET y_position=6 WHERE config_attribute_id=64 AND template_id=0; +UPDATE orientation SET y_position=7 WHERE config_attribute_id=65 AND template_id=0; +UPDATE orientation SET y_position=13 WHERE config_attribute_id=66 AND template_id=0; INSERT IGNORE INTO orientation (config_attribute_id, template_id, view_id, group_id, x_position, y_position, width, height, title) VALUES (1580, 0, 4, null, 0, 9, 8, 1, 'NONE'), @@ -56,8 +56,122 @@ INSERT IGNORE INTO configuration_attribute VALUES ; -- ---------------------------------------------------------------- --- Add new SEB Settings GUI (SEBSERV-405) +-- Add new SEB Settings GUI (SEBSERV-414) +-- ---------------------------------------------------------------- +INSERT IGNORE INTO orientation (config_attribute_id, template_id, view_id, group_id, x_position, y_position, width, height, title) VALUES + (1200, 0, 6, null, 0, 6, 1, 1, 'LEFT'); + +-- ---------------------------------------------------------------- +-- Remove Setting ignoreExitKeys from GUI (SEBSERV-414) +-- ---------------------------------------------------------------- +DELETE FROM orientation WHERE config_attribute_id=3 AND template_id=0; + +-- ---------------------------------------------------------------- +-- Remove all dictionary settings from GUI (SEBSERV-414) +-- ---------------------------------------------------------------- +DELETE FROM orientation WHERE config_attribute_id=30 AND template_id=0; + +-- ---------------------------------------------------------------- +-- Change default value of newBrowserWindowShowURL (SEBSERV-414) +-- ---------------------------------------------------------------- +UPDATE configuration_attribute SET default_value='0' WHERE id=928; + +-- ---------------------------------------------------------------- +-- Add allowPrint and enableFindPrinter (SEBSERV-414) +-- ---------------------------------------------------------------- +INSERT IGNORE INTO configuration_attribute VALUES + (1590, 'allowPrint', 'CHECKBOX', null, null, null, null, 'false'), + (1591, 'enableFindPrinter', 'CHECKBOX', null, null, null, null, 'false') +; +UPDATE orientation SET x_position=5, width=2 WHERE config_attribute_id=960 AND template_id=0; +INSERT IGNORE INTO orientation (config_attribute_id, template_id, view_id, group_id, x_position, y_position, width, height, title) VALUES + (1590, 0, 3, 'browserSecurity', 0, 5, 4, 1, 'NONE'), + (1591, 0, 10, 'registry', 0, 11, 4, 1, 'NONE') +; +-- ---------------------------------------------------------------- +-- Add enableRightMouseMac (SEBSERV-414) +-- ---------------------------------------------------------------- +UPDATE orientation SET y_position=14 WHERE config_attribute_id=43 AND template_id=0; +UPDATE orientation SET y_position=15 WHERE config_attribute_id=45 AND template_id=0; +UPDATE orientation SET y_position=16 WHERE config_attribute_id=47 AND template_id=0; +UPDATE orientation SET y_position=17 WHERE config_attribute_id=928 AND template_id=0; + +UPDATE orientation SET y_position=10 WHERE config_attribute_id=42 AND template_id=0; +UPDATE orientation SET y_position=11 WHERE config_attribute_id=44 AND template_id=0; +UPDATE orientation SET y_position=12 WHERE config_attribute_id=46 AND template_id=0; +UPDATE orientation SET y_position=13 WHERE config_attribute_id=919 AND template_id=0; + +INSERT IGNORE INTO orientation (config_attribute_id, template_id, view_id, group_id, x_position, y_position, width, height, title) VALUES + (1568, 0, 3, null, 0, 9, 7, 1, 'NONE') +; + +-- ---------------------------------------------------------------- +-- Add prohibitedProcesses.ignoreInAAC (SEBSERV-414) +-- ---------------------------------------------------------------- +INSERT IGNORE INTO orientation (config_attribute_id, template_id, view_id, group_id, x_position, y_position, width, height, title) VALUES + (1577, 0, 6, null, 0, 8, 1, 1, 'LEFT') +; + +-- ---------------------------------------------------------------- +-- Add Exchange "enablePrivateClipboard" with "enablePrivateClipboardMacEnforce" (SEBSERV-414) +-- ---------------------------------------------------------------- +UPDATE orientation SET config_attribute_id=947 WHERE config_attribute_id=304 AND template_id=0; + +-- ---------------------------------------------------------------- +-- Set minMacOSVersion (SEBSERV-414) +-- ---------------------------------------------------------------- +UPDATE configuration_attribute SET default_value='8', resources='0,1,2,3,4,5,6,7,8,9,10,11,12' WHERE id=308; + +-- ---------------------------------------------------------------- +-- Move display and version settings down (SEBSERV-414) +-- ---------------------------------------------------------------- +-- move logging down +UPDATE orientation SET y_position=16 WHERE config_attribute_id=305 AND template_id=0; +UPDATE orientation SET y_position=17 WHERE config_attribute_id=306 AND template_id=0; +UPDATE orientation SET y_position=18 WHERE config_attribute_id=307 AND template_id=0; +UPDATE orientation SET y_position=19 WHERE config_attribute_id=317 AND template_id=0; +UPDATE orientation SET y_position=20 WHERE config_attribute_id=319 AND template_id=0; +UPDATE orientation SET y_position=21 WHERE config_attribute_id=320 AND template_id=0; +-- move monitors left +UPDATE orientation SET x_position = 0, y_position=13 WHERE config_attribute_id=315 AND template_id=0; +UPDATE orientation SET x_position = 0, y_position=14 WHERE config_attribute_id=1551 AND template_id=0; +UPDATE orientation SET x_position = 0, y_position=15 WHERE config_attribute_id=971 AND template_id=0; +-- apply SEB versions on the right +UPDATE orientation SET x_position = 7, y_position=18, height=9, width=5 WHERE config_attribute_id=1578 AND template_id=0; +-- move macOS settings to make space for new +UPDATE orientation SET y_position=4 WHERE config_attribute_id=309 AND template_id=0; +UPDATE orientation SET y_position=5 WHERE config_attribute_id=310 AND template_id=0; +UPDATE orientation SET y_position=6 WHERE config_attribute_id=311 AND template_id=0; +UPDATE orientation SET y_position=7 WHERE config_attribute_id=312 AND template_id=0; +UPDATE orientation SET y_position=9 WHERE config_attribute_id=313 AND template_id=0; +UPDATE orientation SET y_position=10 WHERE config_attribute_id=314 AND template_id=0; +UPDATE orientation SET y_position=11 WHERE config_attribute_id=316 AND template_id=0; +-- add new macOS settings +INSERT IGNORE INTO orientation (config_attribute_id, template_id, view_id, group_id, x_position, y_position, width, height, title) VALUES + (1567, 0, 9, 'macSettings', 7, 2, 5, 1, 'NONE'), + (1550, 0, 9, 'macSettings', 7, 3, 5, 1, 'NONE'), + (909, 0, 9, 'macSettings', 7, 8, 5, 1, 'NONE'), + (1552, 0, 9, 'macSettings', 7, 12, 5, 1, 'NONE'), + (948, 0, 9, 'macSettings', 7, 13, 5, 1, 'NONE'), + (1557, 0, 9, 'macSettings', 7, 14, 5, 1, 'NONE'), + (943, 0, 9, 'macSettings', 7, 15, 5, 1, 'NONE'), + (945, 0, 9, 'macSettings', 7, 16, 5, 1, 'NONE') +; + +-- ---------------------------------------------------------------- +-- Add Media Playback/Capture (SEBSERV-414) -- ---------------------------------------------------------------- INSERT IGNORE INTO orientation (config_attribute_id, template_id, view_id, group_id, x_position, y_position, width, height, title) VALUES - (1200, 0, 6, null, 0, 6, 1, 1, 'LEFT'); \ No newline at end of file + (1558, 0, 3, 'mediaPlaybackCapture', 7, 16, 2, 1, 'NONE'), + (1559, 0, 3, 'mediaPlaybackCapture', 7, 17, 2, 1, 'NONE'), + (1560, 0, 3, 'mediaPlaybackCapture', 7, 18, 2, 1, 'NONE'), + (1561, 0, 3, 'mediaPlaybackCapture', 7, 19, 2, 1, 'NONE'), + (1562, 0, 3, 'mediaPlaybackCapture', 7, 20, 3, 1, 'NONE'), + + (905, 0, 3, 'mediaPlaybackCapture', 9, 18, 3, 1, 'NONE'), + (1569, 0, 3, 'mediaPlaybackCapture', 9, 16, 3, 1, 'NONE'), + (1570, 0, 3, 'mediaPlaybackCapture', 9, 17, 3, 1, 'NONE'), + (1563, 0, 3, 'mediaPlaybackCapture', 9, 19, 3, 1, 'NONE') +; + diff --git a/src/main/resources/messages.properties b/src/main/resources/messages.properties index 0db5b37b..80a1eed4 100644 --- a/src/main/resources/messages.properties +++ b/src/main/resources/messages.properties @@ -1338,10 +1338,12 @@ sebserver.examconfig.props.label.showReloadWarning=Show reload warning in exam sebserver.examconfig.props.label.showReloadWarning.tooltip=User has to confirm reloading a web page with F5 or reload button sebserver.examconfig.props.label.newBrowserWindowShowReloadWarning=Show reload warning in additional windows sebserver.examconfig.props.label.newBrowserWindowShowReloadWarning.tooltip=User has to confirm reloading a web page with F5 or reload button -sebserver.examconfig.props.label.removeBrowserProfile=Delete cache when re-configuring or terminating SEB (Win) This setting is ignored if
"Clear browser session when ending" in section Exam > Session Handling is deactivated! +sebserver.examconfig.props.label.removeBrowserProfile=Delete cache when re-configuring or terminating SEB (Win) sebserver.examconfig.props.label.removeBrowserProfile.tooltip=This setting is ignored if "Clear browser session when ending" in section Exam > Session Handling is deactivated! sebserver.examconfig.props.label.removeLocalStorage=Disable local storage (Mac) sebserver.examconfig.props.label.removeLocalStorage.tooltip=If your web application uses local storage, you have to be sure data is saved encrypted
and removed when no longer needed as SEB doesn't remove local storage +sebserver.examconfig.props.label.allowPrint=Allow printing of web content (Win) +sebserver.examconfig.props.label.allowPrint.tooltip=This does not allow printing via internet PDF reader (see below)! sebserver.examconfig.props.group.examWindow=Restrictions in Exam Window sebserver.examconfig.props.label.browserWindowShowURL=Show URLs @@ -1581,6 +1583,7 @@ sebserver.examconfig.props.label.enableWindowsUpdate=Allow Windows Update to run sebserver.examconfig.props.label.enableChromeNotifications=Allow notifications from Chrome browsers sebserver.examconfig.props.group.kioskMode=Kiosk Mode +sebserver.examconfig.props.label.kioskMode=Kiosk Mode sebserver.examconfig.props.label.kioskMode.tooltip=The kiosk mode setting reflects how the computer is locked down in SEB sebserver.examconfig.props.label.kioskMode.0=Create new desktop sebserver.examconfig.props.label.kioskMode.0.tooltip=This kiosk mode may prevent specific third party software to run correctly together with SEB, like some screen recording software or the Windows onscreen keyboard. @@ -1595,6 +1598,8 @@ sebserver.examconfig.props.label.allowScreenSharing=Allow remote session/screen sebserver.examconfig.props.label.allowScreenSharing.tootlip=Allows Windows remote sessions and macOS screen sharing to be used sebserver.examconfig.props.label.enablePrivateClipboard=Use private clipboard (Mac) sebserver.examconfig.props.label.enablePrivateClipboard.tooltip=Private clipboard should always be used beside when working with third party application in managed/virtual machine +sebserver.examconfig.props.label.enablePrivateClipboardMacEnforce=Enforce private clipboard on Mac +sebserver.examconfig.props.label.enablePrivateClipboardMacEnforce.tooltip=Private clipboard should always be used beside when working with third party application in managed/virtual machine sebserver.examconfig.props.group.logging=Logging sebserver.examconfig.props.label.enableLogging=Enable logging @@ -1612,6 +1617,12 @@ sebserver.examconfig.props.label.minMacOSVersion.4=OS X 10.11 El Capitan sebserver.examconfig.props.label.minMacOSVersion.5=OS X 10.12 Sierra sebserver.examconfig.props.label.minMacOSVersion.6=OS X 10.13 Hight Sierra sebserver.examconfig.props.label.minMacOSVersion.7=OS X 10.14 Mojave +sebserver.examconfig.props.label.minMacOSVersion.8=OS X 10.15 Catalina +sebserver.examconfig.props.label.minMacOSVersion.9=OS X 11 Big Sur +sebserver.examconfig.props.label.minMacOSVersion.10=OS X 12 Monterey +sebserver.examconfig.props.label.minMacOSVersion.11=OS X 13 Ventura +sebserver.examconfig.props.label.minMacOSVersion.12=OS X 14 Sonoma + sebserver.examconfig.props.label.enableAppSwitcherCheck=Disable app switcher when starting sebserver.examconfig.props.label.enableAppSwitcherCheck.tooltip=SEB checks for the command key being held down while SEB is starting up. This prevents using the application switcher to mess with SEB\'s kiosk mode sebserver.examconfig.props.label.forceAppFolderInstall=Force installation in Applications folder @@ -1622,6 +1633,7 @@ sebserver.examconfig.props.label.allowSiri=Allow to use Siri sebserver.examconfig.props.label.allowSiri.tooltip=If enabled, Siri can be used by tapping the menu bar icon, Touch Bar icon or shortcut set in System Preferences/Siri (default: hold command space). The Siri window won't be displayed though sebserver.examconfig.props.label.detectStoppedProcess=Detect when SEB process was stopped sebserver.examconfig.props.label.detectStoppedProcess.tooltip=SEB displays a lock screen (requiring to enter the quit/unlock password) if it detects its process was stopped, which can indicate manipulation +sebserver.examconfig.props.label.detectStoppedProcess.tooltip=SEB displays a lock screen (requiring to enter the quit/unlock password) if it detects its process was stopped, which can indicate manipulation sebserver.examconfig.props.label.allowDisplayMirroring=Allow display mirroring (affects also AirPlay Display) sebserver.examconfig.props.label.allowDisplayMirroring.tooltip=If not selected, SEB prevents to mirror the main display to another sebserver.examconfig.props.label.allowedDisplaysMaxNumber=Maximum allowed number of connected displays @@ -1667,11 +1679,12 @@ sebserver.examconfig.props.label.insideSebEnableVmWareClientShade=Enable VMware sebserver.examconfig.props.label.insideSebEnableVmWareClientShade.tooltip=Activates the "Shade" bar at the upper edge of a virtual desktop, if existent. If you're not using VMware, this setting doesn't have any effect. sebserver.examconfig.props.label.insideSebEnableNetworkConnectionSelector=Enable network connection selector sebserver.examconfig.props.label.insideSebEnableNetworkConnectionSelector.tooltip=Activates the button which allows to connect to WiFi networks, introduces in Windows 10 +sebserver.examconfig.props.label.enableFindPrinter=Enable find printer in system print dialog sebserver.examconfig.props.group.specialKeys=Special Keys sebserver.examconfig.props.group.specialKeys.tooltip=Settings to enable or block (hook) keys, key combinations and mouse buttons sebserver.examconfig.props.label.enableEsc=Enable Esc -sebserver.examconfig.props.label.enablePrintScreen=Allow screen capture +sebserver.examconfig.props.label.enablePrintScreen=Allow screen capture (Win/iOS) sebserver.examconfig.props.label.enablePrintScreen.tooltip=Controls Print Screen and OS X screen capture, corresponds with Enable screen capture in Security settings sebserver.examconfig.props.label.enableCtrlEsc=Enable Ctrl-Esc sebserver.examconfig.props.label.enableAltEsc=Enable Alt-Esc @@ -1837,7 +1850,7 @@ sebserver.examconfig.props.label.zoomSendVideo.tooltip=Not yet implemented sebserver.examconfig.props.label.showProctoringViewButton=Show Proctoring Button -sebserver.examconfig.props.label.showProctoringViewButton +sebserver.examconfig.props.label.showProctoringViewButton.tooltip= sebserver.examconfig.props.validation.password.confirm=Please enter correct confirm password sebserver.examconfig.props.validation.unexpected=Unexpected error happened. Value was not set correctly @@ -1859,12 +1872,14 @@ sebserver.examconfig.props.label.allowMacOSVersionNumberMinor=Minor version numb sebserver.examconfig.props.label.allowMacOSVersionNumberPatch=Patch version number sebserver.examconfig.props.label.allowScreenCapture=Allow screen capture/recording sebserver.examconfig.props.label.allowScreenCapture.tooltip=Allows macOS screen capture (screen shots) and recording (cmd-shift-3/-4/-5) +sebserver.examconfig.props.group.mediaPlaybackCapture=Media Playback/Capture sebserver.examconfig.props.label.browserMediaAutoplay=Media autoplay sebserver.examconfig.props.label.browserMediaAutoplay.tooltip=Some video/audio content will start playing without user interaction.
Some other content might not be playable without enabling this setting (but will not auto play) sebserver.examconfig.props.label.browserMediaAutoplayAudio=Audio autoplay sebserver.examconfig.props.label.browserMediaAutoplayAudio.tooltip=Using the modern WebView, audio autoplay can be controlled separately sebserver.examconfig.props.label.browserMediaAutoplayVideo=Video autoplay sebserver.examconfig.props.label.browserMediaAutoplayVideo.tootlip=Using the modern WebView, video autoplay can be controlled separately +sebserver.examconfig.props.label.mobileAllowPictureInPictureMediaPlayback=Allow picture in picture video (iOS) sebserver.examconfig.props.label.browserMediaCaptureCamera=Allow camera capture sebserver.examconfig.props.label.browserMediaCaptureCamera.tooltip=Allow web sites to access the camera, for WebRTC live streams or still pictures (only in modern WebView and on macOS 11.1/iOS 14.3 or newer) sebserver.examconfig.props.label.browserMediaCaptureMicrophone=Allow microphone capture @@ -1882,8 +1897,12 @@ sebserver.examconfig.props.label.defaultPageZoomLevel=Default page zoom level sebserver.examconfig.props.label.defaultPageZoomLevel.tooltip=Zoom level to use by default on every page sebserver.examconfig.props.label.defaultTextZoomLevel=Default text zoom level sebserver.examconfig.props.label.defaultTextZoomLevel.tooltip=Zoom level to use by default on every page. When using the modern WebView, text zoom only works on some (simple) webpages
and is only enabled when the page zoom level is 1.0 +sebserver.examconfig.props.label.allowDictation=Allow to use dictation +sebserver.examconfig.props.label.blockScreenShotsLegacy=Block screen shots (Legacy) +sebserver.examconfig.props.label.allowWindowCapture=Allow window capture (screen shots) +sebserver.examconfig.props.label.screenSharingMacEnforceBlocked=Enforce blocking screen sharing on Mac sebserver.examconfig.props.label.enableMacOSAAC=Prefer Assessment Mode (AAC) -sebserver.examconfig.props.label.enableMacOSAAC.tooltip=Automatic Assessment Configuration (AAC) Assessment Mode is available from macOS Monterey 12.1 (and Catalina 10.15.4 and >= 10.15.6).
It blocks various macOS features (which cannot be allowed optionally, like screen capture/sharing, Siri, Dictation) +sebserver.examconfig.props.label.enableMacOSAAC.tooltip=Automatic Assessment Configuration (AAC) Assessment Mode is available from macOS Monterey 12.1 (and Catalina 10.15.4 and >= 10.15.6).
It blocks various macOS (which cannot be allowed optionally, like screen capture/sharing, Siri, Dictation) sebserver.examconfig.props.label.enableRightMouseMac=Enable right mouse button sebserver.examconfig.props.label.enableRightMouseMac.tooltip=Enable to access context menu for Web Inspector in SEB for macOS (use ONLY for debugging).
Disable to prevent right mouse button actions/context menu for sharing content (with modern WebView) and in browser plugins/video players sebserver.examconfig.props.label.mobileAllowInlineMediaPlayback=Allow inline playback on iPad