Fix handling of user session and user-uploaded images
This commit is contained in:
parent
b70a9f1a07
commit
eb8f27d9e6
2 changed files with 9 additions and 16 deletions
|
|
@ -50,27 +50,18 @@ class PackagesController < ApplicationController
|
||||||
|
|
||||||
# Check if the image was valid
|
# Check if the image was valid
|
||||||
if new_screenshot.valid?
|
if new_screenshot.valid?
|
||||||
new_screenshot.uploaderhash = session[:token]
|
new_screenshot.uploaderhash = session.id.to_s
|
||||||
new_screenshot.uploaderip = session[:ip]
|
new_screenshot.uploaderip = request.remote_ip
|
||||||
new_screenshot.version = @package.version
|
new_screenshot.version = @package.version
|
||||||
|
|
||||||
# Can the upload get approved automatically?
|
# Can the upload get approved automatically?
|
||||||
if user_signed_in?
|
if user_signed_in?
|
||||||
new_screenshot.user = current_user
|
new_screenshot.user = current_user
|
||||||
new_screenshot.approve! if auto_approve?
|
new_screenshot.approve! if auto_approve?
|
||||||
|
|
||||||
# For anonymous uploads remember which screenshots have been
|
|
||||||
# uploaded. If the user logs in later the screenshots will
|
|
||||||
# be linked to their account.
|
|
||||||
else
|
|
||||||
# Save the screenshot database record to get an ID
|
|
||||||
new_screenshot.save!
|
|
||||||
(session[:uploaded_screenshots] ||= []) << new_screenshot.id
|
|
||||||
Log.log "Anonymously uploaded screenshots #{new_screenshot.id} remembered in cookie session to assign it to a user later."
|
|
||||||
end
|
end
|
||||||
|
|
||||||
new_screenshot.save
|
new_screenshot.save
|
||||||
Log.log "Screenshot #{new_screenshot.id} uploaded successfully from #{session[:ip]}. User has token #{session[:token]} or is #{current_user}"
|
Log.log "Screenshot #{new_screenshot.id} uploaded successfully. ip=#{session[:ip]}. user-token=#{session[:token]}. user-name=#{current_user}"
|
||||||
|
|
||||||
@valid_images.push new_screenshot
|
@valid_images.push new_screenshot
|
||||||
else
|
else
|
||||||
|
|
|
||||||
|
|
@ -7,12 +7,14 @@ module PackagesHelper
|
||||||
# - all screenshots if the user is an admin
|
# - all screenshots if the user is an admin
|
||||||
def screenshots_visible_to_user(package)
|
def screenshots_visible_to_user(package)
|
||||||
if user_signed_in? and current_user.is_admin?
|
if user_signed_in? and current_user.is_admin?
|
||||||
# User is an admin
|
# User is an admin and can view all screenshots
|
||||||
package.screenshots
|
package.screenshots
|
||||||
elsif user_signed_in?
|
# TODO: User logins and assigned screenshots will come in a later version
|
||||||
package.screenshots.where(id: (current_user.screenshots.select(:id))) | \
|
# elsif user_signed_in?
|
||||||
package.screenshots.where(approved: true).order('created_at DESC')
|
# package.screenshots.where(id: (current_user.screenshots.select(:id))) | \
|
||||||
|
# package.screenshots.where(approved: true).order('created_at DESC')
|
||||||
else
|
else
|
||||||
|
package.screenshots.where(uploaderhash: session.id.to_s) | \
|
||||||
package.screenshots.where(approved: true).order('created_at DESC')
|
package.screenshots.where(approved: true).order('created_at DESC')
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue