You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
28 lines
1.0 KiB
28 lines
1.0 KiB
class Competitions::CertificatesController < Competitions::BaseController
|
|
def personal
|
|
prize_user =
|
|
if current_user.admin_or_business?
|
|
CompetitionPrizeUser.find(params[:id])
|
|
else
|
|
CompetitionPrizeUser.find_by!(user: current_user, id: params[:id])
|
|
end
|
|
return render_not_found unless prize_user.certificate_exist?
|
|
|
|
team = prize_user.competition_team
|
|
prize = prize_user.competition_prize
|
|
filename = "#{current_competition.name}-#{prize.name}-#{team.name}-#{prize_user.user.real_name}.pdf"
|
|
|
|
send_file prize_user.certificate_path, filename: filename
|
|
end
|
|
|
|
def team
|
|
team = CompetitionTeam.find(params[:id])
|
|
return render_forbidden unless current_user.admin_or_business? || team.team_members.exists?(user_id: current_user.id)
|
|
return render_not_found unless team.certificate_exists?
|
|
|
|
prize = team.competition_prize_users.first.competition_prize
|
|
filename = "#{current_competition.name}-#{prize.name}-#{team.name}.pdf"
|
|
|
|
send_file team.certificate_path, filename: filename
|
|
end
|
|
end |