diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/renderer/LinkRenderer.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/renderer/LinkRenderer.java new file mode 100644 index 0000000000000000000000000000000000000000..0c675fd2ddeebe5249b6628d948c7df4fd629fcb --- /dev/null +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/renderer/LinkRenderer.java @@ -0,0 +1,38 @@ +/* + * Copyright 2009 ETH Zuerich, CISD + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package ch.systemsx.cisd.openbis.generic.client.web.client.application.renderer; + +import com.google.gwt.user.client.DOM; +import com.google.gwt.user.client.Element; + +/** + * + * + * @author Franz-Josef Elmer + */ +public class LinkRenderer +{ + + public static String renderAsLink(final String message) + { + final Element div = DOM.createDiv(); + div.setInnerText(message); + div.setClassName("link-style"); + return DOM.toString(div); + } + +} diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/columns/framework/AbstractColumnDefinitionKind.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/columns/framework/AbstractColumnDefinitionKind.java index b29e54a1dc3849809f861ffdd6bcb0fdaa3ea38e..364fef2e840d707328a628c98f8b03f3bd3f31aa 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/columns/framework/AbstractColumnDefinitionKind.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/columns/framework/AbstractColumnDefinitionKind.java @@ -16,6 +16,7 @@ package ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.columns.framework; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.renderer.LinkRenderer; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.columns.framework.renderers.SimpleDateRenderer; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.columns.framework.renderers.SimplePersonRenderer; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.columns.framework.renderers.SimpleYesNoRenderer; @@ -89,6 +90,11 @@ public abstract class AbstractColumnDefinitionKind<T> { return headerMsgKey; } + + protected String renderLink(String cellContent) + { + return LinkRenderer.renderAsLink(cellContent); + } protected String renderRegistrationDate(final AbstractRegistrationHolder entity) { diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/columns/specific/data/CommonExternalDataColDefKind.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/columns/specific/data/CommonExternalDataColDefKind.java index c6cbf8fc3e31cbcad20a35481dd57c02d5fb6976..78c361d3b9a73ba5d777b1a9b1e0a79927df64ee 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/columns/specific/data/CommonExternalDataColDefKind.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/columns/specific/data/CommonExternalDataColDefKind.java @@ -33,7 +33,7 @@ public enum CommonExternalDataColDefKind implements IColumnDefinitionKind<Extern @Override public String tryGetValue(ExternalData entity) { - return entity.getCode(); + return renderLink(entity.getCode()); } }), diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/dto/ExternalData.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/dto/ExternalData.java index 0c9a82770c9670e3c2ab40a9bf1bb12b7ca87a80..cfd3cc2b79d82443c88db9a07aa51f88e3935530 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/dto/ExternalData.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/dto/ExternalData.java @@ -32,6 +32,8 @@ import ch.systemsx.cisd.openbis.generic.shared.dto.ExternalDataPE; public class ExternalData extends CodeWithRegistration<ExternalData> implements IInvalidationProvider { + private String dataStoreBaseURL; + private ProcedureType procedureType; private boolean derived; @@ -223,4 +225,14 @@ public class ExternalData extends CodeWithRegistration<ExternalData> implements { this.sampleProperties = sampleProperties; } + + public final String getDataStoreBaseURL() + { + return dataStoreBaseURL; + } + + public final void setDataStoreBaseURL(String dataStoreBaseURL) + { + this.dataStoreBaseURL = dataStoreBaseURL; + } } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/CommonClientService.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/CommonClientService.java index 58c327fc7b0a3e3e4600b67d31a0cd6f302bbbed..5510b28bb65a14307adc4ea233e0c251f802eaeb 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/CommonClientService.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/CommonClientService.java @@ -108,12 +108,14 @@ public final class CommonClientService extends AbstractClientService implements ICommonClientService { private final ICommonServer commonServer; + private final String dataStoreBaseURL; public CommonClientService(final ICommonServer commonServer, - final IRequestContextProvider requestContextProvider) + final IRequestContextProvider requestContextProvider, String dataStoreBaseURL) { super(requestContextProvider); this.commonServer = commonServer; + this.dataStoreBaseURL = dataStoreBaseURL; } @Override @@ -631,7 +633,7 @@ public final class CommonClientService extends AbstractClientService implements final SampleIdentifier identifier = SampleIdentifierFactory.parse(sampleIdentifier); final List<ExternalDataPE> externalData = commonServer.listExternalData(sessionToken, identifier); - return ExternalDataTranslator.translate(externalData); + return ExternalDataTranslator.translate(externalData, dataStoreBaseURL); } catch (final ch.systemsx.cisd.common.exceptions.UserFailureException e) { throw UserFailureExceptionTranslator.translate(e); @@ -648,7 +650,7 @@ public final class CommonClientService extends AbstractClientService implements new ExperimentIdentifierFactory(experimentIdentifier).createIdentifier(); final List<ExternalDataPE> externalData = commonServer.listExternalData(sessionToken, identifier); - return ExternalDataTranslator.translate(externalData); + return ExternalDataTranslator.translate(externalData, dataStoreBaseURL); } catch (final ch.systemsx.cisd.common.exceptions.UserFailureException e) { throw UserFailureExceptionTranslator.translate(e); diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/translator/ExternalDataTranslator.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/translator/ExternalDataTranslator.java index 24ae9de569e95d6c79d5aa7914b38c52afcd5884..c9e697a4aeba2aebd2e44de72c1450a6588acd77 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/translator/ExternalDataTranslator.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/translator/ExternalDataTranslator.java @@ -49,12 +49,14 @@ public class ExternalDataTranslator { } - public static List<ExternalData> translate(List<ExternalDataPE> list) + public static List<ExternalData> translate(List<ExternalDataPE> list, String dataStoreBaseURL) { ArrayList<ExternalData> result = new ArrayList<ExternalData>(list.size()); for (ExternalDataPE externalDataPE : list) { - result.add(translate(externalDataPE)); + ExternalData data = translate(externalDataPE); + data.setDataStoreBaseURL(dataStoreBaseURL); + result.add(data); } return result; } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/AbstractServer.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/AbstractServer.java index 23a6dc572858aa6b13b3ced9a56f198ab7401008..aa11fb40ad50f3356f673e0333f030f84499015b 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/AbstractServer.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/AbstractServer.java @@ -96,10 +96,10 @@ public abstract class AbstractServer<T extends IServer> implements IServer, final PersonPE person) { final RoleAssignmentPE roleAssignmentPE = new RoleAssignmentPE(); - roleAssignmentPE.setPerson(person); roleAssignmentPE.setDatabaseInstance(daoFactory.getHomeDatabaseInstance()); roleAssignmentPE.setRegistrator(registrator); roleAssignmentPE.setRole(RoleCode.ADMIN); + person.addRoleAssignment(roleAssignmentPE); return roleAssignmentPE; } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/RoleAssignmentTable.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/RoleAssignmentTable.java index 077d2eb5042651e07e92e5ce063299011562da1e..202411559fd29660a0a29d89c167f9d7b6548bdb 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/RoleAssignmentTable.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/RoleAssignmentTable.java @@ -103,7 +103,7 @@ public final class RoleAssignmentTable extends AbstractBusinessObject implements } roleAssignment.setRegistrator(findRegistrator()); roleAssignment.setRole(newRoleAssignment.getRole()); - roleAssignment.setPerson(getPerson(newRoleAssignment.getUserId())); + getPerson(newRoleAssignment.getUserId()).addRoleAssignment(roleAssignment); roleAssignments.add(roleAssignment); } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/IETLLIMSService.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/IETLLIMSService.java index 89e780edbf38de7b659ce01d7db91c18f053bdee..d790e96b026794618af1e6eda6d9a5e51dd5c812 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/IETLLIMSService.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/IETLLIMSService.java @@ -97,7 +97,7 @@ public interface IETLLIMSService extends IWebService, IDataStoreInfoProvider, IS * Tries to return the data set specified by its code. */ @Transactional - @RolesAllowed(RoleSet.ETL_SERVER) + @RolesAllowed(RoleSet.OBSERVER) public ExternalDataPE tryGetDataSet(String sessionToken, String dataSetCode) throws UserFailureException; diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/PersonPE.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/PersonPE.java index 3a984a8bc0a943017a4720308cc5ba1de2cc5784..2c8a1823b3cdf2807a5db917193a11afeae14abb 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/PersonPE.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/PersonPE.java @@ -45,6 +45,7 @@ import org.hibernate.validator.Email; import org.hibernate.validator.Length; import org.hibernate.validator.NotNull; +import ch.rinn.restrictions.Friend; import ch.systemsx.cisd.common.collections.UnmodifiableSetDecorator; import ch.systemsx.cisd.common.utilities.ModifiedShortPrefixToStringStyle; import ch.systemsx.cisd.openbis.generic.shared.GenericSharedConstants; @@ -59,6 +60,7 @@ import ch.systemsx.cisd.openbis.generic.shared.dto.hibernate.SearchFieldConstant @Table(name = TableNames.PERSONS_TABLE, uniqueConstraints = { @UniqueConstraint(columnNames = { ColumnNames.USER_COLUMN, ColumnNames.DATABASE_INSTANCE_COLUMN }) }) +@Friend(toClasses=RoleAssignmentPE.class) public final class PersonPE extends HibernateAbstractRegistrationHolder implements Comparable<PersonPE>, IIdHolder, Serializable { diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/ProcedurePE.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/ProcedurePE.java index da59d99f3261f5cde0457abf3ec312dcad6958ca..7f3a98ab55ee6b3ec46b01f41f85943e85b227d4 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/ProcedurePE.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/ProcedurePE.java @@ -121,7 +121,10 @@ public class ProcedurePE implements IIdHolder, Serializable public void setExperiment(final ExperimentPE experiment) { - experiment.addProcedure(this); + if (experiment != null) + { + experiment.addProcedure(this); + } } @Transient diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/RoleAssignmentPE.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/RoleAssignmentPE.java index 45d1e04b1037bed0c954b48556441e7aea3d7d4f..cc82138e19f631fc98b7bc727d1a7e9efd099b61 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/RoleAssignmentPE.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/RoleAssignmentPE.java @@ -39,6 +39,7 @@ import org.apache.commons.lang.builder.ToStringBuilder; import org.hibernate.annotations.Check; import org.hibernate.validator.NotNull; +import ch.rinn.restrictions.Private; import ch.systemsx.cisd.common.utilities.ModifiedShortPrefixToStringStyle; import ch.systemsx.cisd.openbis.generic.shared.GenericSharedConstants; import ch.systemsx.cisd.openbis.generic.shared.util.EqualsHashUtils; @@ -89,21 +90,18 @@ public final class RoleAssignmentPE extends HibernateAbstractRegistrationHolder @NotNull(message = ValidationMessages.PERSON_NOT_NULL_MESSAGE) @ManyToOne(fetch = FetchType.EAGER) @JoinColumn(name = ColumnNames.PERSON_GRANTEE_COLUMN, updatable = false) - private final PersonPE getPersonInternal() + @Private + public final PersonPE getPersonInternal() { return person; } - final void setPersonInternal(final PersonPE person) + @Private + public final void setPersonInternal(final PersonPE person) { this.person = person; } - public final void setPerson(final PersonPE person) - { - person.addRoleAssignment(this); - } - @Transient public final PersonPE getPerson() { diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/experiment/ExperimentAttachmentsSection.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/experiment/ExperimentAttachmentsSection.java index de6808fe4fa73c1b90a5a4cc56a7dd255c2fc48b..f54f640f993f72cf758b052b9c43bc4ef252b33f 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/experiment/ExperimentAttachmentsSection.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/experiment/ExperimentAttachmentsSection.java @@ -34,8 +34,6 @@ import com.extjs.gxt.ui.client.widget.grid.ColumnModel; import com.extjs.gxt.ui.client.widget.grid.Grid; import com.extjs.gxt.ui.client.widget.grid.GridCellRenderer; import com.extjs.gxt.ui.client.widget.layout.RowData; -import com.google.gwt.user.client.DOM; -import com.google.gwt.user.client.Element; import ch.systemsx.cisd.openbis.generic.client.web.client.application.Dict; import ch.systemsx.cisd.openbis.generic.client.web.client.application.GenericConstants; @@ -47,6 +45,7 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework. import ch.systemsx.cisd.openbis.generic.client.web.client.application.model.AttachmentModel; import ch.systemsx.cisd.openbis.generic.client.web.client.application.model.AttachmentVersionModel; import ch.systemsx.cisd.openbis.generic.client.web.client.application.model.ModelDataPropertyNames; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.renderer.LinkRenderer; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.ColumnConfigFactory; import ch.systemsx.cisd.openbis.generic.client.web.client.application.util.IMessageProvider; import ch.systemsx.cisd.openbis.generic.client.web.client.application.util.URLMethodWithParameters; @@ -273,7 +272,7 @@ public class ExperimentAttachmentsSection extends SectionPanel { return ""; } - return createLink((String) value); + return LinkRenderer.renderAsLink((String) value); } }); return column; @@ -297,7 +296,7 @@ public class ExperimentAttachmentsSection extends SectionPanel { return ""; } - return createLink((String) value); + return LinkRenderer.renderAsLink((String) value); } }); return column; @@ -332,18 +331,10 @@ public class ExperimentAttachmentsSection extends SectionPanel { final String message = messageProvider.getMessage(Dict.VERSIONS_TEMPLATE, versions.size()); - return createLink(message); + return LinkRenderer.renderAsLink(message); } } }); return column; } - - static private String createLink(final String message) - { - final Element div = DOM.createDiv(); - div.setInnerText(message); - div.setClassName("link-style"); - return DOM.toString(div); - } } \ No newline at end of file diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/sample/GenericSampleViewer.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/sample/GenericSampleViewer.java index 413d51cee2afabe8b35e7a2bfcfa7af7351b8e05..1f690b4aeaaeb9b7fdc0bbe5aa849af044c98b0b 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/sample/GenericSampleViewer.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/sample/GenericSampleViewer.java @@ -23,6 +23,7 @@ import java.util.LinkedHashMap; import java.util.List; import java.util.Map; +import com.extjs.gxt.ui.client.Events; import com.extjs.gxt.ui.client.Style.LayoutRegion; import com.extjs.gxt.ui.client.Style.Scroll; import com.extjs.gxt.ui.client.Style.SelectionMode; @@ -32,6 +33,8 @@ import com.extjs.gxt.ui.client.data.BaseListLoader; import com.extjs.gxt.ui.client.data.ListLoader; import com.extjs.gxt.ui.client.data.ModelData; import com.extjs.gxt.ui.client.data.RpcProxy; +import com.extjs.gxt.ui.client.event.GridEvent; +import com.extjs.gxt.ui.client.event.Listener; import com.extjs.gxt.ui.client.store.ListStore; import com.extjs.gxt.ui.client.util.Margins; import com.extjs.gxt.ui.client.widget.Component; @@ -50,8 +53,10 @@ import com.google.gwt.user.client.rpc.AsyncCallback; import ch.systemsx.cisd.openbis.generic.client.web.client.application.AbstractAsyncCallback; import ch.systemsx.cisd.openbis.generic.client.web.client.application.Dict; import ch.systemsx.cisd.openbis.generic.client.web.client.application.GenericConstants; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.GenericViewModel; import ch.systemsx.cisd.openbis.generic.client.web.client.application.IViewContext; import ch.systemsx.cisd.openbis.generic.client.web.client.application.model.ExternalDataModel; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.model.ModelDataPropertyNames; import ch.systemsx.cisd.openbis.generic.client.web.client.application.model.SampleModel; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.AbstractViewer; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.ColumnConfigFactory; @@ -59,6 +64,9 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.Propert import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.columns.specific.sample.CommonSampleColDefKind; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.property.PropertyGrid; import ch.systemsx.cisd.openbis.generic.client.web.client.application.util.IMessageProvider; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.util.URLMethodWithParameters; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.util.WindowUtils; +import ch.systemsx.cisd.openbis.generic.client.web.client.dto.ExternalData; import ch.systemsx.cisd.openbis.generic.client.web.client.dto.Invalidation; import ch.systemsx.cisd.openbis.generic.client.web.client.dto.ListSampleCriteria; import ch.systemsx.cisd.openbis.generic.client.web.client.dto.ResultSet; @@ -140,11 +148,34 @@ public final class GenericSampleViewer extends AbstractViewer<IGenericClientServ externalDataGrid.setId(getId() + DATA_POSTFIX); externalDataGrid.getSelectionModel().setSelectionMode(SelectionMode.SINGLE); externalDataGrid.setLoadMask(true); + externalDataGrid.addListener(Events.CellDoubleClick, new Listener<GridEvent>() + { + public void handleEvent(GridEvent be) + { + String column = externalDataGrid.getColumnModel().getColumn(be.colIndex).getId(); + if (ModelDataPropertyNames.CODE.equalsIgnoreCase(column)) + { + ExternalDataModel item = + (ExternalDataModel) be.grid.getStore().getAt(be.rowIndex); + ExternalData dataSet = item.getBaseObject(); + showDataSet(dataSet); + } + } + }); panel.add(externalDataGrid); container.add(panel, new RowData(1, 0.5, new Margins(0, 5, 0, 0))); return container; } + private void showDataSet(ExternalData dataSet) + { + URLMethodWithParameters methodWithParameters = + new URLMethodWithParameters(dataSet.getDataStoreBaseURL() + "/" + dataSet.getCode()); + GenericViewModel model = viewContext.getModel(); + methodWithParameters.addParameter("sessionID", model.getSessionContext().getSessionID()); + WindowUtils.openWindow(methodWithParameters.toString()); + } + private final static ContentPanel createContentPanel(final String heading) { final ContentPanel panel = new ContentPanel(); diff --git a/openbis/source/java/genericApplicationContext.xml b/openbis/source/java/genericApplicationContext.xml index c029a588122bc92f99280fc9631c760768be4958..1192dff3eddc327476915322b2a53ff72d9b5c82 100644 --- a/openbis/source/java/genericApplicationContext.xml +++ b/openbis/source/java/genericApplicationContext.xml @@ -80,6 +80,7 @@ <bean id="common-service" class="ch.systemsx.cisd.openbis.generic.client.web.server.CommonClientService"> <constructor-arg ref="common-server" /> <constructor-arg ref="request-context-provider" /> + <constructor-arg value="${data-store-server-base-url}"/> </bean> <!-- diff --git a/openbis/source/java/service.properties b/openbis/source/java/service.properties index 2d79426ddf954b21f64639f2c2e87fe590d6cbc1..bb75f2ee0da2c924cd8d88699046b83a4838919a 100644 --- a/openbis/source/java/service.properties +++ b/openbis/source/java/service.properties @@ -33,6 +33,9 @@ crowd.application.password = # The database instance local unique identifier. Used when the new database is created. database-instance = CISD +# Base URL of the Data Store Server +data-store-server-base-url = https://localhost:8889/dataset-download + # Hibernate Search # The working directory. hibernate.search.index-base = ./targets/indices diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/client/web/server/CommonClientServiceTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/client/web/server/CommonClientServiceTest.java index 5b3aed5ce879555c027d1e0a47c6636684f13c0c..cf3da53a5e6d4d452a39307d534a4c076be8c0f3 100644 --- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/client/web/server/CommonClientServiceTest.java +++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/client/web/server/CommonClientServiceTest.java @@ -59,6 +59,8 @@ import ch.systemsx.cisd.openbis.generic.shared.dto.properties.EntityDataType; */ public final class CommonClientServiceTest extends AbstractClientServiceTest { + private static final String DATA_STORE_BASE_URL = "basURL"; + private CommonClientService commonClientService; private ICommonServer commonServer; @@ -117,7 +119,7 @@ public final class CommonClientServiceTest extends AbstractClientServiceTest { super.setUp(); commonServer = context.mock(ICommonServer.class); - commonClientService = new CommonClientService(commonServer, requestContextProvider); + commonClientService = new CommonClientService(commonServer, requestContextProvider, DATA_STORE_BASE_URL); } @Test @@ -318,8 +320,10 @@ public final class CommonClientServiceTest extends AbstractClientServiceTest List<ExternalData> list = commonClientService.listExternalDataForExperiment("db:/group/project/exp"); assertEquals(1, list.size()); - assertEquals("PNG", list.get(0).getFileFormatType().getCode()); - assertEquals("Portable Network Graphics", list.get(0).getFileFormatType().getDescription()); + ExternalData data = list.get(0); + assertEquals(DATA_STORE_BASE_URL, data.getDataStoreBaseURL()); + assertEquals("PNG", data.getFileFormatType().getCode()); + assertEquals("Portable Network Graphics", data.getFileFormatType().getDescription()); context.assertIsSatisfied(); } diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/CommonServerTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/CommonServerTest.java index f264d1ab795dfee2a23f983aedb4ff4d73af4677..af622224a4455193066f05a4fd6647a4f25cc9ad 100644 --- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/CommonServerTest.java +++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/CommonServerTest.java @@ -127,10 +127,10 @@ public final class CommonServerTest extends AbstractServerTestCase final PersonPE systemPerson = createSystemUser(); final PersonPE person = CommonTestUtils.createPersonFromPrincipal(PRINCIPAL); final RoleAssignmentPE roleAssignment = new RoleAssignmentPE(); - roleAssignment.setPerson(person); roleAssignment.setDatabaseInstance(homeDatabaseInstance); roleAssignment.setRegistrator(systemPerson); roleAssignment.setRole(RoleCode.ADMIN); + person.addRoleAssignment(roleAssignment); context.checking(new Expectations() { { diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/IETLLIMSService.java.expected b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/IETLLIMSService.java.expected index 665db3b8de0cb14f8a07769c3233bc1a50fe7194..6ac586b95307f13658a7de5fefdee24b55ca2643 100644 --- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/IETLLIMSService.java.expected +++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/IETLLIMSService.java.expected @@ -58,7 +58,7 @@ public interface IETLLIMSService extends IWebService, IDataStoreInfoProvider, IS final ExternalData externalData) throws UserFailureException; @Transactional - @RolesAllowed(RoleSet.ETL_SERVER) + @RolesAllowed(RoleSet.OBSERVER) public ExternalDataPE tryGetDataSet(String sessionToken, String dataSetCode) throws UserFailureException; diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/authorization/AuthorizationTestCase.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/authorization/AuthorizationTestCase.java index 0e1c6e9ae1a66706f3d29ac098cb3154fb7dbb0a..848a9d70f46f17a08ade9486ec446bdb427d13e8 100644 --- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/authorization/AuthorizationTestCase.java +++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/authorization/AuthorizationTestCase.java @@ -206,14 +206,14 @@ public class AuthorizationTestCase extends AssertJUnit // Database assignment RoleAssignmentPE assignment = new RoleAssignmentPE(); assignment.setRole(RoleCode.ADMIN); - assignment.setPerson(person); assignment.setDatabaseInstance(createDatabaseInstance()); + person.addRoleAssignment(assignment); list.add(assignment); // Group assignment assignment = new RoleAssignmentPE(); assignment.setRole(RoleCode.USER); - assignment.setPerson(person); assignment.setGroup(createAnotherGroup()); + person.addRoleAssignment(assignment); list.add(assignment); person.setRoleAssignments(list); return person;