Sha256: 1311aa46288f350c71932edb330522b8e70005d56d735bd7270812d08f6f5f4a
Contents?: true
Size: 744 Bytes
Versions: 17
Compression:
Stored size: 744 Bytes
Contents
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
Version data entries
17 entries across 17 versions & 2 rubygems