Refactored auto-approve code to make it more readable
This commit is contained in:
parent
9428d8d7dd
commit
228b7375e7
2 changed files with 17 additions and 3 deletions
|
|
@ -56,9 +56,8 @@ class PackagesController < ApplicationController
|
||||||
new_screenshot.version = @package.version
|
new_screenshot.version = @package.version
|
||||||
new_screenshot.user = current_user
|
new_screenshot.user = current_user
|
||||||
|
|
||||||
# Package is not approved by default. Approve automatically
|
# Can the upload get approved automatically?
|
||||||
# for authenticated users.
|
new_screenshot.approve! if current_user and current_user.auto_approve?
|
||||||
new_screenshot.approve! if current_user and not current_user.is_anonymous?
|
|
||||||
|
|
||||||
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 from #{session[:ip]}. User has token #{session[:token]} or is #{current_user}"
|
||||||
|
|
|
||||||
|
|
@ -50,6 +50,21 @@ class User < ApplicationRecord
|
||||||
self.provider == nil
|
self.provider == nil
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Do uploads from this user get approved automatically?
|
||||||
|
def auto_approve?
|
||||||
|
# Admins do not need moderation
|
||||||
|
return true if current_user.is_admin?
|
||||||
|
|
||||||
|
# Debian developers do not need moderation
|
||||||
|
return true if current_user.provider == 'debian-sso'
|
||||||
|
|
||||||
|
# After one successfully approved screenshot users do not need moderation
|
||||||
|
return true if current_user.approved_screenshots.count > 0
|
||||||
|
|
||||||
|
# Any other user's upload must be moderated
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
def self.from_omniauth(auth)
|
def self.from_omniauth(auth)
|
||||||
where(provider: auth.provider, email: auth.info.email).first_or_create do |user|
|
where(provider: auth.provider, email: auth.info.email).first_or_create do |user|
|
||||||
user.provider = auth.provider
|
user.provider = auth.provider
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue