forgeplus/app/controllers/concerns/devopsable.rb

33 lines
844 B
Ruby
Raw Normal View History

2020-08-06 14:26:19 +08:00
module Devopsable
extend ActiveSupport::Concern
included do
end
2020-08-13 23:38:32 +08:00
# ci 权限验证
2020-08-24 14:28:30 +08:00
def ci_authorize!
2020-08-06 14:26:19 +08:00
render_forbidden unless @project.owner?(current_user)
end
def auto_load_project
@project = Project.find_by(id: params[:project_id]) || Project.find_by(identifier: params[:project_id])
render_not_found('未找到相关的项目') if @project.blank?
end
# TODO 暂时限制项目拥有者才有权限操作
2020-08-21 14:53:48 +08:00
def limit_project_owner_can_devops!(user, project)
return if project.owner? user
2020-08-06 14:26:19 +08:00
render_forbidden
end
def find_cloud_account
2020-08-13 23:38:32 +08:00
@cloud_account = Ci::CloudAccount.find params[:id]
2020-08-06 14:26:19 +08:00
end
def set_drone_token!(user, cloud_account, drone_token)
return if user.devops_has_token?
cloud_account.update_column(:drone_token, drone_token)
user.set_drone_step!(User::DEVOPS_HAS_TOKEN)
end
end