Passed
Push — release_2_1 ( 486317...21e7c1 )
by Stefan
26:06 queued 10s
created
web/admin/API.php 3 patches
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
 $inputRaw = file_get_contents('php://input');
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
         $adminApi->returnSuccess($fed->downloadStats("array"));
@@ -216,10 +216,10 @@  discard block
 block discarded – undo
216 216
                 $outer = "";
217 217
                 $profile->setAnonymousIDSupport(FALSE);
218 218
             } else {
219
-                $outer = $outer . "@";
219
+                $outer = $outer."@";
220 220
                 $profile->setAnonymousIDSupport(TRUE);
221 221
             }
222
-            $profile->setRealm($outer . $realm);
222
+            $profile->setRealm($outer.$realm);
223 223
         }
224 224
         /* const AUXATTRIB_PROFILE_TESTUSER = 'ATTRIB-PROFILE-TESTUSER'; */
225 225
         $testuser = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_PROFILE_TESTUSER);
@@ -447,7 +447,7 @@  discard block
 block discarded – undo
447 447
         // extract relevant subset of information from cert objects
448 448
         $certDetails = [];
449 449
         foreach ($certs as $cert) {
450
-            $certDetails[$cert->ca_type . ":" . $cert->serial] = ["ISSUED" => $cert->issued, "EXPIRY" => $cert->expiry, "STATUS" => $cert->status, "DEVICE" => $cert->device, "CN" => $cert->username, "ANNOTATION" => $cert->annotation];
450
+            $certDetails[$cert->ca_type.":".$cert->serial] = ["ISSUED" => $cert->issued, "EXPIRY" => $cert->expiry, "STATUS" => $cert->status, "DEVICE" => $cert->device, "CN" => $cert->username, "ANNOTATION" => $cert->annotation];
451 451
         }
452 452
         $adminApi->returnSuccess($certDetails);
453 453
         break;
Please login to merge, or discard this patch.
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   +383 added lines, -383 removed lines patch added patch discarded remove patch
@@ -84,231 +84,231 @@  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
-        $adminApi->returnSuccess($fed->downloadStats("array"));
176
-        break;
177
-    case \web\lib\admin\API::ACTION_FEDERATION_LISTIDP:
178
-        $retArray = [];
179
-        $idpIdentifier = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_CAT_INST_ID);
180
-        if ($idpIdentifier === FALSE) {
181
-            $allIdPs = $fed->listIdentityProviders(0);
182
-            foreach ($allIdPs as $instanceId => $oneIdP) {
183
-                $theIdP = $oneIdP["instance"];
184
-                $retArray[$instanceId] = $theIdP->getAttributes();
185
-            }
186
-        } else {
109
+            break;
110
+        case web\lib\admin\API::ACTION_ADMIN_LIST:
187 111
             try {
188
-                $thisIdP = $validator->existingIdP($idpIdentifier, NULL, $fed);
112
+                $idp = $validator->existingIdP($adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_CAT_INST_ID), NULL, $fed);
189 113
             } catch (Exception $e) {
190 114
                 $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "IdP identifier does not exist!");
191 115
                 exit(1);
192 116
             }
193
-            $retArray[$idpIdentifier] = $thisIdP->getAttributes();
194
-            foreach ($thisIdP->listProfiles() as $oneProfile) {
195
-                $retArray[$idpIdentifier]["PROFILES"][$oneProfile->identifier] = $oneProfile->getAttributes();
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);
196 126
             }
197
-        }
198
-        foreach ($retArray as $instNumber => $oneInstData) {
199
-            foreach ($oneInstData as $attribNumber => $oneAttrib) {
200
-                if ($oneAttrib['name'] == "general:logo_file") {
201
-                    // JSON doesn't cope well with raw binary data, so b64 it
202
-                    $retArray[$instNumber][$attribNumber]['value'] = base64_encode($oneAttrib['value']);
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"];
144
+                }
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']);
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
+            $adminApi->returnSuccess($fed->downloadStats("array"));
176
+            break;
177
+        case \web\lib\admin\API::ACTION_FEDERATION_LISTIDP:
178
+            $retArray = [];
179
+            $idpIdentifier = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_CAT_INST_ID);
180
+            if ($idpIdentifier === FALSE) {
181
+                $allIdPs = $fed->listIdentityProviders(0);
182
+                foreach ($allIdPs as $instanceId => $oneIdP) {
183
+                    $theIdP = $oneIdP["instance"];
184
+                    $retArray[$instanceId] = $theIdP->getAttributes();
185
+                }
186
+            } else {
187
+                try {
188
+                    $thisIdP = $validator->existingIdP($idpIdentifier, NULL, $fed);
189
+                } catch (Exception $e) {
190
+                    $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "IdP identifier does not exist!");
191
+                    exit(1);
192
+                }
193
+                $retArray[$idpIdentifier] = $thisIdP->getAttributes();
194
+                foreach ($thisIdP->listProfiles() as $oneProfile) {
195
+                    $retArray[$idpIdentifier]["PROFILES"][$oneProfile->identifier] = $oneProfile->getAttributes();
203 196
                 }
204
-                if ($attribNumber == "PROFILES") {
205
-                    // scan for included fed:logo_file and b64 escape it, t2oo
206
-                    foreach ($oneAttrib as $profileNumber => $profileContent) {
207
-                            foreach ($profileContent as $oneProfileIterator => $oneProfileContent) {
208
-                                    if ($oneProfileContent['name'] == "fed:logo_file" || $oneProfileContent['name'] == "general:logo_file" || $oneProfileContent['name'] == "eap:ca_file") {
209
-                                            $retArray[$instNumber]["PROFILES"][$profileNumber][$oneProfileIterator]['value'] = base64_encode($oneProfileContent['value']);
210
-                                    }
211
-                            }
197
+            }
198
+            foreach ($retArray as $instNumber => $oneInstData) {
199
+                foreach ($oneInstData as $attribNumber => $oneAttrib) {
200
+                    if ($oneAttrib['name'] == "general:logo_file") {
201
+                        // JSON doesn't cope well with raw binary data, so b64 it
202
+                        $retArray[$instNumber][$attribNumber]['value'] = base64_encode($oneAttrib['value']);
203
+                    }
204
+                    if ($attribNumber == "PROFILES") {
205
+                        // scan for included fed:logo_file and b64 escape it, t2oo
206
+                        foreach ($oneAttrib as $profileNumber => $profileContent) {
207
+                                foreach ($profileContent as $oneProfileIterator => $oneProfileContent) {
208
+                                        if ($oneProfileContent['name'] == "fed:logo_file" || $oneProfileContent['name'] == "general:logo_file" || $oneProfileContent['name'] == "eap:ca_file") {
209
+                                                $retArray[$instNumber]["PROFILES"][$profileNumber][$oneProfileIterator]['value'] = base64_encode($oneProfileContent['value']);
210
+                                        }
211
+                                }
212
+                        }
212 213
                     }
213 214
                 }
214 215
             }
215
-        }
216
-        $adminApi->returnSuccess($retArray);
217
-        break;
218
-    case \web\lib\admin\API::ACTION_NEWPROF_RADIUS:
219
-    // fall-through intended: both get mostly identical treatment
220
-    case web\lib\admin\API::ACTION_NEWPROF_SB:
221
-        try {
222
-            $idp = $validator->existingIdP($adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_CAT_INST_ID), NULL, $fed);
223
-        } catch (Exception $e) {
224
-            $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "IdP identifier does not exist!");
225
-            exit(1);
226
-        }
227
-        if ($inputDecoded['ACTION'] == web\lib\admin\API::ACTION_NEWPROF_RADIUS) {
228
-            $type = "RADIUS";
229
-        } else {
230
-            $type = "SILVERBULLET";
231
-        }
232
-        $profile = $idp->newProfile($type);
233
-        if ($profile === NULL) {
234
-            $adminApi->returnError(\web\lib\admin\API::ERROR_INTERNAL_ERROR, "Unable to create a new Profile, for no apparent reason. Please contact support.");
235
-            exit(1);
236
-        }
237
-        $inputs = $adminApi->uglify($scrubbedParameters);
238
-        $optionParser->processSubmittedFields($profile, $inputs["POST"], $inputs["FILES"]);
239
-        if ($inputDecoded['ACTION'] == web\lib\admin\API::ACTION_NEWPROF_SB) {
240
-            // auto-accept ToU?
241
-            if ($adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_SB_TOU) !== FALSE) {
242
-                $profile->addAttribute("hiddenprofile:tou_accepted", NULL, 1);
243
-            }
244
-            // we're done at this point
245
-            $adminApi->returnSuccess([\web\lib\admin\API::AUXATTRIB_CAT_PROFILE_ID => $profile->identifier]);
216
+            $adminApi->returnSuccess($retArray);
246 217
             break;
