Passed
Push — master ( 542ccc...11646b )
by Tomasz
06:50
created
web/lib/user/Skinjob.php 1 patch
Braces   +1 added lines, -2 removed lines patch added patch discarded remove patch
@@ -97,8 +97,7 @@
 block discarded – undo
97 97
         // does the file exist in the current skin's directory? Has precedence
98 98
         if ($submodule !== '' && file_exists(__DIR__ . "/../../skins/" . $this->skin . "/" . $submodule . $path . $filename)) {
99 99
             $extrapath = "/skins/" . $this->skin . "/" . $submodule;
100
-        }
101
-        elseif (file_exists(__DIR__ . "/../../skins/" . $this->skin . $path . $filename)) {
100
+        } elseif (file_exists(__DIR__ . "/../../skins/" . $this->skin . $path . $filename)) {
102 101
             $extrapath = "/skins/" . $this->skin;
103 102
         } elseif (file_exists(__DIR__ . "/../../" . $path . $filename)) {
104 103
             $extrapath = "";
Please login to merge, or discard this patch.
devices/linux/DeviceLinux.php 1 patch
Braces   +1 added lines, -2 removed lines patch added patch discarded remove patch
@@ -201,8 +201,7 @@
 block discarded – undo
201 201
             
202 202
         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') {
203 203
             $configRaw['use_other_tls_id'] = "True";
204
-        }
205
-        else {
204
+        } else {
206 205
             $configRaw['use_other_tls_id'] = "False";
207 206
         }
208 207
 
Please login to merge, or discard this patch.
web/admin/inc/sendinvite.inc.php 1 patch
Switch Indentation   +85 added lines, -85 removed lines patch added patch discarded remove patch
@@ -72,96 +72,96 @@
 block discarded – undo
72 72
 }
73 73
 
74 74
 switch ($operationMode) {
75
-    case OPERATION_MODE_EDIT:
76
-        $idp = $validator->existingIdP($_GET['inst_id']);
77
-        // editing IdPs is done from within the popup. When we're done, send the 
78
-        // user back to the popup (append the result of the operation later)
79
-        $redirectDestination = "manageAdmins.inc.php?inst_id=" . $idp->identifier . "&";
80
-        if (count($validAddresses) == 0) {
81
-            header("Location: $redirectDestination" . "invitation=INVALIDSYNTAX");
82
-            exit(1);
83
-        }
84
-        // is the user primary admin of this IdP?
85
-        $is_owner = $idp->isPrimaryOwner($_SESSION['user']);
86
-        // check if he is (also) federation admin for the federation this IdP is in. His invitations have more blessing then.
87
-        $fedadmin = $userObject->isFederationAdmin($idp->federation);
88
-        // check if he is either one, if not, complain
89
-        if (!$is_owner && !$fedadmin) {
90
-            echo "<p>" . sprintf(_("Something's wrong... you are a %s admin, but not for the %s the requested %s belongs to!"), $uiElements->nomenclatureFed, $uiElements->nomenclatureFed, $uiElements->nomenclatureInst) . "</p>";
91
-            exit(1);
92
-        }
75
+        case OPERATION_MODE_EDIT:
76
+            $idp = $validator->existingIdP($_GET['inst_id']);
77
+            // editing IdPs is done from within the popup. When we're done, send the 
78
+            // user back to the popup (append the result of the operation later)
79
+            $redirectDestination = "manageAdmins.inc.php?inst_id=" . $idp->identifier . "&";
80
+            if (count($validAddresses) == 0) {
81
+                header("Location: $redirectDestination" . "invitation=INVALIDSYNTAX");
82
+                exit(1);
83
+            }
84
+            // is the user primary admin of this IdP?
85
+            $is_owner = $idp->isPrimaryOwner($_SESSION['user']);
86
+            // check if he is (also) federation admin for the federation this IdP is in. His invitations have more blessing then.
87
+            $fedadmin = $userObject->isFederationAdmin($idp->federation);
88
+            // check if he is either one, if not, complain
89
+            if (!$is_owner && !$fedadmin) {
90
+                echo "<p>" . sprintf(_("Something's wrong... you are a %s admin, but not for the %s the requested %s belongs to!"), $uiElements->nomenclatureFed, $uiElements->nomenclatureFed, $uiElements->nomenclatureInst) . "</p>";
91
+                exit(1);
92
+            }
93 93
 
94
-        $prettyprintname = $idp->name;
95
-        $newtokens = $mgmt->createTokens($fedadmin, $validAddresses, $idp);
96
-        $loggerInstance->writeAudit($_SESSION['user'], "NEW", "IdP " . $idp->identifier . " - Token created for " . implode(",", $validAddresses));
97
-        $introtext = "CO-ADMIN";
98
-        $participant_type = $idp->type;
99
-        break;
100
-    case OPERATION_MODE_NEWUNLINKED:
101
-        $redirectDestination = "../overview_federation.php?";
102
-        if (count($validAddresses) == 0) {
103
-            header("Location: $redirectDestination"."invitation=INVALIDSYNTAX");
104
-            exit(1);
105
-        }
106
-        // run an input check and conversion of the raw inputs... just in case
107
-        $newinstname = $validator->string($_POST['name']);
108
-        $newcountry = $validator->string($_POST['country']);
109
-        $participant_type = $validator->partType($_POST['participant_type']);
110
-        $new_idp_authorized_fedadmin = $userObject->isFederationAdmin($newcountry);
111
-        if ($new_idp_authorized_fedadmin !== TRUE) {
112
-            throw new Exception("Something's wrong... you want to create a new " . $uiElements->nomenclatureInst . ", but are not a " . $uiElements->nomenclatureFed . " admin for the " . $uiElements->nomenclatureFed . " it should be in!");
113
-        }
114
-        $federation = $validator->existingFederation($newcountry);
115
-        $prettyprintname = $newinstname;
116
-        $introtext = "NEW-FED";
117
-        // send the user back to his federation overview page, append the result of the operation later
118
-        // do the token creation magic
119
-        $newtokens = $mgmt->createTokens(TRUE, $validAddresses, $newinstname, 0, $newcountry, $participant_type);
120
-        $loggerInstance->writeAudit($_SESSION['user'], "NEW", "ORG FUTURE  - Token created for $participant_type " . implode(",", $validAddresses));
121
-        break;
122
-    case OPERATION_MODE_NEWFROMDB:
123
-        $redirectDestination = "../overview_federation.php?";
124
-        if (count($validAddresses) == 0) {
125
-            header("Location: $redirectDestination"."invitation=INVALIDSYNTAX");
126
-            exit(1);
127
-        }
128
-        // a real external DB entry was submitted and all the required parameters are there
129
-        $newexternalid = $validator->string($_POST['externals']);
130
-        $extinfo = $catInstance->getExternalDBEntityDetails($newexternalid);
131
-        $new_idp_authorized_fedadmin = $userObject->isFederationAdmin($extinfo['country']);
132
-        if ($new_idp_authorized_fedadmin !== TRUE) {
133
-            throw new Exception("Something's wrong... you want to create a new " . $uiElements->nomenclatureInst . ", but are not a " . $uiElements->nomenclatureFed . " admin for the " . $uiElements->nomenclatureFed . " it should be in!");
134
-        }
135
-        $federation = $validator->existingFederation($extinfo['country']);
136
-        $newcountry = $extinfo['country'];
137
-        // see if the inst name is defined in the currently set language; if not, pick its English name; if N/A, pick the last in the list
138
-        $prettyprintname = "";
139
-        foreach ($extinfo['names'] as $lang => $name) {
140
-            if ($lang == $languageInstance->getLang()) {
141
-                $prettyprintname = $name;
94
+            $prettyprintname = $idp->name;
95
+            $newtokens = $mgmt->createTokens($fedadmin, $validAddresses, $idp);
96
+            $loggerInstance->writeAudit($_SESSION['user'], "NEW", "IdP " . $idp->identifier . " - Token created for " . implode(",", $validAddresses));
97
+            $introtext = "CO-ADMIN";
98
+            $participant_type = $idp->type;
99
+            break;
100
+        case OPERATION_MODE_NEWUNLINKED:
101
+            $redirectDestination = "../overview_federation.php?";
102
+            if (count($validAddresses) == 0) {
103
+                header("Location: $redirectDestination"."invitation=INVALIDSYNTAX");
104
+                exit(1);
142 105
             }
143
-        }
144
-        if ($prettyprintname == "" && isset($extinfo['names']['en'])) {
145
-            $prettyprintname = $extinfo['names']['en'];
146
-        }
147
-        if ($prettyprintname == "") {
148
-            foreach ($extinfo['names'] as $name) {
149
-                $prettyprintname = $name;
106
+            // run an input check and conversion of the raw inputs... just in case
107
+            $newinstname = $validator->string($_POST['name']);
108
+            $newcountry = $validator->string($_POST['country']);
109
+            $participant_type = $validator->partType($_POST['participant_type']);
110
+            $new_idp_authorized_fedadmin = $userObject->isFederationAdmin($newcountry);
111
+            if ($new_idp_authorized_fedadmin !== TRUE) {
112
+                throw new Exception("Something's wrong... you want to create a new " . $uiElements->nomenclatureInst . ", but are not a " . $uiElements->nomenclatureFed . " admin for the " . $uiElements->nomenclatureFed . " it should be in!");
150 113
             }
151
-        }
152
-        $participant_type = $extinfo['type'];
153
-        // fill the rest of the text
154
-        $introtext = "EXISTING-FED";
155
-        // do the token creation magic
156
-        $newtokens = $mgmt->createTokens(TRUE, $validAddresses, $prettyprintname, $newexternalid);
157
-        $loggerInstance->writeAudit($_SESSION['user'], "NEW", "IdP FUTURE  - Token created for " . implode(",", $validAddresses));
158
-        break;
159
-    default: // includes OPERATION_MODE_INVALID
160
-        $wrongcontent = print_r($_POST, TRUE);
161
-        echo "<pre>Wrong parameters in POST:
114
+            $federation = $validator->existingFederation($newcountry);
115
+            $prettyprintname = $newinstname;
116
+            $introtext = "NEW-FED";
117
+            // send the user back to his federation overview page, append the result of the operation later
118
+            // do the token creation magic
119
+            $newtokens = $mgmt->createTokens(TRUE, $validAddresses, $newinstname, 0, $newcountry, $participant_type);
120
+            $loggerInstance->writeAudit($_SESSION['user'], "NEW", "ORG FUTURE  - Token created for $participant_type " . implode(",", $validAddresses));
121
+            break;
122
+        case OPERATION_MODE_NEWFROMDB:
123
+            $redirectDestination = "../overview_federation.php?";
124
+            if (count($validAddresses) == 0) {
125
+                header("Location: $redirectDestination"."invitation=INVALIDSYNTAX");
126
+                exit(1);
127
+            }
128
+            // a real external DB entry was submitted and all the required parameters are there
129
+            $newexternalid = $validator->string($_POST['externals']);
130
+            $extinfo = $catInstance->getExternalDBEntityDetails($newexternalid);
131
+            $new_idp_authorized_fedadmin = $userObject->isFederationAdmin($extinfo['country']);
132
+            if ($new_idp_authorized_fedadmin !== TRUE) {
133
+                throw new Exception("Something's wrong... you want to create a new " . $uiElements->nomenclatureInst . ", but are not a " . $uiElements->nomenclatureFed . " admin for the " . $uiElements->nomenclatureFed . " it should be in!");
134
+            }
135
+            $federation = $validator->existingFederation($extinfo['country']);
136
+            $newcountry = $extinfo['country'];
137
+            // see if the inst name is defined in the currently set language; if not, pick its English name; if N/A, pick the last in the list
138
+            $prettyprintname = "";
139
+            foreach ($extinfo['names'] as $lang => $name) {
140
+                if ($lang == $languageInstance->getLang()) {
141
+                    $prettyprintname = $name;
142
+                }
143
+            }
144
+            if ($prettyprintname == "" && isset($extinfo['names']['en'])) {
145
+                $prettyprintname = $extinfo['names']['en'];
146
+            }
147
+            if ($prettyprintname == "") {
148
+                foreach ($extinfo['names'] as $name) {
149
+                    $prettyprintname = $name;
150
+                }
151
+            }
152
+            $participant_type = $extinfo['type'];
153
+            // fill the rest of the text
154
+            $introtext = "EXISTING-FED";
155
+            // do the token creation magic
156
+            $newtokens = $mgmt->createTokens(TRUE, $validAddresses, $prettyprintname, $newexternalid);
157
+            $loggerInstance->writeAudit($_SESSION['user'], "NEW", "IdP FUTURE  - Token created for " . implode(",", $validAddresses));
158
+            break;
159
+        default: // includes OPERATION_MODE_INVALID
160
+            $wrongcontent = print_r($_POST, TRUE);
161
+            echo "<pre>Wrong parameters in POST:
162 162
 " . htmlspecialchars($wrongcontent) . "
163 163
 </pre>";
164
-        exit(1);
164
+            exit(1);
165 165
 }
166 166
 
167 167
 // send, and invalidate the token immediately if the mail could not be sent!
Please login to merge, or discard this patch.
web/admin/API.php 1 patch
Switch Indentation   +356 added lines, -356 removed lines patch added patch discarded remove patch
@@ -84,217 +84,217 @@  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));
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));
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));
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));
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));
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_NEWPROF_RADIUS:
178
-    // fall-through intended: both get mostly identical treatment
179
-    case web\lib\admin\API::ACTION_NEWPROF_SB:
180
-        try {
181
-            $idp = $validator->existingIdP($adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_CAT_INST_ID));
182
-        } catch (Exception $e) {
183
-            $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "IdP identifier does not exist!");
184
-            exit(1);
185
-        }
186
-        if ($inputDecoded['ACTION'] == web\lib\admin\API::ACTION_NEWPROF_RADIUS) {
187
-            $type = "RADIUS";
188
-        } else {
189
-            $type = "SILVERBULLET";
190
-        }
191
-        $profile = $idp->newProfile($type);
192
-        if ($profile === NULL) {
193
-            $adminApi->returnError(\web\lib\admin\API::ERROR_INTERNAL_ERROR, "Unable to create a new Profile, for no apparent reason. Please contact support.");
194
-            exit(1);
195
-        }
196
-        $inputs = $adminApi->uglify($scrubbedParameters);
197
-        $optionParser->processSubmittedFields($profile, $inputs["POST"], $inputs["FILES"]);
198
-        if ($inputDecoded['ACTION'] == web\lib\admin\API::ACTION_NEWPROF_SB) {
199
-            // auto-accept ToU?
200
-            if ($adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_SB_TOU) !== FALSE) {
201
-                $profile->addAttribute("hiddenprofile:tou_accepted", NULL, 1);
202
-            }
203
-            // we're done at this point
204
-            $adminApi->returnSuccess([\web\lib\admin\API::AUXATTRIB_CAT_PROFILE_ID => $profile->identifier]);
205 109
             break;
