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.
-
onlyIfEmpty
- Only replace the targetAttribute if it is empty to begin with.
-
If
true
, then the targetAttribute will only be created if it didn't already contain values. Defaults tofalse
. - This is useful if, for instance, you want to create eduPersonScopedAffiliation from eduPersonAffiliation only if eduPersonScopedAffiliation was not returned by the authenticaton source.
Example
Add eduPersonScopedAffiliation based on eduPersonAffiliation and eduPersonPrincipalName.
10 => [
'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
.