247
-        }
248
-        if (!$profile instanceof core\ProfileRADIUS) {
249
-            throw new Exception("Can't be. This is only here to convince Scrutinizer that we're really talking RADIUS.");
250
-        }
251
-        /* const AUXATTRIB_PROFILE_REALM = 'ATTRIB-PROFILE-REALM';
252
-          const AUXATTRIB_PROFILE_OUTERVALUE = 'ATTRIB-PROFILE-OUTERVALUE'; */
253
-        $realm = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_PROFILE_REALM);
254
-        $outer = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_PROFILE_OUTERVALUE);
255
-        if ($realm !== FALSE) {
256
-            if ($outer === FALSE) {
257
-                $outer = "";
258
-                $profile->setAnonymousIDSupport(FALSE);
218
+        case \web\lib\admin\API::ACTION_NEWPROF_RADIUS:
219
+        // fall-through intended: both get mostly identical treatment
220
+        case web\lib\admin\API::ACTION_NEWPROF_SB:
221
+            try {
222
+                $idp = $validator->existingIdP($adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_CAT_INST_ID), NULL, $fed);
223
+            } catch (Exception $e) {
224
+                $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "IdP identifier does not exist!");
225
+                exit(1);
226
+            }
227
+            if ($inputDecoded['ACTION'] == web\lib\admin\API::ACTION_NEWPROF_RADIUS) {
228
+                $type = "RADIUS";
259 229
             } else {
260
-                $outer = $outer . "@";
261
-                $profile->setAnonymousIDSupport(TRUE);
230
+                $type = "SILVERBULLET";
262 231
             }
263
-            $profile->setRealm($outer . $realm);
264
-        }
265
-        /* const AUXATTRIB_PROFILE_TESTUSER = 'ATTRIB-PROFILE-TESTUSER'; */
266
-        $testuser = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_PROFILE_TESTUSER);
267
-        if ($testuser !== FALSE) {
268
-            $profile->setRealmCheckUser(TRUE, $testuser);
269
-        }
270
-        /* const AUXATTRIB_PROFILE_INPUT_HINT = 'ATTRIB-PROFILE-HINTREALM';
232
+            $profile = $idp->newProfile($type);
233
+            if ($profile === NULL) {
234
+                $adminApi->returnError(\web\lib\admin\API::ERROR_INTERNAL_ERROR, "Unable to create a new Profile, for no apparent reason. Please contact support.");
235
+                exit(1);
236
+            }
237
+            $inputs = $adminApi->uglify($scrubbedParameters);
238
+            $optionParser->processSubmittedFields($profile, $inputs["POST"], $inputs["FILES"]);
239
+            if ($inputDecoded['ACTION'] == web\lib\admin\API::ACTION_NEWPROF_SB) {
240
+                // auto-accept ToU?
241
+                if ($adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_SB_TOU) !== FALSE) {
242
+                    $profile->addAttribute("hiddenprofile:tou_accepted", NULL, 1);
243
+                }
244
+                // we're done at this point
245
+                $adminApi->returnSuccess([\web\lib\admin\API::AUXATTRIB_CAT_PROFILE_ID => $profile->identifier]);
246
+                break;
247
+            }
248
+            if (!$profile instanceof core\ProfileRADIUS) {
249
+                throw new Exception("Can't be. This is only here to convince Scrutinizer that we're really talking RADIUS.");
250
+            }
251
+            /* const AUXATTRIB_PROFILE_REALM = 'ATTRIB-PROFILE-REALM';
252
+          const AUXATTRIB_PROFILE_OUTERVALUE = 'ATTRIB-PROFILE-OUTERVALUE'; */
253
+            $realm = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_PROFILE_REALM);
254
+            $outer = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_PROFILE_OUTERVALUE);
255
+            if ($realm !== FALSE) {
256
+                if ($outer === FALSE) {
257
+                    $outer = "";
258
+                    $profile->setAnonymousIDSupport(FALSE);
259
+                } else {
260
+                    $outer = $outer . "@";
261
+                    $profile->setAnonymousIDSupport(TRUE);
262
+                }
263
+                $profile->setRealm($outer . $realm);
264
+            }
265
+            /* const AUXATTRIB_PROFILE_TESTUSER = 'ATTRIB-PROFILE-TESTUSER'; */
266
+            $testuser = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_PROFILE_TESTUSER);
267
+            if ($testuser !== FALSE) {
268
+                $profile->setRealmCheckUser(TRUE, $testuser);
269
+            }
270
+            /* const AUXATTRIB_PROFILE_INPUT_HINT = 'ATTRIB-PROFILE-HINTREALM';
271 271
           const AUXATTRIB_PROFILE_INPUT_VERIFY = 'ATTRIB-PROFILE-VERIFYREALM'; */
272
-        $hint = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_PROFILE_INPUT_HINT);
273
-        $enforce = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_PROFILE_INPUT_VERIFY);
274
-        if ($enforce !== FALSE) {
275
-            $profile->setInputVerificationPreference($enforce, $hint);
276
-        }
277
-        /* const AUXATTRIB_PROFILE_EAPTYPE */
278
-        $iterator = 1;
279
-        foreach ($scrubbedParameters as $oneParam) {
280
-            if ($oneParam['NAME'] == web\lib\admin\API::AUXATTRIB_PROFILE_EAPTYPE && is_int($oneParam["VALUE"])) {
281
-                $type = new \core\common\EAP($oneParam["VALUE"]);
282
-                $profile->addSupportedEapMethod($type, $iterator);
283
-                $iterator = $iterator + 1;
272
+            $hint = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_PROFILE_INPUT_HINT);
273
+            $enforce = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_PROFILE_INPUT_VERIFY);
274
+            if ($enforce !== FALSE) {
275
+                $profile->setInputVerificationPreference($enforce, $hint);
284 276
             }
285
-        }
286
-        // reinstantiate $profile freshly from DB - it was updated in the process
287
-        $profileFresh = new core\ProfileRADIUS($profile->identifier);
288
-        $profileFresh->prepShowtime();
289
-        $adminApi->returnSuccess([\web\lib\admin\API::AUXATTRIB_CAT_PROFILE_ID => $profileFresh->identifier]);
290
-        break;
291
-    case web\lib\admin\API::ACTION_ENDUSER_NEW:
292
-    // fall-through intentional, those two actions are doing nearly identical things
293
-    case web\lib\admin\API::ACTION_ENDUSER_CHANGEEXPIRY:
294
-        $prof_id = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_CAT_PROFILE_ID);
295
-        if ($prof_id === FALSE) {
296
-            exit(1);
297
-        }
298
-        $evaluation = $adminApi->commonSbProfileChecks($fed, $prof_id);
299
-        if ($evaluation === FALSE) {
300
-            exit(1);
301
-        }
302
-        list($idp, $profile) = $evaluation;
303
-        $user = $validator->string($adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_SB_USERNAME));
304
-        $expiryRaw = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_SB_EXPIRY);
305
-        if ($expiryRaw === FALSE) {
306
-            $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "The expiry date wasn't found in the request.");
277
+            /* const AUXATTRIB_PROFILE_EAPTYPE */
278
+            $iterator = 1;
279
+            foreach ($scrubbedParameters as $oneParam) {
280
+                if ($oneParam['NAME'] == web\lib\admin\API::AUXATTRIB_PROFILE_EAPTYPE && is_int($oneParam["VALUE"])) {
281
+                    $type = new \core\common\EAP($oneParam["VALUE"]);
282
+                    $profile->addSupportedEapMethod($type, $iterator);
283
+                    $iterator = $iterator + 1;
284
+                }
285
+            }
286
+            // reinstantiate $profile freshly from DB - it was updated in the process
287
+            $profileFresh = new core\ProfileRADIUS($profile->identifier);
288
+            $profileFresh->prepShowtime();
289
+            $adminApi->returnSuccess([\web\lib\admin\API::AUXATTRIB_CAT_PROFILE_ID => $profileFresh->identifier]);
307 290
             break;
308
-        }
309
-        $expiry = new DateTime($expiryRaw);
310
-        try {
311
-            switch ($inputDecoded['ACTION']) {
291
+        case web\lib\admin\API::ACTION_ENDUSER_NEW:
292
+        // fall-through intentional, those two actions are doing nearly identical things
293
+        case web\lib\admin\API::ACTION_ENDUSER_CHANGEEXPIRY:
294
+            $prof_id = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_CAT_PROFILE_ID);
295
+            if ($prof_id === FALSE) {
296
+                exit(1);
297
+            }
298
+            $evaluation = $adminApi->commonSbProfileChecks($fed, $prof_id);
299
+            if ($evaluation === FALSE) {
300
+                exit(1);
301
+            }
302
+            list($idp, $profile) = $evaluation;
303
+            $user = $validator->string($adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_SB_USERNAME));
304
+            $expiryRaw = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_SB_EXPIRY);
305
+            if ($expiryRaw === FALSE) {
306
+                $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "The expiry date wasn't found in the request.");
307
+                break;
308
+            }
309
+            $expiry = new DateTime($expiryRaw);
310
+            try {
311
+                switch ($inputDecoded['ACTION']) {
312 312
                 case web\lib\admin\API::ACTION_ENDUSER_NEW:
313 313
                     $retval = $profile->addUser($user, $expiry);
314 314
                     break;
@@ -321,7 +321,7 @@  discard block
 block discarded – undo
321 321
                         $retval = 1; // function doesn't have any failure vectors not raising an Exception and doesn't return a value
322 322
                     }
323 323
                     break;
324
-            }
324
+                }
325 325
         } catch (Exception $e) {
326 326
             $adminApi->returnError(web\lib\admin\API::ERROR_INTERNAL_ERROR, "The operation failed. Maybe a duplicate username, or malformed expiry date?");
327 327
             exit(1);
@@ -332,25 +332,25 @@  discard block
 block discarded – undo
332 332
         }
333 333
         $adminApi->returnSuccess([web\lib\admin\API::AUXATTRIB_SB_USERNAME => $user, \web\lib\admin\API::AUXATTRIB_SB_USERID => $retval]);
334 334
         break;
335
-    case \web\lib\admin\API::ACTION_ENDUSER_DEACTIVATE:
336
-    // fall-through intended: both actions are very similar
337
-    case \web\lib\admin\API::ACTION_TOKEN_NEW:
338
-        $profile_id = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_CAT_PROFILE_ID);
339
-        if ($profile_id === FALSE) {
340
-            exit(1);
341
-        }
342
-        $evaluation = $adminApi->commonSbProfileChecks($fed, $profile_id);
343
-        if ($evaluation === FALSE) {
344
-            exit(1);
345
-        }
346
-        list($idp, $profile) = $evaluation;
347
-        $userId = $validator->integer($adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_SB_USERID));
348
-        if ($userId === FALSE) {
349
-            $adminApi->returnError(\web\lib\admin\API::ERROR_INVALID_PARAMETER, "User ID is not an integer.");
350
-            exit(1);
351
-        }
352
-        $additionalInfo = [];
353
-        switch ($inputDecoded['ACTION']) { // this is where the two differ
335
+        case \web\lib\admin\API::ACTION_ENDUSER_DEACTIVATE:
336
+        // fall-through intended: both actions are very similar
337
+        case \web\lib\admin\API::ACTION_TOKEN_NEW:
338
+            $profile_id = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_CAT_PROFILE_ID);
339
+            if ($profile_id === FALSE) {
340
+                exit(1);
341
+            }
342
+            $evaluation = $adminApi->commonSbProfileChecks($fed, $profile_id);
343
+            if ($evaluation === FALSE) {
344
+                exit(1);
345
+            }
346
+            list($idp, $profile) = $evaluation;
347
+            $userId = $validator->integer($adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_SB_USERID));
348
+            if ($userId === FALSE) {
349
+                $adminApi->returnError(\web\lib\admin\API::ERROR_INVALID_PARAMETER, "User ID is not an integer.");
350
+                exit(1);
351
+            }
352
+            $additionalInfo = [];
353
+            switch ($inputDecoded['ACTION']) { // this is where the two differ
354 354
             case \web\lib\admin\API::ACTION_ENDUSER_DEACTIVATE:
355 355
                 $result = $profile->deactivateUser($userId);
356 356
                 break;
@@ -383,7 +383,7 @@  discard block
 block discarded – undo
383 383
                     }
384 384
                 }
385 385
                 break;
386
-        }
386
+            }
387 387
 
388 388
         if ($result !== TRUE) {
389 389
             $adminApi->returnError(\web\lib\admin\API::ERROR_INVALID_PARAMETER, "These parameters did not lead to an existing, active user.");
@@ -391,69 +391,69 @@  discard block
 block discarded – undo
391 391
         }
392 392
         $adminApi->returnSuccess($additionalInfo);
393 393
         break;
394
-    case \web\lib\admin\API::ACTION_ENDUSER_IDENTIFY:
395
-        $profile_id = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_CAT_PROFILE_ID);
396
-        if ($profile_id === FALSE) {
397
-            exit(1);
398
-        }
399
-        $evaluation = $adminApi->commonSbProfileChecks($fed, $profile_id);
400
-        if ($evaluation === FALSE) {
401
-            exit(1);
402
-        }
403
-        list($idp, $profile) = $evaluation;
404
-        $userId = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_SB_USERID);
405
-        $userName = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_SB_USERNAME);
406
-        $certSerial = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_SB_CERTSERIAL);
407
-		$certCN = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_SB_CERTCN);
408
-        if ($userId === FALSE && $userName === FALSE && $certSerial === FALSE && $certCN === FALSE) {
409
-            // we need at least one of those
410
-            $adminApi->returnError(\web\lib\admin\API::ERROR_MISSING_PARAMETER, "At least one of User ID, Username, certificate serial, or certificate CN is required.");
411
-            break;
412
-        }
413
-        if ($certSerial !== FALSE) { // we got a cert serial
414
-            $serial = explode(":", $certSerial);
415
-            $cert = new \core\SilverbulletCertificate($serial[1], $serial[0]);
394
+        case \web\lib\admin\API::ACTION_ENDUSER_IDENTIFY:
395
+            $profile_id = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_CAT_PROFILE_ID);
396
+            if ($profile_id === FALSE) {
397
+                exit(1);
416 398
             }
417
-        if ($certCN !== FALSE) { // we got a cert CN
418
-            $cert = new \core\SilverbulletCertificate($certCN);
419
-        }
420
-        if ($cert !== NULL) { // we found a cert; verify it and extract userId
421
-            if ($cert->status == \core\SilverbulletCertificate::CERTSTATUS_INVALID) {
422
-                return $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "Certificate not found.");
399
+            $evaluation = $adminApi->commonSbProfileChecks($fed, $profile_id);
400
+            if ($evaluation === FALSE) {
401
+                exit(1);
423 402
             }
424
-            if ($cert->profileId != $profile->identifier) {
425
-                return $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "Certificate does not belong to this profile.");
403
+            list($idp, $profile) = $evaluation;
404
+            $userId = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_SB_USERID);
405
+            $userName = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_SB_USERNAME);
406
+            $certSerial = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_SB_CERTSERIAL);
407
+		    $certCN = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_SB_CERTCN);
408
+            if ($userId === FALSE && $userName === FALSE && $certSerial === FALSE && $certCN === FALSE) {
409
+                // we need at least one of those
410
+                $adminApi->returnError(\web\lib\admin\API::ERROR_MISSING_PARAMETER, "At least one of User ID, Username, certificate serial, or certificate CN is required.");
411
+                break;
426 412
             }
