Optimized the method accessToFolderLink skipping loading of Liferay's users
git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/portlets/widgets/workspace-sharing-widget@179560 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
parent
fffde02804
commit
5f4446e7c0
|
@ -0,0 +1,7 @@
|
|||
<root>
|
||||
<facet id="jst.jaxrs">
|
||||
<node name="libprov">
|
||||
<attribute name="provider-id" value="jaxrs-no-op-library-provider"/>
|
||||
</node>
|
||||
</facet>
|
||||
</root>
|
|
@ -4,4 +4,5 @@
|
|||
<installed facet="jst.web" version="2.3"/>
|
||||
<installed facet="wst.jsdt.web" version="1.0"/>
|
||||
<installed facet="java" version="1.7"/>
|
||||
<installed facet="jst.jaxrs" version="2.0"/>
|
||||
</faceted-project>
|
||||
|
|
2
pom.xml
2
pom.xml
|
@ -14,7 +14,7 @@
|
|||
<groupId>org.gcube.portlets.widgets</groupId>
|
||||
<artifactId>workspace-sharing-widget</artifactId>
|
||||
<packaging>jar</packaging>
|
||||
<version>1.9.0-SNAPSHOT</version>
|
||||
<version>1.9.1-SNAPSHOT</version>
|
||||
<name>gCube Workspace Sharing Widget</name>
|
||||
<description>
|
||||
gCube Workspace Sharing Widget allows users to share gCube Workspace items
|
||||
|
|
|
@ -1307,48 +1307,27 @@ public class WorkspaceSharingServiceImpl extends RemoteServiceServlet implements
|
|||
OpenResolver openResolverForItem = shc.open(itemId);
|
||||
FolderContainer folderContainer = openResolverForItem.asFolder();
|
||||
FolderItem folderItem = folderContainer.get();
|
||||
InfoContactModel owner = null;
|
||||
if (folderItem != null) {
|
||||
logger.debug("Owner: " + folderItem.getOwner());
|
||||
|
||||
PortalContextInfo info = WsUtil.getPortalContext(this.getThreadLocalRequest());
|
||||
if (folderItem.getOwner() != null && !folderItem.getOwner().isEmpty()) {
|
||||
GWTWorkspaceSharingBuilder builder = new GWTWorkspaceSharingBuilder();
|
||||
|
||||
List<InfoContactModel> listContactsModel = builder.buildGXTListContactsModelFromUserModel(info);
|
||||
boolean ownerFound = false;
|
||||
for (InfoContactModel icm : listContactsModel) {
|
||||
if (icm.getLogin().compareTo(folderItem.getOwner()) == 0) {
|
||||
logger.debug("Owner Retrieved: " + icm);
|
||||
owner = icm;
|
||||
ownerFound = true;
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
if (!ownerFound) {
|
||||
logger.debug("Owner not found from user model!");
|
||||
owner = new InfoContactModel(folderItem.getOwner(), folderItem.getOwner(),
|
||||
folderItem.getOwner(), false);
|
||||
}
|
||||
} else {
|
||||
logger.debug("Owner not found from item");
|
||||
owner = null;
|
||||
}
|
||||
|
||||
String username = info.getUsername();
|
||||
|
||||
if (folderItem.isPublicItem()) {
|
||||
logger.info("The folder is already public. Access granted to " + username);
|
||||
return new AllowAccess(itemId, true, "The folder is already public. Access granted to " + username,
|
||||
null);
|
||||
}
|
||||
logger.info("The owner of: " + folderItem.getName() + " is: " + owner);
|
||||
|
||||
logger.debug("Owner is: " + folderItem.getOwner());
|
||||
logger.info("The current context user: " + username);
|
||||
if (owner != null && owner.getLogin().compareToIgnoreCase(username) == 0) {
|
||||
|
||||
if (folderItem.getOwner() != null && folderItem.getOwner().compareToIgnoreCase(username) == 0) {
|
||||
logger.info("Access to Folder Link " + folderItem.getName() + " granted, " + username
|
||||
+ " is the owner of: " + itemId);
|
||||
return new AllowAccess(itemId, true,
|
||||
info.getUserFullName() + " is the owner of: " + folderItem.getName(), null);
|
||||
}
|
||||
|
||||
try {
|
||||
List<InfoContactModel> admins = null;
|
||||
|
||||
|
|
Loading…
Reference in New Issue