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

#can_remove_scheduled_job?(task) ⇒ Boolean

Returns:

  • (Boolean)


75
76
77
# File 'app/helpers/rails_execution/policy_helper.rb', line 75

def can_remove_scheduled_job?(task)
  task.jid.present?
end

#can_schedule_task?(task) ⇒ Boolean

Returns:

  • (Boolean)


64
65
66
# File 'app/helpers/rails_execution/policy_helper.rb', line 64

def can_schedule_task?(task)
  how_to_schedulable(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
62
# 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?
  return "This task is being processed" if task.is_processing?

  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

#how_to_schedulable(task) ⇒ Object



68
69
70
71
72
73
# File 'app/helpers/rails_execution/policy_helper.rb', line 68

def how_to_schedulable(task)
  execute_message = how_to_executable(task)
  return execute_message if execute_message
  return "Time is not set for schedule" if task.scheduled_at.nil?
  return "Scheduled at time in the past" if task.scheduled_at.past?
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