diff --git a/src/main/java/de/bps/course/nodes/den/DENManageParticipantsController.java b/src/main/java/de/bps/course/nodes/den/DENManageParticipantsController.java index f8f4d9f39832b97d96cf185789acdaf7e3c649c9..de4caaa54e1df52f223089fb35c0d40bfeec6ff0 100644 --- a/src/main/java/de/bps/course/nodes/den/DENManageParticipantsController.java +++ b/src/main/java/de/bps/course/nodes/den/DENManageParticipantsController.java @@ -175,7 +175,7 @@ public class DENManageParticipantsController extends BasicController { } else if(source == formManageParticipants && event == DENManageParticipantsForm.ADD_PARTICIPANTS) { //open user search controller to manually add users in date removeAsListenerAndDispose(userSearchCntrl); - userSearchCntrl = new UserSearchController(ureq, getWindowControl(), true, true, true); + userSearchCntrl = new UserSearchController(ureq, getWindowControl(), true, true); listenTo(userSearchCntrl); removeAsListenerAndDispose(userSearchCMC); diff --git a/src/main/java/de/bps/olat/repository/controllers/WizardAddOwnersController.java b/src/main/java/de/bps/olat/repository/controllers/WizardAddOwnersController.java index 61cfb90bd83d3886b7e7d8a75e4a46d745cb7f70..4fe2eb85389c8235dbe0c78324f0f939875f3f26 100644 --- a/src/main/java/de/bps/olat/repository/controllers/WizardAddOwnersController.java +++ b/src/main/java/de/bps/olat/repository/controllers/WizardAddOwnersController.java @@ -129,7 +129,7 @@ public class WizardAddOwnersController extends WizardController { step2Vc.contextPut("subtitle", translate("wizard.step2." + CMD_SEARCH_OWNERS)); removeAsListenerAndDispose(userSearchCtr); - userSearchCtr = new UserSearchController(ureq, getWindowControl(), false, true, false, UserSearchController.ACTION_KEY_CHOOSE_FINISH); + userSearchCtr = new UserSearchController(ureq, getWindowControl(), false, true, UserSearchController.ACTION_KEY_CHOOSE_FINISH); listenTo(userSearchCtr); // back button diff --git a/src/main/java/org/olat/admin/securitygroup/gui/GroupController.java b/src/main/java/org/olat/admin/securitygroup/gui/GroupController.java index fdab811016a694a62b949919a654b6da73ddf1da..50b0dc8ca6ce372874ccf24b5a12f428da0ef081 100644 --- a/src/main/java/org/olat/admin/securitygroup/gui/GroupController.java +++ b/src/main/java/org/olat/admin/securitygroup/gui/GroupController.java @@ -198,7 +198,7 @@ public class GroupController extends BasicController { initGroupTable(tableCtr, ureq, enableTablePreferences, enableUserSelection); // set data model - List combo = securityManager.getIdentitiesAndDateOfSecurityGroup(this.securityGroup); + List<Object[]> combo = securityManager.getIdentitiesAndDateOfSecurityGroup(this.securityGroup); List<UserPropertyHandler> userPropertyHandlers = UserManager.getInstance().getUserPropertyHandlersFor(usageIdentifyer, isAdministrativeUser); identitiesTableModel = new IdentitiesOfGroupTableDataModel(combo, ureq.getLocale(), userPropertyHandlers); tableCtr.setTableDataModel(identitiesTableModel); @@ -235,7 +235,7 @@ public class GroupController extends BasicController { if (!mayModifyMembers) throw new AssertException("not allowed to add a member!"); removeAsListenerAndDispose(usc); - usc = new UserSearchController(ureq, getWindowControl(), true, true, false); + usc = new UserSearchController(ureq, getWindowControl(), true, true); listenTo(usc); Component usersearchview = usc.getInitialComponent(); @@ -602,7 +602,7 @@ public class GroupController extends BasicController { public void reloadData() { // refresh view - List combo = securityManager.getIdentitiesAndDateOfSecurityGroup(this.securityGroup); + List<Object[]> combo = securityManager.getIdentitiesAndDateOfSecurityGroup(this.securityGroup); List<UserPropertyHandler> userPropertyHandlers = UserManager.getInstance().getUserPropertyHandlersFor(usageIdentifyer, isAdministrativeUser); identitiesTableModel = new IdentitiesOfGroupTableDataModel(combo, myTrans.getLocale(), userPropertyHandlers); tableCtr.setTableDataModel(identitiesTableModel); diff --git a/src/main/java/org/olat/admin/user/UserSearchController.java b/src/main/java/org/olat/admin/user/UserSearchController.java index 903cb9dacf1a29a2404c7dc3b1ca4b30994c9238..7be8d957d74db1080fafff25780c961e7c38fd64 100644 --- a/src/main/java/org/olat/admin/user/UserSearchController.java +++ b/src/main/java/org/olat/admin/user/UserSearchController.java @@ -127,7 +127,7 @@ public class UserSearchController extends BasicController { * @param wControl */ public UserSearchController(UserRequest ureq, WindowControl wControl) { - this(ureq, wControl, false, false, false); + this(ureq, wControl, false, false); } @@ -137,7 +137,7 @@ public class UserSearchController extends BasicController { * @param cancelbutton */ public UserSearchController(UserRequest ureq, WindowControl wControl, boolean cancelbutton) { - this(ureq, wControl, cancelbutton, false, false); + this(ureq, wControl, cancelbutton, false); } /** @@ -148,8 +148,8 @@ public class UserSearchController extends BasicController { * @param statusEnabled * @param actionKeyChooseFinish */ - public UserSearchController(UserRequest ureq, WindowControl windowControl, boolean cancelbutton, boolean userMultiSelect, boolean statusEnabled, String actionKeyChooseFinish) { - this(ureq, windowControl, cancelbutton, userMultiSelect, statusEnabled); + public UserSearchController(UserRequest ureq, WindowControl windowControl, boolean cancelbutton, boolean userMultiSelect, String actionKeyChooseFinish) { + this(ureq, windowControl, cancelbutton, userMultiSelect); this.actionKeyChoose = actionKeyChooseFinish; } @@ -160,7 +160,7 @@ public class UserSearchController extends BasicController { * @param userMultiSelect * @param statusEnabled */ - public UserSearchController(UserRequest ureq, WindowControl wControl, boolean cancelbutton, boolean userMultiSelect, boolean statusEnabled) { + public UserSearchController(UserRequest ureq, WindowControl wControl, boolean cancelbutton, boolean userMultiSelect) { super(ureq, wControl); this.useMultiSelect = userMultiSelect; this.actionKeyChoose = ACTION_KEY_CHOOSE; @@ -179,17 +179,16 @@ public class UserSearchController extends BasicController { } else if (ureq.getUserSession().getRoles()==null) { logError("UserSearchController<init>: roles is null!", null); } - boolean isAdmin = ureq.getUserSession().getRoles().isOLATAdmin(); + Roles roles = ureq.getUserSession().getRoles(); + boolean isAdmin = securityModule.isUserAllowedAdminProps(roles); searchform = new UserSearchForm(ureq, wControl, isAdmin, cancelbutton); listenTo(searchform); - searchPanel.setContent(searchform.getInitialComponent()); myContent.contextPut("noList","false"); myContent.contextPut("showButton","false"); - Roles roles = ureq.getUserSession().getRoles(); boolean autoCompleteAllowed = securityModule.isUserAllowedAutoComplete(roles); boolean ajax = Windows.getWindows(ureq).getWindowManager().isAjaxEnabled(); if (ajax && autoCompleteAllowed) { diff --git a/src/main/java/org/olat/admin/user/UserSearchFlexiController.java b/src/main/java/org/olat/admin/user/UserSearchFlexiController.java index ecbdfc124ec89af04ee79b54e7f72ef47662adfa..5e4b31bc2271175473fbd259c4634a0b0ad4c1c3 100644 --- a/src/main/java/org/olat/admin/user/UserSearchFlexiController.java +++ b/src/main/java/org/olat/admin/user/UserSearchFlexiController.java @@ -25,9 +25,12 @@ import java.util.List; import java.util.Map; import org.olat.basesecurity.BaseSecurityManager; +import org.olat.basesecurity.BaseSecurityModule; import org.olat.basesecurity.events.MultiIdentityChosenEvent; import org.olat.basesecurity.events.SingleIdentityChosenEvent; +import org.olat.core.CoreSpringFactory; import org.olat.core.gui.UserRequest; +import org.olat.core.gui.Windows; import org.olat.core.gui.components.Component; import org.olat.core.gui.components.form.flexible.FormItem; import org.olat.core.gui.components.form.flexible.FormItemContainer; @@ -106,6 +109,8 @@ public class UserSearchFlexiController extends FormBasicController { public static final String ACTION_KEY_CHOOSE = "action.choose"; public static final String ACTION_KEY_CHOOSE_FINISH = "action.choose.finish"; + + private final BaseSecurityModule securityModule; /** * @param ureq @@ -114,11 +119,11 @@ public class UserSearchFlexiController extends FormBasicController { * @param userMultiSelect * @param statusEnabled */ - public UserSearchFlexiController(UserRequest ureq, WindowControl wControl, boolean userMultiSelect, - boolean statusEnabled, String actionKeyChooseFinish, Form rootForm) { + public UserSearchFlexiController(UserRequest ureq, WindowControl wControl, boolean userMultiSelect, Form rootForm) { super(ureq, wControl, LAYOUT_CUSTOM, "usersearch", rootForm); this.useMultiSelect = userMultiSelect; this.actionKeyChoose = ACTION_KEY_CHOOSE; + securityModule = CoreSpringFactory.getImpl(BaseSecurityModule.class); initForm(ureq); } @@ -131,9 +136,11 @@ public class UserSearchFlexiController extends FormBasicController { searchPanel = new Panel("usersearchPanel"); layoutCont.put("usersearchPanel", searchPanel); - - boolean isAdmin = ureq.getUserSession().getRoles().isOLATAdmin(); - searchform = new UserSearchForm(ureq, getWindowControl(), isAdmin, false, formLayout.getRootForm()); + + + Roles roles = ureq.getUserSession().getRoles(); + isAdministrativeUser = securityModule.isUserAllowedAdminProps(roles); + searchform = new UserSearchForm(ureq, getWindowControl(), isAdministrativeUser, false, formLayout.getRootForm()); listenTo(searchform); searchPanel.setContent(searchform.getInitialComponent()); @@ -142,10 +149,14 @@ public class UserSearchFlexiController extends FormBasicController { layoutCont.contextPut("showButton","false"); // insert a autocompleter search - ListProvider provider = new UserSearchListProvider(); - autocompleterC = new FlexiAutoCompleterController(ureq, getWindowControl(), provider, null, isAdmin, 60, 3, null); - listenTo(autocompleterC); - layoutCont.put("autocompletionsearch", autocompleterC.getInitialComponent()); + boolean autoCompleteAllowed = securityModule.isUserAllowedAutoComplete(roles); + boolean ajax = Windows.getWindows(ureq).getWindowManager().isAjaxEnabled(); + if (ajax && autoCompleteAllowed) { + ListProvider provider = new UserSearchListProvider(); + autocompleterC = new FlexiAutoCompleterController(ureq, getWindowControl(), provider, null, isAdministrativeUser, 60, 3, null); + listenTo(autocompleterC); + layoutCont.put("autocompletionsearch", autocompleterC.getInitialComponent()); + } //add the table tableConfig = new TableGuiConfiguration(); @@ -153,9 +164,6 @@ public class UserSearchFlexiController extends FormBasicController { tableConfig.setDownloadOffered(false);// no download because user should not download user-list tableCtr = new TableController(tableConfig, ureq, getWindowControl(), getTranslator()); listenTo(tableCtr); - - Roles roles = ureq.getUserSession().getRoles(); - isAdministrativeUser = (roles.isAuthor() || roles.isGroupManager() || roles.isUserManager() || roles.isOLATAdmin()); } } diff --git a/src/main/java/org/olat/admin/user/delete/DeletableUserSearchController.java b/src/main/java/org/olat/admin/user/delete/DeletableUserSearchController.java index 4ac6810c664d2bda57f2604d85d210e07ddae004..ff1a6dbc6a7329c51bac6f000f8b9e33931dcab3 100644 --- a/src/main/java/org/olat/admin/user/delete/DeletableUserSearchController.java +++ b/src/main/java/org/olat/admin/user/delete/DeletableUserSearchController.java @@ -63,7 +63,7 @@ import org.olat.core.id.Identity; public class DeletableUserSearchController extends UserSearchController { public DeletableUserSearchController(UserRequest ureq, WindowControl wControl) { - super(ureq, wControl, true, true, true); + super(ureq, wControl, true, true); } /** diff --git a/src/main/java/org/olat/basesecurity/BaseSecurityModule.java b/src/main/java/org/olat/basesecurity/BaseSecurityModule.java index 9032c9aacba79d3c8f802beb0c74dd56857d765b..b5b4469db0f5e3dafc3b7528e47d405bbc9671d1 100644 --- a/src/main/java/org/olat/basesecurity/BaseSecurityModule.java +++ b/src/main/java/org/olat/basesecurity/BaseSecurityModule.java @@ -57,7 +57,13 @@ public class BaseSecurityModule extends AbstractOLATModule { private static final String CONFIG_USERMANAGER_CAN_MANAGE_GUESTS = "sysGroupUsermanager.canManageGuests"; private static final String CONFIG_USERMANAGER_CAN_BYPASS_EMAILVERIFICATION = "sysGroupUsermanager.canBypassEmailverification"; private static final String CONFIG_USERMANAGER_CAN_EDIT_ALL_PROFILE_FIELDS = "sysGroupUsermanager.canEditAllProfileFields"; - + + private static final String USERSEARCH_ADMINPROPS_USERS = "userSearchAdminPropsForUsers"; + private static final String USERSEARCH_ADMINPROPS_AUTHORS = "userSearchAdminPropsForAuthors"; + private static final String USERSEARCH_ADMINPROPS_USERMANAGERS = "userSearchAdminPropsForUsermanagers"; + private static final String USERSEARCH_ADMINPROPS_GROUPMANAGERS = "userSearchAdminPropsForUsermanagers"; + private static final String USERSEARCH_ADMINPROPS_ADMINISTRATORS = "userSearchAdminPropsForAdministrators"; + private static final String USERSEARCHAUTOCOMPLETE_USERS = "userSearchAutocompleteForUsers"; private static final String USERSEARCHAUTOCOMPLETE_AUTHORS = "userSearchAutocompleteForAuthors"; private static final String USERSEARCHAUTOCOMPLETE_USERMANAGERS = "userSearchAutocompleteForUsermanagers"; @@ -87,6 +93,13 @@ public class BaseSecurityModule extends AbstractOLATModule { public static Boolean USERMANAGER_CAN_EDIT_ALL_PROFILE_FIELDS = true; private static String defaultAuthProviderIdentifier; + + private String userSearchAdminPropsForUsers; + private String userSearchAdminPropsForAuthors; + private String userSearchAdminPropsForUsermanagers; + private String userSearchAdminPropsForGroupmanagers; + private String userSearchAdminPropsForAdministrators; + private String userSearchMaxResults; private String userSearchAutocompleteForUsers; private String userSearchAutocompleteForAuthors; @@ -136,12 +149,18 @@ public class BaseSecurityModule extends AbstractOLATModule { USERMANAGER_CAN_BYPASS_EMAILVERIFICATION = getBooleanConfigParameter(CONFIG_USERMANAGER_CAN_BYPASS_EMAILVERIFICATION, USERMANAGER_CAN_BYPASS_EMAILVERIFICATION); USERMANAGER_CAN_EDIT_ALL_PROFILE_FIELDS = getBooleanConfigParameter(CONFIG_USERMANAGER_CAN_EDIT_ALL_PROFILE_FIELDS, USERMANAGER_CAN_EDIT_ALL_PROFILE_FIELDS); - - userSearchAutocompleteForUsers = getStringConfigParameter(USERSEARCHAUTOCOMPLETE_USERS, "enable", true); - userSearchAutocompleteForAuthors = getStringConfigParameter(USERSEARCHAUTOCOMPLETE_AUTHORS, "enable", true); - userSearchAutocompleteForUsermanagers = getStringConfigParameter(USERSEARCHAUTOCOMPLETE_USERMANAGERS, "enable", true); - userSearchAutocompleteForGroupmanagers = getStringConfigParameter(USERSEARCHAUTOCOMPLETE_GROUPMANAGERS, "enable", true); - userSearchAutocompleteForAdministrators = getStringConfigParameter(USERSEARCHAUTOCOMPLETE_ADMINISTRATORS, "enable", true); + + userSearchAdminPropsForUsers = getStringConfigParameter(USERSEARCH_ADMINPROPS_USERS, "disabled", true); + userSearchAdminPropsForAuthors = getStringConfigParameter(USERSEARCH_ADMINPROPS_AUTHORS, "enabled", true); + userSearchAdminPropsForUsermanagers = getStringConfigParameter(USERSEARCH_ADMINPROPS_USERMANAGERS, "enabled", true); + userSearchAdminPropsForGroupmanagers = getStringConfigParameter(USERSEARCH_ADMINPROPS_GROUPMANAGERS, "enabled", true); + userSearchAdminPropsForAdministrators = getStringConfigParameter(USERSEARCH_ADMINPROPS_ADMINISTRATORS, "enabled", true); + + userSearchAutocompleteForUsers = getStringConfigParameter(USERSEARCHAUTOCOMPLETE_USERS, "enabled", true); + userSearchAutocompleteForAuthors = getStringConfigParameter(USERSEARCHAUTOCOMPLETE_AUTHORS, "enabled", true); + userSearchAutocompleteForUsermanagers = getStringConfigParameter(USERSEARCHAUTOCOMPLETE_USERMANAGERS, "enabled", true); + userSearchAutocompleteForGroupmanagers = getStringConfigParameter(USERSEARCHAUTOCOMPLETE_GROUPMANAGERS, "enabled", true); + userSearchAutocompleteForAdministrators = getStringConfigParameter(USERSEARCHAUTOCOMPLETE_ADMINISTRATORS, "enabled", true); userSearchMaxResults = getStringConfigParameter(USERSEARCH_MAXRESULTS, "-1", true); } @@ -151,7 +170,28 @@ public class BaseSecurityModule extends AbstractOLATModule { } private void updateProperties() { - String enabled = getStringPropertyValue(USERSEARCHAUTOCOMPLETE_USERS, true); + String enabled = getStringPropertyValue(USERSEARCH_ADMINPROPS_USERS, true); + if(StringHelper.containsNonWhitespace(enabled)) { + userSearchAdminPropsForUsers = enabled; + } + enabled = getStringPropertyValue(USERSEARCH_ADMINPROPS_AUTHORS, true); + if(StringHelper.containsNonWhitespace(enabled)) { + userSearchAdminPropsForAuthors = enabled; + } + enabled = getStringPropertyValue(USERSEARCH_ADMINPROPS_USERMANAGERS, true); + if(StringHelper.containsNonWhitespace(enabled)) { + userSearchAdminPropsForUsermanagers = enabled; + } + enabled = getStringPropertyValue(USERSEARCH_ADMINPROPS_GROUPMANAGERS, true); + if(StringHelper.containsNonWhitespace(enabled)) { + userSearchAdminPropsForGroupmanagers = enabled; + } + enabled = getStringPropertyValue(USERSEARCH_ADMINPROPS_ADMINISTRATORS, true); + if(StringHelper.containsNonWhitespace(enabled)) { + userSearchAdminPropsForAdministrators = enabled; + } + + enabled = getStringPropertyValue(USERSEARCHAUTOCOMPLETE_USERS, true); if(StringHelper.containsNonWhitespace(enabled)) { userSearchAutocompleteForUsers = enabled; } @@ -183,6 +223,66 @@ public class BaseSecurityModule extends AbstractOLATModule { this.moduleConfigProperties = persistedProperties; } + public boolean isUserAllowedAdminProps(Roles roles) { + if(roles == null) return false; + if(roles.isOLATAdmin()) { + return "enabled".equals(userSearchAdminPropsForAdministrators); + } + if(roles.isGroupManager()) { + return "enabled".equals(userSearchAdminPropsForGroupmanagers); + } + if(roles.isUserManager()) { + return "enabled".equals(userSearchAdminPropsForUsermanagers); + } + if(roles.isAuthor()) { + return "enabled".equals(userSearchAdminPropsForAuthors); + } + if(roles.isInvitee()) { + return false; + } + return "enabled".equals(userSearchAdminPropsForUsers); + } + + public String getUserSearchAdminPropsForUsers() { + return userSearchAdminPropsForUsers; + } + + public void setUserSearchAdminPropsForUsers(String enable) { + setStringProperty(USERSEARCH_ADMINPROPS_USERS, enable, true); + } + + public String getUserSearchAdminPropsForAuthors() { + return userSearchAdminPropsForAuthors; + } + + public void setUserSearchAdminPropsForAuthors(String enable) { + setStringProperty(USERSEARCH_ADMINPROPS_AUTHORS, enable, true); + } + + public String getUserSearchAdminPropsForUsermanagers() { + return userSearchAdminPropsForUsermanagers; + } + + public void setUserSearchAdminPropsForUsermanagers(String enable) { + setStringProperty(USERSEARCH_ADMINPROPS_USERMANAGERS, enable, true); + } + + public String getUserSearchAdminPropsForGroupmanagers() { + return userSearchAdminPropsForGroupmanagers; + } + + public void setUserSearchAdminPropsForGroupmanagers(String enable) { + setStringProperty(USERSEARCH_ADMINPROPS_GROUPMANAGERS, enable, true); + } + + public String getUserSearchAdminPropsForAdministrators() { + return userSearchAdminPropsForAdministrators; + } + + public void setUserSearchAdminPropsForAdministrators(String enable) { + setStringProperty(USERSEARCH_ADMINPROPS_ADMINISTRATORS, enable, true); + } + public boolean isUserAllowedAutoComplete(Roles roles) { if(roles == null) return false; if(roles.isOLATAdmin()) { diff --git a/src/main/java/org/olat/basesecurity/_spring/baseSecurityContext.xml b/src/main/java/org/olat/basesecurity/_spring/baseSecurityContext.xml index 9874bb29dcbf8d2b17fdc47b6db286093ca83ac4..2f4a9dd6cd1886eb5a81b5e47d1a74cec40a67b6 100644 --- a/src/main/java/org/olat/basesecurity/_spring/baseSecurityContext.xml +++ b/src/main/java/org/olat/basesecurity/_spring/baseSecurityContext.xml @@ -35,6 +35,12 @@ depends-on="database, i18nModule, triggerI18nModuleInit"> <property name="arguments"> <!-- Important: Set tomcats policy to allow read/write access to Root and TmpDir --> <value> + userSearchAdminPropsForUsers=${usersearch.adminProps.users} + userSearchAdminPropsForAuthors=${usersearch.adminProps.authors} + userSearchAdminPropsForUsermanagers=${usersearch.adminProps.usermanagers} + userSearchAdminPropsForGroupmanagers=${usersearch.adminProps.groupmanagers} + userSearchAdminPropsForAdministrators=${usersearch.adminProps.administrators} + userSearchAutocompleteForUsers=${usersearch.autocomplete.users} userSearchAutocompleteForAuthors=${usersearch.autocomplete.authors} userSearchAutocompleteForUsermanagers=${usersearch.autocomplete.usermanagers} diff --git a/src/main/java/org/olat/course/member/wizard/ImportMemberBySearchController.java b/src/main/java/org/olat/course/member/wizard/ImportMemberBySearchController.java index 629c26482d1efb0b071f9de0da1320a088b01d68..4a2fe4d815fac9b483b2fb35ce4d70cfeb152424 100644 --- a/src/main/java/org/olat/course/member/wizard/ImportMemberBySearchController.java +++ b/src/main/java/org/olat/course/member/wizard/ImportMemberBySearchController.java @@ -44,7 +44,7 @@ public class ImportMemberBySearchController extends StepFormBasicController { public ImportMemberBySearchController(UserRequest ureq, WindowControl wControl, Form rootForm, StepsRunContext runContext) { super(ureq, wControl, rootForm, runContext, LAYOUT_CUSTOM, "import_search"); - searchController = new UserSearchFlexiController(ureq, wControl, false, false, null, rootForm); + searchController = new UserSearchFlexiController(ureq, wControl, false, rootForm); listenTo(searchController); initForm (ureq); diff --git a/src/main/java/org/olat/group/ui/wizard/BGUserManagementController.java b/src/main/java/org/olat/group/ui/wizard/BGUserManagementController.java index a3e52ad413f67b60c12459d6a0cb9d1c5b3920b0..d1279c91a9325902785c903b0c72638bf1177bf0 100644 --- a/src/main/java/org/olat/group/ui/wizard/BGUserManagementController.java +++ b/src/main/java/org/olat/group/ui/wizard/BGUserManagementController.java @@ -194,7 +194,7 @@ public class BGUserManagementController extends BasicController { removeAsListenerAndDispose(cmc); removeAsListenerAndDispose(addCtrl); - addCtrl = new UserSearchController(ureq, getWindowControl(), true, true, false); + addCtrl = new UserSearchController(ureq, getWindowControl(), true, true); addCtrl.setUserObject(type); listenTo(addCtrl); cmc = new CloseableModalController(getWindowControl(), translate("close"), addCtrl.getInitialComponent(), true, translate("users.addowner")); diff --git a/src/main/resources/serviceconfig/olat.properties b/src/main/resources/serviceconfig/olat.properties index c2fb6a68010fd2a6109c11a08a50dd3105e31321..e990ee0a80e9d064f627f325f5af782c3a1e061d 100644 --- a/src/main/resources/serviceconfig/olat.properties +++ b/src/main/resources/serviceconfig/olat.properties @@ -487,6 +487,14 @@ i18n.application.opt.src.dir = ${i18n.application.src.dir} ######################################################################## # User search ######################################################################## +#whic roles see the administrative user properties +usersearch.adminProps.users=disabled +usersearch.adminProps.authors=enabled +usersearch.adminProps.usermanagers=enabled +usersearch.adminProps.groupmanagers=enabled +usersearch.adminProps.administrators=enabled + +#which roles see the autocompletion usersearch.autocomplete.users=enabled usersearch.autocomplete.authors=enabled usersearch.autocomplete.usermanagers=enabled