forgeplus/app/controllers/users/applied_transfer_projects_c...

41 lines
1.5 KiB
Ruby
Raw Permalink Normal View History

2021-04-25 18:41:13 +08:00
class Users::AppliedTransferProjectsController < Users::BaseController
before_action :check_auth
before_action :find_applied_transfer_project, except: [:index]
before_action :find_project, except: [:index]
def index
2021-04-26 15:17:51 +08:00
user_collection_sql = AppliedTransferProject.where(owner_id: @_observed_user.id).to_sql
2021-04-25 18:41:13 +08:00
org_collection_sql = AppliedTransferProject.where(owner_id: Organization.joins(team_users: :team).where(team_users: {user_id: @_observed_user.id}, teams: {authorize: %w(admin owner)} )).to_sql
@applied_transfer_projects = AppliedTransferProject.from("( #{ user_collection_sql } UNION #{ org_collection_sql } ) AS applied_transfer_projects")
2021-04-26 16:50:50 +08:00
@applied_transfer_projects = paginate @applied_transfer_projects.order("created_at desc")
2021-04-25 18:41:13 +08:00
end
# 接受迁移
def accept
@applied_transfer_project = Projects::AcceptTransferService.call(current_user, @project)
rescue Exception => e
uid_logger_error(e.message)
tip_exception(e.message)
end
# 拒绝迁移
def refuse
@applied_transfer_project = Projects::RefuseTransferService.call(current_user, @project)
rescue Exception => e
uid_logger_error(e.message)
tip_exception(e.message)
end
private
def check_auth
2021-06-09 16:53:09 +08:00
return render_forbidden unless current_user.admin? || observed_logged_user?
2021-04-25 18:41:13 +08:00
end
def find_applied_transfer_project
@applied_transfer_project = AppliedTransferProject.find_by_id params[:id]
end
def find_project
@project = @applied_transfer_project.project
end
end