@@ -20,7 +20,7 @@ discard block |
||
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 | /** |
26 | 26 | * Checks if the profile is a valid SB profile belonging to the federation |
@@ -69,7 +69,7 @@ discard block |
||
69 | 69 | $inputRaw = file_get_contents('php://input'); |
70 | 70 | $inputDecoded = json_decode($inputRaw, TRUE); |
71 | 71 | if (!is_array($inputDecoded)) { |
72 | - $adminApi->returnError(web\lib\admin\API::ERROR_MALFORMED_REQUEST, "Unable to decode JSON POST data." . json_last_error_msg() . $inputRaw); |
|
72 | + $adminApi->returnError(web\lib\admin\API::ERROR_MALFORMED_REQUEST, "Unable to decode JSON POST data.".json_last_error_msg().$inputRaw); |
|
73 | 73 | exit(1); |
74 | 74 | } |
75 | 75 | |
@@ -158,7 +158,7 @@ discard block |
||
158 | 158 | throw new Exception("A required parameter is missing, and this wasn't caught earlier?!"); |
159 | 159 | } |
160 | 160 | $newtokens = $mgmt->createTokens(true, [$admin], $idp); |
161 | - $URL = "https://" . $_SERVER['SERVER_NAME'] . dirname($_SERVER['SCRIPT_NAME']) . "/action_enrollment.php?token=" . array_keys($newtokens)[0]; |
|
161 | + $URL = "https://".$_SERVER['SERVER_NAME'].dirname($_SERVER['SCRIPT_NAME'])."/action_enrollment.php?token=".array_keys($newtokens)[0]; |
|
162 | 162 | $success = ["TOKEN URL" => $URL, "TOKEN" => array_keys($newtokens)[0]]; |
163 | 163 | // done with the essentials - display in response. But if we also have an email address, send it there |
164 | 164 | $email = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_TARGETMAIL); |
@@ -195,7 +195,7 @@ discard block |
||
195 | 195 | if ($found) { |
196 | 196 | $adminApi->returnSuccess([]); |
197 | 197 | } |
198 | - $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "The admin with ID $toBeDeleted is not associated to IdP " . $idp->identifier); |
|
198 | + $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "The admin with ID $toBeDeleted is not associated to IdP ".$idp->identifier); |
|
199 | 199 | break; |
200 | 200 | case web\lib\admin\API::ACTION_STATISTICS_FED: |
201 | 201 | $adminApi->returnSuccess($fed->downloadStats("array")); |
@@ -242,10 +242,10 @@ discard block |
||
242 | 242 | $outer = ""; |
243 | 243 | $profile->setAnonymousIDSupport(FALSE); |
244 | 244 | } else { |
245 | - $outer = $outer . "@"; |
|
245 | + $outer = $outer."@"; |
|
246 | 246 | $profile->setAnonymousIDSupport(TRUE); |
247 | 247 | } |
248 | - $profile->setRealm($outer . $realm); |
|
248 | + $profile->setRealm($outer.$realm); |
|
249 | 249 | } |
250 | 250 | /* const AUXATTRIB_PROFILE_TESTUSER = 'ATTRIB-PROFILE-TESTUSER'; */ |
251 | 251 | $testuser = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_PROFILE_TESTUSER); |
@@ -473,7 +473,7 @@ discard block |
||
473 | 473 | // extract relevant subset of information from cert objects |
474 | 474 | $certDetails = []; |
475 | 475 | foreach ($certs as $cert) { |
476 | - $certDetails[$cert->ca_type . ":" . $cert->serial] = ["ISSUED" => $cert->issued, "EXPIRY" => $cert->expiry, "STATUS" => $cert->status, "DEVICE" => $cert->device, "CN" => $cert->username, "ANNOTATION" => $cert->annotation]; |
|
476 | + $certDetails[$cert->ca_type.":".$cert->serial] = ["ISSUED" => $cert->issued, "EXPIRY" => $cert->expiry, "STATUS" => $cert->status, "DEVICE" => $cert->device, "CN" => $cert->username, "ANNOTATION" => $cert->annotation]; |
|
477 | 477 | } |
478 | 478 | $adminApi->returnSuccess($certDetails); |
479 | 479 | break; |
@@ -417,7 +417,7 @@ |
||
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."); |
@@ -115,213 +115,213 @@ discard block |
||
115 | 115 | } |
116 | 116 | |
117 | 117 | switch ($inputDecoded['ACTION']) { |
118 | - case web\lib\admin\API::ACTION_NEWINST: |
|
119 | - // create the inst, no admin, no attributes |
|
120 | - $idp = new \core\IdP($fed->newIdP("PENDING", "API")); |
|
121 | - // now add all submitted attributes |
|
122 | - $inputs = $adminApi->uglify($scrubbedParameters); |
|
123 | - $optionParser->processSubmittedFields($idp, $inputs["POST"], $inputs["FILES"]); |
|
124 | - $adminApi->returnSuccess([web\lib\admin\API::AUXATTRIB_CAT_INST_ID => $idp->identifier]); |
|
125 | - break; |
|
126 | - case web\lib\admin\API::ACTION_DELINST: |
|
127 | - try { |
|
128 | - $idp = $validator->IdP($adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_CAT_INST_ID)); |
|
129 | - } catch (Exception $e) { |
|
130 | - $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "IdP identifier does not exist!"); |
|
131 | - exit(1); |
|
132 | - } |
|
133 | - $idp->destroy(); |
|
134 | - $adminApi->returnSuccess([]); |
|
135 | - break; |
|
136 | - case web\lib\admin\API::ACTION_ADMIN_LIST: |
|
137 | - try { |
|
138 | - $idp = $validator->IdP($adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_CAT_INST_ID)); |
|
139 | - } catch (Exception $e) { |
|
140 | - $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "IdP identifier does not exist!"); |
|
141 | - exit(1); |
|
142 | - } |
|
143 | - $adminApi->returnSuccess($idp->listOwners()); |
|
144 | - break; |
|
145 | - case web\lib\admin\API::ACTION_ADMIN_ADD: |
|
146 | - // IdP in question |
|
147 | - try { |
|
148 | - $idp = $validator->IdP($adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_CAT_INST_ID)); |
|
149 | - } catch (Exception $e) { |
|
150 | - $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "IdP identifier does not exist!"); |
|
151 | - exit(1); |
|
152 | - } |
|
153 | - // here is the token |
|
154 | - $mgmt = new core\UserManagement(); |
|
155 | - // we know we have an admin ID but scrutinizer wants this checked more explicitly |
|
156 | - $admin = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_ADMINID); |
|
157 | - if ($admin === FALSE) { |
|
158 | - throw new Exception("A required parameter is missing, and this wasn't caught earlier?!"); |
|
159 | - } |
|
160 | - $newtokens = $mgmt->createTokens(true, [$admin], $idp); |
|
161 | - $URL = "https://" . $_SERVER['SERVER_NAME'] . dirname($_SERVER['SCRIPT_NAME']) . "/action_enrollment.php?token=" . array_keys($newtokens)[0]; |
|
162 | - $success = ["TOKEN URL" => $URL, "TOKEN" => array_keys($newtokens)[0]]; |
|
163 | - // done with the essentials - display in response. But if we also have an email address, send it there |
|
164 | - $email = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_TARGETMAIL); |
|
165 | - if ($email !== FALSE) { |
|
166 | - $sent = \core\common\OutsideComm::adminInvitationMail($email, "EXISTING-FED", array_keys($newtokens)[0], $idp->name, $fed); |
|
167 | - $success["EMAIL SENT"] = $sent["SENT"]; |
|
168 | - if ($sent["SENT"] === TRUE) { |
|
169 | - $success["EMAIL TRANSPORT SECURE"] = $sent["TRANSPORT"]; |
|
170 | - } |
|
171 | - } |
|
172 | - $adminApi->returnSuccess($success); |
|
173 | - break; |
|
174 | - case web\lib\admin\API::ACTION_ADMIN_DEL: |
|
175 | - // IdP in question |
|
176 | - try { |
|
177 | - $idp = $validator->IdP($adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_CAT_INST_ID)); |
|
178 | - } catch (Exception $e) { |
|
179 | - $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "IdP identifier does not exist!"); |
|
180 | - exit(1); |
|
181 | - } |
|
182 | - $currentAdmins = $idp->listOwners(); |
|
183 | - $toBeDeleted = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_ADMINID); |
|
184 | - if ($toBeDeleted === FALSE) { |
|
185 | - throw new Exception("A required parameter is missing, and this wasn't caught earlier?!"); |
|
186 | - } |
|
187 | - $found = FALSE; |
|
188 | - foreach ($currentAdmins as $oneAdmin) { |
|
189 | - if ($oneAdmin['MAIL'] == $toBeDeleted) { |
|
190 | - $found = TRUE; |
|
191 | - $mgmt = new core\UserManagement(); |
|
192 | - $mgmt->removeAdminFromIdP($idp, $oneAdmin['ID']); |
|
118 | + case web\lib\admin\API::ACTION_NEWINST: |
|
119 | + // create the inst, no admin, no attributes |
|
120 | + $idp = new \core\IdP($fed->newIdP("PENDING", "API")); |
|
121 | + // now add all submitted attributes |
|
122 | + $inputs = $adminApi->uglify($scrubbedParameters); |
|
123 | + $optionParser->processSubmittedFields($idp, $inputs["POST"], $inputs["FILES"]); |
|
124 | + $adminApi->returnSuccess([web\lib\admin\API::AUXATTRIB_CAT_INST_ID => $idp->identifier]); |
|
125 | + break; |
|
126 | + case web\lib\admin\API::ACTION_DELINST: |
|
127 | + try { |
|
128 | + $idp = $validator->IdP($adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_CAT_INST_ID)); |
|
129 | + } catch (Exception $e) { |
|
130 | + $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "IdP identifier does not exist!"); |
|
131 | + exit(1); |
|
193 | 132 | } |
194 | - } |
|
195 | - if ($found) { |
|
133 | + $idp->destroy(); |
|
196 | 134 | $adminApi->returnSuccess([]); |
197 | - } |
|
198 | - $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "The admin with ID $toBeDeleted is not associated to IdP " . $idp->identifier); |
|
199 | - break; |
|
200 | - case web\lib\admin\API::ACTION_STATISTICS_FED: |
|
201 | - $adminApi->returnSuccess($fed->downloadStats("array")); |
|
202 | - break; |
|
203 | - case \web\lib\admin\API::ACTION_FEDERATION_LISTIDP: |
|
204 | - $retArray = []; |
|
205 | - $idpIdentifier = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_CAT_INST_ID); |
|
206 | - if ($idpIdentifier === FALSE) { |
|
207 | - $allIdPs = $fed->listIdentityProviders(0); |
|
208 | - foreach ($allIdPs as $instanceId => $oneIdP) { |
|
209 | - $theIdP = $oneIdP["instance"]; |
|
210 | - $retArray[$instanceId] = $theIdP->getAttributes(); |
|
211 | - } |
|
212 | - } else { |
|
135 | + break; |
|
136 | + case web\lib\admin\API::ACTION_ADMIN_LIST: |
|
213 | 137 | try { |
214 | - $thisIdP = $validator->IdP($idpIdentifier); |
|
138 | + $idp = $validator->IdP($adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_CAT_INST_ID)); |
|
215 | 139 | } catch (Exception $e) { |
216 | 140 | $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "IdP identifier does not exist!"); |
217 | 141 | exit(1); |
218 | 142 | } |
219 | - $retArray[$idpIdentifier] = $thisIdP->getAttributes(); |
|
220 | - } |
|
221 | - foreach ($retArray as $instNumber => $oneInstData) { |
|
222 | - foreach ($oneInstData as $attribNumber => $oneAttrib) { |
|
223 | - if ($oneAttrib['name'] == "general:logo_file") { |
|
224 | - // JSON doesn't cope well with raw binary data, so b64 it |
|
225 | - $retArray[$instNumber][$attribNumber]['value'] = base64_encode($oneAttrib['value']); |
|
143 | + $adminApi->returnSuccess($idp->listOwners()); |
|
144 | + break; |
|
145 | + case web\lib\admin\API::ACTION_ADMIN_ADD: |
|
146 | + // IdP in question |
|
147 | + try { |
|
148 | + $idp = $validator->IdP($adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_CAT_INST_ID)); |
|
149 | + } catch (Exception $e) { |
|
150 | + $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "IdP identifier does not exist!"); |
|
151 | + exit(1); |
|
152 | + } |
|
153 | + // here is the token |
|
154 | + $mgmt = new core\UserManagement(); |
|
155 | + // we know we have an admin ID but scrutinizer wants this checked more explicitly |
|
156 | + $admin = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_ADMINID); |
|
157 | + if ($admin === FALSE) { |
|
158 | + throw new Exception("A required parameter is missing, and this wasn't caught earlier?!"); |
|
159 | + } |
|
160 | + $newtokens = $mgmt->createTokens(true, [$admin], $idp); |
|
161 | + $URL = "https://" . $_SERVER['SERVER_NAME'] . dirname($_SERVER['SCRIPT_NAME']) . "/action_enrollment.php?token=" . array_keys($newtokens)[0]; |
|
162 | + $success = ["TOKEN URL" => $URL, "TOKEN" => array_keys($newtokens)[0]]; |
|
163 | + // done with the essentials - display in response. But if we also have an email address, send it there |
|
164 | + $email = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_TARGETMAIL); |
|
165 | + if ($email !== FALSE) { |
|
166 | + $sent = \core\common\OutsideComm::adminInvitationMail($email, "EXISTING-FED", array_keys($newtokens)[0], $idp->name, $fed); |
|
167 | + $success["EMAIL SENT"] = $sent["SENT"]; |
|
168 | + if ($sent["SENT"] === TRUE) { |
|
169 | + $success["EMAIL TRANSPORT SECURE"] = $sent["TRANSPORT"]; |
|
226 | 170 | } |
227 | 171 | } |
228 | - } |
|
229 | - $adminApi->returnSuccess($retArray); |
|
230 | - break; |
|
231 | - case \web\lib\admin\API::ACTION_NEWPROF_RADIUS: |
|
232 | - // fall-through intended: both get mostly identical treatment |
|
233 | - case web\lib\admin\API::ACTION_NEWPROF_SB: |
|
234 | - try { |
|
235 | - $idp = $validator->IdP($adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_CAT_INST_ID)); |
|
236 | - } catch (Exception $e) { |
|
237 | - $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "IdP identifier does not exist!"); |
|
238 | - exit(1); |
|
239 | - } |
|
240 | - if ($inputDecoded['ACTION'] == web\lib\admin\API::ACTION_NEWPROF_RADIUS) { |
|
241 | - $type = "RADIUS"; |
|
242 | - } else { |
|
243 | - $type = "SILVERBULLET"; |
|
244 | - } |
|
245 | - $profile = $idp->newProfile($type); |
|
246 | - if ($profile === NULL) { |
|
247 | - $adminApi->returnError(\web\lib\admin\API::ERROR_INTERNAL_ERROR, "Unable to create a new Profile, for no apparent reason. Please contact support."); |
|
248 | - exit(1); |
|
249 | - } |
|
250 | - $inputs = $adminApi->uglify($scrubbedParameters); |
|
251 | - $optionParser->processSubmittedFields($profile, $inputs["POST"], $inputs["FILES"]); |
|
252 | - if ($inputDecoded['ACTION'] == web\lib\admin\API::ACTION_NEWPROF_SB) { |
|
253 | - // auto-accept ToU? |
|
254 | - if ($adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_SB_TOU) !== FALSE) { |
|
255 | - $profile->addAttribute("hiddenprofile:tou_accepted", NULL, 1); |
|
256 | - } |
|
257 | - // we're done at this point |
|
258 | - $adminApi->returnSuccess([\web\lib\admin\API::AUXATTRIB_CAT_PROFILE_ID => $profile->identifier]); |
|
259 | - continue; |
|
260 | - } |
|
261 | - if (!$profile instanceof core\ProfileRADIUS) { |
|
262 | - throw new Exception("Can't be. This is only here to convince Scrutinizer that we're really talking RADIUS."); |
|
263 | - } |
|
264 | - /* const AUXATTRIB_PROFILE_REALM = 'ATTRIB-PROFILE-REALM'; |
|
265 | - const AUXATTRIB_PROFILE_OUTERVALUE = 'ATTRIB-PROFILE-OUTERVALUE'; */ |
|
266 | - $realm = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_PROFILE_REALM); |
|
267 | - $outer = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_PROFILE_OUTERVALUE); |
|
268 | - if ($realm !== FALSE) { |
|
269 | - if ($outer === FALSE) { |
|
270 | - $outer = ""; |
|
271 | - $profile->setAnonymousIDSupport(FALSE); |
|
172 | + $adminApi->returnSuccess($success); |
|
173 | + break; |
|
174 | + case web\lib\admin\API::ACTION_ADMIN_DEL: |
|
175 | + // IdP in question |
|
176 | + try { |
|
177 | + $idp = $validator->IdP($adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_CAT_INST_ID)); |
|
178 | + } catch (Exception $e) { |
|
179 | + $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "IdP identifier does not exist!"); |
|
180 | + exit(1); |
|
181 | + } |
|
182 | + $currentAdmins = $idp->listOwners(); |
|
183 | + $toBeDeleted = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_ADMINID); |
|
184 | + if ($toBeDeleted === FALSE) { |
|
185 | + throw new Exception("A required parameter is missing, and this wasn't caught earlier?!"); |
|
186 | + } |
|
187 | + $found = FALSE; |
|
188 | + foreach ($currentAdmins as $oneAdmin) { |
|
189 | + if ($oneAdmin['MAIL'] == $toBeDeleted) { |
|
190 | + $found = TRUE; |
|
191 | + $mgmt = new core\UserManagement(); |
|
192 | + $mgmt->removeAdminFromIdP($idp, $oneAdmin['ID']); |
|
193 | + } |
|
194 | + } |
|
195 | + if ($found) { |
|
196 | + $adminApi->returnSuccess([]); |
|
197 | + } |
|
198 | + $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "The admin with ID $toBeDeleted is not associated to IdP " . $idp->identifier); |
|
199 | + break; |
|
200 | + case web\lib\admin\API::ACTION_STATISTICS_FED: |
|
201 | + $adminApi->returnSuccess($fed->downloadStats("array")); |
|
202 | + break; |
|
203 | + case \web\lib\admin\API::ACTION_FEDERATION_LISTIDP: |
|
204 | + $retArray = []; |
|
205 | + $idpIdentifier = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_CAT_INST_ID); |
|
206 | + if ($idpIdentifier === FALSE) { |
|
207 | + $allIdPs = $fed->listIdentityProviders(0); |
|
208 | + foreach ($allIdPs as $instanceId => $oneIdP) { |
|
209 | + $theIdP = $oneIdP["instance"]; |
|
210 | + $retArray[$instanceId] = $theIdP->getAttributes(); |
|
211 | + } |
|
272 | 212 | } else { |
273 | - $outer = $outer . "@"; |
|
274 | - $profile->setAnonymousIDSupport(TRUE); |
|
213 | + try { |
|
214 | + $thisIdP = $validator->IdP($idpIdentifier); |
|
215 | + } catch (Exception $e) { |
|
216 | + $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "IdP identifier does not exist!"); |
|
217 | + exit(1); |
|
218 | + } |
|
219 | + $retArray[$idpIdentifier] = $thisIdP->getAttributes(); |
|
275 | 220 | } |
276 | - $profile->setRealm($outer . $realm); |
|
277 | - } |
|
278 | - /* const AUXATTRIB_PROFILE_TESTUSER = 'ATTRIB-PROFILE-TESTUSER'; */ |
|
279 | - $testuser = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_PROFILE_TESTUSER); |
|
280 | - if ($testuser !== FALSE) { |
|
281 | - $profile->setRealmCheckUser(TRUE, $testuser); |
|
282 | - } |
|
283 | - /* const AUXATTRIB_PROFILE_INPUT_HINT = 'ATTRIB-PROFILE-HINTREALM'; |
|
221 | + foreach ($retArray as $instNumber => $oneInstData) { |
|
222 | + foreach ($oneInstData as $attribNumber => $oneAttrib) { |
|
223 | + if ($oneAttrib['name'] == "general:logo_file") { |
|
224 | + // JSON doesn't cope well with raw binary data, so b64 it |
|
225 | + $retArray[$instNumber][$attribNumber]['value'] = base64_encode($oneAttrib['value']); |
|
226 | + } |
|
227 | + } |
|
228 | + } |
|
229 | + $adminApi->returnSuccess($retArray); |
|
230 | + break; |
|
231 | + case \web\lib\admin\API::ACTION_NEWPROF_RADIUS: |
|
232 | + // fall-through intended: both get mostly identical treatment |
|
233 | + case web\lib\admin\API::ACTION_NEWPROF_SB: |
|
234 | + try { |
|
235 | + $idp = $validator->IdP($adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_CAT_INST_ID)); |
|
236 | + } catch (Exception $e) { |
|
237 | + $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "IdP identifier does not exist!"); |
|
238 | + exit(1); |
|
239 | + } |
|
240 | + if ($inputDecoded['ACTION'] == web\lib\admin\API::ACTION_NEWPROF_RADIUS) { |
|
241 | + $type = "RADIUS"; |
|
242 | + } else { |
|
243 | + $type = "SILVERBULLET"; |
|
244 | + } |
|
245 | + $profile = $idp->newProfile($type); |
|
246 | + if ($profile === NULL) { |
|
247 | + $adminApi->returnError(\web\lib\admin\API::ERROR_INTERNAL_ERROR, "Unable to create a new Profile, for no apparent reason. Please contact support."); |
|
248 | + exit(1); |
|
249 | + } |
|
250 | + $inputs = $adminApi->uglify($scrubbedParameters); |
|
251 | + $optionParser->processSubmittedFields($profile, $inputs["POST"], $inputs["FILES"]); |
|
252 | + if ($inputDecoded['ACTION'] == web\lib\admin\API::ACTION_NEWPROF_SB) { |
|
253 | + // auto-accept ToU? |
|
254 | + if ($adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_SB_TOU) !== FALSE) { |
|
255 | + $profile->addAttribute("hiddenprofile:tou_accepted", NULL, 1); |
|
256 | + } |
|
257 | + // we're done at this point |
|
258 | + $adminApi->returnSuccess([\web\lib\admin\API::AUXATTRIB_CAT_PROFILE_ID => $profile->identifier]); |
|
259 | + continue; |
|
260 | + } |
|
261 | + if (!$profile instanceof core\ProfileRADIUS) { |
|
262 | + throw new Exception("Can't be. This is only here to convince Scrutinizer that we're really talking RADIUS."); |
|
263 | + } |
|
264 | + /* const AUXATTRIB_PROFILE_REALM = 'ATTRIB-PROFILE-REALM'; |
|
265 | + const AUXATTRIB_PROFILE_OUTERVALUE = 'ATTRIB-PROFILE-OUTERVALUE'; */ |
|
266 | + $realm = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_PROFILE_REALM); |
|
267 | + $outer = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_PROFILE_OUTERVALUE); |
|
268 | + if ($realm !== FALSE) { |
|
269 | + if ($outer === FALSE) { |
|
270 | + $outer = ""; |
|
271 | + $profile->setAnonymousIDSupport(FALSE); |
|
272 | + } else { |
|
273 | + $outer = $outer . "@"; |
|
274 | + $profile->setAnonymousIDSupport(TRUE); |
|
275 | + } |
|
276 | + $profile->setRealm($outer . $realm); |
|
277 | + } |
|
278 | + /* const AUXATTRIB_PROFILE_TESTUSER = 'ATTRIB-PROFILE-TESTUSER'; */ |
|
279 | + $testuser = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_PROFILE_TESTUSER); |
|
280 | + if ($testuser !== FALSE) { |
|
281 | + $profile->setRealmCheckUser(TRUE, $testuser); |
|
282 | + } |
|
283 | + /* const AUXATTRIB_PROFILE_INPUT_HINT = 'ATTRIB-PROFILE-HINTREALM'; |
|
284 | 284 | const AUXATTRIB_PROFILE_INPUT_VERIFY = 'ATTRIB-PROFILE-VERIFYREALM'; */ |
285 | - $hint = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_PROFILE_INPUT_HINT); |
|
286 | - $enforce = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_PROFILE_INPUT_VERIFY); |
|
287 | - if ($enforce !== FALSE) { |
|
288 | - $profile->setInputVerificationPreference($enforce, $hint); |
|
289 | - } |
|
290 | - /* const AUXATTRIB_PROFILE_EAPTYPE */ |
|
291 | - $iterator = 1; |
|
292 | - foreach ($scrubbedParameters as $oneParam) { |
|
293 | - if ($oneParam['NAME'] == web\lib\admin\API::AUXATTRIB_PROFILE_EAPTYPE && is_int($oneParam["VALUE"])) { |
|
294 | - $type = new \core\common\EAP($oneParam["VALUE"]); |
|
295 | - $profile->addSupportedEapMethod($type, $iterator); |
|
296 | - $iterator = $iterator + 1; |
|
285 | + $hint = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_PROFILE_INPUT_HINT); |
|
286 | + $enforce = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_PROFILE_INPUT_VERIFY); |
|
287 | + if ($enforce !== FALSE) { |
|
288 | + $profile->setInputVerificationPreference($enforce, $hint); |
|
297 | 289 | } |
298 | - } |
|
299 | - // reinstantiate $profile freshly from DB - it was updated in the process |
|
300 | - $profileFresh = new core\ProfileRADIUS($profile->identifier); |
|
301 | - $profileFresh->prepShowtime(); |
|
302 | - $adminApi->returnSuccess([\web\lib\admin\API::AUXATTRIB_CAT_PROFILE_ID => $profileFresh->identifier]); |
|
303 | - break; |
|
304 | - case web\lib\admin\API::ACTION_ENDUSER_NEW: |
|
305 | - // fall-through intentional, those two actions are doing nearly identical things |
|
306 | - case web\lib\admin\API::ACTION_ENDUSER_CHANGEEXPIRY: |
|
307 | - $prof_id = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_CAT_PROFILE_ID); |
|
308 | - if ($prof_id === FALSE) { |
|
309 | - exit(1); |
|
310 | - } |
|
311 | - $evaluation = commonSbProfileChecks($fed, $prof_id); |
|
312 | - if ($evaluation === FALSE) { |
|
313 | - exit(1); |
|
314 | - } |
|
315 | - list($idp, $profile) = $evaluation; |
|
316 | - $user = $validator->string($adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_SB_USERNAME)); |
|
317 | - $expiryRaw = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_SB_EXPIRY); |
|
318 | - if ($expiryRaw === FALSE) { |
|
319 | - $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "The expiry date wasn't found in the request."); |
|
290 | + /* const AUXATTRIB_PROFILE_EAPTYPE */ |
|
291 | + $iterator = 1; |
|
292 | + foreach ($scrubbedParameters as $oneParam) { |
|
293 | + if ($oneParam['NAME'] == web\lib\admin\API::AUXATTRIB_PROFILE_EAPTYPE && is_int($oneParam["VALUE"])) { |
|
294 | + $type = new \core\common\EAP($oneParam["VALUE"]); |
|
295 | + $profile->addSupportedEapMethod($type, $iterator); |
|
296 | + $iterator = $iterator + 1; |
|
297 | + } |
|
298 | + } |
|
299 | + // reinstantiate $profile freshly from DB - it was updated in the process |
|
300 | + $profileFresh = new core\ProfileRADIUS($profile->identifier); |
|
301 | + $profileFresh->prepShowtime(); |
|
302 | + $adminApi->returnSuccess([\web\lib\admin\API::AUXATTRIB_CAT_PROFILE_ID => $profileFresh->identifier]); |
|
320 | 303 | break; |
321 | - } |
|
322 | - $expiry = new DateTime($expiryRaw); |
|
323 | - try { |
|
324 | - switch ($inputDecoded['ACTION']) { |
|
304 | + case web\lib\admin\API::ACTION_ENDUSER_NEW: |
|
305 | + // fall-through intentional, those two actions are doing nearly identical things |
|
306 | + case web\lib\admin\API::ACTION_ENDUSER_CHANGEEXPIRY: |
|
307 | + $prof_id = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_CAT_PROFILE_ID); |
|
308 | + if ($prof_id === FALSE) { |
|
309 | + exit(1); |
|
310 | + } |
|
311 | + $evaluation = commonSbProfileChecks($fed, $prof_id); |
|
312 | + if ($evaluation === FALSE) { |
|
313 | + exit(1); |
|
314 | + } |
|
315 | + list($idp, $profile) = $evaluation; |
|
316 | + $user = $validator->string($adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_SB_USERNAME)); |
|
317 | + $expiryRaw = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_SB_EXPIRY); |
|
318 | + if ($expiryRaw === FALSE) { |
|
319 | + $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "The expiry date wasn't found in the request."); |
|
320 | + break; |
|
321 | + } |
|
322 | + $expiry = new DateTime($expiryRaw); |
|
323 | + try { |
|
324 | + switch ($inputDecoded['ACTION']) { |
|
325 | 325 | case web\lib\admin\API::ACTION_ENDUSER_NEW: |
326 | 326 | $retval = $profile->addUser($user, $expiry); |
327 | 327 | break; |
@@ -334,7 +334,7 @@ discard block |
||
334 | 334 | $retval = 1; // function doesn't have any failure vectors not raising an Exception and doesn't return a value |
335 | 335 | } |
336 | 336 | break; |
337 | - } |
|
337 | + } |
|
338 | 338 | } catch (Exception $e) { |
339 | 339 | $adminApi->returnError(web\lib\admin\API::ERROR_INTERNAL_ERROR, "The operation failed. Maybe a duplicate username, or malformed expiry date?"); |
340 | 340 | exit(1); |
@@ -345,25 +345,25 @@ discard block |
||
345 | 345 | } |
346 | 346 | $adminApi->returnSuccess([web\lib\admin\API::AUXATTRIB_SB_USERNAME => $user, \web\lib\admin\API::AUXATTRIB_SB_USERID => $retval]); |
347 | 347 | break; |
348 | - case \web\lib\admin\API::ACTION_ENDUSER_DEACTIVATE: |
|
349 | - // fall-through intended: both actions are very similar |
|
350 | - case \web\lib\admin\API::ACTION_TOKEN_NEW: |
|
351 | - $profile_id = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_CAT_PROFILE_ID); |
|
352 | - if ($profile_id === FALSE) { |
|
353 | - exit(1); |
|
354 | - } |
|
355 | - $evaluation = commonSbProfileChecks($fed, $profile_id); |
|
356 | - if ($evaluation === FALSE) { |
|
357 | - exit(1); |
|
358 | - } |
|
359 | - list($idp, $profile) = $evaluation; |
|
360 | - $userId = $validator->integer($adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_SB_USERID)); |
|
361 | - if ($userId === FALSE) { |
|
362 | - $adminApi->returnError(\web\lib\admin\API::ERROR_INVALID_PARAMETER, "User ID is not an integer."); |
|
363 | - exit(1); |
|
364 | - } |
|
365 | - $additionalInfo = []; |
|
366 | - switch ($inputDecoded['ACTION']) { // this is where the two differ |
|
348 | + case \web\lib\admin\API::ACTION_ENDUSER_DEACTIVATE: |
|
349 | + // fall-through intended: both actions are very similar |
|
350 | + case \web\lib\admin\API::ACTION_TOKEN_NEW: |
|
351 | + $profile_id = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_CAT_PROFILE_ID); |
|
352 | + if ($profile_id === FALSE) { |
|
353 | + exit(1); |
|
354 | + } |
|
355 | + $evaluation = commonSbProfileChecks($fed, $profile_id); |
|
356 | + if ($evaluation === FALSE) { |
|
357 | + exit(1); |
|
358 | + } |
|
359 | + list($idp, $profile) = $evaluation; |
|
360 | + $userId = $validator->integer($adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_SB_USERID)); |
|
361 | + if ($userId === FALSE) { |
|
362 | + $adminApi->returnError(\web\lib\admin\API::ERROR_INVALID_PARAMETER, "User ID is not an integer."); |
|
363 | + exit(1); |
|
364 | + } |
|
365 | + $additionalInfo = []; |
|
366 | + switch ($inputDecoded['ACTION']) { // this is where the two differ |
|
367 | 367 | case \web\lib\admin\API::ACTION_ENDUSER_DEACTIVATE: |
368 | 368 | $result = $profile->deactivateUser($userId); |
369 | 369 | break; |
@@ -396,7 +396,7 @@ discard block |
||
396 | 396 | } |
397 | 397 | } |
398 | 398 | break; |
399 | - } |
|
399 | + } |
|
400 | 400 | |
401 | 401 | if ($result !== TRUE) { |
402 | 402 | $adminApi->returnError(\web\lib\admin\API::ERROR_INVALID_PARAMETER, "These parameters did not lead to an existing, active user."); |
@@ -404,69 +404,69 @@ discard block |
||
404 | 404 | } |
405 | 405 | $adminApi->returnSuccess($additionalInfo); |
406 | 406 | break; |
407 | - case \web\lib\admin\API::ACTION_ENDUSER_IDENTIFY: |
|
408 | - $profile_id = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_CAT_PROFILE_ID); |
|
409 | - if ($profile_id === FALSE) { |
|
410 | - exit(1); |
|
411 | - } |
|
412 | - $evaluation = commonSbProfileChecks($fed, $profile_id); |
|
413 | - if ($evaluation === FALSE) { |
|
414 | - exit(1); |
|
415 | - } |
|
416 | - list($idp, $profile) = $evaluation; |
|
417 | - $userId = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_SB_USERID); |
|
418 | - $userName = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_SB_USERNAME); |
|
419 | - $certSerial = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_SB_CERTSERIAL); |
|
420 | - $certCN = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_SB_CERTCN); |
|
421 | - if ($userId === FALSE && $userName === FALSE && $certSerial === FALSE && $certCN === FALSE) { |
|
422 | - // we need at least one of those |
|
423 | - $adminApi->returnError(\web\lib\admin\API::ERROR_MISSING_PARAMETER, "At least one of User ID, Username, certificate serial, or certificate CN is required."); |
|
424 | - break; |
|
425 | - } |
|
426 | - if ($certSerial !== FALSE) { // we got a cert serial |
|
427 | - $serial = explode(":", $certSerial); |
|
428 | - $cert = new \core\SilverbulletCertificate($serial[1], $serial[0]); |
|
407 | + case \web\lib\admin\API::ACTION_ENDUSER_IDENTIFY: |
|
408 | + $profile_id = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_CAT_PROFILE_ID); |
|
409 | + if ($profile_id === FALSE) { |
|
410 | + exit(1); |
|
429 | 411 | } |
430 | - if ($certCN !== FALSE) { // we got a cert CN |
|
431 | - $cert = new \core\SilverbulletCertificate($certCN); |
|
432 | - } |
|
433 | - if ($cert !== NULL) { // we found a cert; verify it and extract userId |
|
434 | - if ($cert->status == \core\SilverbulletCertificate::CERTSTATUS_INVALID) { |
|
435 | - return $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "Certificate not found."); |
|
412 | + $evaluation = commonSbProfileChecks($fed, $profile_id); |
|
413 | + if ($evaluation === FALSE) { |
|
414 | + exit(1); |
|
436 | 415 | } |
437 | - if ($cert->profileId != $profile->identifier) { |
|
438 | - return $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "Certificate does not belong to this profile."); |
|
416 | + list($idp, $profile) = $evaluation; |
|
417 | + $userId = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_SB_USERID); |
|
418 | + $userName = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_SB_USERNAME); |
|
419 | + $certSerial = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_SB_CERTSERIAL); |
|
420 | + $certCN = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_SB_CERTCN); |
|
421 | + if ($userId === FALSE && $userName === FALSE && $certSerial === FALSE && $certCN === FALSE) { |
|
422 | + // we need at least one of those |
|
423 | + $adminApi->returnError(\web\lib\admin\API::ERROR_MISSING_PARAMETER, "At least one of User ID, Username, certificate serial, or certificate CN is required."); |
|
424 | + break; |
|
439 | 425 | } |
440 | - $userId = $cert->userId; |
|
441 | - } |
|
442 | - if ($userId !== FALSE) { |
|
443 | - $userList = $profile->getUserById($userId); |
|
444 | - } |
|
445 | - if ($userName !== FALSE) { |
|
446 | - $userList = $profile->getUserByName($userName); |
|
447 | - } |
|
448 | - if (count($userList) === 1) { |
|
449 | - foreach ($userList as $oneUserId => $oneUserName) { |
|
450 | - return $adminApi->returnSuccess([web\lib\admin\API::AUXATTRIB_SB_USERNAME => $oneUserName, \web\lib\admin\API::AUXATTRIB_SB_USERID => $oneUserId]); |
|
426 | + if ($certSerial !== FALSE) { // we got a cert serial |
|
427 | + $serial = explode(":", $certSerial); |
|
428 | + $cert = new \core\SilverbulletCertificate($serial[1], $serial[0]); |
|
429 | + } |
|
430 | + if ($certCN !== FALSE) { // we got a cert CN |
|
431 | + $cert = new \core\SilverbulletCertificate($certCN); |
|
451 | 432 | } |
452 | - } |
|
453 | - $adminApi->returnError(\web\lib\admin\API::ERROR_INVALID_PARAMETER, "No matching user found in this profile."); |
|
454 | - break; |
|
455 | - case \web\lib\admin\API::ACTION_ENDUSER_LIST: |
|
456 | - // fall-through: those two are similar |
|
457 | - case \web\lib\admin\API::ACTION_TOKEN_LIST: |
|
458 | - $profile_id = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_CAT_PROFILE_ID); |
|
459 | - if ($profile_id === FALSE) { |
|
460 | - exit(1); |
|
461 | - } |
|
462 | - $evaluation = commonSbProfileChecks($fed, $profile_id); |
|
463 | - if ($evaluation === FALSE) { |
|
464 | - exit(1); |
|
465 | - } |
|
466 | - list($idp, $profile) = $evaluation; |
|
467 | - $allUsers = $profile->listAllUsers(); |
|
468 | - // this is where they differ |
|
469 | - switch ($inputDecoded['ACTION']) { |
|
433 | + if ($cert !== NULL) { // we found a cert; verify it and extract userId |
|
434 | + if ($cert->status == \core\SilverbulletCertificate::CERTSTATUS_INVALID) { |
|
435 | + return $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "Certificate not found."); |
|
436 | + } |
|
437 | + if ($cert->profileId != $profile->identifier) { |
|
438 | + return $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "Certificate does not belong to this profile."); |
|
439 | + } |
|
440 | + $userId = $cert->userId; |
|
441 | + } |
|
442 | + if ($userId !== FALSE) { |
|
443 | + $userList = $profile->getUserById($userId); |
|
444 | + } |
|
445 | + if ($userName !== FALSE) { |
|
446 | + $userList = $profile->getUserByName($userName); |
|
447 | + } |
|
448 | + if (count($userList) === 1) { |
|
449 | + foreach ($userList as $oneUserId => $oneUserName) { |
|
450 | + return $adminApi->returnSuccess([web\lib\admin\API::AUXATTRIB_SB_USERNAME => $oneUserName, \web\lib\admin\API::AUXATTRIB_SB_USERID => $oneUserId]); |
|
451 | + } |
|
452 | + } |
|
453 | + $adminApi->returnError(\web\lib\admin\API::ERROR_INVALID_PARAMETER, "No matching user found in this profile."); |
|
454 | + break; |
|
455 | + case \web\lib\admin\API::ACTION_ENDUSER_LIST: |
|
456 | + // fall-through: those two are similar |
|
457 | + case \web\lib\admin\API::ACTION_TOKEN_LIST: |
|
458 | + $profile_id = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_CAT_PROFILE_ID); |
|
459 | + if ($profile_id === FALSE) { |
|
460 | + exit(1); |
|
461 | + } |
|
462 | + $evaluation = commonSbProfileChecks($fed, $profile_id); |
|
463 | + if ($evaluation === FALSE) { |
|
464 | + exit(1); |
|
465 | + } |
|
466 | + list($idp, $profile) = $evaluation; |
|
467 | + $allUsers = $profile->listAllUsers(); |
|
468 | + // this is where they differ |
|
469 | + switch ($inputDecoded['ACTION']) { |
|
470 | 470 | case \web\lib\admin\API::ACTION_ENDUSER_LIST: |
471 | 471 | $adminApi->returnSuccess($allUsers); |
472 | 472 | break; |
@@ -485,105 +485,105 @@ discard block |
||
485 | 485 | $infoSet[$oneTokenObject->userId] = [\web\lib\admin\API::AUXATTRIB_TOKEN => $oneTokenObject->invitationTokenString, "STATUS" => $oneTokenObject->invitationTokenStatus]; |
486 | 486 | } |
487 | 487 | $adminApi->returnSuccess($infoSet); |
488 | - } |
|
489 | - break; |
|
490 | - case \web\lib\admin\API::ACTION_TOKEN_REVOKE: |
|
491 | - $tokenRaw = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_TOKEN); |
|
492 | - if ($tokenRaw === FALSE) { |
|
493 | - exit(1); |
|
494 | - } |
|
495 | - $token = new core\SilverbulletInvitation($tokenRaw); |
|
496 | - if ($token->invitationTokenStatus !== core\SilverbulletInvitation::SB_TOKENSTATUS_VALID && $token->invitationTokenStatus !== core\SilverbulletInvitation::SB_TOKENSTATUS_PARTIALLY_REDEEMED) { |
|
497 | - $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "This is not a currently valid token."); |
|
498 | - exit(1); |
|
499 | - } |
|
500 | - $token->revokeInvitation(); |
|
501 | - $adminApi->returnSuccess([]); |
|
502 | - break; |
|
503 | - case \web\lib\admin\API::ACTION_CERT_LIST: |
|
504 | - $prof_id = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_CAT_PROFILE_ID); |
|
505 | - $user_id = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_SB_USERID); |
|
506 | - if ($prof_id === FALSE || !is_int($user_id)) { |
|
507 | - exit(1); |
|
508 | - } |
|
509 | - $evaluation = commonSbProfileChecks($fed, $prof_id); |
|
510 | - if ($evaluation === FALSE) { |
|
511 | - exit(1); |
|
512 | - } |
|
513 | - list($idp, $profile) = $evaluation; |
|
514 | - $invitations = $profile->userStatus($user_id); |
|
515 | - // now pull out cert information from the object |
|
516 | - $certs = []; |
|
517 | - foreach ($invitations as $oneInvitation) { |
|
518 | - $certs = array_merge($certs, $oneInvitation->associatedCertificates); |
|
519 | - } |
|
520 | - // extract relevant subset of information from cert objects |
|
521 | - $certDetails = []; |
|
522 | - foreach ($certs as $cert) { |
|
523 | - $certDetails[$cert->ca_type . ":" . $cert->serial] = ["ISSUED" => $cert->issued, "EXPIRY" => $cert->expiry, "STATUS" => $cert->status, "DEVICE" => $cert->device, "CN" => $cert->username, "ANNOTATION" => $cert->annotation]; |
|
524 | - } |
|
525 | - $adminApi->returnSuccess($certDetails); |
|
526 | - break; |
|
527 | - case \web\lib\admin\API::ACTION_CERT_REVOKE: |
|
528 | - $prof_id = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_CAT_PROFILE_ID); |
|
529 | - if ($prof_id === FALSE) { |
|
530 | - exit(1); |
|
531 | - } |
|
532 | - $evaluation = commonSbProfileChecks($fed, $prof_id); |
|
533 | - if ($evaluation === FALSE) { |
|
534 | - exit(1); |
|
535 | - } |
|
536 | - list($idp, $profile) = $evaluation; |
|
537 | - // tear apart the serial |
|
538 | - $serialRaw = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_SB_CERTSERIAL); |
|
539 | - if ($serialRaw === FALSE) { |
|
540 | - exit(1); |
|
541 | - } |
|
542 | - $serial = explode(":", $serialRaw); |
|
543 | - $cert = new \core\SilverbulletCertificate($serial[1], $serial[0]); |
|
544 | - if ($cert->status == \core\SilverbulletCertificate::CERTSTATUS_INVALID) { |
|
545 | - $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "Serial not found."); |
|
546 | - } |
|
547 | - if ($cert->profileId != $profile->identifier) { |
|
548 | - $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "Serial does not belong to this profile."); |
|
549 | - } |
|
550 | - $cert->revokeCertificate(); |
|
551 | - $adminApi->returnSuccess([]); |
|
488 | + } |
|
552 | 489 | break; |
553 | - case \web\lib\admin\API::ACTION_CERT_ANNOTATE: |
|
554 | - $prof_id = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_CAT_PROFILE_ID); |
|
555 | - if ($prof_id === FALSE) { |
|
556 | - exit(1); |
|
557 | - } |
|
558 | - $evaluation = commonSbProfileChecks($fed, $prof_id); |
|
559 | - if ($evaluation === FALSE) { |
|
560 | - exit(1); |
|
561 | - } |
|
562 | - list($idp, $profile) = $evaluation; |
|
563 | - // tear apart the serial |
|
564 | - $serialRaw = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_SB_CERTSERIAL); |
|
565 | - if ($serialRaw === FALSE) { |
|
566 | - exit(1); |
|
567 | - } |
|
568 | - $serial = explode(":", $serialRaw); |
|
569 | - $cert = new \core\SilverbulletCertificate($serial[1], $serial[0]); |
|
570 | - if ($cert->status == \core\SilverbulletCertificate::CERTSTATUS_INVALID) { |
|
571 | - $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "Serial not found."); |
|
572 | - } |
|
573 | - if ($cert->profileId != $profile->identifier) { |
|
574 | - $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "Serial does not belong to this profile."); |
|
575 | - } |
|
576 | - $annotationRaw = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_SB_CERTANNOTATION); |
|
577 | - if ($annotationRaw === FALSE) { |
|
578 | - $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "Unable to extract annotation."); |
|
490 | + case \web\lib\admin\API::ACTION_TOKEN_REVOKE: |
|
491 | + $tokenRaw = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_TOKEN); |
|
492 | + if ($tokenRaw === FALSE) { |
|
493 | + exit(1); |
|
494 | + } |
|
495 | + $token = new core\SilverbulletInvitation($tokenRaw); |
|
496 | + if ($token->invitationTokenStatus !== core\SilverbulletInvitation::SB_TOKENSTATUS_VALID && $token->invitationTokenStatus !== core\SilverbulletInvitation::SB_TOKENSTATUS_PARTIALLY_REDEEMED) { |
|
497 | + $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "This is not a currently valid token."); |
|
498 | + exit(1); |
|
499 | + } |
|
500 | + $token->revokeInvitation(); |
|
501 | + $adminApi->returnSuccess([]); |
|
579 | 502 | break; |
580 | - } |
|
581 | - $annotation = json_decode($annotationRaw, TRUE); |
|
582 | - $cert->annotate($annotation); |
|
583 | - $adminApi->returnSuccess([]); |
|
503 | + case \web\lib\admin\API::ACTION_CERT_LIST: |
|
504 | + $prof_id = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_CAT_PROFILE_ID); |
|
505 | + $user_id = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_SB_USERID); |
|
506 | + if ($prof_id === FALSE || !is_int($user_id)) { |
|
507 | + exit(1); |
|
508 | + } |
|
509 | + $evaluation = commonSbProfileChecks($fed, $prof_id); |
|
510 | + if ($evaluation === FALSE) { |
|
511 | + exit(1); |
|
512 | + } |
|
513 | + list($idp, $profile) = $evaluation; |
|
514 | + $invitations = $profile->userStatus($user_id); |
|
515 | + // now pull out cert information from the object |
|
516 | + $certs = []; |
|
517 | + foreach ($invitations as $oneInvitation) { |
|
518 | + $certs = array_merge($certs, $oneInvitation->associatedCertificates); |
|
519 | + } |
|
520 | + // extract relevant subset of information from cert objects |
|
521 | + $certDetails = []; |
|
522 | + foreach ($certs as $cert) { |
|
523 | + $certDetails[$cert->ca_type . ":" . $cert->serial] = ["ISSUED" => $cert->issued, "EXPIRY" => $cert->expiry, "STATUS" => $cert->status, "DEVICE" => $cert->device, "CN" => $cert->username, "ANNOTATION" => $cert->annotation]; |
|
524 | + } |
|
525 | + $adminApi->returnSuccess($certDetails); |
|
526 | + break; |
|
527 | + case \web\lib\admin\API::ACTION_CERT_REVOKE: |
|
528 | + $prof_id = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_CAT_PROFILE_ID); |
|
529 | + if ($prof_id === FALSE) { |
|
530 | + exit(1); |
|
531 | + } |
|
532 | + $evaluation = commonSbProfileChecks($fed, $prof_id); |
|
533 | + if ($evaluation === FALSE) { |
|
534 | + exit(1); |
|
535 | + } |
|
536 | + list($idp, $profile) = $evaluation; |
|
537 | + // tear apart the serial |
|
538 | + $serialRaw = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_SB_CERTSERIAL); |
|
539 | + if ($serialRaw === FALSE) { |
|
540 | + exit(1); |
|
541 | + } |
|
542 | + $serial = explode(":", $serialRaw); |
|
543 | + $cert = new \core\SilverbulletCertificate($serial[1], $serial[0]); |
|
544 | + if ($cert->status == \core\SilverbulletCertificate::CERTSTATUS_INVALID) { |
|
545 | + $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "Serial not found."); |
|
546 | + } |
|
547 | + if ($cert->profileId != $profile->identifier) { |
|
548 | + $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "Serial does not belong to this profile."); |
|
549 | + } |
|
550 | + $cert->revokeCertificate(); |
|
551 | + $adminApi->returnSuccess([]); |
|
552 | + break; |
|
553 | + case \web\lib\admin\API::ACTION_CERT_ANNOTATE: |
|
554 | + $prof_id = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_CAT_PROFILE_ID); |
|
555 | + if ($prof_id === FALSE) { |
|
556 | + exit(1); |
|
557 | + } |
|
558 | + $evaluation = commonSbProfileChecks($fed, $prof_id); |
|
559 | + if ($evaluation === FALSE) { |
|
560 | + exit(1); |
|
561 | + } |
|
562 | + list($idp, $profile) = $evaluation; |
|
563 | + // tear apart the serial |
|
564 | + $serialRaw = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_SB_CERTSERIAL); |
|
565 | + if ($serialRaw === FALSE) { |
|
566 | + exit(1); |
|
567 | + } |
|
568 | + $serial = explode(":", $serialRaw); |
|
569 | + $cert = new \core\SilverbulletCertificate($serial[1], $serial[0]); |
|
570 | + if ($cert->status == \core\SilverbulletCertificate::CERTSTATUS_INVALID) { |
|
571 | + $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "Serial not found."); |
|
572 | + } |
|
573 | + if ($cert->profileId != $profile->identifier) { |
|
574 | + $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "Serial does not belong to this profile."); |
|
575 | + } |
|
576 | + $annotationRaw = $adminApi->firstParameterInstance($scrubbedParameters, web\lib\admin\API::AUXATTRIB_SB_CERTANNOTATION); |
|
577 | + if ($annotationRaw === FALSE) { |
|
578 | + $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_PARAMETER, "Unable to extract annotation."); |
|
579 | + break; |
|
580 | + } |
|
581 | + $annotation = json_decode($annotationRaw, TRUE); |
|
582 | + $cert->annotate($annotation); |
|
583 | + $adminApi->returnSuccess([]); |
|
584 | 584 | |
585 | - break; |
|
585 | + break; |
|
586 | 586 | |
587 | - default: |
|
588 | - $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_ACTION, "Not implemented yet."); |
|
587 | + default: |
|
588 | + $adminApi->returnError(web\lib\admin\API::ERROR_INVALID_ACTION, "Not implemented yet."); |
|
589 | 589 | } |
590 | 590 | \ No newline at end of file |
@@ -67,45 +67,45 @@ |
||
67 | 67 | // let's start the numbering at 1 |
68 | 68 | $this->qaArray = [ |
69 | 69 | 1 => ["AREA" => AbstractTest::INFRA_DEVICE, |
70 | - "TXT" => _("Have you ever used the network succesfully, e.g. at your home institution without roaming?"), |
|
71 | - "FACTOR_YES" => 0.8, // that's good, but it doesn't mean strikingly much |
|
72 | - "FACTOR_NO" => 2, // that's bad, and points strongly to a config on this end |
|
73 | - "VERDICTLECTURE" => sprintf(_("If your device has never worked before with this setup, then very likely your device configuation is wrong. %s"), $confAssistantText)], |
|
70 | + "TXT" => _("Have you ever used the network succesfully, e.g. at your home institution without roaming?"), |
|
71 | + "FACTOR_YES" => 0.8, // that's good, but it doesn't mean strikingly much |
|
72 | + "FACTOR_NO" => 2, // that's bad, and points strongly to a config on this end |
|
73 | + "VERDICTLECTURE" => sprintf(_("If your device has never worked before with this setup, then very likely your device configuation is wrong. %s"), $confAssistantText)], |
|
74 | 74 | 2 => ["AREA" => AbstractTest::INFRA_DEVICE, |
75 | - "TXT" => _("Did the device previously work when roaming, i.e. at other hotspots away from your home institution?"), |
|
76 | - "FACTOR_YES" => 0.6, // that's good, and somewhat encouraging |
|
77 | - "FACTOR_NO" => 3, // that is almost a smoking gun |
|
78 | - "VERDICTLECTURE" => sprintf(_("If roaming consistently does not work, then very likely your device configuration is wrong. Typical errors causing this symptom include: using a routing ('outer') username without the @realm.tld suffix - those potentially work at your home organisation, but can not be used when roaming. %s"),$confAssistantText)], |
|
75 | + "TXT" => _("Did the device previously work when roaming, i.e. at other hotspots away from your home institution?"), |
|
76 | + "FACTOR_YES" => 0.6, // that's good, and somewhat encouraging |
|
77 | + "FACTOR_NO" => 3, // that is almost a smoking gun |
|
78 | + "VERDICTLECTURE" => sprintf(_("If roaming consistently does not work, then very likely your device configuration is wrong. Typical errors causing this symptom include: using a routing ('outer') username without the @realm.tld suffix - those potentially work at your home organisation, but can not be used when roaming. %s"),$confAssistantText)], |
|
79 | 79 | 3 => ["AREA" => AbstractTest::INFRA_DEVICE, |
80 | - "TXT" => _("Did you recently change the configuration on your device?"), |
|
81 | - "FACTOR_YES" => 3, // that is almost a smoking gun |
|
82 | - "FACTOR_NO" => 0.6, // encouraging |
|
83 | - "VERDICTLECTURE" => _("Accounts only need to be configured once, and can then be used anywhere on the planet without any changes. If you recently changed the configuration, that change may very well be at fault. You should never change your network configuration unless explicitly instructed so by your Identity Provider; even in the case of temporary login issues.")], |
|
80 | + "TXT" => _("Did you recently change the configuration on your device?"), |
|
81 | + "FACTOR_YES" => 3, // that is almost a smoking gun |
|
82 | + "FACTOR_NO" => 0.6, // encouraging |
|
83 | + "VERDICTLECTURE" => _("Accounts only need to be configured once, and can then be used anywhere on the planet without any changes. If you recently changed the configuration, that change may very well be at fault. You should never change your network configuration unless explicitly instructed so by your Identity Provider; even in the case of temporary login issues.")], |
|
84 | 84 | 4 => ["AREA" => AbstractTest::INFRA_DEVICE, |
85 | - "TXT" => _("Did you recently change your password?"), |
|
86 | - "FACTOR_YES" => 1.5, // that doesn't mean it is the source of the problem, but it /might/ be that the user forgot to provide the new password |
|
87 | - "FACTOR_NO" => 0.6, // encouraging |
|
88 | - "VERDICTLECTURE" => _("When you change your password, you also need to supply the new password in the device configuration.")], |
|
85 | + "TXT" => _("Did you recently change your password?"), |
|
86 | + "FACTOR_YES" => 1.5, // that doesn't mean it is the source of the problem, but it /might/ be that the user forgot to provide the new password |
|
87 | + "FACTOR_NO" => 0.6, // encouraging |
|
88 | + "VERDICTLECTURE" => _("When you change your password, you also need to supply the new password in the device configuration.")], |
|
89 | 89 | 5 => ["AREA" => AbstractTest::INFRA_DEVICE, |
90 | - "TXT" => _("If you use more than one device: do your other devices still work?"), |
|
91 | - "FACTOR_YES" => 0.33, // seems that all is okay with the account as such |
|
92 | - "FACTOR_NO" => 3, // now that is suspicious indeed |
|
93 | - "VERDICTLECTURE" => _("If all devices stopped working simultaneously, there may be a problem with your account as such. Maybe your account expired, or you were forced to change the password? These questions are best answered by your Identity Provider [MGW: display contact info]"),], |
|
90 | + "TXT" => _("If you use more than one device: do your other devices still work?"), |
|
91 | + "FACTOR_YES" => 0.33, // seems that all is okay with the account as such |
|
92 | + "FACTOR_NO" => 3, // now that is suspicious indeed |
|
93 | + "VERDICTLECTURE" => _("If all devices stopped working simultaneously, there may be a problem with your account as such. Maybe your account expired, or you were forced to change the password? These questions are best answered by your Identity Provider [MGW: display contact info]"),], |
|
94 | 94 | 6 => ["AREA" => AbstractTest::INFRA_SP_80211, |
95 | - "TXT" => _("Is the place you are currently at heavily crowded, or is a network-intensive workload going on?"), |
|
96 | - "FACTOR_YES" => 3, |
|
97 | - "FACTOR_NO" => 0.33, |
|
98 | - "VERDICTLECTURE" => _("The network is likely overloaded at this location and point in time. You may have to wait until later before you get a better connectivity. If you think the network should be reinforced for more capacity at this place, you should inform the hotspot provider. [MGW: add contact info]")], |
|
95 | + "TXT" => _("Is the place you are currently at heavily crowded, or is a network-intensive workload going on?"), |
|
96 | + "FACTOR_YES" => 3, |
|
97 | + "FACTOR_NO" => 0.33, |
|
98 | + "VERDICTLECTURE" => _("The network is likely overloaded at this location and point in time. You may have to wait until later before you get a better connectivity. If you think the network should be reinforced for more capacity at this place, you should inform the hotspot provider. [MGW: add contact info]")], |
|
99 | 99 | 7 => ["AREA" => AbstractTest::INFRA_SP_80211, |
100 | - "TXT" => _("Does the connection get better when you move around?"), |
|
101 | - "FACTOR_YES" => 3, |
|
102 | - "FACTOR_NO" => 0.33, |
|
103 | - "VERDICTLECTURE" => _("You should move to a different location to achieve better network coverage and service. If you think the exact spot you are at deserves better coverage, you should inform the hotspot provider. [MGW: add contact info]")], |
|
100 | + "TXT" => _("Does the connection get better when you move around?"), |
|
101 | + "FACTOR_YES" => 3, |
|
102 | + "FACTOR_NO" => 0.33, |
|
103 | + "VERDICTLECTURE" => _("You should move to a different location to achieve better network coverage and service. If you think the exact spot you are at deserves better coverage, you should inform the hotspot provider. [MGW: add contact info]")], |
|
104 | 104 | 8 => ["AREA" => AbstractTest::INFRA_SP_LAN, |
105 | - "TXT" => _("Do you see errors stating something similar to 'Unable to get IP address'?"), |
|
106 | - "FACTOR_YES" => 5, // gotcha |
|
107 | - "FACTOR_YES" => 0.5, // the user saying no is not conclusive; maybe the device isn't that verbose or he's not looking at the right spot |
|
108 | - "VERDICTLECTURE" => _("The evidence at hand suggests that there may be an infrastructure problem at this particular hotspot provider. There is nothing you can do to solve this problem locally. Please be patient and try again at a later time.")], |
|
105 | + "TXT" => _("Do you see errors stating something similar to 'Unable to get IP address'?"), |
|
106 | + "FACTOR_YES" => 5, // gotcha |
|
107 | + "FACTOR_YES" => 0.5, // the user saying no is not conclusive; maybe the device isn't that verbose or he's not looking at the right spot |
|
108 | + "VERDICTLECTURE" => _("The evidence at hand suggests that there may be an infrastructure problem at this particular hotspot provider. There is nothing you can do to solve this problem locally. Please be patient and try again at a later time.")], |
|
109 | 109 | ]; |
110 | 110 | \core\common\Entity::outOfThePotatoes(); |
111 | 111 | } |
@@ -23,7 +23,7 @@ discard block |
||
23 | 23 | |
24 | 24 | use \Exception; |
25 | 25 | |
26 | -require_once dirname(dirname(__DIR__)) . "/config/_config.php"; |
|
26 | +require_once dirname(dirname(__DIR__))."/config/_config.php"; |
|
27 | 27 | |
28 | 28 | /** |
29 | 29 | * This class talks to end users, asking them annoying questions to get to the |
@@ -75,7 +75,7 @@ discard block |
||
75 | 75 | "TXT" => _("Did the device previously work when roaming, i.e. at other hotspots away from your home institution?"), |
76 | 76 | "FACTOR_YES" => 0.6, // that's good, and somewhat encouraging |
77 | 77 | "FACTOR_NO" => 3, // that is almost a smoking gun |
78 | - "VERDICTLECTURE" => sprintf(_("If roaming consistently does not work, then very likely your device configuration is wrong. Typical errors causing this symptom include: using a routing ('outer') username without the @realm.tld suffix - those potentially work at your home organisation, but can not be used when roaming. %s"),$confAssistantText)], |
|
78 | + "VERDICTLECTURE" => sprintf(_("If roaming consistently does not work, then very likely your device configuration is wrong. Typical errors causing this symptom include: using a routing ('outer') username without the @realm.tld suffix - those potentially work at your home organisation, but can not be used when roaming. %s"), $confAssistantText)], |
|
79 | 79 | 3 => ["AREA" => AbstractTest::INFRA_DEVICE, |
80 | 80 | "TXT" => _("Did you recently change the configuration on your device?"), |
81 | 81 | "FACTOR_YES" => 3, // that is almost a smoking gun |
@@ -90,7 +90,7 @@ discard block |
||
90 | 90 | "TXT" => _("If you use more than one device: do your other devices still work?"), |
91 | 91 | "FACTOR_YES" => 0.33, // seems that all is okay with the account as such |
92 | 92 | "FACTOR_NO" => 3, // now that is suspicious indeed |
93 | - "VERDICTLECTURE" => _("If all devices stopped working simultaneously, there may be a problem with your account as such. Maybe your account expired, or you were forced to change the password? These questions are best answered by your Identity Provider [MGW: display contact info]"),], |
|
93 | + "VERDICTLECTURE" => _("If all devices stopped working simultaneously, there may be a problem with your account as such. Maybe your account expired, or you were forced to change the password? These questions are best answered by your Identity Provider [MGW: display contact info]"), ], |
|
94 | 94 | 6 => ["AREA" => AbstractTest::INFRA_SP_80211, |
95 | 95 | "TXT" => _("Is the place you are currently at heavily crowded, or is a network-intensive workload going on?"), |
96 | 96 | "FACTOR_YES" => 3, |
@@ -124,11 +124,11 @@ discard block |
||
124 | 124 | $questionDetails = $this->qaArray[$questionNumber]; |
125 | 125 | if ($answer === TRUE) { |
126 | 126 | $this->possibleFailureReasons[$questionDetails['AREA']] = $this->possibleFailureReasons[$questionDetails['AREA']] * $questionDetails["FACTOR_YES"]; |
127 | - $this->loggerInstance->debug(3,"Adjusting ".$questionDetails['AREA']." by ".$questionDetails["FACTOR_YES"]."\n"); |
|
127 | + $this->loggerInstance->debug(3, "Adjusting ".$questionDetails['AREA']." by ".$questionDetails["FACTOR_YES"]."\n"); |
|
128 | 128 | $factor = $questionDetails["FACTOR_YES"]; |
129 | 129 | } elseif ($answer === FALSE) { |
130 | 130 | $this->possibleFailureReasons[$questionDetails['AREA']] = $this->possibleFailureReasons[$questionDetails['AREA']] * $questionDetails["FACTOR_NO"]; |
131 | - $this->loggerInstance->debug(3,"Adjusting ".$questionDetails['AREA']." by ".$questionDetails["FACTOR_NO"]."\n"); |
|
131 | + $this->loggerInstance->debug(3, "Adjusting ".$questionDetails['AREA']." by ".$questionDetails["FACTOR_NO"]."\n"); |
|
132 | 132 | $factor = $questionDetails["FACTOR_NO"]; |
133 | 133 | } else { |
134 | 134 | $factor = 1; |
@@ -138,8 +138,8 @@ discard block |
||
138 | 138 | $this->additionalFindings["QUESTIONSASKED"] = $this->previousQuestions; |
139 | 139 | $_SESSION["SUSPECTS"] = $this->possibleFailureReasons; |
140 | 140 | $_SESSION["EVIDENCE"] = $this->additionalFindings; |
141 | - $this->loggerInstance->debug(3,$_SESSION['SUSPECTS']); |
|
142 | - $this->loggerInstance->debug(3,$_SESSION['EVIDENCE']); |
|
141 | + $this->loggerInstance->debug(3, $_SESSION['SUSPECTS']); |
|
142 | + $this->loggerInstance->debug(3, $_SESSION['EVIDENCE']); |
|
143 | 143 | } |
144 | 144 | |
145 | 145 | /** |
@@ -158,7 +158,7 @@ discard block |
||
158 | 158 | // if both are identical, take any of the questions in the pool of both |
159 | 159 | foreach ($this->qaArray as $questionNumber => $questionDetails) { |
160 | 160 | // if we find a question we didn't ask before AND it is related to our currently high-scoring problem area, ask it |
161 | - if (!array_key_exists($questionNumber, $this->previousQuestions) && ( $questionDetails["AREA"] == $highestCategory || $questionDetails["AREA"] == $nextCategory) ) { |
|
161 | + if (!array_key_exists($questionNumber, $this->previousQuestions) && ($questionDetails["AREA"] == $highestCategory || $questionDetails["AREA"] == $nextCategory)) { |
|
162 | 162 | return json_encode(["NEXTEXISTS" => TRUE, "NUMBER" => $questionNumber, "TEXT" => $questionDetails["TXT"]]); |
163 | 163 | } |
164 | 164 | } |
@@ -171,7 +171,7 @@ discard block |
||
171 | 171 | * @return string JSON encoded array with all the info we have |
172 | 172 | */ |
173 | 173 | public function getCurrentGuessState() { |
174 | - return json_encode([ "SUSPECTS" => $this->possibleFailureReasons, "EVIDENCE" => $this->additionalFindings ]); |
|
174 | + return json_encode(["SUSPECTS" => $this->possibleFailureReasons, "EVIDENCE" => $this->additionalFindings]); |
|
175 | 175 | } |
176 | 176 | |
177 | 177 | /** |
@@ -154,8 +154,8 @@ discard block |
||
154 | 154 | common\Entity::intoThePotatoes(); |
155 | 155 | $mail = \core\common\OutsideComm::mailHandle(); |
156 | 156 | // who to whom? |
157 | - $mail->FromName = CONFIG['APPEARANCE']['productname'] . " Notification System"; |
|
158 | - $mail->addReplyTo(CONFIG['APPEARANCE']['support-contact']['developer-mail'], CONFIG['APPEARANCE']['productname'] . " " . _("Feedback")); |
|
157 | + $mail->FromName = CONFIG['APPEARANCE']['productname']." Notification System"; |
|
158 | + $mail->addReplyTo(CONFIG['APPEARANCE']['support-contact']['developer-mail'], CONFIG['APPEARANCE']['productname']." "._("Feedback")); |
|
159 | 159 | $mail->addAddress($mailaddr[0]["value"]); |
160 | 160 | // what do we want to say? |
161 | 161 | $mail->Subject = $subject; |
@@ -218,7 +218,7 @@ discard block |
||
218 | 218 | } |
219 | 219 | $lookFor .= "$name"; |
220 | 220 | } |
221 | - $finding = preg_match("/^(" . $lookFor . "):(.*)/", $oneRow->user_id, $matches); |
|
221 | + $finding = preg_match("/^(".$lookFor."):(.*)/", $oneRow->user_id, $matches); |
|
222 | 222 | if ($finding === 0 || $finding === FALSE) { |
223 | 223 | return FALSE; |
224 | 224 | } |
@@ -236,7 +236,7 @@ discard block |
||
236 | 236 | $matchedProviders[] = $idp; |
237 | 237 | $name = $idp; |
238 | 238 | if ($skipCurl == 0) { |
239 | - $url = CONFIG_DIAGNOSTICS['eduGainResolver']['url'] . "?action=get_entity_name&type=idp&e_id=$idp&lang=$lang"; |
|
239 | + $url = CONFIG_DIAGNOSTICS['eduGainResolver']['url']."?action=get_entity_name&type=idp&e_id=$idp&lang=$lang"; |
|
240 | 240 | $ch = curl_init($url); |
241 | 241 | if ($ch === FALSE) { |
242 | 242 | $loggerInstance->debug(2, "Unable ask eduGAIN about IdP - CURL init failed!"); |
@@ -252,7 +252,7 @@ discard block |
||
252 | 252 | } |
253 | 253 | curl_close($ch); |
254 | 254 | } |
255 | - $listOfProviders[] = User::PROVIDER_STRINGS[$providerStrings[0]] . " - IdP: " . $name; |
|
255 | + $listOfProviders[] = User::PROVIDER_STRINGS[$providerStrings[0]]." - IdP: ".$name; |
|
256 | 256 | } |
257 | 257 | break; |
258 | 258 | case $providerStrings[1]: |
@@ -117,7 +117,7 @@ discard block |
||
117 | 117 | $loggerInstance->debug(4, "OutsideComm::mailAddressValidSecure: no MX."); |
118 | 118 | return OutsideComm::MAILDOMAIN_NO_MX; |
119 | 119 | } |
120 | - $loggerInstance->debug(5, "Domain: $domain MX: " . print_r($mx, TRUE)); |
|
120 | + $loggerInstance->debug(5, "Domain: $domain MX: ".print_r($mx, TRUE)); |
|
121 | 121 | // create a pool of A and AAAA records for all the MXes |
122 | 122 | $ipAddrs = []; |
123 | 123 | foreach ($mx as $onemx) { |
@@ -127,14 +127,14 @@ discard block |
||
127 | 127 | $ipAddrs[] = $oneipv4['ip']; |
128 | 128 | } |
129 | 129 | foreach ($v6list as $oneipv6) { |
130 | - $ipAddrs[] = "[" . $oneipv6['ipv6'] . "]"; |
|
130 | + $ipAddrs[] = "[".$oneipv6['ipv6']."]"; |
|
131 | 131 | } |
132 | 132 | } |
133 | 133 | if (count($ipAddrs) == 0) { |
134 | 134 | $loggerInstance->debug(4, "OutsideComm::mailAddressValidSecure: no mailserver hosts."); |
135 | 135 | return OutsideComm::MAILDOMAIN_NO_HOST; |
136 | 136 | } |
137 | - $loggerInstance->debug(5, "Domain: $domain Addrs: " . print_r($ipAddrs, TRUE)); |
|
137 | + $loggerInstance->debug(5, "Domain: $domain Addrs: ".print_r($ipAddrs, TRUE)); |
|
138 | 138 | // connect to all hosts. If all can't connect, return MAILDOMAIN_NO_CONNECT. |
139 | 139 | // If at least one does not support STARTTLS or one of the hosts doesn't connect |
140 | 140 | // , return MAILDOMAIN_NO_STARTTLS (one which we can't connect to we also |
@@ -186,7 +186,7 @@ discard block |
||
186 | 186 | switch (CONFIG_CONFASSISTANT['SMSSETTINGS']['provider']) { |
187 | 187 | case 'Nexmo': |
188 | 188 | // taken from https://docs.nexmo.com/messaging/sms-api |
189 | - $url = 'https://rest.nexmo.com/sms/json?' . http_build_query( |
|
189 | + $url = 'https://rest.nexmo.com/sms/json?'.http_build_query( |
|
190 | 190 | [ |
191 | 191 | 'api_key' => CONFIG_CONFASSISTANT['SMSSETTINGS']['username'], |
192 | 192 | 'api_secret' => CONFIG_CONFASSISTANT['SMSSETTINGS']['password'], |
@@ -211,14 +211,14 @@ discard block |
||
211 | 211 | $loggerInstance->debug(2, 'Problem with SMS invitation: no message was sent!'); |
212 | 212 | return OutsideComm::SMS_NOTSENT; |
213 | 213 | } |
214 | - $loggerInstance->debug(2, 'Total of ' . $messageCount . ' messages were attempted to send.'); |
|
214 | + $loggerInstance->debug(2, 'Total of '.$messageCount.' messages were attempted to send.'); |
|
215 | 215 | |
216 | 216 | $totalFailures = 0; |
217 | 217 | foreach ($decoded_response['messages'] as $message) { |
218 | 218 | if ($message['status'] == 0) { |
219 | - $loggerInstance->debug(2, $message['message-id'] . ": Success"); |
|
219 | + $loggerInstance->debug(2, $message['message-id'].": Success"); |
|
220 | 220 | } else { |
221 | - $loggerInstance->debug(2, $message['message-id'] . ": Failed (failure code = " . $message['status'] . ")"); |
|
221 | + $loggerInstance->debug(2, $message['message-id'].": Failed (failure code = ".$message['status'].")"); |
|
222 | 222 | $totalFailures++; |
223 | 223 | } |
224 | 224 | } |
@@ -270,7 +270,7 @@ discard block |
||
270 | 270 | $proto = "https://"; |
271 | 271 | } |
272 | 272 | // then, send out the mail |
273 | - $message = _("Hello,") . "\n\n" . wordwrap($introTexts[$introtext] . " " . $validity, 72) . "\n\n"; |
|
273 | + $message = _("Hello,")."\n\n".wordwrap($introTexts[$introtext]." ".$validity, 72)."\n\n"; |
|
274 | 274 | // default means we don't have a Reply-To. |
275 | 275 | $replyToMessage = wordwrap(_("manually. Please do not reply to this mail; this is a send-only address.")); |
276 | 276 | |
@@ -278,8 +278,8 @@ discard block |
||
278 | 278 | // see if we are supposed to add a custom message |
279 | 279 | $customtext = $federation->getAttributes('fed:custominvite'); |
280 | 280 | if (count($customtext) > 0) { |
281 | - $message .= wordwrap(sprintf(_("Additional message from your %s administrator:"), Entity::$nomenclature_fed), 72) . "\n---------------------------------" . |
|
282 | - wordwrap($customtext[0]['value'], 72) . "\n---------------------------------\n\n"; |
|
281 | + $message .= wordwrap(sprintf(_("Additional message from your %s administrator:"), Entity::$nomenclature_fed), 72)."\n---------------------------------". |
|
282 | + wordwrap($customtext[0]['value'], 72)."\n---------------------------------\n\n"; |
|
283 | 283 | } |
284 | 284 | // and add Reply-To already now |
285 | 285 | foreach ($federation->listFederationAdmins() as $fedadmin_id) { |
@@ -294,19 +294,19 @@ discard block |
||
294 | 294 | } |
295 | 295 | } |
296 | 296 | |
297 | - $message .= wordwrap(sprintf(_("To enlist as an administrator for that %s, please click on the following link:"), Entity::$nomenclature_inst), 72) . "\n\n" . |
|
298 | - $proto . $_SERVER['SERVER_NAME'] . CONFIG['PATHS']['cat_base_url'] . "admin/action_enrollment.php?token=$newtoken\n\n" . |
|
299 | - wordwrap(sprintf(_("If clicking the link doesn't work, you can also go to the %s Administrator Interface at"), CONFIG['APPEARANCE']['productname']), 72) . "\n\n" . |
|
300 | - $proto . $_SERVER['SERVER_NAME'] . CONFIG['PATHS']['cat_base_url'] . "admin/\n\n" . |
|
301 | - _("and enter the invitation token") . "\n\n" . |
|
302 | - $newtoken . "\n\n$replyToMessage\n\n" . |
|
303 | - wordwrap(_("Do NOT forward the mail before the token has expired - or the recipients may be able to consume the token on your behalf!"), 72) . "\n\n" . |
|
304 | - wordwrap(sprintf(_("We wish you a lot of fun with the %s."), CONFIG['APPEARANCE']['productname']), 72) . "\n\n" . |
|
297 | + $message .= wordwrap(sprintf(_("To enlist as an administrator for that %s, please click on the following link:"), Entity::$nomenclature_inst), 72)."\n\n". |
|
298 | + $proto.$_SERVER['SERVER_NAME'].CONFIG['PATHS']['cat_base_url']."admin/action_enrollment.php?token=$newtoken\n\n". |
|
299 | + wordwrap(sprintf(_("If clicking the link doesn't work, you can also go to the %s Administrator Interface at"), CONFIG['APPEARANCE']['productname']), 72)."\n\n". |
|
300 | + $proto.$_SERVER['SERVER_NAME'].CONFIG['PATHS']['cat_base_url']."admin/\n\n". |
|
301 | + _("and enter the invitation token")."\n\n". |
|
302 | + $newtoken."\n\n$replyToMessage\n\n". |
|
303 | + wordwrap(_("Do NOT forward the mail before the token has expired - or the recipients may be able to consume the token on your behalf!"), 72)."\n\n". |
|
304 | + wordwrap(sprintf(_("We wish you a lot of fun with the %s."), CONFIG['APPEARANCE']['productname']), 72)."\n\n". |
|
305 | 305 | sprintf(_("Sincerely,\n\nYour friendly folks from %s Operations"), CONFIG_CONFASSISTANT['CONSORTIUM']['display_name']); |
306 | 306 | |
307 | 307 | |
308 | 308 | // who to whom? |
309 | - $mail->FromName = CONFIG['APPEARANCE']['productname'] . " Invitation System"; |
|
309 | + $mail->FromName = CONFIG['APPEARANCE']['productname']." Invitation System"; |
|
310 | 310 | |
311 | 311 | if (isset(CONFIG['APPEARANCE']['invitation-bcc-mail']) && CONFIG['APPEARANCE']['invitation-bcc-mail'] !== NULL) { |
312 | 312 | $mail->addBCC(CONFIG['APPEARANCE']['invitation-bcc-mail']); |
@@ -356,7 +356,7 @@ discard block |
||
356 | 356 | $loggerInstance = new Logging(); |
357 | 357 | $ch = \curl_init($url); |
358 | 358 | if ($ch === FALSE) { |
359 | - $loggerInstance->debug(2,"Unable to POST JSON request: CURL init failed!"); |
|
359 | + $loggerInstance->debug(2, "Unable to POST JSON request: CURL init failed!"); |
|
360 | 360 | return json_decode(json_encode(FALSE), TRUE); |
361 | 361 | } |
362 | 362 | \curl_setopt_array($ch, array( |
@@ -128,7 +128,7 @@ discard block |
||
128 | 128 | $find = array_keys($displayNames, $input, TRUE); |
129 | 129 | |
130 | 130 | if (count($find) == 0) { // this is an error! throw an Exception |
131 | - throw new \Exception("The translation of an option name was requested, but the option is not known to the system: " . htmlentities($input)); |
|
131 | + throw new \Exception("The translation of an option name was requested, but the option is not known to the system: ".htmlentities($input)); |
|
132 | 132 | } |
133 | 133 | \core\common\Entity::outOfThePotatoes(); |
134 | 134 | return $find[0]; |
@@ -149,7 +149,7 @@ discard block |
||
149 | 149 | |
150 | 150 | foreach ($optionlist as $option) { |
151 | 151 | $type = $optioninfo->optionType($option['name']); |
152 | - if (preg_match('/^' . $class . '/', $option['name']) && $option['level'] == "$level") { |
|
152 | + if (preg_match('/^'.$class.'/', $option['name']) && $option['level'] == "$level") { |
|
153 | 153 | // all non-multilang attribs get this assignment ... |
154 | 154 | $language = ""; |
155 | 155 | $content = $option['value']; |
@@ -167,19 +167,19 @@ discard block |
||
167 | 167 | $locationMarkers[] = $coords; |
168 | 168 | break; |
169 | 169 | case "file": |
170 | - $retval .= "<tr><td>" . $this->displayName($option['name']) . "</td><td>$language</td><td>"; |
|
170 | + $retval .= "<tr><td>".$this->displayName($option['name'])."</td><td>$language</td><td>"; |
|
171 | 171 | switch ($option['name']) { |
172 | 172 | case "general:logo_file": |
173 | 173 | case "fed:logo_file": |
174 | - $retval .= $this->previewImageinHTML('ROWID-' . $option['level'] . '-' . $option['row']); |
|
174 | + $retval .= $this->previewImageinHTML('ROWID-'.$option['level'].'-'.$option['row']); |
|
175 | 175 | break; |
176 | 176 | case "eap:ca_file": |
177 | 177 | // fall-through intended: display both the same way |
178 | 178 | case "fed:minted_ca_file": |
179 | - $retval .= $this->previewCAinHTML('ROWID-' . $option['level'] . '-' . $option['row']); |
|
179 | + $retval .= $this->previewCAinHTML('ROWID-'.$option['level'].'-'.$option['row']); |
|
180 | 180 | break; |
181 | 181 | case "support:info_file": |
182 | - $retval .= $this->previewInfoFileinHTML('ROWID-' . $option['level'] . '-' . $option['row']); |
|
182 | + $retval .= $this->previewInfoFileinHTML('ROWID-'.$option['level'].'-'.$option['row']); |
|
183 | 183 | break; |
184 | 184 | default: |
185 | 185 | } |
@@ -189,10 +189,10 @@ discard block |
||
189 | 189 | // do not display the option at all; it gets auto-set by the ProfileSilverbullet constructor and doesn't have to be seen |
190 | 190 | break; |
191 | 191 | } |
192 | - $retval .= "<tr><td>" . $this->displayName($option['name']) . "</td><td>$language</td><td><strong>" . ($content == "on" ? _("on") : _("off") ) . "</strong></td></tr>"; |
|
192 | + $retval .= "<tr><td>".$this->displayName($option['name'])."</td><td>$language</td><td><strong>".($content == "on" ? _("on") : _("off"))."</strong></td></tr>"; |
|
193 | 193 | break; |
194 | 194 | default: |
195 | - $retval .= "<tr><td>" . $this->displayName($option['name']) . "</td><td>$language</td><td><strong>$content</strong></td></tr>"; |
|
195 | + $retval .= "<tr><td>".$this->displayName($option['name'])."</td><td>$language</td><td><strong>$content</strong></td></tr>"; |
|
196 | 196 | } |
197 | 197 | } |
198 | 198 | } |
@@ -201,11 +201,11 @@ discard block |
||
201 | 201 | $locationCount = 0; |
202 | 202 | foreach ($locationMarkers as $g) { |
203 | 203 | $locationCount++; |
204 | - $marker .= '<marker name="' . $locationCount . '" lat="' . $g['lat'] . '" lng="' . $g['lon'] . '" />'; |
|
204 | + $marker .= '<marker name="'.$locationCount.'" lat="'.$g['lat'].'" lng="'.$g['lon'].'" />'; |
|
205 | 205 | } |
206 | 206 | $marker .= '<\/markers>'; // some validator says this should be escaped |
207 | 207 | $jMarker = json_encode($locationMarkers); |
208 | - $retval .= '<tr><td><script>markers=\'' . $marker . '\'; jmarkers = \'' . $jMarker . '\';</script></td><td></td><td></td></tr>'; |
|
208 | + $retval .= '<tr><td><script>markers=\''.$marker.'\'; jmarkers = \''.$jMarker.'\';</script></td><td></td><td></td></tr>'; |
|
209 | 209 | } |
210 | 210 | \core\common\Entity::outOfThePotatoes(); |
211 | 211 | return $retval; |
@@ -221,11 +221,11 @@ discard block |
||
221 | 221 | \core\common\Entity::intoThePotatoes(); |
222 | 222 | $idpoptions = $myInst->getAttributes(); |
223 | 223 | $retval = "<div class='infobox'> |
224 | - <h2>" . sprintf(_("General %s details"), $this->nomenclatureInst) . "</h2> |
|
224 | + <h2>" . sprintf(_("General %s details"), $this->nomenclatureInst)."</h2> |
|
225 | 225 | <table> |
226 | 226 | <tr> |
227 | 227 | <td> |
228 | - " . _("Country:") . " |
|
228 | + " . _("Country:")." |
|
229 | 229 | </td> |
230 | 230 | <td> |
231 | 231 | </td> |
@@ -235,16 +235,16 @@ discard block |
||
235 | 235 | $retval .= $myFed->name; |
236 | 236 | $retval .= "</strong> |
237 | 237 | </td> |
238 | - </tr>" . $this->infoblock($idpoptions, "general", "IdP") . " |
|
238 | + </tr>" . $this->infoblock($idpoptions, "general", "IdP")." |
|
239 | 239 | </table> |
240 | 240 | </div>"; |
241 | 241 | |
242 | 242 | $blocks = [["support", _("Global Helpdesk Details")], ["media", _("Media Properties")]]; |
243 | 243 | foreach ($blocks as $block) { |
244 | 244 | $retval .= "<div class='infobox'> |
245 | - <h2>" . $block[1] . "</h2> |
|
245 | + <h2>" . $block[1]."</h2> |
|
246 | 246 | <table>" . |
247 | - $this->infoblock($idpoptions, $block[0], "IdP") . |
|
247 | + $this->infoblock($idpoptions, $block[0], "IdP"). |
|
248 | 248 | "</table> |
249 | 249 | </div>"; |
250 | 250 | } |
@@ -259,12 +259,12 @@ discard block |
||
259 | 259 | */ |
260 | 260 | private function displaySize(int $number) { |
261 | 261 | if ($number > 1024 * 1024) { |
262 | - return round($number / 1024 / 1024, 2) . " MiB"; |
|
262 | + return round($number / 1024 / 1024, 2)." MiB"; |
|
263 | 263 | } |
264 | 264 | if ($number > 1024) { |
265 | - return round($number / 1024, 2) . " KiB"; |
|
265 | + return round($number / 1024, 2)." KiB"; |
|
266 | 266 | } |
267 | - return $number . " B"; |
|
267 | + return $number." B"; |
|
268 | 268 | } |
269 | 269 | |
270 | 270 | /** |
@@ -336,7 +336,7 @@ discard block |
||
336 | 336 | $this->checkROWIDpresence($cAReference); |
337 | 337 | $rawResult = UIElements::getBlobFromDB($cAReference, FALSE); |
338 | 338 | if (is_bool($rawResult)) { // we didn't actually get a CA! |
339 | - $retval = "<div class='ca-summary'>" . _("There was an error while retrieving the certificate from the database!") . "</div>"; |
|
339 | + $retval = "<div class='ca-summary'>"._("There was an error while retrieving the certificate from the database!")."</div>"; |
|
340 | 340 | \core\common\Entity::outOfThePotatoes(); |
341 | 341 | return $retval; |
342 | 342 | } |
@@ -352,13 +352,13 @@ discard block |
||
352 | 352 | |
353 | 353 | $details['name'] = preg_replace('/(.)\/(.)/', "$1<br/>$2", $details['name']); |
354 | 354 | $details['name'] = preg_replace('/\//', "", $details['name']); |
355 | - $certstatus = ( $details['root'] == 1 ? "R" : "I"); |
|
355 | + $certstatus = ($details['root'] == 1 ? "R" : "I"); |
|
356 | 356 | if ($details['ca'] == 0 && $details['root'] != 1) { |
357 | - $retval = "<div class='ca-summary' style='background-color:red'><div style='position:absolute; right: 0px; width:20px; height:20px; background-color:maroon; border-radius:10px; text-align: center;'><div style='padding-top:3px; font-weight:bold; color:#ffffff;'>S</div></div>" . _("This is a <strong>SERVER</strong> certificate!") . "<br/>" . $details['name'] . "</div>"; |
|
357 | + $retval = "<div class='ca-summary' style='background-color:red'><div style='position:absolute; right: 0px; width:20px; height:20px; background-color:maroon; border-radius:10px; text-align: center;'><div style='padding-top:3px; font-weight:bold; color:#ffffff;'>S</div></div>"._("This is a <strong>SERVER</strong> certificate!")."<br/>".$details['name']."</div>"; |
|
358 | 358 | \core\common\Entity::outOfThePotatoes(); |
359 | 359 | return $retval; |
360 | 360 | } |
361 | - $retval = "<div class='ca-summary' ><div style='position:absolute; right: 0px; width:20px; height:20px; background-color:#0000ff; border-radius:10px; text-align: center;'><div style='padding-top:3px; font-weight:bold; color:#ffffff;'>$certstatus</div></div>" . $details['name'] . "</div>"; |
|
361 | + $retval = "<div class='ca-summary' ><div style='position:absolute; right: 0px; width:20px; height:20px; background-color:#0000ff; border-radius:10px; text-align: center;'><div style='padding-top:3px; font-weight:bold; color:#ffffff;'>$certstatus</div></div>".$details['name']."</div>"; |
|
362 | 362 | \core\common\Entity::outOfThePotatoes(); |
363 | 363 | return $retval; |
364 | 364 | } |
@@ -372,7 +372,7 @@ discard block |
||
372 | 372 | public function previewImageinHTML($imageReference) { |
373 | 373 | \core\common\Entity::intoThePotatoes(); |
374 | 374 | $this->checkROWIDpresence($imageReference); |
375 | - $retval = "<img style='max-width:150px' src='inc/filepreview.php?id=" . $imageReference . "' alt='" . _("Preview of logo file") . "'/>"; |
|
375 | + $retval = "<img style='max-width:150px' src='inc/filepreview.php?id=".$imageReference."' alt='"._("Preview of logo file")."'/>"; |
|
376 | 376 | \core\common\Entity::outOfThePotatoes(); |
377 | 377 | return $retval; |
378 | 378 | } |
@@ -388,13 +388,13 @@ discard block |
||
388 | 388 | $this->checkROWIDpresence($fileReference); |
389 | 389 | $fileBlob = UIElements::getBlobFromDB($fileReference, FALSE); |
390 | 390 | if (is_bool($fileBlob)) { // we didn't actually get a file! |
391 | - $retval = "<div class='ca-summary'>" . _("There was an error while retrieving the file from the database!") . "</div>"; |
|
391 | + $retval = "<div class='ca-summary'>"._("There was an error while retrieving the file from the database!")."</div>"; |
|
392 | 392 | \core\common\Entity::outOfThePotatoes(); |
393 | 393 | return $retval; |
394 | 394 | } |
395 | 395 | $decodedFileBlob = base64_decode($fileBlob); |
396 | 396 | $fileinfo = new \finfo(); |
397 | - $retval = "<div class='ca-summary'>" . _("File exists") . " (" . $fileinfo->buffer($decodedFileBlob, FILEINFO_MIME_TYPE) . ", " . $this->displaySize(strlen($decodedFileBlob)) . ")<br/><a href='inc/filepreview.php?id=$fileReference'>" . _("Preview") . "</a></div>"; |
|
397 | + $retval = "<div class='ca-summary'>"._("File exists")." (".$fileinfo->buffer($decodedFileBlob, FILEINFO_MIME_TYPE).", ".$this->displaySize(strlen($decodedFileBlob)).")<br/><a href='inc/filepreview.php?id=$fileReference'>"._("Preview")."</a></div>"; |
|
398 | 398 | \core\common\Entity::outOfThePotatoes(); |
399 | 399 | return $retval; |
400 | 400 | } |
@@ -422,7 +422,7 @@ discard block |
||
422 | 422 | $retval .= "<tr><td>"; |
423 | 423 | } |
424 | 424 | $finalCaption = ($caption !== NULL ? $caption : $uiMessages[$level]['text']); |
425 | - $retval .= "<img class='icon' src='" . $uiMessages[$level]['icon'] . "' alt='" . $finalCaption . "' title='" . $finalCaption . "'/>"; |
|
425 | + $retval .= "<img class='icon' src='".$uiMessages[$level]['icon']."' alt='".$finalCaption."' title='".$finalCaption."'/>"; |
|
426 | 426 | if (!$omittabletags) { |
427 | 427 | $retval .= "</td><td>"; |
428 | 428 | } |
@@ -502,8 +502,8 @@ discard block |
||
502 | 502 | return ""; |
503 | 503 | } |
504 | 504 | |
505 | - $loggerInstance->debug(4, "Consortium logo is at: " . ROOT . "/web/resources/images/consortium_logo_large.png"); |
|
506 | - $logogd = imagecreatefrompng(ROOT . "/web/resources/images/consortium_logo_large.png"); |
|
505 | + $loggerInstance->debug(4, "Consortium logo is at: ".ROOT."/web/resources/images/consortium_logo_large.png"); |
|
506 | + $logogd = imagecreatefrompng(ROOT."/web/resources/images/consortium_logo_large.png"); |
|
507 | 507 | if ($logogd === FALSE) { // consortium logo is bogus; don't do anything |
508 | 508 | return ""; |
509 | 509 | } |
@@ -518,8 +518,8 @@ discard block |
||
518 | 518 | $scale = sqrt($maxoccupy / $totallogopixels); |
519 | 519 | $loggerInstance->debug(4, "Scaling info: $scale, $maxoccupy, $totallogopixels\n"); |
520 | 520 | // determine final pixel size - round to multitude of $symbolsize to match exact symbol boundary |
521 | - $targetwidth = (int)($symbolsize * round($sizelogo[0] * $scale / $symbolsize)); |
|
522 | - $targetheight = (int)($symbolsize * round($sizelogo[1] * $scale / $symbolsize)); |
|
521 | + $targetwidth = (int) ($symbolsize * round($sizelogo[0] * $scale / $symbolsize)); |
|
522 | + $targetheight = (int) ($symbolsize * round($sizelogo[1] * $scale / $symbolsize)); |
|
523 | 523 | // paint white below the logo, in case it has transparencies (looks bad) |
524 | 524 | // have one symbol in each direction extra white space |
525 | 525 | $whiteimage = imagecreate($targetwidth + 2 * $symbolsize, $targetheight + 2 * $symbolsize); |
@@ -528,8 +528,8 @@ discard block |
||
528 | 528 | } |
529 | 529 | imagecolorallocate($whiteimage, 255, 255, 255); |
530 | 530 | // also make sure the initial placement is a multitude of 12; otherwise "two half" symbols might be affected |
531 | - $targetplacementx = (int)($symbolsize * round(($sizeinput[0] / 2 - ($targetwidth - $symbolsize) / 2) / $symbolsize)); |
|
532 | - $targetplacementy = (int)($symbolsize * round(($sizeinput[1] / 2 - ($targetheight - $symbolsize) / 2) / $symbolsize)); |
|
531 | + $targetplacementx = (int) ($symbolsize * round(($sizeinput[0] / 2 - ($targetwidth - $symbolsize) / 2) / $symbolsize)); |
|
532 | + $targetplacementy = (int) ($symbolsize * round(($sizeinput[1] / 2 - ($targetheight - $symbolsize) / 2) / $symbolsize)); |
|
533 | 533 | imagecopyresized($inputgd, $whiteimage, $targetplacementx - $symbolsize, $targetplacementy - $symbolsize, 0, 0, $targetwidth + 2 * $symbolsize, $targetheight + 2 * $symbolsize, $targetwidth + 2 * $symbolsize, $targetheight + 2 * $symbolsize); |
534 | 534 | imagecopyresized($inputgd, $logogd, $targetplacementx, $targetplacementy, 0, 0, $targetwidth, $targetheight, $sizelogo[0], $sizelogo[1]); |
535 | 535 | ob_start(); |
@@ -19,10 +19,10 @@ |
||
19 | 19 | * <base_url>/copyright.php after deploying the software |
20 | 20 | */ |
21 | 21 | |
22 | -require_once dirname(dirname(__DIR__)) . "/config/_config.php"; |
|
22 | +require_once dirname(dirname(__DIR__))."/config/_config.php"; |
|
23 | 23 | $realm = filter_input(INPUT_GET, 'realm', FILTER_SANITIZE_STRING); |
24 | -$visited = filter_input(INPUT_GET,'visited', FILTER_SANITIZE_STRING); |
|
25 | -$nro = filter_input(INPUT_GET,'nro', FILTER_SANITIZE_STRING); |
|
24 | +$visited = filter_input(INPUT_GET, 'visited', FILTER_SANITIZE_STRING); |
|
25 | +$nro = filter_input(INPUT_GET, 'nro', FILTER_SANITIZE_STRING); |
|
26 | 26 | CAT_session_start(); |
27 | 27 | $languageObject = new core\common\Language(); |
28 | 28 | $languageObject->setTextDomain("diagonstics"); |
@@ -42,8 +42,8 @@ |
||
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['APPEARANCE']['skins'][0]); |
@@ -19,7 +19,7 @@ discard block |
||
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 | $auth = new \web\lib\admin\Authentication(); |
25 | 25 | $isauth = 0; |
@@ -33,7 +33,7 @@ discard block |
||
33 | 33 | unset($q_el[$idx]); |
34 | 34 | $q_r = preg_replace("/\?.*/", "", $_SERVER['REQUEST_URI']); |
35 | 35 | if (count($q_el)) { |
36 | - $q_r = $q_r . '?' . implode('&', $q_el); |
|
36 | + $q_r = $q_r.'?'.implode('&', $q_el); |
|
37 | 37 | } |
38 | 38 | $_SERVER['REQUEST_URI'] = $q_r; |
39 | 39 | } |
@@ -42,11 +42,11 @@ discard block |
||
42 | 42 | $auth->authenticate(); |
43 | 43 | } |
44 | 44 | if (isset($_SESSION['admin_diag_auth'])) { |
45 | - $admin = 1; |
|
45 | + $admin = 1; |
|
46 | 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['APPEARANCE']['skins'][0]); |
50 | -require "../skins/" . $skinObject->skin . "/diag/diag.php"; |
|
50 | +require "../skins/".$skinObject->skin."/diag/diag.php"; |
|
51 | 51 | |
52 | 52 |
@@ -156,7 +156,7 @@ |
||
156 | 156 | echo "0\">"; |
157 | 157 | echo _("This service is for authenticated admins only.") . '<br>'; |
158 | 158 | echo "<a href=\"diag.php?admin=1\">" . |
159 | - _("eduroam® admin access is needed") . "</a>"; |
|
159 | + _("eduroam® admin access is needed") . "</a>"; |
|
160 | 160 | } |
161 | 161 | ?> |
162 | 162 | </div> |
@@ -40,16 +40,16 @@ discard block |
||
40 | 40 | |
41 | 41 | <?php |
42 | 42 | $profile_list_size = 1; |
43 | -require_once dirname(__DIR__) . '/Divs.php'; |
|
43 | +require_once dirname(__DIR__).'/Divs.php'; |
|
44 | 44 | $divs = new Divs($Gui); |
45 | 45 | $visibility = 'index'; |
46 | 46 | $operatingSystem = $Gui->detectOS(); |
47 | 47 | $Gui->loggerInstance->debug(4, $operatingSystem); |
48 | 48 | $uiElements = new web\lib\admin\UIElements(); |
49 | 49 | if ($operatingSystem) { |
50 | - print "recognisedOS = '" . $operatingSystem['device'] . "';\n"; |
|
50 | + print "recognisedOS = '".$operatingSystem['device']."';\n"; |
|
51 | 51 | } |
52 | -require dirname(__DIR__) . '/user/js/cat_js.php'; |
|
52 | +require dirname(__DIR__).'/user/js/cat_js.php'; |
|
53 | 53 | ?> |
54 | 54 | |
55 | 55 | </script> |
@@ -78,12 +78,12 @@ discard block |
||
78 | 78 | </div> |
79 | 79 | <div id="main_body"> |
80 | 80 | <div id="user_page"> |
81 | - <?php echo $divs->divPagetitle(_("Diagnostics site") . " (<span style='color:red'>beta</span>)", ""); ?> |
|
81 | + <?php echo $divs->divPagetitle(_("Diagnostics site")." (<span style='color:red'>beta</span>)", ""); ?> |
|
82 | 82 | <div id="user_info" style='padding-top: 10px;'> |
83 | 83 | <div id='diagnostic_choice'> |
84 | - <?php echo _("The diagnostics system will do its best to identify and resolve your problems!") . ' ' . _("Please help the system by answering the questions as precisely as possible.") . "<br/>" . _("Are you a") . ' '; ?> |
|
85 | - <input type='radio' name='diagnostic_usertype' value='0'><?php echo _("end-user") . ' ' . _("or"); ?> |
|
86 | - <input type='radio' name='diagnostic_usertype' value='1' <?php if ($admin == 1) { echo " checked"; } ?> > <?php echo _("eduroam administrator") .'?'; ?> |
|
84 | + <?php echo _("The diagnostics system will do its best to identify and resolve your problems!").' '._("Please help the system by answering the questions as precisely as possible.")."<br/>"._("Are you a").' '; ?> |
|
85 | + <input type='radio' name='diagnostic_usertype' value='0'><?php echo _("end-user").' '._("or"); ?> |
|
86 | + <input type='radio' name='diagnostic_usertype' value='1' <?php if ($admin == 1) { echo " checked"; } ?> > <?php echo _("eduroam administrator").'?'; ?> |
|
87 | 87 | </div> |
88 | 88 | <div id='diagnostic_enduser' style='display: none;'> |
89 | 89 | <h2><?php echo _("Tools for End Users"); ?></h2> |
@@ -93,24 +93,24 @@ discard block |
||
93 | 93 | ?> |
94 | 94 | </p> |
95 | 95 | <?php |
96 | - echo '<div id="before_stage_1"><h3>' . _("The system needs some information on your home institution - issuer of your account") . '</h3>'; |
|
96 | + echo '<div id="before_stage_1"><h3>'._("The system needs some information on your home institution - issuer of your account").'</h3>'; |
|
97 | 97 | echo _("What is the realm part of your user account (the part behind the @ of 'your.username@<b>realm.tld</b>):"); |
98 | 98 | ?> |
99 | 99 | <input type='text' name='user_realm' id='user_realm' value=''> |
100 | 100 | <?php |
101 | - echo '<div id="realm_by_select"><br/>' . _("alternatively") . '<br/>'; |
|
102 | - echo _("You can select your home institution from the following list") . '<br/>'; |
|
101 | + echo '<div id="realm_by_select"><br/>'._("alternatively").'<br/>'; |
|
102 | + echo _("You can select your home institution from the following list").'<br/>'; |
|
103 | 103 | echo '<div id="select_idp_country"><a href="" id="idp_countries_list">'; |
104 | - echo '<span id="realmselect">' . _("Click to select your country/region and organisation") . '</span></a></div>'; |
|
104 | + echo '<span id="realmselect">'._("Click to select your country/region and organisation").'</span></a></div>'; |
|
105 | 105 | ?> |
106 | 106 | <div id="select_idp_area" style="display:none;"> |
107 | 107 | </div> |
108 | 108 | </div> |
109 | 109 | <div id="position_info"> |
110 | 110 | <?php |
111 | - echo '<h3>' . _("Optionally, to improve tests, you can provide information on your current location") . '</h3>'; |
|
111 | + echo '<h3>'._("Optionally, to improve tests, you can provide information on your current location").'</h3>'; |
|
112 | 112 | echo '<div id="select_sp_country"><a href="" id="sp_countries_list">'; |
113 | - echo '<span id="spselect">' . _("Click to select a location in which you have an eduroam problem") . '</span></a></div>'; |
|
113 | + echo '<span id="spselect">'._("Click to select a location in which you have an eduroam problem").'</span></a></div>'; |
|
114 | 114 | ?> |
115 | 115 | <div id="select_sp_area" style="display:none;"> |
116 | 116 | </div> |
@@ -143,9 +143,9 @@ discard block |
||
143 | 143 | echo 'none'; |
144 | 144 | } |
145 | 145 | echo ";'>"; |
146 | - echo '<h3>' . _("Which problem are you reporting?") . '</h3>'; |
|
146 | + echo '<h3>'._("Which problem are you reporting?").'</h3>'; |
|
147 | 147 | echo '<input type="radio" name="problem_type" value="1">'; |
148 | - echo _("SP contacting IdP due to technical problems or abuse") . '<br>'; |
|
148 | + echo _("SP contacting IdP due to technical problems or abuse").'<br>'; |
|
149 | 149 | echo '<input type="radio" name="problem_type" value="2">'; |
150 | 150 | echo _("IdP contacting SP due to technical problems"); |
151 | 151 | echo "<div id='idp_contact_area'></div>"; |
@@ -154,9 +154,9 @@ discard block |
||
154 | 154 | echo "</div>"; |
155 | 155 | } else { |
156 | 156 | echo "0\">"; |
157 | - echo _("This service is for authenticated admins only.") . '<br>'; |
|
158 | - echo "<a href=\"diag.php?admin=1\">" . |
|
159 | - _("eduroam® admin access is needed") . "</a>"; |
|
157 | + echo _("This service is for authenticated admins only.").'<br>'; |
|
158 | + echo "<a href=\"diag.php?admin=1\">". |
|
159 | + _("eduroam® admin access is needed")."</a>"; |
|
160 | 160 | } |
161 | 161 | ?> |
162 | 162 | </div> |
@@ -180,7 +180,7 @@ discard block |
||
180 | 180 | if (type === 'idp' || type === 'sp') { |
181 | 181 | shtml = '<table><tbody><tr id="row_'+type+'_country"></tr>'; |
182 | 182 | shtml = shtml + '<tr id="row_'+type+'_institution" style="visibility: collapse;">'; |
183 | - shtml = shtml + '<td>' + <?php echo '"' . _("Select institiution:") . '"'; ?> + '</td><td></td></tr>'; |
|
183 | + shtml = shtml + '<td>' + <?php echo '"'._("Select institiution:").'"'; ?> + '</td><td></td></tr>'; |
|
184 | 184 | if (type === 'idp') { |
185 | 185 | shtml = shtml + '<tr id="row_idp_realm"></tr>'; |
186 | 186 | } |
@@ -206,7 +206,7 @@ discard block |
||
206 | 206 | var options = ''; |
207 | 207 | var selecthead = ''; |
208 | 208 | if (type1 === 'sp' || type1 === 'idp') { |
209 | - selecthead = <?php echo '"<td>' . _("Select country or region:") . ' </td>"'; ?>; |
|
209 | + selecthead = <?php echo '"<td>'._("Select country or region:").' </td>"'; ?>; |
|
210 | 210 | selecthead = selecthead + '<td>\n'; |
211 | 211 | } |
212 | 212 | var select = '<select id="' + type1 + '_country" name="' + type1 + '_country" style="margin-left:0px; width:400px;">'; |
@@ -214,7 +214,7 @@ discard block |
||
214 | 214 | options = ($('#'+type2+'_country').html()); |
215 | 215 | countryAddSelect(selecthead, select + options + '</select>', type1); |
216 | 216 | } else { |
217 | - var comment = <?php echo '"<br><br>' . _("Fetching country/region list") . '..."'; ?>; |
|
217 | + var comment = <?php echo '"<br><br>'._("Fetching country/region list").'..."'; ?>; |
|
218 | 218 | inProgress(1, comment); |
219 | 219 | $.ajax({ |
220 | 220 | url: "findRealm.php", |
@@ -251,7 +251,7 @@ discard block |
||
251 | 251 | return false; |
252 | 252 | } |
253 | 253 | function testSociopath(realm, answer) { |
254 | - var comment = <?php echo '"' . _("Testing realm") . '..."'; ?>; |
|
254 | + var comment = <?php echo '"'._("Testing realm").'..."'; ?>; |
|
255 | 255 | inProgress(1, comment); |
256 | 256 | if ($('#tested_realm').length == 0) { |
257 | 257 | $('<input>').attr({ |
@@ -275,9 +275,9 @@ discard block |
||
275 | 275 | query = '<input type="hidden" id="tested_realm" value="' + realm + '">'; |
276 | 276 | } |
277 | 277 | query = query + '<div id="current_query">'+data['TEXT']+'</div>'; |
278 | - query = query + '<div><button id="answer_yes">' + <?php echo '"' . _("Yes") . '"'; ?> + '</button>'; |
|
279 | - query = query + '<button style="margin-left:20px;" id="answer_no">' + <?php echo '"' . _("No") . '"'; ?> + '</button>'; |
|
280 | - query = query + '<button style="margin-left:20px;" id="answer_noidea">' + <?php echo '"' . _("I don't know") . '"'; ?> + '</button></div>'; |
|
278 | + query = query + '<div><button id="answer_yes">' + <?php echo '"'._("Yes").'"'; ?> + '</button>'; |
|
279 | + query = query + '<button style="margin-left:20px;" id="answer_no">' + <?php echo '"'._("No").'"'; ?> + '</button>'; |
|
280 | + query = query + '<button style="margin-left:20px;" id="answer_noidea">' + <?php echo '"'._("I don't know").'"'; ?> + '</button></div>'; |
|
281 | 281 | $('#sociopath_queries').html(query); |
282 | 282 | $('#sociopath_query_area').show(); |
283 | 283 | } |
@@ -308,55 +308,55 @@ discard block |
||
308 | 308 | }); |
309 | 309 | } |
310 | 310 | function finalVerdict(realm, verdict) { |
311 | - var title = <?php echo '"' . _("Diagnostic tests results for selected realm") . '"'; ?>; |
|
311 | + var title = <?php echo '"'._("Diagnostic tests results for selected realm").'"'; ?>; |
|
312 | 312 | result = '<div class="padding">'; |
313 | 313 | result = result + '<div><h3>'; |
314 | - result = result + <?php echo '"' . _("The result for tested realm:") . ' "'; ?> + realm; |
|
314 | + result = result + <?php echo '"'._("The result for tested realm:").' "'; ?> + realm; |
|
315 | 315 | result = result + '</h3></p><div style="padding: 5px;"><div style="padding: 0px;">'; |
316 | - result = result + <?php echo '"' . _("The system identified") . '" '; ?> + ' '; |
|
316 | + result = result + <?php echo '"'._("The system identified").'" '; ?> + ' '; |
|
317 | 317 | result = result + Object.keys(verdict).length + ' '; |
318 | - result = result + <?php echo '"' . _("suspected areas which potentially can cause a problem.") . '"'; ?> + '<br>'; |
|
319 | - result = result + <?php echo '"' . _("Next to the problem description we show a speculated probability of this event.") . '"'; ?>; |
|
318 | + result = result + <?php echo '"'._("suspected areas which potentially can cause a problem.").'"'; ?> + '<br>'; |
|
319 | + result = result + <?php echo '"'._("Next to the problem description we show a speculated probability of this event.").'"'; ?>; |
|
320 | 320 | result = result + '</div><div style="padding: 5px;"><table>'; |
321 | 321 | k = 1; |
322 | 322 | for (key in verdict) { |
323 | 323 | result = result + '<tr><td>' + k + '.</td>'; |
324 | 324 | k = k + 1; |
325 | 325 | if (key === 'INFRA_DEVICE') { |
326 | - result = result + '<td>' + <?php echo '"' . _("Your device configuration is broken") . '"'; ?> + '</td>'; |
|
326 | + result = result + '<td>' + <?php echo '"'._("Your device configuration is broken").'"'; ?> + '</td>'; |
|
327 | 327 | } |
328 | 328 | if (key === 'INFRA_SP_80211') { |
329 | - result = result + '<td>' + <?php echo '"' . _("The Wi-Fi network in your vicinity has quality issues") . '"'; ?> + '</td>'; |
|
329 | + result = result + '<td>' + <?php echo '"'._("The Wi-Fi network in your vicinity has quality issues").'"'; ?> + '</td>'; |
|
330 | 330 | } |
331 | 331 | if (key === 'INFRA_SP_LAN') { |
332 | - result = result + '<td>' + <?php echo '"' . _("The network environment around you is broken") . '"'; ?> + '</td>'; |
|
332 | + result = result + '<td>' + <?php echo '"'._("The network environment around you is broken").'"'; ?> + '</td>'; |
|
333 | 333 | } |
334 | 334 | if (key === 'INFRA_SP_RADIUS') { |
335 | - result = result + '<td>' + <?php echo '"' . _("The RADIUS server of your service provider is the source of the problem") . '"'; ?> + '</td>'; |
|
335 | + result = result + '<td>' + <?php echo '"'._("The RADIUS server of your service provider is the source of the problem").'"'; ?> + '</td>'; |
|
336 | 336 | } |
337 | 337 | if (key === 'INFRA_IDP_AUTHBACKEND') { |
338 | - result = result + '<td>' + <?php echo '"' . _("The RADIUS server in your home institution is currently unable to authenticate you") . '"'; ?> + '</td>'; |
|
338 | + result = result + '<td>' + <?php echo '"'._("The RADIUS server in your home institution is currently unable to authenticate you").'"'; ?> + '</td>'; |
|
339 | 339 | } |
340 | 340 | if (key === 'INFRA_NRO_SP') { |
341 | - result = result + '<td>' + <?php echo '"' . _("The national server in the country/region you are visiting is not functioning correctly") . '"'; ?> + '</td>'; |
|
341 | + result = result + '<td>' + <?php echo '"'._("The national server in the country/region you are visiting is not functioning correctly").'"'; ?> + '</td>'; |
|
342 | 342 | } |
343 | 343 | if (key === 'INFRA_LINK_ETLR_NRO_SP') { |
344 | - result = result + '<td>' + <?php echo '"' . _("The link between the national server of the country/region you are visiting and the top-level server is broken") . '"'; ?> + '</td>'; |
|
344 | + result = result + '<td>' + <?php echo '"'._("The link between the national server of the country/region you are visiting and the top-level server is broken").'"'; ?> + '</td>'; |
|
345 | 345 | } |
346 | 346 | if (key === 'INFRA_LINK_ETLR_NRO_IdP') { |
347 | - result = result + '<td>' + <?php echo '"' . _("The link between the national server of your home country/region and the top-level server is broken") . '"'; ?> + '</td>'; |
|
347 | + result = result + '<td>' + <?php echo '"'._("The link between the national server of your home country/region and the top-level server is broken").'"'; ?> + '</td>'; |
|
348 | 348 | } |
349 | 349 | if (key === 'INFRA_ETLR') { |
350 | - result = result + '<td>' + <?php echo '"' . _("The communication to the top-level server is down") . '"'; ?> + '</td>'; |
|
350 | + result = result + '<td>' + <?php echo '"'._("The communication to the top-level server is down").'"'; ?> + '</td>'; |
|
351 | 351 | } |
352 | 352 | if (key === 'INFRA_NRO_IdP') { |
353 | - result = result + '<td>' + <?php echo '"' . _("The national server in your home country/region is not functioning properly.") . '"'; ?> + '</td>'; |
|
353 | + result = result + '<td>' + <?php echo '"'._("The national server in your home country/region is not functioning properly.").'"'; ?> + '</td>'; |
|
354 | 354 | } |
355 | 355 | if (key === 'INFRA_IdP_RADIUS') { |
356 | - result = result + '<td>' + <?php echo '"' . _("The RADIUS server of your home institution is the source of the problem") . '"'; ?> + '</td>'; |
|
356 | + result = result + '<td>' + <?php echo '"'._("The RADIUS server of your home institution is the source of the problem").'"'; ?> + '</td>'; |
|
357 | 357 | } |
358 | 358 | if (key === 'INFRA_NONEXISTENTREALM') { |
359 | - result = result + '<td>' + <?php echo '"' . _("This realm does not exist") . '"'; ?> + '</td>'; |
|
359 | + result = result + '<td>' + <?php echo '"'._("This realm does not exist").'"'; ?> + '</td>'; |
|
360 | 360 | } |
361 | 361 | result = result + '<td style="padding-left: 5px;">' + (verdict[key] * 100).toFixed(2) + "%</td></tr>"; |
362 | 362 | } |
@@ -468,7 +468,7 @@ discard block |
||
468 | 468 | return false; |
469 | 469 | }); |
470 | 470 | $(document).on('change', '#idp_country' , function() { |
471 | - var comment = <?php echo '"' . _("Fetching institutions list") . '..."'; ?>; |
|
471 | + var comment = <?php echo '"'._("Fetching institutions list").'..."'; ?>; |
|
472 | 472 | var id = $(this).attr('id'); |
473 | 473 | var k = id.indexOf('_'); |
474 | 474 | var type = id.substr(0,k); |
@@ -486,7 +486,7 @@ discard block |
||
486 | 486 | var shtml = ''; |
487 | 487 | var select = ''; |
488 | 488 | if (type !== 'asp') { |
489 | - shtml = <?php echo '"<td>' . _("Select institution:") . '</td><td>"'; ?>; |
|
489 | + shtml = <?php echo '"<td>'._("Select institution:").'</td><td>"'; ?>; |
|
490 | 490 | } |
491 | 491 | select = '<select id="' + type + '_inst" name="' + type + '_inst" style="margin-left:0px; width:400px;"><option value=""></option>'; |
492 | 492 | for (var i in institutions) { |
@@ -507,7 +507,7 @@ discard block |
||
507 | 507 | } else { |
508 | 508 | if (data.status === 0) { |
509 | 509 | inProgress(0); |
510 | - var msg = <?php echo '"' . _("The database does not contain the information needed to help you in realm selection for this country. You have to provide the realm you are interested in.") . '"'; ?>; |
|
510 | + var msg = <?php echo '"'._("The database does not contain the information needed to help you in realm selection for this country. You have to provide the realm you are interested in.").'"'; ?>; |
|
511 | 511 | alert(msg); |
512 | 512 | $('#select_idp_country').show(); |
513 | 513 | $('#select_idp_area').hide(); |
@@ -516,7 +516,7 @@ discard block |
||
516 | 516 | }, |
517 | 517 | error:function() { |
518 | 518 | inProgress(0); |
519 | - var msg = <?php echo '"' . _("Can not search in database. You have to provide the realm you are interested in.") . '"'; ?>; |
|
519 | + var msg = <?php echo '"'._("Can not search in database. You have to provide the realm you are interested in.").'"'; ?>; |
|
520 | 520 | alert(msg); |
521 | 521 | $('#select_idp_country').show(); |
522 | 522 | $('#select_idp_area').hide(); |
@@ -531,7 +531,7 @@ discard block |
||
531 | 531 | return false; |
532 | 532 | }); |
533 | 533 | $(document).on('change', '#sp_country, #asp_country' , function() { |
534 | - var comment = <?php echo '"' . _("Fetching institutions list") . '..."'; ?>; |
|
534 | + var comment = <?php echo '"'._("Fetching institutions list").'..."'; ?>; |
|
535 | 535 | var id = $(this).attr('id'); |
536 | 536 | var k = id.indexOf('_'); |
537 | 537 | var type = id.substr(0,k); |
@@ -549,7 +549,7 @@ discard block |
||
549 | 549 | var shtml = ''; |
550 | 550 | var select = ''; |
551 | 551 | if (type !== 'asp') { |
552 | - shtml = <?php echo '"<td>' . _("Select institution:") . '</td><td>"'; ?>; |
|
552 | + shtml = <?php echo '"<td>'._("Select institution:").'</td><td>"'; ?>; |
|
553 | 553 | } |
554 | 554 | select = '<select id="' + type + '_inst" name="' + type + '_inst" style="margin-left:0px; width:400px;"><option value=""></option>'; |
555 | 555 | for (var i in hotspots) { |
@@ -572,7 +572,7 @@ discard block |
||
572 | 572 | inProgress(0); |
573 | 573 | var select = '<select id="' + type + '_inst" name="' + type + '_inst" style="margin-left:0px; width:400px;"><option value="">'; |
574 | 574 | var shtml = '<td></td><td>'; |
575 | - select = select + <?php echo '"' . _("Other location") . '"'; ?> + '</option></select></td>'; |
|
575 | + select = select + <?php echo '"'._("Other location").'"'; ?> + '</option></select></td>'; |
|
576 | 576 | if (type !== 'asp') { |
577 | 577 | $('#row_' + type + '_institution').html(''); |
578 | 578 | $('#row_' + type + '_institution').append(shtml + select); |
@@ -606,7 +606,7 @@ discard block |
||
606 | 606 | $('#start_test_area').hide(); |
607 | 607 | return false; |
608 | 608 | } |
609 | - var comment = <?php echo '"' . _("Fetching realms list") . '..."'; ?>; |
|
609 | + var comment = <?php echo '"'._("Fetching realms list").'..."'; ?>; |
|
610 | 610 | inProgress(1, comment); |
611 | 611 | $.ajax({ |
612 | 612 | url: "findRealm.php", |
@@ -618,7 +618,7 @@ discard block |
||
618 | 618 | var realms = data.realms; |
619 | 619 | var realmselect = ''; |
620 | 620 | if (realms.length > 1) { |
621 | - realmselect = <?php echo '"<td>' . _("Check realm(s):") . '</td>"'; ?>; |
|
621 | + realmselect = <?php echo '"<td>'._("Check realm(s):").'</td>"'; ?>; |
|
622 | 622 | realmselect = realmselect + '<td>' + "<span style='margin-left: 10px'>"; |
623 | 623 | for (var i in realms) { |
624 | 624 | realmselect = realmselect + '<input type="radio" name="realm" '; |
@@ -630,7 +630,7 @@ discard block |
||
630 | 630 | } |
631 | 631 | realmselect = realmselect + '</span></td>'; |
632 | 632 | } else { |
633 | - realmselect = <?php echo '"<td>' . _("Realm:") . '</td>"'; ?>; |
|
633 | + realmselect = <?php echo '"<td>'._("Realm:").'</td>"'; ?>; |
|
634 | 634 | realmselect = realmselect + '<td>' + "<span style='margin-left: 10px'>"; |
635 | 635 | realmselect = realmselect + realms[0] + '</span>'; |
636 | 636 | realmselect = realmselect + '<input type="hidden" name="realm" value="' + realms[0] + '">'; |
@@ -685,7 +685,7 @@ discard block |
||
685 | 685 | }); |
686 | 686 | t = 1; |
687 | 687 | } |
688 | - var comment = <?php echo '"' . _("Running realm tests") . '..."'; ?>; |
|
688 | + var comment = <?php echo '"'._("Running realm tests").'..."'; ?>; |
|
689 | 689 | inProgress(1, comment); |
690 | 690 | /*waiting(comment);*/ |
691 | 691 | $.ajax({ |
@@ -729,7 +729,7 @@ discard block |
||
729 | 729 | } |
730 | 730 | }); |
731 | 731 | $('#sp_questions > tbody').append('<tr class="error_row"><td>' + |
732 | - <?php echo '"' . _("Realm is not registered with the eduroam database:") . '"'; ?> + |
|
732 | + <?php echo '"'._("Realm is not registered with the eduroam database:").'"'; ?> + |
|
733 | 733 | '</td><td>' + realm + '</td></tr>'); |
734 | 734 | $('#admin_realm').val(''); |
735 | 735 | } |
@@ -753,7 +753,7 @@ discard block |
||
753 | 753 | testSociopath('', answer); |
754 | 754 | }); |
755 | 755 | $('#realmtest').click(function(event){ |
756 | - var comment = <?php echo '"<br><br>' . _("Running realm tests") . '..."'; ?>; |
|
756 | + var comment = <?php echo '"<br><br>'._("Running realm tests").'..."'; ?>; |
|
757 | 757 | inProgress(1, comment); |
758 | 758 | $('#start_test_area').hide(); |
759 | 759 | if ($('#select_sp_area').is(':hidden')) { |
@@ -801,13 +801,13 @@ discard block |
||
801 | 801 | reset_footer(); |
802 | 802 | testSociopath(realm, 0); |
803 | 803 | } else { |
804 | - var title = <?php echo '"' . _("Diagnostics results for selected realms") . '"'; ?>; |
|
805 | - result = '<div class="padding"><h3>' + <?php echo '"' . _("An unknown problem occured") . '"'; ?>; |
|
804 | + var title = <?php echo '"'._("Diagnostics results for selected realms").'"'; ?>; |
|
805 | + result = '<div class="padding"><h3>' + <?php echo '"'._("An unknown problem occured").'"'; ?>; |
|
806 | 806 | result = result + '</h3>' |
807 | 807 | if (r.length == 1) { |
808 | - result = result + <?php echo '"' . _("This test includes checking of the following realm") . '"'; ?>; |
|
808 | + result = result + <?php echo '"'._("This test includes checking of the following realm").'"'; ?>; |
|
809 | 809 | } else { |
810 | - result = result + <?php echo '"' . _("This test includes checking of the following realms") . '"'; ?>; |
|
810 | + result = result + <?php echo '"'._("This test includes checking of the following realms").'"'; ?>; |
|
811 | 811 | } |
812 | 812 | result = result + ': ' |
813 | 813 | for (var i=0; i < r.length; i++) { |
@@ -817,7 +817,7 @@ discard block |
||
817 | 817 | result = result + r[i]; |
818 | 818 | } |
819 | 819 | result = result + '.<br>'; |
820 | - result = result + <?php echo '"' . _("You should report this to") . '"'; ?> + ' <a href="mailto:[email protected]">[email protected]</a>'; |
|
820 | + result = result + <?php echo '"'._("You should report this to").'"'; ?> + ' <a href="mailto:[email protected]">[email protected]</a>'; |
|
821 | 821 | result = result + '</div>'; |
822 | 822 | $('#after_stage_1').hide(); |
823 | 823 | $('#before_stage_1').show(); |
@@ -877,7 +877,7 @@ discard block |
||
877 | 877 | }); |
878 | 878 | }); |
879 | 879 | }); |
880 | - var comment = <?php echo '"' . _("Running realm tests") . '..."'; ?>; |
|
880 | + var comment = <?php echo '"'._("Running realm tests").'..."'; ?>; |
|
881 | 881 | inProgress(1, comment); |
882 | 882 | $.ajax({ |
883 | 883 | url: "findRealm.php", |
@@ -948,29 +948,29 @@ discard block |
||
948 | 948 | success:function(data) { |
949 | 949 | if (data.status === 1) { |
950 | 950 | var result = ''; |
951 | - var title = <?php echo '"' . _("eduroam admin report submission") . '"'; ?>; |
|
951 | + var title = <?php echo '"'._("eduroam admin report submission").'"'; ?>; |
|
952 | 952 | result = '<div class="padding">'; |
953 | 953 | if (type == 'idp_send') { |
954 | - result = result + '<h3>'+ <?php echo '"' . _("SP contacting IdP due to technical problems or abuse") . '"'; ?> + '</h3>'; |
|
954 | + result = result + '<h3>'+ <?php echo '"'._("SP contacting IdP due to technical problems or abuse").'"'; ?> + '</h3>'; |
|
955 | 955 | result = result + '<table>'; |
956 | - result = result + '<tr><td>' + <?php echo '"' . _("Reason") . '"'; ?> + '</td><td>' + data.reason + '</td></tr>'; |
|
957 | - result = result + '<tr><td>' + <?php echo '"' . _("SP email") . '"'; ?> + '</td><td>' + data.email + '</td></tr>'; |
|
958 | - result = result + '<tr><td>' + <?php echo '"' . _("IdP email(s)") . '"'; ?> + '</td><td>' + data.idpcontact + '</td></tr>'; |
|
959 | - result = result + '<tr><td>' + <?php echo '"' . _("Event's timestamp") . '"'; ?> + '</td><td>' + data.timestamp + '</td></tr>'; |
|
960 | - result = result + '<tr><td>' + <?php echo '"' . _("Calling-Station-Id") . '"'; ?> + '</td><td>' + data.mac + '</td></tr>'; |
|
961 | - result = result + '<tr><td>' + <?php echo '"' . _("Additional description") . '"'; ?> +'</td><td>' + data.freetext + '</td></tr>'; |
|
956 | + result = result + '<tr><td>' + <?php echo '"'._("Reason").'"'; ?> + '</td><td>' + data.reason + '</td></tr>'; |
|
957 | + result = result + '<tr><td>' + <?php echo '"'._("SP email").'"'; ?> + '</td><td>' + data.email + '</td></tr>'; |
|
958 | + result = result + '<tr><td>' + <?php echo '"'._("IdP email(s)").'"'; ?> + '</td><td>' + data.idpcontact + '</td></tr>'; |
|
959 | + result = result + '<tr><td>' + <?php echo '"'._("Event's timestamp").'"'; ?> + '</td><td>' + data.timestamp + '</td></tr>'; |
|
960 | + result = result + '<tr><td>' + <?php echo '"'._("Calling-Station-Id").'"'; ?> + '</td><td>' + data.mac + '</td></tr>'; |
|
961 | + result = result + '<tr><td>' + <?php echo '"'._("Additional description").'"'; ?> +'</td><td>' + data.freetext + '</td></tr>'; |
|
962 | 962 | } |
963 | 963 | if (type == 'sp_send') { |
964 | - result = result + '<h3>'+ <?php echo '"' . _("IdP contacting SP due to technical problems or abuse") . '"'; ?> + '</h3>'; |
|
964 | + result = result + '<h3>'+ <?php echo '"'._("IdP contacting SP due to technical problems or abuse").'"'; ?> + '</h3>'; |
|
965 | 965 | result = result + '<table>'; |
966 | - result = result + '<tr><td>' + <?php echo '"' . _("Reason") . '"'; ?> + '</td><td>' + data.reason + '</td></tr>'; |
|
967 | - result = result + '<tr><td>' + <?php echo '"' . _("SP's Operator-Name") . '"'; ?> + '</td><td>' + data.opname + '</td></tr>'; |
|
968 | - result = result + '<tr><td>' + <?php echo '"' . _("User's outer ID") . '"'; ?> + '</td><td>' + data.outerid + '</td></tr>'; |
|
969 | - result = result + '<tr><td>' + <?php echo '"' . _("IdP email") . '"'; ?> + '</td><td>' + data.email + '</td></tr>'; |
|
970 | - result = result + '<tr><td>' + <?php echo '"' . _("Event's timestamp") . '"'; ?> + '</td><td>' + data.timestamp + '</td></tr>'; |
|
971 | - result = result + '<tr><td>' + <?php echo '"' . _("Calling-Station-Id") . '"'; ?> + '</td><td>' + data.mac + '</td></tr>'; |
|
972 | - result = result + '<tr><td>' + <?php echo '"' . _("Additional description") . '"'; ?> +'</td><td>' + data.freetext + '</td></tr>'; |
|
973 | - result = result + '<tr><td>' + <?php echo '"' . _("How to contact the user") . '"'; ?> +'</td><td>' + data.cdetails + '</td></tr>'; |
|
966 | + result = result + '<tr><td>' + <?php echo '"'._("Reason").'"'; ?> + '</td><td>' + data.reason + '</td></tr>'; |
|
967 | + result = result + '<tr><td>' + <?php echo '"'._("SP's Operator-Name").'"'; ?> + '</td><td>' + data.opname + '</td></tr>'; |
|
968 | + result = result + '<tr><td>' + <?php echo '"'._("User's outer ID").'"'; ?> + '</td><td>' + data.outerid + '</td></tr>'; |
|
969 | + result = result + '<tr><td>' + <?php echo '"'._("IdP email").'"'; ?> + '</td><td>' + data.email + '</td></tr>'; |
|
970 | + result = result + '<tr><td>' + <?php echo '"'._("Event's timestamp").'"'; ?> + '</td><td>' + data.timestamp + '</td></tr>'; |
|
971 | + result = result + '<tr><td>' + <?php echo '"'._("Calling-Station-Id").'"'; ?> + '</td><td>' + data.mac + '</td></tr>'; |
|
972 | + result = result + '<tr><td>' + <?php echo '"'._("Additional description").'"'; ?> +'</td><td>' + data.freetext + '</td></tr>'; |
|
973 | + result = result + '<tr><td>' + <?php echo '"'._("How to contact the user").'"'; ?> +'</td><td>' + data.cdetails + '</td></tr>'; |
|
974 | 974 | } |
975 | 975 | result = result + '</div>'; |
976 | 976 | showInfo(result, title); |
@@ -987,7 +987,7 @@ discard block |
||
987 | 987 | if ($('#mac').val().length > 0) { |
988 | 988 | if ($('#mac').val().length != 17) { |
989 | 989 | $('#mac').addClass('error_input'); |
990 | - $('#mac').attr('title', <?php echo '"' . _("MAC address is incomplete") . '"'; ?>); |
|
990 | + $('#mac').attr('title', <?php echo '"'._("MAC address is incomplete").'"'; ?>); |
|
991 | 991 | } else { |
992 | 992 | $('#mac').removeClass('error_input'); |
993 | 993 | $('#mac').attr('title', ''); |
@@ -996,7 +996,7 @@ discard block |
||
996 | 996 | if ($(this).attr('id') == 'email' && $(this).val().length > 0) { |
997 | 997 | if (!isEmail($(this).val())) { |
998 | 998 | $('#email').addClass('error_input'); |
999 | - $('#email').attr('title', <?php echo '"' . _("Wrong format of email") . '"'; ?>); |
|
999 | + $('#email').attr('title', <?php echo '"'._("Wrong format of email").'"'; ?>); |
|
1000 | 1000 | } else { |
1001 | 1001 | $('#email').removeClass('error_input'); |
1002 | 1002 | $('#email').attr('title', ''); |
@@ -1005,7 +1005,7 @@ discard block |
||
1005 | 1005 | if ($(this).attr('id') == 'outer_id' && $(this).val().length > 0) { |
1006 | 1006 | if (!isEmail($(this).val(), true)) { |
1007 | 1007 | $('#outer_id').addClass('error_input'); |
1008 | - $('#outer_id').attr('title', <?php echo '"' . _("Wrong format of outer ID") . '"'; ?>); |
|
1008 | + $('#outer_id').attr('title', <?php echo '"'._("Wrong format of outer ID").'"'; ?>); |
|
1009 | 1009 | } else { |
1010 | 1010 | $('#outer_id').removeClass('error_input'); |
1011 | 1011 | $('#outer_id').attr('title', ''); |
@@ -1014,7 +1014,7 @@ discard block |
||
1014 | 1014 | if ($(this).attr('id') == 'opname' && $('#opname').val().length > 0) { |
1015 | 1015 | if (!isOperatorName($(this).val())) { |
1016 | 1016 | $('#opname').addClass('error_input'); |
1017 | - $('#opname').attr('title', <?php echo '"' . _("Wrong string given as OperatorName") . '"'; ?>); |
|
1017 | + $('#opname').attr('title', <?php echo '"'._("Wrong string given as OperatorName").'"'; ?>); |
|
1018 | 1018 | $('#spmanually').show(); |
1019 | 1019 | } else { |
1020 | 1020 | $('#opname').removeClass('error_input'); |
@@ -49,7 +49,7 @@ discard block |
||
49 | 49 | const DOWNLOAD_REDIRECT_CONTINUE = 1054; |
50 | 50 | const SB_GO_AWAY = 1060; |
51 | 51 | const SB_FRONTPAGE_BIGDOWNLOADBUTTON = 1061; |
52 | -const SB_FRONTPAGE_ROLLER_CUSTOMBUILT= 1062; |
|
52 | +const SB_FRONTPAGE_ROLLER_CUSTOMBUILT = 1062; |
|
53 | 53 | |
54 | 54 | |
55 | 55 | /** |
@@ -88,7 +88,7 @@ discard block |
||
88 | 88 | $this->templates[WELCOME_ABOARD_BACKTODOWNLOADS] = _("Back to downloads"); |
89 | 89 | $this->templates[EDUROAM_WELCOME_ADVERTISING] = sprintf(_("we would like to warmly welcome you among the several million users of %s! From now on, you will be able to use internet access resources on thousands of universities, research centres and other places all over the globe. All of this completely free of charge!"), CONFIG_CONFASSISTANT['CONSORTIUM']['display_name']); |
90 | 90 | $this->templates[HEADING_TOPLEVEL_GREET] = sprintf(_("Welcome to %s"), CONFIG['APPEARANCE']['productname']); |
91 | - $this->templates[HEADING_TOPLEVEL_PURPOSE] = sprintf(_("Connect your device to %s"),CONFIG_CONFASSISTANT['CONSORTIUM']['display_name']); |
|
91 | + $this->templates[HEADING_TOPLEVEL_PURPOSE] = sprintf(_("Connect your device to %s"), CONFIG_CONFASSISTANT['CONSORTIUM']['display_name']); |
|
92 | 92 | $this->templates[FRONTPAGE_ROLLER_EASY] = sprintf(_("%s installation made easy:"), CONFIG_CONFASSISTANT['CONSORTIUM']['display_name']); |
93 | 93 | $this->templates[FRONTPAGE_ROLLER_CUSTOMBUILT] = _("Custom built for your organisation"); |
94 | 94 | $this->templates[FRONTPAGE_BIGDOWNLOADBUTTON] = sprintf(_("Click here to download your %s installer"), CONFIG_CONFASSISTANT['CONSORTIUM']['display_name'], CONFIG_CONFASSISTANT['CONSORTIUM']['display_name']); |