app/controllers/katello/packages_controller.rb in katello-1.5.0 vs app/controllers/katello/packages_controller.rb in katello-2.2.2

- old
+ new

@@ -1,7 +1,7 @@ # -# Copyright 2013 Red Hat, Inc. +# Copyright 2014 Red Hat, Inc. # # This software is licensed to you under the GNU General Public # License as published by the Free Software Foundation; either version # 2 of the License (GPLv2) or (at your option) any later version. # There is NO WARRANTY for this software, express or implied, @@ -9,78 +9,37 @@ # NON-INFRINGEMENT, or FITNESS FOR A PARTICULAR PURPOSE. You should # have received a copy of GPLv2 along with this software; if not, see # http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt. module Katello -class PackagesController < Katello::ApplicationController - before_filter :lookup_package, except: [:auto_complete] - before_filter :find_filter, only: [:auto_complete] - before_filter :authorize + class PackagesController < Katello::ApplicationController + before_filter :lookup_package, except: [:auto_complete] - def rules + def auto_complete + repo_ids = readable_repos(:pulp_id) + results = Package.autocomplete_name("#{params[:term]}*", repo_ids) - view = lambda do - !Repository.readable_in_org(current_organization).where( - :pulp_id => @package.repoids).empty? + render :json => results end - auto_complete = lambda do - if @def_filter - @def_filter.content_view_definition.readable? - else - false - end + def details + render :partial => "details" end - { - :auto_complete => auto_complete, - :show => view, - :filelist => view, - :changelog => view, - :dependencies => view, - :details => view - } - end + private - def auto_complete - if @def_filter - repoids = @def_filter.repos(current_organization.library).map(&:pulp_id) - results = Package.autocomplete_name("#{params[:term]}*", repoids) + def lookup_package + repo_ids = readable_repos(:pulp_id) + package_id = params[:id] + @package = Package.find(package_id) + fail _("Unable to find package %s") % package_id if @package.nil? + deny_access if (@package.repoids & repo_ids).empty? end - render :json => results + def readable_repos(attribute) + repos = [] + repos += Product.readable_repositories.pluck(attribute) + repos += ContentView.readable_repositories.pluck(attribute) + repos + end end - - def show - render :partial => "show" - end - - def filelist - render :partial => "filelist" - end - - def changelog - render :partial => "changelog" - end - - def dependencies - render :partial => "dependencies" - end - - def details - render :partial => "details" - end - - private - - def lookup_package - @package_id = params[:id] - @package = Package.find @package_id - fail _("Unable to find package %s") % @package_id if @package.nil? - end - - def find_filter - @def_filter = Filter.find_by_id(params[:filter_id]) - end - -end end