Legacy upload method for images from Debshots 1.x implemented
This commit is contained in:
parent
6feaa53920
commit
bb79e109c2
3 changed files with 35 additions and 1 deletions
|
|
@ -1,5 +1,7 @@
|
||||||
class PackagesController < ApplicationController
|
class PackagesController < ApplicationController
|
||||||
|
|
||||||
|
protect_from_forgery :except => :legacy_uploadfile
|
||||||
|
|
||||||
def list
|
def list
|
||||||
@packages = query_packages
|
@packages = query_packages
|
||||||
@packages = @packages.paginate(page: params[:page], per_page: 6)
|
@packages = @packages.paginate(page: params[:page], per_page: 6)
|
||||||
|
|
@ -51,6 +53,34 @@ class PackagesController < ApplicationController
|
||||||
redirect_to package_path
|
redirect_to package_path
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Legacy action to upload an image along with metadata.
|
||||||
|
# This was used in Debshots 1.x as the default upload method.
|
||||||
|
# This method allows that old-style way to upload screenshots.
|
||||||
|
# It is probably used by screenshotting tools.
|
||||||
|
#
|
||||||
|
# Parameters:
|
||||||
|
# - packagename
|
||||||
|
# - version
|
||||||
|
# - description
|
||||||
|
# - file
|
||||||
|
def legacy_uploadfile
|
||||||
|
@package = Package.find_by(name: params[:packagename])
|
||||||
|
|
||||||
|
new_screenshot = @package.screenshots.new(image: params[:file])
|
||||||
|
|
||||||
|
# Check if the image was valid
|
||||||
|
if new_screenshot.valid?
|
||||||
|
# new_screenshot.uploaderhash = session[:token]
|
||||||
|
new_screenshot.uploaderip = session[:ip]
|
||||||
|
new_screenshot.save
|
||||||
|
Log.log "Screenshot #{new_screenshot.id} uploaded successfully from legacy upload form."
|
||||||
|
redirect_to package_path(params[:packagename])
|
||||||
|
else
|
||||||
|
Log.log "Screenshot upload rejected. Errors: #{new_screenshot.errors.to_a}"
|
||||||
|
head :not_acceptable
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def delete_screenshot
|
def delete_screenshot
|
||||||
# Is the user allowed to delete the screenshot?
|
# Is the user allowed to delete the screenshot?
|
||||||
@screenshot = Screenshot.find(params[:id])
|
@screenshot = Screenshot.find(params[:id])
|
||||||
|
|
|
||||||
3
app/views/packages/legacy_uploadfile.slim
Normal file
3
app/views/packages/legacy_uploadfile.slim
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
h1 Upload received
|
||||||
|
|
||||||
|
' Thanks.
|
||||||
|
|
@ -16,7 +16,8 @@ Debshots::Application.routes.draw do
|
||||||
get 'packages/list' => 'packages#list', as: :packages_list
|
get 'packages/list' => 'packages#list', as: :packages_list
|
||||||
get 'moderate' => 'moderate#index'
|
get 'moderate' => 'moderate#index'
|
||||||
get 'package/:name' => 'packages#details', as: :package, name: /[^\/]+/
|
get 'package/:name' => 'packages#details', as: :package, name: /[^\/]+/
|
||||||
get 'upload', to: redirect('/packages')
|
get 'upload', to: redirect('/packages') # legacy upload form
|
||||||
|
post 'uploadfile' => 'packages#legacy_uploadfile'
|
||||||
get 'upload/:name' => 'packages#upload', as: :upload_package_by_name
|
get 'upload/:name' => 'packages#upload', as: :upload_package_by_name
|
||||||
post 'upload_image/:name' => 'packages#upload_image', as: :upload_image, name: /[^\/]+/
|
post 'upload_image/:name' => 'packages#upload_image', as: :upload_image, name: /[^\/]+/
|
||||||
# TODO: "get" is probably the wrong method to delete a screenshot
|
# TODO: "get" is probably the wrong method to delete a screenshot
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue