From 9ea3ba5b865cddef4a31a6d3caf395ecc532ace3 Mon Sep 17 00:00:00 2001 From: srosse <none@none> Date: Wed, 4 Dec 2013 14:47:20 +0100 Subject: [PATCH] OO-895: remove the tab and show the roles in the system tab of the personal settings --- .../tabbedpane/TabbedPaneRenderer.java | 2 +- .../olat/user/PersonalSettingsController.java | 4 - .../olat/user/PreferencesFormController.java | 38 +++++++- .../org/olat/user/UserRolesController.java | 96 ------------------- 4 files changed, 38 insertions(+), 102 deletions(-) delete mode 100644 src/main/java/org/olat/user/UserRolesController.java diff --git a/src/main/java/org/olat/core/gui/components/tabbedpane/TabbedPaneRenderer.java b/src/main/java/org/olat/core/gui/components/tabbedpane/TabbedPaneRenderer.java index 58aa9e715c0..ca639194f6d 100644 --- a/src/main/java/org/olat/core/gui/components/tabbedpane/TabbedPaneRenderer.java +++ b/src/main/java/org/olat/core/gui/components/tabbedpane/TabbedPaneRenderer.java @@ -122,7 +122,7 @@ public class TabbedPaneRenderer implements ComponentRenderer { public void renderHeaderIncludes(Renderer renderer, StringOutput sb, Component source, URLBuilder ubu, Translator translator, RenderingState rstate) { TabbedPane tp = (TabbedPane)source; int cnt = tp.getTabCount(); - if (cnt > 0) { + if (cnt > 0 && tp.getSelectedPane() < cnt) { Component toRender = tp.getTabAt(tp.getSelectedPane()); // delegate header rendering to the selected pane renderer.renderHeaderIncludes(sb, toRender, rstate); diff --git a/src/main/java/org/olat/user/PersonalSettingsController.java b/src/main/java/org/olat/user/PersonalSettingsController.java index a11e0829e21..9d518966cbf 100644 --- a/src/main/java/org/olat/user/PersonalSettingsController.java +++ b/src/main/java/org/olat/user/PersonalSettingsController.java @@ -123,10 +123,6 @@ public class PersonalSettingsController extends BasicController implements Activ userConfig.addTab(translate("tab.disclaimer"), disclaimerCtr.getInitialComponent()); } - Controller rolesCtrl = new UserRolesController(ureq, getWindowControl()); - userConfig.addTab(translate("tab.roles"), rolesCtrl.getInitialComponent()); - listenTo(rolesCtrl); - putInitialPanel(userConfig); logDebug("PersonalSettingsController constructed, set velocity page to index.html", PersonalSettingsController.class.getSimpleName()); diff --git a/src/main/java/org/olat/user/PreferencesFormController.java b/src/main/java/org/olat/user/PreferencesFormController.java index 5be5c99e37a..37961d4e285 100644 --- a/src/main/java/org/olat/user/PreferencesFormController.java +++ b/src/main/java/org/olat/user/PreferencesFormController.java @@ -23,8 +23,10 @@ import java.nio.charset.Charset; import java.util.List; import java.util.Map; +import org.olat.admin.user.SystemRolesAndRightsController; import org.olat.basesecurity.BaseSecurity; import org.olat.basesecurity.BaseSecurityManager; +import org.olat.basesecurity.Constants; import org.olat.core.CoreSpringFactory; import org.olat.core.gui.UserRequest; import org.olat.core.gui.components.form.flexible.FormItem; @@ -43,6 +45,7 @@ import org.olat.core.id.Preferences; import org.olat.core.id.UserConstants; import org.olat.core.util.ArrayHelper; import org.olat.core.util.StringHelper; +import org.olat.core.util.Util; import org.olat.core.util.i18n.I18nManager; import org.olat.core.util.i18n.I18nModule; import org.olat.core.util.mail.MailModule; @@ -77,7 +80,7 @@ public class PreferencesFormController extends FormBasicController { * edited. Not necessarily the same as ureq.getIdentity() */ public PreferencesFormController(UserRequest ureq, WindowControl wControl, Identity tobeChangedIdentity) { - super(ureq, wControl); + super(ureq, wControl, Util.createPackageTranslator(SystemRolesAndRightsController.class, ureq.getLocale())); this.tobeChangedIdentity = tobeChangedIdentity; initForm(ureq); } @@ -147,6 +150,39 @@ public class PreferencesFormController extends FormBasicController { username.setElementCssClass("o_sel_home_settings_username"); username.setEnabled(false); + // Roles + final String[] roleKeys = new String[] { + Constants.GROUP_USERMANAGERS, Constants.GROUP_GROUPMANAGERS, Constants.GROUP_POOL_MANAGER, + Constants.GROUP_AUTHORS, Constants.GROUP_INST_ORES_MANAGER, Constants.GROUP_ADMIN + }; + String iname = getIdentity().getUser().getProperty("institutionalName", null); + String ilabel = iname != null + ? translate("rightsForm.isInstitutionalResourceManager.institution",iname) + : translate("rightsForm.isInstitutionalResourceManager"); + + final String[] roleValues = new String[]{ + translate("rightsForm.isUsermanager"), translate("rightsForm.isGroupmanager"), translate("rightsForm.isPoolmanager"), + translate("rightsForm.isAuthor"), ilabel, translate("rightsForm.isAdmin") + }; + final BaseSecurity securityManager = CoreSpringFactory.getImpl(BaseSecurity.class); + String userRoles = ""; + List<String> roles = securityManager.getRolesAsString(tobeChangedIdentity); + for(String role:roles) { + for(int i=0; i<roleKeys.length; i++) { + if(roleKeys[i].equals(role)) { + userRoles = userRoles + roleValues[i] + ", "; + } + } + } + if (userRoles.equals("")) { + userRoles = translate("rightsForm.isAnonymous.false"); + } else { + userRoles = userRoles.substring(0, userRoles.lastIndexOf(",")); + } + uifactory.addStaticTextElement("rightsForm.roles", userRoles, formLayout); + username.setElementCssClass("o_sel_home_settings_username"); + username.setEnabled(false); + // Language Map<String, String> languages = I18nManager.getInstance().getEnabledLanguagesTranslated(); String[] langKeys = StringHelper.getMapKeysAsStringArray(languages); diff --git a/src/main/java/org/olat/user/UserRolesController.java b/src/main/java/org/olat/user/UserRolesController.java deleted file mode 100644 index 97d4bd9d4f9..00000000000 --- a/src/main/java/org/olat/user/UserRolesController.java +++ /dev/null @@ -1,96 +0,0 @@ -/** - * <a href="http://www.openolat.org"> - * OpenOLAT - Online Learning and Training</a><br> - * <p> - * Licensed under the Apache License, Version 2.0 (the "License"); <br> - * you may not use this file except in compliance with the License.<br> - * You may obtain a copy of the License at the - * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a> - * <p> - * Unless required by applicable law or agreed to in writing,<br> - * software distributed under the License is distributed on an "AS IS" BASIS, <br> - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br> - * See the License for the specific language governing permissions and <br> - * limitations under the License. - * <p> - * Initial code contributed and copyrighted by<br> - * frentix GmbH, http://www.frentix.com - * <p> - */ -package org.olat.user; - -import java.util.List; - -import org.olat.admin.user.SystemRolesAndRightsController; -import org.olat.basesecurity.BaseSecurity; -import org.olat.basesecurity.Constants; -import org.olat.core.CoreSpringFactory; -import org.olat.core.gui.UserRequest; -import org.olat.core.gui.components.form.flexible.FormItemContainer; -import org.olat.core.gui.components.form.flexible.elements.SelectionElement; -import org.olat.core.gui.components.form.flexible.impl.FormBasicController; -import org.olat.core.gui.control.Controller; -import org.olat.core.gui.control.WindowControl; -import org.olat.core.util.Util; - - -/** - * Small controller which shows the roles of the current identity - * - * Initial date: 23.09.2013<br> - * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com - * - */ -public class UserRolesController extends FormBasicController { - - private static final String[] roleKeys = new String[] { - Constants.GROUP_USERMANAGERS, Constants.GROUP_GROUPMANAGERS, Constants.GROUP_POOL_MANAGER, - Constants.GROUP_AUTHORS, Constants.GROUP_INST_ORES_MANAGER, Constants.GROUP_ADMIN - }; - - private String[] roleValues; - - private final BaseSecurity securityManager; - - public UserRolesController(UserRequest ureq, WindowControl wControl) { - super(ureq, wControl, Util.createPackageTranslator(SystemRolesAndRightsController.class, ureq.getLocale())); - - securityManager = CoreSpringFactory.getImpl(BaseSecurity.class); - - String iname = getIdentity().getUser().getProperty("institutionalName", null); - String ilabel = iname != null - ? translate("rightsForm.isInstitutionalResourceManager.institution",iname) - : translate("rightsForm.isInstitutionalResourceManager"); - - roleValues = new String[]{ - translate("rightsForm.isUsermanager"), translate("rightsForm.isGroupmanager"), translate("rightsForm.isPoolmanager"), - translate("rightsForm.isAuthor"), ilabel, translate("rightsForm.isAdmin") - }; - - initForm(ureq); - } - - @Override - protected void formOK(UserRequest ureq) { - // - } - - @Override - protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) { - SelectionElement rolesEl = uifactory.addCheckboxesVertical("roles", "rightsForm.roles", formLayout, roleKeys, roleValues,null, 1); - rolesEl.setEnabled(false); - List<String> roles = securityManager.getRolesAsString(getIdentity()); - for(String role:roles) { - for(String roleKey:roleKeys) { - if(roleKey.equals(role)) { - rolesEl.select(roleKey, true); - } - } - } - } - - @Override - protected void doDispose() { - // - } -} \ No newline at end of file -- GitLab