lock = null;
}
}
private TreeModel buildTreeModel(boolean isOlatAdmin) {
GenericTreeNode gtnChild, admin;
Map configuration = BaseSecurityModule.getConfiguration();
Translator translator = getTranslator();
GenericTreeModel gtm = new GenericTreeModel();
admin = new GenericTreeNode();
admin.setTitle(translator.translate("menu.useradmin"));
admin.setUserObject("useradmin");
admin.setAltText(translator.translate("menu.useradmin.alt"));
gtm.setRootNode(admin);
gtnChild = new GenericTreeNode();
gtnChild.setTitle(translator.translate("menu.usearch"));
gtnChild.setUserObject("usearch");
gtnChild.setAltText(translator.translate("menu.usearch.alt"));
admin.setDelegate(gtnChild);
admin.addChild(gtnChild);
Boolean canCreate = (Boolean) configuration.get(BaseSecurityModule.CONFIG_USERMANAGER_CAN_CREATE_USER);
if (canCreate.booleanValue() || isOlatAdmin) {
gtnChild = new GenericTreeNode();
gtnChild.setTitle(translator.translate("menu.ucreate"));
gtnChild.setUserObject("ucreate");
gtnChild.setAltText(translator.translate("menu.ucreate.alt"));
admin.addChild(gtnChild);
gtnChild = new GenericTreeNode();
gtnChild.setTitle(translator.translate("menu.usersimport"));
gtnChild.setUserObject("usersimport");
gtnChild.setAltText(translator.translate("menu.usersimport.alt"));
admin.addChild(gtnChild);
}
Boolean canDelete = (Boolean) configuration.get(BaseSecurityModule.CONFIG_USERMANAGER_CAN_DELETE_USER);
if (canDelete.booleanValue() || isOlatAdmin) {
gtnChild = new GenericTreeNode();
gtnChild.setTitle(translator.translate("menu.userdelete"));
gtnChild.setUserObject("userdelete");
gtnChild.setAltText(translator.translate("menu.userdelete.alt"));
admin.addChild(gtnChild);
gtnChild = new GenericTreeNode();
gtnChild.setTitle(translator.translate("menu.userdelete.direct"));
gtnChild.setUserObject("userdelete_direct");
gtnChild.setAltText(translator.translate("menu.userdelete.direct.alt"));
admin.addChild(gtnChild);
}
//if admin, then allow the form to submit a list
//of usernames which can be set/unset to replay url mode
if(isOlatAdmin){
gtnChild = new GenericTreeNode();
gtnChild.setTitle(translator.translate("menu.userbulkreplayurl"));
gtnChild.setUserObject("userbulkreplayurl");
gtnChild.setAltText(translator.translate("menu.userbulkreplayurl.alt"));
admin.addChild(gtnChild);
}
// START submenu access and rights
GenericTreeNode gtn3 = new GenericTreeNode();
gtn3.setTitle(translator.translate("menu.menuaccess"));
gtn3.setUserObject("menuaccess");
gtn3.setAltText(translator.translate("menu.menuaccess.alt"));
admin.addChild(gtn3);
gtnChild = new GenericTreeNode();
gtnChild.setTitle(translator.translate("menu.usergroup"));
gtnChild.setUserObject("usergroup");
gtnChild.setAltText(translator.translate("menu.usergroup.alt"));
gtn3.addChild(gtnChild);
Boolean canAuthors = (Boolean) configuration.get(BaseSecurityModule.CONFIG_USERMANAGER_CAN_MANAGE_AUTHORS);
if (canAuthors.booleanValue() || isOlatAdmin) {
gtnChild = new GenericTreeNode();
gtnChild.setTitle(translator.translate("menu.authorgroup"));
gtnChild.setUserObject("authorgroup");
gtnChild.setAltText(translator.translate("menu.authorgroup.alt"));
gtn3.addChild(gtnChild);
gtnChild = new GenericTreeNode();
gtnChild.setTitle(translator.translate("menu.coauthors"));
gtnChild.setUserObject("coauthors");
gtnChild.setAltText(translator.translate("menu.coauthors.alt"));
gtn3.addChild(gtnChild);
gtnChild = new GenericTreeNode();
gtnChild.setTitle(translator.translate("menu.resourceowners"));
gtnChild.setUserObject("resourceowners");
gtnChild.setAltText(translator.translate("menu.resourceowners.alt"));
gtn3.addChild(gtnChild);
}
Boolean canGroupmanagers = (Boolean) configuration.get(BaseSecurityModule.CONFIG_USERMANAGER_CAN_MANAGE_GROUPMANAGERS);
if (canGroupmanagers.booleanValue() || isOlatAdmin) {
gtnChild = new GenericTreeNode();
gtnChild.setTitle(translator.translate("menu.groupmanagergroup"));
gtnChild.setUserObject("groupmanagergroup");
gtnChild.setAltText(translator.translate("menu.groupmanagergroup.alt"));
gtn3.addChild(gtnChild);
}
// admin group and user manager group always restricted to admins
if (isOlatAdmin) {
gtnChild = new GenericTreeNode();
gtnChild.setTitle(translator.translate("menu.usermanagergroup"));
gtnChild.setUserObject("usermanagergroup");
gtnChild.setAltText(translator.translate("menu.usermanagergroup.alt"));
gtn3.addChild(gtnChild);
gtnChild = new GenericTreeNode();
gtnChild.setTitle(translator.translate("menu.admingroup"));
gtnChild.setUserObject("admingroup");
gtnChild.setAltText(translator.translate("menu.admingroup.alt"));
gtn3.addChild(gtnChild);
}
Boolean canGuests = (Boolean) configuration.get(BaseSecurityModule.CONFIG_USERMANAGER_CAN_MANAGE_GUESTS);
if (canGuests.booleanValue() || isOlatAdmin) {
gtnChild = new GenericTreeNode();
gtnChild.setTitle(translator.translate("menu.anonymousgroup"));
gtnChild.setUserObject("anonymousgroup");
gtnChild.setAltText(translator.translate("menu.anonymousgroup.alt"));
gtn3.addChild(gtnChild);
}
gtnChild = new GenericTreeNode();
gtnChild.setTitle(translator.translate("menu.noauthentication"));
gtnChild.setUserObject("noauthentication");
gtnChild.setAltText(translator.translate("menu.noauthentication.alt"));
gtn3.addChild(gtnChild);
gtnChild = new GenericTreeNode();
gtnChild.setTitle(translator.translate("menu.logondeniedgroup"));
gtnChild.setUserObject("logondeniedgroup");
gtnChild.setAltText(translator.translate("menu.logondeniedgroup.alt"));
gtn3.addChild(gtnChild);
gtnChild = new GenericTreeNode();
gtnChild.setTitle(translator.translate("menu.deletedusers"));
gtnChild.setUserObject("deletedusers");
gtnChild.setAltText(translator.translate("menu.deletedusers.alt"));
gtn3.addChild(gtnChild);
// END submenu access and rights
// START other queries
gtn3 = new GenericTreeNode();
gtn3.setTitle(translator.translate("menu.menuqueries"));
gtn3.setUserObject("menuqueries");
gtn3.setAltText(translator.translate("menu.menuqueries.alt"));
admin.addChild(gtn3);
gtnChild = new GenericTreeNode();
gtnChild.setTitle(translator.translate("menu.created.lastweek"));
gtnChild.setUserObject("created.lastweek");
gtnChild.setAltText(translator.translate("menu.created.lastweek.alt"));
gtn3.addChild(gtnChild);
gtnChild = new GenericTreeNode();
gtnChild.setTitle(translator.translate("menu.created.lastmonth"));
gtnChild.setUserObject("created.lastmonth");
gtnChild.setAltText(translator.translate("menu.created.lastmonth.alt"));
gtn3.addChild(gtnChild);
gtnChild = new GenericTreeNode();
gtnChild.setTitle(translator.translate("menu.created.sixmonth"));
gtnChild.setUserObject("created.sixmonth");
gtnChild.setAltText(translator.translate("menu.created.sixmonth.alt"));
gtn3.addChild(gtnChild);
gtnChild = new GenericTreeNode();
gtnChild.setTitle(translator.translate("menu.created.newUsersNotification"));
gtnChild.setUserObject("created.newUsersNotification");
gtnChild.setAltText(translator.translate("menu.created.newUsersNotification.alt"));
gtn3.addChild(gtnChild);
//add extension menues as child items
ExtManager extm = ExtManager.getInstance();
int cnt = extm.getExtensionCnt();
for (int i = 0; i < cnt; i++) {
Extension anExt = extm.getExtension(i);
// 1) general menu extensions
ActionExtension ae = (ActionExtension) anExt.getExtensionFor(UserAdminMainController.class.getName() + EXTENSIONPOINT_MENU_MENUQUERIES);
if (ae != null) {
gtnChild = new GenericTreeNode();
String menuText = ae.getActionText(getLocale());
gtnChild.setTitle(menuText);
gtnChild.setUserObject(ae);
gtnChild.setAltText(ae.getDescription(getLocale()));
gtn3.addChild(gtnChild);
// inform only once
if (!extensionLogged) {
logInfo("added menu entry for locale " + getLocale().toString() + " '" + menuText + "'", null);
}
}