scinote-web/config/initializers/extends/permission_extends.rb

280 lines
8.9 KiB
Ruby

# frozen_string_literal: true
module PermissionExtends
module TeamPermissions
%w(
NONE
READ
MANAGE
USERS_MANAGE
PROJECTS_CREATE
INVENTORIES_CREATE
PROTOCOLS_CREATE
REPORTS_CREATE
LABEL_TEMPLATES_READ
LABEL_TEMPLATES_MANAGE
STORAGE_LOCATIONS_CREATE
STORAGE_LOCATIONS_MANAGE
STORAGE_LOCATIONS_READ
STORAGE_LOCATION_CONTAINERS_CREATE
STORAGE_LOCATION_CONTAINERS_MANAGE
STORAGE_LOCATION_CONTAINERS_READ
).each { |permission| const_set(permission, "team_#{permission.parameterize}") }
end
module ProtocolPermissions
%w(
NONE
READ
READ_ARCHIVED
MANAGE
USERS_MANAGE
MANAGE_DRAFT
).each { |permission| const_set(permission, "protocol_#{permission.parameterize}") }
end
module ReportPermissions
%w(
NONE
READ
MANAGE
USERS_MANAGE
).each { |permission| const_set(permission, "report_#{permission.parameterize}") }
end
module ProjectPermissions
%w(
NONE
READ
READ_ARCHIVED
MANAGE
ACTIVITIES_READ
USERS_READ
USERS_MANAGE
COMMENTS_READ
COMMENTS_CREATE
COMMENTS_MANAGE
COMMENTS_MANAGE_OWN
TAGS_MANAGE
EXPERIMENTS_CREATE
).each { |permission| const_set(permission, "project_#{permission.parameterize}") }
end
module ExperimentPermissions
%w(
NONE
READ
READ_ARCHIVED
MANAGE
TASKS_CREATE
USERS_READ
USERS_MANAGE
READ_CANVAS
ACTIVITIES_READ
).each { |permission| const_set(permission, "experiment_#{permission.parameterize}") }
end
module MyModulePermissions
%w(
NONE
READ
READ_ARCHIVED
ACTIVITIES_READ
MANAGE
SHARE
UPDATE_START_DATE
UPDATE_DUE_DATE
UPDATE_DESCRIPTION
STEPS_MANAGE
UPDATE_STATUS
COMMENTS_CREATE
COMMENTS_MANAGE
COMMENTS_MANAGE_OWN
RESULTS_MANAGE
RESULTS_DELETE_ARCHIVED
RESULTS_COMMENTS_MANAGE
RESULTS_COMMENTS_MANAGE_OWN
RESULTS_COMMENTS_CREATE
TAGS_MANAGE
PROTOCOL_MANAGE
COMPLETE
STEPS_COMPLETE
STEPS_UNCOMPLETE
STEPS_CHECKLIST_CHECK
STEPS_CHECKLIST_UNCHECK
STEPS_COMMENTS_CREATE
STEPS_COMMENTS_DELETE
STEPS_COMMENTS_DELETE_OWN
STEPS_COMMENTS_UPDATE
STEPS_COMMENTS_UPDATE_OWN
REPOSITORY_ROWS_ASSIGN
REPOSITORY_ROWS_MANAGE
USERS_READ
USERS_MANAGE
DESIGNATED_USERS_MANAGE
STOCK_CONSUMPTION_UPDATE
).each { |permission| const_set(permission, "task_#{permission.parameterize}") }
end
module RepositoryPermissions
%w(
NONE
READ
READ_ARCHIVED
MANAGE
RESTORE
DELETE
SHARE
ROWS_CREATE
ROWS_UPDATE
ROWS_DELETE
COLUMNS_CREATE
COLUMNS_UPDATE
COLUMNS_DELETE
USERS_MANAGE
FILTERS_MANAGE
).each { |permission| const_set(permission, "inventory_#{permission.parameterize}") }
end
module PredefinedRoles
OWNER_PERMISSIONS = (
TeamPermissions.constants.map { |const| TeamPermissions.const_get(const) } +
ProtocolPermissions.constants.map { |const| ProtocolPermissions.const_get(const) } +
ReportPermissions.constants.map { |const| ReportPermissions.const_get(const) } +
ProjectPermissions.constants.map { |const| ProjectPermissions.const_get(const) } +
ExperimentPermissions.constants.map { |const| ExperimentPermissions.const_get(const) } +
MyModulePermissions.constants.map { |const| MyModulePermissions.const_get(const) } +
RepositoryPermissions.constants.map { |const| RepositoryPermissions.const_get(const) }
).reject { |p| p.end_with?("_none") }
NORMAL_USER_PERMISSIONS = [
TeamPermissions::PROJECTS_CREATE,
TeamPermissions::PROTOCOLS_CREATE,
TeamPermissions::REPORTS_CREATE,
TeamPermissions::LABEL_TEMPLATES_READ,
TeamPermissions::LABEL_TEMPLATES_MANAGE,
TeamPermissions::STORAGE_LOCATIONS_READ,
TeamPermissions::STORAGE_LOCATIONS_CREATE,
TeamPermissions::STORAGE_LOCATIONS_MANAGE,
TeamPermissions::STORAGE_LOCATION_CONTAINERS_READ,
TeamPermissions::STORAGE_LOCATION_CONTAINERS_CREATE,
TeamPermissions::STORAGE_LOCATION_CONTAINERS_MANAGE,
ProtocolPermissions::READ,
ProtocolPermissions::READ_ARCHIVED,
ProtocolPermissions::MANAGE_DRAFT,
ReportPermissions::READ,
ReportPermissions::MANAGE,
ProjectPermissions::READ,
ProjectPermissions::READ_ARCHIVED,
ProjectPermissions::ACTIVITIES_READ,
ProjectPermissions::USERS_READ,
ProjectPermissions::COMMENTS_READ,
ProjectPermissions::COMMENTS_CREATE,
ProjectPermissions::COMMENTS_MANAGE_OWN,
ProjectPermissions::EXPERIMENTS_CREATE,
ProjectPermissions::TAGS_MANAGE,
ExperimentPermissions::READ,
ExperimentPermissions::READ_CANVAS,
ExperimentPermissions::MANAGE,
ExperimentPermissions::TASKS_CREATE,
ExperimentPermissions::USERS_READ,
MyModulePermissions::READ,
MyModulePermissions::READ_ARCHIVED,
MyModulePermissions::ACTIVITIES_READ,
MyModulePermissions::MANAGE,
MyModulePermissions::SHARE,
MyModulePermissions::UPDATE_START_DATE,
MyModulePermissions::UPDATE_DUE_DATE,
MyModulePermissions::UPDATE_DESCRIPTION,
MyModulePermissions::RESULTS_MANAGE,
MyModulePermissions::RESULTS_COMMENTS_MANAGE_OWN,
MyModulePermissions::RESULTS_COMMENTS_CREATE,
MyModulePermissions::PROTOCOL_MANAGE,
MyModulePermissions::STEPS_MANAGE,
MyModulePermissions::TAGS_MANAGE,
MyModulePermissions::COMMENTS_CREATE,
MyModulePermissions::COMMENTS_MANAGE_OWN,
MyModulePermissions::COMPLETE,
MyModulePermissions::UPDATE_STATUS,
MyModulePermissions::STEPS_COMPLETE,
MyModulePermissions::STEPS_UNCOMPLETE,
MyModulePermissions::STEPS_CHECKLIST_CHECK,
MyModulePermissions::STEPS_CHECKLIST_UNCHECK,
MyModulePermissions::STEPS_COMMENTS_CREATE,
MyModulePermissions::STEPS_COMMENTS_DELETE_OWN,
MyModulePermissions::STEPS_COMMENTS_UPDATE_OWN,
MyModulePermissions::REPOSITORY_ROWS_ASSIGN,
MyModulePermissions::REPOSITORY_ROWS_MANAGE,
MyModulePermissions::USERS_READ,
MyModulePermissions::STOCK_CONSUMPTION_UPDATE,
RepositoryPermissions::READ,
RepositoryPermissions::READ_ARCHIVED,
RepositoryPermissions::COLUMNS_CREATE,
RepositoryPermissions::ROWS_CREATE,
RepositoryPermissions::ROWS_UPDATE,
RepositoryPermissions::ROWS_DELETE,
RepositoryPermissions::FILTERS_MANAGE
]
TECHNICIAN_PERMISSIONS = [
ProjectPermissions::READ,
ProjectPermissions::READ_ARCHIVED,
ProjectPermissions::ACTIVITIES_READ,
ProjectPermissions::USERS_READ,
ProjectPermissions::COMMENTS_READ,
ProjectPermissions::COMMENTS_CREATE,
ProjectPermissions::COMMENTS_MANAGE_OWN,
ExperimentPermissions::READ,
ExperimentPermissions::READ_CANVAS,
ExperimentPermissions::READ_ARCHIVED,
ExperimentPermissions::ACTIVITIES_READ,
ExperimentPermissions::USERS_READ,
MyModulePermissions::READ,
MyModulePermissions::READ_ARCHIVED,
MyModulePermissions::ACTIVITIES_READ,
MyModulePermissions::COMMENTS_CREATE,
MyModulePermissions::COMMENTS_MANAGE_OWN,
MyModulePermissions::COMPLETE,
MyModulePermissions::RESULTS_COMMENTS_MANAGE_OWN,
MyModulePermissions::RESULTS_COMMENTS_CREATE,
MyModulePermissions::UPDATE_STATUS,
MyModulePermissions::STEPS_COMPLETE,
MyModulePermissions::STEPS_UNCOMPLETE,
MyModulePermissions::STEPS_CHECKLIST_CHECK,
MyModulePermissions::STEPS_CHECKLIST_UNCHECK,
MyModulePermissions::STEPS_COMMENTS_CREATE,
MyModulePermissions::STEPS_COMMENTS_DELETE_OWN,
MyModulePermissions::STEPS_COMMENTS_UPDATE_OWN,
MyModulePermissions::REPOSITORY_ROWS_ASSIGN,
MyModulePermissions::REPOSITORY_ROWS_MANAGE,
MyModulePermissions::USERS_READ,
MyModulePermissions::STOCK_CONSUMPTION_UPDATE
]
VIEWER_PERMISSIONS = [
TeamPermissions::LABEL_TEMPLATES_READ,
TeamPermissions::STORAGE_LOCATIONS_READ,
TeamPermissions::STORAGE_LOCATION_CONTAINERS_READ,
ProtocolPermissions::READ,
ProtocolPermissions::READ_ARCHIVED,
ReportPermissions::READ,
ProjectPermissions::READ,
ProjectPermissions::READ_ARCHIVED,
ProjectPermissions::ACTIVITIES_READ,
ProjectPermissions::USERS_READ,
ProjectPermissions::COMMENTS_READ,
ExperimentPermissions::READ,
ExperimentPermissions::READ_CANVAS,
ExperimentPermissions::READ_ARCHIVED,
ExperimentPermissions::ACTIVITIES_READ,
ExperimentPermissions::USERS_READ,
MyModulePermissions::READ,
MyModulePermissions::USERS_READ,
MyModulePermissions::READ_ARCHIVED,
MyModulePermissions::ACTIVITIES_READ,
RepositoryPermissions::READ,
RepositoryPermissions::READ_ARCHIVED
]
end
end