Module: RailsExecution::PolicyHelper

Included in:
BaseController
Defined in:
app/helpers/rails_execution/policy_helper.rb

Instance Method Summary collapse

Instance Method Details

#can_close_task?(task) ⇒ Boolean

Returns:

  • (Boolean)


42
43
44
# File 'app/helpers/rails_execution/policy_helper.rb', line 42

def can_close_task?(task)
  task.in_processing? && ::RailsExecution.configuration.task_closable.call(current_owner, task)
end

#can_create_task?Boolean

Returns:

  • (Boolean)


34
35
36
# File 'app/helpers/rails_execution/policy_helper.rb', line 34

def can_create_task?
  ::RailsExecution.configuration.task_creatable.call(current_owner)
end

#can_edit_task?(task) ⇒ Boolean

Returns:

  • (Boolean)


38
39
40
# File 'app/helpers/rails_execution/policy_helper.rb', line 38

def can_edit_task?(task)
  ::RailsExecution.configuration.task_editable.call(current_owner, task)
end

#can_execute_task?(task) ⇒ Boolean

Returns:

  • (Boolean)


46
47
48
# File 'app/helpers/rails_execution/policy_helper.rb', line 46

def can_execute_task?(task)
  how_to_executable(task).blank?
end

#display_decide?(task) ⇒ Boolean

Returns:

  • (Boolean)


8
9
10
11
12
13
14
15
# File 'app/helpers/rails_execution/policy_helper.rb', line 8

def display_decide?(task)
  task &&
    current_owner &&
    task.owner &&
    current_owner != task.owner &&
    task.syntax_status_good? &&
    !task.is_completed?
end

#display_owner?(owner) ⇒ Boolean

Returns:

  • (Boolean)


4
5
6
# File 'app/helpers/rails_execution/policy_helper.rb', line 4

def display_owner?(owner)
  owner.present?
end

#display_reviewers?(task) ⇒ Boolean

Returns:

  • (Boolean)


17
18
19
# File 'app/helpers/rails_execution/policy_helper.rb', line 17

def display_reviewers?(task)
  task.task_reviews.exists?
end

#how_to_executable(task) ⇒ Object



50
51
52
53
54
55
56
57
58
59
60
61
# File 'app/helpers/rails_execution/policy_helper.rb', line 50

def how_to_executable(task)
  return 'Script is empty' if task.script.blank?
  return "Task is closed" if task.is_closed?
  return "It's bad Syntax" if task.syntax_status_bad?

  unless in_solo_mode?
    return 'This task is not approved' unless task.is_approved?
    return 'No approval from any reviewer' if task.task_reviews.is_approved.empty?
  end

  return "Can't executable by app policy" unless ::RailsExecution.configuration.task_executable.call(current_owner, task)
end

#in_solo_mode?Boolean

Returns:

  • (Boolean)


30
31
32
# File 'app/helpers/rails_execution/policy_helper.rb', line 30

def in_solo_mode?
  ::RailsExecution.configuration.solo_mode
end

#show_form_sidebar?(task) ⇒ Boolean

Returns:

  • (Boolean)


21
22
23
24
25
26
27
28
# File 'app/helpers/rails_execution/policy_helper.rb', line 21

def show_form_sidebar?(task)
  return false unless (task.new_record? || task.in_processing?)

  [
    ::RailsExecution.configuration.file_upload,
    !in_solo_mode? && ::RailsExecution.configuration.reviewers.present?,
  ].any?
end