class Decidim::Meetings::Admin::Permissions
def agenda
def agenda @agenda ||= context.fetch(:agenda, nil) end
def allowed_agenda_action?
def allowed_agenda_action? return unless permission_action.subject == :agenda case permission_action.action when :create toggle_allow(meeting.present?) when :update toggle_allow(agenda.present? && meeting.present?) end end
def allowed_export_answers?
def allowed_export_answers? return unless permission_action.subject == :questionnaire case permission_action.action when :export_answers permission_action.allow! end end
def allowed_meeting_action?
def allowed_meeting_action? return unless permission_action.subject == :meeting return disallow! if meeting && !meeting.official? case permission_action.action when :close, :copy, :destroy, :export_registrations, :update, :read_invites toggle_allow(meeting.present?) when :invite_attendee toggle_allow(meeting.present? && meeting.registrations_enabled?) when :create allow! end end
def allowed_poll_action?
def allowed_poll_action? return unless permission_action.subject == :poll case permission_action.action when :update toggle_allow(poll.present? && meeting.present?) end end
def allowed_registration_form_action?
def allowed_registration_form_action? return unless permission_action.subject == :questionnaire case permission_action.action when :update toggle_allow(registration_form.present?) end end
def meeting
def meeting @meeting ||= context.fetch(:meeting, nil) end
def permissions
def permissions return permission_action unless user return permission_action unless permission_action.scope == :admin allowed_registration_form_action? allowed_meeting_action? allowed_agenda_action? allowed_poll_action? allowed_export_answers? permission_action end
def poll
def poll @poll ||= context.fetch(:poll, nil) end
def registration_form
def registration_form @registration_form ||= context.fetch(:questionnaire, nil) end