diff --git a/app/controllers/ci/cloud_accounts_controller.rb b/app/controllers/ci/cloud_accounts_controller.rb index c4ffa27ba..ecbfdbf41 100644 --- a/app/controllers/ci/cloud_accounts_controller.rb +++ b/app/controllers/ci/cloud_accounts_controller.rb @@ -12,6 +12,11 @@ class Ci::CloudAccountsController < Ci::BaseController end def create + return render_error('你已绑定了云帐号.') unless current_user.ci_cloud_account.blank? + + ip_num = IPAddr.new(devops_params[:ip_num]).to_i + return render_error("#{devops_params[:ip_num]}服务器已被使用.") if Ci::CloudAccount.exists?(ip_num: ip_num) + ActiveRecord::Base.transaction do @cloud_account = bind_account! if @cloud_account.blank? diff --git a/app/controllers/concerns/ci/cloud_account_manageable.rb b/app/controllers/concerns/ci/cloud_account_manageable.rb index f834c6b44..9bff6beaa 100644 --- a/app/controllers/concerns/ci/cloud_account_manageable.rb +++ b/app/controllers/concerns/ci/cloud_account_manageable.rb @@ -8,8 +8,6 @@ module Ci::CloudAccountManageable # 1. 保存华为云服务器帐号 create_params = devops_params.merge(ip_num: IPAddr.new(devops_params[:ip_num]).to_i, secret: Ci::CloudAccount.encrypted_secret(devops_params[:secret])) - return render_error('你已绑定了云帐号.') unless current_user.ci_cloud_account.blank? - cloud_account = Ci::CloudAccount.new(create_params) cloud_account.user = current_user cloud_account.save!