427
-            $userId = $cert->userId;
428
-        }
429
-        if ($userId !== FALSE) {
430
-            $userList = $profile->getUserById($userId);
431
-        }
432
-        if ($userName !== FALSE) {
433
-            $userList = $profile->getUserByName($userName);
434
-        }
435
-        if (count($userList) === 1) {
436
-            foreach ($userList as $oneUserId => $oneUserName) {
437
-                return $adminApi->returnSuccess([web\lib\admin\API::AUXATTRIB_SB_USERNAME => $oneUserName, \web\lib\admin\API::AUXATTRIB_SB_USERID => $oneUserId]);
413
+            if ($certSerial !== FALSE) { // we got a cert serial
414
+                $serial = explode(":", $certSerial);
415
+                $cert = new \core\SilverbulletCertificate($serial[1], $serial[0]);
416
+                }
417
+            if ($certCN !== FALSE) { // we got a cert CN
418
+                $cert = new \core\SilverbulletCertificate($certCN);
438 419
             }
439
-        }
440
-        $adminApi->returnError(\web\lib\admin\API::ERROR_INVALID_PARAMETER, "No matching user found in this profile.");
441
-        break;
442
-    case \web\lib\admin\API::ACTION_ENDUSER_LIST:
443
-    // fall-through: those two are similar
444
-    case \web\lib\admin\API::ACTION_TOKEN_LIST:
445
-        $profile_id = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_CAT_PROFILE_ID);
446
-        if ($profile_id === FALSE) {
447
-            exit(1);
448
-        }
449
-        $evaluation = $adminApi->commonSbProfileChecks($fed, $profile_id);
450
-        if ($evaluation === FALSE) {
451
-            exit(1);
452
-        }
453
-        list($idp, $profile) = $evaluation;
454
-        $allUsers = $profile->listAllUsers();
455
-        // this is where they differ
456
-        switch ($inputDecoded['ACTION']) {
420
+            if ($cert !== NULL) { // we found a cert; verify it and extract userId
421
+                if ($cert->status == \core\SilverbulletCertificate::CERTSTATUS_INVALID) {
422
+                    return $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "Certificate not found.");
423
+                }
424
+                if ($cert->profileId != $profile->identifier) {
425
+                    return $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "Certificate does not belong to this profile.");
426
+                }
427
+                $userId = $cert->userId;
428
+            }
429
+            if ($userId !== FALSE) {
430
+                $userList = $profile->getUserById($userId);
431
+            }
432
+            if ($userName !== FALSE) {
433
+                $userList = $profile->getUserByName($userName);
434
+            }
435
+            if (count($userList) === 1) {
436
+                foreach ($userList as $oneUserId => $oneUserName) {
437
+                    return $adminApi->returnSuccess([web\lib\admin\API::AUXATTRIB_SB_USERNAME => $oneUserName, \web\lib\admin\API::AUXATTRIB_SB_USERID => $oneUserId]);
438
+                }
439
+            }
440
+            $adminApi->returnError(\web\lib\admin\API::ERROR_INVALID_PARAMETER, "No matching user found in this profile.");
441
+            break;
442
+        case \web\lib\admin\API::ACTION_ENDUSER_LIST:
443
+        // fall-through: those two are similar
444
+        case \web\lib\admin\API::ACTION_TOKEN_LIST:
445
+            $profile_id = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_CAT_PROFILE_ID);
446
+            if ($profile_id === FALSE) {
447
+                exit(1);
448
+            }
449
+            $evaluation = $adminApi->commonSbProfileChecks($fed, $profile_id);
450
+            if ($evaluation === FALSE) {
451
+                exit(1);
452
+            }
453
+            list($idp, $profile) = $evaluation;
454
+            $allUsers = $profile->listAllUsers();
455
+            // this is where they differ
456
+            switch ($inputDecoded['ACTION']) {
457 457
             case \web\lib\admin\API::ACTION_ENDUSER_LIST:
458 458
                 $adminApi->returnSuccess($allUsers);
459 459
                 break;
@@ -472,105 +472,105 @@  discard block
 block discarded – undo
472 472
                     $infoSet[$oneTokenObject->userId] = [\web\lib\admin\API::AUXATTRIB_TOKEN => $oneTokenObject->invitationTokenString, "STATUS" => $oneTokenObject->invitationTokenStatus];
473 473
                 }
474 474
                 $adminApi->returnSuccess($infoSet);
475
-        }
476
-        break;
477
-    case \web\lib\admin\API::ACTION_TOKEN_REVOKE:
478
-        $tokenRaw = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_TOKEN);
479
-        if ($tokenRaw === FALSE) {
480
-            exit(1);
481
-        }
482
-        $token = new core\SilverbulletInvitation($tokenRaw);
483
-        if ($token->invitationTokenStatus !== core\SilverbulletInvitation::SB_TOKENSTATUS_VALID && $token->invitationTokenStatus !== core\SilverbulletInvitation::SB_TOKENSTATUS_PARTIALLY_REDEEMED) {
484
-            $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "This is not a currently valid token.");
485
-            exit(1);
486
-        }
487
-        $token->revokeInvitation();
488
-        $adminApi->returnSuccess([]);
489
-        break;
490
-    case \web\lib\admin\API::ACTION_CERT_LIST:
491
-        $prof_id = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_CAT_PROFILE_ID);
492
-        $user_id = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_SB_USERID);
493
-        if ($prof_id === FALSE || !is_int($user_id)) {
494
-            exit(1);
495
-        }
496
-        $evaluation = $adminApi->commonSbProfileChecks($fed, $prof_id);
497
-        if ($evaluation === FALSE) {
498
-            exit(1);
499
-        }
500
-        list($idp, $profile) = $evaluation;
501
-        $invitations = $profile->userStatus($user_id);
502
-        // now pull out cert information from the object
503
-        $certs = [];
504
-        foreach ($invitations as $oneInvitation) {
505
-            $certs = array_merge($certs, $oneInvitation->associatedCertificates);
506
-        }
507
-        // extract relevant subset of information from cert objects
508
-        $certDetails = [];
509
-        foreach ($certs as $cert) {
510
-            $certDetails[$cert->ca_type . ":" . $cert->serial] = ["ISSUED" => $cert->issued, "EXPIRY" => $cert->expiry, "STATUS" => $cert->status, "DEVICE" => $cert->device, "CN" => $cert->username, "ANNOTATION" => $cert->annotation];
511
-        }
512
-        $adminApi->returnSuccess($certDetails);
513
-        break;
514
-    case \web\lib\admin\API::ACTION_CERT_REVOKE:
515
-        $prof_id = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_CAT_PROFILE_ID);
516
-        if ($prof_id === FALSE) {
517
-            exit(1);
518
-        }
519
-        $evaluation = $adminApi->commonSbProfileChecks($fed, $prof_id);
520
-        if ($evaluation === FALSE) {
521
-            exit(1);
522
-        }
523
-        list($idp, $profile) = $evaluation;
524
-        // tear apart the serial
525
-        $serialRaw = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_SB_CERTSERIAL);
526
-        if ($serialRaw === FALSE) {
527
-            exit(1);
528
-        }
529
-        $serial = explode(":", $serialRaw);
530
-        $cert = new \core\SilverbulletCertificate($serial[1], $serial[0]);
531
-        if ($cert->status == \core\SilverbulletCertificate::CERTSTATUS_INVALID) {
532
-            $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "Serial not found.");
533
-        }
534
-        if ($cert->profileId != $profile->identifier) {
535
-            $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "Serial does not belong to this profile.");
536
-        }
537
-        $cert->revokeCertificate();
538
-        $adminApi->returnSuccess([]);
475
+            }
539 476
         break;
