Passed
Push — release_2_1 ( 8ffb06...6b1ac5 )
by Maja
10:32
created
web/admin/API.php 3 patches
Indentation   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -417,7 +417,7 @@
 block discarded – undo
417 417
         $userId = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_SB_USERID);
418 418
         $userName = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_SB_USERNAME);
419 419
         $certSerial = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_SB_CERTSERIAL);
420
-		$certCN = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_SB_CERTCN);
420
+        $certCN = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_SB_CERTCN);
421 421
         if ($userId === FALSE && $userName === FALSE && $certSerial === FALSE && $certCN === FALSE) {
422 422
             // we need at least one of those
423 423
             $adminApi->returnError(\web\lib\admin\API::ERROR_MISSING_PARAMETER, "At least one of User ID, Username, certificate serial, or certificate CN is required.");
Please login to merge, or discard this patch.
Switch Indentation   +412 added lines, -412 removed lines patch added patch discarded remove patch
@@ -84,149 +84,149 @@  discard block
 block discarded – undo
84 84
 }
85 85
 
86 86
 switch ($inputDecoded['ACTION']) {
87
-    case web\lib\admin\API::ACTION_NEWINST:
88
-        // create the inst, no admin, no attributes
89
-        $typeRaw = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_INSTTYPE);
90
-        if ($typeRaw === FALSE) {
91
-            throw new Exception("We did not receive a valid participant type!");
92
-        }
93
-        $type = $validator->partType($typeRaw);
94
-        $idp = new \core\IdP($fed->newIdP($type, "PENDING", "API"));
95
-        // now add all submitted attributes
96
-        $inputs = $adminApi->uglify($scrubbedParameters);
97
-        $optionParser->processSubmittedFields($idp, $inputs["POST"], $inputs["FILES"]);
98
-        $adminApi->returnSuccess([web\lib\admin\API::AUXATTRIB_CAT_INST_ID => $idp->identifier]);
99
-        break;
100
-    case web\lib\admin\API::ACTION_DELINST:
101
-        try {
102
-            $idp = $validator->existingIdP($adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_CAT_INST_ID), NULL, $fed);
103
-        } catch (Exception $e) {
104
-            $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "IdP identifier does not exist!");
105
-            exit(1);
106
-        }
107
-        $idp->destroy();
108
-        $adminApi->returnSuccess([]);
109
-        break;
110
-    case web\lib\admin\API::ACTION_ADMIN_LIST:
111
-        try {
112
-            $idp = $validator->existingIdP($adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_CAT_INST_ID), NULL, $fed);
113
-        } catch (Exception $e) {
114
-            $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "IdP identifier does not exist!");
115
-            exit(1);
116
-        }
117
-        $adminApi->returnSuccess($idp->listOwners());
118
-        break;
119
-    case web\lib\admin\API::ACTION_ADMIN_ADD:
120
-        // IdP in question
121
-        try {
122
-            $idp = $validator->existingIdP($adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_CAT_INST_ID), NULL, $fed);
123
-        } catch (Exception $e) {
124
-            $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "IdP identifier does not exist!");
125
-            exit(1);
126
-        }
127
-        // here is the token
128
-        $mgmt = new core\UserManagement();
129
-        // we know we have an admin ID but scrutinizer wants this checked more explicitly
130
-        $admin = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_ADMINID);
131
-        if ($admin === FALSE) {
132
-            throw new Exception("A required parameter is missing, and this wasn't caught earlier?!");
133
-        }
134
-        $newtokens = $mgmt->createTokens(true, [$admin], $idp);
135
-        $URL = "https://" . $_SERVER['SERVER_NAME'] . dirname($_SERVER['SCRIPT_NAME']) . "/action_enrollment.php?token=" . array_keys($newtokens)[0];
136
-        $success = ["TOKEN URL" => $URL, "TOKEN" => array_keys($newtokens)[0]];
137
-        // done with the essentials - display in response. But if we also have an email address, send it there
138
-        $email = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_TARGETMAIL);
139
-        if ($email !== FALSE) {
140
-            $sent = \core\common\OutsideComm::adminInvitationMail($email, "EXISTING-FED", array_keys($newtokens)[0], $idp->name, $fed, $idp->type);
141
-            $success["EMAIL SENT"] = $sent["SENT"];
142
-            if ($sent["SENT"] === TRUE) {
143
-                $success["EMAIL TRANSPORT SECURE"] = $sent["TRANSPORT"];
87
+        case web\lib\admin\API::ACTION_NEWINST:
88
+            // create the inst, no admin, no attributes
89
+            $typeRaw = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_INSTTYPE);
90
+            if ($typeRaw === FALSE) {
91
+                throw new Exception("We did not receive a valid participant type!");
144 92
             }
145
-        }
146
-        $adminApi->returnSuccess($success);
147
-        break;
148
-    case web\lib\admin\API::ACTION_ADMIN_DEL:
149
-        // IdP in question
150
-        try {
151
-            $idp = $validator->existingIdP($adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_CAT_INST_ID), NULL, $fed);
152
-        } catch (Exception $e) {
153
-            $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "IdP identifier does not exist!");
154
-            exit(1);
155
-        }
156
-        $currentAdmins = $idp->listOwners();
157
-        $toBeDeleted = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_ADMINID);
158
-        if ($toBeDeleted === FALSE) {
159
-            throw new Exception("A required parameter is missing, and this wasn't caught earlier?!");
160
-        }
161
-        $found = FALSE;
162
-        foreach ($currentAdmins as $oneAdmin) {
163
-            if ($oneAdmin['MAIL'] == $toBeDeleted) {
164
-                $found = TRUE;
165
-                $mgmt = new core\UserManagement();
166
-                $mgmt->removeAdminFromIdP($idp, $oneAdmin['ID']);
93
+            $type = $validator->partType($typeRaw);
94
+            $idp = new \core\IdP($fed->newIdP($type, "PENDING", "API"));
95
+            // now add all submitted attributes
96
+            $inputs = $adminApi->uglify($scrubbedParameters);
97
+            $optionParser->processSubmittedFields($idp, $inputs["POST"], $inputs["FILES"]);
98
+            $adminApi->returnSuccess([web\lib\admin\API::AUXATTRIB_CAT_INST_ID => $idp->identifier]);
99
+            break;
100
+        case web\lib\admin\API::ACTION_DELINST:
101
+            try {
102
+                $idp = $validator->existingIdP($adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_CAT_INST_ID), NULL, $fed);
103
+            } catch (Exception $e) {
104
+                $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "IdP identifier does not exist!");
105
+                exit(1);
167 106
             }
168
-        }
169
-        if ($found) {
107
+            $idp->destroy();
170 108
             $adminApi->returnSuccess([]);
171
-        }
172
-        $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "The admin with ID $toBeDeleted is not associated to IdP " . $idp->identifier);
173
-        break;
174
-    case web\lib\admin\API::ACTION_STATISTICS_FED:
175
-        $detail = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_DETAIL);
176
-        $adminApi->returnSuccess($fed->downloadStats("array", $detail));
177
-        break;
178
-    case \web\lib\admin\API::ACTION_FEDERATION_LISTIDP:
179
-        $retArray = [];
180
-        $noLogo = null;
181
-        $idpIdentifier = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_CAT_INST_ID);
182
-        $logoFlag = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::FLAG_NOLOGO);
183
-        $detail = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_DETAIL);
184
-        $idpStatFlag = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::FLAG_ADD_STATS);
185
-        if ($logoFlag === "TRUE") {
186
-            $noLogo = 'general:logo_file';
187
-        }
188
-        if ($idpIdentifier === FALSE) {
189
-            $allIdPs = $fed->listIdentityProviders(0);
190
-            if ($idpStatFlag === "TRUE") {
191
-                $fedStats = $fed->downloadStats('array', $detail);
192
-            }
193
-            foreach ($allIdPs as $instanceId => $oneIdP) {
194
-                $theIdP = $oneIdP["instance"];
195
-                $retArray[$instanceId] = $theIdP->getAttributes(null, $noLogo);
196
-                if ($idpStatFlag === "TRUE") {
197
-                    $retArray[$instanceId]['STAT'] = $fedStats[$instanceId];
109
+            break;
110
+        case web\lib\admin\API::ACTION_ADMIN_LIST:
111
+            try {
112
+                $idp = $validator->existingIdP($adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_CAT_INST_ID), NULL, $fed);
113
+            } catch (Exception $e) {
114
+                $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "IdP identifier does not exist!");
115
+                exit(1);
116
+            }
117
+            $adminApi->returnSuccess($idp->listOwners());
118
+            break;
119
+        case web\lib\admin\API::ACTION_ADMIN_ADD:
120
+            // IdP in question
121
+            try {
122
+                $idp = $validator->existingIdP($adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_CAT_INST_ID), NULL, $fed);
123
+            } catch (Exception $e) {
124
+                $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "IdP identifier does not exist!");
125
+                exit(1);
126
+            }
127
+            // here is the token
128
+            $mgmt = new core\UserManagement();
129
+            // we know we have an admin ID but scrutinizer wants this checked more explicitly
130
+            $admin = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_ADMINID);
131
+            if ($admin === FALSE) {
132
+                throw new Exception("A required parameter is missing, and this wasn't caught earlier?!");
133
+            }
134
+            $newtokens = $mgmt->createTokens(true, [$admin], $idp);
135
+            $URL = "https://" . $_SERVER['SERVER_NAME'] . dirname($_SERVER['SCRIPT_NAME']) . "/action_enrollment.php?token=" . array_keys($newtokens)[0];
136
+            $success = ["TOKEN URL" => $URL, "TOKEN" => array_keys($newtokens)[0]];
137
+            // done with the essentials - display in response. But if we also have an email address, send it there
138
+            $email = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_TARGETMAIL);
139
+            if ($email !== FALSE) {
140
+                $sent = \core\common\OutsideComm::adminInvitationMail($email, "EXISTING-FED", array_keys($newtokens)[0], $idp->name, $fed, $idp->type);
141
+                $success["EMAIL SENT"] = $sent["SENT"];
142
+                if ($sent["SENT"] === TRUE) {
143
+                    $success["EMAIL TRANSPORT SECURE"] = $sent["TRANSPORT"];
198 144
                 }
199 145
             }
