mirror of
https://github.com/varvet/pundit.git
synced 2022-11-09 12:30:11 -05:00
More informative error messages for multi permission checks checks.
This commit is contained in:
parent
a96e1c7ad6
commit
68603d82f6
1 changed files with 8 additions and 4 deletions
|
@ -7,19 +7,23 @@ module Pundit
|
|||
|
||||
matcher :permit do |user, record|
|
||||
match_proc = lambda do |policy|
|
||||
permissions.all? { |permission| policy.new(user, record).public_send(permission) }
|
||||
@violating_permissions = permissions.find_all { |permission| not policy.new(user, record).public_send(permission) }
|
||||
@violating_permissions.empty?
|
||||
end
|
||||
|
||||
match_when_negated_proc = lambda do |policy|
|
||||
permissions.none? { |permission| policy.new(user, record).public_send(permission) }
|
||||
@violating_permissions = permissions.find_all { |permission| policy.new(user, record).public_send(permission) }
|
||||
@violating_permissions.empty?
|
||||
end
|
||||
|
||||
failure_message_proc = lambda do |policy|
|
||||
"Expected #{policy} to grant #{permissions.to_sentence} on #{record} but it didn't"
|
||||
was_were = @violating_permissions.count > 1 ? "were" : "was"
|
||||
"Expected #{policy} to grant #{permissions.to_sentence} on #{record} but #{@violating_permissions.to_sentence} #{was_were} not granted"
|
||||
end
|
||||
|
||||
failure_message_when_negated_proc = lambda do |policy|
|
||||
"Expected #{policy} not to grant #{permissions.to_sentence} on #{record} but it did"
|
||||
was_were = @violating_permissions.count > 1 ? "were" : "was"
|
||||
"Expected #{policy} to grant #{permissions.to_sentence} on #{record} but #{@violating_permissions.to_sentence} #{was_were} granted"
|
||||
end
|
||||
|
||||
if respond_to?(:match_when_negated)
|
||||
|
|
Loading…
Add table
Reference in a new issue