540
-    case \web\lib\admin\API::ACTION_CERT_ANNOTATE:
541
-        $prof_id = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_CAT_PROFILE_ID);
542
-        if ($prof_id === FALSE) {
543
-            exit(1);
544
-        }
545
-        $evaluation = $adminApi->commonSbProfileChecks($fed, $prof_id);
546
-        if ($evaluation === FALSE) {
547
-            exit(1);
548
-        }
549
-        list($idp, $profile) = $evaluation;
550
-        // tear apart the serial
551
-        $serialRaw = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_SB_CERTSERIAL);
552
-        if ($serialRaw === FALSE) {
553
-            exit(1);
554
-        }
555
-        $serial = explode(":", $serialRaw);
556
-        $cert = new \core\SilverbulletCertificate($serial[1], $serial[0]);
557
-        if ($cert->status == \core\SilverbulletCertificate::CERTSTATUS_INVALID) {
558
-            $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "Serial not found.");
559
-        }
560
-        if ($cert->profileId != $profile->identifier) {
561
-            $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "Serial does not belong to this profile.");
562
-        }
563
-        $annotationRaw = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_SB_CERTANNOTATION);
564
-        if ($annotationRaw === FALSE) {
565
-            $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "Unable to extract annotation.");
477
+        case \web\lib\admin\API::ACTION_TOKEN_REVOKE:
478
+            $tokenRaw = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_TOKEN);
479
+            if ($tokenRaw === FALSE) {
480
+                exit(1);
481
+            }
482
+            $token = new core\SilverbulletInvitation($tokenRaw);
483
+            if ($token->invitationTokenStatus !== core\SilverbulletInvitation::SB_TOKENSTATUS_VALID && $token->invitationTokenStatus !== core\SilverbulletInvitation::SB_TOKENSTATUS_PARTIALLY_REDEEMED) {
484
+                $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "This is not a currently valid token.");
485
+                exit(1);
486
+            }
487
+            $token->revokeInvitation();
488
+            $adminApi->returnSuccess([]);
566 489
             break;
567
-        }
568
-        $annotation = json_decode($annotationRaw, TRUE);
569
-        $cert->annotate($annotation);
570
-        $adminApi->returnSuccess([]);
490
+        case \web\lib\admin\API::ACTION_CERT_LIST:
491
+            $prof_id = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_CAT_PROFILE_ID);
492
+            $user_id = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_SB_USERID);
493
+            if ($prof_id === FALSE || !is_int($user_id)) {
494
+                exit(1);
495
+            }
496
+            $evaluation = $adminApi->commonSbProfileChecks($fed, $prof_id);
497
+            if ($evaluation === FALSE) {
498
+                exit(1);
499
+            }
500
+            list($idp, $profile) = $evaluation;
501
+            $invitations = $profile->userStatus($user_id);
502
+            // now pull out cert information from the object
503
+            $certs = [];
504
+            foreach ($invitations as $oneInvitation) {
505
+                $certs = array_merge($certs, $oneInvitation->associatedCertificates);
506
+            }
507
+            // extract relevant subset of information from cert objects
508
+            $certDetails = [];
509
+            foreach ($certs as $cert) {
510
+                $certDetails[$cert->ca_type . ":" . $cert->serial] = ["ISSUED" => $cert->issued, "EXPIRY" => $cert->expiry, "STATUS" => $cert->status, "DEVICE" => $cert->device, "CN" => $cert->username, "ANNOTATION" => $cert->annotation];
511
+            }
512
+            $adminApi->returnSuccess($certDetails);
513
+            break;
514
+        case \web\lib\admin\API::ACTION_CERT_REVOKE:
515
+            $prof_id = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_CAT_PROFILE_ID);
516
+            if ($prof_id === FALSE) {
517
+                exit(1);
518
+            }
519
+            $evaluation = $adminApi->commonSbProfileChecks($fed, $prof_id);
520
+            if ($evaluation === FALSE) {
521
+                exit(1);
522
+            }
523
+            list($idp, $profile) = $evaluation;
524
+            // tear apart the serial
525
+            $serialRaw = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_SB_CERTSERIAL);
526
+            if ($serialRaw === FALSE) {
527
+                exit(1);
528
+            }
529
+            $serial = explode(":", $serialRaw);
530
+            $cert = new \core\SilverbulletCertificate($serial[1], $serial[0]);
531
+            if ($cert->status == \core\SilverbulletCertificate::CERTSTATUS_INVALID) {
532
+                $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "Serial not found.");
533
+            }
534
+            if ($cert->profileId != $profile->identifier) {
535
+                $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "Serial does not belong to this profile.");
536
+            }
537
+            $cert->revokeCertificate();
538
+            $adminApi->returnSuccess([]);
539
+            break;
540
+        case \web\lib\admin\API::ACTION_CERT_ANNOTATE:
541
+            $prof_id = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_CAT_PROFILE_ID);
542
+            if ($prof_id === FALSE) {
543
+                exit(1);
544
+            }
545
+            $evaluation = $adminApi->commonSbProfileChecks($fed, $prof_id);
546
+            if ($evaluation === FALSE) {
547
+                exit(1);
548
+            }
549
+            list($idp, $profile) = $evaluation;
550
+            // tear apart the serial
551
+            $serialRaw = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_SB_CERTSERIAL);
552
+            if ($serialRaw === FALSE) {
553
+                exit(1);
554
+            }
555
+            $serial = explode(":", $serialRaw);
556
+            $cert = new \core\SilverbulletCertificate($serial[1], $serial[0]);
557
+            if ($cert->status == \core\SilverbulletCertificate::CERTSTATUS_INVALID) {
558
+                $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "Serial not found.");
559
+            }
560
+            if ($cert->profileId != $profile->identifier) {
561
+                $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "Serial does not belong to this profile.");
562
+            }
563
+            $annotationRaw = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_SB_CERTANNOTATION);
564
+            if ($annotationRaw === FALSE) {
565
+                $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "Unable to extract annotation.");
566
+                break;
567
+            }
568
+            $annotation = json_decode($annotationRaw, TRUE);
569
+            $cert->annotate($annotation);
570
+            $adminApi->returnSuccess([]);
571 571
 
572
-        break;
572
+            break;
573 573
 
574
-    default:
575
-        $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_ACTION, "Not implemented yet.");
574
+        default:
575
+            $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_ACTION, "Not implemented yet.");
576 576
 }
577 577
\ No newline at end of file
Please login to merge, or discard this patch.
config/autoloader.php 1 patch
Spacing   +5 added lines, -5 removed lines patch added patch discarded remove patch
@@ -19,7 +19,7 @@  discard block
 block discarded – undo
19 19
  *          <base_url>/copyright.php after deploying the software
20 20
  */
21 21
 
22
-require_once __DIR__ . "/../core/Psr4Autoloader.php";
22
+require_once __DIR__."/../core/Psr4Autoloader.php";
23 23
 use core\autoloader\Psr4Autoloader;
24 24
 
25 25
 // instantiate the loader
@@ -30,10 +30,10 @@  discard block
 block discarded – undo
30 30
 
31 31
 // register the base directories for the namespace prefix
32 32
 // include configuration
33
-$loader->addNamespace('config', __DIR__ );
33
+$loader->addNamespace('config', __DIR__);
34 34
 // include CAT/core library
35
-$loader->addNamespace('core', __DIR__ . "/../core");
35
+$loader->addNamespace('core', __DIR__."/../core");
36 36
 // include CAT/devices library
37
-$loader->addNamespace('devices', __DIR__ . "/../devices");
37
+$loader->addNamespace('devices', __DIR__."/../devices");
38 38
 // include CAT/web library
39
-$loader->addNamespace('web', __DIR__ . "/../web");
40 39
\ No newline at end of file
40
+$loader->addNamespace('web', __DIR__."/../web");
41 41
\ No newline at end of file
Please login to merge, or discard this patch.
utils/ocspweb/index.php 1 patch
Spacing   +7 added lines, -7 removed lines patch added patch discarded remove patch
@@ -97,7 +97,7 @@  discard block
 block discarded – undo
