@@ -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 | $Tests = [ |
25 | 25 | 'CatBaseUrl', |
@@ -42,7 +42,7 @@ discard block |
||
42 | 42 | |
43 | 43 | $uiElements = new \web\lib\admin\UIElements(); |
44 | 44 | |
45 | -if (\config\Master::FUNCTIONALITY_LOCATIONS['CONFASSISTANT_SILVERBULLET'] == "LOCAL" || \config\Master::FUNCTIONALITY_LOCATIONS['CONFASSISTANT_RADIUS'] == "LOCAL" ) { |
|
45 | +if (\config\Master::FUNCTIONALITY_LOCATIONS['CONFASSISTANT_SILVERBULLET'] == "LOCAL" || \config\Master::FUNCTIONALITY_LOCATIONS['CONFASSISTANT_RADIUS'] == "LOCAL") { |
|
46 | 46 | $Tests[] = 'Makensis'; |
47 | 47 | $Tests[] = 'Makensis=>NSISmodules'; |
48 | 48 | } |
@@ -26,7 +26,7 @@ discard block |
||
26 | 26 | */ |
27 | 27 | ?> |
28 | 28 | <?php |
29 | -require_once dirname(dirname(dirname(__FILE__))) . "/config/_config.php"; |
|
29 | +require_once dirname(dirname(dirname(__FILE__)))."/config/_config.php"; |
|
30 | 30 | |
31 | 31 | $deco = new \web\lib\admin\PageDecoration(); |
32 | 32 | $validator = new \web\lib\common\InputValidation(); |
@@ -38,7 +38,7 @@ discard block |
||
38 | 38 | } else { |
39 | 39 | $link = 'http://'; |
40 | 40 | } |
41 | -$link .= $_SERVER['SERVER_NAME'] . $_SERVER['SCRIPT_NAME']; |
|
41 | +$link .= $_SERVER['SERVER_NAME'].$_SERVER['SCRIPT_NAME']; |
|
42 | 42 | $link = htmlspecialchars($link); |
43 | 43 | |
44 | 44 | echo $deco->defaultPagePrelude(sprintf(_("%s: %s Dashboard"), \config\Master::APPEARANCE['productname'], $uiElements->nomenclatureInst)); |
@@ -84,10 +84,10 @@ discard block |
||
84 | 84 | $readonly = \config\Master::DB['INST']['readonly']; |
85 | 85 | $profiles_for_this_idp = $my_inst->listProfiles(); |
86 | 86 | if (count($profiles_for_this_idp) == 0) { // no profiles yet. |
87 | - echo "<h2>" . sprintf(_("There are not yet any profiles for your %s."), $uiElements->nomenclatureInst) . "</h2>"; |
|
87 | + echo "<h2>".sprintf(_("There are not yet any profiles for your %s."), $uiElements->nomenclatureInst)."</h2>"; |
|
88 | 88 | } |
89 | 89 | if (count($profiles_for_this_idp) > 0) { // no profiles yet. |
90 | - echo "<h2>" . sprintf(_("Profiles for this %s"), $uiElements->nomenclatureInst) . "</h2>"; |
|
90 | + echo "<h2>".sprintf(_("Profiles for this %s"), $uiElements->nomenclatureInst)."</h2>"; |
|
91 | 91 | } |
92 | 92 | // if there is one profile and it is of type Silver Bullet, display a very |
93 | 93 | // simple widget with just a "Manage" button |
@@ -113,7 +113,7 @@ discard block |
||
113 | 113 | echo _("Information needed!"); |
114 | 114 | echo "<ul style='margin:1px'>"; |
115 | 115 | foreach ($completeness as $missing_attrib) { |
116 | - echo "<li>" . $uiElements->displayName($missing_attrib) . "</li>"; |
|
116 | + echo "<li>".$uiElements->displayName($missing_attrib)."</li>"; |
|
117 | 117 | } |
118 | 118 | echo "</ul>"; |
119 | 119 | echo "</div>"; |
@@ -127,7 +127,7 @@ discard block |
||
127 | 127 | if ($readonly === FALSE) { |
128 | 128 | ?> |
129 | 129 | <form action='edit_silverbullet.php?inst_id=<?php echo $my_inst->identifier; ?>&profile_id=<?php echo $profile_list->identifier; ?>' method='POST'> |
130 | - <button <?php echo ( is_array($completeness) ? "disabled" : "" ); ?> type='submit' name='sb_action' value='sb_edit'><?php echo _("Manage User Base"); ?></button> |
|
130 | + <button <?php echo (is_array($completeness) ? "disabled" : ""); ?> type='submit' name='sb_action' value='sb_edit'><?php echo _("Manage User Base"); ?></button> |
|
131 | 131 | </form> |
132 | 132 | <?php |
133 | 133 | } |
@@ -159,21 +159,21 @@ discard block |
||
159 | 159 | $has_overrides = TRUE; |
160 | 160 | } |
161 | 161 | } |
162 | - $buffer_eaptypediv = "<div style='margin-bottom:40px; float:left;'>" . _("<strong>EAP Types</strong> (in order of preference):") . "<br/>"; |
|
162 | + $buffer_eaptypediv = "<div style='margin-bottom:40px; float:left;'>"._("<strong>EAP Types</strong> (in order of preference):")."<br/>"; |
|
163 | 163 | $typelist = $profile_list->getEapMethodsinOrderOfPreference(); |
164 | 164 | $allcomplete = TRUE; |
165 | 165 | foreach ($typelist as $eaptype) { |
166 | 166 | $buffer_eaptypediv .= $eaptype->getPrintableRep(); |
167 | 167 | $completeness = $profile_list->isEapTypeDefinitionComplete($eaptype); |
168 | 168 | if ($completeness === true) { |
169 | - $buffer_eaptypediv .= " <div class='acceptable'>" . _("OK") . "</div>"; |
|
169 | + $buffer_eaptypediv .= " <div class='acceptable'>"._("OK")."</div>"; |
|
170 | 170 | } else { |
171 | 171 | $buffer_eaptypediv .= " <div class='notacceptable'>"; |
172 | 172 | $buffer_eaptypediv .= _("Information needed!"); |
173 | 173 | if (is_array($completeness)) { |
174 | 174 | $buffer_eaptypediv .= "<ul style='margin:1px'>"; |
175 | 175 | foreach ($completeness as $missing_attrib) { |
176 | - $buffer_eaptypediv .= "<li>" . $uiElements->displayName($missing_attrib) . "</li>"; |
|
176 | + $buffer_eaptypediv .= "<li>".$uiElements->displayName($missing_attrib)."</li>"; |
|
177 | 177 | } |
178 | 178 | $buffer_eaptypediv .= "</ul>"; |
179 | 179 | } |
@@ -185,12 +185,12 @@ discard block |
||
185 | 185 | foreach ($attribs as $attrib) { |
186 | 186 | if ($attrib['level'] == "Method" && !preg_match("/^internal:/", $attrib['name']) && !$justOnce) { |
187 | 187 | $justOnce = TRUE; |
188 | - $buffer_eaptypediv .= "<img src='../resources/images/icons/Letter-E-blue-icon.png' alt='" . _("Options on EAP Method/Device level are in effect.") . "'>"; |
|
188 | + $buffer_eaptypediv .= "<img src='../resources/images/icons/Letter-E-blue-icon.png' alt='"._("Options on EAP Method/Device level are in effect.")."'>"; |
|
189 | 189 | } |
190 | 190 | } |
191 | 191 | $buffer_eaptypediv .= "<br/>"; |
192 | 192 | } |
193 | - $buffer_headline = "<div style='padding-bottom:20px;'><h2 style='overflow:auto; display:inline; padding-bottom: 10px;'>" . sprintf(_("Profile: %s"), $profile_name) . "</h2>"; |
|
193 | + $buffer_headline = "<div style='padding-bottom:20px;'><h2 style='overflow:auto; display:inline; padding-bottom: 10px;'>".sprintf(_("Profile: %s"), $profile_name)."</h2>"; |
|
194 | 194 | |
195 | 195 | $buffer_headline .= "<span style='float:right;'>"; |
196 | 196 | $readiness = $profile_list->readinessLevel(); |
@@ -222,18 +222,18 @@ discard block |
||
222 | 222 | if (\config\Master::FUNCTIONALITY_LOCATIONS['DIAGNOSTICS'] == "LOCAL") { |
223 | 223 | $diagUrl = "../diag/"; |
224 | 224 | } else { |
225 | - $diagUrl = \config\Master::FUNCTIONALITY_LOCATIONS['DIAGNOSTICS'] . "/diag/"; |
|
225 | + $diagUrl = \config\Master::FUNCTIONALITY_LOCATIONS['DIAGNOSTICS']."/diag/"; |
|
226 | 226 | } |
227 | - echo "<form action='" . $diagUrl . "action_realmcheck.php?inst_id=$my_inst->identifier&profile_id=$profile_list->identifier' method='post' accept-charset='UTF-8'> |
|
227 | + echo "<form action='".$diagUrl."action_realmcheck.php?inst_id=$my_inst->identifier&profile_id=$profile_list->identifier' method='post' accept-charset='UTF-8'> |
|
228 | 228 | <input type='hidden' name='comefrom' id='comefrom-$profilecount' value='$link'/> |
229 | - <button type='submit' name='profile_action' value='check' " . ($has_realm ? "" : "disabled='disabled' title='" . _("The realm can only be checked if you configure the realm!") . "'") . "> |
|
230 | - " . _("Check realm reachability") . " |
|
229 | + <button type='submit' name='profile_action' value='check' ".($has_realm ? "" : "disabled='disabled' title='"._("The realm can only be checked if you configure the realm!")."'")."> |
|
230 | + " . _("Check realm reachability")." |
|
231 | 231 | </button> |
232 | 232 | </form>"; |
233 | 233 | } |
234 | 234 | echo "<form action='overview_installers.php?inst_id=$my_inst->identifier&profile_id=$profile_list->identifier' method='post' accept-charset='UTF-8'> |
235 | - <button type='submit' name='profile_action' value='check' " . ($has_eaptypes ? "" : "disabled='disabled' title='" . _("You have not fully configured any supported EAP types!") . "'") . "> |
|
236 | - " . _("Installer Fine-Tuning and Download") . " |
|
235 | + <button type='submit' name='profile_action' value='check' ".($has_eaptypes ? "" : "disabled='disabled' title='"._("You have not fully configured any supported EAP types!")."'")."> |
|
236 | + " . _("Installer Fine-Tuning and Download")." |
|
237 | 237 | </button> |
238 | 238 | </form> |
239 | 239 | </div>"; |
@@ -242,11 +242,11 @@ discard block |
||
242 | 242 | echo " <div class='buttongroupprofilebox' style='clear:both;'> |
243 | 243 | <form action='edit_profile.php?inst_id=$my_inst->identifier&profile_id=$profile_list->identifier' method='post' accept-charset='UTF-8'> |
244 | 244 | <hr/> |
245 | - <button type='submit' name='profile_action' value='edit'>" . _("Edit") . "</button> |
|
245 | + <button type='submit' name='profile_action' value='edit'>"._("Edit")."</button> |
|
246 | 246 | </form> |
247 | 247 | <form action='edit_profile_result.php?inst_id=$my_inst->identifier&profile_id=$profile_list->identifier' method='post' accept-charset='UTF-8'> |
248 | - <button class='delete' type='submit' name='submitbutton' value='" . web\lib\common\FormElements::BUTTON_DELETE . "' onclick=\"return confirm('" . sprintf(_("Do you really want to delete the profile %s?"), $profile_name) . "')\"> |
|
249 | - " . _("Delete") . " |
|
248 | + <button class='delete' type='submit' name='submitbutton' value='".web\lib\common\FormElements::BUTTON_DELETE."' onclick=\"return confirm('".sprintf(_("Do you really want to delete the profile %s?"), $profile_name)."')\"> |
|
249 | + " . _("Delete")." |
|
250 | 250 | </button> |
251 | 251 | </form> |
252 | 252 | </div>"; |
@@ -255,10 +255,10 @@ discard block |
||
255 | 255 | // dummy width to keep a little distance |
256 | 256 | echo "<div style='width:20px;'></div>"; |
257 | 257 | if ($readiness == core\AbstractProfile::READINESS_LEVEL_SHOWTIME) { |
258 | - $idpLevelUrl = ( isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == "on" ? 'https://' : 'http://') . $_SERVER['SERVER_NAME'] . dirname(dirname($_SERVER['SCRIPT_NAME'])) . "?idp=" . $my_inst->identifier; |
|
259 | - echo "<div style='display: table-cell; text-align:center;'><p><strong>" . _("User Download Link") . "</strong></p>"; |
|
260 | - $displayurl = $idpLevelUrl . "&profile=" . $profile_list->identifier; |
|
261 | - $QRurl = $idpLevelUrl . "&profile=" . $profile_list->identifier; |
|
258 | + $idpLevelUrl = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == "on" ? 'https://' : 'http://').$_SERVER['SERVER_NAME'].dirname(dirname($_SERVER['SCRIPT_NAME']))."?idp=".$my_inst->identifier; |
|
259 | + echo "<div style='display: table-cell; text-align:center;'><p><strong>"._("User Download Link")."</strong></p>"; |
|
260 | + $displayurl = $idpLevelUrl."&profile=".$profile_list->identifier; |
|
261 | + $QRurl = $idpLevelUrl."&profile=".$profile_list->identifier; |
|
262 | 262 | $qrCode = new \chillerlan\QRCode\QRCode(new \chillerlan\QRCode\QROptions([ |
263 | 263 | 'outputType' => \chillerlan\QRCode\QRCode::OUTPUT_IMAGE_PNG, |
264 | 264 | 'eccLevel' => \chillerlan\QRCode\QRCode::ECC_H, |
@@ -270,16 +270,16 @@ discard block |
||
270 | 270 | if ($rawQr === NULL) { |
271 | 271 | throw new Exception("Something went seriously wrong during QR code generation!"); |
272 | 272 | } |
273 | - $uri = "data:image/png;base64," . base64_encode($uiElements->pngInjectConsortiumLogo($rawQr, web\lib\admin\UIElements::QRCODE_PIXELS_PER_SYMBOL)); |
|
273 | + $uri = "data:image/png;base64,".base64_encode($uiElements->pngInjectConsortiumLogo($rawQr, web\lib\admin\UIElements::QRCODE_PIXELS_PER_SYMBOL)); |
|
274 | 274 | $size = getimagesize($uri); |
275 | - echo "<img width='" . ($size[0] / 4) . "' height='" . ($size[1] / 4) . "' src='$uri' alt='QR-code'/>"; |
|
275 | + echo "<img width='".($size[0] / 4)."' height='".($size[1] / 4)."' src='$uri' alt='QR-code'/>"; |
|
276 | 276 | |
277 | 277 | //echo "<nobr>$displayurl</nobr></a>"; |
278 | 278 | echo "<p>$displayurl</p></a>"; |
279 | 279 | echo "</div>"; |
280 | 280 | // dummy width to keep a little distance |
281 | 281 | echo "<div style='width:20px;'></div>"; |
282 | - echo "<div style='display: table-cell; min-width:200px;'><p><strong>" . _("User Downloads") . "</strong></p><table>"; |
|
282 | + echo "<div style='display: table-cell; min-width:200px;'><p><strong>"._("User Downloads")."</strong></p><table>"; |
|
283 | 283 | $stats = $profile_list->getUserDownloadStats(); |
284 | 284 | foreach ($stats as $dev => $count) { |
285 | 285 | echo "<tr><td><strong>$dev</strong></td><td>$count</td></tr>"; |
@@ -27,7 +27,7 @@ discard block |
||
27 | 27 | |
28 | 28 | ?> |
29 | 29 | <?php |
30 | -require_once dirname(dirname(dirname(__FILE__))) . "/config/_config.php"; |
|
30 | +require_once dirname(dirname(dirname(__FILE__)))."/config/_config.php"; |
|
31 | 31 | |
32 | 32 | $deco = new \web\lib\admin\PageDecoration(); |
33 | 33 | $validator = new \web\lib\common\InputValidation(); |
@@ -127,8 +127,8 @@ discard block |
||
127 | 127 | <?php |
128 | 128 | echo $uiElements->instLevelInfoBoxes($my_inst); |
129 | 129 | |
130 | - echo "<form enctype='multipart/form-data' action='edit_profile_result.php?inst_id=$my_inst->identifier" . ($my_profile !== NULL ? "&profile_id=" . $my_profile->identifier : "") . "' method='post' accept-charset='UTF-8'> |
|
131 | - <input type='hidden' name='MAX_FILE_SIZE' value='" . \config\Master::MAX_UPLOAD_SIZE . "'>"; |
|
130 | + echo "<form enctype='multipart/form-data' action='edit_profile_result.php?inst_id=$my_inst->identifier".($my_profile !== NULL ? "&profile_id=".$my_profile->identifier : "")."' method='post' accept-charset='UTF-8'> |
|
131 | + <input type='hidden' name='MAX_FILE_SIZE' value='" . \config\Master::MAX_UPLOAD_SIZE."'>"; |
|
132 | 132 | $optionDisplay = new \web\lib\admin\OptionDisplay($profile_options, "Profile"); |
133 | 133 | ?> |
134 | 134 | <fieldset class="option_container"> |
@@ -137,19 +137,19 @@ discard block |
||
137 | 137 | </legend> |
138 | 138 | <?php |
139 | 139 | if ($wizardStyle) { |
140 | - echo "<p>" . _("We will now define a profile for your user group(s). You can add as many profiles as you like by choosing the appropriate button on the end of the page. After we are done, the wizard is finished and you will be taken to the main IdP administration page.") . "</p>"; |
|
140 | + echo "<p>"._("We will now define a profile for your user group(s). You can add as many profiles as you like by choosing the appropriate button on the end of the page. After we are done, the wizard is finished and you will be taken to the main IdP administration page.")."</p>"; |
|
141 | 141 | } |
142 | 142 | ?> |
143 | 143 | <h3><?php echo _("Profile Name and RADIUS realm"); ?></h3> |
144 | 144 | <?php |
145 | 145 | if ($wizardStyle) { |
146 | - echo "<p>" . _("First of all we need a name for the profile. This will be displayed to end users, so you may want to choose a descriptive name like 'Professors', 'Students of the Faculty of Bioscience', etc.") . "</p>"; |
|
147 | - echo "<p>" . _("Optionally, you can provide a longer descriptive text about who this profile is for. If you specify it, it will be displayed on the download page after the user has selected the profile name in the list.") . "</p>"; |
|
148 | - echo "<p>" . _("You can also tell us your RADIUS realm. "); |
|
146 | + echo "<p>"._("First of all we need a name for the profile. This will be displayed to end users, so you may want to choose a descriptive name like 'Professors', 'Students of the Faculty of Bioscience', etc.")."</p>"; |
|
147 | + echo "<p>"._("Optionally, you can provide a longer descriptive text about who this profile is for. If you specify it, it will be displayed on the download page after the user has selected the profile name in the list.")."</p>"; |
|
148 | + echo "<p>"._("You can also tell us your RADIUS realm. "); |
|
149 | 149 | if (\config\Master::FUNCTIONALITY_LOCATIONS['DIAGNOSTICS'] !== NULL) { |
150 | 150 | printf(_("This is useful if you want to use the sanity check module later, which tests reachability of your realm in the %s infrastructure. "), \config\ConfAssistant::CONSORTIUM['display_name']); |
151 | 151 | } |
152 | - echo _("It is required to enter the realm name if you want to support anonymous outer identities (see below).") . "</p>"; |
|
152 | + echo _("It is required to enter the realm name if you want to support anonymous outer identities (see below).")."</p>"; |
|
153 | 153 | } |
154 | 154 | |
155 | 155 | echo $optionDisplay->prefilledOptionTable("profile"); |
@@ -203,9 +203,9 @@ discard block |
||
203 | 203 | |
204 | 204 | <?php |
205 | 205 | if ($wizardStyle) { |
206 | - echo "<p>" . sprintf(_("Some installers support a feature called 'Anonymous outer identity'. If you don't know what this is, please read <a href='%s'>this article</a>."), "https://confluence.terena.org/display/H2eduroam/eap-types") . "</p>"; |
|
207 | - echo "<p>" . _("On some platforms, the installers can suggest username endings and/or verify the user input to contain the realm suffix.") . "</p>"; |
|
208 | - echo "<p>" . _("The realm check feature needs to know an outer ID which actually gets a chance to authenticate. If your RADIUS server lets only select usernames pass, it is useful to supply the information which of those (outer ID) username we can use for testing.") . "</p>"; |
|
206 | + echo "<p>".sprintf(_("Some installers support a feature called 'Anonymous outer identity'. If you don't know what this is, please read <a href='%s'>this article</a>."), "https://confluence.terena.org/display/H2eduroam/eap-types")."</p>"; |
|
207 | + echo "<p>"._("On some platforms, the installers can suggest username endings and/or verify the user input to contain the realm suffix.")."</p>"; |
|
208 | + echo "<p>"._("The realm check feature needs to know an outer ID which actually gets a chance to authenticate. If your RADIUS server lets only select usernames pass, it is useful to supply the information which of those (outer ID) username we can use for testing.")."</p>"; |
|
209 | 209 | } |
210 | 210 | ?> |
211 | 211 | <p> |
@@ -222,7 +222,7 @@ discard block |
||
222 | 222 | </td> |
223 | 223 | <td> |
224 | 224 | <input type='checkbox' <?php |
225 | - echo ($verify != FALSE ? "checked" : "" ); |
|
225 | + echo ($verify != FALSE ? "checked" : ""); |
|
226 | 226 | ?> name='verify_support' onclick=' |
227 | 227 | if (this.form.elements["verify_support"].checked !== true || this.form.elements["realm"].value.length == 0) { |
228 | 228 | this.form.elements["hint_support"].setAttribute("disabled", "disabled"); |
@@ -230,48 +230,48 @@ discard block |
||
230 | 230 | this.form.elements["hint_support"].removeAttribute("disabled"); |
231 | 231 | } |
232 | 232 | ;'/> |
233 | - <span id='hint_label' style='<?php echo ($realm == "" ? "color:#999999" : "" ); ?>'> |
|
233 | + <span id='hint_label' style='<?php echo ($realm == "" ? "color:#999999" : ""); ?>'> |
|
234 | 234 | <?php echo _("Prefill user input with realm suffix:"); ?> |
235 | 235 | </span> |
236 | - <input type='checkbox' <?php echo ($verify == FALSE ? "disabled" : "" ); ?> name='hint_support' <?php echo ( $hint != FALSE ? "checked" : "" ); ?> /> |
|
236 | + <input type='checkbox' <?php echo ($verify == FALSE ? "disabled" : ""); ?> name='hint_support' <?php echo ($hint != FALSE ? "checked" : ""); ?> /> |
|
237 | 237 | </td> |
238 | 238 | </tr> |
239 | 239 | <tr> |
240 | 240 | |
241 | 241 | <!-- checkbox and input field for anonymity support, available only when realm is known--> |
242 | 242 | <td> |
243 | - <span id='anon_support_label' style='<?php echo ($realm == "" ? "color:#999999" : "" ); ?>'> |
|
243 | + <span id='anon_support_label' style='<?php echo ($realm == "" ? "color:#999999" : ""); ?>'> |
|
244 | 244 | <?php echo _("Enable Anonymous Outer Identity:"); ?> |
245 | 245 | </span> |
246 | 246 | </td> |
247 | 247 | <td> |
248 | - <input type='checkbox' <?php echo ($useAnon != FALSE ? "checked" : "" ) . ($realm == "" ? " disabled" : "" ); ?> name='anon_support' onclick=' |
|
248 | + <input type='checkbox' <?php echo ($useAnon != FALSE ? "checked" : "").($realm == "" ? " disabled" : ""); ?> name='anon_support' onclick=' |
|
249 | 249 | if (this.form.elements["anon_support"].checked !== true) { |
250 | 250 | this.form.elements["anon_local"].setAttribute("disabled", "disabled"); |
251 | 251 | } else { |
252 | 252 | this.form.elements["anon_local"].removeAttribute("disabled"); |
253 | 253 | } |
254 | 254 | ;'/> |
255 | - <input type='text' <?php echo ($checkuserOuter == FALSE ? "disabled" : "" ); ?> name='anon_local' value='<?php echo $anonLocal; ?>'/> |
|
255 | + <input type='text' <?php echo ($checkuserOuter == FALSE ? "disabled" : ""); ?> name='anon_local' value='<?php echo $anonLocal; ?>'/> |
|
256 | 256 | </td> |
257 | 257 | </tr> |
258 | 258 | <tr> |
259 | 259 | |
260 | 260 | <!-- checkbox and input field for check realm outer id, available only when realm is known--> |
261 | 261 | <td> |
262 | - <span id='checkuser_label' style='<?php echo ($realm == "" ? "color:#999999" : "" ); ?>'> |
|
262 | + <span id='checkuser_label' style='<?php echo ($realm == "" ? "color:#999999" : ""); ?>'> |
|
263 | 263 | <?php echo _("Use special Outer Identity for realm checks:"); ?> |
264 | 264 | </span> |
265 | 265 | </td> |
266 | 266 | <td> |
267 | - <input type='checkbox' <?php echo ($checkuserOuter != FALSE ? "checked" : "" ) . ($realm == "" ? " disabled" : "" ); ?> name='checkuser_support' onclick=' |
|
267 | + <input type='checkbox' <?php echo ($checkuserOuter != FALSE ? "checked" : "").($realm == "" ? " disabled" : ""); ?> name='checkuser_support' onclick=' |
|
268 | 268 | if (this.form.elements["checkuser_support"].checked !== true) { |
269 | 269 | this.form.elements["checkuser_local"].setAttribute("disabled", "disabled"); |
270 | 270 | } else { |
271 | 271 | this.form.elements["checkuser_local"].removeAttribute("disabled"); |
272 | 272 | } |
273 | 273 | ;'/> |
274 | - <input type='text' <?php echo ($checkuserOuter == FALSE ? "disabled" : "" ); ?> name='checkuser_local' value='<?php echo $checkuserValue; ?>'/> |
|
274 | + <input type='text' <?php echo ($checkuserOuter == FALSE ? "disabled" : ""); ?> name='checkuser_local' value='<?php echo $checkuserValue; ?>'/> |
|
275 | 275 | </td> |
276 | 276 | </tr> |
277 | 277 | </table> |
@@ -281,20 +281,20 @@ discard block |
||
281 | 281 | |
282 | 282 | <?php |
283 | 283 | if ($wizardStyle) { |
284 | - echo "<p>" . _("The CAT has a download area for end users. There, they will, for example, learn about the support pointers you entered earlier. The CAT can also immediately offer the installers for the profile for download. If you don't want that, you can instead enter a web site location where you want your users to be redirected to. You, as the administrator, can still download the profiles to place them on that page (see the 'Compatibility Matrix' button on the dashboard).") . "</p>"; |
|
284 | + echo "<p>"._("The CAT has a download area for end users. There, they will, for example, learn about the support pointers you entered earlier. The CAT can also immediately offer the installers for the profile for download. If you don't want that, you can instead enter a web site location where you want your users to be redirected to. You, as the administrator, can still download the profiles to place them on that page (see the 'Compatibility Matrix' button on the dashboard).")."</p>"; |
|
285 | 285 | } |
286 | 286 | ?> |
287 | 287 | <p> |
288 | 288 | |
289 | 289 | <?php |
290 | - echo "<span id='redirect_label' style='" . ($realm == "" ? "color:#999999" : "" ) . "'><label for='redirect'>" . _("Redirect end users to own web page:") . "</label></span> |
|
291 | - <input type='checkbox' name='redirect' id='redirect' " . ($blacklisted === FALSE ? "" : "checked " ) . "onclick=' |
|
290 | + echo "<span id='redirect_label' style='".($realm == "" ? "color:#999999" : "")."'><label for='redirect'>"._("Redirect end users to own web page:")."</label></span> |
|
291 | + <input type='checkbox' name='redirect' id='redirect' " . ($blacklisted === FALSE ? "" : "checked ")."onclick=' |
|
292 | 292 | if (this.form.elements[\"redirect\"].checked != true) { |
293 | 293 | this.form.elements[\"redirect_target\"].setAttribute(\"disabled\", \"disabled\"); |
294 | 294 | } else { |
295 | 295 | this.form.elements[\"redirect_target\"].removeAttribute(\"disabled\"); |
296 | 296 | };'/> |
297 | - <input type='text' name='redirect_target' " . ($blacklisted !== FALSE ? "value='$blacklisted'" : "disabled" ) . "/>"; |
|
297 | + <input type='text' name='redirect_target' " . ($blacklisted !== FALSE ? "value='$blacklisted'" : "disabled")."/>"; |
|
298 | 298 | ?> |
299 | 299 | </p> |
300 | 300 | |
@@ -303,7 +303,7 @@ discard block |
||
303 | 303 | <legend><strong><?php echo _("Supported EAP types"); ?></strong></legend> |
304 | 304 | <?php |
305 | 305 | if ($wizardStyle) { |
306 | - echo "<p>" . _("Now, we need to know which EAP types your IdP supports. If you support multiple EAP types, you can assign every type a priority (1=highest). This tool will always generate an automatic installer for the EAP type with the highest priority; only if the user's device can't use that EAP type, we will use an EAP type further down in the list.") . "</p>"; |
|
306 | + echo "<p>"._("Now, we need to know which EAP types your IdP supports. If you support multiple EAP types, you can assign every type a priority (1=highest). This tool will always generate an automatic installer for the EAP type with the highest priority; only if the user's device can't use that EAP type, we will use an EAP type further down in the list.")."</p>"; |
|
307 | 307 | } |
308 | 308 | ?> |
309 | 309 | <?php |
@@ -336,7 +336,7 @@ discard block |
||
336 | 336 | <?php |
337 | 337 | $D = []; |
338 | 338 | foreach ($prefill_methods as $prio => $value) { |
339 | - print '<li>' . $value->getPrintableRep() . "</li>\n"; |
|
339 | + print '<li>'.$value->getPrintableRep()."</li>\n"; |
|
340 | 340 | $D[$value->getPrintableRep()] = $prio; |
341 | 341 | } |
342 | 342 | ?> |
@@ -362,7 +362,7 @@ discard block |
||
362 | 362 | } |
363 | 363 | $display = $a->getPrintableRep(); |
364 | 364 | if (!isset($D[$a->getPrintableRep()])) { |
365 | - print '<li class="eap1">' . $a->getPrintableRep() . "</li>\n"; |
|
365 | + print '<li class="eap1">'.$a->getPrintableRep()."</li>\n"; |
|
366 | 366 | } |
367 | 367 | } |
368 | 368 | ?> |
@@ -375,8 +375,8 @@ discard block |
||
375 | 375 | foreach ($methods as $a) { |
376 | 376 | $display = $a->getPrintableRep(); |
377 | 377 | $v = isset($D[$display]) ? $D[$display] : ''; |
378 | - print '<input type="hidden" class="eapm" name="' . $display . '" id="EAP-' . $display . '" value="' . $display . '">'; |
|
379 | - print '<input type="hidden" class="eapmv" name="' . $display . '-priority" id="EAP-' . $display . '-priority" value="' . $v . '">'; |
|
378 | + print '<input type="hidden" class="eapm" name="'.$display.'" id="EAP-'.$display.'" value="'.$display.'">'; |
|
379 | + print '<input type="hidden" class="eapmv" name="'.$display.'-priority" id="EAP-'.$display.'-priority" value="'.$v.'">'; |
|
380 | 380 | } |
381 | 381 | ?> |
382 | 382 | <br style="clear:both;" /> |
@@ -396,11 +396,11 @@ discard block |
||
396 | 396 | foreach ($optionsAlreadySet as $optionNames) { |
397 | 397 | if (preg_match("/^support:/", $optionNames)) { |
398 | 398 | $has_support_options[$optionNames] = "SET"; |
399 | - $support_text .= "<li><strong>" . $uiElements->displayName($optionNames) . "</strong></li>"; |
|
399 | + $support_text .= "<li><strong>".$uiElements->displayName($optionNames)."</strong></li>"; |
|
400 | 400 | } |
401 | 401 | if (preg_match("/^media:/", $optionNames)) { |
402 | 402 | $has_media_options[$optionNames] = "SET"; |
403 | - $media_text .= "<li><strong>" . $uiElements->displayName($optionNames) . "</strong></li>"; |
|
403 | + $media_text .= "<li><strong>".$uiElements->displayName($optionNames)."</strong></li>"; |
|
404 | 404 | } |
405 | 405 | } |
406 | 406 | $fields = [ |
@@ -409,22 +409,22 @@ discard block |
||
409 | 409 | "media" => _("Media Properties for this profile")]; |
410 | 410 | |
411 | 411 | foreach ($fields as $name => $description) { |
412 | - echo "<fieldset class='option_container' id='" . $name . "_override'> |
|
412 | + echo "<fieldset class='option_container' id='".$name."_override'> |
|
413 | 413 | <legend><strong>$description</strong></legend> |
414 | 414 | <p>"; |
415 | 415 | |
416 | - if (count(${"has_" . $name . "_options"}) > 0) { |
|
417 | - printf(ngettext("The option %s is already defined IdP-wide. If you set it here on profile level, this setting will override the IdP-wide one.", "The options %s are already defined IdP-wide. If you set them here on profile level, these settings will override the IdP-wide ones.", count(${"has_" . $name . "_options"})), "<ul>" . ${$name . "_text"} . "</ul>"); |
|
416 | + if (count(${"has_".$name."_options"}) > 0) { |
|
417 | + printf(ngettext("The option %s is already defined IdP-wide. If you set it here on profile level, this setting will override the IdP-wide one.", "The options %s are already defined IdP-wide. If you set them here on profile level, these settings will override the IdP-wide ones.", count(${"has_".$name."_options"})), "<ul>".${$name."_text"}."</ul>"); |
|
418 | 418 | } |
419 | 419 | |
420 | 420 | echo "</p>"; |
421 | 421 | echo $optionDisplay->prefilledOptionTable($name); |
422 | - echo "<button type='button' class='newoption' onclick='getXML(\"$name\")'>" . _("Add new option") . "</button>"; |
|
422 | + echo "<button type='button' class='newoption' onclick='getXML(\"$name\")'>"._("Add new option")."</button>"; |
|
423 | 423 | echo "</fieldset>"; |
424 | 424 | } |
425 | 425 | |
426 | 426 | if ($wizardStyle) { |
427 | - echo "<p>" . _("When you are sure that everything is correct, please click on 'Save data' and you will be taken to your IdP Dashboard page.") . "</p>"; |
|
427 | + echo "<p>"._("When you are sure that everything is correct, please click on 'Save data' and you will be taken to your IdP Dashboard page.")."</p>"; |
|
428 | 428 | } |
429 | -echo "<p><button type='submit' name='submitbutton' value='" . web\lib\common\FormElements::BUTTON_SAVE . "'>" . _("Save data") . "</button><button type='button' class='delete' name='abortbutton' value='abort' onclick='javascript:window.location = \"overview_idp.php?inst_id=$my_inst->identifier\"'>" . _("Discard changes") . "</button></p></form>"; |
|
429 | +echo "<p><button type='submit' name='submitbutton' value='".web\lib\common\FormElements::BUTTON_SAVE."'>"._("Save data")."</button><button type='button' class='delete' name='abortbutton' value='abort' onclick='javascript:window.location = \"overview_idp.php?inst_id=$my_inst->identifier\"'>"._("Discard changes")."</button></p></form>"; |
|
430 | 430 | echo $deco->footer(); |
@@ -21,7 +21,7 @@ discard block |
||
21 | 21 | |
22 | 22 | namespace core; |
23 | 23 | |
24 | -require_once dirname(dirname(dirname(__FILE__))) . "/config/_config.php"; |
|
24 | +require_once dirname(dirname(dirname(__FILE__)))."/config/_config.php"; |
|
25 | 25 | |
26 | 26 | $instMgmt = new \core\UserManagement(); |
27 | 27 | $deco = new \web\lib\admin\PageDecoration(); |
@@ -51,7 +51,7 @@ discard block |
||
51 | 51 | <?php echo $uiElements->infoblock($user->getAttributes(), "user", "User"); ?> |
52 | 52 | <tr> |
53 | 53 | <td> |
54 | - <?php echo "" . _("Unique Identifier") ?> |
|
54 | + <?php echo ""._("Unique Identifier") ?> |
|
55 | 55 | </td> |
56 | 56 | <td> |
57 | 57 | </td> |
@@ -64,14 +64,14 @@ discard block |
||
64 | 64 | <div> |
65 | 65 | <?php |
66 | 66 | if (\config\Master::DB['USER']['readonly'] === FALSE) { |
67 | - echo "<a href='edit_user.php'><button>" . _("Edit User Details") . "</button></a>"; |
|
67 | + echo "<a href='edit_user.php'><button>"._("Edit User Details")."</button></a>"; |
|
68 | 68 | } |
69 | 69 | |
70 | 70 | if ($user->isFederationAdmin()) { |
71 | - echo "<form action='overview_federation.php' method='GET' accept-charset='UTF-8'><button type='submit'>" . sprintf(_('Click here for %s management tasks'), $uiElements->nomenclatureFed) . "</button></form>"; |
|
71 | + echo "<form action='overview_federation.php' method='GET' accept-charset='UTF-8'><button type='submit'>".sprintf(_('Click here for %s management tasks'), $uiElements->nomenclatureFed)."</button></form>"; |
|
72 | 72 | } |
73 | 73 | if ($user->isSuperadmin()) { |
74 | - echo "<form action='112365365321.php' method='GET' accept-charset='UTF-8'><button type='submit'>" . _('Click here to access the superadmin page') . "</button></form>"; |
|
74 | + echo "<form action='112365365321.php' method='GET' accept-charset='UTF-8'><button type='submit'>"._('Click here to access the superadmin page')."</button></form>"; |
|
75 | 75 | } |
76 | 76 | ?> |
77 | 77 | </div> |
@@ -83,7 +83,7 @@ discard block |
||
83 | 83 | if (\config\Master::FUNCTIONALITY_LOCATIONS['CONFASSISTANT_SILVERBULLET'] == "LOCAL") { |
84 | 84 | $target = "https://wiki.geant.org/x/SSNwBg"; // Managed IdP manual |
85 | 85 | } |
86 | - $helptext = "<h3 style='display:inline;'>" . sprintf(_("(Need help? Refer to the <a href='%s'>%s administrator manual</a>)"), $target, $uiElements->nomenclatureInst) . "</h3>"; |
|
86 | + $helptext = "<h3 style='display:inline;'>".sprintf(_("(Need help? Refer to the <a href='%s'>%s administrator manual</a>)"), $target, $uiElements->nomenclatureInst)."</h3>"; |
|
87 | 87 | } else { |
88 | 88 | $helptext = ""; |
89 | 89 | } |
@@ -92,7 +92,7 @@ discard block |
||
92 | 92 | // we need to run the Federation constructor |
93 | 93 | $cat = new \core\CAT; |
94 | 94 | /// first parameter: number of Identity Providers; second param is the literal configured term for 'Identity Provider' (you may or may not be able to add a plural suffix for your locale) |
95 | - echo "<h2>" . sprintf(ngettext("You are managing the following <span style='display:none'>%d </span>%s:", "You are managing the following <strong>%d</strong> %s:", sizeof($hasInst)), sizeof($hasInst), $uiElements->nomenclatureParticipant) . "</h2>"; |
|
95 | + echo "<h2>".sprintf(ngettext("You are managing the following <span style='display:none'>%d </span>%s:", "You are managing the following <strong>%d</strong> %s:", sizeof($hasInst)), sizeof($hasInst), $uiElements->nomenclatureParticipant)."</h2>"; |
|
96 | 96 | $instlist = []; |
97 | 97 | $my_idps = []; |
98 | 98 | $myFeds = []; |
@@ -136,7 +136,7 @@ discard block |
||
136 | 136 | <?php |
137 | 137 | foreach ($myFeds as $fed_id => $fed_name) { |
138 | 138 | /// nomenclature 'fed', fed name, nomenclature 'inst' |
139 | - echo "<tr><td colspan='4'><strong>" . sprintf(_("%s %s: %s list"), $uiElements->nomenclatureFed, $fed_name, $uiElements->nomenclatureParticipant) . "</strong></td></tr>"; |
|
139 | + echo "<tr><td colspan='4'><strong>".sprintf(_("%s %s: %s list"), $uiElements->nomenclatureFed, $fed_name, $uiElements->nomenclatureParticipant)."</strong></td></tr>"; |
|
140 | 140 | |
141 | 141 | $fedOrganisations = $my_idps[$fed_id]; |
142 | 142 | asort($fedOrganisations); |
@@ -145,7 +145,7 @@ discard block |
||
145 | 145 | $the_inst = $oneinst['object']; |
146 | 146 | |
147 | 147 | echo "<tr>" |
148 | - . "<td>" . $oneinst['name'] . "</td>"; |
|
148 | + . "<td>".$oneinst['name']."</td>"; |
|
149 | 149 | echo "<td>"; |
150 | 150 | $admins = $the_inst->listOwners(); |
151 | 151 | $blessedUser = FALSE; |
@@ -154,7 +154,7 @@ discard block |
||
154 | 154 | $coadmin = new \core\User($username['ID']); |
155 | 155 | $coadmin_name = $coadmin->getAttributes('user:realname'); |
156 | 156 | if (count($coadmin_name) > 0) { |
157 | - echo $coadmin_name[0]['value'] . "<br/>"; |
|
157 | + echo $coadmin_name[0]['value']."<br/>"; |
|
158 | 158 | unset($admins[$number]); |
159 | 159 | } |
160 | 160 | } else { // don't list self |
@@ -200,7 +200,7 @@ discard block |
||
200 | 200 | echo "</td><td>"; // danger zone |
201 | 201 | ?> |
202 | 202 | <form action='edit_participant_result.php?inst_id=<?php echo $the_inst->identifier; ?>' method='post' accept-charset='UTF-8'> |
203 | - <button class='delete' type='submit' name='submitbutton' value='<?php echo \web\lib\common\FormElements::BUTTON_DELETE; ?>' onclick="return confirm('<?php echo ( \config\ConfAssistant::CONSORTIUM['selfservice_registration'] === NULL ? sprintf(_("After deleting the %s, you can not recreate it yourself - you need a new invitation token from the %s administrator!"), $uiElements->nomenclatureInst, $uiElements->nomenclatureFed) . " " : "" ) . sprintf(_("Do you really want to delete your %s %s?"), $uiElements->nomenclatureParticipant, $my_inst->name); ?>')"><?php echo sprintf(_("Delete %s"), $uiElements->nomenclatureParticipant); ?></button> |
|
203 | + <button class='delete' type='submit' name='submitbutton' value='<?php echo \web\lib\common\FormElements::BUTTON_DELETE; ?>' onclick="return confirm('<?php echo (\config\ConfAssistant::CONSORTIUM['selfservice_registration'] === NULL ? sprintf(_("After deleting the %s, you can not recreate it yourself - you need a new invitation token from the %s administrator!"), $uiElements->nomenclatureInst, $uiElements->nomenclatureFed)." " : "").sprintf(_("Do you really want to delete your %s %s?"), $uiElements->nomenclatureParticipant, $my_inst->name); ?>')"><?php echo sprintf(_("Delete %s"), $uiElements->nomenclatureParticipant); ?></button> |
|
204 | 204 | </form> |
205 | 205 | <form action='edit_participant_result.php?inst_id=<?php echo $the_inst->identifier; ?>' method='post' accept-charset='UTF-8'> |
206 | 206 | <button class='delete' type='submit' name='submitbutton' value='<?php echo \web\lib\common\FormElements::BUTTON_FLUSH_AND_RESTART; ?>' onclick="return confirm('<?php echo sprintf(_("This action will delete all properties of the %s and start over the configuration from scratch. Do you really want to reset all settings of the %s %s?"), $uiElements->nomenclatureParticipant, $uiElements->nomenclatureParticipant, $my_inst->name); ?>')"><?php echo sprintf(_("Reset all %s settings"), $uiElements->nomenclatureParticipant); ?></button> |
@@ -211,18 +211,18 @@ discard block |
||
211 | 211 | } |
212 | 212 | echo "</table>"; |
213 | 213 | } else { |
214 | - echo "<h2>" . sprintf(_("You are not managing any %s."), $uiElements->nomenclatureInst) . "</h2>"; |
|
214 | + echo "<h2>".sprintf(_("You are not managing any %s."), $uiElements->nomenclatureInst)."</h2>"; |
|
215 | 215 | } |
216 | 216 | if (\config\Master::DB['INST']['readonly'] === FALSE) { |
217 | 217 | if (\config\ConfAssistant::CONSORTIUM['selfservice_registration'] === NULL) { |
218 | - echo "<p>" . sprintf(_("Please ask your %s administrator to invite you to become an %s administrator."), $uiElements->nomenclatureFed, $uiElements->nomenclatureParticipant) . "</p>"; |
|
218 | + echo "<p>".sprintf(_("Please ask your %s administrator to invite you to become an %s administrator."), $uiElements->nomenclatureFed, $uiElements->nomenclatureParticipant)."</p>"; |
|
219 | 219 | echo "<hr/> |
220 | 220 | <div style='white-space: nowrap;'> |
221 | 221 | <form action='action_enrollment.php' method='get' accept-charset='UTF-8'>" . |
222 | - sprintf(_("Did you receive an invitation token to manage an %s? Please paste it here:"), $uiElements->nomenclatureParticipant) . |
|
222 | + sprintf(_("Did you receive an invitation token to manage an %s? Please paste it here:"), $uiElements->nomenclatureParticipant). |
|
223 | 223 | " <input type='text' id='token' name='token'/> |
224 | 224 | <button type='submit'>" . |
225 | - _("Go!") . " |
|
225 | + _("Go!")." |
|
226 | 226 | </button> |
227 | 227 | </form> |
228 | 228 | </div>"; |
@@ -231,7 +231,7 @@ discard block |
||
231 | 231 | <div style='white-space: nowrap;'> |
232 | 232 | <form action='action_enrollment.php' method='get'><button type='submit' accept-charset='UTF-8'> |
233 | 233 | <input type='hidden' id='token' name='token' value='SELF-REGISTER'/>" . |
234 | - sprintf(_("New %s Registration"), $uiElements->nomenclatureParticipant) . " |
|
234 | + sprintf(_("New %s Registration"), $uiElements->nomenclatureParticipant)." |
|
235 | 235 | </button> |
236 | 236 | </form> |
237 | 237 | </div>"; |
@@ -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 | $auth = new \web\lib\admin\Authentication(); |
25 | 25 | $loggerInstance = new \core\common\Logging(); |
@@ -34,7 +34,7 @@ discard block |
||
34 | 34 | $instId = $my_inst->identifier; |
35 | 35 | // delete the IdP and send user to enrollment |
36 | 36 | $my_inst->destroy(); |
37 | - $loggerInstance->writeAudit($_SESSION['user'], "DEL", "IdP " . $instId); |
|
37 | + $loggerInstance->writeAudit($_SESSION['user'], "DEL", "IdP ".$instId); |
|
38 | 38 | header("Location: overview_user.php"); |
39 | 39 | exit; |
40 | 40 | } |
@@ -50,7 +50,7 @@ discard block |
||
50 | 50 | } |
51 | 51 | // flush all IdP attributes and send user to creation wizard |
52 | 52 | $my_inst->flushAttributes(); |
53 | - $loggerInstance->writeAudit($_SESSION['user'], "DEL", "IdP starting over" . $instId); |
|
53 | + $loggerInstance->writeAudit($_SESSION['user'], "DEL", "IdP starting over".$instId); |
|
54 | 54 | header("Location: edit_participant.php?inst_id=$instId&wizard=true"); |
55 | 55 | exit; |
56 | 56 | } |
@@ -72,21 +72,21 @@ discard block |
||
72 | 72 | } |
73 | 73 | |
74 | 74 | $inst_name = $my_inst->name; |
75 | -echo "<h1>" . sprintf(_("Submitted attributes for IdP '%s'"), $inst_name) . "</h1>"; |
|
75 | +echo "<h1>".sprintf(_("Submitted attributes for IdP '%s'"), $inst_name)."</h1>"; |
|
76 | 76 | echo "<table>"; |
77 | 77 | echo $optionParser->processSubmittedFields($my_inst, $_POST, $_FILES); |
78 | 78 | echo "</table>"; |
79 | 79 | |
80 | 80 | // delete cached logo, if present |
81 | -$dir = ROOT . '/web/downloads/logos/'; |
|
82 | -$globResult = glob($dir . $my_inst->identifier . "_*.png"); |
|
81 | +$dir = ROOT.'/web/downloads/logos/'; |
|
82 | +$globResult = glob($dir.$my_inst->identifier."_*.png"); |
|
83 | 83 | if ($globResult === FALSE) { // we should catch the improbable error condition |
84 | 84 | $globResult = []; |
85 | 85 | } |
86 | 86 | array_map('unlink', $globResult); |
87 | 87 | $loggerInstance->debug(4, "UNLINK from $dir\n"); |
88 | 88 | |
89 | -$loggerInstance->writeAudit($_SESSION['user'], "MOD", "IdP " . $my_inst->identifier . " - attributes changed"); |
|
89 | +$loggerInstance->writeAudit($_SESSION['user'], "MOD", "IdP ".$my_inst->identifier." - attributes changed"); |
|
90 | 90 | |
91 | 91 | // re-instantiate ourselves... profiles need fresh data |
92 | 92 | |
@@ -98,15 +98,15 @@ discard block |
||
98 | 98 | |
99 | 99 | if (isset(\config\ConfAssistant::CONSORTIUM['ssid']) && count(\config\ConfAssistant::CONSORTIUM['ssid']) > 0) { |
100 | 100 | foreach (\config\ConfAssistant::CONSORTIUM['ssid'] as $ssidname) { |
101 | - $ssids[] = $ssidname . " " . (isset(\config\ConfAssistant::CONSORTIUM['tkipsupport']) && \config\ConfAssistant::CONSORTIUM['tkipsupport'] === TRUE ? _("(WPA2/AES and WPA/TKIP)") : _("(WPA2/AES)") ); |
|
101 | + $ssids[] = $ssidname." ".(isset(\config\ConfAssistant::CONSORTIUM['tkipsupport']) && \config\ConfAssistant::CONSORTIUM['tkipsupport'] === TRUE ? _("(WPA2/AES and WPA/TKIP)") : _("(WPA2/AES)")); |
|
102 | 102 | } |
103 | 103 | } |
104 | 104 | |
105 | 105 | foreach ($my_inst->getAttributes("media:SSID_with_legacy") as $ssidname) { |
106 | - $ssids[] = $ssidname['value'] . " " . _("(WPA2/AES and WPA/TKIP)"); |
|
106 | + $ssids[] = $ssidname['value']." "._("(WPA2/AES and WPA/TKIP)"); |
|
107 | 107 | } |
108 | 108 | foreach ($my_inst->getAttributes("media:SSID") as $ssidname) { |
109 | - $ssids[] = $ssidname['value'] . " " . _("(WPA2/AES)"); |
|
109 | + $ssids[] = $ssidname['value']." "._("(WPA2/AES)"); |
|
110 | 110 | } |
111 | 111 | |
112 | 112 | echo "<table>"; |
@@ -114,7 +114,7 @@ discard block |
||
114 | 114 | if (count($ssids) > 0) { |
115 | 115 | $printedlist = ""; |
116 | 116 | foreach ($ssids as $names) { |
117 | - $printedlist = $printedlist . "$names "; |
|
117 | + $printedlist = $printedlist."$names "; |
|
118 | 118 | } |
119 | 119 | echo $uiElements->boxOkay(sprintf(_("Your installers will configure the following SSIDs: <strong>%s</strong>"), $printedlist), _("SSIDs configured")); |
120 | 120 | } |
@@ -142,7 +142,7 @@ discard block |
||
142 | 142 | // did we get an email address? then, show the silverbullet jumpstart button |
143 | 143 | // otherwise, issue a smartass comment |
144 | 144 | if (count($my_inst->getAttributes("support:email")) > 0) { |
145 | - echo "<form method='post' action='edit_silverbullet.php?inst_id=$my_inst->identifier' accept-charset='UTF-8'><button type='submit'>" . sprintf(_("Continue to %s properties"), \core\ProfileSilverbullet::PRODUCTNAME) . "</button></form>"; |
|
145 | + echo "<form method='post' action='edit_silverbullet.php?inst_id=$my_inst->identifier' accept-charset='UTF-8'><button type='submit'>".sprintf(_("Continue to %s properties"), \core\ProfileSilverbullet::PRODUCTNAME)."</button></form>"; |
|
146 | 146 | } else { |
147 | 147 | echo "<table>"; |
148 | 148 | echo $uiElements->boxError(sprintf(_("You did not submit an e-mail address. This is required for %s. Please go to the %s dashboard and edit your helpdesk settings to include a helpdesk e-mail address."), core\ProfileSilverbullet::PRODUCTNAME, $ui->nomenclatureInst), _("No support e-mail!")); |
@@ -150,9 +150,9 @@ discard block |
||
150 | 150 | } |
151 | 151 | } |
152 | 152 | if (\config\Master::FUNCTIONALITY_LOCATIONS['CONFASSISTANT_RADIUS'] == "LOCAL") { |
153 | - echo "<br/><form method='post' action='edit_profile.php?inst_id=$my_inst->identifier' accept-charset='UTF-8'><button type='submit'>" . _("Continue to RADIUS/EAP profile definition") . "</button></form>"; |
|
153 | + echo "<br/><form method='post' action='edit_profile.php?inst_id=$my_inst->identifier' accept-charset='UTF-8'><button type='submit'>"._("Continue to RADIUS/EAP profile definition")."</button></form>"; |
|
154 | 154 | } |
155 | 155 | } |
156 | -echo "<br/><form method='post' action='overview_user.php?inst_id=$my_inst->identifier' accept-charset='UTF-8'><button type='submit'>" . _("Continue to dashboard") . "</button></form>"; |
|
156 | +echo "<br/><form method='post' action='overview_user.php?inst_id=$my_inst->identifier' accept-charset='UTF-8'><button type='submit'>"._("Continue to dashboard")."</button></form>"; |
|
157 | 157 | |
158 | 158 | echo $deco->footer(); |
@@ -83,7 +83,7 @@ discard block |
||
83 | 83 | $this->installerPath = $cache['path']; |
84 | 84 | if ($this->installerPath !== NULL && $token === NULL && $password === NULL) { |
85 | 85 | $this->loggerInstance->debug(4, "Using cached installer for: $device\n"); |
86 | - $installerProperties['link'] = "API.php?action=downloadInstaller&lang=" . $this->languageInstance->getLang() . "&profile=$profileId&device=$device&generatedfor=$generatedFor"; |
|
86 | + $installerProperties['link'] = "API.php?action=downloadInstaller&lang=".$this->languageInstance->getLang()."&profile=$profileId&device=$device&generatedfor=$generatedFor"; |
|
87 | 87 | $installerProperties['mime'] = $cache['mime']; |
88 | 88 | } else { |
89 | 89 | $myInstaller = $this->generateNewInstaller($device, $profile, $generatedFor, $token, $password); |
@@ -171,7 +171,7 @@ discard block |
||
171 | 171 | $this->loggerInstance->debug(5, "generateNewInstaller() - Device setup done"); |
172 | 172 | $installer = $dev->writeInstaller(); |
173 | 173 | $this->loggerInstance->debug(5, "generateNewInstaller() - writeInstaller complete"); |
174 | - $iPath = $dev->FPATH . '/tmp/' . $installer; |
|
174 | + $iPath = $dev->FPATH.'/tmp/'.$installer; |
|
175 | 175 | if ($iPath && is_file($iPath)) { |
176 | 176 | if (isset($dev->options['mime'])) { |
177 | 177 | $out['mime'] = $dev->options['mime']; |
@@ -179,17 +179,17 @@ discard block |
||
179 | 179 | $info = new \finfo(); |
180 | 180 | $out['mime'] = $info->file($iPath, FILEINFO_MIME_TYPE); |
181 | 181 | } |
182 | - $this->installerPath = $dev->FPATH . '/' . $installer; |
|
182 | + $this->installerPath = $dev->FPATH.'/'.$installer; |
|
183 | 183 | rename($iPath, $this->installerPath); |
184 | 184 | $integerEap = (new \core\common\EAP($dev->selectedEap))->getIntegerRep(); |
185 | 185 | $profile->updateCache($device, $this->installerPath, $out['mime'], $integerEap); |
186 | 186 | if (\config\Master::DEBUG_LEVEL < 4) { |
187 | - \core\common\Entity::rrmdir($dev->FPATH . '/tmp'); |
|
187 | + \core\common\Entity::rrmdir($dev->FPATH.'/tmp'); |
|
188 | 188 | } |
189 | - $this->loggerInstance->debug(4, "Generated installer: " . $this->installerPath . ": for: $device, EAP:" . $integerEap . "\n"); |
|
190 | - $out['link'] = "API.php?action=downloadInstaller&lang=" . $this->languageInstance->getLang() . "&profile=" . $profile->identifier . "&device=$device&generatedfor=$generatedFor"; |
|
189 | + $this->loggerInstance->debug(4, "Generated installer: ".$this->installerPath.": for: $device, EAP:".$integerEap."\n"); |
|
190 | + $out['link'] = "API.php?action=downloadInstaller&lang=".$this->languageInstance->getLang()."&profile=".$profile->identifier."&device=$device&generatedfor=$generatedFor"; |
|
191 | 191 | } else { |
192 | - $this->loggerInstance->debug(2, "Installer generation failed for: " . $profile->identifier . ":$device:" . $this->languageInstance->getLang() . "\n"); |
|
192 | + $this->loggerInstance->debug(2, "Installer generation failed for: ".$profile->identifier.":$device:".$this->languageInstance->getLang()."\n"); |
|
193 | 193 | $out['link'] = 0; |
194 | 194 | } |
195 | 195 | } |
@@ -302,9 +302,9 @@ discard block |
||
302 | 302 | $file = $this->installerPath; |
303 | 303 | $filetype = $output['mime']; |
304 | 304 | $this->loggerInstance->debug(4, "installer MIME type:$filetype\n"); |
305 | - header("Content-type: " . $filetype); |
|
306 | - header('Content-Disposition: inline; filename="' . basename($file) . '"'); |
|
307 | - header('Content-Length: ' . filesize($file)); |
|
305 | + header("Content-type: ".$filetype); |
|
306 | + header('Content-Disposition: inline; filename="'.basename($file).'"'); |
|
307 | + header('Content-Length: '.filesize($file)); |
|
308 | 308 | ob_clean(); |
309 | 309 | flush(); |
310 | 310 | readfile($file); |
@@ -325,7 +325,7 @@ discard block |
||
325 | 325 | $filetype = $info->buffer($inputImage, FILEINFO_MIME_TYPE); |
326 | 326 | $offset = 60 * 60 * 24 * 30; |
327 | 327 | // gmdate cannot fail here - time() is its default argument (and integer), and we are adding an integer to it |
328 | - $expiresString = "Expires: " . /** @scrutinizer ignore-type */ gmdate("D, d M Y H:i:s", time() + $offset) . " GMT"; |
|
328 | + $expiresString = "Expires: "./** @scrutinizer ignore-type */ gmdate("D, d M Y H:i:s", time() + $offset)." GMT"; |
|
329 | 329 | $blob = $inputImage; |
330 | 330 | |
331 | 331 | if ($resize === TRUE) { |
@@ -380,7 +380,7 @@ discard block |
||
380 | 380 | $filetype = 'image/png'; // default, only one code path where it can become different |
381 | 381 | list($width, $height, $resize) = $this->testForResize($widthIn, $heightIn); |
382 | 382 | if ($resize) { |
383 | - $logoFile = ROOT . '/web/downloads/logos/' . $identifier . '_' . $width . '_' . $height . '.png'; |
|
383 | + $logoFile = ROOT.'/web/downloads/logos/'.$identifier.'_'.$width.'_'.$height.'.png'; |
|
384 | 384 | } |
385 | 385 | if (is_file($logoFile)) { // $logoFile could be an empty string but then we will get a FALSE |
386 | 386 | $this->loggerInstance->debug(4, "Using cached logo $logoFile for: $identifier\n"); |
@@ -473,7 +473,7 @@ discard block |
||
473 | 473 | if (!isset($device['match'])) { |
474 | 474 | continue; |
475 | 475 | } |
476 | - if (preg_match('/' . $device['match'] . '/', $browser)) { |
|
476 | + if (preg_match('/'.$device['match'].'/', $browser)) { |
|
477 | 477 | return $this->returnDevice($devId, $device); |
478 | 478 | } |
479 | 479 | } |
@@ -142,17 +142,17 @@ discard block |
||
142 | 142 | foreach (array_keys($this->typeDb) as $name) { |
143 | 143 | if ($className === 0) { |
144 | 144 | $tempArray[] = $name; |
145 | - } elseif (preg_match('/^' . $className . ':/', $name) > 0) { |
|
145 | + } elseif (preg_match('/^'.$className.':/', $name) > 0) { |
|
146 | 146 | $tempArray[] = $name; |
147 | 147 | } |
148 | 148 | } |
149 | 149 | $returnArray = $tempArray; |
150 | 150 | // remove silverbullet-specific options if this deployment is not SB |
151 | 151 | foreach ($tempArray as $key => $val) { |
152 | - if (( \config\Master::FUNCTIONALITY_LOCATIONS['CONFASSISTANT_SILVERBULLET'] != 'LOCAL') && (preg_match('/^fed:silverbullet/', $val) > 0)) { |
|
152 | + if ((\config\Master::FUNCTIONALITY_LOCATIONS['CONFASSISTANT_SILVERBULLET'] != 'LOCAL') && (preg_match('/^fed:silverbullet/', $val) > 0)) { |
|
153 | 153 | unset($returnArray[$key]); |
154 | 154 | } |
155 | - if (( \config\Master::FUNCTIONALITY_LOCATIONS['CONFASSISTANT_RADIUS'] != 'LOCAL') && (preg_match('/^fed:minted_ca_file/', $val) > 0)) { |
|
155 | + if ((\config\Master::FUNCTIONALITY_LOCATIONS['CONFASSISTANT_RADIUS'] != 'LOCAL') && (preg_match('/^fed:minted_ca_file/', $val) > 0)) { |
|
156 | 156 | unset($returnArray[$key]); |
157 | 157 | } |
158 | 158 | } |
@@ -172,7 +172,7 @@ discard block |
||
172 | 172 | if (isset($this->typeDb[$optionname])) { |
173 | 173 | return $this->typeDb[$optionname]; |
174 | 174 | } |
175 | - throw new Exception("Metadata about an option was requested, but the option name does not exist in the system: " . htmlentities($optionname)); |
|
175 | + throw new Exception("Metadata about an option was requested, but the option name does not exist in the system: ".htmlentities($optionname)); |
|
176 | 176 | } |
177 | 177 | |
178 | 178 | /** |
@@ -108,7 +108,7 @@ discard block |
||
108 | 108 | */ |
109 | 109 | public function __construct() { |
110 | 110 | $this->loggerInstance = new Logging(); |
111 | - $this->loggerInstance->debug(3, "--- BEGIN constructing class " . get_class($this) . " .\n"); |
|
111 | + $this->loggerInstance->debug(3, "--- BEGIN constructing class ".get_class($this)." .\n"); |
|
112 | 112 | $this->languageInstance = new Language(); |
113 | 113 | Entity::intoThePotatoes(); |
114 | 114 | // some config elements are displayable. We need some dummies to |
@@ -127,13 +127,13 @@ discard block |
||
127 | 127 | $dummy_organisation2a = _("organization"); |
128 | 128 | $dummy_organisation3 = _("entity"); |
129 | 129 | // and do something useless with the strings so that there's no "unused" complaint |
130 | - if (strlen($dummy_NRO . $dummy_inst1 . $dummy_inst2 . $dummy_inst3 . $dummy_hotspot1 . $dummy_hotspot2 . $dummy_hotspot3 . $dummy_organisation1 . $dummy_organisation2 . $dummy_organisation2a . $dummy_organisation3) < 0) { |
|
130 | + if (strlen($dummy_NRO.$dummy_inst1.$dummy_inst2.$dummy_inst3.$dummy_hotspot1.$dummy_hotspot2.$dummy_hotspot3.$dummy_organisation1.$dummy_organisation2.$dummy_organisation2a.$dummy_organisation3) < 0) { |
|
131 | 131 | throw new Exception("Strings are usually not shorter than 0 characters. We've encountered a string blackhole."); |
132 | 132 | } |
133 | - $xyzVariableFed = \config\ConfAssistant::CONSORTIUM['nomenclature_federation'] . ""; |
|
134 | - $xyzVariableInst = \config\ConfAssistant::CONSORTIUM['nomenclature_institution'] . ""; |
|
135 | - $xyzVariableHotspot = \config\ConfAssistant::CONSORTIUM['nomenclature_hotspot'] . ""; |
|
136 | - $xyzVariableParticipant = \config\ConfAssistant::CONSORTIUM['nomenclature_participant'] . ""; |
|
133 | + $xyzVariableFed = \config\ConfAssistant::CONSORTIUM['nomenclature_federation'].""; |
|
134 | + $xyzVariableInst = \config\ConfAssistant::CONSORTIUM['nomenclature_institution'].""; |
|
135 | + $xyzVariableHotspot = \config\ConfAssistant::CONSORTIUM['nomenclature_hotspot'].""; |
|
136 | + $xyzVariableParticipant = \config\ConfAssistant::CONSORTIUM['nomenclature_participant'].""; |
|
137 | 137 | Entity::$nomenclature_fed = _($xyzVariableFed); |
138 | 138 | Entity::$nomenclature_inst = _($xyzVariableInst); |
139 | 139 | Entity::$nomenclature_hotspot = _($xyzVariableHotspot); |
@@ -148,7 +148,7 @@ discard block |
||
148 | 148 | * Logs the end of lifetime of the entity to the debug log on level 5. |
149 | 149 | */ |
150 | 150 | public function __destruct() { |
151 | - (new Logging())->debug(5, "--- KILL Destructing class " . get_class($this) . " .\n"); |
|
151 | + (new Logging())->debug(5, "--- KILL Destructing class ".get_class($this)." .\n"); |
|
152 | 152 | } |
153 | 153 | |
154 | 154 | /** |
@@ -179,7 +179,7 @@ discard block |
||
179 | 179 | */ |
180 | 180 | public static function createTemporaryDirectory($purpose = 'installer', $failIsFatal = 1) { |
181 | 181 | $loggerInstance = new Logging(); |
182 | - $name = md5(time() . rand()); |
|
182 | + $name = md5(time().rand()); |
|
183 | 183 | $path = ROOT; |
184 | 184 | switch ($purpose) { |
185 | 185 | case 'silverbullet': |
@@ -197,7 +197,7 @@ discard block |
||
197 | 197 | default: |
198 | 198 | throw new Exception("unable to create temporary directory due to unknown purpose: $purpose\n"); |
199 | 199 | } |
200 | - $tmpDir = $path . '/' . $name; |
|
200 | + $tmpDir = $path.'/'.$name; |
|
201 | 201 | $loggerInstance->debug(4, "temp dir: $purpose : $tmpDir\n"); |
202 | 202 | if (!mkdir($tmpDir, 0700, true)) { |
203 | 203 | if ($failIsFatal) { |
@@ -217,7 +217,7 @@ discard block |
||
217 | 217 | * @return void |
218 | 218 | */ |
219 | 219 | public static function rrmdir($dir) { |
220 | - foreach (glob($dir . '/*') as $file) { |
|
220 | + foreach (glob($dir.'/*') as $file) { |
|
221 | 221 | if (is_dir($file)) { |
222 | 222 | Entity::rrmdir($file); |
223 | 223 | } else { |
@@ -242,12 +242,12 @@ discard block |
||
242 | 242 | } |
243 | 243 | // these substr() are guaranteed to yield actual string data, as the |
244 | 244 | // base string is an MD5 hash - has sufficient length |
245 | - $uuid = /** @scrutinizer ignore-type */ substr($chars, 0, 8) . '-'; |
|
246 | - $uuid .= /** @scrutinizer ignore-type */ substr($chars, 8, 4) . '-'; |
|
247 | - $uuid .= /** @scrutinizer ignore-type */ substr($chars, 12, 4) . '-'; |
|
248 | - $uuid .= /** @scrutinizer ignore-type */ substr($chars, 16, 4) . '-'; |
|
245 | + $uuid = /** @scrutinizer ignore-type */ substr($chars, 0, 8).'-'; |
|
246 | + $uuid .= /** @scrutinizer ignore-type */ substr($chars, 8, 4).'-'; |
|
247 | + $uuid .= /** @scrutinizer ignore-type */ substr($chars, 12, 4).'-'; |
|
248 | + $uuid .= /** @scrutinizer ignore-type */ substr($chars, 16, 4).'-'; |
|
249 | 249 | $uuid .= /** @scrutinizer ignore-type */ substr($chars, 20, 12); |
250 | - return $prefix . $uuid; |
|
250 | + return $prefix.$uuid; |
|
251 | 251 | } |
252 | 252 | |
253 | 253 | /** |
@@ -292,8 +292,8 @@ discard block |
||
292 | 292 | // if called from a class, guess based on the class name; |
293 | 293 | // otherwise, on the filename relative to ROOT |
294 | 294 | $myName = $caller['class'] ?? substr($caller['file'], strlen(ROOT)); |
295 | - $loggerInstance->debug(1,$caller); |
|
296 | - $loggerInstance->debug(1,"\nFOUND ".$myName."\n"); |
|
295 | + $loggerInstance->debug(1, $caller); |
|
296 | + $loggerInstance->debug(1, "\nFOUND ".$myName."\n"); |
|
297 | 297 | if (preg_match("/diag/", $myName) == 1) { |
298 | 298 | $ret = "diagnostics"; |
299 | 299 | } elseif (preg_match("/core/", $myName) == 1) { |
@@ -307,7 +307,7 @@ discard block |
||
307 | 307 | } else { |
308 | 308 | $ret = "web_user"; |
309 | 309 | } |
310 | - $loggerInstance->debug(1,"\nRETURNING ".$ret."\n"); |
|
310 | + $loggerInstance->debug(1, "\nRETURNING ".$ret."\n"); |
|
311 | 311 | return $ret; |
312 | 312 | } |
313 | 313 | |
@@ -325,10 +325,10 @@ discard block |
||
325 | 325 | if ($catalogue === NULL) { |
326 | 326 | $theCatalogue = Entity::determineOwnCatalogue(); |
327 | 327 | textdomain($theCatalogue); |
328 | - bindtextdomain($theCatalogue, ROOT . "/translation/"); |
|
328 | + bindtextdomain($theCatalogue, ROOT."/translation/"); |
|
329 | 329 | } else { |
330 | 330 | textdomain($catalogue); |
331 | - bindtextdomain($catalogue, ROOT . "/translation/"); |
|
331 | + bindtextdomain($catalogue, ROOT."/translation/"); |
|
332 | 332 | } |
333 | 333 | } |
334 | 334 |
@@ -21,14 +21,14 @@ discard block |
||
21 | 21 | */ |
22 | 22 | |
23 | 23 | require_once "autoloader.php"; |
24 | -require_once __DIR__ . "/../packageRoot.php"; |
|
24 | +require_once __DIR__."/../packageRoot.php"; |
|
25 | 25 | |
26 | 26 | // enable Composer autoloader, if exists |
27 | -if (file_exists(__DIR__ . "/../vendor/autoload.php") !== FALSE) { |
|
28 | - include_once __DIR__ . "/../vendor/autoload.php"; |
|
27 | +if (file_exists(__DIR__."/../vendor/autoload.php") !== FALSE) { |
|
28 | + include_once __DIR__."/../vendor/autoload.php"; |
|
29 | 29 | } |
30 | 30 | |
31 | -if (!file_exists(ROOT . "/config/Master.php")) { |
|
31 | +if (!file_exists(ROOT."/config/Master.php")) { |
|
32 | 32 | echo "Master configuration file not found. You need to configure the product! At least config/Master.php is required!"; |
33 | 33 | throw new Exception("Master config file not found!"); |
34 | 34 | } |
@@ -36,14 +36,14 @@ discard block |
||
36 | 36 | /* load sub-configs if we are dealing with those in this installation */ |
37 | 37 | |
38 | 38 | if (\config\Master::FUNCTIONALITY_LOCATIONS['CONFASSISTANT_SILVERBULLET'] == 'LOCAL' || \config\Master::FUNCTIONALITY_LOCATIONS['CONFASSISTANT_RADIUS'] == 'LOCAL') { |
39 | - if (!file_exists(ROOT . "/config/ConfAssistant.php")) { |
|
39 | + if (!file_exists(ROOT."/config/ConfAssistant.php")) { |
|
40 | 40 | echo "ConfAssistant configuration file not found. You need to configure the product!"; |
41 | 41 | throw new Exception("ConfAssistant config file not found!"); |
42 | 42 | } |
43 | 43 | } |
44 | 44 | |
45 | 45 | if (\config\Master::FUNCTIONALITY_LOCATIONS['DIAGNOSTICS'] == 'LOCAL') { |
46 | - if (!file_exists(ROOT . "/config/Diagnostics.php")) { |
|
46 | + if (!file_exists(ROOT."/config/Diagnostics.php")) { |
|
47 | 47 | echo "Diagnostics configuration file not found. You need to configure the product!"; |
48 | 48 | throw new Exception("Diagnostics config file not found!"); |
49 | 49 | } |