Revision 8813aee5
Added by Ondřej Pražák about 7 years ago
app/controllers/api/v2/roles_controller.rb | ||
---|---|---|
include Foreman::Controller::Parameters::Role
|
||
|
||
before_action :find_optional_nested_object
|
||
before_action :find_resource, :only => %w{show update destroy}
|
||
before_action :find_resource, :only => %w{show update destroy clone}
|
||
|
||
api :GET, "/roles/", N_("List all roles")
|
||
param_group :search_and_pagination, ::Api::V2::BaseController
|
||
... | ... | |
def_param_group :role do
|
||
param :role, Hash, :required => true, :action_aware => true do
|
||
param :name, String, :required => true
|
||
param :description, String, :desc => N_('Role description')
|
||
param_group :taxonomies, ::Api::V2::BaseController
|
||
end
|
||
end
|
||
... | ... | |
process_response @role.destroy
|
||
end
|
||
|
||
api :POST, "/roles/:id/clone", N_("Clone a role")
|
||
param :id, String, :required => true
|
||
param_group :role
|
||
def clone
|
||
@role = @role.clone(role_params)
|
||
process_response @role.save
|
||
end
|
||
|
||
private
|
||
|
||
def allowed_nested_id
|
||
%w(user_id)
|
||
end
|
||
|
||
def action_permission
|
||
case params[:action]
|
||
when 'clone'
|
||
:create
|
||
else
|
||
super
|
||
end
|
||
end
|
||
end
|
||
end
|
||
end
|
Also available in: Unified diff
Fixes #18317 - Clone user role via API