Project

General

Profile

« Previous | Next » 

Revision 2dec184c

Added by Eric Helms over 8 years ago

Fixes #11303: Allow scoped search by name for permissions.

This both provides this functionality and fixes an issue with creating
filters using hammer. Hammer attempts to search for a permission by
name using scoped search syntax when creating a filter with the
--permission=view_domains style syntax. However, this was defaulting to
returning all permissions instead of scoped permissions.

View differences:

app/controllers/api/v2/permissions_controller.rb
module Api
module V2
class PermissionsController < V2::BaseController
include Api::Version2
before_filter :find_resource, :only => %w{show}
before_filter :parameter_deprecation, :only => %w(index)
api :GET, "/permissions/", N_("List all permissions")
param :page, String, :desc => N_("paginate results")
param :per_page, String, :desc => N_("number of entries per request")
param_group :search_and_pagination, ::Api::V2::BaseController
param :resource_type, String
param :name, String
......
type = params[:resource_type].blank? ? nil : params[:resource_type]
name = params[:name].blank? ? nil : params[:name]
if type
@permissions = Permission.where(:resource_type => type)
@permissions = Permission.where(:resource_type => type).paginate(paginate_options)
elsif name
@permissions = Permission.where(:name => name)
@permissions = Permission.where(:name => name).paginate(paginate_options)
else
@permissions = Permission.all
@permissions = resource_scope_for_index
end
@permissions = @permissions.paginate(paginate_options)
@permissions
end
api :GET, "/permissions/:id/", N_("Show a permission")
......
@total = @resource_types.size
render :resource_types, :layout => 'api/v2/layouts/index_layout'
end
private
def parameter_deprecation
return true unless params[:resource_type] || params[:name]
Foreman::Deprecation.api_deprecation_warning(
"The name and resource_type parameters are deprecated, use search syntax to search by those parameters."
)
end
end
end
end

Also available in: Unified diff