97 97
 exec("openssl ocsp -reqin $derFilePath -req_text", $output, $retval);
98 98
 
99 99
 if ($retval !== 0) {
100
-    throw new Exception("openssl ocsp returned a non-zero return code. The DER data is probably bogus. B64 representation of DER data is: " . base64_encode($ocspRequestDer));
100
+    throw new Exception("openssl ocsp returned a non-zero return code. The DER data is probably bogus. B64 representation of DER data is: ".base64_encode($ocspRequestDer));
101 101
 }
102 102
 if ($output === NULL) { // this can't really happen, but makes Scrutinizer happier
103 103
     $output = [];
@@ -127,14 +127,14 @@  discard block
 block discarded – undo
127 127
  * back (if we have it).
128 128
  */
129 129
 if (strcasecmp($nameHash, OUR_NAME_HASH) != 0 || strcasecmp($keyHash, OUR_KEY_HASH) != 0) {
130
-    throw new Exception("The request is about a different Issuer name / public key. Expected vs. actual name hash: " . OUR_NAME_HASH . " / $nameHash, " . OUR_KEY_HASH . " / $keyHash");
130
+    throw new Exception("The request is about a different Issuer name / public key. Expected vs. actual name hash: ".OUR_NAME_HASH." / $nameHash, ".OUR_KEY_HASH." / $keyHash");
131 131
 }
132
-error_log("base64-encoded request: " . base64_encode($ocspRequestDer));
132
+error_log("base64-encoded request: ".base64_encode($ocspRequestDer));
133 133
 
134
-$response = fopen(__DIR__ . "/statements/" . $serialHex . ".der", "r");
134
+$response = fopen(__DIR__."/statements/".$serialHex.".der", "r");
135 135
 if ($response === FALSE) { // not found
136 136
     // first lets load the unauthorised response, which is the default reply
137
-    $unauthResponse = fopen(__DIR__ . "/statements/UNAUTHORIZED.der", "r");
137
+    $unauthResponse = fopen(__DIR__."/statements/UNAUTHORIZED.der", "r");
138 138
     if ($unauthResponse === FALSE) {
139 139
         throw new Exception("Unable to open our canned UNAUTHORIZED response!");
140 140
     }
@@ -176,7 +176,7 @@  discard block
 block discarded – undo
176 176
 
177 177
 $responseContent = fread($response, 1000000);
178 178
 fclose($response);
179
-error_log("base64-encoded response: " . base64_encode($responseContent));
179
+error_log("base64-encoded response: ".base64_encode($responseContent));
180 180
 header('Content-Type: application/ocsp-response');
181
-header('Content-Length: ' . strlen($responseContent));
181
+header('Content-Length: '.strlen($responseContent));
182 182
 echo $responseContent;
Please login to merge, or discard this patch.
web/admin/action_enrollment.php 2 patches
Switch Indentation   +8 added lines, -8 removed lines patch added patch discarded remove patch
@@ -49,14 +49,14 @@
 block discarded – undo
49 49
 }
50 50
 
51 51
 switch ($_GET['token']) {
52
-    case "SELF-REGISTER":
53
-        $token = "SELF-REGISTER";
54
-        $checkval = \core\UserManagement::TOKENSTATUS_OK_NEW;
55
-        $federation = \config\ConfAssistant::CONSORTIUM['selfservice_registration'];
56
-        break;
57
-    default:
58
-        $token = $validator->token(filter_input(INPUT_GET,'token',FILTER_SANITIZE_STRING));
59
-        $checkval = $usermgmt->checkTokenValidity($token);
52
+        case "SELF-REGISTER":
53
+            $token = "SELF-REGISTER";
54
+            $checkval = \core\UserManagement::TOKENSTATUS_OK_NEW;
55
+            $federation = \config\ConfAssistant::CONSORTIUM['selfservice_registration'];
56
+            break;
57
+        default:
58
+            $token = $validator->token(filter_input(INPUT_GET,'token',FILTER_SANITIZE_STRING));
59
+            $checkval = $usermgmt->checkTokenValidity($token);
60 60
 }
61 61
 
62 62
 if ($checkval < 0) {
Please login to merge, or discard this patch.
Spacing   +10 added lines, -10 removed lines patch added patch discarded remove patch
@@ -30,7 +30,7 @@  discard block
 block discarded – undo
30 30
 ?>
31 31
 <?php
32 32
 
33
-require_once dirname(dirname(dirname(__FILE__))) . "/config/_config.php";
33
+require_once dirname(dirname(dirname(__FILE__)))."/config/_config.php";
34 34
 
35 35
 $auth = new \web\lib\admin\Authentication();
36 36
 $deco = new \web\lib\admin\PageDecoration();
@@ -41,11 +41,11 @@  discard block
 block discarded – undo
41 41
 $auth->authenticate();
42 42
 
43 43
 if (!isset($_GET['token'])) {
44
-    $elements->errorPage(_("Error creating new IdP binding!"),_("This page needs to be called with a valid invitation token!"));
44
+    $elements->errorPage(_("Error creating new IdP binding!"), _("This page needs to be called with a valid invitation token!"));
45 45
 }
46 46
 
47 47
 if (\config\ConfAssistant::CONSORTIUM['selfservice_registration'] === NULL && $_GET['token'] == "SELF-REGISTER") {
48
-    $elements->errorPage(_("Error creating new IdP binding!"),_("You tried to register in self-service, but this deployment does not allow self-service!"));
48
+    $elements->errorPage(_("Error creating new IdP binding!"), _("You tried to register in self-service, but this deployment does not allow self-service!"));
49 49
 }
50 50
 
51 51
 switch ($_GET['token']) {
@@ -55,22 +55,22 @@  discard block
 block discarded – undo
55 55
         $federation = \config\ConfAssistant::CONSORTIUM['selfservice_registration'];
56 56
         break;
57 57
     default:
58
-        $token = $validator->token(filter_input(INPUT_GET,'token',FILTER_SANITIZE_STRING));
58
+        $token = $validator->token(filter_input(INPUT_GET, 'token', FILTER_SANITIZE_STRING));
59 59
         $checkval = $usermgmt->checkTokenValidity($token);
60 60
 }
61 61
 
62 62
 if ($checkval < 0) {
63 63
     echo $deco->pageheader(_("Error creating new IdP binding!"), "ADMIN-IDP");
64
-    echo "<h1>" . _("Error creating new IdP binding!") . "</h1>";
64
+    echo "<h1>"._("Error creating new IdP binding!")."</h1>";
65 65
     switch ($checkval) {
66 66
         case \core\UserManagement::TOKENSTATUS_FAIL_ALREADYCONSUMED:
67
-            echo "<p>" . sprintf(_("Sorry... this token has already been used. The %s is already created. If you got the invitation from a mailing list, probably someone else used it before you."), $elements->nomenclatureParticipant) . "</p>";
67
+            echo "<p>".sprintf(_("Sorry... this token has already been used. The %s is already created. If you got the invitation from a mailing list, probably someone else used it before you."), $elements->nomenclatureParticipant)."</p>";
68 68
             break;
69 69
         case \core\UserManagement::TOKENSTATUS_FAIL_EXPIRED:
70
-            echo "<p>" . sprintf(_("Sorry... this token has expired. Invitation tokens are valid for 24 hours. The %s administrator can create a new one for you."), $elements->nomenclatureFed) . "</p>";
70
+            echo "<p>".sprintf(_("Sorry... this token has expired. Invitation tokens are valid for 24 hours. The %s administrator can create a new one for you."), $elements->nomenclatureFed)."</p>";
71 71
             break;
72 72
         default:
73
-            echo "<p>" . _("Sorry... you have come to the enrollment page without a valid token. Are you a nasty person? If not, you should go to <a href='overview_user.php'>your profile page</a> instead.") . "</p>";
73
+            echo "<p>"._("Sorry... you have come to the enrollment page without a valid token. Are you a nasty person? If not, you should go to <a href='overview_user.php'>your profile page</a> instead.")."</p>";
74 74
     }
75 75
     echo $deco->footer();
76 76
     throw new Exception("Terminating because something is wrong with the token we received.");
@@ -85,12 +85,12 @@  discard block
 block discarded – undo
85 85
     case "SELF-REGISTER":
86 86
         $fed = new \core\Federation($federation);
87 87
         $newidp = new \core\IdP($fed->newIdP(core\IdP::TYPE_IDPSP, $user, "FED", "SELFSERVICE"));
88
-        $loggerInstance->writeAudit($user, "MOD", "IdP " . $newidp->identifier . " - selfservice registration");
88
+        $loggerInstance->writeAudit($user, "MOD", "IdP ".$newidp->identifier." - selfservice registration");
89 89
         break;
90 90
     default:
91 91
         $newidp = $usermgmt->createIdPFromToken($token, $user);
92 92
         $usermgmt->invalidateToken($token);
93
-        $loggerInstance->writeAudit($user, "MOD", "IdP " . $newidp->identifier . " - Token used and invalidated");
93
+        $loggerInstance->writeAudit($user, "MOD", "IdP ".$newidp->identifier." - Token used and invalidated");
94 94
         break;
95 95
 }
96 96
 
Please login to merge, or discard this patch.
core/SilverbulletInvitation.php 1 patch
Spacing   +4 added lines, -4 removed lines patch added patch discarded remove patch
@@ -145,7 +145,7 @@  discard block
 block discarded – undo
145 145
         $this->activationsTotal = $invitationRow->quantity;
146 146
         $certificatesResult = $this->databaseHandle->exec("SELECT `serial_number`, `ca_type` FROM `silverbullet_certificate` WHERE `silverbullet_invitation_id` = ? ORDER BY `revocation_status`, `expiry` DESC", "i", $this->identifier);
147 147
         $certificatesNumber = ($certificatesResult ? $certificatesResult->num_rows : 0);
148
-        $this->loggerInstance->debug(5, "At token validation level, " . $certificatesNumber . " certificates exist.\n");
148
+        $this->loggerInstance->debug(5, "At token validation level, ".$certificatesNumber." certificates exist.\n");
149 149
         // SELECT -> resource, no boolean
150 150
         while ($runner = mysqli_fetch_object(/** @scrutinizer ignore-type */ $certificatesResult)) {
151 151
             $this->associatedCertificates[] = new \core\SilverbulletCertificate($runner->serial_number, $runner->ca_type);
@@ -204,7 +204,7 @@  discard block
 block discarded – undo
204 204
                 throw new Exception("Uh. Something went seriously wrong with URL path mangling.");
205 205
             }
206 206
         }
207
-        $link = $link . $relPath;
207
+        $link = $link.$relPath;
208 208
 
209 209
         if (preg_match('/admin$/', $link)) {
210 210
             $link = substr($link, 0, -6);
@@ -213,7 +213,7 @@  discard block
 block discarded – undo
213 213
             }
214 214
         }
