Revision 34f64353
Added by Ohad Levy over 12 years ago
- ID 34f64353a05fd0aa987ea18e8d2e36b1b4894efd
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
fixes #1056 - Rundeck url doesn't work when ldap auth is active