206
-        }
207
-        if (!$profile instanceof core\ProfileRADIUS) {
208
-            throw new Exception("Can't be. This is only here to convince Scrutinizer that we're really talking RADIUS.");
209
-        }
210
-        /* const AUXATTRIB_PROFILE_REALM = 'ATTRIB-PROFILE-REALM';
211
-          const AUXATTRIB_PROFILE_OUTERVALUE = 'ATTRIB-PROFILE-OUTERVALUE'; */
212
-        $realm = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_PROFILE_REALM);
213
-        $outer = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_PROFILE_OUTERVALUE);
214
-        if ($realm !== FALSE) {
215
-            if ($outer === FALSE) {
216
-                $outer = "";
217
-                $profile->setAnonymousIDSupport(FALSE);
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));
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));
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"];
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));
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_NEWPROF_RADIUS:
178
+        // fall-through intended: both get mostly identical treatment
179
+        case web\lib\admin\API::ACTION_NEWPROF_SB:
180
+            try {
181
+                $idp = $validator->existingIdP($adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_CAT_INST_ID));
182
+            } catch (Exception $e) {
183
+                $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "IdP identifier does not exist!");
184
+                exit(1);
185
+            }
186
+            if ($inputDecoded['ACTION'] == web\lib\admin\API::ACTION_NEWPROF_RADIUS) {
187
+                $type = "RADIUS";
218 188
             } else {
219
-                $outer = $outer . "@";
220
-                $profile->setAnonymousIDSupport(TRUE);
189
+                $type = "SILVERBULLET";
221 190
             }
222
-            $profile->setRealm($outer . $realm);
223
-        }
224
-        /* const AUXATTRIB_PROFILE_TESTUSER = 'ATTRIB-PROFILE-TESTUSER'; */
225
-        $testuser = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_PROFILE_TESTUSER);
226
-        if ($testuser !== FALSE) {
227
-            $profile->setRealmCheckUser(TRUE, $testuser);
228
-        }
229
-        /* const AUXATTRIB_PROFILE_INPUT_HINT = 'ATTRIB-PROFILE-HINTREALM';
191
+            $profile = $idp->newProfile($type);
192
+            if ($profile === NULL) {
193
+                $adminApi->returnError(\web\lib\admin\API::ERROR_INTERNAL_ERROR, "Unable to create a new Profile, for no apparent reason. Please contact support.");
194
+                exit(1);
195
+            }
196
+            $inputs = $adminApi->uglify($scrubbedParameters);
197
+            $optionParser->processSubmittedFields($profile, $inputs["POST"], $inputs["FILES"]);
198
+            if ($inputDecoded['ACTION'] == web\lib\admin\API::ACTION_NEWPROF_SB) {
199
+                // auto-accept ToU?
200
+                if ($adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_SB_TOU) !== FALSE) {
201
+                    $profile->addAttribute("hiddenprofile:tou_accepted", NULL, 1);
202
+                }
203
+                // we're done at this point
204
+                $adminApi->returnSuccess([\web\lib\admin\API::AUXATTRIB_CAT_PROFILE_ID => $profile->identifier]);
205
+                break;
206
+            }
207
+            if (!$profile instanceof core\ProfileRADIUS) {
208
+                throw new Exception("Can't be. This is only here to convince Scrutinizer that we're really talking RADIUS.");
209
+            }
210
+            /* const AUXATTRIB_PROFILE_REALM = 'ATTRIB-PROFILE-REALM';
211
+          const AUXATTRIB_PROFILE_OUTERVALUE = 'ATTRIB-PROFILE-OUTERVALUE'; */
212
+            $realm = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_PROFILE_REALM);
213
+            $outer = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_PROFILE_OUTERVALUE);
214
+            if ($realm !== FALSE) {
215
+                if ($outer === FALSE) {
216
+                    $outer = "";
217
+                    $profile->setAnonymousIDSupport(FALSE);
218
+                } else {
219
+                    $outer = $outer . "@";
220
+                    $profile->setAnonymousIDSupport(TRUE);
221
+                }
222
+                $profile->setRealm($outer . $realm);
223
+            }
224
+            /* const AUXATTRIB_PROFILE_TESTUSER = 'ATTRIB-PROFILE-TESTUSER'; */
225
+            $testuser = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_PROFILE_TESTUSER);
226
+            if ($testuser !== FALSE) {
227
+                $profile->setRealmCheckUser(TRUE, $testuser);
228
+            }
229
+            /* const AUXATTRIB_PROFILE_INPUT_HINT = 'ATTRIB-PROFILE-HINTREALM';
230 230
           const AUXATTRIB_PROFILE_INPUT_VERIFY = 'ATTRIB-PROFILE-VERIFYREALM'; */
