Attempt to assign anonymous screenshots to logged-in user
This commit is contained in:
parent
228b7375e7
commit
0dd63f6bf6
7 changed files with 65 additions and 25 deletions
|
|
@ -33,8 +33,7 @@ class PackagesController < ApplicationController
|
|||
# Create a pseudo user account for the user.
|
||||
# The user won't know that an account is created.
|
||||
# But this makes it easier to track who screenshots belong to.
|
||||
create_pseudo_user unless user_signed_in?
|
||||
|
||||
# User.create_pseudo_user unless user_signed_in?
|
||||
@package = Package.find_by!(name: params[:name])
|
||||
@valid_images = []
|
||||
@invalid_images = []
|
||||
|
|
@ -57,16 +56,20 @@ class PackagesController < ApplicationController
|
|||
new_screenshot.user = current_user
|
||||
|
||||
# Can the upload get approved automatically?
|
||||
new_screenshot.approve! if current_user and current_user.auto_approve?
|
||||
if current_user
|
||||
new_screenshot.approve! if current_user.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
|
||||
(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
|
||||
|
||||
new_screenshot.save
|
||||
Log.log "Screenshot #{new_screenshot.id} uploaded successfully from #{session[:ip]}. User has token #{session[:token]} or is #{current_user}"
|
||||
|
||||
if current_user.is_admin?
|
||||
Log.log "Admin upload is automatically approved."
|
||||
new_screenshot.approve_screenshot!
|
||||
end
|
||||
|
||||
@valid_images.push new_screenshot
|
||||
else
|
||||
Log.log "Screenshot #{new_screenshot.image_file_name} invalid (#{new_screenshot.errors[:image]})."
|
||||
|
|
@ -247,18 +250,7 @@ class PackagesController < ApplicationController
|
|||
# end
|
||||
|
||||
private
|
||||
|
||||
# Seamlessly create a user account for the current client.
|
||||
# It helps track uploads.
|
||||
def create_pseudo_user
|
||||
generated_password = Devise.friendly_token.first(8)
|
||||
new_user = User.create(
|
||||
name: 'Anonymous',
|
||||
password: generated_password)
|
||||
Log.log "New pseudo user for anonymous upload created: #{new_user}"
|
||||
sign_in(new_user)
|
||||
end
|
||||
|
||||
|
||||
# Send a dummy thumbnail reading "No screenshot available. Sorry."
|
||||
def thumbnail404
|
||||
send_file Rails.root.join('public/images/dummy/thumbnail404.png'),
|
||||
|
|
@ -298,10 +290,10 @@ class PackagesController < ApplicationController
|
|||
|
||||
# Store a random identifier and the client's IP address in the session
|
||||
# for later identification.
|
||||
def create_user_token
|
||||
session[:token] ||= SecureRandom.hex
|
||||
session[:ip] ||= request.remote_ip
|
||||
end
|
||||
# def create_user_token
|
||||
# session[:token] ||= SecureRandom.hex
|
||||
# session[:ip] ||= request.remote_ip
|
||||
# end
|
||||
|
||||
# Get reviews of this package from the Ubuntu API
|
||||
def get_ubuntu_reviews(packagename)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue