Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 31 additions & 1 deletion specimen/src/org/labkey/specimen/SpecimenModule.java
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@
import org.labkey.api.query.QueryView;
import org.labkey.api.query.UserSchema;
import org.labkey.api.security.User;
import org.labkey.api.security.permissions.Permission;
import org.labkey.api.security.roles.RoleManager;
import org.labkey.api.specimen.SpecimenMigrationService;
import org.labkey.api.specimen.SpecimenQuerySchema;
Expand All @@ -52,10 +53,16 @@
import org.labkey.api.study.Study;
import org.labkey.api.study.StudyInternalService;
import org.labkey.api.study.StudyService;
import org.labkey.api.study.StudyUrls;
import org.labkey.api.study.importer.SimpleStudyImportContext;
import org.labkey.api.study.importer.SimpleStudyImporterRegistry;
import org.labkey.api.study.writer.SimpleStudyWriterRegistry;
import org.labkey.api.usageMetrics.UsageMetricsService;
import org.labkey.api.util.HtmlString;
import org.labkey.api.util.HtmlStringBuilder;
import org.labkey.api.util.LinkBuilder;
import org.labkey.api.util.PageFlowUtil;
import org.labkey.api.util.SafeToRender;
import org.labkey.api.util.SystemMaintenance;
import org.labkey.api.util.emailTemplate.EmailTemplateService;
import org.labkey.api.util.logging.LogHelper;
Expand All @@ -74,12 +81,14 @@
import org.labkey.specimen.importer.SpecimenSettingsImporter;
import org.labkey.specimen.model.SpecimenRequestEventType;
import org.labkey.specimen.pipeline.SpecimenPipeline;
import org.labkey.specimen.requirements.SpecimenRequestRequirementProvider;
import org.labkey.specimen.query.SpecimenPivotByDerivativeType;
import org.labkey.specimen.query.SpecimenPivotByPrimaryType;
import org.labkey.specimen.query.SpecimenPivotByRequestingLocation;
import org.labkey.specimen.query.SpecimenQueryView;
import org.labkey.specimen.query.SpecimenUpdateService;
import org.labkey.specimen.requirements.SpecimenRequestRequirementProvider;
import org.labkey.specimen.security.permissions.EditSpecimenDataPermission;
import org.labkey.specimen.security.permissions.ManageRequestSettingsPermission;
import org.labkey.specimen.security.roles.SpecimenCoordinatorRole;
import org.labkey.specimen.security.roles.SpecimenRequesterRole;
import org.labkey.specimen.settings.RepositorySettings;
Expand Down Expand Up @@ -234,6 +243,27 @@ public void addSpecimenPivotTableNames(Set<String> names)
}
return null;
}

@Override
public @Nullable SafeToRender getSpecimenSettingsLink(Container c, User user)
{
// Must have ManageRequestSettingsPermission and requests enabled (otherwise non-admin will see a blank Manage Study page)
if (c.hasPermission(user, ManageRequestSettingsPermission.class) && isEnableRequests(c))
{
return LinkBuilder.labkeyLink(
"Manage Specimen Request Settings",
PageFlowUtil.urlProvider(StudyUrls.class).getManageStudyURL(c)
);
}

return null;
}

@Override
public @NotNull Class<? extends Permission> getEditSpecimenDataPermission()
{
return EditSpecimenDataPermission.class;
}
});

SystemMaintenance.addTask(new QueryBasedSpecimenImportUploadTask());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,6 @@
import org.labkey.api.specimen.importer.RollupInstance;
import org.labkey.api.specimen.importer.VialSpecimenRollup;
import org.labkey.api.specimen.model.SpecimenTablesProvider;
import org.labkey.api.specimen.security.permissions.RequestSpecimensPermission;
import org.labkey.api.study.QueryHelper;
import org.labkey.api.study.QueryHelper.StudyCacheCollections;
import org.labkey.api.study.SpecimenUrls;
Expand All @@ -74,6 +73,7 @@
import org.labkey.specimen.requirements.SpecimenRequestRequirement;
import org.labkey.specimen.requirements.SpecimenRequestRequirementProvider;
import org.labkey.specimen.security.permissions.ManageRequestsPermission;
import org.labkey.specimen.security.permissions.RequestSpecimensPermission;
import org.labkey.specimen.settings.SettingsManager;

import java.io.IOException;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,6 @@
import org.labkey.api.specimen.Vial;
import org.labkey.api.specimen.location.LocationImpl;
import org.labkey.api.specimen.location.LocationManager;
import org.labkey.specimen.model.SpecimenTypeSummary;
import org.labkey.api.specimen.security.permissions.RequestSpecimensPermission;
import org.labkey.api.study.StudyUtils;
import org.labkey.api.util.PageFlowUtil;
import org.labkey.api.view.NotFoundException;
Expand All @@ -48,8 +46,10 @@
import org.labkey.specimen.model.AdditiveType;
import org.labkey.specimen.model.DerivativeType;
import org.labkey.specimen.model.PrimaryType;
import org.labkey.specimen.model.SpecimenTypeSummary;
import org.labkey.specimen.requirements.SpecimenRequest;
import org.labkey.specimen.security.permissions.ManageRequestsPermission;
import org.labkey.specimen.security.permissions.RequestSpecimensPermission;
import org.labkey.specimen.settings.RepositorySettings;
import org.labkey.specimen.settings.SettingsManager;
import org.springframework.validation.BindException;
Expand Down
11 changes: 5 additions & 6 deletions specimen/src/org/labkey/specimen/actions/SpecimenController.java
Original file line number Diff line number Diff line change
Expand Up @@ -107,17 +107,13 @@
import org.labkey.api.security.permissions.AdminPermission;
import org.labkey.api.security.permissions.ReadPermission;
import org.labkey.api.security.permissions.UpdatePermission;
import org.labkey.api.security.roles.ReaderRole;
import org.labkey.api.specimen.SpecimenQuerySchema;
import org.labkey.api.specimen.SpecimenSchema;
import org.labkey.api.specimen.Vial;
import org.labkey.api.specimen.location.LocationImpl;
import org.labkey.api.specimen.location.LocationManager;
import org.labkey.api.specimen.model.SpecimenComment;
import org.labkey.api.specimen.model.SpecimenTablesProvider;
import org.labkey.api.specimen.security.permissions.EditSpecimenDataPermission;
import org.labkey.api.specimen.security.permissions.ManageRequestSettingsPermission;
import org.labkey.api.specimen.security.permissions.RequestSpecimensPermission;
import org.labkey.api.study.CohortFilter;
import org.labkey.api.study.Dataset;
import org.labkey.api.study.MapArrayExcelWriter;
Expand Down Expand Up @@ -171,11 +167,10 @@
import org.labkey.specimen.RequestEventType;
import org.labkey.specimen.RequestedSpecimens;
import org.labkey.specimen.SpecimenManager;
import org.labkey.specimen.SpecimenRequestException;
import org.labkey.specimen.SpecimenModule;
import org.labkey.specimen.SpecimenRequestException;
import org.labkey.specimen.SpecimenRequestManager;
import org.labkey.specimen.SpecimenRequestStatus;
import org.labkey.specimen.security.roles.SpecimenRequesterRole;
import org.labkey.specimen.importer.QueryBasedSpecimenTransform;
import org.labkey.specimen.importer.RequestabilityManager;
import org.labkey.specimen.importer.SimpleSpecimenImporter;
Expand All @@ -194,14 +189,18 @@
import org.labkey.specimen.requirements.SpecimenRequestRequirement;
import org.labkey.specimen.requirements.SpecimenRequestRequirementProvider;
import org.labkey.specimen.requirements.SpecimenRequestRequirementType;
import org.labkey.specimen.security.permissions.EditSpecimenDataPermission;
import org.labkey.specimen.security.permissions.ManageDisplaySettingsPermission;
import org.labkey.specimen.security.permissions.ManageNewRequestFormPermission;
import org.labkey.specimen.security.permissions.ManageNotificationsPermission;
import org.labkey.specimen.security.permissions.ManageRequestRequirementsPermission;
import org.labkey.specimen.security.permissions.ManageRequestSettingsPermission;
import org.labkey.specimen.security.permissions.ManageRequestStatusesPermission;
import org.labkey.specimen.security.permissions.ManageRequestsPermission;
import org.labkey.specimen.security.permissions.ManageSpecimenActorsPermission;
import org.labkey.specimen.security.permissions.RequestSpecimensPermission;
import org.labkey.specimen.security.permissions.SetSpecimenCommentsPermission;
import org.labkey.specimen.security.roles.SpecimenRequesterRole;
import org.labkey.specimen.settings.DisplaySettings;
import org.labkey.specimen.settings.RepositorySettings;
import org.labkey.specimen.settings.RequestNotificationSettings;
Expand Down
4 changes: 2 additions & 2 deletions specimen/src/org/labkey/specimen/query/SpecimenQueryView.java
Original file line number Diff line number Diff line change
Expand Up @@ -50,8 +50,6 @@
import org.labkey.api.specimen.SpecimenSchema;
import org.labkey.api.specimen.Vial;
import org.labkey.api.specimen.model.SpecimenTablesProvider;
import org.labkey.api.specimen.security.permissions.EditSpecimenDataPermission;
import org.labkey.api.specimen.security.permissions.RequestSpecimensPermission;
import org.labkey.api.study.CohortFilter;
import org.labkey.api.study.Study;
import org.labkey.api.study.StudyService;
Expand All @@ -66,6 +64,8 @@
import org.labkey.api.view.ViewContext;
import org.labkey.api.writer.HtmlWriter;
import org.labkey.specimen.actions.SpecimenController;
import org.labkey.specimen.security.permissions.EditSpecimenDataPermission;
import org.labkey.specimen.security.permissions.RequestSpecimensPermission;
import org.labkey.specimen.settings.DisplaySettings;
import org.labkey.specimen.settings.RepositorySettings;
import org.labkey.specimen.settings.SettingsManager;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,6 @@
import org.labkey.api.query.UserSchema;
import org.labkey.api.security.User;
import org.labkey.api.specimen.SpecimenQuerySchema;
import org.labkey.api.specimen.security.permissions.RequestSpecimensPermission;
import org.labkey.api.study.Study;
import org.labkey.api.study.StudyService;
import org.labkey.api.study.StudyUtils;
Expand All @@ -44,6 +43,7 @@
import org.labkey.specimen.actions.SpecimenController.ManageRequestAction;
import org.labkey.specimen.actions.SpecimenController.SubmitRequestAction;
import org.labkey.specimen.security.permissions.ManageRequestsPermission;
import org.labkey.specimen.security.permissions.RequestSpecimensPermission;
import org.labkey.specimen.settings.SettingsManager;

import java.util.Set;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,20 +13,19 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.labkey.api.specimen.security.permissions;

package org.labkey.specimen.security.permissions;

import org.labkey.api.security.permissions.AbstractPermission;
import org.labkey.specimen.SpecimenModule;

/**
* User: davebradlee
* Date: 6/10/13
* Time: 2:53 PM
*/
public class EditSpecimenDataPermission extends AbstractPermission
{
public EditSpecimenDataPermission()
{
super("Edit Specimen Data", "Allows editing of specimen data");
super(
"Edit Specimen Data",
"Allows editing of specimen data",
SpecimenModule.class
);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -13,22 +13,19 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.labkey.api.specimen.security.permissions;
package org.labkey.specimen.security.permissions;

import org.labkey.api.security.permissions.AbstractPermission;
import org.labkey.api.study.StudyService;
import org.labkey.specimen.SpecimenModule;

/*
* User: Dave
* Date: May 18, 2009
* Time: 12:01:15 PM
*/
public class ManageRequestSettingsPermission extends AbstractPermission
{
public ManageRequestSettingsPermission()
{
super("Manage Specimen Request and Tracking Settings",
"Allows management of specimen request and tracking settings",
StudyService.get().getStudyModuleClass()); // TODO: Switch to SpecimenModule.class
super(
"Manage Specimen Request and Tracking Settings",
"Allows management of specimen request and tracking settings",
SpecimenModule.class
);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -13,22 +13,19 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.labkey.api.specimen.security.permissions;
package org.labkey.specimen.security.permissions;

import org.labkey.api.security.permissions.AbstractPermission;
import org.labkey.api.study.StudyService;
import org.labkey.specimen.SpecimenModule;

/*
* User: Dave
* Date: May 18, 2009
* Time: 11:43:40 AM
*/
public class RequestSpecimensPermission extends AbstractPermission
{
public RequestSpecimensPermission()
{
super("Request Specimens",
"Allows request of specimens",
StudyService.get().getStudyModuleClass()); // TODO: Switch to SpecimenModule.class
super(
"Request Specimens",
"Allows request of specimens",
SpecimenModule.class
);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -17,18 +17,18 @@

import org.jetbrains.annotations.NotNull;
import org.labkey.api.security.permissions.EditSharedViewPermission;
import org.labkey.api.specimen.security.permissions.EditSpecimenDataPermission;
import org.labkey.api.specimen.security.permissions.ManageRequestSettingsPermission;
import org.labkey.api.specimen.security.permissions.RequestSpecimensPermission;
import org.labkey.api.study.security.permissions.ManageStudyPermission;
import org.labkey.specimen.security.permissions.EditSpecimenDataPermission;
import org.labkey.specimen.security.permissions.LockSpecimensPermission;
import org.labkey.specimen.security.permissions.ManageDisplaySettingsPermission;
import org.labkey.specimen.security.permissions.ManageNewRequestFormPermission;
import org.labkey.specimen.security.permissions.ManageNotificationsPermission;
import org.labkey.specimen.security.permissions.ManageRequestRequirementsPermission;
import org.labkey.specimen.security.permissions.ManageRequestSettingsPermission;
import org.labkey.specimen.security.permissions.ManageRequestStatusesPermission;
import org.labkey.specimen.security.permissions.ManageRequestsPermission;
import org.labkey.specimen.security.permissions.ManageSpecimenActorsPermission;
import org.labkey.specimen.security.permissions.RequestSpecimensPermission;
import org.labkey.specimen.security.permissions.SetSpecimenCommentsPermission;

import java.util.Collection;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
package org.labkey.specimen.security.roles;

import org.jetbrains.annotations.NotNull;
import org.labkey.api.specimen.security.permissions.RequestSpecimensPermission;
import org.labkey.specimen.security.permissions.RequestSpecimensPermission;

import java.util.Collection;
import java.util.Set;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@
*/
package org.labkey.specimen.view;

import org.labkey.api.specimen.security.permissions.RequestSpecimensPermission;
import org.labkey.api.study.StudyUrls;
import org.labkey.api.study.security.permissions.ManageStudyPermission;
import org.labkey.api.study.view.StudyToolsWebPart;
Expand All @@ -27,6 +26,7 @@
import org.labkey.specimen.actions.ShowSearchAction;
import org.labkey.specimen.actions.SpecimenController.AutoReportListAction;
import org.labkey.specimen.actions.SpecimenController.ShowCreateSpecimenRequestAction;
import org.labkey.specimen.security.permissions.RequestSpecimensPermission;
import org.labkey.specimen.settings.SettingsManager;

import java.util.ArrayList;
Expand Down
4 changes: 2 additions & 2 deletions specimen/src/org/labkey/specimen/view/manageSpecimens.jsp
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,12 @@
* limitations under the License.
*/
%>
<%@ page import="com.google.common.collect.Iterables"%>
<%@ page import="com.google.common.collect.Iterables" %>
<%@ page import="org.labkey.api.data.Container" %>
<%@ page import="org.labkey.api.exp.property.Domain" %>
<%@ page import="org.labkey.api.security.User" %>
<%@ page import="org.labkey.api.security.permissions.AdminPermission" %>
<%@ page import="org.labkey.api.specimen.model.SpecimenTablesProvider" %>
<%@ page import="org.labkey.api.specimen.security.permissions.ManageRequestSettingsPermission" %>
<%@ page import="org.labkey.api.study.SpecimenService" %>
<%@ page import="org.labkey.api.study.SpecimenTransform" %>
<%@ page import="org.labkey.api.study.Study" %>
Expand All @@ -41,6 +40,7 @@
<%@ page import="org.labkey.specimen.actions.SpecimenController.ManageSpecimenWebPartAction" %>
<%@ page import="org.labkey.specimen.actions.SpecimenController.ManageStatusesAction" %>
<%@ page import="org.labkey.specimen.requirements.SpecimenRequestRequirementProvider" %>
<%@ page import="org.labkey.specimen.security.permissions.ManageRequestSettingsPermission" %>
<%@ page import="org.labkey.specimen.settings.SettingsManager" %>
<%@ page import="java.util.Collection" %>
<%@ page extends="org.labkey.api.jsp.JspBase" %>
Expand Down
8 changes: 4 additions & 4 deletions specimen/src/org/labkey/specimen/view/webPart.jsp
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,9 @@
* limitations under the License.
*/
%>
<%@ page import="org.labkey.api.data.Container"%>
<%@ page import="org.labkey.api.security.User"%>
<%@ page import="org.labkey.api.security.permissions.AdminPermission"%>
<%@ page import="org.labkey.api.specimen.security.permissions.RequestSpecimensPermission"%>
<%@ page import="org.labkey.api.data.Container" %>
<%@ page import="org.labkey.api.security.User" %>
<%@ page import="org.labkey.api.security.permissions.AdminPermission" %>
<%@ page import="org.labkey.api.study.StudyUrls" %>
<%@ page import="org.labkey.api.util.HtmlString" %>
<%@ page import="org.labkey.api.view.ActionURL" %>
Expand All @@ -29,6 +28,7 @@
<%@ page import="org.labkey.specimen.actions.SpecimenController.AutoReportListAction" %>
<%@ page import="org.labkey.specimen.actions.SpecimenController.ShowCreateSpecimenRequestAction" %>
<%@ page import="org.labkey.specimen.actions.SpecimenController.ViewRequestsAction" %>
<%@ page import="org.labkey.specimen.security.permissions.RequestSpecimensPermission" %>
<%@ page import="org.labkey.specimen.settings.SettingsManager" %>
<%@ page import="org.labkey.specimen.view.SpecimenWebPart" %>
<%@ page extends="org.labkey.api.jsp.JspBase" %>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
*/
package org.labkey.api.specimen;

import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.labkey.api.data.Container;
import org.labkey.api.data.ContainerFilter;
Expand All @@ -26,9 +27,11 @@
import org.labkey.api.query.QueryView;
import org.labkey.api.query.UserSchema;
import org.labkey.api.security.User;
import org.labkey.api.security.permissions.Permission;
import org.labkey.api.services.ServiceRegistry;
import org.labkey.api.study.Study;
import org.labkey.api.study.importer.SimpleStudyImportContext;
import org.labkey.api.util.SafeToRender;
import org.labkey.api.view.ActionURL;
import org.labkey.api.view.ViewContext;
import org.labkey.vfs.FileLike;
Expand Down Expand Up @@ -74,4 +77,8 @@ void importSpecimenArchive(@Nullable FileLike inputFile, PipelineJob job, Simple
* Returns a specimen pivot TableInfo, if that's what was requested
*/
@Nullable TableInfo getSpecimenPivotTable(UserSchema schema, String name, Study study, ContainerFilter cf);

@Nullable SafeToRender getSpecimenSettingsLink(Container c, User user);

@NotNull Class<? extends Permission> getEditSpecimenDataPermission();
}
Loading