200
-        } else {
146
+            $adminApi->returnSuccess($success);
147
+            break;
148
+        case web\lib\admin\API::ACTION_ADMIN_DEL:
149
+            // IdP in question
201 150
             try {
202
-                $thisIdP = $validator->existingIdP($idpIdentifier, NULL, $fed);
151
+                $idp = $validator->existingIdP($adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_CAT_INST_ID), NULL, $fed);
203 152
             } catch (Exception $e) {
204 153
                 $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "IdP identifier does not exist!");
205 154
                 exit(1);
206 155
             }
207
-            $retArray[$idpIdentifier] = $thisIdP->getAttributes(null, $noLogo);
208
-            foreach ($thisIdP->listProfiles() as $oneProfile) {
209
-                $retArray[$idpIdentifier]["PROFILES"][$oneProfile->identifier] = $oneProfile->getAttributes(null, $noLogo);
156
+            $currentAdmins = $idp->listOwners();
157
+            $toBeDeleted = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_ADMINID);
158
+            if ($toBeDeleted === FALSE) {
159
+                throw new Exception("A required parameter is missing, and this wasn't caught earlier?!");
210 160
             }
211
-        }
212
-        foreach ($retArray as $instNumber => $oneInstData) {
213
-            foreach ($oneInstData as $attribNumber => $oneAttrib) {
214
-                if ($oneAttrib['name'] == "general:logo_file") {
215
-                    // JSON doesn't cope well with raw binary data, so b64 it
216
-                    $retArray[$instNumber][$attribNumber]['value'] = base64_encode($oneAttrib['value']);
161
+            $found = FALSE;
162
+            foreach ($currentAdmins as $oneAdmin) {
163
+                if ($oneAdmin['MAIL'] == $toBeDeleted) {
164
+                    $found = TRUE;
165
+                    $mgmt = new core\UserManagement();
166
+                    $mgmt->removeAdminFromIdP($idp, $oneAdmin['ID']);
167
+                }
168
+            }
169
+            if ($found) {
170
+                $adminApi->returnSuccess([]);
171
+            }
172
+            $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "The admin with ID $toBeDeleted is not associated to IdP " . $idp->identifier);
173
+            break;
174
+        case web\lib\admin\API::ACTION_STATISTICS_FED:
175
+            $detail = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_DETAIL);
176
+            $adminApi->returnSuccess($fed->downloadStats("array", $detail));
177
+            break;
178
+        case \web\lib\admin\API::ACTION_FEDERATION_LISTIDP:
179
+            $retArray = [];
180
+            $noLogo = null;
181
+            $idpIdentifier = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_CAT_INST_ID);
182
+            $logoFlag = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::FLAG_NOLOGO);
183
+            $detail = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_DETAIL);
184
+            $idpStatFlag = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::FLAG_ADD_STATS);
185
+            if ($logoFlag === "TRUE") {
186
+                $noLogo = 'general:logo_file';
187
+            }
188
+            if ($idpIdentifier === FALSE) {
189
+                $allIdPs = $fed->listIdentityProviders(0);
190
+                if ($idpStatFlag === "TRUE") {
191
+                    $fedStats = $fed->downloadStats('array', $detail);
217 192
                 }
218
-                if ($attribNumber == "PROFILES") {
219
-                    // scan for included fed:logo_file and b64 escape it, t2oo
220
-                    foreach ($oneAttrib as $profileNumber => $profileContent) {
221
-                            foreach ($profileContent as $oneProfileIterator => $oneProfileContent) {
222
-                                    if ($oneProfileContent['name'] == "fed:logo_file" || $oneProfileContent['name'] == "general:logo_file" || $oneProfileContent['name'] == "eap:ca_file") {
223
-                                            $retArray[$instNumber]["PROFILES"][$profileNumber][$oneProfileIterator]['value'] = base64_encode($oneProfileContent['value']);
224
-                                    }
225
-                            }
193
+                foreach ($allIdPs as $instanceId => $oneIdP) {
194
+                    $theIdP = $oneIdP["instance"];
195
+                    $retArray[$instanceId] = $theIdP->getAttributes(null, $noLogo);
196
+                    if ($idpStatFlag === "TRUE") {
197
+                        $retArray[$instanceId]['STAT'] = $fedStats[$instanceId];
198
+                    }
199
+                }
200
+            } else {
201
+                try {
202
+                    $thisIdP = $validator->existingIdP($idpIdentifier, NULL, $fed);
203
+                } catch (Exception $e) {
204
+                    $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "IdP identifier does not exist!");
205
+                    exit(1);
206
+                }
207
+                $retArray[$idpIdentifier] = $thisIdP->getAttributes(null, $noLogo);
208
+                foreach ($thisIdP->listProfiles() as $oneProfile) {
209
+                    $retArray[$idpIdentifier]["PROFILES"][$oneProfile->identifier] = $oneProfile->getAttributes(null, $noLogo);
210
+                }
211
+            }
212
+            foreach ($retArray as $instNumber => $oneInstData) {
213
+                foreach ($oneInstData as $attribNumber => $oneAttrib) {
214
+                    if ($oneAttrib['name'] == "general:logo_file") {
215
+                        // JSON doesn't cope well with raw binary data, so b64 it
216
+                        $retArray[$instNumber][$attribNumber]['value'] = base64_encode($oneAttrib['value']);
217
+                    }
218
+                    if ($attribNumber == "PROFILES") {
219
+                        // scan for included fed:logo_file and b64 escape it, t2oo
220
+                        foreach ($oneAttrib as $profileNumber => $profileContent) {
221
+                                foreach ($profileContent as $oneProfileIterator => $oneProfileContent) {
222
+                                        if ($oneProfileContent['name'] == "fed:logo_file" || $oneProfileContent['name'] == "general:logo_file" || $oneProfileContent['name'] == "eap:ca_file") {
223
+                                                $retArray[$instNumber]["PROFILES"][$profileNumber][$oneProfileIterator]['value'] = base64_encode($oneProfileContent['value']);
224
+                                        }
225
+                                }
226
+                        }
226 227
                     }
227 228
                 }
228 229
             }
229
-        }
230 230
         
231 231
 /*        
232 232
                     $retArray[$idpIdentifier] = [];
@@ -237,102 +237,102 @@  discard block
 block discarded – undo
237 237
  * 
238 238
  */        
239 239
         
240
-        $adminApi->returnSuccess($retArray);
241
-        break;
242
-    case \web\lib\admin\API::ACTION_NEWPROF_RADIUS:
243
-    // fall-through intended: both get mostly identical treatment
244
-    case web\lib\admin\API::ACTION_NEWPROF_SB:
245
-        try {
246
-            $idp = $validator->existingIdP($adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_CAT_INST_ID), NULL, $fed);
247
-        } catch (Exception $e) {
248
-            $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "IdP identifier does not exist!");
249
-            exit(1);
250
-        }
251
-        if ($inputDecoded['ACTION'] == web\lib\admin\API::ACTION_NEWPROF_RADIUS) {
252
-            $type = "RADIUS";
253
-        } else {
254
-            $type = "SILVERBULLET";
255
-        }
256
-        $profile = $idp->newProfile($type);
257
-        if ($profile === NULL) {
258
-            $adminApi->returnError(\web\lib\admin\API::ERROR_INTERNAL_ERROR, "Unable to create a new Profile, for no apparent reason. Please contact support.");
259
-            exit(1);
260
-        }
261
-        $inputs = $adminApi->uglify($scrubbedParameters);
262
-        $optionParser->processSubmittedFields($profile, $inputs["POST"], $inputs["FILES"]);
263
-        if ($inputDecoded['ACTION'] == web\lib\admin\API::ACTION_NEWPROF_SB) {
264
-            // auto-accept ToU?
265
-            if ($adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_SB_TOU) !== FALSE) {
266
-                $profile->addAttribute("hiddenprofile:tou_accepted", NULL, 1);
267
-            }
268
-            // we're done at this point
269
-            $adminApi->returnSuccess([\web\lib\admin\API::AUXATTRIB_CAT_PROFILE_ID => $profile->identifier]);
240
+            $adminApi->returnSuccess($retArray);
270 241
             break;
271
-        }
272
-        if (!$profile instanceof core\ProfileRADIUS) {
273
-            throw new Exception("Can't be. This is only here to convince Scrutinizer that we're really talking RADIUS.");
274
-        }
275
-        /* const AUXATTRIB_PROFILE_REALM = 'ATTRIB-PROFILE-REALM';
276
-          const AUXATTRIB_PROFILE_OUTERVALUE = 'ATTRIB-PROFILE-OUTERVALUE'; */
277
-        $realm = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_PROFILE_REALM);
278
-        $outer = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_PROFILE_OUTERVALUE);
279
-        if ($realm !== FALSE) {
280
-            if ($outer === FALSE) {
281
-                $outer = "";
282
-                $profile->setAnonymousIDSupport(FALSE);
242
+        case \web\lib\admin\API::ACTION_NEWPROF_RADIUS:
243
+        // fall-through intended: both get mostly identical treatment
244
+        case web\lib\admin\API::ACTION_NEWPROF_SB:
245
+            try {
246
+                $idp = $validator->existingIdP($adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_CAT_INST_ID), NULL, $fed);
247
+            } catch (Exception $e) {
248
+                $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "IdP identifier does not exist!");
249
+                exit(1);
250
+            }
251
+            if ($inputDecoded['ACTION'] == web\lib\admin\API::ACTION_NEWPROF_RADIUS) {
252
+                $type = "RADIUS";
283 253
             } else {
284
-                $outer = $outer . "@";
285
-                $profile->setAnonymousIDSupport(TRUE);
254
+                $type = "SILVERBULLET";
286 255
             }
