modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RoleEditView.java | 3 modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RoleLdapGroupSelector.java | 57 +++++++--- modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/LdapGWTService.java | 6 + modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/LdapGWTServiceImpl.java | 17 ++ 4 files changed, 66 insertions(+), 17 deletions(-)
New commits: commit ffef8a5480c7e37f1a6d2c0b9080ae9871c4e650 Author: Simeon Pinder spinder@redhat.com Date: Tue Oct 12 17:42:58 2010 -0400
more merge cleanup. Fix no ldap configured display. Lightweight ldap check.
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RoleEditView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RoleEditView.java index 4738e30..836a355 100644 --- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RoleEditView.java +++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RoleEditView.java @@ -115,15 +115,18 @@ public class RoleEditView extends LocatableVLayout implements BookmarkableView { groupSelectorItem = new CanvasItem("groupSelectionCanvas", "Assigned Resource Groups"); groupSelectorItem.setTitleOrientation(TitleOrientation.TOP); groupSelectorItem.setColSpan(2); + groupSelectorItem.setCanvas(new Canvas());
subjectSelectorItem = new CanvasItem("subjectSelectionCanvas", "Assigned Subjects"); subjectSelectorItem.setTitleOrientation(TitleOrientation.TOP); subjectSelectorItem.setColSpan(2); + subjectSelectorItem.setCanvas(new Canvas());
//instantiate ldap group selector ldapGroupSelectorItem = new CanvasItem("ldapGroupSelectionCanvas", "LDAP Groups"); ldapGroupSelectorItem.setTitleOrientation(TitleOrientation.TOP); ldapGroupSelectorItem.setColSpan(2); + ldapGroupSelectorItem.setCanvas(new Canvas());
IButton saveButton = new LocatableIButton(this.extendLocatorId("Save"), "Save"); saveButton.addClickHandler(new com.smartgwt.client.widgets.events.ClickHandler() { diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RoleLdapGroupSelector.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RoleLdapGroupSelector.java index 9cd749c..82305b3 100644 --- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RoleLdapGroupSelector.java +++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/roles/RoleLdapGroupSelector.java @@ -28,6 +28,7 @@ import java.util.Iterator; import java.util.Map; import java.util.Set;
+import com.allen_sauer.gwt.log.client.Log; import com.google.gwt.user.client.rpc.AsyncCallback; import com.smartgwt.client.data.Criteria; import com.smartgwt.client.data.DSRequest; @@ -56,7 +57,6 @@ public class RoleLdapGroupSelector extends AbstractSelector<HashSet<Map<String, public static final String AVAILABLE_GROUPS = "Available Groups"; public static final String SELECTED_GROUPS = "Selected Groups"; private LdapGroupsDataSource availableDatasource; - // private LdapAssignedGroupsDatasource assignedDataSource; protected HashSet<String> selection = new HashSet<String>(); private int currentRole = -1; private boolean initialLdapSelectionsLoad = true; @@ -174,6 +174,9 @@ public class RoleLdapGroupSelector extends AbstractSelector<HashSet<Map<String,
public class LdapGroupsDataSource extends RPCDataSource<HashSet<Map<String, String>>> {
+ public static final String LDAP_NOT_CONFIGURED_EMPTY_MESSAGE = "(LDAP not configured. 'Administrator'->System Settings to change)"; + public static final String EMPTY_MESSAGE = "No items to show"; + public LdapGroupsDataSource() { DataSourceTextField nameField = new DataSourceTextField(name, name); nameField.setPrimaryKey(true); @@ -227,27 +230,47 @@ public class RoleLdapGroupSelector extends AbstractSelector<HashSet<Map<String,
@Override protected void executeFetch(final DSRequest request, final DSResponse response) { - GWTServiceLookup.getLdapService().findAvailableGroups(new AsyncCallback<Set<Map<String, String>>>() { - - public void onFailure(Throwable throwable) { - CoreGUI.getErrorHandler().handleError("Failed to load LdapGroups available for role.", throwable); - } - - public void onSuccess(Set<Map<String, String>> locatedGroups) { - - //translate groups into records for grid - response.setData(buildRecords(locatedGroups)); - //entry count - if (null != locatedGroups) { - response.setTotalRows(locatedGroups.size()); + //determine if ldap enabled, if so then chain and proceed with finding groups + GWTServiceLookup.getLdapService().checkLdapConfiguredStatus(new AsyncCallback<Boolean>() { + @Override + public void onSuccess(Boolean ldapConfigured) { + if (ldapConfigured) { + availableGrid.setEmptyMessage(EMPTY_MESSAGE); + GWTServiceLookup.getLdapService().findAvailableGroups( + new AsyncCallback<Set<Map<String, String>>>() { + + public void onFailure(Throwable throwable) { + CoreGUI.getErrorHandler().handleError( + "Failed to load LdapGroups available for role.", throwable); + } + + public void onSuccess(Set<Map<String, String>> locatedGroups) { + Log.debug("Successfully located groups."); + //translate groups into records for grid + response.setData(buildRecords(locatedGroups)); + //entry count + if (null != locatedGroups) { + response.setTotalRows(locatedGroups.size()); + } else { + response.setTotalRows(0); + } + //pass off for processing + processResponse(request.getRequestId(), response); + } + }); } else { + Log.debug("(LDAP not currently enabled. " + EMPTY_MESSAGE); response.setTotalRows(0); + availableGrid.setEmptyMessage(LDAP_NOT_CONFIGURED_EMPTY_MESSAGE); + processResponse(request.getRequestId(), response); } - //pass off for processing - processResponse(request.getRequestId(), response); } - });
+ @Override + public void onFailure(Throwable caught) { + Log.error("Unable to determine whether ldap configured - check server logs."); + } + }); } }
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/LdapGWTService.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/LdapGWTService.java index 5daf50e..0209e37 100644 --- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/LdapGWTService.java +++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/LdapGWTService.java @@ -79,4 +79,10 @@ public interface LdapGWTService extends RemoteService { */ Set<Map<String, String>> findLdapGroupsAssignedToRole(int currentRoleId);
+ /** Boolean response about whether ldap configured.. + * + * @return + */ + Boolean checkLdapConfiguredStatus(); + } diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/LdapGWTServiceImpl.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/LdapGWTServiceImpl.java index 41d49bb..d03c53c 100644 --- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/LdapGWTServiceImpl.java +++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/LdapGWTServiceImpl.java @@ -36,6 +36,7 @@ import org.rhq.enterprise.gui.coregui.server.util.SerialUtility; import org.rhq.enterprise.server.RHQConstants; import org.rhq.enterprise.server.auth.SubjectManagerLocal; import org.rhq.enterprise.server.resource.group.LdapGroupManagerLocal; +import org.rhq.enterprise.server.system.SystemManagerLocal; import org.rhq.enterprise.server.util.LookupUtil;
/** @@ -47,6 +48,7 @@ public class LdapGWTServiceImpl extends AbstractGWTServiceImpl implements LdapGW
private LdapGroupManagerLocal ldapManager = LookupUtil.getLdapGroupManager(); private SubjectManagerLocal subjectManager = LookupUtil.getSubjectManager(); + private SystemManagerLocal systemManager = LookupUtil.getSystemManager();
@Override public Set<Map<String, String>> findAvailableGroups() { @@ -277,4 +279,19 @@ public class LdapGWTServiceImpl extends AbstractGWTServiceImpl implements LdapGW throw new RuntimeException(ThrowableUtil.getAllMessages(e)); } } + + /**Light call to determine ldap configuration status. + * + */ + @Override + public Boolean checkLdapConfiguredStatus() { + Boolean ldapEnabled = false; + try { + String provider = systemManager.getSystemConfiguration().getProperty(RHQConstants.JAASProvider); + ldapEnabled = ((provider != null) && provider.equals(RHQConstants.LDAPJAASProvider)); + } catch (Exception e) { + throw new RuntimeException(ThrowableUtil.getAllMessages(e)); + } + return ldapEnabled; + } } \ No newline at end of file
rhq-commits@lists.fedorahosted.org