Module: CommandProposal::PermissionsHelper
- Defined in:
- app/helpers/command_proposal/permissions_helper.rb
Instance Method Summary collapse
- #approval_required?(task_type = nil) ⇒ Boolean
- #can_approve?(iteration) ⇒ Boolean
- #can_command?(user = command_user) ⇒ Boolean
- #cmd_config ⇒ Object
- #command_user(user = nil) ⇒ Object
- #current_is_author?(iteration) ⇒ Boolean
- #has_approval?(task) ⇒ Boolean
- #permitted_to_use? ⇒ Boolean
Instance Method Details
#approval_required?(task_type = nil) ⇒ Boolean
25 26 27 28 29 30 31 32 |
# File 'app/helpers/command_proposal/permissions_helper.rb', line 25 def approval_required?(task_type=nil) return false unless cmd_config.approval_required? return true if task_type.blank? skips = cmd_config.skip_approval_for_types.presence || [] Array.wrap(skips).map(&:to_sym).exclude?(task_type.to_sym) end |
#can_approve?(iteration) ⇒ Boolean
10 11 12 13 14 15 16 |
# File 'app/helpers/command_proposal/permissions_helper.rb', line 10 def can_approve?(iteration) return false unless permitted_to_use? return true unless approval_required?(iteration.task.session_type) return if iteration.nil? command_user.try("#{cmd_config.role_scope}?") && !(iteration) end |
#can_command?(user = command_user) ⇒ Boolean
3 4 5 6 7 8 |
# File 'app/helpers/command_proposal/permissions_helper.rb', line 3 def can_command?(user=command_user) return false unless permitted_to_use? return true unless approval_required? command_user.try("#{cmd_config.role_scope}?") end |
#cmd_config ⇒ Object
58 59 60 |
# File 'app/helpers/command_proposal/permissions_helper.rb', line 58 def cmd_config ::CommandProposal.configuration end |
#command_user(user = nil) ⇒ Object
46 47 48 49 50 51 52 53 54 55 56 |
# File 'app/helpers/command_proposal/permissions_helper.rb', line 46 def command_user(user=nil) @command_user ||= begin if user.present? user elsif cmd_config.controller_var.blank? nil else send(cmd_config.controller_var) end end end |
#current_is_author?(iteration) ⇒ Boolean
34 35 36 37 38 |
# File 'app/helpers/command_proposal/permissions_helper.rb', line 34 def (iteration) return false unless permitted_to_use? command_user&.id == iteration&.requester&.id end |
#has_approval?(task) ⇒ Boolean
18 19 20 21 22 23 |
# File 'app/helpers/command_proposal/permissions_helper.rb', line 18 def has_approval?(task) return false unless permitted_to_use? return true unless approval_required?(task.session_type) task&.approved? end |
#permitted_to_use? ⇒ Boolean
40 41 42 43 44 |
# File 'app/helpers/command_proposal/permissions_helper.rb', line 40 def permitted_to_use? return true if cmd_config.controller_var.blank? command_user&.send("#{cmd_config.role_scope}?") end |