287
-            $profile->setRealm($outer . $realm);
288
-        }
289
-        /* const AUXATTRIB_PROFILE_TESTUSER = 'ATTRIB-PROFILE-TESTUSER'; */
290
-        $testuser = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_PROFILE_TESTUSER);
291
-        if ($testuser !== FALSE) {
292
-            $profile->setRealmCheckUser(TRUE, $testuser);
293
-        }
294
-        /* const AUXATTRIB_PROFILE_INPUT_HINT = 'ATTRIB-PROFILE-HINTREALM';
256
+            $profile = $idp->newProfile($type);
257
+            if ($profile === NULL) {
258
+                $adminApi->returnError(\web\lib\admin\API::ERROR_INTERNAL_ERROR, "Unable to create a new Profile, for no apparent reason. Please contact support.");
259
+                exit(1);
260
+            }
261
+            $inputs = $adminApi->uglify($scrubbedParameters);
262
+            $optionParser->processSubmittedFields($profile, $inputs["POST"], $inputs["FILES"]);
263
+            if ($inputDecoded['ACTION'] == web\lib\admin\API::ACTION_NEWPROF_SB) {
264
+                // auto-accept ToU?
265
+                if ($adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_SB_TOU) !== FALSE) {
266
+                    $profile->addAttribute("hiddenprofile:tou_accepted", NULL, 1);
267
+                }
268
+                // we're done at this point
269
+                $adminApi->returnSuccess([\web\lib\admin\API::AUXATTRIB_CAT_PROFILE_ID => $profile->identifier]);
270
+                break;
271
+            }
272
+            if (!$profile instanceof core\ProfileRADIUS) {
273
+                throw new Exception("Can't be. This is only here to convince Scrutinizer that we're really talking RADIUS.");
274
+            }
275
+            /* const AUXATTRIB_PROFILE_REALM = 'ATTRIB-PROFILE-REALM';
276
+          const AUXATTRIB_PROFILE_OUTERVALUE = 'ATTRIB-PROFILE-OUTERVALUE'; */
277
+            $realm = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_PROFILE_REALM);
278
+            $outer = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_PROFILE_OUTERVALUE);
279
+            if ($realm !== FALSE) {
280
+                if ($outer === FALSE) {
281
+                    $outer = "";
282
+                    $profile->setAnonymousIDSupport(FALSE);
283
+                } else {
284
+                    $outer = $outer . "@";
285
+                    $profile->setAnonymousIDSupport(TRUE);
286
+                }
287
+                $profile->setRealm($outer . $realm);
288
+            }
289
+            /* const AUXATTRIB_PROFILE_TESTUSER = 'ATTRIB-PROFILE-TESTUSER'; */
290
+            $testuser = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_PROFILE_TESTUSER);
291
+            if ($testuser !== FALSE) {
292
+                $profile->setRealmCheckUser(TRUE, $testuser);
293
+            }
294
+            /* const AUXATTRIB_PROFILE_INPUT_HINT = 'ATTRIB-PROFILE-HINTREALM';
295 295
           const AUXATTRIB_PROFILE_INPUT_VERIFY = 'ATTRIB-PROFILE-VERIFYREALM'; */
296
-        $hint = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_PROFILE_INPUT_HINT);
297
-        $enforce = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_PROFILE_INPUT_VERIFY);
298
-        if ($enforce !== FALSE) {
299
-            $profile->setInputVerificationPreference($enforce, $hint);
300
-        }
301
-        /* const AUXATTRIB_PROFILE_EAPTYPE */
302
-        $iterator = 1;
303
-        foreach ($scrubbedParameters as $oneParam) {
304
-            if ($oneParam['NAME'] == web\lib\admin\API::AUXATTRIB_PROFILE_EAPTYPE && is_int($oneParam["VALUE"])) {
305
-                $type = new \core\common\EAP($oneParam["VALUE"]);
306
-                $profile->addSupportedEapMethod($type, $iterator);
307
-                $iterator = $iterator + 1;
296
+            $hint = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_PROFILE_INPUT_HINT);
297
+            $enforce = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_PROFILE_INPUT_VERIFY);
298
+            if ($enforce !== FALSE) {
299
+                $profile->setInputVerificationPreference($enforce, $hint);
308 300
             }
309
-        }
310
-        // reinstantiate $profile freshly from DB - it was updated in the process
311
-        $profileFresh = new core\ProfileRADIUS($profile->identifier);
312
-        $profileFresh->prepShowtime();
313
-        $adminApi->returnSuccess([\web\lib\admin\API::AUXATTRIB_CAT_PROFILE_ID => $profileFresh->identifier]);
314
-        break;
315
-    case web\lib\admin\API::ACTION_ENDUSER_NEW:
316
-    // fall-through intentional, those two actions are doing nearly identical things
317
-    case web\lib\admin\API::ACTION_ENDUSER_CHANGEEXPIRY:
318
-        $prof_id = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_CAT_PROFILE_ID);
319
-        if ($prof_id === FALSE) {
320
-            exit(1);
321
-        }
322
-        $evaluation = $adminApi->commonSbProfileChecks($fed, $prof_id);
323
-        if ($evaluation === FALSE) {
324
-            exit(1);
325
-        }
326
-        list($idp, $profile) = $evaluation;
327
-        $user = $validator->string($adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_SB_USERNAME));
328
-        $expiryRaw = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_SB_EXPIRY);
329
-        if ($expiryRaw === FALSE) {
330
-            $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "The expiry date wasn't found in the request.");
301
+            /* const AUXATTRIB_PROFILE_EAPTYPE */
302
+            $iterator = 1;
303
+            foreach ($scrubbedParameters as $oneParam) {
304
+                if ($oneParam['NAME'] == web\lib\admin\API::AUXATTRIB_PROFILE_EAPTYPE && is_int($oneParam["VALUE"])) {
305
+                    $type = new \core\common\EAP($oneParam["VALUE"]);
306
+                    $profile->addSupportedEapMethod($type, $iterator);
307
+                    $iterator = $iterator + 1;
308
+                }
309
+            }
310
+            // reinstantiate $profile freshly from DB - it was updated in the process
311
+            $profileFresh = new core\ProfileRADIUS($profile->identifier);
312
+            $profileFresh->prepShowtime();
313
+            $adminApi->returnSuccess([\web\lib\admin\API::AUXATTRIB_CAT_PROFILE_ID => $profileFresh->identifier]);
331 314
             break;
332
-        }
333
-        $expiry = new DateTime($expiryRaw);
334
-        try {
335
-            switch ($inputDecoded['ACTION']) {
315
+        case web\lib\admin\API::ACTION_ENDUSER_NEW:
316
+        // fall-through intentional, those two actions are doing nearly identical things
317
+        case web\lib\admin\API::ACTION_ENDUSER_CHANGEEXPIRY:
318
+            $prof_id = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_CAT_PROFILE_ID);
319
+            if ($prof_id === FALSE) {
320
+                exit(1);
321
+            }
322
+            $evaluation = $adminApi->commonSbProfileChecks($fed, $prof_id);
323
+            if ($evaluation === FALSE) {
324
+                exit(1);
325
+            }
326
+            list($idp, $profile) = $evaluation;
327
+            $user = $validator->string($adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_SB_USERNAME));
328
+            $expiryRaw = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_SB_EXPIRY);
329
+            if ($expiryRaw === FALSE) {
330
+                $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "The expiry date wasn't found in the request.");
331
+                break;
332
+            }
333
+            $expiry = new DateTime($expiryRaw);
334
+            try {
335
+                switch ($inputDecoded['ACTION']) {
336 336
                 case web\lib\admin\API::ACTION_ENDUSER_NEW:
337 337
                     $retval = $profile->addUser($user, $expiry);
338 338
                     break;
@@ -345,7 +345,7 @@  discard block
 block discarded – undo
345 345
                         $retval = 1; // function doesn't have any failure vectors not raising an Exception and doesn't return a value
346 346
                     }
347 347
                     break;
348
-            }
348
+                }
349 349
         } catch (Exception $e) {
350 350
             $adminApi->returnError(web\lib\admin\API::ERROR_INTERNAL_ERROR, "The operation failed. Maybe a duplicate username, or malformed expiry date?");
351 351
             exit(1);
@@ -356,25 +356,25 @@  discard block
 block discarded – undo
356 356
         }
357 357
         $adminApi->returnSuccess([web\lib\admin\API::AUXATTRIB_SB_USERNAME => $user, \web\lib\admin\API::AUXATTRIB_SB_USERID => $retval]);
358 358
         break;
