1414 * This filter joins eduPersonEntitlement, forwardedEduPersonEntitlement and resource capabilities
1515 *
1616 * @author Dominik Baránek <[email protected] > 17+ * @author Pavel Vyskočil <[email protected] > 1718 */
1819class PerunEntitlement extends ProcessingFilter
1920{
2021 const CONFIG_FILE_NAME = 'module_perun.php ' ;
2122 const EDU_PERSON_ENTITLEMENT = 'eduPersonEntitlement ' ;
23+ const RELEASE_FORWARDED_ENTITLEMENT = 'releaseForwardedEntitlement ' ;
2224 const FORWARDED_EDU_PERSON_ENTITLEMENT = 'forwardedEduPersonEntitlement ' ;
2325 const ENTITLEMENTPREFIX_ATTR = 'entitlementPrefix ' ;
2426 const ENTITLEMENTAUTHORITY_ATTR = 'entitlementAuthority ' ;
2527 const GROUPNAMEAARC_ATTR = 'groupNameAARC ' ;
2628 const INTERFACE_PROPNAME = 'interface ' ;
2729
2830 private $ eduPersonEntitlement ;
31+ private $ releaseForwardedEntitlement ;
2932 private $ forwardedEduPersonEntitlement ;
3033 private $ entitlementPrefix ;
3134 private $ entitlementAuthority ;
@@ -45,8 +48,12 @@ public function __construct($config, $reserved)
4548 self ::EDU_PERSON_ENTITLEMENT . '. '
4649 );
4750 }
51+ $ configuration = Configuration::loadFromArray ($ config );
52+
4853 $ this ->eduPersonEntitlement = $ config [self ::EDU_PERSON_ENTITLEMENT ];
4954
55+ $ this ->releaseForwardedEntitlement = $ configuration ->getBoolean (self ::RELEASE_FORWARDED_ENTITLEMENT , true );
56+
5057 if (!isset ($ config [self ::FORWARDED_EDU_PERSON_ENTITLEMENT ])) {
5158 throw new Exception (
5259 'perun:PerunEntitlement: missing mandatory configuration option ' .
@@ -77,7 +84,10 @@ public function __construct($config, $reserved)
7784 public function process (&$ request )
7885 {
7986 $ eduPersonEntitlement = $ this ->getEduPersonEntitlement ($ request );
80- $ forwardedEduPersonEntitlement = $ this ->getForwardedEduPersonEntitlement ($ request );
87+ $ forwardedEduPersonEntitlement = [];
88+ if ($ this ->releaseForwardedEntitlement ) {
89+ $ forwardedEduPersonEntitlement = $ this ->getForwardedEduPersonEntitlement ($ request );
90+ }
8191 $ resourceCapabilities = $ this ->getResourceCapabilities ($ request );
8292
8393 $ request ['Attributes ' ][$ this ->eduPersonEntitlement ] = array_unique (array_merge (
0 commit comments