215 215
 
216
-        return $link . '/accountstatus/accountstatus.php?token=' . $this->invitationTokenString;
216
+        return $link.'/accountstatus/accountstatus.php?token='.$this->invitationTokenString;
217 217
     }
218 218
 
219 219
     /**
@@ -240,7 +240,7 @@  discard block
 block discarded – undo
240 240
         $text .= sprintf(_("A new %s access credential has been created for you by your network administrator."), \config\ConfAssistant::CONSORTIUM['display_name']);
241 241
         $text .= " ";
242 242
         $text .= sprintf(_("Please follow the following link with the device you want to enable for %s to get a custom %s installation program just for you. You can click on the link, copy and paste it into a browser or scan the attached QR code."), \config\ConfAssistant::CONSORTIUM['display_name'], \config\ConfAssistant::CONSORTIUM['display_name']);
243
-        $text .= "\n\n" . $this->link() . "\n\n"; // gets replaced with the token value by getBody()
243
+        $text .= "\n\n".$this->link()."\n\n"; // gets replaced with the token value by getBody()
244 244
         $text .= sprintf(_("Please keep this email or bookmark this link for future use. After picking up your %s installation program, you can use the same link to get status information about your %s account."), \config\ConfAssistant::CONSORTIUM['display_name'], \config\ConfAssistant::CONSORTIUM['display_name']);
245 245
         $text .= "\n\n";
246 246
         $text .= _("Regards,");
Please login to merge, or discard this patch.
config/Master-template.php 2 patches
Indentation   -1 removed lines patch added patch discarded remove patch
@@ -148,7 +148,6 @@
 block discarded – undo
148 148
          *    mails, just configure the signing cert with these parameters. All must
149 149
          *    be non-NULL for signing to happen. If you don't need a keypass, make 
150 150
          *    it an empty string instead.
151
-
152 151
          * @var array
153 152
          */
154 153
         const MAILSETTINGS = [// we always use Submission
Please login to merge, or discard this patch.
Spacing   +5 added lines, -5 removed lines patch added patch discarded remove patch
@@ -215,7 +215,7 @@  discard block
 block discarded – undo
215 215
                 'db' => 'cat',
216 216
                 'user' => 'kitty',
217 217
                 'pass' => 'somepass',
218
-                'readonly' => FALSE,],
218
+                'readonly' => FALSE, ],
219 219
             // this DB stores diagnostics data. The connection details can be
220 220
             // identical to INST as there is no table overlap
221 221
             'DIAGNOSTICS' => [
@@ -223,7 +223,7 @@  discard block
 block discarded – undo
223 223
                 'db' => 'cat',
224 224
                 'user' => 'kitty',
225 225
                 'pass' => 'somepass',
226
-                'readonly' => FALSE,],
226
+                'readonly' => FALSE, ],
227 227
             // this slice of DB user is about the downloads table. The corresponding
228 228
             // DB user should have write access to update statistics and the cache
229 229
             // locations of installers. 
@@ -233,7 +233,7 @@  discard block
 block discarded – undo
233 233
                 'db' => 'cat',
234 234
                 'user' => 'kitty',
235 235
                 'pass' => 'somepass',
236
-                'readonly' => FALSE,],
236
+                'readonly' => FALSE, ],
237 237
             // this slice of DB use is about user management in the user_options
238 238
             // table. Giving the corresponding user only read-only access means that
239 239
             // all user properties have to "magically" occur in the table by OOB
@@ -244,7 +244,7 @@  discard block
 block discarded – undo
244 244
                 'db' => 'cat',
245 245
                 'user' => 'kitty',
246 246
                 'pass' => 'somepass',
247
-                'readonly' => FALSE,],
247
+                'readonly' => FALSE, ],
248 248
             /*   If you use this tool in conjunction with an external customer management database, you can configure that every 
249 249
              * institution entry in CAT MUST correspond to a customer entry in an external database. If you want this, set this
250 250
              * config variable to TRUE.
@@ -264,7 +264,7 @@  discard block
 block discarded – undo
264 264
                 'db' => 'customer_db',
265 265
                 'user' => 'customerservice',
266 266
                 'pass' => '2lame4u',
267
-                'readonly' => TRUE,],
267
+                'readonly' => TRUE, ],
268 268
             'enforce-external-sync' => TRUE,
269 269
         ];
270 270
         /**
Please login to merge, or discard this patch.
web/diag/diag.php 2 patches
Indentation   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -42,8 +42,8 @@
 block discarded – undo
42 42
     $auth->authenticate();
43 43
 }
44 44
 if (isset($_SESSION['admin_diag_auth'])) {
45
-   $admin =  1;
46
-   unset($_SESSION['admin_diag_auth']);
45
+    $admin =  1;
46
+    unset($_SESSION['admin_diag_auth']);
47 47
 }
48 48
 $Gui = new \web\lib\user\Gui();
49 49
 $skinObject = new \web\lib\user\Skinjob($_REQUEST['skin'] ?? $_SESSION['skin'] ?? $fedskin[0] ?? \config\Master::APPEARANCE['skins'][0]);
Please login to merge, or discard this patch.
Spacing   +4 added lines, -4 removed lines patch added patch discarded remove patch
@@ -19,7 +19,7 @@  discard block
 block discarded – undo
19 19
  *          <base_url>/copyright.php after deploying the software
20 20
  */
