Project

General

Profile

Download (1.58 KB) Statistics
| Branch: | Tag: | Revision:
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_group :search_and_pagination, ::Api::V2::BaseController
param :resource_type, String
param :name, String

def index
type = params[:resource_type].blank? ? nil : params[:resource_type]
name = params[:name].blank? ? nil : params[:name]
if type
@permissions = Permission.where(:resource_type => type).paginate(paginate_options)
elsif name
@permissions = Permission.where(:name => name).paginate(paginate_options)
else
@permissions = resource_scope_for_index
end
@permissions
end

api :GET, "/permissions/:id/", N_("Show a permission")
param :id, :identifier, :required => true

def show
end

api :GET, "/permissions/resource_types/", N_("List available resource types.")
def resource_types
@resource_types = Permission.resources
@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
(35-35/53)