From 910425ddb3660b64dc1d7e724d389df4387e0612 Mon Sep 17 00:00:00 2001 From: moshenglv Date: Tue, 5 Jan 2021 16:40:09 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=8E=88=E6=9D=83=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=EF=BC=8C=E5=BD=93=E9=80=89=E6=8B=A9trustie=E6=9C=8D?= =?UTF-8?q?=E5=8A=A1=E5=99=A8=E6=97=B6=EF=BC=8CclientId=E4=BD=BF=E7=94=A8?= =?UTF-8?q?=E5=88=9B=E5=BB=BAdrone=E7=9A=84clientId?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../concerns/ci/cloud_account_manageable.rb | 23 +++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/app/controllers/concerns/ci/cloud_account_manageable.rb b/app/controllers/concerns/ci/cloud_account_manageable.rb index f477e3f1c..30b15f02d 100644 --- a/app/controllers/concerns/ci/cloud_account_manageable.rb +++ b/app/controllers/concerns/ci/cloud_account_manageable.rb @@ -57,12 +57,16 @@ module Ci::CloudAccountManageable result && !result.blank? ? cloud_account : nil end - # trustie提供服务器,绑定流程 - def trustie_bind_account! - + def trustie_drone_server_config # 读取drone配置信息 config = Rails.application.config_for(:configuration).symbolize_keys! trustie_drone_config = config[:trustie_drone].symbolize_keys! + return trustie_drone_config + end + + # trustie提供服务器,绑定流程 + def trustie_bind_account! + trustie_drone_config = trustie_drone_server_config raise 'trustie_drone config missing' if trustie_drone_config.blank? # 创建云账号 @@ -152,7 +156,8 @@ module Ci::CloudAccountManageable # redirect_uri eg: # https://localhost:3000/login/oauth/authorize?client_id=94976481-ad0e-4ed4-9247-7eef106007a2&redirect_uri=http%3A%2F%2F121.69.81.11%3A80%2Flogin&response_type=code&state=9cab990b9cfb1805 redirect_uri = CGI.escape("#{@cloud_account.drone_url}/login") - grant_url = "#{Gitea.gitea_config[:domain]}/login/oauth/authorize?client_id=#{oauth&.client_id}&redirect_uri=#{redirect_uri}&response_type=code&state=#{state}" + clientId = client_id(oauth) + grant_url = "#{Gitea.gitea_config[:domain]}/login/oauth/authorize?client_id=#{clientId}&redirect_uri=#{redirect_uri}&response_type=code&state=#{state}" logger.info "[gitea] grant_url: #{grant_url}" conn = Faraday.new(url: grant_url) do |req| @@ -186,4 +191,14 @@ module Ci::CloudAccountManageable params.permit(:account, :secret, :ip_num) end + def client_id(oauth) + #如果是使用trustie服务器使用管理员用户的clientId + if current_user.ci_cloud_account.server_type == Ci::CloudAccount::SERVER_TYPE_TRUSTIE + trustie_drone_config = trustie_drone_server_config + return trustie_drone_config[:client_id] + else + return oauth&.client_id + end + end + end