231
-        $hint = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_PROFILE_INPUT_HINT);
232
-        $enforce = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_PROFILE_INPUT_VERIFY);
233
-        if ($enforce !== FALSE) {
234
-            $profile->setInputVerificationPreference($enforce, $hint);
235
-        }
236
-        /* const AUXATTRIB_PROFILE_EAPTYPE */
237
-        $iterator = 1;
238
-        foreach ($scrubbedParameters as $oneParam) {
239
-            if ($oneParam['NAME'] == web\lib\admin\API::AUXATTRIB_PROFILE_EAPTYPE && is_int($oneParam["VALUE"])) {
240
-                $type = new \core\common\EAP($oneParam["VALUE"]);
241
-                $profile->addSupportedEapMethod($type, $iterator);
242
-                $iterator = $iterator + 1;
231
+            $hint = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_PROFILE_INPUT_HINT);
232
+            $enforce = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_PROFILE_INPUT_VERIFY);
233
+            if ($enforce !== FALSE) {
234
+                $profile->setInputVerificationPreference($enforce, $hint);
243 235
             }
244
-        }
245
-        // reinstantiate $profile freshly from DB - it was updated in the process
246
-        $profileFresh = new core\ProfileRADIUS($profile->identifier);
247
-        $profileFresh->prepShowtime();
248
-        $adminApi->returnSuccess([\web\lib\admin\API::AUXATTRIB_CAT_PROFILE_ID => $profileFresh->identifier]);
249
-        break;
250
-    case web\lib\admin\API::ACTION_ENDUSER_NEW:
251
-        $prof_id = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_CAT_PROFILE_ID);
252
-        if ($prof_id === FALSE) {
253
-            exit(1);
254
-        }
255
-        $evaluation = $adminApi->commonSbProfileChecks($fed, $prof_id);
256
-        if ($evaluation === FALSE) {
257
-            exit(1);
258
-        }
259
-        list($idp, $profile) = $evaluation;
260
-        $user = $validator->string($adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_SB_USERNAME));
261
-        $expiryRaw = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_SB_EXPIRY);
262
-        if ($expiryRaw === FALSE) {
263
-            $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "The expiry date wasn't found in the request.");
264
-            exit(1);
265
-        }
266
-        $expiry = new DateTime($expiryRaw);
267
-        try {
268
-            $retval = $profile->addUser($user, $expiry);
269
-        } catch (Exception $e) {
270
-            $adminApi->returnError(web\lib\admin\API::ERROR_INTERNAL_ERROR, "The operation failed. Maybe a duplicate username, or malformed expiry date?");
271
-            exit(1);
272
-        }
273
-        if ($retval == 0) {// that didn't work, it seems
274
-            $adminApi->returnError(web\lib\admin\API::ERROR_INTERNAL_ERROR, "The operation failed subtly. Contact the administrators.");
275
-            exit(1);
276
-        }
277
-        $adminApi->returnSuccess([web\lib\admin\API::AUXATTRIB_SB_USERNAME => $user, \web\lib\admin\API::AUXATTRIB_SB_USERID => $retval]);
278
-        break;
279
-    case \web\lib\admin\API::ACTION_ENDUSER_DEACTIVATE:
280
-    // fall-through intended: both actions are very similar
281
-    case \web\lib\admin\API::ACTION_TOKEN_NEW:
282
-        $profile_id = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_CAT_PROFILE_ID);
283
-        if ($profile_id === FALSE) {
284
-            exit(1);
285
-        }
286
-        $evaluation = $adminApi->commonSbProfileChecks($fed, $profile_id);
287
-        if ($evaluation === FALSE) {
288
-            exit(1);
289
-        }
290
-        list($idp, $profile) = $evaluation;
291
-        $userId = $validator->integer($adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_SB_USERID));
292
-        if ($userId === FALSE) {
293
-            $adminApi->returnError(\web\lib\admin\API::ERROR_INVALID_PARAMETER, "User ID is not an integer.");
294
-            exit(1);
295
-        }
296
-        $additionalInfo = [];
297
-        switch ($inputDecoded['ACTION']) { // this is where the two differ
236
+            /* const AUXATTRIB_PROFILE_EAPTYPE */
237
+            $iterator = 1;
238
+            foreach ($scrubbedParameters as $oneParam) {
239
+                if ($oneParam['NAME'] == web\lib\admin\API::AUXATTRIB_PROFILE_EAPTYPE && is_int($oneParam["VALUE"])) {
240
+                    $type = new \core\common\EAP($oneParam["VALUE"]);
241
+                    $profile->addSupportedEapMethod($type, $iterator);
242
+                    $iterator = $iterator + 1;
243
+                }
244
+            }
245
+            // reinstantiate $profile freshly from DB - it was updated in the process
246
+            $profileFresh = new core\ProfileRADIUS($profile->identifier);
247
+            $profileFresh->prepShowtime();
248
+            $adminApi->returnSuccess([\web\lib\admin\API::AUXATTRIB_CAT_PROFILE_ID => $profileFresh->identifier]);
249
+            break;
250
+        case web\lib\admin\API::ACTION_ENDUSER_NEW:
251
+            $prof_id = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_CAT_PROFILE_ID);
252
+            if ($prof_id === FALSE) {
253
+                exit(1);
254
+            }
255
+            $evaluation = $adminApi->commonSbProfileChecks($fed, $prof_id);
256
+            if ($evaluation === FALSE) {
257
+                exit(1);
258
+            }
259
+            list($idp, $profile) = $evaluation;
260
+            $user = $validator->string($adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_SB_USERNAME));
261
+            $expiryRaw = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_SB_EXPIRY);
262
+            if ($expiryRaw === FALSE) {
263
+                $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "The expiry date wasn't found in the request.");
264
+                exit(1);
265
+            }
266
+            $expiry = new DateTime($expiryRaw);
267
+            try {
268
+                $retval = $profile->addUser($user, $expiry);
269
+            } catch (Exception $e) {
270
+                $adminApi->returnError(web\lib\admin\API::ERROR_INTERNAL_ERROR, "The operation failed. Maybe a duplicate username, or malformed expiry date?");
271
+                exit(1);
272
+            }
273
+            if ($retval == 0) {// that didn't work, it seems
274
+                $adminApi->returnError(web\lib\admin\API::ERROR_INTERNAL_ERROR, "The operation failed subtly. Contact the administrators.");
275
+                exit(1);
276
+            }
277
+            $adminApi->returnSuccess([web\lib\admin\API::AUXATTRIB_SB_USERNAME => $user, \web\lib\admin\API::AUXATTRIB_SB_USERID => $retval]);
278
+            break;
279
+        case \web\lib\admin\API::ACTION_ENDUSER_DEACTIVATE:
280
+        // fall-through intended: both actions are very similar
281
+        case \web\lib\admin\API::ACTION_TOKEN_NEW:
282
+            $profile_id = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_CAT_PROFILE_ID);
283
+            if ($profile_id === FALSE) {
284
+                exit(1);
285
+            }
286
+            $evaluation = $adminApi->commonSbProfileChecks($fed, $profile_id);
287
+            if ($evaluation === FALSE) {
288
+                exit(1);
289
+            }
290
+            list($idp, $profile) = $evaluation;
291
+            $userId = $validator->integer($adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_SB_USERID));
292
+            if ($userId === FALSE) {
293
+                $adminApi->returnError(\web\lib\admin\API::ERROR_INVALID_PARAMETER, "User ID is not an integer.");
294
+                exit(1);
295
+            }
296
+            $additionalInfo = [];
297
+            switch ($inputDecoded['ACTION']) { // this is where the two differ
298 298
             case \web\lib\admin\API::ACTION_ENDUSER_DEACTIVATE:
299 299
                 $result = $profile->deactivateUser($userId);
300 300
                 break;
@@ -327,7 +327,7 @@  discard block
 block discarded – undo
327 327
                     }
