SEBWIN-464 added missing attributes and created migration task

This commit is contained in:
anhefti 2021-02-15 15:34:01 +01:00
parent 256b59e566
commit b6e9e55106
4 changed files with 125 additions and 4 deletions

View file

@ -56,7 +56,9 @@ public class BrowserViewModeRule implements ValueChangeRule {
if (KEY_TOUCH_OPTIMIZED.equals(attribute.name)) {
if (BooleanUtils.toBoolean(value.value)) {
context.disableGroup(KEY_MAIN_WINDOW_GROUP);
context.setValue(KEY_BROWSER_VIEW_MODE, "2");
context.setValue(
KEY_BROWSER_VIEW_MODE,
context.getAttributeByName(KEY_BROWSER_VIEW_MODE).defaultValue);
} else {
context.setValue(KEY_TOUCH_EXIT, Constants.FALSE_STRING);
context.disable(KEY_TOUCH_EXIT);
@ -70,7 +72,9 @@ public class BrowserViewModeRule implements ValueChangeRule {
case 1: {
context.disable(KEY_TOUCH_EXIT);
context.disableGroup(KEY_MAIN_WINDOW_GROUP);
context.setValue(KEY_TOUCH_OPTIMIZED, Constants.FALSE_STRING);
context.setValue(
KEY_TOUCH_OPTIMIZED,
context.getAttributeByName(KEY_TOUCH_OPTIMIZED).defaultValue);
break;
}
case 2: {
@ -79,7 +83,9 @@ public class BrowserViewModeRule implements ValueChangeRule {
}
default: {
context.disable(KEY_TOUCH_EXIT);
context.setValue(KEY_TOUCH_OPTIMIZED, Constants.FALSE_STRING);
context.setValue(
KEY_TOUCH_OPTIMIZED,
context.getAttributeByName(KEY_TOUCH_OPTIMIZED).defaultValue);
break;
}
}

View file

@ -0,0 +1,73 @@
/*
* Copyright (c) 2021 ETH Zürich, Educational Development and Technology (LET)
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
package ch.ethz.seb.sebserver.gui.service.examconfig.impl.rules;
import org.apache.commons.lang3.BooleanUtils;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
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;
@Lazy
@Service
@GuiProfile
public class IgnoreSEBService implements ValueChangeRule {
public static final String KEY_IGNORE_SEB_SERVICE = "sebServiceIgnore";
public static final String KEY_SEB_SERVICE_POLICY = "sebServicePolicy";
public static final String KEY_ATTR_1 = "enableWindowsUpdate";
public static final String KEY_ATTR_2 = "enableChromeNotifications";
public static final String KEY_ATTR_3 = "allowScreenSharing";
@Override
public boolean observesAttribute(final ConfigurationAttribute attribute) {
return KEY_IGNORE_SEB_SERVICE.equals(attribute.name);
}
@Override
public void applyRule(
final ViewContext context,
final ConfigurationAttribute attribute,
final ConfigurationValue value) {
if (KEY_IGNORE_SEB_SERVICE.equals(attribute.name)) {
if (BooleanUtils.toBoolean(value.value)) {
context.disable(KEY_SEB_SERVICE_POLICY);
context.disable(KEY_ATTR_1);
context.disable(KEY_ATTR_2);
context.disable(KEY_ATTR_3);
context.setValue(
KEY_SEB_SERVICE_POLICY,
context.getAttributeByName(KEY_SEB_SERVICE_POLICY).defaultValue);
context.setValue(
KEY_ATTR_1,
context.getAttributeByName(KEY_ATTR_1).defaultValue);
context.setValue(
KEY_ATTR_2,
context.getAttributeByName(KEY_ATTR_2).defaultValue);
context.setValue(
KEY_ATTR_3,
context.getAttributeByName(KEY_ATTR_3).defaultValue);
} else {
context.enable(KEY_SEB_SERVICE_POLICY);
context.enable(KEY_ATTR_1);
context.enable(KEY_ATTR_2);
context.enable(KEY_ATTR_3);
}
}
}
}

View file

@ -0,0 +1,36 @@
INSERT IGNORE INTO configuration_attribute VALUES
(318, 'sebServiceIgnore', 'CHECKBOX', null, null, null, null, 'true'),
(319, 'allowApplicationLog', 'CHECKBOX', null, null, null, null, 'false'),
(320, 'showApplicationLogButton', 'CHECKBOX', null, null, null, null, 'false'),
(321, 'enableWindowsUpdate', 'CHECKBOX', null, null, null, null, 'false'),
(322, 'enableChromeNotifications', 'CHECKBOX', null, null, null, null, 'false')
;
UPDATE orientation SET y_position='13', width='12' WHERE id='305';
UPDATE orientation SET y_position='16', width='10' WHERE id='306';
UPDATE orientation SET y_position='17', width='10' WHERE id='307';
UPDATE orientation SET y_position='18' WHERE id='317';
UPDATE orientation SET x_position='0', y_position='9' WHERE id='301';
UPDATE orientation SET x_position='3', y_position='10', width='4' WHERE id='501';
UPDATE orientation SET x_position='3', y_position='11', width='4' WHERE id='304';
UPDATE orientation SET x_position='3', y_position='12', width='4' WHERE id='302';
UPDATE orientation SET group_id='sebService', x_position='4', y_position='6', width='3' WHERE id='303';
UPDATE orientation SET group_id='sebService', y_position='2', width='7', title='TOP' WHERE id='300';
UPDATE orientation SET y_position='3' WHERE id='309';
UPDATE orientation SET y_position='4' WHERE id='310';
UPDATE orientation SET y_position='5' WHERE id='311';
UPDATE orientation SET y_position='6' WHERE id='312';
UPDATE orientation SET y_position='7' WHERE id='313';
UPDATE orientation SET y_position='8' WHERE id='314';
UPDATE orientation SET y_position='11' WHERE id='315';
UPDATE orientation SET y_position='12' WHERE id='316';
INSERT IGNORE INTO orientation VALUES
(318, 318, 0, 9, 'sebService', 0, 0, 7, 1, 'NONE'),
(319, 319, 0, 9, 'logging', 0, 14, 5, 1, 'NONE'),
(320, 320, 0, 9, 'logging', 0, 15, 5, 1, 'NONE'),
(321, 321, 0, 9, 'sebService', 0, 6, 4, 1, 'NONE'),
(322, 322, 0, 9, 'sebService', 0, 7, 4, 1, 'NONE')
;

View file

@ -1154,11 +1154,15 @@ sebserver.examconfig.props.label.RTSPUsername=Username
sebserver.examconfig.props.label.RTSPPassword=Password
sebserver.examconfig.props.group.servicePolicy=SEB Service policy
sebserver.examconfig.props.group.sebService=SEB Service (Win)
sebserver.examconfig.props.label.sebServicePolicy=<span style=\"color:#aa0000\">IMPORTANT: The SEB Service changes aspects of the system configuration.<br/>Some anti-virus software providers might falsely identify its operation as malicious,<br/>thus it is not recommended to use the SEB Service in uncontrolled environments (e.g. BYOD).</span><br/><br/>SEB Service policy
sebserver.examconfig.props.label.sebServicePolicy.0=allow to run SEB without service
sebserver.examconfig.props.label.sebServicePolicy.1=display warning when service is not running
sebserver.examconfig.props.label.sebServicePolicy.2=allow to use SEB only with service
sebserver.examconfig.props.label.sebServicePolicy.tooltip=Policy that applies when an exam client doesn't have the SEB client running
sebserver.examconfig.props.label.sebServiceIgnore=Ignore SEB Service
sebserver.examconfig.props.label.enableWindowsUpdate=Allow Windows Update to run while SEB is running
sebserver.examconfig.props.label.enableChromeNotifications=Allow notifications from Chrome browsers
sebserver.examconfig.props.group.kioskMode=Kiosk Mode
sebserver.examconfig.props.label.kioskMode.tooltip=The kiosk mode setting reflects how the computer is locked down in SEB
@ -1220,6 +1224,8 @@ sebserver.examconfig.props.label.logLevel.3=Debug
sebserver.examconfig.props.label.logLevel.3.tooltip=Debug is reserved for information which is only necessary for in-deep program code debugging
sebserver.examconfig.props.label.logLevel.4=Verbose
sebserver.examconfig.props.label.logLevel.4.tooltip=Verbose level contains events of all levels
sebserver.examconfig.props.label.allowApplicationLog=Allow access to application log (Win)
sebserver.examconfig.props.label.showApplicationLogButton=Show log button on taskbar (Win)
sebserver.examconfig.props.group.registry=While running SEB
sebserver.examconfig.props.group.registry.tooltip=Options in the Windows Security Screen invoked by Ctrl-Alt-Del