Data Catalogue Publishing widget: filter the VREs for the working gateway
git-svn-id: http://svn.d4science-ii.research-infrastructures.eu/gcube/trunk/portlets/widgets/ckan-metadata-publisher-widget@179794 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
parent
5182d0af63
commit
f53c8d0c3b
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<classpath>
|
||||
<classpathentry including="**/*.java" kind="src" output="target/classes" path="src/main/java">
|
||||
<classpathentry including="**/*.java" kind="src" output="target/ckan-metadata-publisher-widget-1.6.0-SNAPSHOT/WEB-INF/classes" path="src/main/java">
|
||||
<attributes>
|
||||
<attribute name="optional" value="true"/>
|
||||
<attribute name="maven.pomderived" value="true"/>
|
||||
|
@ -18,7 +18,7 @@
|
|||
<attribute name="maven.pomderived" value="true"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources">
|
||||
<classpathentry excluding="**" kind="src" output="target/ckan-metadata-publisher-widget-1.6.0-SNAPSHOT/WEB-INF/classes" path="src/main/resources">
|
||||
<attributes>
|
||||
<attribute name="maven.pomderived" value="true"/>
|
||||
</attributes>
|
||||
|
@ -34,5 +34,5 @@
|
|||
<attribute name="maven.pomderived" value="true"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry kind="output" path="target/classes"/>
|
||||
<classpathentry kind="output" path="target/ckan-metadata-publisher-widget-1.6.0-SNAPSHOT/WEB-INF/classes"/>
|
||||
</classpath>
|
||||
|
|
|
@ -2,7 +2,11 @@
|
|||
<Changeset
|
||||
component="org.gcube.portlets-widgets.ckan-metadata-publisher-widget.1-6-0"
|
||||
date="${buildDate}">
|
||||
<Change>[Feature #11331] Field repeatability: support for catalogue widget
|
||||
<Change>[Feature #11331] Field repeatability: support for catalogue
|
||||
widget
|
||||
</Change>
|
||||
<Change>[Task #12480] Data Catalogue Publishing widget: filter the VREs for the working gateway
|
||||
widget
|
||||
</Change>
|
||||
</Changeset>
|
||||
<Changeset
|
||||
|
@ -15,13 +19,15 @@
|
|||
component="org.gcube.portlets-widgets.ckan-metadata-publisher-widget.1-4-1"
|
||||
date="2018-11-20">
|
||||
<Change>[Bug #12914] The form to add/choice the resources to
|
||||
publishing remains frozen</Change>
|
||||
publishing remains frozen
|
||||
</Change>
|
||||
</Changeset>
|
||||
<Changeset
|
||||
component="org.gcube.portlets-widgets.ckan-metadata-publisher-widget.1-4-0"
|
||||
date="2018-09-28">
|
||||
<Change>[Incident #12563] Error when trying to publish the content of
|
||||
a workspace folder into the catalogue</Change>
|
||||
a workspace folder into the catalogue
|
||||
</Change>
|
||||
</Changeset>
|
||||
<Changeset
|
||||
component="org.gcube.portlets-widgets.ckan-metadata-publisher-widget.1-3-3"
|
||||
|
|
2
pom.xml
2
pom.xml
|
@ -27,7 +27,7 @@
|
|||
<properties>
|
||||
<!-- Convenience property to set the GWT version -->
|
||||
<gwtVersion>2.7.0</gwtVersion>
|
||||
<webappDirectory>${project.build.directory}/${project.build.finalName}</webappDirectory>
|
||||
<!-- <webappDirectory>${project.build.directory}/${project.build.finalName}</webappDirectory> -->
|
||||
<distroDirectory>distro</distroDirectory>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
|
||||
|
|
|
@ -8,6 +8,7 @@ import org.gcube.portlets.widgets.ckandatapublisherwidget.shared.metadata.Metada
|
|||
|
||||
import com.github.gwtbootstrap.client.ui.Button;
|
||||
import com.github.gwtbootstrap.client.ui.Label;
|
||||
import com.github.gwtbootstrap.client.ui.constants.LabelType;
|
||||
import com.google.gwt.core.client.GWT;
|
||||
import com.google.gwt.event.dom.client.ClickEvent;
|
||||
import com.google.gwt.event.dom.client.ClickHandler;
|
||||
|
@ -95,8 +96,10 @@ public class MetaDataField extends Composite {
|
|||
//The field is repeatable
|
||||
if(field.getMaxOccurs()>1) {
|
||||
repeatabilityLabel.setVisible(true);
|
||||
repeatabilityLabel.setType(LabelType.INFO);
|
||||
addFieldButton.setTitle("Add another "+field.getFieldName());
|
||||
removeFieldButton.setTitle("Remove latest "+field.getFieldName());
|
||||
// String maxTxt = field.getMaxOccurs()==Integer.MAX_VALUE?"":"(max occurs declared are "+field.getMaxOccurs()+" times)";
|
||||
repeatabilityLabel.setText("Repeat "+field.getFieldName());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -3,8 +3,8 @@
|
|||
xmlns:g="urn:import:com.google.gwt.user.client.ui"
|
||||
xmlns:b="urn:import:com.github.gwtbootstrap.client.ui">
|
||||
<ui:style>
|
||||
.important {
|
||||
font-weight: bold;
|
||||
.margin-left-max-occurrs {
|
||||
padding-left: 28px;
|
||||
}
|
||||
</ui:style>
|
||||
<g:HTMLPanel>
|
||||
|
@ -12,8 +12,8 @@
|
|||
ui:field="panelMetaDataFieldsSkeleton" width="100%">
|
||||
</g:VerticalPanel>
|
||||
<b:ControlGroup>
|
||||
<b:Controls>
|
||||
<b:Label ui:field="repeatabilityLabel" visible="false">Repeatability</b:Label>
|
||||
<b:Controls addStyleNames="{style.margin-left-max-occurrs}">
|
||||
<b:Label ui:field="repeatabilityLabel" visible="false">Repeatable field</b:Label>
|
||||
<b:Button icon="MINUS_SIGN" title="Remove Latest Field"
|
||||
ui:field="removeFieldButton" visible="false"></b:Button>
|
||||
<b:Button icon="PLUS_SIGN" title="Add Another Field"
|
||||
|
|
|
@ -108,7 +108,9 @@ public class CKANPublisherServicesImpl extends RemoteServiceServlet implements C
|
|||
logger.info("List of organizations was into session " + orgsName);
|
||||
}
|
||||
else{
|
||||
CatalogueRoleManager.getHighestRole(scope, username, GenericUtils.getGroupFromScope(scope).getGroupName(), this, orgsName);
|
||||
String gatewayURL = GenericUtils.getCurrentClientUrl(getThreadLocalRequest());
|
||||
logger.info("The Gateway URL is: "+gatewayURL);
|
||||
CatalogueRoleManager.getHighestRole(scope, username, GenericUtils.getGroupFromScope(scope).getGroupName(), this, orgsName, gatewayURL);
|
||||
httpSession.setAttribute(keyPerScope, orgsName);
|
||||
logger.info("Organizations name for user " + username + " has been saved into session " + orgsName);
|
||||
}
|
||||
|
@ -621,7 +623,9 @@ public class CKANPublisherServicesImpl extends RemoteServiceServlet implements C
|
|||
|
||||
// we build up also a list that keeps track of the scopes (orgs) in which the user has role ADMIN/EDITOR
|
||||
List<OrganizationBean> orgsInWhichAtLeastEditorRole = new ArrayList<OrganizationBean>();
|
||||
role = CatalogueRoleManager.getHighestRole(scopePerCurrentUrl, username, groupName, this, orgsInWhichAtLeastEditorRole);
|
||||
String gatewayURL = GenericUtils.getCurrentClientUrl(getThreadLocalRequest());
|
||||
logger.info("The Gateway URL is: "+gatewayURL);
|
||||
role = CatalogueRoleManager.getHighestRole(scopePerCurrentUrl, username, groupName, this, orgsInWhichAtLeastEditorRole, gatewayURL);
|
||||
|
||||
// if he is an admin/editor preload:
|
||||
// 1) organizations in which he can publish (the widget will find these info in session)
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package org.gcube.portlets.widgets.ckandatapublisherwidget.server.utils;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import org.gcube.datacatalogue.ckanutillibrary.server.DataCatalogue;
|
||||
import org.gcube.datacatalogue.ckanutillibrary.shared.RolesCkanGroupOrOrg;
|
||||
|
@ -39,7 +40,7 @@ public class CatalogueRoleManager {
|
|||
* @param orgsInWhichAtLeastEditorRole
|
||||
* @return the highest among the roles
|
||||
*/
|
||||
public static RolesCkanGroupOrOrg getHighestRole(String currentScope, String username, String groupName, CKANPublisherServicesImpl gcubeCkanDataCatalogServiceImpl, List<OrganizationBean> orgsInWhichAtLeastEditorRole){
|
||||
public static RolesCkanGroupOrOrg getHighestRole(String currentScope, String username, String groupName, CKANPublisherServicesImpl gcubeCkanDataCatalogServiceImpl, List<OrganizationBean> orgsInWhichAtLeastEditorRole, String gatewayHostname){
|
||||
|
||||
// base role as default value
|
||||
RolesCkanGroupOrOrg toReturn = RolesCkanGroupOrOrg.MEMBER;
|
||||
|
@ -59,7 +60,14 @@ public class CatalogueRoleManager {
|
|||
logger.debug("Group id is " + currentGroupId + " and scope is " + currentScope);
|
||||
|
||||
// retrieve the flat list of organizations for the current user
|
||||
List<GCubeGroup> groups = groupManager.listGroupsByUser(userid);
|
||||
//List<GCubeGroup> groups = groupManager.listGroupsByUser(userid);
|
||||
|
||||
// retrieve the list of organizations for the current user filtered for gateway
|
||||
Set<GCubeGroup> groups = groupManager.listGroupsByUserAndSite(userid, gatewayHostname);
|
||||
|
||||
for (GCubeGroup gCubeGroup : groups) {
|
||||
logger.info("Found group filter per "+gatewayHostname+": "+gCubeGroup.toString());
|
||||
}
|
||||
|
||||
// root (so check into the root, the VOs and the VRES)
|
||||
if(groupManager.isRootVO(currentGroupId)){
|
||||
|
|
Loading…
Reference in New Issue