diff --git a/app/helpers/packages_helper.rb b/app/helpers/packages_helper.rb index bb6b3e9..55c8146 100644 --- a/app/helpers/packages_helper.rb +++ b/app/helpers/packages_helper.rb @@ -1,2 +1,13 @@ module PackagesHelper + # Return a query of all screenshots that the current user may see + # Consists of: + # - approved (public) screenshots + # - screenshots uploaded by the user (determined by cookie session) + def screenshots_visible_to_user + self.screenshots.where( + # "approved=true" + "approved=true OR uploaderhash=?", session[:token] + ) + end + end diff --git a/app/models/package.rb b/app/models/package.rb index 6099b09..a9bb87e 100644 --- a/app/models/package.rb +++ b/app/models/package.rb @@ -33,20 +33,8 @@ class Package < ActiveRecord::Base end # Return a query of all approved/public screenshots of this package - def self.query_approved + def self.screenshots_approved self.screenshots.find_by(approved: true) end - # Return a query of all screenshots that the current user may see - # Consists of: - # - approved (public) screenshots - # - screenshots uploaded by the user (determined by cookie session) - working on it… - def self.query_visible_to_user - approved_screenshots = Screenshot.find_by() - - subselect = Screenshot.select(:package_id) - where.not(id: subselect) - end - end diff --git a/app/views/packages/details.slim b/app/views/packages/details.slim index 201e405..1392ccb 100644 --- a/app/views/packages/details.slim +++ b/app/views/packages/details.slim @@ -4,15 +4,16 @@ .small-7.medium-7.columns.packagepage p.subtitle = @package.description - - if @package.screenshots.count > 0 - - @package.screenshots.each do |screenshot| + - if @package.screenshots_visible_to_user.count > 0 + - @package.screenshots_visible_to_user.each do |screenshot| .row.listview .small-12.columns .text-center a.black.fancybox href=screenshot.image.url(:large, timestamp: false) rel='fancybox-thumb' title=screenshot.caption = image_tag(screenshot.image.url(:large, timestamp: false), alt: screenshot.caption) .imgcaption =screenshot.caption - // TODO: Show information only if admin + + // TODO: Show information only if admin - if user_signed_in? // Button that reveals a dropdown/modal for admins .text-center @@ -28,6 +29,9 @@ p Uploaded #{screenshot.age_days} (#{screenshot.created_at}) p Status: #{screenshot.status} + // Anonymous users can see their own screenshots + - if not screenshot.approved + - else .row.listview img src='/images/dummy/no-screenshots-available.svg' width='100%' style='padding: 0 10%'