Module: LcpRuby::ConditionServices::CurrentUserRole
- Defined in:
- lib/lcp_ruby/condition_services/current_user_role.rb
Overview
Roles are read via ‘LcpRuby.user_roles(user)`, which honours `Configuration#role_method` across `:none`/`:built_in`/`:external` auth modes. See docs/reference/condition-operators.md for usage.
Class Method Summary collapse
Class Method Details
.call(_record, context: {}, **args) ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/lcp_ruby/condition_services/current_user_role.rb', line 8 def call(_record, context: {}, **args) user = context[:current_user] user_roles = LcpRuby.user_roles(user) if args.key?(:in) allowed = Array(args[:in]).map(&:to_s) return false if user_roles.empty? allowed.any? { |role| user_roles.include?(role) } elsif args.key?(:not_in) denied = Array(args[:not_in]).map(&:to_s) return true if user_roles.empty? denied.none? { |role| user_roles.include?(role) } else raise LcpRuby::ConditionError, "current_user_role service requires 'in:' or 'not_in:' argument" end end |