diff --git a/app/controllers/ci/base_controller.rb b/app/controllers/ci/base_controller.rb index a2c4e4ab6..2286804f9 100644 --- a/app/controllers/ci/base_controller.rb +++ b/app/controllers/ci/base_controller.rb @@ -36,7 +36,7 @@ class Ci::BaseController < ApplicationController def find_cloud_account @cloud_account ||= current_user.ci_cloud_account - @cloud_account.blank? ? raise("未找到相关的记录") : @cloud_account + @cloud_account.blank? ? nil : @cloud_account end def load_ci_user diff --git a/app/controllers/concerns/ci/cloud_account_manageable.rb b/app/controllers/concerns/ci/cloud_account_manageable.rb index f9e82e2ad..eae546c02 100644 --- a/app/controllers/concerns/ci/cloud_account_manageable.rb +++ b/app/controllers/concerns/ci/cloud_account_manageable.rb @@ -93,17 +93,11 @@ module Ci::CloudAccountManageable end def gitea_oauth_grant!(gitea_uid, application_id) - gitea_server_config = Rails.configuration.database_configuration[Rails.env]["gitea_server"] - if gitea_server_config.blank? - puts "[Gitea Server]: gitea database config missing" - return - else - puts "[Gitea Server]: gitea db config is exists." - end - - connection = establish_connection gitea_server_config + connection = Gitea::Database.set_connection.connection unix_time = Time.now.to_i + # TODO + # 目前直接操作db,可以建立对应的model进行操作 sql = "INSERT INTO oauth2_grant ( user_id, application_id, counter, created_unix, updated_unix ) VALUES ( #{gitea_uid}, #{application_id}, 0, #{unix_time}, #{unix_time} );" connection.execute(sql) diff --git a/app/libs/gitea/database.rb b/app/libs/gitea/database.rb new file mode 100644 index 000000000..4698607a4 --- /dev/null +++ b/app/libs/gitea/database.rb @@ -0,0 +1,12 @@ +module Gitea + class Database < ActiveRecord::Base + self.abstract_class = true + + def self.set_connection + gitea_server_config = Rails.configuration.database_configuration[Rails.env]["gitea_server"] + raise 'gitea database config missing' if gitea_server_config.blank? + + establish_connection gitea_server_config + end + end +end diff --git a/app/models/ci/repo.rb b/app/models/ci/repo.rb index a23b7f801..8396cfa90 100644 --- a/app/models/ci/repo.rb +++ b/app/models/ci/repo.rb @@ -2,8 +2,8 @@ class Ci::Repo < Ci::RemoteBase self.primary_key = 'repo_id' belongs_to :user, foreign_key: :repo_user_id - has_one :perm, foreign_key: :perm_repo_uid, dependent: :destroy - has_many :builds, foreign_key: "build_repo_id", dependent: :destroy + has_one :perm, foreign_key: :perm_repo_uid + has_many :builds, foreign_key: :build_repo_id, dependent: :destroy def self.find_with_namespace(namespace_path, identifier) logger.info "########namespace_path: #{namespace_path} ########identifier: #{identifier} " diff --git a/app/models/ci/user.rb b/app/models/ci/user.rb index 197b6a30a..6f077b330 100644 --- a/app/models/ci/user.rb +++ b/app/models/ci/user.rb @@ -1,8 +1,8 @@ class Ci::User < Ci::RemoteBase self.primary_key = 'user_id' - has_many :repos, foreign_key: "repo_user_id", dependent: :destroy - has_many :perms, foreign_key: "perm_user_id", dependent: :delete_all + has_many :repos, foreign_key: :repo_user_id, dependent: :destroy + has_many :perms, foreign_key: :perm_user_id, dependent: :delete_all has_one :ci_cloud_account, class_name: 'Ci::CloudAccount', foreign_key: :ci_user_id end diff --git a/app/models/concerns/droneable.rb b/app/models/concerns/droneable.rb index 546a78bba..c1f8b3391 100644 --- a/app/models/concerns/droneable.rb +++ b/app/models/concerns/droneable.rb @@ -22,7 +22,7 @@ module Droneable end def unbind_account! - user_projects = selef.projects + user_projects = self.projects user_projects.update_all(open_devops: false, open_devops_count: 0) set_drone_step!(User::DEVOPS_UNINIT) diff --git a/app/models/gitea/base.rb b/app/models/gitea/base.rb new file mode 100644 index 000000000..d14249bf6 --- /dev/null +++ b/app/models/gitea/base.rb @@ -0,0 +1,4 @@ +class Gitea::Base < Gitea::Database + self.abstract_class = true + +end