Sha256: 440a3e583dcc05fab195a26aa3036984f69d524b3d70a766d1e48664e4c9dbb7
Contents?: true
Size: 1.5 KB
Versions: 41
Compression:
Stored size: 1.5 KB
Contents
module Katello module Authorization module Product extend ActiveSupport::Concern include Authorizable def readable? authorized?(:view_products) end def syncable? authorized?(:sync_products) end def editable? authorized?(:edit_products) end def deletable? promoted_repos = repositories.select { |repo| repo.promoted? } authorized?(:destroy_products) && promoted_repos.empty? end module ClassMethods def readable authorized(:view_products) end def editable authorized(:edit_products) end def exportable authorized(:export_products) end def deletable authorized(:destroy_products) end def syncable authorized(:sync_products) end def readable? ::User.current.can?(:view_products) end def readable_repositories(repo_ids = nil) query = Katello::Repository.all if repo_ids query = query.where(:id => repo_ids) end query.joins(:content_view_version) .where("#{::Katello::ContentViewVersion.table_name}.content_view_id" => Katello::ContentView.default.pluck(:id)) .in_product(::Katello::Product.readable) end def syncable? ::User.current.can?(:sync_products) end end # ClassMethods end # Product end # Authorization end # Katello
Version data entries
41 entries across 41 versions & 1 rubygems