Module: Audiences

Includes:
ActiveSupport::Configurable
Defined in:
lib/audiences.rb,
lib/audiences/scim.rb,
lib/audiences/model.rb,
lib/audiences/engine.rb,
lib/audiences/version.rb,
app/models/audiences/group.rb,
lib/audiences/configuration.rb,
lib/audiences/editor_helper.rb,
lib/audiences/notifications.rb,
lib/audiences/scim/patch_op.rb,
app/models/audiences/context.rb,
lib/audiences/scim/scim_data.rb,
app/models/audiences/criterion.rb,
app/models/audiences/membership.rb,
lib/audiences/scim/field_mapping.rb,
lib/audiences/scim/observer_base.rb,
app/models/audiences/users_search.rb,
app/models/audiences/external_user.rb,
app/models/audiences/criterion_group.rb,
app/models/audiences/context/locating.rb,
app/models/audiences/group_membership.rb,
app/models/audiences/application_record.rb,
app/models/audiences/context_extra_user.rb,
lib/audiences/scim/patch_users_observer.rb,
lib/audiences/scim/patch_groups_observer.rb,
lib/audiences/scim/upsert_users_observer.rb,
lib/audiences/scim/upsert_groups_observer.rb,
app/controllers/audiences/contexts_controller.rb,
app/models/concerns/audiences/membership_group.rb,
app/controllers/audiences/scim_proxy_controller.rb,
app/controllers/audiences/application_controller.rb

Overview

Audiences system Audiences pushes notifications to your rails app when a SCIM backend updates a user, notifying matching audiences.

Defined Under Namespace

Modules: EditorHelper, MembershipGroup, Model, Notifications, Scim Classes: ApplicationController, ApplicationRecord, Context, ContextExtraUser, ContextsController, Criterion, CriterionGroup, Engine, ExternalUser, Group, GroupMembership, Membership, ScimProxyController, UsersSearch

Constant Summary collapse

VERSION =
"2.0.0"

Class Method Summary collapse

Class Method Details

.update(key, criteria: [], extra_users: [], match_all: false) ⇒ Object

Updates the given context

Params might contain:

match_all: Boolean criteria: { groups: Array<{ <group_type>: Array<{ id: Integer }> }> }

Parameters:

  • token (String)

    a signed token (see #sign)

  • params (Hash)

    the updated params

Returns:

  • Audience::Context



28
29
30
31
32
33
34
35
36
# File 'lib/audiences.rb', line 28

def update(key, criteria: [], extra_users: [], match_all: false)
  Audiences::Context.load(key) do |context|
    context.update!(
      match_all: match_all,
      extra_users: ::Audiences::ExternalUser.from_scim(*extra_users.map(&:with_indifferent_access)),
      criteria: ::Audiences::Criterion.map(criteria.map(&:with_indifferent_access))
    )
  end
end