359
-    case \web\lib\admin\API::ACTION_ENDUSER_DEACTIVATE:
360
-    // fall-through intended: both actions are very similar
361
-    case \web\lib\admin\API::ACTION_TOKEN_NEW:
362
-        $profile_id = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_CAT_PROFILE_ID);
363
-        if ($profile_id === FALSE) {
364
-            exit(1);
365
-        }
366
-        $evaluation = $adminApi->commonSbProfileChecks($fed, $profile_id);
367
-        if ($evaluation === FALSE) {
368
-            exit(1);
369
-        }
370
-        list($idp, $profile) = $evaluation;
371
-        $userId = $validator->integer($adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_SB_USERID));
372
-        if ($userId === FALSE) {
373
-            $adminApi->returnError(\web\lib\admin\API::ERROR_INVALID_PARAMETER, "User ID is not an integer.");
374
-            exit(1);
375
-        }
376
-        $additionalInfo = [];
377
-        switch ($inputDecoded['ACTION']) { // this is where the two differ
359
+        case \web\lib\admin\API::ACTION_ENDUSER_DEACTIVATE:
360
+        // fall-through intended: both actions are very similar
361
+        case \web\lib\admin\API::ACTION_TOKEN_NEW:
362
+            $profile_id = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_CAT_PROFILE_ID);
363
+            if ($profile_id === FALSE) {
364
+                exit(1);
365
+            }
366
+            $evaluation = $adminApi->commonSbProfileChecks($fed, $profile_id);
367
+            if ($evaluation === FALSE) {
368
+                exit(1);
369
+            }
370
+            list($idp, $profile) = $evaluation;
371
+            $userId = $validator->integer($adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_SB_USERID));
372
+            if ($userId === FALSE) {
373
+                $adminApi->returnError(\web\lib\admin\API::ERROR_INVALID_PARAMETER, "User ID is not an integer.");
374
+                exit(1);
375
+            }
376
+            $additionalInfo = [];
377
+            switch ($inputDecoded['ACTION']) { // this is where the two differ
378 378
             case \web\lib\admin\API::ACTION_ENDUSER_DEACTIVATE:
379 379
                 $result = $profile->deactivateUser($userId);
380 380
                 break;
@@ -407,7 +407,7 @@  discard block
 block discarded – undo
407 407
                     }
408 408
                 }
409 409
                 break;
410
-        }
410
+            }
411 411
 
412 412
         if ($result !== TRUE) {
413 413
             $adminApi->returnError(\web\lib\admin\API::ERROR_INVALID_PARAMETER, "These parameters did not lead to an existing, active user.");
@@ -415,69 +415,69 @@  discard block
 block discarded – undo
415 415
         }
416 416
         $adminApi->returnSuccess($additionalInfo);
417 417
         break;
418
-    case \web\lib\admin\API::ACTION_ENDUSER_IDENTIFY:
419
-        $profile_id = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_CAT_PROFILE_ID);
420
-        if ($profile_id === FALSE) {
421
-            exit(1);
422
-        }
423
-        $evaluation = $adminApi->commonSbProfileChecks($fed, $profile_id);
424
-        if ($evaluation === FALSE) {
425
-            exit(1);
426
-        }
427
-        list($idp, $profile) = $evaluation;
428
-        $userId = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_SB_USERID);
429
-        $userName = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_SB_USERNAME);
430
-        $certSerial = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_SB_CERTSERIAL);
431
-		$certCN = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_SB_CERTCN);
432
-        if ($userId === FALSE && $userName === FALSE && $certSerial === FALSE && $certCN === FALSE) {
433
-            // we need at least one of those
434
-            $adminApi->returnError(\web\lib\admin\API::ERROR_MISSING_PARAMETER, "At least one of User ID, Username, certificate serial, or certificate CN is required.");
435
-            break;
436
-        }
437
-        if ($certSerial !== FALSE) { // we got a cert serial
438
-            $serial = explode(":", $certSerial);
439
-            $cert = new \core\SilverbulletCertificate($serial[1], $serial[0]);
418
+        case \web\lib\admin\API::ACTION_ENDUSER_IDENTIFY:
419
+            $profile_id = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_CAT_PROFILE_ID);
420
+            if ($profile_id === FALSE) {
421
+                exit(1);
440 422
             }
441
-        if ($certCN !== FALSE) { // we got a cert CN
442
-            $cert = new \core\SilverbulletCertificate($certCN);
443
-        }
444
-        if ($cert !== NULL) { // we found a cert; verify it and extract userId
445
-            if ($cert->status == \core\SilverbulletCertificate::CERTSTATUS_INVALID) {
446
-                return $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "Certificate not found.");
423
+            $evaluation = $adminApi->commonSbProfileChecks($fed, $profile_id);
424
+            if ($evaluation === FALSE) {
425
+                exit(1);
447 426
             }
448
-            if ($cert->profileId != $profile->identifier) {
449
-                return $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "Certificate does not belong to this profile.");
427
+            list($idp, $profile) = $evaluation;
428
+            $userId = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_SB_USERID);
429
+            $userName = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_SB_USERNAME);
430
+            $certSerial = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_SB_CERTSERIAL);
431
+		    $certCN = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_SB_CERTCN);
432
+            if ($userId === FALSE && $userName === FALSE && $certSerial === FALSE && $certCN === FALSE) {
433
+                // we need at least one of those
434
+                $adminApi->returnError(\web\lib\admin\API::ERROR_MISSING_PARAMETER, "At least one of User ID, Username, certificate serial, or certificate CN is required.");
435
+                break;
450 436
             }
451
-            $userId = $cert->userId;
452
-        }
453
-        if ($userId !== FALSE) {
454
-            $userList = $profile->getUserById($userId);
455
-        }
456
-        if ($userName !== FALSE) {
457
-            $userList = $profile->getUserByName($userName);
458
-        }
459
-        if (count($userList) === 1) {
460
-            foreach ($userList as $oneUserId => $oneUserName) {
461
-                return $adminApi->returnSuccess([web\lib\admin\API::AUXATTRIB_SB_USERNAME => $oneUserName, \web\lib\admin\API::AUXATTRIB_SB_USERID => $oneUserId]);
437
+            if ($certSerial !== FALSE) { // we got a cert serial
438
+                $serial = explode(":", $certSerial);
439
+                $cert = new \core\SilverbulletCertificate($serial[1], $serial[0]);
440
+                }
441
+            if ($certCN !== FALSE) { // we got a cert CN
442
+                $cert = new \core\SilverbulletCertificate($certCN);
462 443
             }
463
-        }
464
-        $adminApi->returnError(\web\lib\admin\API::ERROR_INVALID_PARAMETER, "No matching user found in this profile.");
465
-        break;
466
-    case \web\lib\admin\API::ACTION_ENDUSER_LIST:
467
-    // fall-through: those two are similar
468
-    case \web\lib\admin\API::ACTION_TOKEN_LIST:
469
-        $profile_id = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_CAT_PROFILE_ID);
470
-        if ($profile_id === FALSE) {
471
-            exit(1);
472
-        }
473
-        $evaluation = $adminApi->commonSbProfileChecks($fed, $profile_id);
474
-        if ($evaluation === FALSE) {
475
-            exit(1);
476
-        }
477
-        list($idp, $profile) = $evaluation;
478
-        $allUsers = $profile->listAllUsers();
479
-        // this is where they differ
480
-        switch ($inputDecoded['ACTION']) {
444
+            if ($cert !== NULL) { // we found a cert; verify it and extract userId
445
+                if ($cert->status == \core\SilverbulletCertificate::CERTSTATUS_INVALID) {
446
+                    return $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "Certificate not found.");
447
+                }
448
+                if ($cert->profileId != $profile->identifier) {
449
+                    return $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "Certificate does not belong to this profile.");
450
+                }
451
+                $userId = $cert->userId;
452
+            }
453
+            if ($userId !== FALSE) {
454
+                $userList = $profile->getUserById($userId);
455
+            }
456
+            if ($userName !== FALSE) {
457
+                $userList = $profile->getUserByName($userName);
458
+            }
459
+            if (count($userList) === 1) {
460
+                foreach ($userList as $oneUserId => $oneUserName) {
461
+                    return $adminApi->returnSuccess([web\lib\admin\API::AUXATTRIB_SB_USERNAME => $oneUserName, \web\lib\admin\API::AUXATTRIB_SB_USERID => $oneUserId]);
462
+                }
463
+            }
464
+            $adminApi->returnError(\web\lib\admin\API::ERROR_INVALID_PARAMETER, "No matching user found in this profile.");
465
+            break;
466
+        case \web\lib\admin\API::ACTION_ENDUSER_LIST:
467
+        // fall-through: those two are similar
468
+        case \web\lib\admin\API::ACTION_TOKEN_LIST:
469
+            $profile_id = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_CAT_PROFILE_ID);
470
+            if ($profile_id === FALSE) {
471
+                exit(1);
472
+            }
473
+            $evaluation = $adminApi->commonSbProfileChecks($fed, $profile_id);
474
+            if ($evaluation === FALSE) {
475
+                exit(1);
476
+            }
477
+            list($idp, $profile) = $evaluation;
478
+            $allUsers = $profile->listAllUsers();
479
+            // this is where they differ
480
+            switch ($inputDecoded['ACTION']) {
481 481
             case \web\lib\admin\API::ACTION_ENDUSER_LIST:
482 482
                 $adminApi->returnSuccess($allUsers);
483 483
                 break;
@@ -496,123 +496,123 @@  discard block
 block discarded – undo
496 496
                     $infoSet[$oneTokenObject->userId] = [\web\lib\admin\API::AUXATTRIB_TOKEN => $oneTokenObject->invitationTokenString, "STATUS" => $oneTokenObject->invitationTokenStatus];
497 497
                 }
498 498
                 $adminApi->returnSuccess($infoSet);
