Project

General

Profile

« Previous | Next » 

Revision aeaaaff6

Added by Thomas McKay about 10 years ago

fixes #4730 - 4730-userapi - extend foreman's v2 api user controller

View differences:

app/controllers/katello/api/v2/users_controller.rb
# http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt.
module Katello
class Api::V2::UsersController < Api::V1::UsersController
class Api::V2::UsersController < ::Api::V2::UsersController
include Api::V2::Rendering
resource_description do
api_version "v2"
api_base_url "#{Katello.config.url_prefix}/api"
end
def_param_group :user do
param :user, Hash, :required => true, :action_aware => true do
param :email, String, :required => true, :action_aware => true
param :password, String, :required => true, :action_aware => true
param :default_environment_id, Integer, :action_aware => true
param :disabled, :bool, :action_aware => true
end
end
api :POST, "/users", "Create an user"
param_group :user
param :user, Hash, :required => true do
param :login, String, :required => true
end
def create
@user = User.create!(user_params)
if user_attrs[:default_environment_id]
@user.default_environment = KTEnvironment.find(user_attrs[:default_environment_id])
@user.save!
end
if !user_attrs[:default_locale].blank?
#TODO: this should be placed in model validations
if Katello.config.available_locales.include? user_attrs[:default_locale]
@user.default_locale = user_attrs[:default_locale]
@user.save!
end
end
respond
end
api :PUT, "/users/:id", "Update an user"
param_group :user
def update
@user.update_attributes!(user_params)
if params[:user].key?(:default_organization_id)
if params[:user][:default_organization_id].present?
@organization = Organization.where(:label => params[:user][:default_organization_id]).first
@user.default_environment = @organization.library
@user.default_org = @organization.id
else
@user.default_environment = nil
end
end
if !params[:default_locale].blank?
#TODO: this should be placed in model validations
if Katello.config.available_locales.include? user_params[:default_locale]
@user.default_locale = user_params[:default_locale]
end
end
@user.save!
respond
end
# rhsm
def list_owners
respond_for_index :collection => @user.allowed_organizations
end
private
def user_params
attrs = [:password, :email, :disabled, :default_environment_id, :default_locale]
attrs << :login if params[:action] == "create"
params[:user].permit(attrs)
end
end
end

Also available in: Unified diff