Merge branch 'rkh-token-in-user'

This commit is contained in:
Konstantin Haase 2012-12-17 16:10:16 +01:00
commit 0ac45a6582

View File

@ -92,7 +92,6 @@ class Travis::Api::App
handshake do |user, token, redirect_uri| handshake do |user, token, redirect_uri|
if target_ok? redirect_uri if target_ok? redirect_uri
content_type :html content_type :html
user = Travis::Api.data(user, version: :v2)
data = { user: user, token: token, uri: redirect_uri } data = { user: user, token: token, uri: redirect_uri }
erb(:post_payload, locals: data) erb(:post_payload, locals: data)
else else
@ -131,10 +130,7 @@ class Travis::Api::App
get '/post_message/iframe', scope: :public do get '/post_message/iframe', scope: :public do
handshake do |user, token, target_origin| handshake do |user, token, target_origin|
halt 403, invalid_target(target_origin) unless target_ok? target_origin halt 403, invalid_target(target_origin) unless target_ok? target_origin
rendered_user = Travis::Api.data(user, version: :v2) post_message(token: token, user: user, target_origin: target_origin)
travis_token = user.tokens.first
post_message(token: token, user: rendered_user, target_origin: target_origin,
travis_token: travis_token ? travis_token.token : nil)
end end
end end
@ -144,6 +140,11 @@ class Travis::Api::App
private private
def serialize_user(user)
rendered = Travis::Api.data(user, version: :v2)
rendered['user'].merge('token' => user.tokens.first.try(:token).to_s)
end
def oauth_endpoint def oauth_endpoint
proxy = Travis.config.oauth2.proxy proxy = Travis.config.oauth2.proxy
proxy ? File.join(proxy, request.fullpath) : url proxy ? File.join(proxy, request.fullpath) : url
@ -167,7 +168,7 @@ class Travis::Api::App
user = user_for_github_token(github_token) user = user_for_github_token(github_token)
token = generate_token(user: user, app_id: 0) token = generate_token(user: user, app_id: 0)
payload = params[:state].split(":::", 2)[1] payload = params[:state].split(":::", 2)[1]
yield user, token, payload yield serialize_user(user), token, payload
else else
values[:state] = create_state values[:state] = create_state
endpoint.path = config.authorize_path endpoint.path = config.authorize_path
@ -419,7 +420,6 @@ function uberParent(win) {
function sendPayload(win) { function sendPayload(win) {
var payload = <%= user.to_json %>; var payload = <%= user.to_json %>;
payload.token = <%= token.inspect %>; payload.token = <%= token.inspect %>;
payload.travis_token = <%= travis_token ? travis_token.inspect : null %>;
uberParent(win).postMessage(payload, <%= target_origin.inspect %>); uberParent(win).postMessage(payload, <%= target_origin.inspect %>);
} }
@ -433,8 +433,8 @@ if(window.parent == window) {
</script> </script>
@@ post_payload @@ post_payload
<body onload='document.forms[0].submit()'> <body onload=''>
<form action="<%= uri %>" method='post'> <form action="<%= document.forms[0].submit() %>" method='post'>
<input type='hidden' name='token' value='<%= token %>'> <input type='hidden' name='token' value='<%= token %>'>
<input type='hidden' name='user' value="<%= user.to_json.gsub('"', '&quot;') %>"> <input type='hidden' name='user' value="<%= user.to_json.gsub('"', '&quot;') %>">
<input type='hidden' name='storage' value='localStorage'> <input type='hidden' name='storage' value='localStorage'>