|
- module Devopsable
- extend ActiveSupport::Concern
-
- included do
- end
-
- # ci 权限验证
- def ci_authorize!
- 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 暂时限制项目拥有者才有权限操作
- def limit_project_owner_can_devops!(user, project)
- return if project.owner? user
- render_forbidden
- end
-
- def find_cloud_account
- @cloud_account = Ci::CloudAccount.find params[:id]
- 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
|