From 0305e81055e30fb5632a404db4d9a3cf5d3e0948 Mon Sep 17 00:00:00 2001 From: Kevin Roast Date: Tue, 31 Jan 2006 12:05:36 +0000 Subject: [PATCH] . Fix to allow Take Ownership of a Space through the web-client (current you could only Take Ownership of a document!) - this is required to solve AWC-442 git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@2258 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- config/alfresco/messages/webclient.properties | 2 +- .../alfresco/web/bean/SpaceDetailsBean.java | 49 +++++++++++++++++++ source/web/WEB-INF/faces-config.xml | 4 ++ source/web/jsp/dialog/space-details.jsp | 6 +++ 4 files changed, 60 insertions(+), 1 deletion(-) diff --git a/config/alfresco/messages/webclient.properties b/config/alfresco/messages/webclient.properties index 8c17655182..b062d949cd 100644 --- a/config/alfresco/messages/webclient.properties +++ b/config/alfresco/messages/webclient.properties @@ -507,7 +507,7 @@ create_space_finish=To create your space click Create Space. select_category=Select a category selected_categories=Selected categories no_selected_categories=No categories selected. -success_ownership=Successfully took ownership of the document. +success_ownership=Successfully took ownership of the object. inherit_permissions=Inherit Parent Space Permissions success_inherit_permissions=Successfully changed Inherit Parent Permissions to 'Yes' success_not_inherit_permissions=Successfully changed Inherit Parent Permissions to 'No' diff --git a/source/java/org/alfresco/web/bean/SpaceDetailsBean.java b/source/java/org/alfresco/web/bean/SpaceDetailsBean.java index 511395d6b6..bbb56028cc 100644 --- a/source/java/org/alfresco/web/bean/SpaceDetailsBean.java +++ b/source/java/org/alfresco/web/bean/SpaceDetailsBean.java @@ -22,9 +22,11 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import javax.faces.application.FacesMessage; import javax.faces.context.FacesContext; import javax.faces.event.ActionEvent; import javax.faces.model.SelectItem; +import javax.transaction.UserTransaction; import org.alfresco.model.ContentModel; import org.alfresco.model.ForumModel; @@ -33,6 +35,7 @@ import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.cmr.repository.NodeService; import org.alfresco.service.cmr.repository.TemplateImageResolver; import org.alfresco.service.cmr.repository.TemplateNode; +import org.alfresco.service.cmr.security.OwnableService; import org.alfresco.service.cmr.security.PermissionService; import org.alfresco.service.namespace.NamespaceService; import org.alfresco.web.app.AlfrescoNavigationHandler; @@ -52,6 +55,8 @@ import org.alfresco.web.ui.common.component.UIActionLink; */ public class SpaceDetailsBean { + private static final String MSG_SUCCESS_OWNERSHIP = "success_ownership"; + private static final String OUTCOME_RETURN = "showSpaceDetails"; /** BrowseBean instance */ @@ -63,6 +68,9 @@ public class SpaceDetailsBean /** PermissionService bean reference */ private PermissionService permissionService; + /** OwnableService bean reference */ + private OwnableService ownableService; + /** NodeServuce bean reference */ private NodeService nodeService; @@ -107,6 +115,16 @@ public class SpaceDetailsBean this.permissionService = permissionService; } + /** + * Sets the ownable service instance the bean should use + * + * @param ownableService The OwnableService + */ + public void setOwnableService(OwnableService ownableService) + { + this.ownableService = ownableService; + } + /** * Returns the Space this bean is currently representing * @@ -337,6 +355,37 @@ public class SpaceDetailsBean return OUTCOME_RETURN; } + /** + * Action Handler to take Ownership of the current Space + */ + public void takeOwnership(ActionEvent event) + { + UserTransaction tx = null; + + try + { + tx = Repository.getUserTransaction(FacesContext.getCurrentInstance()); + tx.begin(); + + this.ownableService.takeOwnership(getSpace().getNodeRef()); + + FacesContext context = FacesContext.getCurrentInstance(); + String msg = Application.getMessage(context, MSG_SUCCESS_OWNERSHIP); + FacesMessage facesMsg = new FacesMessage(FacesMessage.SEVERITY_INFO, msg, msg); + context.addMessage(event.getComponent().getClientId(context), facesMsg); + + // commit the transaction + tx.commit(); + } + catch (Throwable e) + { + // rollback the transaction + try { if (tx != null) {tx.rollback();} } catch (Exception ex) {} + Utils.addErrorMessage(MessageFormat.format(Application.getMessage( + FacesContext.getCurrentInstance(), Repository.ERROR_GENERIC), e.getMessage()), e); + } + } + /** * Navigates to next item in the list of Spaces */ diff --git a/source/web/WEB-INF/faces-config.xml b/source/web/WEB-INF/faces-config.xml index a8d556ce18..7487f5da27 100644 --- a/source/web/WEB-INF/faces-config.xml +++ b/source/web/WEB-INF/faces-config.xml @@ -834,6 +834,10 @@ permissionService #{PermissionService} + + ownableService + #{OwnableService} + diff --git a/source/web/jsp/dialog/space-details.jsp b/source/web/jsp/dialog/space-details.jsp index 83c449ed44..e496f906b6 100644 --- a/source/web/jsp/dialog/space-details.jsp +++ b/source/web/jsp/dialog/space-details.jsp @@ -110,6 +110,11 @@ + <%-- Take Ownership --%> + + + + @@ -231,6 +236,7 @@ columns="1" mode="view" labelStyleClass="propertiesLabel" externalConfig="true" /> +