499
-        }
500
-        break;
501
-    case \web\lib\admin\API::ACTION_TOKEN_REVOKE:
502
-        $tokenRaw = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_TOKEN);
503
-        if ($tokenRaw === FALSE) {
504
-            exit(1);
505
-        }
506
-        $token = new core\SilverbulletInvitation($tokenRaw);
507
-        if ($token->invitationTokenStatus !== core\SilverbulletInvitation::SB_TOKENSTATUS_VALID && $token->invitationTokenStatus !== core\SilverbulletInvitation::SB_TOKENSTATUS_PARTIALLY_REDEEMED) {
508
-            $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "This is not a currently valid token.");
509
-            exit(1);
510
-        }
511
-        $token->revokeInvitation();
512
-        $adminApi->returnSuccess([]);
513
-        break;
514
-    case \web\lib\admin\API::ACTION_CERT_LIST:
515
-        $prof_id = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_CAT_PROFILE_ID);
516
-        $user_id = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_SB_USERID);
517
-        if ($prof_id === FALSE || !is_int($user_id)) {
518
-            exit(1);
519
-        }
520
-        $evaluation = $adminApi->commonSbProfileChecks($fed, $prof_id);
521
-        if ($evaluation === FALSE) {
522
-            exit(1);
523
-        }
524
-        list($idp, $profile) = $evaluation;
525
-        $invitations = $profile->userStatus($user_id);
526
-        // now pull out cert information from the object
527
-        $certs = [];
528
-        foreach ($invitations as $oneInvitation) {
529
-            $certs = array_merge($certs, $oneInvitation->associatedCertificates);
530
-        }
531
-        // extract relevant subset of information from cert objects
532
-        $certDetails = [];
533
-        foreach ($certs as $cert) {
534
-            $certDetails[$cert->ca_type . ":" . $cert->serial] = ["ISSUED" => $cert->issued, "EXPIRY" => $cert->expiry, "STATUS" => $cert->status, "DEVICE" => $cert->device, "CN" => $cert->username, "ANNOTATION" => $cert->annotation];
535
-        }
536
-        $adminApi->returnSuccess($certDetails);
537
-        break;
538
-    case \web\lib\admin\API::ACTION_CERT_REVOKE:
539
-        $prof_id = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_CAT_PROFILE_ID);
540
-        if ($prof_id === FALSE) {
541
-            exit(1);
542
-        }
543
-        $evaluation = $adminApi->commonSbProfileChecks($fed, $prof_id);
544
-        if ($evaluation === FALSE) {
545
-            exit(1);
546
-        }
547
-        list($idp, $profile) = $evaluation;
548
-        // tear apart the serial
549
-        $serialRaw = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_SB_CERTSERIAL);
550
-        if ($serialRaw === FALSE) {
551
-            exit(1);
552
-        }
553
-        $serial = explode(":", $serialRaw);
554
-        $cert = new \core\SilverbulletCertificate($serial[1], $serial[0]);
555
-        if ($cert->status == \core\SilverbulletCertificate::CERTSTATUS_INVALID) {
556
-            $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "Serial not found.");
557
-        }
558
-        if ($cert->profileId != $profile->identifier) {
559
-            $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "Serial does not belong to this profile.");
560
-        }
561
-        $cert->revokeCertificate();
562
-        $adminApi->returnSuccess([]);
499
+            }
563 500
         break;
564
-    case \web\lib\admin\API::ACTION_CERT_ANNOTATE:
565
-        $prof_id = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_CAT_PROFILE_ID);
566
-        if ($prof_id === FALSE) {
567
-            exit(1);
568
-        }
569
-        $evaluation = $adminApi->commonSbProfileChecks($fed, $prof_id);
570
-        if ($evaluation === FALSE) {
571
-            exit(1);
572
-        }
573
-        list($idp, $profile) = $evaluation;
574
-        // tear apart the serial
575
-        $serialRaw = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_SB_CERTSERIAL);
576
-        if ($serialRaw === FALSE) {
577
-            exit(1);
578
-        }
579
-        $serial = explode(":", $serialRaw);
580
-        $cert = new \core\SilverbulletCertificate($serial[1], $serial[0]);
581
-        if ($cert->status == \core\SilverbulletCertificate::CERTSTATUS_INVALID) {
582
-            $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "Serial not found.");
583
-        }
584
-        if ($cert->profileId != $profile->identifier) {
585
-            $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "Serial does not belong to this profile.");
586
-        }
587
-        $annotationRaw = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_SB_CERTANNOTATION);
588
-        if ($annotationRaw === FALSE) {
589
-            $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "Unable to extract annotation.");
501
+        case \web\lib\admin\API::ACTION_TOKEN_REVOKE:
502
+            $tokenRaw = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_TOKEN);
503
+            if ($tokenRaw === FALSE) {
504
+                exit(1);
505
+            }
506
+            $token = new core\SilverbulletInvitation($tokenRaw);
507
+            if ($token->invitationTokenStatus !== core\SilverbulletInvitation::SB_TOKENSTATUS_VALID && $token->invitationTokenStatus !== core\SilverbulletInvitation::SB_TOKENSTATUS_PARTIALLY_REDEEMED) {
508
+                $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "This is not a currently valid token.");
509
+                exit(1);
510
+            }
511
+            $token->revokeInvitation();
512
+            $adminApi->returnSuccess([]);
590 513
             break;
591
-        }
592
-        $annotation = json_decode($annotationRaw, TRUE);
593
-        $cert->annotate($annotation);
594
-        $adminApi->returnSuccess([]);
595
-
596
-        break;
597
-    case web\lib\admin\API::ACTION_STATISTICS_INST:
598
-        $retArray = [];
599
-        $idpIdentifier = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_CAT_INST_ID);
600
-        if ($idpIdentifier === FALSE) {
601
-            throw new Exception("A required parameter is missing, and this wasn't caught earlier?!");
602
-        } else {
603
-            try {
604
-                $thisIdP = $validator->existingIdP($idpIdentifier, NULL, $fed);
605
-            } catch (Exception $e) {
606
-                $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "IdP identifier does not exist!");
514
+        case \web\lib\admin\API::ACTION_CERT_LIST:
515
+            $prof_id = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_CAT_PROFILE_ID);
516
+            $user_id = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_SB_USERID);
517
+            if ($prof_id === FALSE || !is_int($user_id)) {
607 518
                 exit(1);
608 519
             }
609
-            $retArray[$idpIdentifier] = [];
610
-            foreach ($thisIdP->listProfiles() as $oneProfile) {
611
-                $retArray[$idpIdentifier][$oneProfile->identifier] = $oneProfile->getUserDownloadStats();
520
+            $evaluation = $adminApi->commonSbProfileChecks($fed, $prof_id);
521
+            if ($evaluation === FALSE) {
522
+                exit(1);
612 523
             }
613
-        }
614
-        $adminApi->returnSuccess($retArray);
615
-        break;
616
-    default:
617
-        $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_ACTION, "Not implemented yet.");
524
+            list($idp, $profile) = $evaluation;
525
+            $invitations = $profile->userStatus($user_id);
526
+            // now pull out cert information from the object
527
+            $certs = [];
528
+            foreach ($invitations as $oneInvitation) {
529
+                $certs = array_merge($certs, $oneInvitation->associatedCertificates);
530
+            }
531
+            // extract relevant subset of information from cert objects
532
+            $certDetails = [];
533
+            foreach ($certs as $cert) {
534
+                $certDetails[$cert->ca_type . ":" . $cert->serial] = ["ISSUED" => $cert->issued, "EXPIRY" => $cert->expiry, "STATUS" => $cert->status, "DEVICE" => $cert->device, "CN" => $cert->username, "ANNOTATION" => $cert->annotation];
535
+            }
536
+            $adminApi->returnSuccess($certDetails);
537
+            break;
538
+        case \web\lib\admin\API::ACTION_CERT_REVOKE:
539
+            $prof_id = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_CAT_PROFILE_ID);
540
+            if ($prof_id === FALSE) {
541
+                exit(1);
542
+            }
543
+            $evaluation = $adminApi->commonSbProfileChecks($fed, $prof_id);
544
+            if ($evaluation === FALSE) {
545
+                exit(1);
546
+            }
547
+            list($idp, $profile) = $evaluation;
548
+            // tear apart the serial
549
+            $serialRaw = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_SB_CERTSERIAL);
550
+            if ($serialRaw === FALSE) {
551
+                exit(1);
552
+            }
553
+            $serial = explode(":", $serialRaw);
554
+            $cert = new \core\SilverbulletCertificate($serial[1], $serial[0]);
555
+            if ($cert->status == \core\SilverbulletCertificate::CERTSTATUS_INVALID) {
556
+                $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "Serial not found.");
557
+            }
558
+            if ($cert->profileId != $profile->identifier) {
559
+                $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "Serial does not belong to this profile.");
560
+            }
561
+            $cert->revokeCertificate();
562
+            $adminApi->returnSuccess([]);
563
+            break;
564
+        case \web\lib\admin\API::ACTION_CERT_ANNOTATE:
565
+            $prof_id = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_CAT_PROFILE_ID);
566
+            if ($prof_id === FALSE) {
567
+                exit(1);
568
+            }
569
+            $evaluation = $adminApi->commonSbProfileChecks($fed, $prof_id);
570
+            if ($evaluation === FALSE) {
571
+                exit(1);
572
+            }
573
+            list($idp, $profile) = $evaluation;
574
+            // tear apart the serial
575
+            $serialRaw = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_SB_CERTSERIAL);
576
+            if ($serialRaw === FALSE) {
577
+                exit(1);
578
+            }
579
+            $serial = explode(":", $serialRaw);
580
+            $cert = new \core\SilverbulletCertificate($serial[1], $serial[0]);
581
+            if ($cert->status == \core\SilverbulletCertificate::CERTSTATUS_INVALID) {
582
+                $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "Serial not found.");
583
+            }
584
+            if ($cert->profileId != $profile->identifier) {
585
+                $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "Serial does not belong to this profile.");
586
+            }
587
+            $annotationRaw = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_SB_CERTANNOTATION);
588
+            if ($annotationRaw === FALSE) {
589
+                $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "Unable to extract annotation.");
590
+                break;
591
+            }
592
+            $annotation = json_decode($annotationRaw, TRUE);
593
+            $cert->annotate($annotation);
594
+            $adminApi->returnSuccess([]);
595
+
596
+            break;
597
+        case web\lib\admin\API::ACTION_STATISTICS_INST:
598
+            $retArray = [];
599
+            $idpIdentifier = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_CAT_INST_ID);
600
+            if ($idpIdentifier === FALSE) {
601
+                throw new Exception("A required parameter is missing, and this wasn't caught earlier?!");
602
+            } else {
603
+                try {
604
+                    $thisIdP = $validator->existingIdP($idpIdentifier, NULL, $fed);
605
+                } catch (Exception $e) {
606
+                    $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "IdP identifier does not exist!");
607
+                    exit(1);
608
+                }
609
+                $retArray[$idpIdentifier] = [];
610
+                foreach ($thisIdP->listProfiles() as $oneProfile) {
611
+                    $retArray[$idpIdentifier][$oneProfile->identifier] = $oneProfile->getUserDownloadStats();
612
+                }
613
+            }
614
+            $adminApi->returnSuccess($retArray);
615
+            break;
616
+        default:
617
+            $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_ACTION, "Not implemented yet.");
618 618
 }
