Show permissions in Node Browser.

git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@2280 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
David Caruana
2006-02-01 18:36:23 +00:00
parent e949c34519
commit d2bb0c160f
3 changed files with 112 additions and 1 deletions

View File

@@ -40,6 +40,9 @@ import org.alfresco.service.cmr.repository.Path;
import org.alfresco.service.cmr.repository.StoreRef; import org.alfresco.service.cmr.repository.StoreRef;
import org.alfresco.service.cmr.search.ResultSet; import org.alfresco.service.cmr.search.ResultSet;
import org.alfresco.service.cmr.search.SearchService; import org.alfresco.service.cmr.search.SearchService;
import org.alfresco.service.cmr.security.AccessPermission;
import org.alfresco.service.cmr.security.AccessStatus;
import org.alfresco.service.cmr.security.PermissionService;
import org.alfresco.service.namespace.NamespaceService; import org.alfresco.service.namespace.NamespaceService;
import org.alfresco.service.namespace.QName; import org.alfresco.service.namespace.QName;
import org.alfresco.service.namespace.RegexQNamePattern; import org.alfresco.service.namespace.RegexQNamePattern;
@@ -83,12 +86,15 @@ public class AdminNodeBrowseBean
private DataModel properties = null; private DataModel properties = null;
private DataModel children = null; private DataModel children = null;
private DataModel assocs = null; private DataModel assocs = null;
private Boolean inheritPermissions = null;
private DataModel permissions = null;
// supporting repository services // supporting repository services
private NodeService nodeService; private NodeService nodeService;
private DictionaryService dictionaryService; private DictionaryService dictionaryService;
private SearchService searchService; private SearchService searchService;
private NamespaceService namespaceService; private NamespaceService namespaceService;
private PermissionService permissionService;
/** /**
* @param nodeService node service * @param nodeService node service
@@ -122,6 +128,14 @@ public class AdminNodeBrowseBean
this.namespaceService = namespaceService; this.namespaceService = namespaceService;
} }
/**
* @param permissionService permission service
*/
public void setPermissionService(PermissionService permissionService)
{
this.permissionService = permissionService;
}
/** /**
* Gets the list of repository stores * Gets the list of repository stores
* *
@@ -168,6 +182,8 @@ public class AdminNodeBrowseBean
properties = null; properties = null;
children = null; children = null;
assocs = null; assocs = null;
inheritPermissions = null;
permissions = null;
} }
/** /**
@@ -261,6 +277,45 @@ public class AdminNodeBrowseBean
return properties; return properties;
} }
/**
* Gets whether the current node inherits its permissions from a parent node
*
* @return true => inherits permissions
*/
public boolean getInheritPermissions()
{
if (inheritPermissions == null)
{
inheritPermissions = permissionService.getInheritParentPermissions(nodeRef);
}
return inheritPermissions.booleanValue();
}
/**
* Gets the current node permissions
*
* @return the permissions
*/
public DataModel getPermissions()
{
if (permissions == null)
{
AccessStatus readPermissions = permissionService.hasPermission(nodeRef, PermissionService.READ_PERMISSIONS);
if (readPermissions.equals(AccessStatus.ALLOWED))
{
List<AccessPermission> nodePermissions = new ArrayList<AccessPermission>(permissionService.getAllSetPermissions(nodeRef));
permissions = new ListDataModel(nodePermissions);
}
else
{
List<NoReadPermissionGranted> noReadPermissions = new ArrayList<NoReadPermissionGranted>(1);
noReadPermissions.add(new NoReadPermissionGranted());
permissions = new ListDataModel(noReadPermissions);
}
}
return permissions;
}
/** /**
* Gets the current node children * Gets the current node children
* *
@@ -710,6 +765,27 @@ public class AdminNodeBrowseBean
} }
} }
/**
* Permission representing the fact that "Read Permissions" has not been granted
*/
public class NoReadPermissionGranted
{
public String getPermission()
{
return PermissionService.READ_PERMISSIONS;
}
public String getAuthority()
{
return "[Current Authority]";
}
public String getAccessStatus()
{
return "Not Granted";
}
}
/** /**
* Wrapper class for Search Results * Wrapper class for Search Results
*/ */

View File

@@ -961,6 +961,10 @@
<property-name>namespaceService</property-name> <property-name>namespaceService</property-name>
<value>#{NamespaceService}</value> <value>#{NamespaceService}</value>
</managed-property> </managed-property>
<managed-property>
<property-name>permissionService</property-name>
<value>#{PermissionService}</value>
</managed-property>
</managed-bean> </managed-bean>
<!-- Forums managed beans --> <!-- Forums managed beans -->

View File

@@ -94,7 +94,7 @@
</table> </table>
<br> <br>
<h:outputText styleClass="mainTitle" value="Propertes"/> <h:outputText styleClass="mainTitle" value="Properties"/>
<h:dataTable id="properties" border="1" value="#{AdminNodeBrowseBean.properties}" var="property"> <h:dataTable id="properties" border="1" value="#{AdminNodeBrowseBean.properties}" var="property">
<h:column> <h:column>
@@ -154,6 +154,37 @@
</h:column> </h:column>
</h:dataTable> </h:dataTable>
<br>
<h:outputText styleClass="mainTitle" value="Permissions"/>
<table>
<tr>
<td><b>Inherit:</b></td><td><h:outputText id="inheritPermissions" value="#{AdminNodeBrowseBean.inheritPermissions}"/></td>
</tr>
</table>
<br>
<h:dataTable id="permissions" border="1" value="#{AdminNodeBrowseBean.permissions}" var="permission">
<h:column>
<f:facet name="header">
<h:outputText value="Assigned Permission"/>
</f:facet>
<h:outputText value="#{permission.permission}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="To Authority"/>
</f:facet>
<h:outputText value="#{permission.authority}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Access"/>
</f:facet>
<h:outputText value="#{permission.accessStatus}"/>
</h:column>
</h:dataTable>
<br> <br>
<h:outputText styleClass="mainTitle" value="Children"/> <h:outputText styleClass="mainTitle" value="Children"/>