We have moved!

You are currently looking at documentation for Umbraco 8 and older versions.
An automated guess is that docs.umbraco.com/umbraco-cms/reference/management/services/consentservice/ could be the link to the new documentation for Umbraco 9 and newer versions.

    ConsentService

    Applies to Umbraco 7.9 and newer

    Browse the API documentation for ConsentService.

    • Namespace: Umbraco.Core.Services
    • Assembly: Umbraco.Core.dll

    A service for handling lawful data processing requirements.

    A consent is fully identified by a source (whoever is consenting), a context (for example, an application), and an action (whatever is consented). A consent state registers the state of the consent (granted, revoked...).

    Consent can be given or revoked or changed via the RegisterConsent method, which creates a new Consent entity to track the consent.

    Get the current state

    Getter methods of this service return the current state of a consent, i.e. the latest IConsent entity that was created.

    Revoking a consent is performed by registering a revoked consent.

    A consent cannot be deleted. It can only be revoked by registering a "revoked consent".

    Examples

    // store a new consent
    var newConsent = ServiceContext.ConsentService.RegisterConsent("userId", "Our.Custom.Umbraco.Plugin", "AllowedToEmail", ConsentState.Granted, "some comments");
    
    // lookup a consent
    var consents = ServiceContext.ConsentService.LookupConsent("userId", "Our.Custom.Umbraco.Plugin", "AllowedToEmail", sourceStartsWith : true);
    if (consents != null && consents.Any())
    {
        var currentConsent = consents.First(c => c.Current == true);
        if(currentConsent.State  == ConsentState.Granted)
        {
            // Do what you need
        }
        else
        {
            // the state is None, Pending or Revoked
        }
    }