mirror of
https://gitlink.org.cn/Gitlink/forgeplus.git
synced 2026-07-16 23:18:56 +08:00
FIX 解决ci 数据库安全性问题
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
module Ci
|
||||
class Database < ActiveRecord::Base
|
||||
self.abstract_class = true
|
||||
|
||||
# Dynamically sets the database connection.
|
||||
def self.set_connection(params)
|
||||
puts "[Ci::Database] set db connection params: #{params}"
|
||||
establish_connection(
|
||||
adapter: params[:adapter],
|
||||
database: params[:database],
|
||||
port: params[:port].to_i,
|
||||
host: params[:host],
|
||||
username: params[:username],
|
||||
password: params[:password],
|
||||
encoding: "utf8"
|
||||
)
|
||||
end
|
||||
|
||||
def self.get_connection_params(connect_to)
|
||||
params = Hash.new
|
||||
params[:adapter] = "mysql2"
|
||||
params[:host] = connect_to[:host].to_s
|
||||
params[:username] = connect_to[:username].to_s
|
||||
params[:password] = connect_to[:password].to_s
|
||||
params[:database] = connect_to[:database].to_s
|
||||
params[:port] = connect_to[:port] || "43306"
|
||||
params[:encoding] = "utf8"
|
||||
return params
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -1,12 +1,13 @@
|
||||
class Ci::Drone::Server
|
||||
attr_reader :client_id, :client_secret, :drone_host, :rpc_secret
|
||||
attr_reader :user_login, :client_id, :client_secret, :drone_host, :rpc_secret
|
||||
|
||||
# client_id: user's client_id from oauth
|
||||
# client_secret: user's client_id from oauth
|
||||
# drone_host: 云服务器地址,eq: 173.53.21.31:80
|
||||
# eg:
|
||||
# DevOps::Drone::Server.new(current_user.oauth.client_id, current_user.oauth.client_secret, 'drone_host').generate_cmd
|
||||
def initialize(client_id, client_secret, drone_host, rpc_secret)
|
||||
# DevOps::Drone::Server.new(current_user.login, current_user.oauth.client_id, current_user.oauth.client_secret, 'drone_host').generate_cmd
|
||||
def initialize(user_login, client_id, client_secret, drone_host, rpc_secret)
|
||||
@user_login = user_login
|
||||
@client_id = client_id
|
||||
@drone_host = drone_host
|
||||
@rpc_secret = rpc_secret
|
||||
@@ -19,7 +20,7 @@ class Ci::Drone::Server
|
||||
"service docker start; docker run \
|
||||
-v /var/run/docker.sock:/var/run/docker.sock \
|
||||
-e DRONE_DATABASE_DRIVER=mysql \
|
||||
-e DRONE_DATABASE_DATASOURCE=#{database_username}:#{database_password}@tcp\\(#{database_host}:#{database_port}\\)/drone?parseTime=true \
|
||||
-e DRONE_DATABASE_DATASOURCE=#{database_username}:#{database_password}@tcp\\(#{database_host}:#{database_port}\\)/drone_#{user_login}?parseTime=true \
|
||||
-e DRONE_GITEA_SERVER=#{gitea_url} \
|
||||
-e DRONE_GITEA_CLIENT_ID=#{client_id} \
|
||||
-e DRONE_GITEA_CLIENT_SECRET=#{client_secret} \
|
||||
@@ -55,10 +56,6 @@ class Ci::Drone::Server
|
||||
database_config[Rails.env]["ci_server_db"]["port"] || 3306
|
||||
end
|
||||
|
||||
def database
|
||||
database_config[Rails.env]["ci_server_db"]["database"]
|
||||
end
|
||||
|
||||
def database_config
|
||||
Rails.configuration.database_configuration
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user