328 328
                 }
329 329
                 break;
330
-        }
330
+            }
331 331
 
332 332
         if ($result !== TRUE) {
333 333
             $adminApi->returnError(\web\lib\admin\API::ERROR_INVALID_PARAMETER, "These parameters did not lead to an existing, active user.");
@@ -335,65 +335,65 @@  discard block
 block discarded – undo
335 335
         }
336 336
         $adminApi->returnSuccess($additionalInfo);
337 337
         break;
338
-    case \web\lib\admin\API::ACTION_ENDUSER_IDENTIFY:
339
-        $profile_id = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_CAT_PROFILE_ID);
340
-        if ($profile_id === FALSE) {
341
-            exit(1);
342
-        }
343
-        $evaluation = $adminApi->commonSbProfileChecks($fed, $profile_id);
344
-        if ($evaluation === FALSE) {
345
-            exit(1);
346
-        }
347
-        list($idp, $profile) = $evaluation;
348
-        $userId = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_SB_USERID);
349
-        $userName = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_SB_USERNAME);
350
-        $certSerial = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_SB_CERTSERIAL);
351
-        if ($userId === FALSE && $userName === FALSE && $certSerial === FALSE) {
352
-            // we need at least one of those
353
-            $adminApi->returnError(\web\lib\admin\API::ERROR_MISSING_PARAMETER, "At least one of User ID, Username, or certificate serial is required.");
354
-        }
355
-        $userlist = $profile->listAllUsers();
356
-        if ($userName === FALSE && $certSerial === FALSE) { // we got a user ID
357
-            if (!isset($userlist[$userId])) {
358
-                return $adminApi->returnError(\web\lib\admin\API::ERROR_INVALID_PARAMETER, "This user ID does not exist in this profile.");
338
+        case \web\lib\admin\API::ACTION_ENDUSER_IDENTIFY:
339
+            $profile_id = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_CAT_PROFILE_ID);
340
+            if ($profile_id === FALSE) {
341
+                exit(1);
359 342
             }
360
-            $adminApi->returnSuccess([$userId => $userlist[$userId]]);
361
-        }
362
-        if ($userId === FALSE && $certSerial === FALSE) { // we got a username
363
-            $key = array_search($userName, $userlist);
364
-            if ($key === FALSE) {
365
-                return $adminApi->returnError(\web\lib\admin\API::ERROR_INVALID_PARAMETER, "This username does not exist in this profile.");
343
+            $evaluation = $adminApi->commonSbProfileChecks($fed, $profile_id);
344
+            if ($evaluation === FALSE) {
345
+                exit(1);
366 346
             }
367
-            $adminApi->returnSuccess([$key => $userlist[$key]]);
368
-        }
369
-        if ($userId === FALSE && $userName === FALSE) { // we got a cert serial
370
-            $serial = explode(":", $certSerial);
371
-            $cert = new \core\SilverbulletCertificate($serial[1], $serial[0]);
372
-            if ($cert->status == \core\SilverbulletCertificate::CERTSTATUS_INVALID) {
373
-                $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "Serial not found.");
347
+            list($idp, $profile) = $evaluation;
348
+            $userId = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_SB_USERID);
349
+            $userName = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_SB_USERNAME);
350
+            $certSerial = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_SB_CERTSERIAL);
351
+            if ($userId === FALSE && $userName === FALSE && $certSerial === FALSE) {
352
+                // we need at least one of those
353
+                $adminApi->returnError(\web\lib\admin\API::ERROR_MISSING_PARAMETER, "At least one of User ID, Username, or certificate serial is required.");
374 354
             }
375
-            if ($cert->profileId != $profile->identifier) {
376
-                $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "Serial does not belong to this profile.");
355
+            $userlist = $profile->listAllUsers();
356
+            if ($userName === FALSE && $certSerial === FALSE) { // we got a user ID
357
+                if (!isset($userlist[$userId])) {
358
+                    return $adminApi->returnError(\web\lib\admin\API::ERROR_INVALID_PARAMETER, "This user ID does not exist in this profile.");
359
+                }
360
+                $adminApi->returnSuccess([$userId => $userlist[$userId]]);
377 361
             }
