Skip to main content

Agreements

The Agreements module gives WinnerWare a controlled way to present terms, policies, or acknowledgements that users must accept before they continue.

Overview

This module is useful when teams need a repeatable process for showing agreements, recording acceptance, and optionally collecting structured responses. It supports both local agreement management and a central publishing model for agreements that need wider use.

The implementation is split into three features:

FeaturePurpose
CloudSolutions.AgreementsAlways-enabled sign-in enforcement and agreement acceptance flow.
CloudSolutions.Agreements.ManagementAgreement content type creation and editor UI for authors.
CloudSolutions.Agreements.DefaultTenantCentral agreement management for shared agreements.

Key Features

  • Redirects signed-in users to an agreement page when their claims indicate they still have agreements to accept.
  • Stores accepted agreements against the user account.
  • Creates an Agreement content item with title, body, version, and option settings.
  • Supports optional single-select or multi-select agreement responses.
  • Allows centrally managed agreements to be marked as shared and surfaced more broadly.
  • Supports a configurable signing page route.

How It Works

Required acceptance at sign-in

When a user still has agreements to accept, WinnerWare routes them to the agreement page before they continue into the rest of the application.

Agreement authoring

With the management feature enabled, administrators work with an Agreement content item and its related fields:

ItemPurpose
VersionTracks the agreement version the user accepted.
Effective AtStores an optional effective date.
Required During Sign inMakes the agreement part of the sign-in acceptance flow.
DetailsStores the agreement body shown to the user.
OptionsStores optional response choices for the user to select.
Is GlobalMarks the agreement as shared when central management is enabled.

Acceptance flow

WinnerWare shows each required agreement, validates the submitted responses, records the acceptance, and then returns the user to the application.

The default signing path is:

/Account/Agreement

Configuration

Enable the right features

The main agreement feature is always enabled, so the base agreement acceptance flow is present as soon as the module is available.

Enable Agreements Management when administrators need to create and edit agreement content.

Enable Agreements Default Tenant when a central site should create shared agreements for other sites.

Authoring fields

The agreement editors expose these practical fields:

FieldMeaning
VersionInteger version recorded with the user's acceptance.
Effective AtOptional effective date stored on the agreement part.
Required During Sign inBoolean flag stored on the agreement part.
DetailsMain HTML body displayed to the user.
Add options to select fromEnables structured responses on the acceptance form.
Selection TypeSingle or multiple response mode.
Require the user to select an optionMakes an option choice mandatory in addition to acceptance.
Is GlobalMarks the agreement for shared use when central agreement management is enabled.

Options JSON format

When AgreementOptionsPart is enabled for an agreement, the editor expects JSON similar to:

[
{
"Text": "I prefer email communication",
"Value": "email"
}
]

Route configuration

AgreementOptions.PathToSigningPage controls the agreement route and normalizes the value to a leading-slash path. The module does not expose a dedicated admin UI for this option in the current implementation, so it should be configured through application options.

Usage

Create an agreement

  1. Enable Agreements Management.
  2. Create an Agreement content item.
  3. Enter a title, version, body content, and any optional response choices.
  4. Publish the agreement.

Collect required acknowledgement

When a signed-in user has missing agreement claims, the application redirects them to the agreement page. The page renders each agreement in a card, shows any required options, and records the acceptance when the user submits the form.

Publish shared agreements centrally

When the central agreement feature is enabled, authors can mark an agreement as shared so it can be reused more broadly.

Operational Notes

  • Use versioning carefully so users are only asked to accept new agreement revisions when required.
  • Keep the agreement body clear and readable because this is the main acceptance screen users see.
  • Use response options only when the process truly needs a structured acknowledgement in addition to simple acceptance.