Skip to content

Commit 89ababe

Browse files
committed
Fix view access for genomes
1 parent 3caf033 commit 89ababe

4 files changed

Lines changed: 17 additions & 3 deletions

File tree

app/controllers/genomes_controller.rb

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,9 +84,14 @@ def sample_map
8484
end
8585

8686
private
87-
# Use callbacks to share common setup or constraints between actions.
87+
# Use callbacks to share common setup or constraints between actions
8888
def set_genome
8989
@genome = Genome.find(params[:id])
90+
91+
if @genome && !@genome.can_view?(current_user, cookies[:reviewer_token])
92+
flash[:alert] = 'User cannot see genome'
93+
redirect_to(root_path)
94+
end
9095
end
9196

9297
def set_name

app/models/genome.rb

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -318,6 +318,14 @@ def can_edit?(user)
318318
names.all? { |name| name.can_edit?(user) }
319319
end
320320

321+
def can_view?(user, token = nil)
322+
if names.empty?
323+
database == 'pending' ? user&.curator? : true
324+
else
325+
names.any? { |n| n.can_view?(user, token) }
326+
end
327+
end
328+
321329
# MiGA Checks
322330

323331
def miga_name

app/views/genomes/_genome.html.erb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -216,7 +216,8 @@ end
216216
</div>
217217
<% else %>
218218
<%=
219-
@genome.auto_check ? 'Complete' :
219+
@genome.database == 'pending' ? 'Postponed' :
220+
@genome.auto_check ? 'Complete' :
220221
@genome.kind? ? 'Scheduled' : 'Missing information'
221222
%>
222223
<% end %>

lib/tasks/evaluate_genomes.rake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ namespace :genomes do
3535
p_path = File.join(Rails.root, '..', 'miga_check')
3636
genomes = Genome.where(
3737
auto_check: false, auto_scheduled_at: nil, auto_failed: nil
38-
).where.not(kind: nil)
38+
).where.not(database: 'pending').where.not(kind: nil)
3939

4040
genomes.each_with_index do |genome, k|
4141
$stderr.puts 'Download genomes:' if k == 0

0 commit comments

Comments
 (0)