class ContestPolicy < ApplicationPolicy def owner_or_admin if record == :contest true else record.user.id == user.id || user.admin? end end def index? owner_or_admin end def show? owner_or_admin end def new? owner_or_admin end def create? owner_or_admin end def convert? owner_or_admin end def convert_csv? owner_or_admin end def edit? owner_or_admin end def generate_qrcodes? owner_or_admin end def settings_general_edit? edit? end def settings_general_update? edit? end def settings_offline_edit? edit? end def settings_offline_update? edit? end def settings_categories_edit? edit? end def finalize_import? owner_or_admin end def update? owner_or_admin end def destroy? owner_or_admin end def import? owner_or_admin end def export? owner_or_admin end def generate_qrcodes_pdf? owner_or_admin end def upload_csv? owner_or_admin end def offline? record.offline_form && record.puzzles.length < 2 end def offline_new? offline? end def offline_create? offline? end def offline_edit? offline? end def offline_update? offline? end def offline_completed? offline? end def scoreboard? record.public end end