Sha256: 5f650c1559967a712142071020e93394093fd916fe7c291248528610104a3599

Contents?: true

Size: 1.04 KB

Versions: 6

Compression:

Stored size: 1.04 KB

Contents

# -*- encoding : utf-8 -*-
class Card; module Set; class Right
# Set: All "+Roles" cards
#
module Roles;
extend Card::Set
def self.source_location; "/Users/ethan/dev/decko/gem/card-mod-account/set/right/roles.rb"; end
event :validate_permission_to_assign_roles, :validate, on: :save do
  return unless (fr = forbidden_roles).present?

  errors.add :permission_denied,
             "You don't have permission to assign the role#{'s' if fr.size > 1} "\
             "#{fr.map(&:name).to_sentence}"   # LOCALIZE
end

def forbidden_roles
  # restore old roles for permission check
  with_old_role_permissions do |new_roles|
    new_roles.select do |card|
      !Card.fetch(card, "*members").ok? :update
    end
  end
end

def with_old_role_permissions
  new_roles = item_cards
  new_content = content
  left.clear_roles
  Auth.update_always_cache Card::Auth.as_id, nil
  self.content = db_content_before_act
  yield new_roles
ensure
  self.content = new_content
end
end;end;end;end;
# ~~ generated from /Users/ethan/dev/decko/gem/card-mod-account/set/right/roles.rb ~~

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
card-1.101.5 tmpsets/set/mod011-card-mod-account/right/roles.rb
card-1.101.4 tmpsets/set/mod011-card-mod-account/right/roles.rb
card-1.101.3 tmpsets/set/mod011-card-mod-account/right/roles.rb
card-1.101.2 tmpsets/set/mod011-card-mod-account/right/roles.rb
card-1.101.1 tmpsets/set/mod011-card-mod-account/right/roles.rb
card-1.101.0 tmpsets/set/mod011-card-mod-account/right/roles.rb