@@ -71,12 +71,23 @@ public function __construct($config, $reserved)
7171
7272 public function process (&$ request )
7373 {
74- $ eduPersonEntitlement = $ this ->getEduPersonEntitlement ($ request );
74+ $ eduPersonEntitlement = [];
75+ $ capabilities = [];
7576 $ forwardedEduPersonEntitlement = [];
77+
78+ if (isset ($ request ['perun ' ]['groups ' ])) {
79+ $ eduPersonEntitlement = $ this ->getEduPersonEntitlement ($ request );
80+ $ capabilities = $ this ->getCapabilities ($ request );
81+ } else {
82+ Logger::debug (
83+ 'perun:PerunEntitlement: There are no user groups assign to facility. ' .
84+ '=> Skipping getEduPersonEntitlement and getResourceCapabilities '
85+ );
86+ }
87+
7688 if ($ this ->releaseForwardedEntitlement ) {
7789 $ forwardedEduPersonEntitlement = $ this ->getForwardedEduPersonEntitlement ($ request );
7890 }
79- $ capabilities = $ this ->getCapabilities ($ request );
8091
8192 $ request ['Attributes ' ][$ this ->eduPersonEntitlement ] = array_unique (array_merge (
8293 $ eduPersonEntitlement ,
@@ -87,20 +98,9 @@ public function process(&$request)
8798
8899 private function getEduPersonEntitlement (&$ request )
89100 {
90- if (isset ($ request ['perun ' ]['groups ' ])) {
91- /** allow IDE hint whisperer
92- * @var model\Group[] $groups
93- */
94- $ groups = $ request ['perun ' ]['groups ' ];
95- } else {
96- throw new Exception (
97- 'perun:PerunEntitlement: ' .
98- 'missing mandatory field \'perun.groups \' in request. ' .
99- 'Hint: Did you configure PerunIdentity filter before this filter? '
100- );
101- }
102-
103101 $ eduPersonEntitlement = [];
102+
103+ $ groups = $ request ['perun ' ]['groups ' ];
104104 foreach ($ groups as $ group ) {
105105 $ groupName = $ group ->getUniqueName ();
106106 $ groupName = preg_replace ('/^(\w*)\:members$/ ' , '$1 ' , $ groupName );
@@ -129,6 +129,14 @@ private function getEduPersonEntitlement(&$request)
129129 private function getForwardedEduPersonEntitlement (&$ request )
130130 {
131131 $ forwardedEduPersonEntitlement = [];
132+
133+ if (!isset ($ request ['perun ' ]['user ' ])) {
134+ Logger::debug (
135+ 'perun:PerunEntitlement: Object Perun User is not specified. => Skipping getting forwardedEntitlement. '
136+ );
137+ return $ forwardedEduPersonEntitlement ;
138+ }
139+
132140 $ user = $ request ['perun ' ]['user ' ];
133141 $ forwardedEduPersonEntitlementMap = $ this ->adapter ->getUserAttributes (
134142 $ user ,
0 commit comments