Skip to content
Snippets Groups Projects
Commit b8581e0e authored by piotr.kupczyk@id.ethz.ch's avatar piotr.kupczyk@id.ethz.ch Committed by vkovtun
Browse files

SSDM-13718 : Fix user rights for creation and update : make the change more...

SSDM-13718 : Fix user rights for creation and update : make the change more consistent with the existing capabilities
parent c7ff5618
No related branches found
No related tags found
1 merge request!40SSDM-13578 : 2PT : Database and V3 Implementation - include the new AFS "free"...
......@@ -98,7 +98,7 @@ public class UpdateSampleProjectExecutor extends AbstractUpdateEntityToOneRelati
relationshipService.unassignSampleFromProject(context.getSession(), entity);
} else
{
relationshipService.reassignSampleToProject(context.getSession(), entity, related);
relationshipService.assignSampleToProject(context.getSession(), entity, related);
}
}
......
......@@ -60,13 +60,6 @@ public interface IRelationshipService
@AuthorizationGuard(guardClass = SamplePEPredicate.class) SamplePE sample,
@AuthorizationGuard(guardClass = ProjectPEPredicate.class) ProjectPE project);
@Transactional(propagation = Propagation.MANDATORY)
@RolesAllowed(value = { RoleWithHierarchy.SPACE_ETL_SERVER, RoleWithHierarchy.PROJECT_POWER_USER })
@Capability("REASSIGN_SAMPLE_TO_PROJECT")
public void reassignSampleToProject(IAuthSession session,
@AuthorizationGuard(guardClass = SamplePEPredicate.class) SamplePE sample,
@AuthorizationGuard(guardClass = ProjectPEPredicate.class) ProjectPE project);
@Transactional(propagation = Propagation.MANDATORY)
@RolesAllowed(value = { RoleWithHierarchy.SPACE_ETL_SERVER, RoleWithHierarchy.SPACE_POWER_USER })
@Capability("ASSIGN_PROJECT_TO_SPACE")
......@@ -81,6 +74,12 @@ public interface IRelationshipService
@AuthorizationGuard(guardClass = SamplePEPredicate.class) SamplePE sample,
@AuthorizationGuard(guardClass = ExperimentPEPredicate.class) ExperimentPE experiment);
@Transactional(propagation = Propagation.MANDATORY)
@RolesAllowed(value = { RoleWithHierarchy.SPACE_ETL_SERVER, RoleWithHierarchy.PROJECT_POWER_USER })
@Capability("UNASSIGN_SAMPLE_FROM_PROJECT")
public void checkCanUnassignSampleFromProject(IAuthSession session,
@AuthorizationGuard(guardClass = SamplePEPredicate.class) SamplePE sample);
@Transactional(propagation = Propagation.MANDATORY)
@RolesAllowed(value = { RoleWithHierarchy.SPACE_ETL_SERVER, RoleWithHierarchy.PROJECT_POWER_USER })
@Capability("UNASSIGN_SAMPLE_FROM_EXPERIMENT")
......
......@@ -97,16 +97,17 @@ public class RelationshipService implements IRelationshipService, ApplicationCon
@Override
public void assignSampleToProject(IAuthSession session, SamplePE sample, ProjectPE project)
{
reassignSampleToProject(session, sample, project);
}
@Override public void reassignSampleToProject(final IAuthSession session, final SamplePE sample, final ProjectPE project)
{
if (SamplePE.projectSamplesEnabled)
{
Date timeStamp = getTransactionTimeStamp();
ProjectPE previousProject = sample.getProject();
if (previousProject != null && !previousProject.equals(project))
{
service.checkCanUnassignSampleFromProject(session, sample);
}
RelationshipUtils.updateModificationDateAndModifier(previousProject, session, timeStamp);
sample.setProject(project);
RelationshipUtils.updateModificationDateAndModifier(project, session, timeStamp);
......@@ -157,6 +158,12 @@ public class RelationshipService implements IRelationshipService, ApplicationCon
session, timeStamp);
}
@Override
public void checkCanUnassignSampleFromProject(IAuthSession session, SamplePE sample)
{
// all the logic is done by the authorization mechanism
}
@Override
public void checkCanUnassignSampleFromExperiment(IAuthSession session, SamplePE sample)
{
......
......@@ -879,7 +879,7 @@ abstract class AbstractBusinessObject implements IDAOFactory
{
if (project != null)
{
relationshipService.reassignSampleToProject(session, sample, project);
relationshipService.assignSampleToProject(session, sample, project);
} else
{
relationshipService.unassignSampleFromProject(session, sample);
......
......@@ -49,6 +49,10 @@ public class RelationshipServiceStub implements IRelationshipService
{
}
@Override public void checkCanUnassignSampleFromProject(final IAuthSession session, final SamplePE sample)
{
}
@Override
public void checkCanUnassignSampleFromExperiment(IAuthSession session, SamplePE sample)
{
......@@ -140,12 +144,6 @@ public class RelationshipServiceStub implements IRelationshipService
}
@Override
public void reassignSampleToProject(final IAuthSession session, final SamplePE sample, final ProjectPE project)
{
}
@Override
public void unassignSampleFromProject(IAuthSession session, SamplePE sample)
{
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment