mirror of
https://github.com/scinote-eln/scinote-web.git
synced 2025-10-17 09:16:10 +08:00
Fix recent work service [SCI-12301]
This commit is contained in:
parent
9cbb1ba379
commit
8680287093
1 changed files with 15 additions and 7 deletions
|
@ -23,14 +23,14 @@ module Dashboard
|
||||||
all_activities = join_step_user_roles(all_activities)
|
all_activities = join_step_user_roles(all_activities)
|
||||||
|
|
||||||
team_activities = all_activities.where(subject_type: %w(Team RepositoryBase ProjectFolder))
|
team_activities = all_activities.where(subject_type: %w(Team RepositoryBase ProjectFolder))
|
||||||
project_activities = all_activities.where.not(project_subjects_user_roles: { id: nil })
|
project_activities = all_activities.where(role_condition_sql(:project_subjects))
|
||||||
report_activities = all_activities.where.not(report_projects_user_roles: { id: nil })
|
report_activities = all_activities.where(role_condition_sql(:report_projects))
|
||||||
experiment_activities = all_activities.where.not(experiment_subjects_user_roles: { id: nil })
|
experiment_activities = all_activities.where(role_condition_sql(:experiment_subjects))
|
||||||
my_module_activities = all_activities.where.not(my_module_subjects_user_roles: { id: nil })
|
my_module_activities = all_activities.where(role_condition_sql(:my_module_subjects))
|
||||||
result_activities = all_activities.where.not(result_my_modules_user_roles: { id: nil })
|
result_activities = all_activities.where(role_condition_sql(:result_my_modules))
|
||||||
protocol_activities = all_activities.where.not(protocol_my_modules_user_roles: { id: nil })
|
protocol_activities = all_activities.where(role_condition_sql(:protocol_my_modules))
|
||||||
|
step_activities = all_activities.where(role_condition_sql(:step_my_modules))
|
||||||
protocol_repository_activities = all_activities.where(project_id: nil, subject_type: 'Protocol')
|
protocol_repository_activities = all_activities.where(project_id: nil, subject_type: 'Protocol')
|
||||||
step_activities = all_activities.where.not(step_my_modules_user_roles: { id: nil })
|
|
||||||
|
|
||||||
activities = team_activities.or(project_activities)
|
activities = team_activities.or(project_activities)
|
||||||
.or(report_activities)
|
.or(report_activities)
|
||||||
|
@ -128,6 +128,12 @@ module Dashboard
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
|
def role_condition_sql(prefix)
|
||||||
|
"#{prefix}_user_roles.id IS NOT NULL OR " \
|
||||||
|
"#{prefix}_user_group_roles.id IS NOT NULL OR " \
|
||||||
|
"#{prefix}_team_user_roles.id IS NOT NULL"
|
||||||
|
end
|
||||||
|
|
||||||
def join_permitted_subjects(activities, join_alias, permission_model, permission)
|
def join_permitted_subjects(activities, join_alias, permission_model, permission)
|
||||||
activities.joins("
|
activities.joins("
|
||||||
LEFT OUTER JOIN user_assignments #{join_alias}_user_assignments
|
LEFT OUTER JOIN user_assignments #{join_alias}_user_assignments
|
||||||
|
@ -146,6 +152,7 @@ module Dashboard
|
||||||
AND #{join_alias}_user_group_memberships.user_id = #{@user.id}
|
AND #{join_alias}_user_group_memberships.user_id = #{@user.id}
|
||||||
LEFT OUTER JOIN user_roles #{join_alias}_user_group_roles
|
LEFT OUTER JOIN user_roles #{join_alias}_user_group_roles
|
||||||
ON #{join_alias}_user_group_roles.id = #{join_alias}_user_group_assignments.user_role_id
|
ON #{join_alias}_user_group_roles.id = #{join_alias}_user_group_assignments.user_role_id
|
||||||
|
AND #{join_alias}_user_group_memberships.id IS NOT NULL
|
||||||
AND #{join_alias}_user_group_roles.permissions @> ARRAY['#{permission}']::varchar[]
|
AND #{join_alias}_user_group_roles.permissions @> ARRAY['#{permission}']::varchar[]
|
||||||
|
|
||||||
LEFT OUTER JOIN team_assignments #{join_alias}_team_assignments
|
LEFT OUTER JOIN team_assignments #{join_alias}_team_assignments
|
||||||
|
@ -157,6 +164,7 @@ module Dashboard
|
||||||
AND #{join_alias}_team_user_assignments.user_id = #{@user.id}
|
AND #{join_alias}_team_user_assignments.user_id = #{@user.id}
|
||||||
LEFT OUTER JOIN user_roles #{join_alias}_team_user_roles
|
LEFT OUTER JOIN user_roles #{join_alias}_team_user_roles
|
||||||
ON #{join_alias}_team_user_roles.id = #{join_alias}_team_user_assignments.user_role_id
|
ON #{join_alias}_team_user_roles.id = #{join_alias}_team_user_assignments.user_role_id
|
||||||
|
AND #{join_alias}_team_user_assignments.id IS NOT NULL
|
||||||
AND #{join_alias}_team_user_roles.permissions @> ARRAY['#{permission}']::varchar[]
|
AND #{join_alias}_team_user_roles.permissions @> ARRAY['#{permission}']::varchar[]
|
||||||
")
|
")
|
||||||
end
|
end
|
||||||
|
|
Loading…
Add table
Reference in a new issue