Project

General

Profile

« Previous | Next » 

Revision 34f64353

Added by Ohad Levy over 12 years ago

  • ID 34f64353a05fd0aa987ea18e8d2e36b1b4894efd

fixes #1056 - Rundeck url doesn't work when ldap auth is active

View differences:

app/controllers/application_controller.rb
helper 'layout'
before_filter :require_ssl, :require_login
before_filter :welcome, :detect_notices, :only => :index, :unless => :request_json?
before_filter :welcome, :detect_notices, :only => :index, :unless => :api_request?
before_filter :authorize, :except => :login
protected
......
# User is not found or first login
if SETTINGS[:login] and SETTINGS[:login] == true
# authentication is enabled
if request_json?
if api_request?
# JSON requests (REST API calls) use basic http authenitcation and should not use/store cookies
user = authenticate_or_request_with_http_basic { |u, p| User.try_to_login(u, p) }
User.current = user.is_a?(User) ? user : nil
......
error "Unable to find internal system admin account - Recreating . . ."
User.current = User.create_admin
end
session[:user] = User.current.id unless request_json?
session[:user] = User.current.id unless api_request?
end
end
end
......
false
end
def request_json?
request.format.json?
def api_request?
request.format.json? or request.format.yaml?
end
# this method sets the Current user to be the Admin
app/controllers/facts_controller.rb
def index
# we currently only support JSON in this controller
return not_found unless request_json?
return not_found unless api_request?
render :json => Puppet::Rails::FactName.all(:select => "name", :conditions => ["fact_names.name <> ?",:timestamp])
end
app/controllers/hosts_controller.rb
# If the user has a fact_filter then we need to include :fact_values
# We do not include most associations unless we are processing a html page
def included_associations(include = [])
include += [:hostgroup, :domain, :operatingsystem, :environment, :model] unless request_json?
include += [:hostgroup, :domain, :operatingsystem, :environment, :model] unless api_request?
include += [:fact_values] if User.current.user_facts.any?
return include
end
app/controllers/lookup_values_controller.rb
private
def reject_non_json_requests
render_403 unless request_json?
render_403 unless api_request?
end
def find_by_id
app/models/host.rb
# returns a rundeck output
def rundeck
{name => { "desciption" => comment, "hostname" => name, "nodename" => name,
{name => { "description" => comment, "hostname" => name, "nodename" => name,
"osArch" => arch.name, "osFamily" => os.family, "osName" => os.name,
"osVersion" => os.release, "tags" => puppetclasses_names, "username" => "root" }
}

Also available in: Unified diff