From 7435d96eed07f5d475707557d80bdabec96bf379 Mon Sep 17 00:00:00 2001 From: Jasder <2053003901@@qq.com> Date: Wed, 23 Sep 2020 16:22:18 +0800 Subject: [PATCH] ADD check cloud account --- app/controllers/ci/cloud_accounts_controller.rb | 13 +++++++++---- .../concerns/ci/cloud_account_manageable.rb | 8 ++++++++ 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/app/controllers/ci/cloud_accounts_controller.rb b/app/controllers/ci/cloud_accounts_controller.rb index ecbfdbf41..741ef53dc 100644 --- a/app/controllers/ci/cloud_accounts_controller.rb +++ b/app/controllers/ci/cloud_accounts_controller.rb @@ -12,10 +12,8 @@ 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) + flag, msg = check_bind_cloud_account! + return render_error(msg) if flag === true ActiveRecord::Base.transaction do @cloud_account = bind_account! @@ -56,10 +54,17 @@ class Ci::CloudAccountsController < Ci::BaseController end end + def unactivate + + end + def show end def bind + flag, msg = check_bind_cloud_account! + return render_error(msg) if flag === true + 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 038913ffe..033aa5ebe 100644 --- a/app/controllers/concerns/ci/cloud_account_manageable.rb +++ b/app/controllers/concerns/ci/cloud_account_manageable.rb @@ -91,6 +91,14 @@ module Ci::CloudAccountManageable result[:status].present? ? nil : result end + + def check_bind_cloud_account! + return [true, "你已经绑定了云帐号."] unless current_user.ci_cloud_account.blank? + + ip_num = IPAddr.new(devops_params[:ip_num]).to_i + Ci::CloudAccount.exists?(ip_num: ip_num) ? [true, "#{devops_params[:ip_num]}服务器已被使用."] : [false, nil] + end + private def devops_params params.permit(:account, :secret, :ip_num)