619 619
\ No newline at end of file
Please login to merge, or discard this patch.
Spacing   +7 added lines, -7 removed lines patch added patch discarded remove patch
@@ -20,7 +20,7 @@  discard block
 block discarded – undo
20 20
  *          <base_url>/copyright.php after deploying the software
21 21
  */
22 22
 
23
-require_once dirname(dirname(dirname(__FILE__))) . "/config/_config.php";
23
+require_once dirname(dirname(dirname(__FILE__)))."/config/_config.php";
24 24
 
25 25
 // no SAML auth on this page. The API key authenticates the entity
26 26
 
@@ -38,7 +38,7 @@  discard block
 block discarded – undo
38 38
 
39 39
 $inputDecoded = json_decode($inputRaw, TRUE);
40 40
 if (!is_array($inputDecoded)) {
41
-    $adminApi->returnError(web\lib\admin\API::ERROR_MALFORMED_REQUEST, "Unable to decode JSON POST data." . json_last_error_msg() . $inputRaw);
41
+    $adminApi->returnError(web\lib\admin\API::ERROR_MALFORMED_REQUEST, "Unable to decode JSON POST data.".json_last_error_msg().$inputRaw);
42 42
     exit(1);
43 43
 }
44 44
 
@@ -132,7 +132,7 @@  discard block
 block discarded – undo
132 132
             throw new Exception("A required parameter is missing, and this wasn't caught earlier?!");
133 133
         }
134 134
         $newtokens = $mgmt->createTokens(true, [$admin], $idp);
135
-        $URL = "https://" . $_SERVER['SERVER_NAME'] . dirname($_SERVER['SCRIPT_NAME']) . "/action_enrollment.php?token=" . array_keys($newtokens)[0];
135
+        $URL = "https://".$_SERVER['SERVER_NAME'].dirname($_SERVER['SCRIPT_NAME'])."/action_enrollment.php?token=".array_keys($newtokens)[0];
136 136
         $success = ["TOKEN URL" => $URL, "TOKEN" => array_keys($newtokens)[0]];
137 137
         // done with the essentials - display in response. But if we also have an email address, send it there
138 138
         $email = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_TARGETMAIL);
@@ -169,7 +169,7 @@  discard block
 block discarded – undo
169 169
         if ($found) {
170 170
             $adminApi->returnSuccess([]);
171 171
         }
172
-        $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "The admin with ID $toBeDeleted is not associated to IdP " . $idp->identifier);
172
+        $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "The admin with ID $toBeDeleted is not associated to IdP ".$idp->identifier);
173 173
         break;
174 174
     case web\lib\admin\API::ACTION_STATISTICS_FED:
175 175
         $detail = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_DETAIL);
@@ -281,10 +281,10 @@  discard block
 block discarded – undo
281 281
                 $outer = "";
282 282
                 $profile->setAnonymousIDSupport(FALSE);
283 283
             } else {
284
-                $outer = $outer . "@";
284
+                $outer = $outer."@";
285 285
                 $profile->setAnonymousIDSupport(TRUE);
286 286
             }
287
-            $profile->setRealm($outer . $realm);
287
+            $profile->setRealm($outer.$realm);
288 288
         }
289 289
         /* const AUXATTRIB_PROFILE_TESTUSER = 'ATTRIB-PROFILE-TESTUSER'; */
290 290
         $testuser = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_PROFILE_TESTUSER);
@@ -531,7 +531,7 @@  discard block
 block discarded – undo
531 531
         // extract relevant subset of information from cert objects
532 532
         $certDetails = [];
533 533
         foreach ($certs as $cert) {
534
-            $certDetails[$cert->ca_type . ":" . $cert->serial] = ["ISSUED" => $cert->issued, "EXPIRY" => $cert->expiry, "STATUS" => $cert->status, "DEVICE" => $cert->device, "CN" => $cert->username, "ANNOTATION" => $cert->annotation];
534
+            $certDetails[$cert->ca_type.":".$cert->serial] = ["ISSUED" => $cert->issued, "EXPIRY" => $cert->expiry, "STATUS" => $cert->status, "DEVICE" => $cert->device, "CN" => $cert->username, "ANNOTATION" => $cert->annotation];
535 535
         }
536 536
         $adminApi->returnSuccess($certDetails);
537 537
         break;
Please login to merge, or discard this patch.
devices/PP_OSU_XML/DevicePPOSUXML.php 1 patch
Spacing   +9 added lines, -9 removed lines patch added patch discarded remove patch
@@ -92,10 +92,10 @@  discard block
 block discarded – undo
92 92
         <NodeName>AAAServerTrustRoot</NodeName>';
93 93
         foreach ($this->attributes['internal:CAs'][0] as $oneCert) {
94 94
             $retval .= '<Node>
95
-                         <NodeName>' . $oneCert['uuid'] . '</NodeName>
95
+                         <NodeName>' . $oneCert['uuid'].'</NodeName>
96 96
                              <Node>
97 97
                                <NodeName>CertSHA256Fingerprint</NodeName>
98
-                               <Value>' . $oneCert['sha256'] . '</Value>
98
+                               <Value>' . $oneCert['sha256'].'</Value>
99 99
                              </Node>
100 100
                        </Node>
101 101
                   ';
@@ -114,7 +114,7 @@  discard block
 block discarded – undo
114 114
         $now = new \DateTime();
115 115
         return '<Node>
116 116
           <NodeName>CreationDate</NodeName>
117
-          <Value>' . $now->format("Y-m-d") . "T" . $now->format("H:i:s") . "Z" . '</Value>
117
+          <Value>' . $now->format("Y-m-d")."T".$now->format("H:i:s")."Z".'</Value>
118 118
         </Node>';
119 119
     }
120 120
 
@@ -128,11 +128,11 @@  discard block
 block discarded – undo
128 128
         <NodeName>HomeSP</NodeName>
129 129
         <Node>
130 130
           <NodeName>FriendlyName</NodeName>
131
-          <Value>' . sprintf(_("%s via Passpoint"), \config\ConfAssistant::CONSORTIUM['display_name']) . '</Value>
131
+          <Value>' . sprintf(_("%s via Passpoint"), \config\ConfAssistant::CONSORTIUM['display_name']).'</Value>
132 132
         </Node>
133 133
         <Node>
134 134
           <NodeName>FQDN</NodeName>
135
-          <Value>' . $this->attributes['eap:server_name'][0] /* what, only one FQDN allowed? */ . '</Value>
135
+          <Value>' . $this->attributes['eap:server_name'][0] /* what, only one FQDN allowed? */.'</Value>
136 136
         </Node>
137 137
         <Node>
138 138
           <NodeName>RoamingConsortiumOI</NodeName>
@@ -148,7 +148,7 @@  discard block
 block discarded – undo
148 148
                 $oiList .= ",";
149 149
             }
150 150
         }
151
-        $retval .= $oiList . '</Value>
151
+        $retval .= $oiList.'</Value>
152 152
         </Node>
153 153
       </Node>
154 154
 ';
@@ -165,7 +165,7 @@  discard block
 block discarded – undo
165 165
         <NodeName>Credential</NodeName>
166 166
         <Node>
167 167
               <NodeName>Realm</NodeName>
168
-              <Value>' . $this->attributes['internal:realm'][0] . '</Value>
168
+              <Value>' . $this->attributes['internal:realm'][0].'</Value>
169 169
             </Node>';
170 170
         /* the example file I got did not include CreationDate, so omit it
171 171
          * 
@@ -180,7 +180,7 @@  discard block
 block discarded – undo
180 180
             </Node>
181 181
             <Node>
182 182
               <NodeName>CertSHA256Fingerprint</NodeName>
183
-              <Value>' . strtoupper($this->clientCert["sha256"]) /* the actual cert has to go... where? */ . '</Value>
183
+              <Value>' . strtoupper($this->clientCert["sha256"]) /* the actual cert has to go... where? */.'</Value>
184 184
             </Node>
185 185
           </Node>
186 186
       </Node>
@@ -298,7 +298,7 @@  discard block
 block discarded – undo
298 298
         // foresee signing.
299 299
         // but if they ever change their mind, we are prepared
300 300
 
