`core:ScopeAttribute`
=====================

A filter which combines two attributes into a scoped attribute.

Parameters
----------

`scopeAttribute`
:   The attribute that contains the scope.

:   If the attribute contains a '@', we will take the scope from the part following the '@'.
    Otherwise, we will use the entire value.

:   If the attribute is multi-valued, we will add all the scopes to the target.


`sourceAttribute`
:   The attribute that contains the values we shall add the scope to.

:   This attribute can be multi-valued, in which case we will add all the values.

`targetAttribute`
:   The attribute we shall add the scoped attributes to.

:   If the attribute already exists, the new values will be merged into the existing attribute.


Example
-------

Add eduPersonScopedAffiliation based on eduPersonAffiliation and eduPersonPrincipalName.

    10 => array(
        'class' => 'core:ScopeAttribute',
        'scopeAttribute' => 'eduPersonPrincipalName',
        'sourceAttribute' => 'eduPersonAffiliation',
        'targetAttribute' => 'eduPersonScopedAffiliation',
    ),


`core:ScopeAttribute`
=====================

A filter which combines two attributes into a scoped attribute.
That is, the value will be `something@scope`, usually to make it globally unique.

Parameters
----------

`scopeAttribute`
:   The attribute that contains the scope.

:   If the attribute contains a '@', we will take the scope from the part following the '@'.
    Otherwise, we will use the entire value.

:   If the attribute is multi-valued, we will add all the scopes to the target.


`sourceAttribute`
:   The attribute that contains the values we shall add the scope to.

:   This attribute can be multi-valued, in which case we will add all the values.

`targetAttribute`
:   The attribute we shall add the scoped attributes to.

:   If the attribute already exists, the new values will be merged into the existing attribute.


Example
-------

Add eduPersonScopedAffiliation based on eduPersonAffiliation and eduPersonPrincipalName.

    10 => array(
        'class' => 'core:ScopeAttribute',
        'scopeAttribute' => 'eduPersonPrincipalName',
        'sourceAttribute' => 'eduPersonAffiliation',
        'targetAttribute' => 'eduPersonScopedAffiliation',
    ),

With values being `eduPersonPrincipalName`: `jdoe@example.edu` and
`eduPersonAffiliation`: `faculty`, this will result in the attribute
`eduPersonScopedAffiliation` with value `faculty@example.edu`.

Make explicit what scope means and give result of the example.
Make explicit what scope means and give result of the example.
