@@ -29,7 +29,7 @@ discard block |
||
29 | 29 | |
30 | 30 | use Exception; |
31 | 31 | |
32 | -require_once dirname(dirname(dirname(dirname(__FILE__)))) . "/config/_config.php"; |
|
32 | +require_once dirname(dirname(dirname(dirname(__FILE__))))."/config/_config.php"; |
|
33 | 33 | |
34 | 34 | /** |
35 | 35 | * This class defines the various actions doable with the admin API, the |
@@ -244,7 +244,7 @@ discard block |
||
244 | 244 | const ACTIONS = [ |
245 | 245 | // Inst-level actions. |
246 | 246 | API::ACTION_NEWINST_BY_REF => [ |
247 | - "REQ" => [API::AUXATTRIB_EXTERNALID,], |
|
247 | + "REQ" => [API::AUXATTRIB_EXTERNALID, ], |
|
248 | 248 | "OPT" => [ |
249 | 249 | 'general:geo_coordinates', |
250 | 250 | 'general:logo_file', |
@@ -555,8 +555,8 @@ discard block |
||
555 | 555 | |
556 | 556 | case \core\Options::TYPECODE_COORDINATES: |
557 | 557 | $extension = \core\Options::TYPECODE_TEXT; |
558 | - $coercedInline["option"][$basename] = $oneAttrib['NAME'] . "#"; |
|
559 | - $coercedInline["value"][$basename . "-" . $extension] = $oneAttrib['VALUE']; |
|
558 | + $coercedInline["option"][$basename] = $oneAttrib['NAME']."#"; |
|
559 | + $coercedInline["value"][$basename."-".$extension] = $oneAttrib['VALUE']; |
|
560 | 560 | break; |
561 | 561 | case \core\Options::TYPECODE_TEXT: |
562 | 562 | // Fall-through: they all get the same treatment. |
@@ -566,18 +566,18 @@ discard block |
||
566 | 566 | // Fall-through: they all get the same treatment. |
567 | 567 | case \core\Options::TYPECODE_INTEGER: |
568 | 568 | $extension = $optionInfo['type']; |
569 | - $coercedInline["option"][$basename] = $oneAttrib['NAME'] . "#"; |
|
570 | - $coercedInline["value"][$basename . "-" . $extension] = $oneAttrib['VALUE']; |
|
569 | + $coercedInline["option"][$basename] = $oneAttrib['NAME']."#"; |
|
570 | + $coercedInline["value"][$basename."-".$extension] = $oneAttrib['VALUE']; |
|
571 | 571 | if ($optionInfo['flag'] == "ML") { |
572 | - $coercedInline["value"][$basename . "-lang"] = $oneAttrib['LANG']; |
|
572 | + $coercedInline["value"][$basename."-lang"] = $oneAttrib['LANG']; |
|
573 | 573 | } |
574 | 574 | break; |
575 | 575 | case \core\Options::TYPECODE_FILE: |
576 | 576 | // Binary data is expected in base64 encoding. This is true also for PEM files! |
577 | 577 | $extension = $optionInfo['type']; |
578 | - $coercedInline["option"][$basename] = $oneAttrib['NAME'] . "#"; |
|
579 | - file_put_contents($dir['dir'] . "/" . $basename . "-" . $extension, base64_decode($oneAttrib['VALUE'])); |
|
580 | - $coercedFile["value"]['tmp_name'][$basename . "-" . $extension] = $dir['dir'] . "/" . $basename . "-" . $extension; |
|
578 | + $coercedInline["option"][$basename] = $oneAttrib['NAME']."#"; |
|
579 | + file_put_contents($dir['dir']."/".$basename."-".$extension, base64_decode($oneAttrib['VALUE'])); |
|
580 | + $coercedFile["value"]['tmp_name'][$basename."-".$extension] = $dir['dir']."/".$basename."-".$extension; |
|
581 | 581 | break; |
582 | 582 | default: |
583 | 583 | throw new Exception("We don't seem to know this type code!"); |
@@ -606,7 +606,7 @@ discard block |
||
606 | 606 | public function returnSuccess($details) { |
607 | 607 | $output = json_encode(["result" => "SUCCESS", "details" => $details], JSON_PRETTY_PRINT); |
608 | 608 | if ($output === FALSE) { |
609 | - $this->returnError(API::ERROR_INTERNAL_ERROR, "Unable to JSON encode return data: ". json_last_error(). " - ". json_last_error_msg()); |
|
609 | + $this->returnError(API::ERROR_INTERNAL_ERROR, "Unable to JSON encode return data: ".json_last_error()." - ".json_last_error_msg()); |
|
610 | 610 | } |
611 | 611 | else { |
612 | 612 | echo $output; |
@@ -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(__DIR__)) . '/config/_config.php'; |
|
22 | +require_once dirname(dirname(__DIR__)).'/config/_config.php'; |
|
23 | 23 | |
24 | 24 | $uiElements = new web\lib\admin\UIElements(); |
25 | 25 | |
@@ -75,7 +75,7 @@ discard block |
||
75 | 75 | // filesystem cleanup |
76 | 76 | case web\lib\common\FormElements::BUTTON_DELETE: |
77 | 77 | $i = web\lib\admin\Maintenance::deleteObsoleteTempDirs(); |
78 | - echo "<div class='ca-summary'><table>" . $uiElements->boxRemark(sprintf("Deleted %d cache directories.", $i), "Cache deleted") . "</table></div>"; |
|
78 | + echo "<div class='ca-summary'><table>".$uiElements->boxRemark(sprintf("Deleted %d cache directories.", $i), "Cache deleted")."</table></div>"; |
|
79 | 79 | break; |
80 | 80 | default: |
81 | 81 | break; |
@@ -141,7 +141,7 @@ discard block |
||
141 | 141 | $admin_query = $dbHandle->exec("SELECT SUM(downloads_admin) AS admin, SUM(downloads_user) AS user, SUM(downloads_silverbullet) as silverbullet FROM downloads WHERE device_id = '$index'"); |
142 | 142 | // SELECT -> mysqli_result, not boolean |
143 | 143 | while ($a = mysqli_fetch_object(/** @scrutinizer ignore-type */ $admin_query)) { |
144 | - echo "<td>" . $device_array['display'] . "</td><td>" . $a->admin . "</td><td>" . $a->user . "</td><td>" . $a->silverbullet . "</td><td>" . sprintf("%s", $a->user + $a->silverbullet) . "</td>"; |
|
144 | + echo "<td>".$device_array['display']."</td><td>".$a->admin."</td><td>".$a->user."</td><td>".$a->silverbullet."</td><td>".sprintf("%s", $a->user + $a->silverbullet)."</td>"; |
|
145 | 145 | $gross_admin = $gross_admin + $a->admin; |
146 | 146 | $gross_user = $gross_user + $a->user; |
147 | 147 | $gross_silverbullet = $gross_silverbullet + $a->silverbullet; |
@@ -93,15 +93,15 @@ discard block |
||
93 | 93 | <key>PayloadDescription</key> |
94 | 94 | <string>$tagline</string> |
95 | 95 | <key>PayloadDisplayName</key> |
96 | - <string>" . CONFIG_CONFASSISTANT['CONSORTIUM']['display_name'] . "</string> |
|
96 | + <string>".CONFIG_CONFASSISTANT['CONSORTIUM']['display_name']."</string> |
|
97 | 97 | <key>PayloadIdentifier</key> |
98 | - <string>" . self::$iPhonePayloadPrefix . ".$this->massagedConsortium.$this->massagedCountry.$this->massagedInst.$this->massagedProfile.$this->lang</string> |
|
98 | + <string>" . self::$iPhonePayloadPrefix.".$this->massagedConsortium.$this->massagedCountry.$this->massagedInst.$this->massagedProfile.$this->lang</string> |
|
99 | 99 | <key>PayloadOrganization</key> |
100 | - <string>" . htmlspecialchars(iconv("UTF-8", "UTF-8//IGNORE", $this->attributes['general:instname'][0]), ENT_XML1, 'UTF-8') . ( $this->attributes['internal:profile_count'][0] > 1 ? " (" . htmlspecialchars(iconv("UTF-8", "UTF-8//IGNORE", $this->attributes['profile:name'][0]), ENT_XML1, 'UTF-8') . ")" : "") . "</string> |
|
100 | + <string>".htmlspecialchars(iconv("UTF-8", "UTF-8//IGNORE", $this->attributes['general:instname'][0]), ENT_XML1, 'UTF-8').($this->attributes['internal:profile_count'][0] > 1 ? " (".htmlspecialchars(iconv("UTF-8", "UTF-8//IGNORE", $this->attributes['profile:name'][0]), ENT_XML1, 'UTF-8').")" : "")."</string> |
|
101 | 101 | <key>PayloadType</key> |
102 | 102 | <string>Configuration</string> |
103 | 103 | <key>PayloadUUID</key> |
104 | - <string>" . \core\common\Entity::uuid('', self::$iPhonePayloadPrefix . $this->massagedConsortium . $this->massagedCountry . $this->massagedInst . $this->massagedProfile) . "</string> |
|
104 | + <string>" . \core\common\Entity::uuid('', self::$iPhonePayloadPrefix.$this->massagedConsortium.$this->massagedCountry.$this->massagedInst.$this->massagedProfile)."</string> |
|
105 | 105 | <key>PayloadVersion</key> |
106 | 106 | <integer>1</integer>"; |
107 | 107 | \core\common\Entity::outOfThePotatoes(); |
@@ -132,15 +132,15 @@ discard block |
||
132 | 132 | protected function consentBlock() { |
133 | 133 | \core\common\Entity::intoThePotatoes(); |
134 | 134 | if (isset($this->attributes['support:info_file'])) { |
135 | - return MobileconfigSuperclass::BUFFER_CONSENT_PRE . htmlspecialchars(iconv("UTF-8", "UTF-8//TRANSLIT", $this->attributes['support:info_file'][0]), ENT_XML1, 'UTF-8') . MobileconfigSuperclass::BUFFER_CONSENT_POST; |
|
135 | + return MobileconfigSuperclass::BUFFER_CONSENT_PRE.htmlspecialchars(iconv("UTF-8", "UTF-8//TRANSLIT", $this->attributes['support:info_file'][0]), ENT_XML1, 'UTF-8').MobileconfigSuperclass::BUFFER_CONSENT_POST; |
|
136 | 136 | } |
137 | 137 | if ($this->attributes['internal:verify_userinput_suffix'][0] != 0) { |
138 | 138 | if (strlen($this->attributes['internal:realm'][0]) > 0) { |
139 | - $retval =MobileconfigSuperclass::BUFFER_CONSENT_PRE . sprintf(_("Important Notice: your username must end with @%s!"), $this->attributes['internal:realm'][0]) . MobileconfigSuperclass::BUFFER_CONSENT_POST; |
|
139 | + $retval = MobileconfigSuperclass::BUFFER_CONSENT_PRE.sprintf(_("Important Notice: your username must end with @%s!"), $this->attributes['internal:realm'][0]).MobileconfigSuperclass::BUFFER_CONSENT_POST; |
|
140 | 140 | \core\common\Entity::outOfThePotatoes(); |
141 | 141 | return $retval; |
142 | 142 | } |
143 | - $retval = MobileconfigSuperclass::BUFFER_CONSENT_PRE . _("Important Notice: your username MUST be in the form of xxx@yyy where the yyy is a common suffix identifying your Identity Provider. Please find out what to use there and enter the username in the correct format.") . MobileconfigSuperclass::BUFFER_CONSENT_POST; |
|
143 | + $retval = MobileconfigSuperclass::BUFFER_CONSENT_PRE._("Important Notice: your username MUST be in the form of xxx@yyy where the yyy is a common suffix identifying your Identity Provider. Please find out what to use there and enter the username in the correct format.").MobileconfigSuperclass::BUFFER_CONSENT_POST; |
|
144 | 144 | \core\common\Entity::outOfThePotatoes(); |
145 | 145 | return $retval; |
146 | 146 | } |
@@ -163,7 +163,7 @@ discard block |
||
163 | 163 | // also escape htmlspecialchars |
164 | 164 | // not all names and profiles have a name, so be prepared |
165 | 165 | |
166 | - $this->loggerInstance->debug(5, "List of available attributes: " . var_export($this->attributes, TRUE)); |
|
166 | + $this->loggerInstance->debug(5, "List of available attributes: ".var_export($this->attributes, TRUE)); |
|
167 | 167 | |
168 | 168 | $this->instName = $this->attributes['general:instname'][0] ?? _("Unnamed Organisation"); |
169 | 169 | $this->profileName = $this->attributes['profile:name'][0] ?? _("Unnamed Profile"); |
@@ -205,7 +205,7 @@ discard block |
||
205 | 205 | |
206 | 206 | file_put_contents('installer_profile', $outputXml); |
207 | 207 | |
208 | - $fileName = $this->installerBasename . '.mobileconfig'; |
|
208 | + $fileName = $this->installerBasename.'.mobileconfig'; |
|
209 | 209 | |
210 | 210 | if (!$this->sign) { |
211 | 211 | rename("installer_profile", $fileName); |
@@ -213,7 +213,7 @@ discard block |
||
213 | 213 | return $fileName; |
214 | 214 | } |
215 | 215 | // still here? Then we are signing. |
216 | - $signing = system($this->sign . " installer_profile '$fileName' > /dev/null"); |
|
216 | + $signing = system($this->sign." installer_profile '$fileName' > /dev/null"); |
|
217 | 217 | if ($signing === FALSE) { |
218 | 218 | $this->loggerInstance->debug(2, "Signing the mobileconfig installer $fileName FAILED!\n"); |
219 | 219 | } |
@@ -231,19 +231,19 @@ discard block |
||
231 | 231 | \core\common\Entity::intoThePotatoes(); |
232 | 232 | $ssidCount = count($this->attributes['internal:SSID']); |
233 | 233 | $certCount = count($this->attributes['internal:CAs'][0]); |
234 | - $out = "<p>" . _("For best results, please use the built-in browser (Safari) to open the configuration file.") . "</p>"; |
|
234 | + $out = "<p>"._("For best results, please use the built-in browser (Safari) to open the configuration file.")."</p>"; |
|
235 | 235 | $out .= "<p>"; |
236 | 236 | $out .= _("The profile will install itself after you click (or tap) the button. You will be asked for confirmation/input at several points:"); |
237 | 237 | $out .= "<ul>"; |
238 | - $out .= "<li>" . _("to install the profile") . "</li>"; |
|
239 | - $out .= "<li>" . ngettext("to accept the server certificate authority", "to accept the server certificate authorities", $certCount); |
|
238 | + $out .= "<li>"._("to install the profile")."</li>"; |
|
239 | + $out .= "<li>".ngettext("to accept the server certificate authority", "to accept the server certificate authorities", $certCount); |
|
240 | 240 | if ($certCount > 1) { |
241 | - $out .= " " . sprintf(_("(%d times)"), $certCount); |
|
241 | + $out .= " ".sprintf(_("(%d times)"), $certCount); |
|
242 | 242 | } |
243 | 243 | $out .= "</li>"; |
244 | - $out .= "<li>" . _("to enter the username and password you have been given by your organisation"); |
|
244 | + $out .= "<li>"._("to enter the username and password you have been given by your organisation"); |
|
245 | 245 | if ($ssidCount > 1) { |
246 | - $out .= " " . sprintf(_("(%d times each, because %s is installed for %d SSIDs)"), $ssidCount, CONFIG_CONFASSISTANT['CONSORTIUM']['display_name'], $ssidCount); |
|
246 | + $out .= " ".sprintf(_("(%d times each, because %s is installed for %d SSIDs)"), $ssidCount, CONFIG_CONFASSISTANT['CONSORTIUM']['display_name'], $ssidCount); |
|
247 | 247 | } |
248 | 248 | $out .= "</li>"; |
249 | 249 | $out .= "</ul>"; |
@@ -280,7 +280,7 @@ discard block |
||
280 | 280 | <key>ServiceProviderRoamingEnabled</key> |
281 | 281 | <true/> |
282 | 282 | <key>DisplayedOperatorName</key> |
283 | - <string>" . CONFIG_CONFASSISTANT['CONSORTIUM']['display_name'] . " via Passpoint</string>"; |
|
283 | + <string>" . CONFIG_CONFASSISTANT['CONSORTIUM']['display_name']." via Passpoint</string>"; |
|
284 | 284 | // if we don't know the realm, omit the entire DomainName key |
285 | 285 | if (isset($this->attributes['internal:realm'])) { |
286 | 286 | $retval .= "<key>DomainName</key> |
@@ -332,7 +332,7 @@ discard block |
||
332 | 332 | <dict> |
333 | 333 | <key>AcceptEAPTypes</key> |
334 | 334 | <array> |
335 | - <integer>" . $eapType['OUTER'] . "</integer> |
|
335 | + <integer>" . $eapType['OUTER']."</integer> |
|
336 | 336 | </array> |
337 | 337 | <key>EAPFASTProvisionPAC</key> |
338 | 338 | <true /> |
@@ -345,7 +345,7 @@ discard block |
||
345 | 345 | "; |
346 | 346 | if ($realm !== NULL) { |
347 | 347 | $retval .= "<key>OuterIdentity</key> |
348 | - <string>" . htmlspecialchars($realm, ENT_XML1, 'UTF-8') . "</string> |
|
348 | + <string>" . htmlspecialchars($realm, ENT_XML1, 'UTF-8')."</string> |
|
349 | 349 | "; |
350 | 350 | } |
351 | 351 | $retval .= "<key>PayloadCertificateAnchorUUID</key> |
@@ -369,11 +369,11 @@ discard block |
||
369 | 369 | $retval .= " |
370 | 370 | </array>"; |
371 | 371 | if ($eapType['INNER'] == \core\common\EAP::NE_SILVERBULLET) { |
372 | - $retval .= "<key>UserName</key><string>" . $this->clientCert["certObject"]->username . "</string>"; |
|
372 | + $retval .= "<key>UserName</key><string>".$this->clientCert["certObject"]->username."</string>"; |
|
373 | 373 | } |
374 | 374 | $retval .= " |
375 | 375 | <key>TTLSInnerAuthentication</key> |
376 | - <string>" . ($eapType['INNER'] == \core\common\EAP::NONE ? "PAP" : "MSCHAPv2") . "</string> |
|
376 | + <string>" . ($eapType['INNER'] == \core\common\EAP::NONE ? "PAP" : "MSCHAPv2")."</string> |
|
377 | 377 | </dict>"; |
378 | 378 | return $retval; |
379 | 379 | } |
@@ -392,9 +392,9 @@ discard block |
||
392 | 392 | // characters are still reversed, invert on use! |
393 | 393 | $buffer .= "<string>Manual</string> |
394 | 394 | <key>ProxyServer</key> |
395 | - <string>" . strrev($serverAndPort[1]) . "</string> |
|
395 | + <string>" . strrev($serverAndPort[1])."</string> |
|
396 | 396 | <key>ProxyServerPort</key> |
397 | - <integer>" . strrev($serverAndPort[0]) . "</integer> |
|
397 | + <integer>" . strrev($serverAndPort[0])."</integer> |
|
398 | 398 | <key>ProxyPACFallbackAllowed</key> |
399 | 399 | <false/>"; |
400 | 400 | } else { |
@@ -422,7 +422,7 @@ discard block |
||
422 | 422 | throw new Exception("SSID must be a string!"); |
423 | 423 | } |
424 | 424 | $escapedSSID = htmlspecialchars($toBeConfigured, ENT_XML1, 'UTF-8'); |
425 | - $payloadIdentifier = "wifi." . $this->serial; |
|
425 | + $payloadIdentifier = "wifi.".$this->serial; |
|
426 | 426 | $payloadShortName = sprintf(_("SSID %s"), $escapedSSID); |
427 | 427 | $payloadName = sprintf(_("%s configuration for network name %s"), CONFIG_CONFASSISTANT['CONSORTIUM']['display_name'], $escapedSSID); |
428 | 428 | $encryptionTypeString = "WPA"; |
@@ -470,11 +470,11 @@ discard block |
||
470 | 470 | <key>PayloadDisplayName</key> |
471 | 471 | <string>$payloadShortName</string> |
472 | 472 | <key>PayloadIdentifier</key> |
473 | - <string>" . self::$iPhonePayloadPrefix . ".$this->massagedConsortium.$this->massagedCountry.$this->massagedInst.$this->massagedProfile.$this->lang.$payloadIdentifier</string> |
|
473 | + <string>".self::$iPhonePayloadPrefix.".$this->massagedConsortium.$this->massagedCountry.$this->massagedInst.$this->massagedProfile.$this->lang.$payloadIdentifier</string> |
|
474 | 474 | <key>PayloadOrganization</key> |
475 | - <string>" . $this->massagedConsortium . ".1x-config.org</string> |
|
475 | + <string>".$this->massagedConsortium.".1x-config.org</string> |
|
476 | 476 | <key>PayloadType</key> |
477 | - <string>com.apple." . ($blocktype == MobileconfigSuperclass::NETWORK_BLOCK_TYPE_WIRED ? "firstactiveethernet" : "wifi") . ".managed</string>"; |
|
477 | + <string>com.apple." . ($blocktype == MobileconfigSuperclass::NETWORK_BLOCK_TYPE_WIRED ? "firstactiveethernet" : "wifi").".managed</string>"; |
|
478 | 478 | $retval .= $this->proxySettings(); |
479 | 479 | $retval .= $setupModesString; |
480 | 480 | if ($eapType['INNER'] == \core\common\EAP::NE_SILVERBULLET) { |
@@ -486,7 +486,7 @@ discard block |
||
486 | 486 | } |
487 | 487 | $retval .= " |
488 | 488 | <key>PayloadUUID</key> |
489 | - <string>" . \core\common\Entity::uuid() . "</string> |
|
489 | + <string>" . \core\common\Entity::uuid()."</string> |
|
490 | 490 | <key>PayloadVersion</key> |
491 | 491 | <integer>1</integer> |
492 | 492 | $wifiNetworkIdentification</dict>"; |
@@ -515,15 +515,15 @@ discard block |
||
515 | 515 | <key>IsHotspot</key> |
516 | 516 | <false/> |
517 | 517 | <key>PayloadDescription</key> |
518 | - <string>" . sprintf(_("This SSID should not be used after bootstrapping %s"), CONFIG_CONFASSISTANT['CONSORTIUM']['display_name']) . "</string> |
|
518 | + <string>" . sprintf(_("This SSID should not be used after bootstrapping %s"), CONFIG_CONFASSISTANT['CONSORTIUM']['display_name'])."</string> |
|
519 | 519 | <key>PayloadDisplayName</key> |
520 | - <string>" . _("Disabled WiFi network") . "</string> |
|
520 | + <string>" . _("Disabled WiFi network")."</string> |
|
521 | 521 | <key>PayloadIdentifier</key> |
522 | - <string>" . self::$iPhonePayloadPrefix . ".$this->massagedConsortium.$this->massagedCountry.$this->massagedInst.$this->massagedProfile.$this->lang.wifi.disabled.$this->removeSerial</string> |
|
522 | + <string>" . self::$iPhonePayloadPrefix.".$this->massagedConsortium.$this->massagedCountry.$this->massagedInst.$this->massagedProfile.$this->lang.wifi.disabled.$this->removeSerial</string> |
|
523 | 523 | <key>PayloadType</key> |
524 | 524 | <string>com.apple.wifi.managed</string> |
525 | 525 | <key>PayloadUUID</key> |
526 | - <string>" . \core\common\Entity::uuid() . "</string> |
|
526 | + <string>".\core\common\Entity::uuid()."</string> |
|
527 | 527 | <key>PayloadVersion</key> |
528 | 528 | <real>1</real>"; |
529 | 529 | $retval .= $this->proxySettings(); |
@@ -597,7 +597,7 @@ discard block |
||
597 | 597 | $mimeBlob = base64_encode($binaryBlob); |
598 | 598 | $mimeFormatted = chunk_split($mimeBlob, 52, "\r\n"); |
599 | 599 | $payloadUUID = \core\common\Entity::uuid('', $mimeBlob); |
600 | - $retArray = ["block" => "<dict>" . |
|
600 | + $retArray = ["block" => "<dict>". |
|
601 | 601 | // we don't include the import password. It's displayed on screen, and should be input by the user. |
602 | 602 | // <key>Password</key> |
603 | 603 | // <string>" . $this->clientCert['password'] . "</string> |
@@ -610,7 +610,7 @@ discard block |
||
610 | 610 | <key>PayloadDescription</key> |
611 | 611 | <string>MIME Base-64 encoded PKCS#12 Client Certificate</string> |
612 | 612 | <key>PayloadDisplayName</key> |
613 | - <string>" . _("eduroam user certificate") . "</string> |
|
613 | + <string>"._("eduroam user certificate")."</string> |
|
614 | 614 | <key>PayloadIdentifier</key> |
615 | 615 | <string>com.apple.security.pkcs12.$payloadUUID</string> |
616 | 616 | <key>PayloadType</key> |
@@ -620,7 +620,7 @@ discard block |
||
620 | 620 | <key>PayloadVersion</key> |
621 | 621 | <integer>1</integer> |
622 | 622 | </dict>", |
623 | - "UUID" => $payloadUUID,]; |
|
623 | + "UUID" => $payloadUUID, ]; |
|
624 | 624 | \core\common\Entity::outOfThePotatoes(); |
625 | 625 | return $retArray; |
626 | 626 | } |
@@ -638,7 +638,7 @@ discard block |
||
638 | 638 | } |
639 | 639 | $expiryTime = new \DateTime($this->clientCert['certObject']->expiry); |
640 | 640 | return "<key>RemovalDate</key> |
641 | - <date>" . $expiryTime->format("Y-m-d") . "T" . $expiryTime->format("H:i:s") . "Z</date>"; |
|
641 | + <date>" . $expiryTime->format("Y-m-d")."T".$expiryTime->format("H:i:s")."Z</date>"; |
|
642 | 642 | } |
643 | 643 | |
644 | 644 | private $CAsAccountedFor = []; |
@@ -661,21 +661,21 @@ discard block |
||
661 | 661 | $stream = " |
662 | 662 | <dict> |
663 | 663 | <key>PayloadCertificateFileName</key> |
664 | - <string>" . $ca['uuid'] . ".der</string> |
|
664 | + <string>" . $ca['uuid'].".der</string> |
|
665 | 665 | <key>PayloadContent</key> |
666 | 666 | <data> |
667 | -" . $trimmedPem . "</data> |
|
667 | +" . $trimmedPem."</data> |
|
668 | 668 | <key>PayloadDescription</key> |
669 | - <string>" . sprintf(_("The %s Certification Authority"), \core\common\Entity::$nomenclature_inst) . "</string> |
|
669 | + <string>" . sprintf(_("The %s Certification Authority"), \core\common\Entity::$nomenclature_inst)."</string> |
|
670 | 670 | <key>PayloadDisplayName</key> |
671 | - <string>" . sprintf(_("%s CA"), \core\common\Entity::$nomenclature_inst) . "</string> |
|
671 | + <string>" . sprintf(_("%s CA"), \core\common\Entity::$nomenclature_inst)."</string> |
|
672 | 672 | <key>PayloadIdentifier</key> |
673 | - <string>" . self::$iPhonePayloadPrefix . ".$this->massagedConsortium.$this->massagedCountry.$this->massagedInst.$this->massagedProfile.credential.$this->caSerial</string> |
|
673 | + <string>" . self::$iPhonePayloadPrefix.".$this->massagedConsortium.$this->massagedCountry.$this->massagedInst.$this->massagedProfile.credential.$this->caSerial</string> |
|
674 | 674 | <key>PayloadOrganization</key> |
675 | - <string>" . $this->massagedConsortium . ".1x-config.org</string> |
|
675 | + <string>".$this->massagedConsortium.".1x-config.org</string> |
|
676 | 676 | <key>PayloadType</key> |
677 | 677 | <string>com.apple.security.root</string> |
678 | - <key>PayloadUUID</key><string>" . $ca['uuid'] . "</string> |
|
678 | + <key>PayloadUUID</key><string>" . $ca['uuid']."</string> |
|
679 | 679 | <key>PayloadVersion</key> |
680 | 680 | <integer>1</integer> |
681 | 681 | </dict>"; |
@@ -103,7 +103,7 @@ discard block |
||
103 | 103 | |
104 | 104 | $this->loggerInstance->debug(5, "translateFile($source_name, $output_name, $encoding)\n"); |
105 | 105 | ob_start(); |
106 | - $this->loggerInstance->debug(5, $this->module_path . '/Files/' . $this->device_id . '/' . $source_name . "\n"); |
|
106 | + $this->loggerInstance->debug(5, $this->module_path.'/Files/'.$this->device_id.'/'.$source_name."\n"); |
|
107 | 107 | $source = $this->findSourceFile($source_name); |
108 | 108 | |
109 | 109 | if ($source !== FALSE) { // if there is no file found, don't attempt to include an uninitialised variable |
@@ -111,7 +111,7 @@ discard block |
||
111 | 111 | } |
112 | 112 | $output = ob_get_clean(); |
113 | 113 | if ($encoding) { |
114 | - $outputClean = iconv('UTF-8', $encoding . '//TRANSLIT', $output); |
|
114 | + $outputClean = iconv('UTF-8', $encoding.'//TRANSLIT', $output); |
|
115 | 115 | if ($outputClean) { |
116 | 116 | $output = $outputClean; |
117 | 117 | } |
@@ -154,7 +154,7 @@ discard block |
||
154 | 154 | $encoding = 0; |
155 | 155 | } |
156 | 156 | if ($encoding) { |
157 | - $output_c = iconv('UTF-8', $encoding . '//TRANSLIT', $source_string); |
|
157 | + $output_c = iconv('UTF-8', $encoding.'//TRANSLIT', $source_string); |
|
158 | 158 | } else { |
159 | 159 | $output_c = $source_string; |
160 | 160 | } |
@@ -236,7 +236,7 @@ discard block |
||
236 | 236 | if (isset($this->LANGS[$this->languageInstance->getLang()])) { |
237 | 237 | $language = $this->LANGS[$this->languageInstance->getLang()]; |
238 | 238 | $this->lang = $language['nsis']; |
239 | - $this->codePage = 'cp' . $language['cp']; |
|
239 | + $this->codePage = 'cp'.$language['cp']; |
|
240 | 240 | } else { |
241 | 241 | $this->lang = 'English'; |
242 | 242 | $this->codePage = 'cp1252'; |
@@ -257,8 +257,8 @@ discard block |
||
257 | 257 | $out .= sprintf(_("%s installer will be in the form of an EXE file. It will configure %s on your device, by creating wireless network profiles.<p>When you click the download button, the installer will be saved by your browser. Copy it to the machine you want to configure and execute."), CONFIG_CONFASSISTANT['CONSORTIUM']['display_name'], CONFIG_CONFASSISTANT['CONSORTIUM']['display_name']); |
258 | 258 | $out .= "<p>"; |
259 | 259 | if ($ssidCount > $configCount) { |
260 | - $out .= sprintf(ngettext("In addition to <strong>%s</strong> the installer will also configure access to:", "In addition to <strong>%s</strong> the installer will also configure access to the following networks:", $ssidCount - $configCount), implode(', ', $configList)) . " "; |
|
261 | - $out .= '<strong>' . join('</strong>, <strong>', array_diff(array_keys($ssids), $configList)) . '</strong>'; |
|
260 | + $out .= sprintf(ngettext("In addition to <strong>%s</strong> the installer will also configure access to:", "In addition to <strong>%s</strong> the installer will also configure access to the following networks:", $ssidCount - $configCount), implode(', ', $configList))." "; |
|
261 | + $out .= '<strong>'.join('</strong>, <strong>', array_diff(array_keys($ssids), $configList)).'</strong>'; |
|
262 | 262 | $out .= "<p>"; |
263 | 263 | } |
264 | 264 | // TODO - change this below |
@@ -274,8 +274,8 @@ discard block |
||
274 | 274 | $out .= _("When you are connecting to the network for the first time, Windows will pop up a login box, where you should enter your user name and password. This information will be saved so that you will reconnect to the network automatically each time you are in the range."); |
275 | 275 | if ($ssidCount > 1) { |
276 | 276 | $out .= "<p>"; |
277 | - $out .= _("You will be required to enter the same credentials for each of the configured networks:") . " "; |
|
278 | - $out .= '<strong>' . join('</strong>, <strong>', array_keys($ssids)) . '</strong>'; |
|
277 | + $out .= _("You will be required to enter the same credentials for each of the configured networks:")." "; |
|
278 | + $out .= '<strong>'.join('</strong>, <strong>', array_keys($ssids)).'</strong>'; |
|
279 | 279 | } |
280 | 280 | } |
281 | 281 | return $out; |
@@ -364,13 +364,13 @@ discard block |
||
364 | 364 | * @return string path to signed installer |
365 | 365 | */ |
366 | 366 | protected function signInstaller() { |
367 | - $fileName = $this->installerBasename . '.exe'; |
|
367 | + $fileName = $this->installerBasename.'.exe'; |
|
368 | 368 | if (!$this->sign) { |
369 | 369 | rename("installer.exe", $fileName); |
370 | 370 | return $fileName; |
371 | 371 | } |
372 | 372 | // are actually signing |
373 | - $outputFromSigning = system($this->sign . " installer.exe '$fileName' > /dev/null"); |
|
373 | + $outputFromSigning = system($this->sign." installer.exe '$fileName' > /dev/null"); |
|
374 | 374 | if ($outputFromSigning === FALSE) { |
375 | 375 | $this->loggerInstance->debug(2, "Signing the WindowsCommon installer $fileName FAILED!\n"); |
376 | 376 | } |
@@ -384,15 +384,15 @@ discard block |
||
384 | 384 | */ |
385 | 385 | protected function compileNSIS() { |
386 | 386 | if (CONFIG_CONFASSISTANT['NSIS_VERSION'] >= 3) { |
387 | - $makensis = CONFIG_CONFASSISTANT['PATHS']['makensis'] . " -INPUTCHARSET UTF8"; |
|
387 | + $makensis = CONFIG_CONFASSISTANT['PATHS']['makensis']." -INPUTCHARSET UTF8"; |
|
388 | 388 | } else { |
389 | 389 | $makensis = CONFIG_CONFASSISTANT['PATHS']['makensis']; |
390 | 390 | } |
391 | 391 | $lcAll = getenv("LC_ALL"); |
392 | 392 | putenv("LC_ALL=en_US.UTF-8"); |
393 | - $command = $makensis . ' -V4 cat.NSI > nsis.log 2>&1'; |
|
393 | + $command = $makensis.' -V4 cat.NSI > nsis.log 2>&1'; |
|
394 | 394 | system($command); |
395 | - putenv("LC_ALL=" . $lcAll); |
|
395 | + putenv("LC_ALL=".$lcAll); |
|
396 | 396 | $this->loggerInstance->debug(4, "compileNSIS:$command\n"); |
397 | 397 | } |
398 | 398 | |
@@ -408,10 +408,10 @@ discard block |
||
408 | 408 | 'email' => 'SUPPORT', |
409 | 409 | 'url' => 'URL', |
410 | 410 | ]; |
411 | - $s = "support_" . $type . "_substitute"; |
|
411 | + $s = "support_".$type."_substitute"; |
|
412 | 412 | $substitute = $this->translateString($this->$s, $this->codePage); |
413 | - $returnValue = !empty($attr['support:' . $type][0]) ? $attr['support:' . $type][0] : $substitute; |
|
414 | - return '!define ' . $supportString[$type] . ' "' . $returnValue . '"' . "\n"; |
|
413 | + $returnValue = !empty($attr['support:'.$type][0]) ? $attr['support:'.$type][0] : $substitute; |
|
414 | + return '!define '.$supportString[$type].' "'.$returnValue.'"'."\n"; |
|
415 | 415 | } |
416 | 416 | |
417 | 417 | /** |
@@ -421,20 +421,20 @@ discard block |
||
421 | 421 | * @return string |
422 | 422 | */ |
423 | 423 | protected function writeNsisDefines($attr) { |
424 | - $fcontents = "\n" . '!define NSIS_MAJOR_VERSION ' . CONFIG_CONFASSISTANT['NSIS_VERSION']; |
|
424 | + $fcontents = "\n".'!define NSIS_MAJOR_VERSION '.CONFIG_CONFASSISTANT['NSIS_VERSION']; |
|
425 | 425 | if ($attr['internal:profile_count'][0] > 1) { |
426 | - $fcontents .= "\n" . '!define USER_GROUP "' . $this->translateString(str_replace('"', '$\\"', $attr['profile:name'][0]), $this->codePage) . '" |
|
426 | + $fcontents .= "\n".'!define USER_GROUP "'.$this->translateString(str_replace('"', '$\\"', $attr['profile:name'][0]), $this->codePage).'" |
|
427 | 427 | '; |
428 | 428 | } |
429 | 429 | $fcontents .= ' |
430 | -Caption "' . $this->translateString(sprintf(WindowsCommon::sprint_nsi(_("%s installer for %s")), CONFIG_CONFASSISTANT['CONSORTIUM']['display_name'], $attr['general:instname'][0]), $this->codePage) . '" |
|
431 | -!define APPLICATION "' . $this->translateString(sprintf(WindowsCommon::sprint_nsi(_("%s installer for %s")), CONFIG_CONFASSISTANT['CONSORTIUM']['display_name'], $attr['general:instname'][0]), $this->codePage) . '" |
|
432 | -!define VERSION "' . \core\CAT::VERSION_MAJOR . '.' . \core\CAT::VERSION_MINOR . '" |
|
430 | +Caption "' . $this->translateString(sprintf(WindowsCommon::sprint_nsi(_("%s installer for %s")), CONFIG_CONFASSISTANT['CONSORTIUM']['display_name'], $attr['general:instname'][0]), $this->codePage).'" |
|
431 | +!define APPLICATION "' . $this->translateString(sprintf(WindowsCommon::sprint_nsi(_("%s installer for %s")), CONFIG_CONFASSISTANT['CONSORTIUM']['display_name'], $attr['general:instname'][0]), $this->codePage).'" |
|
432 | +!define VERSION "' . \core\CAT::VERSION_MAJOR.'.'.\core\CAT::VERSION_MINOR.'" |
|
433 | 433 | !define INSTALLER_NAME "installer.exe" |
434 | -!define LANG "' . $this->lang . '" |
|
435 | -!define LOCALE "' . preg_replace('/\..*$/', '', CONFIG['LANGUAGES'][$this->languageInstance->getLang()]['locale']) . '" |
|
434 | +!define LANG "' . $this->lang.'" |
|
435 | +!define LOCALE "' . preg_replace('/\..*$/', '', CONFIG['LANGUAGES'][$this->languageInstance->getLang()]['locale']).'" |
|
436 | 436 | ;-------------------------------- |
437 | -!define ORGANISATION "' . $this->translateString($attr['general:instname'][0], $this->codePage) . '" |
|
437 | +!define ORGANISATION "' . $this->translateString($attr['general:instname'][0], $this->codePage).'" |
|
438 | 438 | '; |
439 | 439 | $fcontents .= $this->getSupport($attr, 'email'); |
440 | 440 | $fcontents .= $this->getSupport($attr, 'url'); |
@@ -442,18 +442,18 @@ discard block |
||
442 | 442 | $fcontents .= '!define WIRED |
443 | 443 | '; |
444 | 444 | } |
445 | - $fcontents .= '!define PROVIDERID "urn:UUID:' . $this->deviceUUID . '" |
|
445 | + $fcontents .= '!define PROVIDERID "urn:UUID:'.$this->deviceUUID.'" |
|
446 | 446 | '; |
447 | 447 | if (!empty($attr['internal:realm'][0])) { |
448 | - $fcontents .= '!define REALM "' . $attr['internal:realm'][0] . '" |
|
448 | + $fcontents .= '!define REALM "'.$attr['internal:realm'][0].'" |
|
449 | 449 | '; |
450 | 450 | } |
451 | 451 | if (!empty($attr['internal:hint_userinput_suffix'][0]) && $attr['internal:hint_userinput_suffix'][0] == 1) { |
452 | - $fcontents .= '!define HINT_USER_INPUT "' . $attr['internal:hint_userinput_suffix'][0] . '" |
|
452 | + $fcontents .= '!define HINT_USER_INPUT "'.$attr['internal:hint_userinput_suffix'][0].'" |
|
453 | 453 | '; |
454 | 454 | } |
455 | 455 | if (!empty($attr['internal:verify_userinput_suffix'][0]) && $attr['internal:verify_userinput_suffix'][0] == 1) { |
456 | - $fcontents .= '!define VERIFY_USER_REALM_INPUT "' . $attr['internal:verify_userinput_suffix'][0] . '" |
|
456 | + $fcontents .= '!define VERIFY_USER_REALM_INPUT "'.$attr['internal:verify_userinput_suffix'][0].'" |
|
457 | 457 | '; |
458 | 458 | } |
459 | 459 | $fcontents .= $this->msInfoFile($attr); |
@@ -473,7 +473,7 @@ discard block |
||
473 | 473 | $out .= '!define EXTERNAL_INFO "'; |
474 | 474 | // $this->loggerInstance->debug(4,"Info file type ".$attr['support:info_file'][0]['mime']."\n"); |
475 | 475 | if ($attr['internal:info_file'][0]['mime'] == 'rtf') { |
476 | - $out = '!define LICENSE_FILE "' . $attr['internal:info_file'][0]['name']; |
|
476 | + $out = '!define LICENSE_FILE "'.$attr['internal:info_file'][0]['name']; |
|
477 | 477 | } elseif ($attr['internal:info_file'][0]['mime'] == 'txt') { |
478 | 478 | $infoFile = file_get_contents($attr['internal:info_file'][0]['name']); |
479 | 479 | if ($infoFile === FALSE) { |
@@ -482,14 +482,14 @@ discard block |
||
482 | 482 | if (CONFIG_CONFASSISTANT['NSIS_VERSION'] >= 3) { |
483 | 483 | $infoFileConverted = $infoFile; |
484 | 484 | } else { |
485 | - $infoFileConverted = iconv('UTF-8', $this->codePage . '//TRANSLIT', $infoFile); |
|
485 | + $infoFileConverted = iconv('UTF-8', $this->codePage.'//TRANSLIT', $infoFile); |
|
486 | 486 | } |
487 | 487 | if ($infoFileConverted !== FALSE && strlen($infoFileConverted) > 0) { |
488 | 488 | file_put_contents('info_f.txt', $infoFileConverted); |
489 | 489 | $out = '!define LICENSE_FILE " info_f.txt'; |
490 | 490 | } |
491 | 491 | } else { |
492 | - $out = '!define EXTERNAL_INFO "' . $attr['internal:info_file'][0]['name']; |
|
492 | + $out = '!define EXTERNAL_INFO "'.$attr['internal:info_file'][0]['name']; |
|
493 | 493 | } |
494 | 494 | |
495 | 495 | $out .= "\"\n"; |
@@ -94,7 +94,7 @@ discard block |
||
94 | 94 | */ |
95 | 95 | public function __construct() { |
96 | 96 | $this->loggerInstance = new Logging(); |
97 | - $this->loggerInstance->debug(3, "--- BEGIN constructing class " . get_class($this) . " .\n"); |
|
97 | + $this->loggerInstance->debug(3, "--- BEGIN constructing class ".get_class($this)." .\n"); |
|
98 | 98 | $this->languageInstance = new Language(); |
99 | 99 | Entity::intoThePotatoes("core"); |
100 | 100 | // some config elements are displayable. We need some dummies to |
@@ -106,7 +106,7 @@ discard block |
||
106 | 106 | $dummy_inst2 = _("organisation"); |
107 | 107 | $dummy_inst3 = _("Identity Provider"); |
108 | 108 | // and do something useless with the strings so that there's no "unused" complaint |
109 | - if (strlen($dummy_NRO . $dummy_inst1 . $dummy_inst2 . $dummy_inst3) < 0) { |
|
109 | + if (strlen($dummy_NRO.$dummy_inst1.$dummy_inst2.$dummy_inst3) < 0) { |
|
110 | 110 | throw new \Exception("Strings are usually not shorter than 0 characters. We've encountered a string blackhole."); |
111 | 111 | } |
112 | 112 | Entity::$nomenclature_fed = _(CONFIG_CONFASSISTANT['CONSORTIUM']['nomenclature_federation']); |
@@ -121,7 +121,7 @@ discard block |
||
121 | 121 | * Logs the end of lifetime of the entity to the debug log on level 5. |
122 | 122 | */ |
123 | 123 | public function __destruct() { |
124 | - (new Logging())->debug(5, "--- KILL Destructing class " . get_class($this) . " .\n"); |
|
124 | + (new Logging())->debug(5, "--- KILL Destructing class ".get_class($this)." .\n"); |
|
125 | 125 | } |
126 | 126 | |
127 | 127 | /** |
@@ -151,7 +151,7 @@ discard block |
||
151 | 151 | */ |
152 | 152 | public function createTemporaryDirectory($purpose = 'installer', $failIsFatal = 1) { |
153 | 153 | $loggerInstance = new Logging(); |
154 | - $name = md5(time() . rand()); |
|
154 | + $name = md5(time().rand()); |
|
155 | 155 | $path = ROOT; |
156 | 156 | switch ($purpose) { |
157 | 157 | case 'silverbullet': |
@@ -169,7 +169,7 @@ discard block |
||
169 | 169 | default: |
170 | 170 | throw new Exception("unable to create temporary directory due to unknown purpose: $purpose\n"); |
171 | 171 | } |
172 | - $tmpDir = $path . '/' . $name; |
|
172 | + $tmpDir = $path.'/'.$name; |
|
173 | 173 | $loggerInstance->debug(4, "temp dir: $purpose : $tmpDir\n"); |
174 | 174 | if (!mkdir($tmpDir, 0700, true)) { |
175 | 175 | if ($failIsFatal) { |
@@ -189,7 +189,7 @@ discard block |
||
189 | 189 | * @return void |
190 | 190 | */ |
191 | 191 | public static function rrmdir($dir) { |
192 | - foreach (glob($dir . '/*') as $file) { |
|
192 | + foreach (glob($dir.'/*') as $file) { |
|
193 | 193 | if (is_dir($file)) { |
194 | 194 | Entity::rrmdir($file); |
195 | 195 | } else { |
@@ -214,12 +214,12 @@ discard block |
||
214 | 214 | } |
215 | 215 | // these substr() are guaranteed to yield actual string data, as the |
216 | 216 | // base string is an MD5 hash - has sufficient length |
217 | - $uuid = /** @scrutinizer ignore-type */ substr($chars, 0, 8) . '-'; |
|
218 | - $uuid .= /** @scrutinizer ignore-type */ substr($chars, 8, 4) . '-'; |
|
219 | - $uuid .= /** @scrutinizer ignore-type */ substr($chars, 12, 4) . '-'; |
|
220 | - $uuid .= /** @scrutinizer ignore-type */ substr($chars, 16, 4) . '-'; |
|
217 | + $uuid = /** @scrutinizer ignore-type */ substr($chars, 0, 8).'-'; |
|
218 | + $uuid .= /** @scrutinizer ignore-type */ substr($chars, 8, 4).'-'; |
|
219 | + $uuid .= /** @scrutinizer ignore-type */ substr($chars, 12, 4).'-'; |
|
220 | + $uuid .= /** @scrutinizer ignore-type */ substr($chars, 16, 4).'-'; |
|
221 | 221 | $uuid .= /** @scrutinizer ignore-type */ substr($chars, 20, 12); |
222 | - return $prefix . $uuid; |
|
222 | + return $prefix.$uuid; |
|
223 | 223 | } |
224 | 224 | |
225 | 225 | /** |
@@ -257,7 +257,7 @@ discard block |
||
257 | 257 | for ($i = count($trace); $i--; $i > 0) { |
258 | 258 | if (preg_match('/Entity/', $trace[$i - 1]['class'])) { |
259 | 259 | if ($showTrace) { |
260 | - echo "FOUND caller: ".print_r($trace[$i],true). " - class is ".$trace[$i]['class']; |
|
260 | + echo "FOUND caller: ".print_r($trace[$i], true)." - class is ".$trace[$i]['class']; |
|
261 | 261 | } |
262 | 262 | $caller = $trace[$i]; |
263 | 263 | break; |
@@ -268,7 +268,7 @@ discard block |
||
268 | 268 | $myName = $caller['class'] ?? substr($caller['file'], strlen(ROOT)); |
269 | 269 | if ($showTrace === TRUE) { |
270 | 270 | echo "<pre>".print_r($trace, true)."</pre>"; |
271 | - echo "CLASS = " . $myName ."<br/>"; |
|
271 | + echo "CLASS = ".$myName."<br/>"; |
|
272 | 272 | } |
273 | 273 | if (preg_match("/diag/", $myName) == 1) { |
274 | 274 | $ret = "diagnostics"; |
@@ -300,10 +300,10 @@ discard block |
||
300 | 300 | if ($catalogue === NULL) { |
301 | 301 | $theCatalogue = Entity::determineOwnCatalogue($trace); |
302 | 302 | textdomain($theCatalogue); |
303 | - bindtextdomain($theCatalogue, ROOT . "/translation/"); |
|
303 | + bindtextdomain($theCatalogue, ROOT."/translation/"); |
|
304 | 304 | } else { |
305 | 305 | textdomain($catalogue); |
306 | - bindtextdomain($catalogue, ROOT . "/translation/"); |
|
306 | + bindtextdomain($catalogue, ROOT."/translation/"); |
|
307 | 307 | } |
308 | 308 | } |
309 | 309 |
@@ -134,13 +134,13 @@ |
||
134 | 134 | 'db' => 'radacct', |
135 | 135 | 'user' => 'someuser', |
136 | 136 | 'pass' => 'somepass', |
137 | - 'readonly' => TRUE,], |
|
137 | + 'readonly' => TRUE, ], |
|
138 | 138 | 'RADIUS_2' => [ |
139 | 139 | 'host' => 'auth-2.hosted.eduroam.org', |
140 | 140 | 'db' => 'radacct', |
141 | 141 | 'user' => 'someuser', |
142 | 142 | 'pass' => 'somepass', |
143 | - 'readonly' => TRUE,], |
|
143 | + 'readonly' => TRUE, ], |
|
144 | 144 | ], |
145 | 145 | |
146 | 146 | /** |
@@ -9,7 +9,7 @@ discard block |
||
9 | 9 | * ****************************************************************************** |
10 | 10 | */ |
11 | 11 | |
12 | -require_once dirname(dirname(dirname(dirname(__FILE__)))) . "/config/_config.php"; |
|
12 | +require_once dirname(dirname(dirname(dirname(__FILE__))))."/config/_config.php"; |
|
13 | 13 | |
14 | 14 | $auth = new \web\lib\admin\Authentication(); |
15 | 15 | $auth->authenticate(); |
@@ -22,30 +22,30 @@ discard block |
||
22 | 22 | |
23 | 23 | ?> |
24 | 24 | |
25 | -<h1><?php echo _("User Authentication Records");?></h1> |
|
26 | -<p><?php echo _("Note that:");?></p> |
|
25 | +<h1><?php echo _("User Authentication Records"); ?></h1> |
|
26 | +<p><?php echo _("Note that:"); ?></p> |
|
27 | 27 | <ul> |
28 | - <li><?php echo _("Authentication records are deleted after six months retention time");?></li> |
|
29 | - <li><?php echo _("Operator Domain is based on the RADIUS attribute 'Operator-Name' and not sent by all hotspots");?></li> |
|
30 | - <li><?php echo _("Different MAC addresses per credential may be due to MAC Address randomisation in recent operating systems");?></li> |
|
28 | + <li><?php echo _("Authentication records are deleted after six months retention time"); ?></li> |
|
29 | + <li><?php echo _("Operator Domain is based on the RADIUS attribute 'Operator-Name' and not sent by all hotspots"); ?></li> |
|
30 | + <li><?php echo _("Different MAC addresses per credential may be due to MAC Address randomisation in recent operating systems"); ?></li> |
|
31 | 31 | </ul> |
32 | 32 | <table class='authrecord'> |
33 | 33 | <tr> |
34 | - <td><strong><?php echo _("Timestamp");?></strong></td> |
|
35 | - <td><strong><?php echo _("Credential");?></strong></td> |
|
36 | - <td><strong><?php echo _("MAC Address");?></strong></td> |
|
37 | - <td><strong><?php echo _("Result");?></strong></td> |
|
38 | - <td><strong><?php echo _("Operator Domain");?></strong></td> |
|
34 | + <td><strong><?php echo _("Timestamp"); ?></strong></td> |
|
35 | + <td><strong><?php echo _("Credential"); ?></strong></td> |
|
36 | + <td><strong><?php echo _("MAC Address"); ?></strong></td> |
|
37 | + <td><strong><?php echo _("Result"); ?></strong></td> |
|
38 | + <td><strong><?php echo _("Operator Domain"); ?></strong></td> |
|
39 | 39 | </tr> |
40 | 40 | <?php |
41 | 41 | $userAuthData = $profile->getUserAuthRecords($userInt); |
42 | 42 | foreach ($userAuthData as $oneRecord) { |
43 | - echo "<tr class='".($oneRecord['RESULT'] == "Access-Accept" ? "auth-success" : "auth-fail" )."'>" |
|
43 | + echo "<tr class='".($oneRecord['RESULT'] == "Access-Accept" ? "auth-success" : "auth-fail")."'>" |
|
44 | 44 | . "<td>".$oneRecord['TIMESTAMP']."</td>" |
45 | - . "<td>".substr_replace($oneRecord['CN'], "@…", strpos($oneRecord['CN'],"@"))."</td>" |
|
45 | + . "<td>".substr_replace($oneRecord['CN'], "@…", strpos($oneRecord['CN'], "@"))."</td>" |
|
46 | 46 | . "<td>".$oneRecord['MAC']."</td>" |
47 | 47 | . "<td>".($oneRecord['RESULT'] == "Access-Accept" ? _("Success") : _("Failure"))."</td>" |
48 | - . "<td>".substr($oneRecord['OPERATOR'] ?? "1(unknown)",1)."</td>" |
|
48 | + . "<td>".substr($oneRecord['OPERATOR'] ?? "1(unknown)", 1)."</td>" |
|
49 | 49 | . "</tr>"; |
50 | 50 | } |
51 | 51 | ?> |
@@ -32,7 +32,7 @@ discard block |
||
32 | 32 | |
33 | 33 | use \Exception; |
34 | 34 | |
35 | -require_once dirname(__DIR__) . "/config/_config.php"; |
|
35 | +require_once dirname(__DIR__)."/config/_config.php"; |
|
36 | 36 | |
37 | 37 | /** |
38 | 38 | * This class is a singleton for establishing a connection to the database |
@@ -60,24 +60,24 @@ discard block |
||
60 | 60 | case "EXTERNAL": |
61 | 61 | case "FRONTEND": |
62 | 62 | case "DIAGNOSTICS": |
63 | - if (!isset(self::${"instance" . $theDb})) { |
|
63 | + if (!isset(self::${"instance".$theDb})) { |
|
64 | 64 | $class = __CLASS__; |
65 | - self::${"instance" . $theDb} = new $class($database); |
|
66 | - DBConnection::${"instance" . $theDb}->databaseInstance = $theDb; |
|
65 | + self::${"instance".$theDb} = new $class($database); |
|
66 | + DBConnection::${"instance".$theDb}->databaseInstance = $theDb; |
|
67 | 67 | } |
68 | - return self::${"instance" . $theDb}; |
|
68 | + return self::${"instance".$theDb}; |
|
69 | 69 | case "RADIUS": |
70 | - if (!isset(self::${"instance" . $theDb})) { |
|
70 | + if (!isset(self::${"instance".$theDb})) { |
|
71 | 71 | $class = __CLASS__; |
72 | 72 | foreach (CONFIG_CONFASSISTANT['DB'] as $name => $oneRadiusAuthDb) { |
73 | 73 | $theInstance = new $class($name); |
74 | - self::${"instance" . $theDb}[] = $theInstance; |
|
74 | + self::${"instance".$theDb}[] = $theInstance; |
|
75 | 75 | $theInstance->databaseInstance = $theDb; |
76 | 76 | } |
77 | 77 | } |
78 | - return self::${"instance" . $theDb}; |
|
78 | + return self::${"instance".$theDb}; |
|
79 | 79 | default: |
80 | - throw new Exception("This type of database (" . strtoupper($database) . ") is not known!"); |
|
80 | + throw new Exception("This type of database (".strtoupper($database).") is not known!"); |
|
81 | 81 | } |
82 | 82 | } |
83 | 83 | |
@@ -116,18 +116,18 @@ discard block |
||
116 | 116 | } |
117 | 117 | } |
118 | 118 | // log exact query to debug log, if log level is at 5 |
119 | - $this->loggerInstance->debug(5, "DB ATTEMPT: " . $querystring . "\n"); |
|
119 | + $this->loggerInstance->debug(5, "DB ATTEMPT: ".$querystring."\n"); |
|
120 | 120 | if ($types !== NULL) { |
121 | - $this->loggerInstance->debug(5, "Argument type sequence: $types, parameters are: " . print_r($arguments, true)); |
|
121 | + $this->loggerInstance->debug(5, "Argument type sequence: $types, parameters are: ".print_r($arguments, true)); |
|
122 | 122 | } |
123 | 123 | |
124 | 124 | if ($this->connection->connect_error) { |
125 | - throw new Exception("ERROR: Cannot send query to $this->databaseInstance database (no connection, error number" . $this->connection->connect_error . ")!"); |
|
125 | + throw new Exception("ERROR: Cannot send query to $this->databaseInstance database (no connection, error number".$this->connection->connect_error.")!"); |
|
126 | 126 | } |
127 | 127 | if ($types === NULL) { |
128 | 128 | $result = $this->connection->query($querystring); |
129 | 129 | if ($result === FALSE) { |
130 | - throw new Exception("DB: Unable to execute simple statement! Error was --> " . $this->connection->error . " <--"); |
|
130 | + throw new Exception("DB: Unable to execute simple statement! Error was --> ".$this->connection->error." <--"); |
|
131 | 131 | } |
132 | 132 | } else { |
133 | 133 | // fancy! prepared statement with dedicated argument list |
@@ -140,7 +140,7 @@ discard block |
||
140 | 140 | } |
141 | 141 | $prepResult = $statementObject->prepare($querystring); |
142 | 142 | if ($prepResult === FALSE) { |
143 | - throw new Exception("DB: Unable to prepare statement! Statement was --> $querystring <--, error was --> " . $statementObject->error . " <--."); |
|
143 | + throw new Exception("DB: Unable to prepare statement! Statement was --> $querystring <--, error was --> ".$statementObject->error." <--."); |
|
144 | 144 | } |
145 | 145 | |
146 | 146 | // we have a variable number of arguments packed into the ... array |
@@ -152,11 +152,11 @@ discard block |
||
152 | 152 | array_unshift($localArray, $types); |
153 | 153 | $retval = call_user_func_array([$statementObject, "bind_param"], $localArray); |
154 | 154 | if ($retval === FALSE) { |
155 | - throw new Exception("DB: Unable to bind parameters to prepared statement! Argument array was --> " . var_export($localArray, TRUE) . " <--. Error was --> " . $statementObject->error . " <--"); |
|
155 | + throw new Exception("DB: Unable to bind parameters to prepared statement! Argument array was --> ".var_export($localArray, TRUE)." <--. Error was --> ".$statementObject->error." <--"); |
|
156 | 156 | } |
157 | 157 | $result = $statementObject->execute(); |
158 | 158 | if ($result === FALSE) { |
159 | - throw new Exception("DB: Unable to execute prepared statement! Error was --> " . $statementObject->error . " <--"); |
|
159 | + throw new Exception("DB: Unable to execute prepared statement! Error was --> ".$statementObject->error." <--"); |
|
160 | 160 | } |
161 | 161 | $selectResult = $statementObject->get_result(); |
162 | 162 | if ($selectResult !== FALSE) { |
@@ -168,14 +168,14 @@ discard block |
||
168 | 168 | |
169 | 169 | // all cases where $result could be FALSE have been caught earlier |
170 | 170 | if ($this->connection->errno) { |
171 | - throw new Exception("ERROR: Cannot execute query in $this->databaseInstance database - (hopefully escaped) query was '$querystring', errno was " . $this->connection->errno . "!"); |
|
171 | + throw new Exception("ERROR: Cannot execute query in $this->databaseInstance database - (hopefully escaped) query was '$querystring', errno was ".$this->connection->errno."!"); |
|
172 | 172 | } |
173 | 173 | |
174 | 174 | |
175 | 175 | if ($isMoreThanSelect) { |
176 | - $this->loggerInstance->writeSQLAudit("[DB: " . strtoupper($this->databaseInstance) . "] " . $querystring); |
|
176 | + $this->loggerInstance->writeSQLAudit("[DB: ".strtoupper($this->databaseInstance)."] ".$querystring); |
|
177 | 177 | if ($types !== NULL) { |
178 | - $this->loggerInstance->writeSQLAudit("Argument type sequence: $types, parameters are: " . print_r($arguments, true)); |
|
178 | + $this->loggerInstance->writeSQLAudit("Argument type sequence: $types, parameters are: ".print_r($arguments, true)); |
|
179 | 179 | } |
180 | 180 | } |
181 | 181 | return $result; |
@@ -270,7 +270,7 @@ discard block |
||
270 | 270 | $this->readOnly = CONFIG_CONFASSISTANT['DB'][$databaseCapitalised]['readonly']; |
271 | 271 | } |
272 | 272 | if ($this->connection->connect_error) { |
273 | - throw new Exception("ERROR: Unable to connect to $database database! This is a fatal error, giving up (error number " . $this->connection->connect_errno . ")."); |
|
273 | + throw new Exception("ERROR: Unable to connect to $database database! This is a fatal error, giving up (error number ".$this->connection->connect_errno.")."); |
|
274 | 274 | } |
275 | 275 | |
276 | 276 | if ($databaseCapitalised == "EXTERNAL" && CONFIG_CONFASSISTANT['CONSORTIUM']['name'] == "eduroam" && isset(CONFIG_CONFASSISTANT['CONSORTIUM']['deployment-voodoo']) && CONFIG_CONFASSISTANT['CONSORTIUM']['deployment-voodoo'] == "Operations Team") { |
@@ -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 | |
24 | 24 | $deco = new \web\lib\admin\PageDecoration(); |
25 | 25 | $uiElements = new web\lib\admin\UIElements(); |
@@ -47,7 +47,7 @@ discard block |
||
47 | 47 | <?php echo $uiElements->infoblock($user->getAttributes(), "user", "User"); ?> |
48 | 48 | <tr> |
49 | 49 | <td> |
50 | - <?php echo "" . _("Unique Identifier") ?> |
|
50 | + <?php echo ""._("Unique Identifier") ?> |
|
51 | 51 | </td> |
52 | 52 | <td> |
53 | 53 | </td> |
@@ -62,7 +62,7 @@ discard block |
||
62 | 62 | $mgmt = new \core\UserManagement(); |
63 | 63 | |
64 | 64 | if (!$user->isFederationAdmin()) { |
65 | - echo "<p>" . sprintf(_("You are not a %s manager."), $uiElements->nomenclatureFed) . "</p>"; |
|
65 | + echo "<p>".sprintf(_("You are not a %s manager."), $uiElements->nomenclatureFed)."</p>"; |
|
66 | 66 | echo $deco->footer(); |
67 | 67 | exit(0); |
68 | 68 | } |
@@ -79,7 +79,7 @@ discard block |
||
79 | 79 | <!-- fed properties --> |
80 | 80 | <tr> |
81 | 81 | <td> |
82 | - <?php echo "" . _("Country") ?> |
|
82 | + <?php echo ""._("Country") ?> |
|
83 | 83 | </td> |
84 | 84 | <td> |
85 | 85 | </td> |
@@ -160,7 +160,7 @@ discard block |
||
160 | 160 | default: |
161 | 161 | throw new Exception("Error: unknown encryption status of invitation!?!"); |
162 | 162 | } |
163 | - echo $uiElements->boxRemark(ngettext("The invitation email was sent successfully.", "All invitation emails were sent successfully.", $counter) . " " . $cryptText, _("Sent successfully.")); |
|
163 | + echo $uiElements->boxRemark(ngettext("The invitation email was sent successfully.", "All invitation emails were sent successfully.", $counter)." ".$cryptText, _("Sent successfully.")); |
|
164 | 164 | break; |
165 | 165 | case "FAILURE": |
166 | 166 | echo $uiElements->boxError(_("No invitation email could be sent!"), _("Sending failure!")); |
@@ -180,7 +180,7 @@ discard block |
||
180 | 180 | default: |
181 | 181 | throw new Exception("Error: unknown encryption status of invitation!?!"); |
182 | 182 | } |
183 | - echo $uiElements->boxWarning(sprintf(_("Some invitation emails were sent successfully (%s in total), the others failed."), $counter) . " " . $cryptText, _("Partial success.")); |
|
183 | + echo $uiElements->boxWarning(sprintf(_("Some invitation emails were sent successfully (%s in total), the others failed."), $counter)." ".$cryptText, _("Partial success.")); |
|
184 | 184 | break; |
185 | 185 | case "INVALIDSYNTAX": |
186 | 186 | echo $uiElements->boxError(_("The invitation email address was malformed, no invitation was sent!"), _("The invitation email address was malformed, no invitation was sent!")); |
@@ -191,7 +191,7 @@ discard block |
||
191 | 191 | echo "</table></div>"; |
192 | 192 | } |
193 | 193 | if (CONFIG_CONFASSISTANT['CONSORTIUM']['name'] == 'eduroam') { |
194 | - $helptext = "<h3>" . sprintf(_("Need help? Refer to the <a href='%s'>%s manual</a>"), "https://wiki.geant.org/x/qJg7Bw", $uiElements->nomenclatureFed) . "</h3>"; |
|
194 | + $helptext = "<h3>".sprintf(_("Need help? Refer to the <a href='%s'>%s manual</a>"), "https://wiki.geant.org/x/qJg7Bw", $uiElements->nomenclatureFed)."</h3>"; |
|
195 | 195 | } else { |
196 | 196 | $helptext = ""; |
197 | 197 | } |
@@ -205,7 +205,7 @@ discard block |
||
205 | 205 | $pending_invites = $mgmt->listPendingInvitations(); |
206 | 206 | |
207 | 207 | if (CONFIG['DB']['enforce-external-sync']) { |
208 | - echo "<th>" . sprintf(_("%s Database Sync Status"), CONFIG_CONFASSISTANT['CONSORTIUM']['display_name']) . "</th>"; |
|
208 | + echo "<th>".sprintf(_("%s Database Sync Status"), CONFIG_CONFASSISTANT['CONSORTIUM']['display_name'])."</th>"; |
|
209 | 209 | } |
210 | 210 | ?> |
211 | 211 | <th> |
@@ -220,7 +220,7 @@ discard block |
||
220 | 220 | foreach ($feds as $onefed) { |
221 | 221 | $thefed = new \core\Federation(strtoupper($onefed['value'])); |
222 | 222 | /// nomenclature for 'federation', federation name, nomenclature for 'inst' |
223 | - echo "<tr><td colspan='8'><strong>" . sprintf(_("The following %s are in your %s %s:"), $uiElements->nomenclatureInst, $uiElements->nomenclatureFed, '<span style="color:green">' . $thefed->name . '</span>') . "</strong></td></tr>"; |
|
223 | + echo "<tr><td colspan='8'><strong>".sprintf(_("The following %s are in your %s %s:"), $uiElements->nomenclatureInst, $uiElements->nomenclatureFed, '<span style="color:green">'.$thefed->name.'</span>')."</strong></td></tr>"; |
|
224 | 224 | |
225 | 225 | // extract only pending invitations for *this* fed |
226 | 226 | $display_pendings = FALSE; |
@@ -245,7 +245,7 @@ discard block |
||
245 | 245 | // deployment status; need to dive into profiles for this |
246 | 246 | // show happy eyeballs if at least one profile is configured/showtime |
247 | 247 | echo "<td>"; |
248 | - echo ($idp_instance->maxProfileStatus() >= \core\IdP::PROFILES_CONFIGURED ? "C" : "" ) . " " . ($idp_instance->maxProfileStatus() >= \core\IdP::PROFILES_SHOWTIME ? "V" : "" ); |
|
248 | + echo ($idp_instance->maxProfileStatus() >= \core\IdP::PROFILES_CONFIGURED ? "C" : "")." ".($idp_instance->maxProfileStatus() >= \core\IdP::PROFILES_SHOWTIME ? "V" : ""); |
|
249 | 249 | echo "</td>"; |
250 | 250 | // name; and realm of silverbullet profiles if any |
251 | 251 | // instantiating all profiles is costly, so we only do this if |
@@ -259,23 +259,23 @@ discard block |
||
259 | 259 | } |
260 | 260 | } |
261 | 261 | echo "<td style='vertical-align:top;'> |
262 | - <input type='hidden' name='inst' value='" . $index . "'>" . $idp_instance->name . (empty($listOfSilverbulletRealms) ? "" : "<ul><li>" ) . implode("</li><li>",$listOfSilverbulletRealms) . (empty($listOfSilverbulletRealms) ? "" : "</li><ul>" ) . " |
|
262 | + <input type='hidden' name='inst' value='" . $index."'>".$idp_instance->name.(empty($listOfSilverbulletRealms) ? "" : "<ul><li>").implode("</li><li>", $listOfSilverbulletRealms).(empty($listOfSilverbulletRealms) ? "" : "</li><ul>")." |
|
263 | 263 | </td>"; |
264 | 264 | // external DB sync, if configured as being necessary |
265 | 265 | if (CONFIG['DB']['enforce-external-sync']) { |
266 | 266 | echo "<td style='display: ruby;'>"; |
267 | 267 | if ($readonly === FALSE) { |
268 | - echo "<form method='post' action='inc/manageDBLink.inc.php?inst_id=" . $idp_instance->identifier . "' onsubmit='popupRedirectWindow(this); return false;' accept-charset='UTF-8'> |
|
269 | - <button type='submit'>" . _("Manage DB Link") . "</button></form> "; |
|
268 | + echo "<form method='post' action='inc/manageDBLink.inc.php?inst_id=".$idp_instance->identifier."' onsubmit='popupRedirectWindow(this); return false;' accept-charset='UTF-8'> |
|
269 | + <button type='submit'>" . _("Manage DB Link")."</button></form> "; |
|
270 | 270 | } |
271 | 271 | switch ($idp_instance->getExternalDBSyncState()) { |
272 | 272 | case \core\IdP::EXTERNAL_DB_SYNCSTATE_NOTSUBJECTTOSYNCING: |
273 | 273 | break; |
274 | 274 | case \core\IdP::EXTERNAL_DB_SYNCSTATE_SYNCED: |
275 | - echo "<div class='acceptable'>" . _("Linked") . "</div>"; |
|
275 | + echo "<div class='acceptable'>"._("Linked")."</div>"; |
|
276 | 276 | break; |
277 | 277 | case \core\IdP::EXTERNAL_DB_SYNCSTATE_NOT_SYNCED: |
278 | - echo "<div class='notacceptable'>" . _("NOT linked") . "</div>"; |
|
278 | + echo "<div class='notacceptable'>"._("NOT linked")."</div>"; |
|
279 | 279 | |
280 | 280 | |
281 | 281 | break; |
@@ -288,9 +288,9 @@ discard block |
||
288 | 288 | echo "<td style='vertical-align: top;'>"; |
289 | 289 | if ($readonly === FALSE) { |
290 | 290 | echo "<div style='white-space: nowrap;'> |
291 | - <form method='post' action='inc/manageAdmins.inc.php?inst_id=" . $index . "' onsubmit='popupRedirectWindow(this); return false;' accept-charset='UTF-8'> |
|
291 | + <form method='post' action='inc/manageAdmins.inc.php?inst_id=" . $index."' onsubmit='popupRedirectWindow(this); return false;' accept-charset='UTF-8'> |
|
292 | 292 | <button type='submit'>" . |
293 | - _("Add/Remove Administrators") . " |
|
293 | + _("Add/Remove Administrators")." |
|
294 | 294 | </button> |
295 | 295 | </form> |
296 | 296 | </div>"; |
@@ -303,7 +303,7 @@ discard block |
||
303 | 303 | echo "<tr> |
304 | 304 | <td colspan='2'> |
305 | 305 | <strong>" . |
306 | - sprintf(_("Pending invitations in the %s:"), $uiElements->nomenclatureFed) . " |
|
306 | + sprintf(_("Pending invitations in the %s:"), $uiElements->nomenclatureFed)." |
|
307 | 307 | </strong> |
308 | 308 | </td> |
309 | 309 | </tr>"; |
@@ -311,17 +311,17 @@ discard block |
||
311 | 311 | if (strtoupper($oneinvite['country']) == strtoupper($thefed->tld)) { |
312 | 312 | echo "<tr> |
313 | 313 | <td>" . |
314 | - $oneinvite['name'] . " |
|
314 | + $oneinvite['name']." |
|
315 | 315 | </td> |
316 | 316 | <td>" . |
317 | - $oneinvite['mail'] . " |
|
317 | + $oneinvite['mail']." |
|
318 | 318 | </td> |
319 | 319 | <td colspan=2>"; |
320 | 320 | if ($readonly === FALSE) { |
321 | 321 | echo "<form method='post' action='overview_federation.php' accept-charset='UTF-8'> |
322 | - <input type='hidden' name='invitation_id' value='" . $oneinvite['token'] . "'/> |
|
323 | - <button class='delete' type='submit' name='submitbutton' value='" . web\lib\common\FormElements::BUTTON_DELETE . "'>" . _("Revoke Invitation") . "</button> " |
|
324 | - . sprintf(_("(expires %s)"),$oneinvite['expiry']) |
|
322 | + <input type='hidden' name='invitation_id' value='" . $oneinvite['token']."'/> |
|
323 | + <button class='delete' type='submit' name='submitbutton' value='" . web\lib\common\FormElements::BUTTON_DELETE."'>"._("Revoke Invitation")."</button> " |
|
324 | + . sprintf(_("(expires %s)"), $oneinvite['expiry']) |
|
325 | 325 | . "</form>"; |
326 | 326 | } |
327 | 327 | echo " </td> |