378
-            $adminApi->returnSuccess([$cert->userId => $userlist[$cert->userId]]);
379
-        }
380
-        $adminApi->returnError(\web\lib\admin\API::ERROR_INVALID_PARAMETER, "Only exactly one of User ID, username or cert serial can be specified.");
381
-        break;
382
-    case \web\lib\admin\API::ACTION_ENDUSER_LIST:
383
-    // fall-through: those two are similar
384
-    case \web\lib\admin\API::ACTION_TOKEN_LIST:
385
-        $profile_id = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_CAT_PROFILE_ID);
386
-        if ($profile_id === FALSE) {
387
-            exit(1);
388
-        }
389
-        $evaluation = $adminApi->commonSbProfileChecks($fed, $profile_id);
390
-        if ($evaluation === FALSE) {
391
-            exit(1);
392
-        }
393
-        list($idp, $profile) = $evaluation;
394
-        $allUsers = $profile->listAllUsers();
395
-        // this is where they differ
396
-        switch ($inputDecoded['ACTION']) {
362
+            if ($userId === FALSE && $certSerial === FALSE) { // we got a username
363
+                $key = array_search($userName, $userlist);
364
+                if ($key === FALSE) {
365
+                    return $adminApi->returnError(\web\lib\admin\API::ERROR_INVALID_PARAMETER, "This username does not exist in this profile.");
366
+                }
367
+                $adminApi->returnSuccess([$key => $userlist[$key]]);
368
+            }
369
+            if ($userId === FALSE && $userName === FALSE) { // we got a cert serial
370
+                $serial = explode(":", $certSerial);
371
+                $cert = new \core\SilverbulletCertificate($serial[1], $serial[0]);
372
+                if ($cert->status == \core\SilverbulletCertificate::CERTSTATUS_INVALID) {
373
+                    $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "Serial not found.");
374
+                }
375
+                if ($cert->profileId != $profile->identifier) {
376
+                    $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "Serial does not belong to this profile.");
377
+                }
378
+                $adminApi->returnSuccess([$cert->userId => $userlist[$cert->userId]]);
379
+            }
380
+            $adminApi->returnError(\web\lib\admin\API::ERROR_INVALID_PARAMETER, "Only exactly one of User ID, username or cert serial can be specified.");
381
+            break;
382
+        case \web\lib\admin\API::ACTION_ENDUSER_LIST:
383
+        // fall-through: those two are similar
384
+        case \web\lib\admin\API::ACTION_TOKEN_LIST:
385
+            $profile_id = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_CAT_PROFILE_ID);
386
+            if ($profile_id === FALSE) {
387
+                exit(1);
388
+            }
389
+            $evaluation = $adminApi->commonSbProfileChecks($fed, $profile_id);
390
+            if ($evaluation === FALSE) {
391
+                exit(1);
392
+            }
393
+            list($idp, $profile) = $evaluation;
394
+            $allUsers = $profile->listAllUsers();
395
+            // this is where they differ
396
+            switch ($inputDecoded['ACTION']) {
397 397
             case \web\lib\admin\API::ACTION_ENDUSER_LIST:
398 398
                 $adminApi->returnSuccess($allUsers);
399 399
                 break;
@@ -412,105 +412,105 @@  discard block
 block discarded – undo
412 412
                     $infoSet[$oneTokenObject->userId] = [\web\lib\admin\API::AUXATTRIB_TOKEN => $oneTokenObject->invitationTokenString, "STATUS" => $oneTokenObject->invitationTokenStatus];
413 413
                 }
414 414
                 $adminApi->returnSuccess($infoSet);
415
-        }
416
-        break;
417
-    case \web\lib\admin\API::ACTION_TOKEN_REVOKE:
418
-        $tokenRaw = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_TOKEN);
419
-        if ($tokenRaw === FALSE) {
420
-            exit(1);
421
-        }
422
-        $token = new core\SilverbulletInvitation($tokenRaw);
423
-        if ($token->invitationTokenStatus !== core\SilverbulletInvitation::SB_TOKENSTATUS_VALID && $token->invitationTokenStatus !== core\SilverbulletInvitation::SB_TOKENSTATUS_PARTIALLY_REDEEMED) {
424
-            $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "This is not a currently valid token.");
425
-            exit(1);
426
-        }
427
-        $token->revokeInvitation();
428
-        $adminApi->returnSuccess([]);
429
-        break;
430
-    case \web\lib\admin\API::ACTION_CERT_LIST:
431
-        $prof_id = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_CAT_PROFILE_ID);
432
-        $user_id = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_SB_USERID);
433
-        if ($prof_id === FALSE || !is_int($user_id)) {
434
-            exit(1);
435
-        }
436
-        $evaluation = $adminApi->commonSbProfileChecks($fed, $prof_id);
437
-        if ($evaluation === FALSE) {
438
-            exit(1);
439
-        }
440
-        list($idp, $profile) = $evaluation;
441
-        $invitations = $profile->userStatus($user_id);
442
-        // now pull out cert information from the object
443
-        $certs = [];
444
-        foreach ($invitations as $oneInvitation) {
445
-            $certs = array_merge($certs, $oneInvitation->associatedCertificates);
446
-        }
447
-        // extract relevant subset of information from cert objects
448
-        $certDetails = [];
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];
451
-        }
452
-        $adminApi->returnSuccess($certDetails);
453
-        break;
454
-    case \web\lib\admin\API::ACTION_CERT_REVOKE:
455
-        $prof_id = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_CAT_PROFILE_ID);
456
-        if ($prof_id === FALSE) {
457
-            exit(1);
458
-        }
459
-        $evaluation = $adminApi->commonSbProfileChecks($fed, $prof_id);
460
-        if ($evaluation === FALSE) {
461
-            exit(1);
462
-        }
463
-        list($idp, $profile) = $evaluation;
464
-        // tear apart the serial
465
-        $serialRaw = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_SB_CERTSERIAL);
466
-        if ($serialRaw === FALSE) {
467
-            exit(1);
468
-        }
469
-        $serial = explode(":", $serialRaw);
470
-        $cert = new \core\SilverbulletCertificate($serial[1], $serial[0]);
471
-        if ($cert->status == \core\SilverbulletCertificate::CERTSTATUS_INVALID) {
472
-            $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "Serial not found.");
473
-        }
474
-        if ($cert->profileId != $profile->identifier) {
475
-            $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "Serial does not belong to this profile.");
476
-        }
477
-        $cert->revokeCertificate();
478
-        $adminApi->returnSuccess([]);
415
+            }
479 416
         break;
480
-    case \web\lib\admin\API::ACTION_CERT_ANNOTATE:
481
-        $prof_id = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_CAT_PROFILE_ID);
482
-        if ($prof_id === FALSE) {
483
-            exit(1);
484
-        }
485
-        $evaluation = $adminApi->commonSbProfileChecks($fed, $prof_id);
486
-        if ($evaluation === FALSE) {
487
-            exit(1);
488
-        }
489
-        list($idp, $profile) = $evaluation;
490
-        // tear apart the serial
491
-        $serialRaw = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_SB_CERTSERIAL);
492
-        if ($serialRaw === FALSE) {
493
-            exit(1);
494
-        }
495
-        $serial = explode(":", $serialRaw);
496
-        $cert = new \core\SilverbulletCertificate($serial[1], $serial[0]);
497
-        if ($cert->status == \core\SilverbulletCertificate::CERTSTATUS_INVALID) {
498
-            $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "Serial not found.");
499
-        }
500
-        if ($cert->profileId != $profile->identifier) {
501
-            $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "Serial does not belong to this profile.");
502
-        }
503
-        $annotationRaw = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_SB_CERTANNOTATION);
504
-        if ($annotationRaw === FALSE) {
505
-            $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "Unable to extract annotation.");
417
+        case \web\lib\admin\API::ACTION_TOKEN_REVOKE:
418
+            $tokenRaw = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_TOKEN);
419
+            if ($tokenRaw === FALSE) {
420
+                exit(1);
421
+            }
422
+            $token = new core\SilverbulletInvitation($tokenRaw);
423
+            if ($token->invitationTokenStatus !== core\SilverbulletInvitation::SB_TOKENSTATUS_VALID && $token->invitationTokenStatus !== core\SilverbulletInvitation::SB_TOKENSTATUS_PARTIALLY_REDEEMED) {
424
+                $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "This is not a currently valid token.");
425
+                exit(1);
426
+            }
427
+            $token->revokeInvitation();
428
+            $adminApi->returnSuccess([]);
506 429
             break;
507
-        }
508
-        $annotation = json_decode($annotationRaw, TRUE);
509
-        $cert->annotate($annotation);
510
-        $adminApi->returnSuccess([]);
430
+        case \web\lib\admin\API::ACTION_CERT_LIST:
431
+            $prof_id = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_CAT_PROFILE_ID);
432
+            $user_id = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_SB_USERID);
433
+            if ($prof_id === FALSE || !is_int($user_id)) {
434
+                exit(1);
435
+            }
436
+            $evaluation = $adminApi->commonSbProfileChecks($fed, $prof_id);
437
+            if ($evaluation === FALSE) {
438
+                exit(1);
439
+            }
440
+            list($idp, $profile) = $evaluation;
441
+            $invitations = $profile->userStatus($user_id);
442
+            // now pull out cert information from the object
443
+            $certs = [];
444
+            foreach ($invitations as $oneInvitation) {
445
+                $certs = array_merge($certs, $oneInvitation->associatedCertificates);
446
+            }
447
+            // extract relevant subset of information from cert objects
448
+            $certDetails = [];
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];
451
+            }
452
+            $adminApi->returnSuccess($certDetails);
453
+            break;
454
+        case \web\lib\admin\API::ACTION_CERT_REVOKE:
455
+            $prof_id = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_CAT_PROFILE_ID);
456
+            if ($prof_id === FALSE) {
457
+                exit(1);
458
+            }
459
+            $evaluation = $adminApi->commonSbProfileChecks($fed, $prof_id);
460
+            if ($evaluation === FALSE) {
461
+                exit(1);
462
+            }
463
+            list($idp, $profile) = $evaluation;
464
+            // tear apart the serial
465
+            $serialRaw = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_SB_CERTSERIAL);
466
+            if ($serialRaw === FALSE) {
467
+                exit(1);
468
+            }
469
+            $serial = explode(":", $serialRaw);
470
+            $cert = new \core\SilverbulletCertificate($serial[1], $serial[0]);
471
+            if ($cert->status == \core\SilverbulletCertificate::CERTSTATUS_INVALID) {
472
+                $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "Serial not found.");
473
+            }
474
+            if ($cert->profileId != $profile->identifier) {
475
+                $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "Serial does not belong to this profile.");
476
+            }
477
+            $cert->revokeCertificate();
478
+            $adminApi->returnSuccess([]);
479
+            break;
480
+        case \web\lib\admin\API::ACTION_CERT_ANNOTATE:
481
+            $prof_id = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_CAT_PROFILE_ID);
482
+            if ($prof_id === FALSE) {
483
+                exit(1);
484
+            }
485
+            $evaluation = $adminApi->commonSbProfileChecks($fed, $prof_id);
486
+            if ($evaluation === FALSE) {
487
+                exit(1);
488
+            }
489
+            list($idp, $profile) = $evaluation;
490
+            // tear apart the serial
491
+            $serialRaw = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_SB_CERTSERIAL);
492
+            if ($serialRaw === FALSE) {
493
+                exit(1);
494
+            }
495
+            $serial = explode(":", $serialRaw);
496
+            $cert = new \core\SilverbulletCertificate($serial[1], $serial[0]);
497
+            if ($cert->status == \core\SilverbulletCertificate::CERTSTATUS_INVALID) {
498
+                $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "Serial not found.");
499
+            }
500
+            if ($cert->profileId != $profile->identifier) {
501
+                $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "Serial does not belong to this profile.");
502
+            }
503
+            $annotationRaw = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_SB_CERTANNOTATION);
504
+            if ($annotationRaw === FALSE) {
505
+                $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "Unable to extract annotation.");
506
+                break;
507
+            }
508
+            $annotation = json_decode($annotationRaw, TRUE);
509
+            $cert->annotate($annotation);
510
+            $adminApi->returnSuccess([]);
511 511
         
512
-        break;
512
+            break;
513 513
         
514
-    default:
515
-        $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_ACTION, "Not implemented yet.");
514
+        default:
515
+            $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_ACTION, "Not implemented yet.");
516 516
 }
517 517
\ No newline at end of file
Please login to merge, or discard this patch.
web/admin/action_enrollment.php 1 patch
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.
devices/linux/DeviceLinuxSh.php 1 patch
Braces   +39 added lines, -28 removed lines patch added patch discarded remove patch
@@ -67,10 +67,11 @@  discard block
 block discarded – undo
67 67
 
68 68
      $out_string .= $this->printNMScript($SSIDs,$delSSIDs);
69 69
      $out_string .= $this->writeWpaConf($SSIDs);
70
-     if($this->selected_eap == \core\common\EAP::EAPTYPE_TLS) 
71
-       $out_string .= $this->printP12Dialog();
72
-     else
73
-       $out_string .= $this->printPasswordDialog();
70
+     if($this->selected_eap == \core\common\EAP::EAPTYPE_TLS) {
71
+            $out_string .= $this->printP12Dialog();
72
+     } else {
73
+            $out_string .= $this->printPasswordDialog();
74
+     }
74 75
      $out_string .= $this->checkNMResultAndCont();
75 76
      $installer_path = $this->installerBasename.'.sh';
76 77
       file_put_contents($installer_path, $out_string);
@@ -86,13 +87,15 @@  discard block
 block discarded – undo
86 87
     if($ssid_ct > 1) {
87 88
         if($ssid_ct > 2) {
88 89
             $out .= sprintf(_("In addition to <strong>%s</strong> the installer will also configure access to the following networks:"),implode(', ',\config\ConfAssistant::CONSORTIUM['ssid']))." ";
89
-        } else
90
-            $out .= sprintf(_("In addition to <strong>%s</strong> the installer will also configure access to:"),implode(', ',\config\ConfAssistant::CONSORTIUM['ssid']))." ";
90
+        } else {
91
+                    $out .= sprintf(_("In addition to <strong>%s</strong> the installer will also configure access to:"),implode(', ',\config\ConfAssistant::CONSORTIUM['ssid']))." ";
92
+        }
91 93
         $i = 0;
