Class: ExamRegistration

Inherits:
ApplicationRecord show all
Includes:
TerminalNavigation, WithTimedEnablement
Defined in:
app/models/exam_registration.rb

Defined Under Namespace

Classes: AuthorizationCriterion

Instance Method Summary collapse

Methods included from TerminalNavigation

#friendly, #navigable_name, #navigation_end?, #siblings, #structural_parent

Methods included from WithTimedEnablement

#enabled?, #enabled_range

Methods inherited from ApplicationRecord

aggregate_of, all_except, defaults, #delete, #destroy!, enum_prefixed_translations_for, numbered, organic_on, resource_fields, #save, #save_and_notify!, #save_and_notify_changes!, serialize_symbolized_hash_array, teaser_on, #update_and_notify!, update_or_create!, whitelist_attributes

Instance Method Details

#authorization_criterionObject



17
18
19
# File 'app/models/exam_registration.rb', line 17

def authorization_criterion
  @authorization_criterion ||= ExamRegistration::AuthorizationCriterion.parse(authorization_criterion_type, authorization_criterion_value)
end

#authorization_request_for(user) ⇒ Object



36
37
38
39
# File 'app/models/exam_registration.rb', line 36

def authorization_request_for(user)
  authorization_requests.find_by(user: user) ||
    ExamAuthorizationRequest.new(exam_registration: self, organization: organization)
end

#ensure_valid_authorization_criterion!Object



21
22
23
# File 'app/models/exam_registration.rb', line 21

def ensure_valid_authorization_criterion!
  authorization_criterion.ensure_valid!
end

#process_requests!Object



29
30
31
32
33
34
# File 'app/models/exam_registration.rb', line 29

def process_requests!
  authorization_requests.each do |it|
    process_request! it
    it.try_authorize!
  end
end

#start!(users) ⇒ Object



25
26
27
# File 'app/models/exam_registration.rb', line 25

def start!(users)
  users.each &method(:notify_user!)
end