Audit logging improved. References users, screenshots, packages
This commit is contained in:
parent
b6dee6b93c
commit
2fef9c7043
12 changed files with 95 additions and 45 deletions
|
|
@ -56,7 +56,6 @@ class PackagesController < ApplicationController
|
|||
files=[files] if files.class != Array
|
||||
|
||||
files.each do |img|
|
||||
# Log.log "Uploaded img=#{img.path}"
|
||||
new_screenshot = @package.screenshots.new(simage: img)
|
||||
|
||||
# Check if the image was valid
|
||||
|
|
@ -70,7 +69,8 @@ class PackagesController < ApplicationController
|
|||
|
||||
# Check that this screenshot is not a duplicate for this package
|
||||
if @package.screenshots.where(image_fingerprint: new_screenshot.image_fingerprint).any?
|
||||
Log.log "Duplicate image with fingerprint #{new_screenshot.image_fingerprint} found. Rejecting."
|
||||
auditlog "Duplicate image with fingerprint #{new_screenshot.image_fingerprint} found. Rejecting.",
|
||||
package: @package
|
||||
all_errors << "Your file #{img.original_filename} is a duplicate. Sorry."
|
||||
else
|
||||
# TODO: Can the upload get approved automatically?
|
||||
|
|
@ -79,28 +79,26 @@ class PackagesController < ApplicationController
|
|||
# The user won't know that an account is created.
|
||||
# But this makes it easier to track who screenshots belong to.
|
||||
unless user_signed_in?
|
||||
sign_in User.create_pseudo_user
|
||||
sign_in User.create_pseudo_user
|
||||
auditlog "New pseudo user for anonymous upload created and logged in.",
|
||||
package: @package, screenshot: new_screenshot
|
||||
end
|
||||
new_screenshot.user = current_user
|
||||
new_screenshot.approve! if can?(:approve, new_screenshot)
|
||||
|
||||
# Pre-render screenshot in different sizes
|
||||
new_screenshot.simage_derivatives!
|
||||
Log.log "Derivatives created"
|
||||
|
||||
new_screenshot.save!
|
||||
Log.log "Screenshot #{new_screenshot.id} uploaded successfully. " + \
|
||||
"ip=#{new_screenshot.uploaderip}. "+ \
|
||||
#"user-hash=#{new_screenshot.uploaderhash}. "+ \
|
||||
"user-name=#{current_user} "+ \
|
||||
"image-fingerprint=#{new_screenshot.image_fingerprint} "+ \
|
||||
"image-path=#{img.path}"
|
||||
auditlog "Screenshot uploaded successfully.",
|
||||
screenshot: new_screenshot, package: @package
|
||||
|
||||
@valid_images.push new_screenshot
|
||||
end
|
||||
else
|
||||
errors = new_screenshot.errors[:simage]
|
||||
Log.log "Screenshot #{img.original_filename} invalid (#{errors})."
|
||||
auditlog "Screenshot #{img.original_filename} invalid (#{errors}).",
|
||||
package: @package
|
||||
#@invalid_images.push img.original_filename
|
||||
#raise
|
||||
all_errors << "Your file #{img.original_filename} #{errors.join(' and ')}."
|
||||
|
|
@ -113,7 +111,7 @@ class PackagesController < ApplicationController
|
|||
|
||||
# # Redirect back to upload form if all uploads were invalid
|
||||
# unless @valid_images.any?
|
||||
# Log.log "No valid images uploaded. Back to upload form."
|
||||
# auditlog "No valid images uploaded. Back to upload form."
|
||||
# redirect_to(upload_path, error: all_errors) and return
|
||||
# end
|
||||
|
||||
|
|
@ -162,10 +160,12 @@ class PackagesController < ApplicationController
|
|||
new_screenshot.uploaderip = session[:ip]
|
||||
new_screenshot.version = @package.version
|
||||
new_screenshot.save
|
||||
Log.log "Screenshot #{new_screenshot.id} uploaded successfully from legacy upload form."
|
||||
auditlog "Screenshot #{new_screenshot.id} uploaded successfully from legacy upload form.",
|
||||
screenshot: new_screenshot, package: @package
|
||||
redirect_to package_path(params[:packagename])
|
||||
else
|
||||
Log.log "Screenshot upload rejected. Errors: #{new_screenshot.errors.to_a}"
|
||||
auditlog "Screenshot upload rejected. Errors: #{new_screenshot.errors.to_a}",
|
||||
package: @package
|
||||
head :not_acceptable
|
||||
end
|
||||
end
|
||||
|
|
@ -177,7 +177,8 @@ class PackagesController < ApplicationController
|
|||
# Check if the user is allowed to change this screenshot
|
||||
# - Is this the user's own screenshot? (anonymous)
|
||||
if (@screenshot.user == current_user) || (can? :destroy, @screenshot)
|
||||
logger.debug "User #{current_user} deletes screenshot #{@screenshot}"
|
||||
auditlog "Screenshot #{@screenshot} deleted",
|
||||
package: @screenshot.package
|
||||
@screenshot.destroy
|
||||
flash['notice'] = "Screenshot deleted."
|
||||
redirect_back(fallback_location: package_path(name: @screenshot.package.name))
|
||||
|
|
@ -191,6 +192,8 @@ class PackagesController < ApplicationController
|
|||
|
||||
if can? :approve, @screenshot
|
||||
@screenshot.approve!
|
||||
auditlog "Screenshot approved",
|
||||
package: @screenshot.package, screenshot: @screenshot
|
||||
flash['notice'] = "Screenshot approved."
|
||||
redirect_back(fallback_location: package_path(name: @screenshot.package.name))
|
||||
else
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue