Skip to content
Snippets Groups Projects
Commit 4b7055ce authored by uhensler's avatar uhensler
Browse files

OO-3933: Simplification of the configuration to restrict the usage of document editors

parent 31bae654
No related branches found
No related tags found
No related merge requests found
Showing
with 12 additions and 115 deletions
......@@ -39,7 +39,6 @@ public class CollaboraModule extends AbstractSpringModule implements ConfigOnOff
private static final String COLLABORA_ENABLED = "collabora.enabled";
private static final String COLLABORA_BASE_URL = "collabora.baseUrl";
private static final String COLLABORA_DATA_TRANSER_CONFIRMATION_ENABLED = "collabora.data.transfer.confirmation.enabled";
private static final String COLLABORA_USAGE_RESTRICTED = "collabora.usage.restricted";
private static final String COLLABORA_USAGE_AUTHORS = "collabora.usage.authors";
private static final String COLLABORA_USAGE_COACHES = "collabora.usage.coaches";
private static final String COLLABORA_USAGE_MANAGERS = "collabora.usage.managers";
......@@ -50,8 +49,6 @@ public class CollaboraModule extends AbstractSpringModule implements ConfigOnOff
private String baseUrl;
@Value("${collabora.data.transfer.confirmation.enabled:false}")
private boolean dataTransferConfirmationEnabled;
@Value("${collabora.usage.restricted:false}")
private boolean usageRestricted;
@Value("${collabora.usage.restricted.authors:false}")
private boolean usageRestrictedToAuthors;
@Value("${collabora.usage.restricted.coaches:false}")
......@@ -90,11 +87,6 @@ public class CollaboraModule extends AbstractSpringModule implements ConfigOnOff
dataTransferConfirmationEnabled = "true".equals(dataTransferConfirmationEnabledObj);
}
String usageRestrictedObj = getStringPropertyValue(COLLABORA_USAGE_RESTRICTED, true);
if(StringHelper.containsNonWhitespace(usageRestrictedObj)) {
usageRestricted = "true".equals(usageRestrictedObj);
}
String usageRestrictedToAuthorsObj = getStringPropertyValue(COLLABORA_USAGE_AUTHORS, true);
if(StringHelper.containsNonWhitespace(usageRestrictedToAuthorsObj)) {
usageRestrictedToAuthors = "true".equals(usageRestrictedToAuthorsObj);
......@@ -140,12 +132,7 @@ public class CollaboraModule extends AbstractSpringModule implements ConfigOnOff
}
public boolean isUsageRestricted() {
return usageRestricted;
}
public void setUsageRestricted(boolean usageRestricted) {
this.usageRestricted = usageRestricted;
setStringProperty(COLLABORA_USAGE_RESTRICTED, Boolean.toString(usageRestricted), true);
return usageRestrictedToAuthors || usageRestrictedToCoaches || usageRestrictedToManagers;
}
public boolean isUsageRestrictedToAuthors() {
......
......@@ -71,7 +71,6 @@ public class CollaboraAdminController extends FormBasicController {
private FormLink refreshDiscoveryLink;
private FormLink testLink;
private MultipleSelectionElement dataTransferConfirmationEnabledEl;
private MultipleSelectionElement usageRestrictedEl;
private MultipleSelectionElement usageRolesEl;
@Autowired
......@@ -105,21 +104,15 @@ public class CollaboraAdminController extends FormBasicController {
translateAll(getTranslator(), ENABLED_KEYS));
dataTransferConfirmationEnabledEl.select(ENABLED_KEYS[0], collaboraModule.isDataTransferConfirmationEnabled());
usageRestrictedEl = uifactory.addCheckboxesHorizontal("admin.usage.restricted", formLayout, ENABLED_KEYS,
translateAll(getTranslator(), ENABLED_KEYS));
usageRestrictedEl.setHelpTextKey("admin.usage.restricted.help", null);
usageRestrictedEl.select(ENABLED_KEYS[0], collaboraModule.isUsageRestricted());
usageRestrictedEl.addActionListener(FormEvent.ONCHANGE);
KeyValues usageRolesKV = new KeyValues();
usageRolesKV.add(entry(USAGE_AUTHOR, translate("admin.usage.roles.author")));
usageRolesKV.add(entry(USAGE_COACH, translate("admin.usage.roles.coach")));
usageRolesKV.add(entry(USAGE_MANAGERS, translate("admin.usage.roles.managers")));
usageRolesEl = uifactory.addCheckboxesVertical("admin.usage.roles", formLayout, usageRolesKV.keys(), usageRolesKV.values(), 1);
usageRolesEl.setHelpTextKey("admin.usage.roles.help", null);
usageRolesEl.select(USAGE_AUTHOR, collaboraModule.isUsageRestrictedToAuthors());
usageRolesEl.select(USAGE_COACH, collaboraModule.isUsageRestrictedToCoaches());
usageRolesEl.select(USAGE_MANAGERS, collaboraModule.isUsageRestrictedToManagers());
updateUsageUI();
if (Settings.isDebuging()) {
testLink = uifactory.addFormLink("admin.test", formLayout, Link.BUTTON);
......@@ -134,19 +127,12 @@ public class CollaboraAdminController extends FormBasicController {
protected void formInnerEvent(UserRequest ureq, FormItem source, FormEvent event) {
if (source == refreshDiscoveryLink) {
doRefreshDiscovery();
} else if (source == usageRestrictedEl) {
updateUsageUI();
} else if (source == testLink) {
doTest();
}
super.formInnerEvent(ureq, source, event);
}
private void updateUsageUI() {
boolean usageRestricted = usageRestrictedEl.isAtLeastSelected(1);
usageRolesEl.setVisible(usageRestricted);
}
@Override
protected boolean validateFormLogic(UserRequest ureq) {
boolean allOk = true;
......@@ -174,9 +160,6 @@ public class CollaboraAdminController extends FormBasicController {
boolean dataTransferConfirmationEnabled = dataTransferConfirmationEnabledEl.isAtLeastSelected(1);
collaboraModule.setDataTransferConfirmationEnabled(dataTransferConfirmationEnabled);
boolean usageRestricted = usageRestrictedEl.isAtLeastSelected(1);
collaboraModule.setUsageRestricted(usageRestricted);
Collection<String> restrictionKeys = usageRolesEl.getSelectedKeys();
collaboraModule.setUsageRestrictedToAuthors(restrictionKeys.contains(USAGE_AUTHOR));
collaboraModule.setUsageRestrictedToCoaches(restrictionKeys.contains(USAGE_COACH));
......
......@@ -39,7 +39,6 @@ public class Office365Module extends AbstractSpringModule implements ConfigOnOff
private static final String OFFICE365_ENABLED = "office365.enabled";
private static final String OFFICE365_BASE_URL = "office365.baseUrl";
private static final String OFFICE365_DATA_TRANSER_CONFIRMATION_ENABLED = "office365.data.transfer.confirmation.enabled";
private static final String OFFICE365_USAGE_RESTRICTED = "office365.usage.restricted";
private static final String OFFICE365_USAGE_AUTHORS = "office365.usage.authors";
private static final String OFFICE365_USAGE_COACHES = "office365.usage.coaches";
private static final String OFFICE365_USAGE_MANAGERS = "office365.usage.managers";
......@@ -50,8 +49,6 @@ public class Office365Module extends AbstractSpringModule implements ConfigOnOff
private String baseUrl;
@Value("${office365.data.transfer.confirmation.enabled:false}")
private boolean dataTransferConfirmationEnabled;
@Value("${office365.usage.restricted:false}")
private boolean usageRestricted;
@Value("${office365.usage.restricted.authors:false}")
private boolean usageRestrictedToAuthors;
@Value("${office365.usage.restricted.coaches:false}")
......@@ -90,11 +87,6 @@ public class Office365Module extends AbstractSpringModule implements ConfigOnOff
dataTransferConfirmationEnabled = "true".equals(dataTransferConfirmationEnabledObj);
}
String usageRestrictedObj = getStringPropertyValue(OFFICE365_USAGE_RESTRICTED, true);
if(StringHelper.containsNonWhitespace(usageRestrictedObj)) {
usageRestricted = "true".equals(usageRestrictedObj);
}
String usageRestrictedToAuthorsObj = getStringPropertyValue(OFFICE365_USAGE_AUTHORS, true);
if(StringHelper.containsNonWhitespace(usageRestrictedToAuthorsObj)) {
usageRestrictedToAuthors = "true".equals(usageRestrictedToAuthorsObj);
......@@ -140,12 +132,7 @@ public class Office365Module extends AbstractSpringModule implements ConfigOnOff
}
public boolean isUsageRestricted() {
return usageRestricted;
}
public void setUsageRestricted(boolean usageRestricted) {
this.usageRestricted = usageRestricted;
setStringProperty(OFFICE365_USAGE_RESTRICTED, Boolean.toString(usageRestricted), true);
return usageRestrictedToAuthors || usageRestrictedToCoaches || usageRestrictedToManagers;
}
public boolean isUsageRestrictedToAuthors() {
......
......@@ -63,7 +63,6 @@ public class Office365AdminController extends FormBasicController {
private TextElement baseUrlEl;
private FormLink refreshDiscoveryLink;
private MultipleSelectionElement dataTransferConfirmationEnabledEl;
private MultipleSelectionElement usageRestrictedEl;
private MultipleSelectionElement usageRolesEl;
@Autowired
......@@ -95,21 +94,15 @@ public class Office365AdminController extends FormBasicController {
translateAll(getTranslator(), ENABLED_KEYS));
dataTransferConfirmationEnabledEl.select(ENABLED_KEYS[0], office365Module.isDataTransferConfirmationEnabled());
usageRestrictedEl = uifactory.addCheckboxesHorizontal("admin.usage.restricted", formLayout, ENABLED_KEYS,
translateAll(getTranslator(), ENABLED_KEYS));
usageRestrictedEl.setHelpTextKey("admin.usage.restricted.help", null);
usageRestrictedEl.select(ENABLED_KEYS[0], office365Module.isUsageRestricted());
usageRestrictedEl.addActionListener(FormEvent.ONCHANGE);
KeyValues usageRolesKV = new KeyValues();
usageRolesKV.add(entry(USAGE_AUTHOR, translate("admin.usage.roles.author")));
usageRolesKV.add(entry(USAGE_COACH, translate("admin.usage.roles.coach")));
usageRolesKV.add(entry(USAGE_MANAGERS, translate("admin.usage.roles.managers")));
usageRolesEl = uifactory.addCheckboxesVertical("admin.usage.roles", formLayout, usageRolesKV.keys(), usageRolesKV.values(), 1);
usageRolesEl.setHelpTextKey("admin.usage.roles.help", null);
usageRolesEl.select(USAGE_AUTHOR, office365Module.isUsageRestrictedToAuthors());
usageRolesEl.select(USAGE_COACH, office365Module.isUsageRestrictedToCoaches());
usageRolesEl.select(USAGE_MANAGERS, office365Module.isUsageRestrictedToManagers());
updateUsageUI();
FormLayoutContainer buttonLayout = FormLayoutContainer.createButtonLayout("buttons", getTranslator());
formLayout.add("buttons", buttonLayout);
......@@ -120,17 +113,10 @@ public class Office365AdminController extends FormBasicController {
protected void formInnerEvent(UserRequest ureq, FormItem source, FormEvent event) {
if (source == refreshDiscoveryLink) {
doRefreshDiscovery();
} else if (source == usageRestrictedEl) {
updateUsageUI();
}
super.formInnerEvent(ureq, source, event);
}
private void updateUsageUI() {
boolean usageRestricted = usageRestrictedEl.isAtLeastSelected(1);
usageRolesEl.setVisible(usageRestricted);
}
@Override
protected boolean validateFormLogic(UserRequest ureq) {
boolean allOk = true;
......@@ -158,9 +144,6 @@ public class Office365AdminController extends FormBasicController {
boolean dataTransferConfirmationEnabled = dataTransferConfirmationEnabledEl.isAtLeastSelected(1);
office365Module.setDataTransferConfirmationEnabled(dataTransferConfirmationEnabled);
boolean usageRestricted = usageRestrictedEl.isAtLeastSelected(1);
office365Module.setUsageRestricted(usageRestricted);
Collection<String> restrictionKeys = usageRolesEl.getSelectedKeys();
office365Module.setUsageRestrictedToAuthors(restrictionKeys.contains(USAGE_AUTHOR));
office365Module.setUsageRestrictedToCoaches(restrictionKeys.contains(USAGE_COACH));
......
......@@ -48,7 +48,6 @@ public class OnlyOfficeModule extends AbstractSpringModule implements ConfigOnOf
private static final String ONLYOFFICE_BASE_URL = "onlyoffice.baseUrl";
private static final String ONLYOFFICE_JWT_SECRET = "onlyoffice.jwt.secret";
private static final String ONLYOFFICE_DATA_TRANSER_CONFIRMATION_ENABLED = "onlyoffice.data.transfer.confirmation.enabled";
private static final String ONLYOFFICE_USAGE_RESTRICTED = "onlyoffice.usage.restricted";
private static final String ONLYOFFICE_USAGE_AUTHORS = "onlyoffice.usage.authors";
private static final String ONLYOFFICE_USAGE_COACHES = "onlyoffice.usage.coaches";
private static final String ONLYOFFICE_USAGE_MANAGERS = "onlyoffice.usage.managers";
......@@ -64,8 +63,6 @@ public class OnlyOfficeModule extends AbstractSpringModule implements ConfigOnOf
private Key jwtSignKey;
@Value("${onlyoffice.data.transfer.confirmation.enabled:false}")
private boolean dataTransferConfirmationEnabled;
@Value("${onlyoffice.usage.restricted:false}")
private boolean usageRestricted;
@Value("${onlyoffice.usage.restricted.authors:false}")
private boolean usageRestrictedToAuthors;
@Value("${onlyoffice.usage.restricted.coaches:false}")
......@@ -110,11 +107,6 @@ public class OnlyOfficeModule extends AbstractSpringModule implements ConfigOnOf
dataTransferConfirmationEnabled = "true".equals(dataTransferConfirmationEnabledObj);
}
String usageRestrictedObj = getStringPropertyValue(ONLYOFFICE_USAGE_RESTRICTED, true);
if(StringHelper.containsNonWhitespace(usageRestrictedObj)) {
usageRestricted = "true".equals(usageRestrictedObj);
}
String usageRestrictedToAuthorsObj = getStringPropertyValue(ONLYOFFICE_USAGE_AUTHORS, true);
if(StringHelper.containsNonWhitespace(usageRestrictedToAuthorsObj)) {
usageRestrictedToAuthors = "true".equals(usageRestrictedToAuthorsObj);
......@@ -190,12 +182,7 @@ public class OnlyOfficeModule extends AbstractSpringModule implements ConfigOnOf
}
public boolean isUsageRestricted() {
return usageRestricted;
}
public void setUsageRestricted(boolean usageRestricted) {
this.usageRestricted = usageRestricted;
setStringProperty(ONLYOFFICE_USAGE_RESTRICTED, Boolean.toString(usageRestricted), true);
return usageRestrictedToAuthors || usageRestrictedToCoaches || usageRestrictedToManagers;
}
public boolean isUsageRestrictedToAuthors() {
......
......@@ -29,12 +29,10 @@ import org.olat.core.commons.services.doceditor.onlyoffice.OnlyOfficeModule;
import org.olat.core.commons.services.doceditor.onlyoffice.OnlyOfficeSecurityService;
import org.olat.core.commons.services.doceditor.ui.DocEditorController;
import org.olat.core.gui.UserRequest;
import org.olat.core.gui.components.form.flexible.FormItem;
import org.olat.core.gui.components.form.flexible.FormItemContainer;
import org.olat.core.gui.components.form.flexible.elements.MultipleSelectionElement;
import org.olat.core.gui.components.form.flexible.elements.TextElement;
import org.olat.core.gui.components.form.flexible.impl.FormBasicController;
import org.olat.core.gui.components.form.flexible.impl.FormEvent;
import org.olat.core.gui.components.form.flexible.impl.FormLayoutContainer;
import org.olat.core.gui.components.util.KeyValues;
import org.olat.core.gui.control.Controller;
......@@ -59,7 +57,6 @@ public class OnlyOfficeAdminController extends FormBasicController {
private TextElement baseUrlEl;
private TextElement jwtSecretEl;
private MultipleSelectionElement dataTransferConfirmationEnabledEl;
private MultipleSelectionElement usageRestrictedEl;
private MultipleSelectionElement usageRolesEl;
@Autowired
......@@ -94,38 +91,20 @@ public class OnlyOfficeAdminController extends FormBasicController {
translateAll(getTranslator(), ENABLED_KEYS));
dataTransferConfirmationEnabledEl.select(ENABLED_KEYS[0], onlyOfficeModule.isDataTransferConfirmationEnabled());
usageRestrictedEl = uifactory.addCheckboxesHorizontal("admin.usage.restricted", formLayout, ENABLED_KEYS,
translateAll(getTranslator(), ENABLED_KEYS));
usageRestrictedEl.setHelpTextKey("admin.usage.restricted.help", null);
usageRestrictedEl.select(ENABLED_KEYS[0], onlyOfficeModule.isUsageRestricted());
usageRestrictedEl.addActionListener(FormEvent.ONCHANGE);
KeyValues usageRolesKV = new KeyValues();
usageRolesKV.add(entry(USAGE_AUTHOR, translate("admin.usage.roles.author")));
usageRolesKV.add(entry(USAGE_COACH, translate("admin.usage.roles.coach")));
usageRolesKV.add(entry(USAGE_MANAGERS, translate("admin.usage.roles.managers")));
usageRolesEl = uifactory.addCheckboxesVertical("admin.usage.roles", formLayout, usageRolesKV.keys(), usageRolesKV.values(), 1);
usageRolesEl.setHelpTextKey("admin.usage.roles.help", null);
usageRolesEl.select(USAGE_AUTHOR, onlyOfficeModule.isUsageRestrictedToAuthors());
usageRolesEl.select(USAGE_COACH, onlyOfficeModule.isUsageRestrictedToCoaches());
usageRolesEl.select(USAGE_MANAGERS, onlyOfficeModule.isUsageRestrictedToManagers());
updateUsageUI();
FormLayoutContainer buttonLayout = FormLayoutContainer.createButtonLayout("buttons", getTranslator());
formLayout.add("buttons", buttonLayout);
uifactory.addFormSubmitButton("save", buttonLayout);
}
@Override
protected void formInnerEvent(UserRequest ureq, FormItem source, FormEvent event) {
if (source == usageRestrictedEl) {
updateUsageUI();
}
super.formInnerEvent(ureq, source, event);
}
private void updateUsageUI() {
boolean usageRestricted = usageRestrictedEl.isAtLeastSelected(1);
usageRolesEl.setVisible(usageRestricted);
}
@Override
protected boolean validateFormLogic(UserRequest ureq) {
......@@ -160,9 +139,6 @@ public class OnlyOfficeAdminController extends FormBasicController {
boolean dataTransferConfirmationEnabled = dataTransferConfirmationEnabledEl.isAtLeastSelected(1);
onlyOfficeModule.setDataTransferConfirmationEnabled(dataTransferConfirmationEnabled);
boolean usageRestricted = usageRestrictedEl.isAtLeastSelected(1);
onlyOfficeModule.setUsageRestricted(usageRestricted);
Collection<String> restrictionKeys = usageRolesEl.getSelectedKeys();
onlyOfficeModule.setUsageRestrictedToAuthors(restrictionKeys.contains(USAGE_AUTHOR));
onlyOfficeModule.setUsageRestrictedToCoaches(restrictionKeys.contains(USAGE_COACH));
......
......@@ -4,12 +4,11 @@ admin.menu.title.alt=Dokumenteneditoren
admin.menu.title=Dokumenteneditoren
admin.office365=$org.olat.core.commons.services.doceditor.office365.ui\:editor.display.name
admin.onlyoffice=$org.olat.core.commons.services.doceditor.onlyoffice.ui\:editor.display.name
admin.usage.restricted.help=Wenn Sie diese Option einschalten, kann niemand ausser den explizit angegebenen Benutzerrollen den Editor verwenden. Nur Administratoren k\u00F6nnen den Editor immer verwenden.
admin.usage.restricted=Verwendung einschr\u00E4nken
admin.usage.roles.author=Autoren
admin.usage.roles.coach=Betreuer
admin.usage.roles.help=Wenn Sie diese Option einschalten, kann niemand ausser den explizit angegebenen Benutzerrollen den Editor verwenden. Nur Administratoren k\u00F6nnen den Editor immer verwenden.
admin.usage.roles.managers=Manager
admin.usage.roles=auf
admin.usage.roles=Verwendung einschr\u00E4nken auf
create.doc.already.exists=$org.olat.core.commons.modules.bc\:cfile.already.exists
create.doc.button=Dokument erstellen
create.doc.name.notvalid=$org.olat.core.commons.modules.bc\:cfile.name.notvalid
......
......@@ -2,11 +2,10 @@ admin.collabora=$org.olat.core.commons.services.doceditor.collabora.ui\:editor.d
admin.data.transfer.confirmation.enabled=Confirmation of data transfer
admin.menu.title.alt=Document editors
admin.menu.title=Document editors
admin.usage.restricted.help=If you enable this option, nobody but the explicitly specified user roles can use the editor. Only administrators can always use the editor.
admin.usage.restricted=Restrict usage
admin.usage.roles=to
admin.usage.roles=Restrict usage to
admin.usage.roles.author=Authors
admin.usage.roles.coach=Coaches
admin.usage.roles.help=If you enable this option, nobody but the explicitly specified user roles can use the editor. Only administrators can always use the editor.
admin.usage.roles.managers=Manager
admin.office365=$org.olat.core.commons.services.doceditor.office365.ui\:editor.display.name
admin.onlyoffice=$org.olat.core.commons.services.doceditor.onlyoffice.ui\:editor.display.name
......
......@@ -5,9 +5,8 @@ admin.menu.title=Editeurs de documents
admin.menu.title.alt=Editeurs de documents
admin.office365=$org.olat.core.commons.services.doceditor.office365.ui\:editor.display.name
admin.onlyoffice=$org.olat.core.commons.services.doceditor.onlyoffice.ui\:editor.display.name
admin.usage.restricted=Restrictions d'usage
admin.usage.restricted.help=Si vous activez cette option, personne en dehors des r\u00F4les explicitement choisis ne pourront utiliser cet \u00E9diteur. Seuls les administrateurs peuvent utiliser cet \u00E9diteur \u00E0 tout moment.
admin.usage.roles=\u00E0
admin.usage.roles.help=Si vous activez cette option, personne en dehors des r\u00F4les explicitement choisis ne pourront utiliser cet \u00E9diteur. Seuls les administrateurs peuvent utiliser cet \u00E9diteur \u00E0 tout moment.
admin.usage.roles=Restrictions d'usage \u00E0
admin.usage.roles.author=Auteurs
admin.usage.roles.coach=Coach
admin.usage.roles.managers=Manager
......
......@@ -1523,7 +1523,6 @@ edusharing.auth.affiliation.name=${instance.id}
collabora.enabled=false
collabora.baseUrl=https://collabora.example.org/
collabora.data.transfer.confirmation.enabled=false
collabora.usage.restricted=false
collabora.usage.restricted.authors=false
collabora.usage.restricted.coaches=false
collabora.usage.restricted.managers=false
......@@ -1536,7 +1535,6 @@ onlyoffice.enabled=false
onlyoffice.baseUrl=https://onlyoffice.example.org/
onlyoffice.api.path=web-apps/apps/api/documents/api.js
onlyoffice.data.transfer.confirmation.enabled=false
onlyoffice.usage.restricted=false
onlyoffice.usage.restricted.authors=false
onlyofficeusage.restricted.coaches=false
onlyoffice.usage.restricted.managers=false
......@@ -1548,7 +1546,6 @@ onlyoffice.usage.restricted.managers=false
office365.enabled=false
office365.baseUrl=https://office365.example.org/
office365.data.transfer.confirmation.enabled=false
office365.usage.restricted=false
office365.usage.restricted.authors=false
office365.usage.restricted.coaches=false
office365.usage.restricted.managers=false
......
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