21 21
 
22
-require_once dirname(dirname(dirname(__FILE__))) . "/config/_config.php";
22
+require_once dirname(dirname(dirname(__FILE__)))."/config/_config.php";
23 23
 $admin = filter_input(INPUT_GET, 'admin', FILTER_VALIDATE_INT);
24 24
 $sp = filter_input(INPUT_GET, 'sp', FILTER_VALIDATE_INT);
25 25
 $givenRealm = filter_input(INPUT_GET, 'realm', FILTER_SANITIZE_STRING);
@@ -35,7 +35,7 @@  discard block
 block discarded – undo
35 35
             unset($q_el[$idx]);
36 36
             $q_r = preg_replace("/\?.*/", "", $_SERVER['REQUEST_URI']);
37 37
             if (count($q_el)) {
38
-                $q_r = $q_r . '?' . implode('&', $q_el);
38
+                $q_r = $q_r.'?'.implode('&', $q_el);
39 39
             }
40 40
             $_SERVER['REQUEST_URI'] = $q_r;
41 41
         }
@@ -44,11 +44,11 @@  discard block
 block discarded – undo
44 44
     $auth->authenticate();
45 45
 }
46 46
 if (isset($_SESSION['admin_diag_auth'])) {
47
-   $admin =  1;
47
+   $admin = 1;
48 48
    unset($_SESSION['admin_diag_auth']);
49 49
 }
50 50
 $Gui = new \web\lib\user\Gui();
51 51
 $skinObject = new \web\lib\user\Skinjob($_REQUEST['skin'] ?? $_SESSION['skin'] ?? $fedskin[0] ?? \config\Master::APPEARANCE['skins'][0]);
52
-require "../skins/" . $skinObject->skin . "/diag/diag.php";
52
+require "../skins/".$skinObject->skin."/diag/diag.php";
53 53
 
54 54
 
Please login to merge, or discard this patch.
web/admin/logout_check.php 1 patch
Spacing   +3 added lines, -3 removed lines patch added patch discarded remove patch
@@ -19,7 +19,7 @@  discard block
 block discarded – undo
19 19
  *          <base_url>/copyright.php after deploying the software
20 20
  */
21 21
 
22
-require_once dirname(dirname(dirname(__FILE__))) . "/config/_config.php";
22
+require_once dirname(dirname(dirname(__FILE__)))."/config/_config.php";
23 23
 require_once \config\Master::AUTHENTICATION['ssp-path-to-autoloader'];
24 24
 
25 25
 $deco = new \web\lib\admin\PageDecoration();
@@ -38,13 +38,13 @@  discard block
 block discarded – undo
38 38
     if ($cutoff !== FALSE) {    
39 39
         $substring = substr($_SERVER['PHP_SELF'], 0, $cutoff);
40 40
         if ($substring !== FALSE) {
41
-            $url = "//" . htmlspecialchars($_SERVER['SERVER_NAME']) . $substring;
41
+            $url = "//".htmlspecialchars($_SERVER['SERVER_NAME']).$substring;
42 42
         }
43 43
     }
44 44
     header("Location: $url");
45 45
 } else {
46 46
     /* Logout failed. Tell the user to close the browser. */
47 47
     echo $deco->pageheader(_("Incomplete Logout"), "ADMIN", FALSE);
48
-    echo "<p>" . _("We were unable to log you out of all your sessions. To be completely sure that you are logged out, you need to close your web browser.") . "</p>";
48
+    echo "<p>"._("We were unable to log you out of all your sessions. To be completely sure that you are logged out, you need to close your web browser.")."</p>";
49 49
     echo $deco->footer();
50 50
 }
Please login to merge, or discard this patch.
web/user/about_cat.inc.php 2 patches
Spacing   +5 added lines, -5 removed lines patch added patch discarded remove patch
@@ -42,10 +42,10 @@  discard block
 block discarded – undo
42 42
         \config\ConfAssistant::CONSORTIUM['display_name'], 
43 43
         \config\Master::APPEARANCE['productname'], 
44 44
         \config\Master::APPEARANCE['productname']);
45
-$out .= "<p>" . sprintf(_("<span class='edu_cat'>%s</span> currently supports the following devices and EAP type combinations:"), \config\Master::APPEARANCE['productname']) . "</p>";
46
-$out .= "<table><tr><th>" . _("Device Group") . "</th><th>" . _("Device") . "</th>";
45
+$out .= "<p>".sprintf(_("<span class='edu_cat'>%s</span> currently supports the following devices and EAP type combinations:"), \config\Master::APPEARANCE['productname'])."</p>";
46
+$out .= "<table><tr><th>"._("Device Group")."</th><th>"._("Device")."</th>";
47 47
 foreach (\core\common\EAP::listKnownEAPTypes() as $oneeap) {
48
-    $out .= "<th style='min-width: 80px;'>" . $oneeap->getPrintableRep() . "</th>";
48
+    $out .= "<th style='min-width: 80px;'>".$oneeap->getPrintableRep()."</th>";
49 49
 }
50 50
 $out .= "</tr>";
51 51
 foreach (\devices\Devices::listDevices() as $index => $onedevice) {
@@ -54,12 +54,12 @@  discard block
 block discarded – undo
54 54
             continue;
55 55
         }
56 56
     }
57
-    $vendor = (new \web\lib\user\Skinjob())->findResourceUrl("IMAGES", "vendorlogo/" . $onedevice['group'] . ".png");
57
+    $vendor = (new \web\lib\user\Skinjob())->findResourceUrl("IMAGES", "vendorlogo/".$onedevice['group'].".png");
58 58
     $vendorImg = "";
59 59
     if ($vendor !== FALSE) {
60 60
         $vendorImg = "<img src='$vendor' alt='logo'>";
61 61
     }
62
-    $out .= "<tr><td class='vendor'>$vendorImg</td><td>" . $onedevice['display'] . "</td>";
62
+    $out .= "<tr><td class='vendor'>$vendorImg</td><td>".$onedevice['display']."</td>";
63 63
     $device_instance = new \core\DeviceFactory($index);
64 64
     foreach (\core\common\EAP::listKnownEAPTypes() as $oneeap) {
65 65
         $out .= "<td>";
Please login to merge, or discard this patch.
Indentation   +3 added lines, -3 removed lines patch added patch discarded remove patch
@@ -34,9 +34,9 @@
 block discarded – undo
34 34
 $skinObject = new \web\lib\user\Skinjob("classic");
35 35
 /// eduroam CAT, twice the consortium name eduroam, twice eduroam CAT
36 36
 $out = sprintf(_("<span class='edu_cat'>%s</span> is built as a cooperation platform."), \config\Master::APPEARANCE['productname'])."<p>".
37
-       sprintf(_("Local %s administrators enter their %s configuration details and based on them, <span class='edu_cat'>%s</span> builds customised installers for a number of popular platforms. ".
38
-                 "An installer prepared for one organisation will not work for users of another one, therefore if your organisation is not on the list, you cannot use this system. ".
39
-                 "Please contact your local administrators and try to influence them to add your %s configuration to <span class='edu_cat'>%s</span>."), 
37
+        sprintf(_("Local %s administrators enter their %s configuration details and based on them, <span class='edu_cat'>%s</span> builds customised installers for a number of popular platforms. ".
38
+                    "An installer prepared for one organisation will not work for users of another one, therefore if your organisation is not on the list, you cannot use this system. ".
39
+                    "Please contact your local administrators and try to influence them to add your %s configuration to <span class='edu_cat'>%s</span>."), 
40 40
         \config\Master::APPEARANCE['productname'], 
41 41
         \config\ConfAssistant::CONSORTIUM['display_name'], 
42 42
         \config\ConfAssistant::CONSORTIUM['display_name'], 
Please login to merge, or discard this patch.