diff --git a/app/controllers/packages_controller.rb b/app/controllers/packages_controller.rb index b618d72..b09c92a 100644 --- a/app/controllers/packages_controller.rb +++ b/app/controllers/packages_controller.rb @@ -35,6 +35,7 @@ class PackagesController < ApplicationController if new_screenshot.valid? new_screenshot.uploaderhash = session[:token] new_screenshot.uploaderip = session[:ip] + new_screenshot.version = @package.version new_screenshot.save successful_upload_count += 1 Log.log "Screenshot #{new_screenshot.id} uploaded successfully." @@ -70,6 +71,7 @@ class PackagesController < ApplicationController if new_screenshot.valid? # new_screenshot.uploaderhash = session[:token] 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." redirect_to package_path(params[:packagename]) @@ -81,7 +83,7 @@ class PackagesController < ApplicationController def delete_screenshot # Is the user allowed to delete the screenshot? - @screenshot = Screenshot.find!(params[:id]) + @screenshot = Screenshot.find(params[:id]) if user_can_alter_screenshot? @screenshot.destroy @@ -93,7 +95,7 @@ class PackagesController < ApplicationController end def approve_screenshot - @screenshot = Screenshot.find!(params[:id]) + @screenshot = Screenshot.find(params[:id]) @screenshot.approve_screenshot! flash['notice'] = "Screenshot approved." redirect_to :back @@ -160,7 +162,7 @@ class PackagesController < ApplicationController # Receives a form with a simple text field 'description' so that users can update # the description of their screenshot. def update_screenshot_description - @screenshot = Screenshot.find!(params[:id]) + @screenshot = Screenshot.find(params[:id]) @screenshot.description = params[:description] @screenshot.save! flash['notice'] = "Description updated." @@ -169,7 +171,7 @@ class PackagesController < ApplicationController # Receive an anonymous report from a user to have a screenshot removed. def report_screenshot - @screenshot = Screenshot.find!(params[:id]) + @screenshot = Screenshot.find(params[:id]) @screenshot.delete_reason = params[:delete_reason] @screenshot.markedfordelete = true @screenshot.save! diff --git a/app/models/log.rb b/app/models/log.rb index 0eec7a7..36d9b9c 100644 --- a/app/models/log.rb +++ b/app/models/log.rb @@ -5,7 +5,7 @@ class Log < ActiveRecord::Base validates :section, presence: true validates :section, inclusion: { in: ['importer', 'upload', 'frontend'] } - + validates :level, presence: true validates :level, inclusion: { in: ['info', 'error'] } diff --git a/app/models/package.rb b/app/models/package.rb index 2af10ea..bdb93fb 100644 --- a/app/models/package.rb +++ b/app/models/package.rb @@ -71,8 +71,8 @@ class Package < ActiveRecord::Base private def version_compare(x,y) - x ||= '0' - y ||= '0' + x = '0' unless x.present? + y = '0' unless y.present? version_x = DebImporter::Version.new(x) version_y = DebImporter::Version.new(y) if version_x 'packages#approve_screenshot', as: :approve_screenshot get 'about' => 'welcome#about' get 'thumbnail/:name' => 'packages#thumbnail', as: :thumbnail_image, name: /[^\/]+/ - get 'thumbnail-with-version/:name/:version' => 'packages#thumbnail', name: /[^\/]+/, version: /\S+/ + get 'thumbnail-404/:name' => 'packages#thumbnail', name: /[^\/]+/ + get 'thumbnail-with-version/:name/:version' => 'packages#thumbnail', name: /[^\/]+/, version: /\d.*/ get 'screenshot/:name' => 'packages#screenshot', as: :screenshot_image, name: /[^\/]+/ - get 'screenshot-with-version/:name/:version' => 'packages#screenshot', name: /[^\/]+/, version: /\S+/ + get 'screenshot-404/:name' => 'packages#screenshot', name: /[^\/]+/ + get 'screenshot-with-version/:name/:version' => 'packages#screenshot', name: /[^\/]+/, version: /\d.*/ # Legacy URLs get 'with_screenshots', to: redirect('/packages?show=with')