Class: Hyrax::Forms::PermissionTemplateForm

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(model) ⇒ PermissionTemplateForm

Returns a new instance of PermissionTemplateForm.


39
40
41
42
43
# File 'app/forms/hyrax/forms/permission_template_form.rb', line 39

def initialize(model)
  super(model)
  # Ensure proper form options selected, based on model
  select_release_varies_option(model)
end

Instance Attribute Details

#attributesObject

Adding attributes hash to state to avoid having to pass it around


25
26
27
# File 'app/forms/hyrax/forms/permission_template_form.rb', line 25

def attributes
  @attributes
end

#release_embargoObject

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


19
20
21
# File 'app/forms/hyrax/forms/permission_template_form.rb', line 19

def release_embargo
  @release_embargo
end

#release_variesObject

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


17
18
19
# File 'app/forms/hyrax/forms/permission_template_form.rb', line 17

def release_varies
  @release_varies
end

#workflow_idObject


27
28
29
# File 'app/forms/hyrax/forms/permission_template_form.rb', line 27

def workflow_id
  @workflow_id || active_workflow.try(:id)
end

Instance Method Details

#embargo_optionsObject


35
36
37
# File 'app/forms/hyrax/forms/permission_template_form.rb', line 35

def embargo_options
  Widgets::AdminSetEmbargoPeriod.new.options
end

#id#to_s

def source_id (because you might come looking for this method)

Returns:

  • (#to_s)

    the primary key of the associated admin_set or collection


13
# File 'app/forms/hyrax/forms/permission_template_form.rb', line 13

delegate :id, to: :source_model, prefix: :source

#remove_access!(permission_template_access) ⇒ Void

This method is used to revoke access to a Collection or Admin Set and its workflows

Returns:

  • (Void)

76
77
78
79
# File 'app/forms/hyrax/forms/permission_template_form.rb', line 76

def remove_access!(permission_template_access)
  construct_attributes_from_template_access!(permission_template_access)
  update_access(remove_agent: true)
end

#update(attributes) ⇒ Hash{Symbol => String, Boolean}

Returns { :content_tab (for confirmation message), :updated (true/false),

:error_code (for flash error lookup) }.

Returns:

  • (Hash{Symbol => String, Boolean})

    { :content_tab (for confirmation message), :updated (true/false),

    :error_code (for flash error lookup) }
    

48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# File 'app/forms/hyrax/forms/permission_template_form.rb', line 48

def update(attributes)
  @attributes = attributes
  return_info = { content_tab: tab_to_update }
  error_code = nil
  case return_info[:content_tab]
  when "participants"
    update_participants_options
  when "visibility"
    error_code = update_visibility_options
  when "workflow"
    grant_workflow_roles
  end
  return_info[:error_code] = error_code if error_code
  return_info[:updated] = error_code ? false : true
  return_info
end

#update_access(remove_agent: false) ⇒ Object

Copy this access to the permissions of the Admin Set or Collection and to the WorkflowResponsibilities of the active workflow if this is an Admin Set


68
69
70
71
# File 'app/forms/hyrax/forms/permission_template_form.rb', line 68

def update_access(remove_agent: false)
  reset_access_controls!
  update_workflow_responsibilities(remove_agent: remove_agent) if source_model.is_a?(AdminSet)
end

#visibility_optionsObject


31
32
33
# File 'app/forms/hyrax/forms/permission_template_form.rb', line 31

def visibility_options
  Widgets::AdminSetVisibility.new.options
end