Class: Sufia::Forms::PermissionTemplateForm

Inherits:
Object
  • Object
show all
Includes:
HydraEditor::Form
Defined in:
app/forms/sufia/forms/permission_template_form.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(model) ⇒ PermissionTemplateForm

Returns a new instance of PermissionTemplateForm.



33
34
35
36
37
38
39
40
41
# File 'app/forms/sufia/forms/permission_template_form.rb', line 33

def initialize(model)
  # This is a temporary way to make sure all new PermissionTemplates have
  # a workflow assigned to them. Ultimately we want to expose workflows in
  # the UI and have users choose a workflow for their PermissionTemplate.
  model.workflow_name = 'one_step_mediated_deposit'
  super(model)
  # Ensure proper form options selected, based on model
  select_release_varies_option(model)
end

Instance Attribute Details

#release_embargoObject

Selected release embargo timeframe (if any) under release “Varies” option



12
13
14
# File 'app/forms/sufia/forms/permission_template_form.rb', line 12

def release_embargo
  @release_embargo
end

#release_variesObject

Stores which radio button under release “Varies” option is selected



10
11
12
# File 'app/forms/sufia/forms/permission_template_form.rb', line 10

def release_varies
  @release_varies
end

Instance Method Details

#embargo_optionsObject

Embargo / release period options



25
26
27
28
29
30
31
# File 'app/forms/sufia/forms/permission_template_form.rb', line 25

def embargo_options
  i18n_prefix = "sufia.admin.admin_sets.form_visibility.release.varies.embargo"
  [[Sufia::PermissionTemplate::RELEASE_TEXT_VALUE_6_MONTHS, I18n.t('.6mos', scope: i18n_prefix)],
   [Sufia::PermissionTemplate::RELEASE_TEXT_VALUE_1_YEAR, I18n.t('.1yr', scope: i18n_prefix)],
   [Sufia::PermissionTemplate::RELEASE_TEXT_VALUE_2_YEARS, I18n.t('.2yrs', scope: i18n_prefix)],
   [Sufia::PermissionTemplate::RELEASE_TEXT_VALUE_3_YEARS, I18n.t('.3yrs', scope: i18n_prefix)]]
end

#update(attributes) ⇒ Object



43
44
45
46
47
48
# File 'app/forms/sufia/forms/permission_template_form.rb', line 43

def update(attributes)
  manage_grants = grants_as_collection(attributes).select { |x| x[:access] == 'manage' }
  grant_admin_set_access(manage_grants) if manage_grants.present?
  update_release_attributes(attributes)
  model.update(attributes)
end

#visibility_optionsObject

Visibility options for permission templates



15
16
17
18
19
20
21
22
# File 'app/forms/sufia/forms/permission_template_form.rb', line 15

def visibility_options
  i18n_prefix = "sufia.admin.admin_sets.form_visibility.visibility"
  # Note: Visibility 'varies' = '' implies no constraints
  [[Hydra::AccessControls::AccessRight::VISIBILITY_TEXT_VALUE_PUBLIC, I18n.t('.everyone', scope: i18n_prefix)],
   ['', I18n.t('.varies', scope: i18n_prefix)],
   [Hydra::AccessControls::AccessRight::VISIBILITY_TEXT_VALUE_AUTHENTICATED, I18n.t('.institution', scope: i18n_prefix)],
   [Hydra::AccessControls::AccessRight::VISIBILITY_TEXT_VALUE_PRIVATE, I18n.t('.restricted', scope: i18n_prefix)]]
end