301
-        $outputFromSigning = system($this->sign . " installer_profile '$fileName' > /dev/null");
301
+        $outputFromSigning = system($this->sign." installer_profile '$fileName' > /dev/null");
302 302
         if ($outputFromSigning === FALSE) {
303 303
             $this->loggerInstance->debug(2, "Signing the ONC installer $fileName FAILED!\n");
304 304
         }
Please login to merge, or discard this patch.
devices/linux/DeviceLinuxSh.php 3 patches
Indentation   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -201,7 +201,7 @@
 block discarded – undo
201 201
         }
202 202
 
203 203
         if (!empty($this->attributes['internal:realm'][0])) {
204
-           $config['USER_REALM'] = $this->attributes['internal:realm'][0];
204
+            $config['USER_REALM'] = $this->attributes['internal:realm'][0];
205 205
         }
206 206
 
207 207
         if(!empty($this->attributes['internal:hint_userinput_suffix'][0]) && $this->attributes['internal:hint_userinput_suffix'][0] == 1) {
Please login to merge, or discard this patch.
Braces   +1 added lines, -2 removed lines patch added patch discarded remove patch
@@ -203,8 +203,7 @@
 block discarded – undo
203 203
 
204 204
         if ($this->selectedEap == \core\common\EAP::EAPTYPE_TLS && isset($this->attributes['eap-specific:tls_use_other_id']) && $this->attributes['eap-specific:tls_use_other_id'][0] == 'on') {
205 205
             $configRaw['USE_OTHER_TLS_ID'] = true;
206
-        }
207
-        else {
206
+        } else {
208 207
             $configRaw['USE_OTHER_TLS_ID'] = false;
209 208
         }
210 209
 
Please login to merge, or discard this patch.
Spacing   +8 added lines, -8 removed lines patch added patch discarded remove patch
@@ -51,7 +51,7 @@  discard block
 block discarded – undo
51 51
         $installerPath = $this->installerBasename.".sh";
52 52
         $this->copyFile("eduroam_linux_main.sh", $installerPath);
53 53
 
54
-        if ( !file_exists($installerPath) ) {
54
+        if (!file_exists($installerPath)) {
55 55
             throw new Exception('File not found.');
56 56
         }
57 57
 
@@ -68,7 +68,7 @@  discard block
 block discarded – undo
68 68
             fwrite($installer, 'printf -v INIT_CONFIRMATION "$INIT_CONFIRMATION_TMP" "$ORGANISATION"'."\n\n");
69 69
             fwrite($installer, 'main "$@"; exit'."\n");
70 70
         } catch (Exception $e) {
71
-            echo 'Error message: ' .$e->getMessage();
71
+            echo 'Error message: '.$e->getMessage();
72 72
         } finally {
73 73
             fclose($installer);
74 74
             return($installerPath);
@@ -204,11 +204,11 @@  discard block
 block discarded – undo
204 204
            $config['USER_REALM'] = $this->attributes['internal:realm'][0];
205 205
         }
206 206
 
207
-        if(!empty($this->attributes['internal:hint_userinput_suffix'][0]) && $this->attributes['internal:hint_userinput_suffix'][0] == 1) {
207
+        if (!empty($this->attributes['internal:hint_userinput_suffix'][0]) && $this->attributes['internal:hint_userinput_suffix'][0] == 1) {
208 208
             $configRaw['HINT_USER_INPUT'] = true;
209 209
         }
210 210
 
211
-        if(!empty($this->attributes['internal:verify_userinput_suffix'][0]) && $this->attributes['internal:verify_userinput_suffix'][0] == 1) {
211
+        if (!empty($this->attributes['internal:verify_userinput_suffix'][0]) && $this->attributes['internal:verify_userinput_suffix'][0] == 1) {
212 212
             $configRaw['VERIFY_USER_REALM_INPUT'] = true;
213 213
         } else {
214 214
             $configRaw['VERIFY_USER_REALM_INPUT'] = false;
@@ -219,7 +219,7 @@  discard block
 block discarded – undo
219 219
         }
220 220
 
221 221
         foreach ($configRaw as $name => $value) {
222
-            fwrite($file, $name ."=". $value."\n");
222
+            fwrite($file, $name."=".$value."\n");
223 223
         }
224 224
 
225 225
         if ($tou === '') {
@@ -283,7 +283,7 @@  discard block
 block discarded – undo
283 283
             }
284 284
             $out .= "'DNS:$oneServer'";
285 285
         }
286
-        return "(".$out. ")";
286
+        return "(".$out.")";
287 287
     }
288 288
 
289 289
     /**
@@ -323,7 +323,7 @@  discard block
 block discarded – undo
323 323
      *
324 324
      * @return string
325 325
      */
326
-    private function mkCAfile(){
326
+    private function mkCAfile() {
327 327
         $out = '';
328 328
         $cAlist = $this->attributes['internal:CAs'][0];
329 329
         foreach ($cAlist as $oneCa) {
@@ -339,7 +339,7 @@  discard block
 block discarded – undo
339 339
      */
340 340
     private function mkIntro() {
341 341
         \core\common\Entity::intoThePotatoes();
342
-        $out = _("This installer has been prepared for %s").'\n\n'._("More information and comments:").'\n\nE-Mail: %s\nWWW: %s\n\n' .
342
+        $out = _("This installer has been prepared for %s").'\n\n'._("More information and comments:").'\n\nE-Mail: %s\nWWW: %s\n\n'.
343 343
             _("Installer created with software from the GEANT project.");
344 344
         \core\common\Entity::outOfThePotatoes();
345 345
         return $out;
Please login to merge, or discard this patch.
core/ProfileSilverbullet.php 1 patch
Spacing   +4 added lines, -4 removed lines patch added patch discarded remove patch
@@ -96,7 +96,7 @@  discard block
 block discarded – undo
96 96
 
97 97
 // realm is automatically calculated, then stored in DB
98 98
 
99
-        $this->realm = "opaquehash@$myInst->identifier-$this->identifier." . strtolower($myInst->federation) . \config\ConfAssistant::SILVERBULLET['realm_suffix'];
99
+        $this->realm = "opaquehash@$myInst->identifier-$this->identifier.".strtolower($myInst->federation).\config\ConfAssistant::SILVERBULLET['realm_suffix'];
100 100
         $localValueIfAny = "";
101 101
 
102 102
 // but there's some common internal attributes populated directly
@@ -113,11 +113,11 @@  discard block
 block discarded – undo
113 113
 
114 114
         // and we need to populate eap:server_name and eap:ca_file with the NRO-specific EAP information
115 115
         $silverbulletAttributes = [
116
-            "eap:server_name" => "auth." . strtolower($myFed->tld) . \config\ConfAssistant::SILVERBULLET['server_suffix'],
116
+            "eap:server_name" => "auth.".strtolower($myFed->tld).\config\ConfAssistant::SILVERBULLET['server_suffix'],
117 117
         ];
118 118
         $temp = array_merge($this->addInternalAttributes($internalAttributes), $this->addInternalAttributes($silverbulletAttributes));
119 119
         $x509 = new \core\common\X509();
120
-        $caHandle = fopen(dirname(__FILE__) . "/../config/SilverbulletServerCerts/" . strtoupper($myFed->tld) . "/root.pem", "r");
120
+        $caHandle = fopen(dirname(__FILE__)."/../config/SilverbulletServerCerts/".strtoupper($myFed->tld)."/root.pem", "r");
121 121
         if ($caHandle !== FALSE) {
122 122
             $cAFile = fread($caHandle, 16000000);
123 123
             foreach ($x509->splitCertificate($cAFile) as $oneCa) {
@@ -273,7 +273,7 @@  discard block
 block discarded – undo
273 273
         if (empty($certNames)) {
274 274
             return [];
275 275
         }
276
-        $namesCondensed = "'" . implode("' OR username = '", $certNames) . "'";
276
+        $namesCondensed = "'".implode("' OR username = '", $certNames)."'";
277 277
         $serverHandles = DBConnection::handle("RADIUS");
278 278
         $returnarray = [];
279 279
         foreach ($serverHandles as $oneDbServer) {
Please login to merge, or discard this patch.
core/common/X509.php 1 patch
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -88,7 +88,7 @@
 block discarded – undo
88 88
     public function der2pem($derData)
89 89
     {
90 90
         $pem = chunk_split(base64_encode($derData), 64, "\n");
91
-        $pem = "-----BEGIN CERTIFICATE-----\n" . $pem . "-----END CERTIFICATE-----\n";
91
+        $pem = "-----BEGIN CERTIFICATE-----\n".$pem."-----END CERTIFICATE-----\n";
92 92
         return $pem;
93 93
     }
94 94
 
Please login to merge, or discard this patch.
core/DeviceFactory.php 1 patch
Spacing   +3 added lines, -3 removed lines patch added patch discarded remove patch
@@ -65,8 +65,8 @@  discard block
 block discarded – undo
65 65
         parent::__construct();
66 66
         $Dev = \devices\Devices::listDevices();
67 67
         if (isset($Dev[$blueprint])) {
68
-            $this->loggerInstance->debug(4, "loaded: devices/" . $Dev[$blueprint]['directory'] . "/" . $Dev[$blueprint]['module'] . ".php\n");
69
-            $class_name = "\devices\\" . $Dev[$blueprint]['directory'] . "\Device" . $Dev[$blueprint]['module'];
68
+            $this->loggerInstance->debug(4, "loaded: devices/".$Dev[$blueprint]['directory']."/".$Dev[$blueprint]['module'].".php\n");
69
+            $class_name = "\devices\\".$Dev[$blueprint]['directory']."\Device".$Dev[$blueprint]['module'];
70 70
             $this->device = new $class_name();
71 71
             if (!$this->device) {
72 72
                 $this->loggerInstance->debug(2, "module loading failed");
@@ -75,7 +75,7 @@  discard block
 block discarded – undo
75 75
         } else {
76 76
             echo("unknown devicename:$blueprint\n");
77 77
         }
78
-        $this->device->module_path = ROOT . '/devices/' . $Dev[$blueprint]['directory'];
78
+        $this->device->module_path = ROOT.'/devices/'.$Dev[$blueprint]['directory'];
79 79
         $this->device->signer = isset($Dev[$blueprint]['signer']) ? $Dev[$blueprint]['signer'] : 0;
80 80
         $this->device->device_id = $blueprint;
81 81
         $options = \devices\Devices::$Options;
Please login to merge, or discard this patch.
core/diag/Sociopath.php 1 patch
Spacing   +5 added lines, -5 removed lines patch added patch discarded remove patch
@@ -108,7 +108,7 @@  discard block
 block discarded – undo
108 108
                 "TXT" => _("If you use more than one device: do your other devices still work?"),
109 109
                 "FACTOR_YES" => 0.33, // seems that all is okay with the account as such
110 110
                 "FACTOR_NO" => 3, // now that is suspicious indeed
111
-                "VERDICTLECTURE" => _("If all devices stopped working simultaneously, there may be a problem with your account as such. Maybe your account expired, or you were forced to change the password? These questions are best answered by your Identity Provider [MGW: display contact info]"),],
111
+                "VERDICTLECTURE" => _("If all devices stopped working simultaneously, there may be a problem with your account as such. Maybe your account expired, or you were forced to change the password? These questions are best answered by your Identity Provider [MGW: display contact info]"), ],
112 112
             6 => ["AREA" => AbstractTest::INFRA_SP_80211,
113 113
                 "TXT" => _("Is the place you are currently at heavily crowded, or is a network-intensive workload going on?"),
114 114
                 "FACTOR_YES" => 3,
@@ -144,11 +144,11 @@  discard block
 block discarded – undo
144 144
         $questionDetails = $this->qaArray[$questionNumber];
145 145
         if ($answer === TRUE) {
146 146
             $this->possibleFailureReasons[$questionDetails['AREA']] = $this->possibleFailureReasons[$questionDetails['AREA']] * $questionDetails["FACTOR_YES"];
147
-            $this->loggerInstance->debug(3, "Adjusting " . $questionDetails['AREA'] . " by " . $questionDetails["FACTOR_YES"] . "\n");
147
+            $this->loggerInstance->debug(3, "Adjusting ".$questionDetails['AREA']." by ".$questionDetails["FACTOR_YES"]."\n");
148 148
             $factor = $questionDetails["FACTOR_YES"];
149 149
         } elseif ($answer === FALSE) {
150 150
             $this->possibleFailureReasons[$questionDetails['AREA']] = $this->possibleFailureReasons[$questionDetails['AREA']] * $questionDetails["FACTOR_NO"];
151
-            $this->loggerInstance->debug(3, "Adjusting " . $questionDetails['AREA'] . " by " . $questionDetails["FACTOR_NO"] . "\n");
151
+            $this->loggerInstance->debug(3, "Adjusting ".$questionDetails['AREA']." by ".$questionDetails["FACTOR_NO"]."\n");
152 152
             $factor = $questionDetails["FACTOR_NO"];
153 153
         } else {
154 154
             $factor = 1;
@@ -183,7 +183,7 @@  discard block
 block discarded – undo
183 183
         // if both are identical, take any of the questions in the pool of both
184 184
         foreach ($this->qaArray as $questionNumber => $questionDetails) {
185 185
             // if we find a question we didn't ask before AND it is related to our currently high-scoring problem area, ask it
186
-            if (!array_key_exists($questionNumber, $this->previousQuestions) && ( $questionDetails["AREA"] == $highestCategory || $questionDetails["AREA"] == $nextCategory)) {
186
+            if (!array_key_exists($questionNumber, $this->previousQuestions) && ($questionDetails["AREA"] == $highestCategory || $questionDetails["AREA"] == $nextCategory)) {
187 187
                 return json_encode(["NEXTEXISTS" => TRUE, "NUMBER" => $questionNumber, "TEXT" => $questionDetails["TXT"]]);
188 188
             }
189 189
         }
@@ -211,7 +211,7 @@  discard block
 block discarded – undo
211 211
         $text = $this->genericVerdictTexts[$area];
212 212
         foreach ($this->previousQuestions as $number => $factor) {
213 213
             if ($this->qaArray[$number]["AREA"] == $area && $factor > 1) {
214
-                $text .= "\n\n" . $this->qaArray[$number]["VERDICTLECTURE"];
214
+                $text .= "\n\n".$this->qaArray[$number]["VERDICTLECTURE"];
215 215
             }
216 216
         }
217 217
         return $text;
Please login to merge, or discard this patch.
core/diag/Telepath.php 1 patch
Spacing   +3 added lines, -3 removed lines patch added patch discarded remove patch
@@ -113,7 +113,7 @@  discard block
 block discarded – undo
113 113
         if ($this->idPFederation === NULL && preg_match("/\.(..)$/", $realm, $matches)) {
114 114
             $this->idPFederation = strtoupper($matches[1]);
115 115
         }
116
-        $this->loggerInstance->debug(4, "XYZ: IdP-side NRO is " . $this->idPFederation . "\n");
116
+        $this->loggerInstance->debug(4, "XYZ: IdP-side NRO is ".$this->idPFederation."\n");
117 117
     }
118 118
     /* The eduroam OT monitoring has the following return codes:
119 119
      * 
@@ -443,12 +443,12 @@  discard block
 block discarded – undo
443 443
                     break;
444 444
                 case \core\AbstractProfile::READINESS_LEVEL_NOTREADY:
445 445
                     $this->additionalFindings[AbstractTest::INFRA_IDP_RADIUS][] = ["Profile" => "UNCONCLUSIVE"];
446
-                    $this->testsuite = new RADIUSTests($this->realm, "anonymous@" . $this->realm);
446
+                    $this->testsuite = new RADIUSTests($this->realm, "anonymous@".$this->realm);
447 447
                     break;
448 448
                 default:
449 449
             }
450 450
         } else {
451
-            $this->testsuite = new RADIUSTests($this->realm, "anonymous@" . $this->realm);
451
+            $this->testsuite = new RADIUSTests($this->realm, "anonymous@".$this->realm);
452 452
         }
453 453
     }
454 454
 
Please login to merge, or discard this patch.
core/diag/RFC7585Tests.php 2 patches
Indentation   -1 removed lines patch added patch discarded remove patch
@@ -197,7 +197,6 @@
 block discarded – undo
197 197
      * - RETVAL_NOTCONFIGURED; needs \config\Diagnostics::RADIUSTESTS['TLS-discoverytag']
198 198
      * - RETVAL_INVALID (at least one format error)
199 199
      * - RETVAL_OK (all fine)
200
-
201 200
      * @return int one of two RETVALs above
202 201
      */
203 202
     public function relevantNAPTRcompliance()
Please login to merge, or discard this patch.
Spacing   +4 added lines, -4 removed lines patch added patch discarded remove patch
@@ -438,7 +438,7 @@  discard block
 block discarded – undo
438 438
             $this->relevantNAPTRhostnameResolution();
439 439
         }
440 440
         foreach ($this->NAPTR_hostname_records as $hostindex => $addr) {
441
-            $host = ($addr['family'] == "IPv6" ? "[" : "") . $addr['IP'] . ($addr['family'] == "IPv6" ? "]" : "") . ":" . $addr['port'];
441
+            $host = ($addr['family'] == "IPv6" ? "[" : "").$addr['IP'].($addr['family'] == "IPv6" ? "]" : "").":".$addr['port'];
442 442
             $this->NAPTR_hostname_records[$hostindex]['protocols'] = $this->execSslscan($hostindex, $host);
443 443
             foreach ($this->NAPTR_hostname_records[$hostindex]['protocols'] as $protocol) {
444 444
                 if ($protocol['type'] == 'TLS1.3' && $protocol['enabled'] == 1) {
@@ -458,13 +458,13 @@  discard block
 block discarded – undo
458 458
      */
459 459
     private function execSslscan($hostindex, $host)
460 460
     {
461
-        $this->loggerInstance->debug(4, \config\Master::PATHS['sslscan'] . " --no-heartbleed --no-fallback --connect-timeout=5 --no-ciphersuites --xml=- " . $host . "\n");
461
+        $this->loggerInstance->debug(4, \config\Master::PATHS['sslscan']." --no-heartbleed --no-fallback --connect-timeout=5 --no-ciphersuites --xml=- ".$host."\n");
462 462
         $sslscanbabble = [];
463 463
         $result = 999; // likely to become zero by openssl; don't want to initialise to zero, could cover up exec failures
464
-        exec(\config\Master::PATHS['sslscan'] . " --no-heartbleed --no-fallback --connect-timeout=5 --no-ciphersuites --xml=- " . $host ." 2>&1", $sslscanbabble, $result);
464
+        exec(\config\Master::PATHS['sslscan']." --no-heartbleed --no-fallback --connect-timeout=5 --no-ciphersuites --xml=- ".$host." 2>&1", $sslscanbabble, $result);
465 465
         $this->loggerInstance->debug(4, 'sslscan result '.implode($sslscanbabble));
466 466
         $xml = simplexml_load_string(implode($sslscanbabble));  
467
-        $resarray = json_decode(json_encode((array)$xml),true);
467
+        $resarray = json_decode(json_encode((array) $xml), true);
468 468
         $prots = [];
469 469
         if (!isset($resarray['ssltest'])) {
470 470
             $this->NAPTR_hostname_records[$hostindex]['unavailable'] = 1;
Please login to merge, or discard this patch.