|
node 'INFO', :case_insensitive => true do
|
|
|
|
on_request do |request|
|
|
task 'dns_list_managed_zones' do
|
|
logger.warn "User: #{request.env.user}"
|
|
|
|
# do later requests using provided token
|
|
# TODO: check is not empty
|
|
set_user request.env.user
|
|
|
|
# cannot search directly 'person/<user>' until LdapShadows is used,
|
|
# then searching the user DN first
|
|
ask "Librarian", :user_info, Proc.new{ "/Records/Persons/#{user}" }
|
|
|
|
on_error do
|
|
logger.warn "FUCK"
|
|
request.reply.errors << "Internal error"
|
|
request.send_reply
|
|
end
|
|
|
|
on_success do
|
|
unless results[:user_info]
|
|
logger.warn "User not found!"
|
|
else
|
|
ask "Librarian", :managed_zones, "/Records/DnsDomains/?", :manager => "#{results[:user_info][:dn]}"
|
|
|
|
on_success do
|
|
logger.info "COIN"
|
|
# request.reply.results[<key>] fail with: wrong number of arguments (2 for 1)
|
|
msg = results[:managed_zones].empty? ?
|
|
_("You do not manage any zone.") :
|
|
_("You are manager of the following zones: %{zone_list}.",
|
|
:zone_list => results[:managed_zones].keys.join(', '))
|
|
request.reply.results = msg.translate(request.env.preferred_locales)
|
|
logger.info "COIN END"
|
|
request.send_reply
|
|
end
|
|
end
|
|
end
|
|
|
|
end # task dns_list_managed_zones
|
|
end
|
|
|
|
end
|