92 94
         foreach ($this->attributes['internal:SSID'] as $ssid=>$v) {
93 95
            if(! in_array($ssid, \config\ConfAssistant::CONSORTIUM['ssid'])) {
94
-             if($i > 0)
95
-           $out .= ", ";
96
+             if($i > 0) {
97
+                        $out .= ", ";
98
+             }
96 99
          $i++;
97 100
          $out .= "<strong>$ssid</strong>";
98 101
        }
@@ -100,9 +103,9 @@  discard block
 block discarded – undo
100 103
     $out .= "<p>";
101 104
     }
102 105
    $out .= _("The installer will create .cat_installer sub-directory in your home directory and will copy your server certificates there.");
103
-if($this->eap == \core\common\EAP::EAPTYPE_TLS)
106
+if($this->eap == \core\common\EAP::EAPTYPE_TLS) {
104 107
    $out .= _("In order to connect to the network you will need a personal certificate in the form of a p12 file. You should obtain this certificate from your home institution. Consult the support page to find out how this certificate can be obtained. Such certificate files are password protected. You should have both the file and the password available during the installation process. Your p12 file will also be copied to the .cat_installer directory.");
105
-else {
108
+} else {
106 109
    $out .= _("In order to connect to the network you will need an account from your home institution. You should consult the support page to find out how this account can be obtained. It is very likely that your account is already activated.");
107 110
    $out .= "<p>";
108 111
    $out .= _("You will be requested to enter your account credentials during the installation. This information will be saved so that you will reconnect to the network automatically each time you are in the range.");
@@ -150,10 +153,11 @@  discard block
 block discarded – undo
150 153
 
151 154
 
152 155
 private function printProfileConfirmation() {
153
- if($this->attributes['internal:profile_count'][0] > 1)
154
-       $out = 'if ! ask "'.sprintf(_("This installer will only work properly if you are a member of %s and the user group: %s."),'${bf}'.$this->attributes['general:instname'][0].'${n}','${bf}'.$this->attributes['profile:name'][0]).'${n}"';
155
-    else
156
-       $out = 'if ! ask "'.sprintf(_("This installer will only work properly if you are a member of %s."),'${bf}'.$this->attributes['general:instname'][0]).'${n}"';
156
+ if($this->attributes['internal:profile_count'][0] > 1) {
157
+        $out = 'if ! ask "'.sprintf(_("This installer will only work properly if you are a member of %s and the user group: %s."),'${bf}'.$this->attributes['general:instname'][0].'${n}','${bf}'.$this->attributes['profile:name'][0]).'${n}"';
158
+ } else {
159
+           $out = 'if ! ask "'.sprintf(_("This installer will only work properly if you are a member of %s."),'${bf}'.$this->attributes['general:instname'][0]).'${n}"';
160
+    }
157 161
     $out .= ' "'._("Continue").'" 1 ; then exit; fi
158 162
 ';
159 163
   return $out;
@@ -404,9 +408,10 @@  discard block
 block discarded – undo
404 408
   eap='.$e['OUTER'].'
405 409
   ca_cert="${HOME}/'.$this->local_dir.'/ca.pem"
406 410
   identity="${USER_NAME}"';
407
-  if($this->server_name)
408
-    $out .= '
411
+  if($this->server_name) {
412
+      $out .= '
409 413
   domain_suffix_match="'.$this->server_name.'"';
414
+  }
410 415
   if($this->selected_eap == \core\common\EAP::EAPTYPE_TLS) {
411 416
     $out .= '
412 417
   private_key="${HOME}/'.$this->local_dir.'/user.p12"
@@ -415,10 +420,11 @@  discard block
 block discarded – undo
415 420
     $out .= '
416 421
   phase2="auth='.$e['INNER'].'"
417 422
   password="${PASSWORD}"';
418
-  if($this->attributes['internal:use_anon_outer'][0] == 1) 
419
-    $out .= '
423
+  if($this->attributes['internal:use_anon_outer'][0] == 1) {
424
+      $out .= '
420 425
   anonymous_identity="'.$this->attributes['internal:anon_local_value'][0].'@'.$this->attributes['internal:realm'][0].'"';
421 426
   }
427
+  }
422 428
     $out .= '
423 429
 }';
424 430
 }
@@ -515,8 +521,9 @@  discard block
 block discarded – undo
515 521
 
516 522
 
517 523
 private function glueServerNames($server_list) {
518
-  if(! $server_list)
519
-    return '';
524
+  if(! $server_list) {
525
+      return '';
526
+  }
520 527
   $A0 =  array_reverse(explode('.',array_shift($server_list)));
521 528
   $B = $A0;
522 529
   foreach($server_list as $a) {
@@ -528,12 +535,14 @@  discard block
 block discarded – undo
528 535
 }
529 536
 
530 537
 private function mkSubjectAltNameList($server_list) {
531
-  if(! $server_list)
532
-    return '';
538
+  if(! $server_list) {
539
+      return '';
540
+  }
533 541
   $out = '';
534 542
   foreach($server_list as $a) {
535
-     if($out)
536
-       $out .= ','; 
543
+     if($out) {
544
+            $out .= ',';
545
+     }
537 546
      $out .= "'DNS:$a'";
538 547
   }
539 548
   return $out;
@@ -691,9 +700,10 @@  discard block
 block discarded – undo
691 700
        $out .= '
692 701
             \'password\': \'$PASSWORD\',
693 702
             \'phase2-auth\': \''.strtolower($e['INNER']).'\',';
694
-         if($this->attributes['internal:use_anon_outer'][0] == 1) 
695
-              $out .= '
703
+         if($this->attributes['internal:use_anon_outer'][0] == 1) {
704
+                       $out .= '
696 705
             \'anonymous-identity\': \''.$this->attributes['internal:anon_local_value'][0].'@'.$this->attributes['internal:realm'][0].'\',';
706
+         }
697 707
     }
698 708
     $out .= '
699 709
         })
@@ -719,9 +729,10 @@  discard block
 block discarded – undo
719 729
      }
720 730
 //   create a list of profiles to be deleted after installation
721 731
      foreach ($delSSIDs as $ssid => $cipher) {
722
-         if($cipher == 'DEL')
723
-            $out .='
732
+         if($cipher == 'DEL') {
733
+                     $out .='
724 734
         self.delete_existing_connections(\''.$ssid.'\')';
735
+         }
725 736
      }
726 737
 
727 738
 $out .='
Please login to merge, or discard this patch.