Author: ilgrosso Date: Thu Dec 27 12:10:46 2012 New Revision: 1426176 URL: http://svn.apache.org/viewvc?rev=1426176&view=rev Log: [SYNCOPE-172] Now showing role propagation status after CRUD
Modified: syncope/trunk/client/src/main/java/org/apache/syncope/client/to/ConnObjectTO.java syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/ResultStatusModalPage.java syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/Users.java syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/RoleSummaryPanel.java syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/RoleTabPanel.java syncope/trunk/console/src/main/java/org/apache/syncope/console/rest/RoleRestClient.java syncope/trunk/console/src/main/java/org/apache/syncope/console/wicket/markup/html/tree/TreeActionLinkPanel.java Modified: syncope/trunk/client/src/main/java/org/apache/syncope/client/to/ConnObjectTO.java URL: http://svn.apache.org/viewvc/syncope/trunk/client/src/main/java/org/apache/syncope/client/to/ConnObjectTO.java?rev=1426176&r1=1426175&r2=1426176&view=diff ============================================================================== --- syncope/trunk/client/src/main/java/org/apache/syncope/client/to/ConnObjectTO.java (original) +++ syncope/trunk/client/src/main/java/org/apache/syncope/client/to/ConnObjectTO.java Thu Dec 27 12:10:46 2012 @@ -23,8 +23,8 @@ import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; -import org.codehaus.jackson.annotate.JsonIgnore; import org.apache.syncope.client.AbstractBaseBean; +import org.codehaus.jackson.annotate.JsonIgnore; public class ConnObjectTO extends AbstractBaseBean { @@ -59,13 +59,13 @@ public class ConnObjectTO extends Abstra Map<String, AttributeTO> result; if (attributes == null) { - result = Collections.emptyMap(); + result = Collections.<String, AttributeTO>emptyMap(); } else { result = new HashMap<String, AttributeTO>(attributes.size()); for (AttributeTO attributeTO : attributes) { result.put(attributeTO.getSchema(), attributeTO); } - result = Collections.unmodifiableMap(result); + result = Collections.<String, AttributeTO>unmodifiableMap(result); } return result; Modified: syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/ResultStatusModalPage.java URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/ResultStatusModalPage.java?rev=1426176&r1=1426175&r2=1426176&view=diff ============================================================================== --- syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/ResultStatusModalPage.java (original) +++ syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/ResultStatusModalPage.java Thu Dec 27 12:10:46 2012 @@ -231,6 +231,11 @@ public class ResultStatusModalPage exten attributes.addAll(beforeAttrMap.keySet()); attributes.addAll(afterAttrMap.keySet()); + if (!(attributable instanceof UserTO)) { + attributes.remove("__PASSWORD__"); + attributes.remove("__ENABLE__"); + } + final List<String> profile = new ArrayList<String>(); profile.addAll(attributes); profile.removeAll(head); Modified: syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/Users.java URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/Users.java?rev=1426176&r1=1426175&r2=1426176&view=diff ============================================================================== --- syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/Users.java (original) +++ syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/Users.java Thu Dec 27 12:10:46 2012 @@ -18,6 +18,13 @@ */ package org.apache.syncope.console.pages; +import org.apache.syncope.client.search.NodeCond; +import org.apache.syncope.client.to.UserTO; +import org.apache.syncope.console.pages.panels.AbstractSearchResultPanel; +import org.apache.syncope.console.pages.panels.AbstractSearchResultPanel.EventDataWrapper; +import org.apache.syncope.console.pages.panels.UserSearchPanel; +import org.apache.syncope.console.pages.panels.UserSearchResultPanel; +import org.apache.syncope.console.rest.UserRestClient; import org.apache.wicket.Page; import org.apache.wicket.Session; import org.apache.wicket.ajax.AjaxRequestTarget; @@ -30,13 +37,6 @@ import org.apache.wicket.extensions.ajax import org.apache.wicket.markup.html.form.Form; import org.apache.wicket.model.ResourceModel; import org.apache.wicket.request.mapper.parameter.PageParameters; -import org.apache.syncope.client.search.NodeCond; -import org.apache.syncope.client.to.UserTO; -import org.apache.syncope.console.pages.panels.AbstractSearchResultPanel; -import org.apache.syncope.console.pages.panels.AbstractSearchResultPanel.EventDataWrapper; -import org.apache.syncope.console.pages.panels.UserSearchPanel; -import org.apache.syncope.console.pages.panels.UserSearchResultPanel; -import org.apache.syncope.console.rest.UserRestClient; import org.apache.wicket.spring.injection.annot.SpringBean; public class Users extends BasePage { Modified: syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/RoleSummaryPanel.java URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/RoleSummaryPanel.java?rev=1426176&r1=1426175&r2=1426176&view=diff ============================================================================== --- syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/RoleSummaryPanel.java (original) +++ syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/RoleSummaryPanel.java Thu Dec 27 12:10:46 2012 @@ -19,6 +19,7 @@ package org.apache.syncope.console.pages.panels; import org.apache.syncope.client.to.RoleTO; +import org.apache.syncope.client.validation.SyncopeClientCompositeErrorException; import org.apache.syncope.console.rest.RoleRestClient; import org.apache.syncope.console.wicket.markup.html.tree.TreeActionLinkPanel; import org.apache.wicket.PageReference; @@ -27,39 +28,56 @@ import org.apache.wicket.markup.html.pan import org.apache.wicket.markup.html.panel.Panel; import org.apache.wicket.model.Model; import org.apache.wicket.spring.injection.annot.SpringBean; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; public class RoleSummaryPanel extends Panel { private static final long serialVersionUID = 643769814985593156L; + /** + * Logger. + */ + private static final Logger LOG = LoggerFactory.getLogger(RoleSummaryPanel.class); + @SpringBean private RoleRestClient restClient; private RoleTO selectedNode; - private Fragment fragment; + private final Fragment fragment; private RoleTabPanel roleTabPanel; private TreeActionLinkPanel actionLink; - private PageReference callerPageRef; + private final PageReference callerPageRef; - private ModalWindow window; + private final ModalWindow window; public RoleSummaryPanel(final String id, final ModalWindow window, final PageReference callerPageRef) { this(id, window, callerPageRef, null); } public RoleSummaryPanel(final String id, final ModalWindow window, final PageReference callerPageRef, - final Long selectedNodeId) { + Long selectedNodeId) { super(id); this.callerPageRef = callerPageRef; this.window = window; - this.selectedNode = selectedNodeId != null && selectedNodeId != 0 ? restClient.read(selectedNodeId) : null; + if (selectedNodeId == null || selectedNodeId == 0) { + this.selectedNode = null; + } else { + try { + this.selectedNode = restClient.read(selectedNodeId); + } catch (SyncopeClientCompositeErrorException e) { + LOG.error("Could not read {}", selectedNodeId, e); + this.selectedNode = null; + selectedNodeId = null; + } + } fragment = new Fragment("roleSummaryPanel", selectedNodeId == null ? "fakerootFrag" : (selectedNodeId == 0 ? "rootPanel" : "roleViewPanel"), this); Modified: syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/RoleTabPanel.java URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/RoleTabPanel.java?rev=1426176&r1=1426175&r2=1426176&view=diff ============================================================================== --- syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/RoleTabPanel.java (original) +++ syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/RoleTabPanel.java Thu Dec 27 12:10:46 2012 @@ -21,7 +21,6 @@ package org.apache.syncope.console.pages import org.apache.syncope.client.search.MembershipCond; import org.apache.syncope.client.search.NodeCond; import org.apache.syncope.client.to.RoleTO; -import org.apache.syncope.console.commons.XMLRolesReader; import org.apache.syncope.console.rest.UserRestClient; import org.apache.syncope.console.wicket.markup.html.tree.TreeActionLinkPanel; import org.apache.wicket.PageReference; @@ -41,9 +40,6 @@ public class RoleTabPanel extends Panel private static final long serialVersionUID = 859236186975983959L; @SpringBean - private XMLRolesReader xmlRolesReader; - - @SpringBean private UserRestClient restClient; public RoleTabPanel(final String id, final RoleTO roleTO, final ModalWindow window, Modified: syncope/trunk/console/src/main/java/org/apache/syncope/console/rest/RoleRestClient.java URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/java/org/apache/syncope/console/rest/RoleRestClient.java?rev=1426176&r1=1426175&r2=1426176&view=diff ============================================================================== --- syncope/trunk/console/src/main/java/org/apache/syncope/console/rest/RoleRestClient.java (original) +++ syncope/trunk/console/src/main/java/org/apache/syncope/console/rest/RoleRestClient.java Thu Dec 27 12:10:46 2012 @@ -79,15 +79,8 @@ public class RoleRestClient extends Abst } public RoleTO read(final Long id) { - RoleTO roleTO = null; - - try { - roleTO = SyncopeSession.get().getRestTemplate().getForObject( - baseURL + "role/read/{roleId}.json", RoleTO.class, id); - } catch (SyncopeClientCompositeErrorException e) { - LOG.error("While reading a role", e); - } - return roleTO; + return SyncopeSession.get().getRestTemplate().getForObject( + baseURL + "role/read/{roleId}.json", RoleTO.class, id); } public RoleTO update(final RoleMod roleMod) { Modified: syncope/trunk/console/src/main/java/org/apache/syncope/console/wicket/markup/html/tree/TreeActionLinkPanel.java URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/java/org/apache/syncope/console/wicket/markup/html/tree/TreeActionLinkPanel.java?rev=1426176&r1=1426175&r2=1426176&view=diff ============================================================================== --- syncope/trunk/console/src/main/java/org/apache/syncope/console/wicket/markup/html/tree/TreeActionLinkPanel.java (original) +++ syncope/trunk/console/src/main/java/org/apache/syncope/console/wicket/markup/html/tree/TreeActionLinkPanel.java Thu Dec 27 12:10:46 2012 @@ -34,6 +34,7 @@ import org.slf4j.LoggerFactory; import org.apache.syncope.client.to.RoleTO; import org.apache.syncope.client.validation.SyncopeClientCompositeErrorException; import org.apache.syncope.console.commons.XMLRolesReader; +import org.apache.syncope.console.pages.ResultStatusModalPage; import org.apache.syncope.console.pages.RoleModalPage; import org.apache.syncope.console.pages.Roles; import org.apache.syncope.console.rest.RoleRestClient; @@ -67,7 +68,7 @@ public class TreeActionLinkPanel extends fragment = new Fragment("menuPanel", idRole == 0 ? "fakerootFrag" : "roleFrag", this); - + fragment.setOutputMarkupId(true); final AjaxLink createRoleLink = new IndicatingAjaxLink("createRoleLink") { @@ -102,6 +103,8 @@ public class TreeActionLinkPanel extends if (idRole != 0) { final AjaxLink updateRoleLink = new IndicatingAjaxLink("updateRoleLink") { + private static final long serialVersionUID = -7978723352517770644L; + @Override public void onClick(final AjaxRequestTarget target) { window.setPageCreator(new ModalWindow.PageCreator() { @@ -128,17 +131,30 @@ public class TreeActionLinkPanel extends final AjaxLink dropRoleLink = new IndicatingDeleteOnConfirmAjaxLink("dropRoleLink") { + private static final long serialVersionUID = -7978723352517770644L; + @Override public void onClick(final AjaxRequestTarget target) { try { - restClient.delete(idRole); - getSession().info(getString("operation_succeded")); - } catch (SyncopeClientCompositeErrorException e) { - LOG.error("While deleting role " + idRole, e); - getSession().error(getString("operation_error")); - } + final RoleTO roleTO = (RoleTO) restClient.delete(idRole); + + ((Roles) callerPageRef.getPage()).setModalResult(true); - setResponsePage(new Roles(null)); + window.setPageCreator(new ModalWindow.PageCreator() { + + private static final long serialVersionUID = -7834632442532690940L; + + @Override + public Page createPage() { + return new ResultStatusModalPage(window, roleTO); + } + }); + + window.show(target); + } catch (SyncopeClientCompositeErrorException scce) { + error(getString("operation_error") + ": " + scce.getMessage()); + target.add(((Roles) callerPageRef.getPage()).getFeedbackPanel()); + } } };