@@ -88,7 +88,7 @@ |
||
88 | 88 | 'server_suffix' => '.hosted.eduroam.org', |
89 | 89 | 'gracetime' => 90, |
90 | 90 | 'CA' => ["type" => "embedded"], # OCSP URL needs to be configured in openssl.cnf |
91 | - # 'CA' => ["type" => "DFN", "SOAP_API_ENDPOINT" => "http://no.idea.where/"], |
|
91 | + # 'CA' => ["type" => "DFN", "SOAP_API_ENDPOINT" => "http://no.idea.where/"], |
|
92 | 92 | |
93 | 93 | ], |
94 | 94 | /** |
@@ -103,13 +103,13 @@ discard block |
||
103 | 103 | ], |
104 | 104 | |
105 | 105 | /** |
106 | - * Configuration for GeoIP2 |
|
107 | - * Beware, the legacy version does not really work with IPv6 addresses |
|
108 | - * version: set to 2 if you wish to use GeoIP2, to 1 for the legacy version or set to 0 to turn off geolocation service |
|
109 | - * geoip2-path-to-autoloader: points to the GeoIP2 autoloader |
|
110 | - * geoip2-path-to-db: points to the GeoIP2 city database |
|
111 | - * @var array |
|
112 | - */ |
|
106 | + * Configuration for GeoIP2 |
|
107 | + * Beware, the legacy version does not really work with IPv6 addresses |
|
108 | + * version: set to 2 if you wish to use GeoIP2, to 1 for the legacy version or set to 0 to turn off geolocation service |
|
109 | + * geoip2-path-to-autoloader: points to the GeoIP2 autoloader |
|
110 | + * geoip2-path-to-db: points to the GeoIP2 city database |
|
111 | + * @var array |
|
112 | + */ |
|
113 | 113 | |
114 | 114 | 'GEOIP' => [ |
115 | 115 | 'version' => 0, |
@@ -127,7 +127,6 @@ discard block |
||
127 | 127 | * mails, just configure the signing cert with these parameters. All must |
128 | 128 | * be non-NULL for signing to happen. If you don't need a keypass, make |
129 | 129 | * it an empty string instead. |
130 | - |
|
131 | 130 | * @var array |
132 | 131 | */ |
133 | 132 | 'MAILSETTINGS' => [ // we always use Submission |
@@ -146,25 +145,25 @@ discard block |
||
146 | 145 | * @var array |
147 | 146 | */ |
148 | 147 | 'LANGUAGES' => [ |
149 | - 'bg' => ['display' => 'Български', 'locale' => 'bg_BG.utf8', 'latin_based' => FALSE], |
|
150 | - 'ca' => ['display' => 'Català', 'locale' => 'ca_ES.utf8', 'latin_based' => TRUE], |
|
151 | - 'cs' => ['display' => 'Čeština', 'locale' => 'cs_CZ.utf8', 'latin_based' => TRUE], |
|
152 | - 'de' => ['display' => 'Deutsch', 'locale' => 'de_DE.utf8', 'latin_based' => TRUE], |
|
153 | - 'el' => ['display' => 'Ελληνικά', 'locale' => 'el_GR.utf8', 'latin_based' => FALSE], |
|
154 | - 'en' => ['display' => 'English(GB)', 'locale' => 'en_GB.utf8', 'latin_based' => TRUE], |
|
155 | - 'es' => ['display' => 'Español', 'locale' => 'es_ES.utf8', 'latin_based' => TRUE], |
|
156 | - 'fr' => ['display' => 'Français', 'locale' => 'fr_FR.utf8', 'latin_based' => TRUE], |
|
157 | - 'gl' => ['display' => 'Galego', 'locale' => 'gl_ES.utf8', 'latin_based' => TRUE], |
|
158 | - 'hr' => ['display' => 'Hrvatski', 'locale' => 'hr_HR.utf8', 'latin_based' => TRUE], |
|
159 | - 'it' => ['display' => 'Italiano', 'locale' => 'it_IT.utf8', 'latin_based' => TRUE], |
|
160 | - 'lt' => ['display' => 'lietuvių', 'locale' => 'lt_LT.utf8', 'latin_based' => TRUE], |
|
161 | - 'nb' => ['display' => 'Norsk', 'locale' => 'nb_NO.utf8', 'latin_based' => TRUE], |
|
162 | - 'pl' => ['display' => 'Polski', 'locale' => 'pl_PL.utf8', 'latin_based' => TRUE], |
|
163 | - 'sl' => ['display' => 'Slovenščina', 'locale' => 'sl_SI.utf8', 'latin_based' => TRUE], |
|
164 | - 'sr' => ['display' => 'Srpski', 'locale' => 'sr_RS@latin', 'latin_based' => TRUE], |
|
165 | - 'fi' => ['display' => 'Suomi', 'locale' => 'fi_FI.utf8', 'latin_based' => TRUE], |
|
166 | - 'hu' => ['display' => 'Magyar', 'locale' => 'hu_HU.utf8', 'latin_based' => TRUE], |
|
167 | - 'pt' => ['display' => 'Português', 'locale' => 'pt_PT.utf8', 'latin_based' => TRUE], |
|
148 | + 'bg' => ['display' => 'Български', 'locale' => 'bg_BG.utf8', 'latin_based' => FALSE], |
|
149 | + 'ca' => ['display' => 'Català', 'locale' => 'ca_ES.utf8', 'latin_based' => TRUE], |
|
150 | + 'cs' => ['display' => 'Čeština', 'locale' => 'cs_CZ.utf8', 'latin_based' => TRUE], |
|
151 | + 'de' => ['display' => 'Deutsch', 'locale' => 'de_DE.utf8', 'latin_based' => TRUE], |
|
152 | + 'el' => ['display' => 'Ελληνικά', 'locale' => 'el_GR.utf8', 'latin_based' => FALSE], |
|
153 | + 'en' => ['display' => 'English(GB)', 'locale' => 'en_GB.utf8', 'latin_based' => TRUE], |
|
154 | + 'es' => ['display' => 'Español', 'locale' => 'es_ES.utf8', 'latin_based' => TRUE], |
|
155 | + 'fr' => ['display' => 'Français', 'locale' => 'fr_FR.utf8', 'latin_based' => TRUE], |
|
156 | + 'gl' => ['display' => 'Galego', 'locale' => 'gl_ES.utf8', 'latin_based' => TRUE], |
|
157 | + 'hr' => ['display' => 'Hrvatski', 'locale' => 'hr_HR.utf8', 'latin_based' => TRUE], |
|
158 | + 'it' => ['display' => 'Italiano', 'locale' => 'it_IT.utf8', 'latin_based' => TRUE], |
|
159 | + 'lt' => ['display' => 'lietuvių', 'locale' => 'lt_LT.utf8', 'latin_based' => TRUE], |
|
160 | + 'nb' => ['display' => 'Norsk', 'locale' => 'nb_NO.utf8', 'latin_based' => TRUE], |
|
161 | + 'pl' => ['display' => 'Polski', 'locale' => 'pl_PL.utf8', 'latin_based' => TRUE], |
|
162 | + 'sl' => ['display' => 'Slovenščina', 'locale' => 'sl_SI.utf8', 'latin_based' => TRUE], |
|
163 | + 'sr' => ['display' => 'Srpski', 'locale' => 'sr_RS@latin', 'latin_based' => TRUE], |
|
164 | + 'fi' => ['display' => 'Suomi', 'locale' => 'fi_FI.utf8', 'latin_based' => TRUE], |
|
165 | + 'hu' => ['display' => 'Magyar', 'locale' => 'hu_HU.utf8', 'latin_based' => TRUE], |
|
166 | + 'pt' => ['display' => 'Português', 'locale' => 'pt_PT.utf8', 'latin_based' => TRUE], |
|
168 | 167 | |
169 | 168 | // For the following languages, partial translations exist in Transifex, but |
170 | 169 | // they are not complete enough for display. Their Transifex content is not |
@@ -217,11 +216,11 @@ discard block |
||
217 | 216 | 'db' => 'customer_db', |
218 | 217 | 'user' => 'customerservice', |
219 | 218 | 'pass' => '2lame4u'], |
220 | - 'enforce-external-sync' => TRUE, |
|
221 | - /* if you feed your user database from a third-party source and do not want CAT to update it on its own, you can |
|
219 | + 'enforce-external-sync' => TRUE, |
|
220 | + /* if you feed your user database from a third-party source and do not want CAT to update it on its own, you can |
|
222 | 221 | * make it read-only |
223 | 222 | */ |
224 | - 'userdb-readonly' => FALSE, |
|
223 | + 'userdb-readonly' => FALSE, |
|
225 | 224 | ], |
226 | 225 | |
227 | 226 | /** |
@@ -59,10 +59,10 @@ discard block |
||
59 | 59 | */ |
60 | 60 | |
61 | 61 | public static $Options=[ |
62 | - 'sign'=>0, |
|
63 | - 'no_cache'=>0, |
|
64 | - 'hidden'=>0, |
|
65 | - 'redirect'=>0, |
|
62 | + 'sign'=>0, |
|
63 | + 'no_cache'=>0, |
|
64 | + 'hidden'=>0, |
|
65 | + 'redirect'=>0, |
|
66 | 66 | ]; |
67 | 67 | |
68 | 68 | /** |
@@ -100,75 +100,75 @@ discard block |
||
100 | 100 | |
101 | 101 | public static function listDevices() { |
102 | 102 | return [ |
103 | - 'w10'=>[ |
|
104 | - 'group' => "microsoft", |
|
105 | - 'display'=>_("MS Windows 10"), |
|
106 | - 'match'=>'Windows NT 10', |
|
107 | - 'directory'=>'ms', |
|
108 | - 'module'=>'W10', |
|
109 | - 'signer'=>'ms_windows_sign', |
|
103 | + 'w10'=>[ |
|
104 | + 'group' => "microsoft", |
|
105 | + 'display'=>_("MS Windows 10"), |
|
106 | + 'match'=>'Windows NT 10', |
|
107 | + 'directory'=>'ms', |
|
108 | + 'module'=>'W10', |
|
109 | + 'signer'=>'ms_windows_sign', |
|
110 | 110 | 'options'=>[ |
111 | - 'sign'=>1, |
|
112 | - 'device_id'=>'W10', |
|
113 | - 'mime'=>'application/x-dosexec', |
|
114 | - ], |
|
115 | - ], |
|
111 | + 'sign'=>1, |
|
112 | + 'device_id'=>'W10', |
|
113 | + 'mime'=>'application/x-dosexec', |
|
114 | + ], |
|
115 | + ], |
|
116 | 116 | |
117 | - 'w8'=>[ |
|
118 | - 'group' => "microsoft", |
|
119 | - 'display'=>_("MS Windows 8, 8.1"), |
|
120 | - 'match'=>'Windows NT 6[._][23]', |
|
121 | - 'directory'=>'ms', |
|
122 | - 'module'=>'W8', |
|
123 | - 'signer'=>'ms_windows_sign', |
|
117 | + 'w8'=>[ |
|
118 | + 'group' => "microsoft", |
|
119 | + 'display'=>_("MS Windows 8, 8.1"), |
|
120 | + 'match'=>'Windows NT 6[._][23]', |
|
121 | + 'directory'=>'ms', |
|
122 | + 'module'=>'W8', |
|
123 | + 'signer'=>'ms_windows_sign', |
|
124 | 124 | 'options'=>[ |
125 | - 'sign'=>1, |
|
126 | - 'device_id'=>'W8', |
|
127 | - 'mime'=>'application/x-dosexec', |
|
128 | - ], |
|
129 | - ], |
|
125 | + 'sign'=>1, |
|
126 | + 'device_id'=>'W8', |
|
127 | + 'mime'=>'application/x-dosexec', |
|
128 | + ], |
|
129 | + ], |
|
130 | 130 | |
131 | - 'w7'=>[ |
|
132 | - 'group' => "microsoft", |
|
133 | - 'display'=>_("MS Windows 7"), |
|
134 | - 'match'=>'Windows NT 6[._]1', |
|
135 | - 'directory'=>'ms', |
|
136 | - 'module'=>'Vista7', |
|
137 | - 'signer'=>'ms_windows_sign', |
|
131 | + 'w7'=>[ |
|
132 | + 'group' => "microsoft", |
|
133 | + 'display'=>_("MS Windows 7"), |
|
134 | + 'match'=>'Windows NT 6[._]1', |
|
135 | + 'directory'=>'ms', |
|
136 | + 'module'=>'Vista7', |
|
137 | + 'signer'=>'ms_windows_sign', |
|
138 | 138 | 'options'=>[ |
139 | - 'sign'=>1, |
|
140 | - 'device_id'=>'W7', |
|
141 | - 'mime'=>'application/x-dosexec', |
|
142 | - ], |
|
143 | - ], |
|
139 | + 'sign'=>1, |
|
140 | + 'device_id'=>'W7', |
|
141 | + 'mime'=>'application/x-dosexec', |
|
142 | + ], |
|
143 | + ], |
|
144 | 144 | |
145 | - 'vista'=>[ |
|
146 | - 'group' => "microsoft", |
|
147 | - 'display'=>_("MS Windows Vista"), |
|
148 | - 'match'=>'Windows NT 6[._]0', |
|
149 | - 'directory'=>'ms', |
|
150 | - 'module'=>'Vista7', |
|
151 | - 'signer'=>'ms_windows_sign', |
|
145 | + 'vista'=>[ |
|
146 | + 'group' => "microsoft", |
|
147 | + 'display'=>_("MS Windows Vista"), |
|
148 | + 'match'=>'Windows NT 6[._]0', |
|
149 | + 'directory'=>'ms', |
|
150 | + 'module'=>'Vista7', |
|
151 | + 'signer'=>'ms_windows_sign', |
|
152 | 152 | 'options'=>[ |
153 | - 'sign'=>1, |
|
154 | - 'device_id'=>'Vista', |
|
155 | - 'mime'=>'application/x-dosexec', |
|
156 | - ], |
|
157 | - ], |
|
153 | + 'sign'=>1, |
|
154 | + 'device_id'=>'Vista', |
|
155 | + 'mime'=>'application/x-dosexec', |
|
156 | + ], |
|
157 | + ], |
|
158 | 158 | |
159 | - 'win-rt'=>[ |
|
159 | + 'win-rt'=>[ |
|
160 | 160 | 'group' => "microsoft", |
161 | 161 | 'display'=>_("Windows RT"), |
162 | 162 | 'directory'=>'redirect_dev', |
163 | 163 | 'module'=>'RedirectDev', |
164 | 164 | 'options'=>[ |
165 | - 'hidden'=>0, |
|
166 | - 'redirect'=>1, |
|
167 | - ], |
|
168 | - ], |
|
165 | + 'hidden'=>0, |
|
166 | + 'redirect'=>1, |
|
167 | + ], |
|
168 | + ], |
|
169 | 169 | |
170 | 170 | |
171 | - 'apple_sierra'=>array( |
|
171 | + 'apple_sierra'=>array( |
|
172 | 172 | 'group' => "apple", |
173 | 173 | 'display'=>_("Apple macOS Sierra"), |
174 | 174 | 'match'=>'Mac OS X 10[._]12', |
@@ -176,14 +176,14 @@ discard block |
||
176 | 176 | 'module'=>'mobileconfig_os_x', |
177 | 177 | 'signer'=>'mobileconfig_sign', |
178 | 178 | 'options'=>array( |
179 | - 'sign'=>1, |
|
180 | - 'device_id'=>'OS_X', |
|
181 | - 'mime'=>'application/x-apple-aspen-config', |
|
182 | - ), |
|
179 | + 'sign'=>1, |
|
180 | + 'device_id'=>'OS_X', |
|
181 | + 'mime'=>'application/x-apple-aspen-config', |
|
182 | + ), |
|
183 | 183 | ), |
184 | 184 | |
185 | 185 | |
186 | - 'apple_el_cap'=>[ |
|
186 | + 'apple_el_cap'=>[ |
|
187 | 187 | 'group' => "apple", |
188 | 188 | 'display'=>_("Apple OS X El Capitan"), |
189 | 189 | 'match'=>'Mac OS X 10[._]11', |
@@ -191,13 +191,13 @@ discard block |
||
191 | 191 | 'module'=>'mobileconfig_os_x', |
192 | 192 | 'signer'=>'mobileconfig_sign', |
193 | 193 | 'options'=>array( |
194 | - 'sign'=>1, |
|
195 | - 'device_id'=>'OS_X', |
|
196 | - 'mime'=>'application/x-apple-aspen-config', |
|
197 | - ), |
|
194 | + 'sign'=>1, |
|
195 | + 'device_id'=>'OS_X', |
|
196 | + 'mime'=>'application/x-apple-aspen-config', |
|
197 | + ), |
|
198 | 198 | ], |
199 | 199 | |
200 | - 'apple_yos'=>[ |
|
200 | + 'apple_yos'=>[ |
|
201 | 201 | 'group' => "apple", |
202 | 202 | 'display'=>_("Apple OS X Yosemite"), |
203 | 203 | 'match'=>'Mac OS X 10[._]10', |
@@ -205,13 +205,13 @@ discard block |
||
205 | 205 | 'module'=>'mobileconfig_os_x', |
206 | 206 | 'signer'=>'mobileconfig_sign', |
207 | 207 | 'options'=>[ |
208 | - 'sign'=>1, |
|
209 | - 'device_id'=>'OS_X', |
|
210 | - 'mime'=>'application/x-apple-aspen-config', |
|
211 | - ], |
|
208 | + 'sign'=>1, |
|
209 | + 'device_id'=>'OS_X', |
|
210 | + 'mime'=>'application/x-apple-aspen-config', |
|
211 | + ], |
|
212 | 212 | ], |
213 | 213 | |
214 | - 'apple_mav'=>[ |
|
214 | + 'apple_mav'=>[ |
|
215 | 215 | 'group' => "apple", |
216 | 216 | 'display'=>_("Apple OS X Mavericks"), |
217 | 217 | 'match'=>'Mac OS X 10[._]9', |
@@ -219,13 +219,13 @@ discard block |
||
219 | 219 | 'module'=>'mobileconfig_os_x', |
220 | 220 | 'signer'=>'mobileconfig_sign', |
221 | 221 | 'options'=>[ |
222 | - 'sign'=>1, |
|
223 | - 'device_id'=>'OS_X', |
|
224 | - 'mime'=>'application/x-apple-aspen-config', |
|
225 | - ], |
|
222 | + 'sign'=>1, |
|
223 | + 'device_id'=>'OS_X', |
|
224 | + 'mime'=>'application/x-apple-aspen-config', |
|
225 | + ], |
|
226 | 226 | ], |
227 | 227 | |
228 | - 'apple_m_lion'=>[ |
|
228 | + 'apple_m_lion'=>[ |
|
229 | 229 | 'group' => "apple", |
230 | 230 | 'display'=>_("Apple OS X Mountain Lion"), |
231 | 231 | 'match'=>'Mac OS X 10[._]8', |
@@ -233,13 +233,13 @@ discard block |
||
233 | 233 | 'module'=>'mobileconfig_os_x', |
234 | 234 | 'signer'=>'mobileconfig_sign', |
235 | 235 | 'options'=>[ |
236 | - 'sign'=>1, |
|
237 | - 'device_id'=>'OS_X', |
|
238 | - 'mime'=>'application/x-apple-aspen-config', |
|
239 | - ], |
|
236 | + 'sign'=>1, |
|
237 | + 'device_id'=>'OS_X', |
|
238 | + 'mime'=>'application/x-apple-aspen-config', |
|
239 | + ], |
|
240 | 240 | ], |
241 | 241 | |
242 | - 'apple_lion'=>[ |
|
242 | + 'apple_lion'=>[ |
|
243 | 243 | 'group' => "apple", |
244 | 244 | 'display'=>_("Apple OS X Lion"), |
245 | 245 | 'match'=>'Mac OS X 10[._]7', |
@@ -247,13 +247,13 @@ discard block |
||
247 | 247 | 'module'=>'mobileconfig_os_x', |
248 | 248 | 'signer'=>'mobileconfig_sign', |
249 | 249 | 'options'=>[ |
250 | - 'sign'=>1, |
|
251 | - 'device_id'=>'OS_X', |
|
252 | - 'mime'=>'application/x-apple-aspen-config', |
|
253 | - ], |
|
250 | + 'sign'=>1, |
|
251 | + 'device_id'=>'OS_X', |
|
252 | + 'mime'=>'application/x-apple-aspen-config', |
|
253 | + ], |
|
254 | 254 | ], |
255 | 255 | |
256 | - 'mobileconfig'=>[ |
|
256 | + 'mobileconfig'=>[ |
|
257 | 257 | 'group' => "apple", |
258 | 258 | 'display'=>_("Apple iOS mobile devices"), |
259 | 259 | 'match'=>'(iPad|iPhone|iPod);.*OS ([7-9]|1[0-5])_', |
@@ -261,13 +261,13 @@ discard block |
||
261 | 261 | 'module'=>'mobileconfig_ios', |
262 | 262 | 'signer'=>'mobileconfig_sign', |
263 | 263 | 'options'=>[ |
264 | - 'sign'=>1, |
|
265 | - 'device_id'=>'iOS', |
|
266 | - 'mime'=>'application/x-apple-aspen-config', |
|
267 | - ], |
|
264 | + 'sign'=>1, |
|
265 | + 'device_id'=>'iOS', |
|
266 | + 'mime'=>'application/x-apple-aspen-config', |
|
267 | + ], |
|
268 | 268 | ], |
269 | 269 | |
270 | - 'mobileconfig-56'=>[ |
|
270 | + 'mobileconfig-56'=>[ |
|
271 | 271 | 'group' => "apple", |
272 | 272 | 'display'=>_("Apple iOS mobile devices (iOS 5 and 6)"), |
273 | 273 | 'match'=>'(iPad|iPhone|iPod);.*OS [56]_', |
@@ -275,132 +275,132 @@ discard block |
||
275 | 275 | 'module'=>'mobileconfig_ios_56', |
276 | 276 | 'signer'=>'mobileconfig_sign', |
277 | 277 | 'options'=>[ |
278 | - 'sign'=>1, |
|
279 | - 'device_id'=>'iOS', |
|
280 | - 'mime'=>'application/x-apple-aspen-config', |
|
281 | - ], |
|
278 | + 'sign'=>1, |
|
279 | + 'device_id'=>'iOS', |
|
280 | + 'mime'=>'application/x-apple-aspen-config', |
|
281 | + ], |
|
282 | 282 | ], |
283 | 283 | |
284 | 284 | |
285 | - 'linux'=>[ |
|
286 | - 'group' => "linux", |
|
287 | - 'display'=>_("Linux"), |
|
288 | - 'match'=>'Linux(?!.*Android)', |
|
289 | - 'directory'=>'linux', |
|
290 | - 'module' => 'Linux', |
|
291 | - 'options'=>[ |
|
292 | - 'mime'=>'application/x-sh', |
|
293 | - ], |
|
294 | - ], |
|
285 | + 'linux'=>[ |
|
286 | + 'group' => "linux", |
|
287 | + 'display'=>_("Linux"), |
|
288 | + 'match'=>'Linux(?!.*Android)', |
|
289 | + 'directory'=>'linux', |
|
290 | + 'module' => 'Linux', |
|
291 | + 'options'=>[ |
|
292 | + 'mime'=>'application/x-sh', |
|
293 | + ], |
|
294 | + ], |
|
295 | 295 | |
296 | - 'chromeos'=>[ |
|
296 | + 'chromeos'=>[ |
|
297 | 297 | 'group' => "chrome", |
298 | 298 | 'display'=>_("Chrome OS"), |
299 | 299 | 'match'=>'CrOS', |
300 | 300 | 'directory'=>'chromebook', |
301 | 301 | 'module'=>'chromebook', |
302 | 302 | 'options'=>[ |
303 | - 'mime'=>'application/x-onc', |
|
304 | - 'message'=>sprintf(_("After downloading the file, open the Chrome browser and browse to this URL: <a href='chrome://net-internals/#chromeos'>chrome://net-internals/#chromeos</a>. Then, use the 'Import ONC file' button. The import is silent; the new network definitions will be added to the preferred networks.")), |
|
305 | - ], |
|
306 | - ], |
|
303 | + 'mime'=>'application/x-onc', |
|
304 | + 'message'=>sprintf(_("After downloading the file, open the Chrome browser and browse to this URL: <a href='chrome://net-internals/#chromeos'>chrome://net-internals/#chromeos</a>. Then, use the 'Import ONC file' button. The import is silent; the new network definitions will be added to the preferred networks.")), |
|
305 | + ], |
|
306 | + ], |
|
307 | 307 | |
308 | - 'android_marshmallow'=>[ |
|
308 | + 'android_marshmallow'=>[ |
|
309 | 309 | 'group' => "android", |
310 | 310 | 'display'=>_("Android 6.0 Marshmallow"), |
311 | - 'match'=>'Android 6\.[0-9]', |
|
311 | + 'match'=>'Android 6\.[0-9]', |
|
312 | 312 | 'directory'=>'xml', |
313 | 313 | 'module'=>'Lollipop', |
314 | 314 | 'options'=>[ |
315 | - 'mime'=>'application/eap-config', |
|
316 | - 'message'=>sprintf(_("Before you proceed with installation on Android systems, please make sure that you have installed the %s application. This application is available from %s, %s and %s, and will use the configuration file downloaded from CAT to create all necessary settings."), |
|
315 | + 'mime'=>'application/eap-config', |
|
316 | + 'message'=>sprintf(_("Before you proceed with installation on Android systems, please make sure that you have installed the %s application. This application is available from %s, %s and %s, and will use the configuration file downloaded from CAT to create all necessary settings."), |
|
317 | 317 | "eduroamCAT", |
318 | 318 | "<a target='_blank' href='https://play.google.com/store/apps/details?id=uk.ac.swansea.eduroamcat'>Google Play</a>", |
319 | 319 | "<a target='_blank' href='unbeknownst'>Amazon Appstore</a>", |
320 | 320 | "<a target='_blank' href='eduroamCAT-stable.apk'>"._("as local download")."</a>"), |
321 | - ], |
|
322 | - ], |
|
321 | + ], |
|
322 | + ], |
|
323 | 323 | |
324 | - 'android_lollipop'=>[ |
|
324 | + 'android_lollipop'=>[ |
|
325 | 325 | 'group' => "android", |
326 | 326 | 'display'=>_("Android 5.0 Lollipop"), |
327 | - 'match'=>'Android 5\.[0-9]', |
|
327 | + 'match'=>'Android 5\.[0-9]', |
|
328 | 328 | 'directory'=>'xml', |
329 | 329 | 'module'=>'Lollipop', |
330 | 330 | 'options'=>[ |
331 | - 'mime'=>'application/eap-config', |
|
332 | - 'message'=>sprintf(_("Before you proceed with installation on Android systems, please make sure that you have installed the %s application. This application is available from %s, %s and %s, and will use the configuration file downloaded from CAT to create all necessary settings."), |
|
331 | + 'mime'=>'application/eap-config', |
|
332 | + 'message'=>sprintf(_("Before you proceed with installation on Android systems, please make sure that you have installed the %s application. This application is available from %s, %s and %s, and will use the configuration file downloaded from CAT to create all necessary settings."), |
|
333 | 333 | "eduroamCAT", |
334 | 334 | "<a target='_blank' href='https://play.google.com/store/apps/details?id=uk.ac.swansea.eduroamcat'>Google Play</a>", |
335 | 335 | "<a target='_blank' href='unbeknownst'>Amazon Appstore</a>", |
336 | 336 | "<a target='_blank' href='eduroamCAT-stable.apk'>"._("as local download")."</a>"), |
337 | - ], |
|
338 | - ], |
|
337 | + ], |
|
338 | + ], |
|
339 | 339 | |
340 | - 'android_kitkat'=>[ |
|
340 | + 'android_kitkat'=>[ |
|
341 | 341 | 'group' => "android", |
342 | 342 | 'display'=>_("Android 4.4 KitKat"), |
343 | - 'match'=>'Android 4\.[4-9]', |
|
343 | + 'match'=>'Android 4\.[4-9]', |
|
344 | 344 | 'directory'=>'xml', |
345 | 345 | 'module'=>'KitKat', |
346 | 346 | 'options'=>[ |
347 | - 'mime'=>'application/eap-config', |
|
348 | - 'message'=>sprintf(_("Before you proceed with installation on Android systems, please make sure that you have installed the %s application. This application is available from %s, %s and %s, and will use the configuration file downloaded from CAT to create all necessary settings."), |
|
347 | + 'mime'=>'application/eap-config', |
|
348 | + 'message'=>sprintf(_("Before you proceed with installation on Android systems, please make sure that you have installed the %s application. This application is available from %s, %s and %s, and will use the configuration file downloaded from CAT to create all necessary settings."), |
|
349 | 349 | "eduroamCAT", |
350 | 350 | "<a target='_blank' href='https://play.google.com/store/apps/details?id=uk.ac.swansea.eduroamcat'>Google Play</a>", |
351 | 351 | "<a target='_blank' href='unbeknownst'>Amazon Appstore</a>", |
352 | 352 | "<a target='_blank' href='eduroamCAT-stable.apk'>"._("as local download")."</a>"), |
353 | - ], |
|
354 | - ], |
|
353 | + ], |
|
354 | + ], |
|
355 | 355 | |
356 | 356 | |
357 | - 'android_43'=>[ |
|
357 | + 'android_43'=>[ |
|
358 | 358 | 'group' => "android", |
359 | 359 | 'display'=>_("Android 4.3"), |
360 | - 'match'=>'Android 4\.3', |
|
360 | + 'match'=>'Android 4\.3', |
|
361 | 361 | 'directory'=>'xml', |
362 | 362 | 'module'=>'KitKat', |
363 | 363 | 'options'=>[ |
364 | - 'mime'=>'application/eap-config', |
|
365 | - 'message'=>sprintf(_("Before you proceed with installation on Android systems, please make sure that you have installed the %s application. This application is available from %s, %s and %s, and will use the configuration file downloaded from CAT to create all necessary settings."), |
|
364 | + 'mime'=>'application/eap-config', |
|
365 | + 'message'=>sprintf(_("Before you proceed with installation on Android systems, please make sure that you have installed the %s application. This application is available from %s, %s and %s, and will use the configuration file downloaded from CAT to create all necessary settings."), |
|
366 | 366 | "eduroamCAT", |
367 | 367 | "<a target='_blank' href='https://play.google.com/store/apps/details?id=uk.ac.swansea.eduroamcat'>Google Play</a>", |
368 | 368 | "<a target='_blank' href='unbeknownst'>Amazon Appstore</a>", |
369 | 369 | "<a target='_blank' href='eduroamCAT-stable.apk'>"._("as local download")."</a>"), |
370 | - ], |
|
371 | - ], |
|
370 | + ], |
|
371 | + ], |
|
372 | 372 | |
373 | - 'android_legacy'=>[ |
|
374 | - 'group' => "android", |
|
375 | - 'display'=>_("Android"), |
|
376 | - 'match'=>'Android', |
|
377 | - 'directory'=>'redirect_dev', |
|
378 | - 'module'=>'RedirectDev', |
|
379 | - 'options'=>[ |
|
380 | - 'redirect'=>1, |
|
381 | - ], |
|
382 | - ], |
|
373 | + 'android_legacy'=>[ |
|
374 | + 'group' => "android", |
|
375 | + 'display'=>_("Android"), |
|
376 | + 'match'=>'Android', |
|
377 | + 'directory'=>'redirect_dev', |
|
378 | + 'module'=>'RedirectDev', |
|
379 | + 'options'=>[ |
|
380 | + 'redirect'=>1, |
|
381 | + ], |
|
382 | + ], |
|
383 | 383 | |
384 | - 'eap-config'=>[ |
|
384 | + 'eap-config'=>[ |
|
385 | 385 | 'group' => "eap-config", |
386 | 386 | 'display'=>_("EAP config"), |
387 | 387 | 'directory'=>'xml', |
388 | 388 | 'module'=>'XML_ALL', |
389 | 389 | 'options'=>[ |
390 | - 'mime'=>'application/eap-config', |
|
391 | - 'message'=>sprintf(_("This option provides a generic EAP config XML file, which can be consumed by dedicated applications like eduroamCAT for Android and Linux platforms. This is still an experimental feature.")), |
|
392 | - ], |
|
390 | + 'mime'=>'application/eap-config', |
|
391 | + 'message'=>sprintf(_("This option provides a generic EAP config XML file, which can be consumed by dedicated applications like eduroamCAT for Android and Linux platforms. This is still an experimental feature.")), |
|
392 | + ], |
|
393 | 393 | ], |
394 | 394 | |
395 | - 'test'=>[ |
|
395 | + 'test'=>[ |
|
396 | 396 | 'group' => "other", |
397 | 397 | 'display'=>_("Test"), |
398 | 398 | 'directory'=>'test_module', |
399 | 399 | 'module'=>'TestModule', |
400 | 400 | 'options'=>[ |
401 | - 'hidden'=>1, |
|
402 | - ], |
|
403 | - ], |
|
401 | + 'hidden'=>1, |
|
402 | + ], |
|
403 | + ], |
|
404 | 404 | |
405 | 405 | |
406 | 406 | /* |
@@ -79,16 +79,16 @@ discard block |
||
79 | 79 | <?php if (empty($_REQUEST['idp'])) { ?> |
80 | 80 | <div id="front_page"> |
81 | 81 | <?php |
82 | - echo $divs->div_top_welcome(); |
|
83 | - echo $divs->div_roller(); |
|
84 | - echo $divs->div_main_button(); ?> |
|
82 | + echo $divs->div_top_welcome(); |
|
83 | + echo $divs->div_roller(); |
|
84 | + echo $divs->div_main_button(); ?> |
|
85 | 85 | </div> <!-- id="front_page" --> |
86 | 86 | <?php } ?> |
87 | 87 | <!-- the user_page div contains all information for a given IdP, i.e. the profile selection (if multiple profiles are defined) |
88 | 88 | and the device selection (including the automatic OS detection ) --> |
89 | 89 | <div id="user_page"> |
90 | 90 | <?php echo $divs->div_institution(); |
91 | - echo $divs->div_profiles(); ?> |
|
91 | + echo $divs->div_profiles(); ?> |
|
92 | 92 | <div id="user_info"></div> <!-- this will be filled with the profile contact information --> |
93 | 93 | <?php echo $divs->div_user_welcome() ?> |
94 | 94 | <div id="profile_redirect"> <!-- this is shown when the entire profile is redirected --> |
@@ -106,7 +106,7 @@ discard block |
||
106 | 106 | if ($operatingSystem) { |
107 | 107 | echo $divs->div_guess_os($operatingSystem); |
108 | 108 | } |
109 | - echo $divs->div_otherinstallers(); |
|
109 | + echo $divs->div_otherinstallers(); |
|
110 | 110 | ?> |
111 | 111 | </div> <!-- id="devices" --> |
112 | 112 | <input type="hidden" name="profile" id="profile_id"/> |
@@ -12,52 +12,52 @@ |
||
12 | 12 | this is just an include file for Gui class definition |
13 | 13 | */ |
14 | 14 | $Faq = [ |
15 | - [ |
|
15 | + [ |
|
16 | 16 | 'id'=>'idp_not_listed', |
17 | 17 | 'title'=>sprintf(_("My %s is not listed. Can't I just use any of the other ones?"),$Gui->nomenclature_inst), |
18 | 18 | 'text'=>sprintf(_("No! The installers contain security settings which are specific to the %s. If you are not from that %s, your computer will detect that you are about to send your username and credential to an unauthorised server and will abort the login. Using a different %s installer is <i>guaranteed to not work</i>!"), $Gui->nomenclature_inst, $Gui->nomenclature_inst, $Gui->nomenclature_inst) |
19 | - ], |
|
20 | - [ |
|
19 | + ], |
|
20 | + [ |
|
21 | 21 | 'id'=>'idp_not_listed', |
22 | 22 | 'title'=>sprintf(_("What can I do to get my %s listed?"), $Gui->nomenclature_inst), |
23 | 23 | 'text'=>sprintf(_("Contact %s administrators at your %s and complain. It will take at most one hour of their time to get things done."),CONFIG_CONFASSISTANT['CONSORTIUM']['display_name'], $Gui->nomenclature_inst) |
24 | 24 | ], |
25 | - [ |
|
25 | + [ |
|
26 | 26 | 'id'=>'device_not_listed', |
27 | 27 | 'title'=>sprintf(_("My device is not listed! Does that mean I can't do %s?"),CONFIG_CONFASSISTANT['CONSORTIUM']['display_name']), |
28 | 28 | 'text'=>sprintf(_("No. The CAT tool can only support Operating Systems which can be automatically configured in some way. Many other devices can still be used with %s, but must be configured manually. Please contact your %s Identity Provider to get help in setting up such a device."),CONFIG_CONFASSISTANT['CONSORTIUM']['display_name'],CONFIG_CONFASSISTANT['CONSORTIUM']['display_name']) |
29 | - ], |
|
29 | + ], |
|
30 | 30 | |
31 | - [ |
|
31 | + [ |
|
32 | 32 | 'title'=>sprintf(_("I can connect to %s simply by providing username and password, what is the point of using an installer?"),CONFIG_CONFASSISTANT['CONSORTIUM']['display_name']), |
33 | 33 | 'text'=>sprintf(_("When you are connecting from an unconfigured device your security is at risk. The very point of preconfiguration is to set up security, when this is done, your device will first confirm that it talks to the correct authentication server and will never send your password to an untrusted one.")) |
34 | 34 | ], |
35 | - [ |
|
35 | + [ |
|
36 | 36 | 'title'=>sprintf(_("Is it safe to use %s installers?"),CONFIG['APPEARANCE']['productname']), |
37 | 37 | 'text'=>sprintf(_("%s installers configure security settings on your device, therefore you should be sure that you are using genuine ones."),CONFIG['APPEARANCE']['productname']).' '.( isset(CONFIG_CONFASSISTANT['CONSORTIUM']['signer_name']) && CONFIG_CONFASSISTANT['CONSORTIUM']['signer_name'] != "" ? sprintf(_("This is why %s installers are digitally signed by %s. Watch out for a system message confirming this."),CONFIG['APPEARANCE']['productname'],CONFIG_CONFASSISTANT['CONSORTIUM']['signer_name']):""), |
38 | 38 | |
39 | 39 | ], |
40 | - [ |
|
40 | + [ |
|
41 | 41 | 'title'=>_("Windows 'SmartScreen' or 'Internet Explorer' tell me that the file is not commonly downloaded and possibly harmful. Should I be concerned?"), |
42 | 42 | 'text'=>_("Contrary to what the name suggests, 'SmartScreen' isn't actually very smart. The warning merely means that the file has not yet been downloaded by enough users to make Microsoft consider it popular (which would strangely enough make it be considered 'safe'). This message alone is not a security problem.")." ".(isset(CONFIG_CONFASSISTANT['CONSORTIUM']['signer_name']) && CONFIG_CONFASSISTANT['CONSORTIUM']['signer_name'] != "" ? sprintf(_("So long as the file is carrying a valid signature from %s, the download is safe."),CONFIG_CONFASSISTANT['CONSORTIUM']['signer_name'])." ":"").sprintf(_("Please see also Microsoft's FAQ regarding SmartScreen at %s."),"<a href='http://windows.microsoft.com/en-US/windows7/SmartScreen-Filter-frequently-asked-questions-IE9?SignedIn=1'>Microsoft FAQ</a>") |
43 | 43 | |
44 | 44 | ], |
45 | - [ |
|
45 | + [ |
|
46 | 46 | 'title'=>sprintf(_("I can see %s network and my device is configured but it does not connect, what can be the cause?"),CONFIG_CONFASSISTANT['CONSORTIUM']['display_name']), |
47 | - 'text'=>sprintf(_("There can be a number of different reasons. The network you see may not be a genuine %s one and your device silently drops the connection attempt; there may be something wrong with the configuration of the network; your account may have expired; there may be a connection problem with your home authentication server; you may have broken the regulations of the network you are using and have been refused access as a consequence. You should contact your %s and report the problem, the administrators should be able to trace your connections."),CONFIG_CONFASSISTANT['CONSORTIUM']['display_name'], $Gui->nomenclature_inst) |
|
47 | + 'text'=>sprintf(_("There can be a number of different reasons. The network you see may not be a genuine %s one and your device silently drops the connection attempt; there may be something wrong with the configuration of the network; your account may have expired; there may be a connection problem with your home authentication server; you may have broken the regulations of the network you are using and have been refused access as a consequence. You should contact your %s and report the problem, the administrators should be able to trace your connections."),CONFIG_CONFASSISTANT['CONSORTIUM']['display_name'], $Gui->nomenclature_inst) |
|
48 | 48 | ], |
49 | - [ |
|
49 | + [ |
|
50 | 50 | 'id'=>'contact', |
51 | 51 | 'title'=>sprintf(_("I have a question about this web site. Whom should I contact?")), |
52 | 52 | 'text'=>sprintf(_("You should send a mail to %s."),CONFIG['APPEARANCE']['support-contact']['display']) |
53 | - ], |
|
53 | + ], |
|
54 | 54 | ]; |
55 | 55 | |
56 | 56 | if (CONFIG_CONFASSISTANT['CONSORTIUM']['name'] == "eduroam") { |
57 | - array_push($Faq, |
|
58 | - [ |
|
59 | - 'id'=>'what_is_'.CONFIG_CONFASSISTANT['CONSORTIUM']['name'], |
|
60 | - 'title'=>sprintf(_("What is this %s thing anyway?"), CONFIG_CONFASSISTANT['CONSORTIUM']['display_name']), |
|
61 | - 'text'=>sprintf(_("%s is a global WiFi roaming consortium which gives members of education and research access to the internet <i>for free</i> on all %s hotspots on the planet. There are several million %s users already, enjoying free internet access on more than 6.000 hotspots! Visit <a href='http://www.eduroam.org'>the %s homepage</a> for more details."),CONFIG_CONFASSISTANT['CONSORTIUM']['display_name'],CONFIG_CONFASSISTANT['CONSORTIUM']['display_name'],CONFIG_CONFASSISTANT['CONSORTIUM']['display_name'],CONFIG_CONFASSISTANT['CONSORTIUM']['display_name']) |
|
62 | - ]); |
|
57 | + array_push($Faq, |
|
58 | + [ |
|
59 | + 'id'=>'what_is_'.CONFIG_CONFASSISTANT['CONSORTIUM']['name'], |
|
60 | + 'title'=>sprintf(_("What is this %s thing anyway?"), CONFIG_CONFASSISTANT['CONSORTIUM']['display_name']), |
|
61 | + 'text'=>sprintf(_("%s is a global WiFi roaming consortium which gives members of education and research access to the internet <i>for free</i> on all %s hotspots on the planet. There are several million %s users already, enjoying free internet access on more than 6.000 hotspots! Visit <a href='http://www.eduroam.org'>the %s homepage</a> for more details."),CONFIG_CONFASSISTANT['CONSORTIUM']['display_name'],CONFIG_CONFASSISTANT['CONSORTIUM']['display_name'],CONFIG_CONFASSISTANT['CONSORTIUM']['display_name'],CONFIG_CONFASSISTANT['CONSORTIUM']['display_name']) |
|
62 | + ]); |
|
63 | 63 | } |
64 | 64 | \ No newline at end of file |
@@ -1019,12 +1019,12 @@ |
||
1019 | 1019 | $certUsernameLabel = WindowsCommon::sprint_nsi(_("Username:")); |
1020 | 1020 | $certUsernameLength = strlen($certUsernameLabel); |
1021 | 1021 | $labelLength = max($certPasswordLength,$certUsernameLength); |
1022 | - ?> |
|
1022 | + ?> |
|
1023 | 1023 | ${NSD_CreateLabel} 0 0 100% 32u "<?php WindowsCommon::echo_nsi(_("Selected file: \$Cert_file"))?>" |
1024 | 1024 | !else |
1025 | 1025 | <?php $certPasswordLabel = WindowsCommon::sprint_nsi(_("import password:")); |
1026 | 1026 | $certPasswordLength = strlen($certPasswordLabel); |
1027 | - ?> |
|
1027 | + ?> |
|
1028 | 1028 | !insertmacro debug_cat 4 "Unpacking SB_cert.p12" |
1029 | 1029 | File "SB_cert.p12" |
1030 | 1030 | nsArray::Set Delete_files "SB_cert.p12" |
@@ -11,14 +11,14 @@ discard block |
||
11 | 11 | <?php |
12 | 12 | $cat = new core\CAT(); |
13 | 13 | function escaped_echo($s) { |
14 | - echo preg_replace('/"/','"',$s); |
|
14 | + echo preg_replace('/"/','"',$s); |
|
15 | 15 | } |
16 | 16 | |
17 | 17 | $langObject = new \core\common\Language(); |
18 | 18 | $langObject->setTextDomain('web_user'); |
19 | 19 | $idpId = filter_input(INPUT_GET, 'idp', FILTER_VALIDATE_INT) ?? filter_input(INPUT_POST, 'idp', FILTER_VALIDATE_INT); |
20 | 20 | $profileId = filter_input(INPUT_GET, 'profile', FILTER_VALIDATE_INT) ?? filter_input(INPUT_POST, 'profile', FILTER_VALIDATE_INT); |
21 | - ?> |
|
21 | + ?> |
|
22 | 22 | var n; |
23 | 23 | var profile; |
24 | 24 | var generateTimer; |
@@ -353,7 +353,7 @@ discard block |
||
353 | 353 | } |
354 | 354 | |
355 | 355 | <?php if($idpId) { |
356 | - print "front_page = 0;\n"; |
|
356 | + print "front_page = 0;\n"; |
|
357 | 357 | } ?> |
358 | 358 | |
359 | 359 | function showTOU(){ |
@@ -487,7 +487,7 @@ discard block |
||
487 | 487 | if ($profileId) { |
488 | 488 | print "listProfiles($idpId,$profileId);"; |
489 | 489 | } |
490 | - ?> |
|
490 | + ?> |
|
491 | 491 | |
492 | 492 | $(".signin").click(function(event){ |
493 | 493 | pressedButton = $(this); |
@@ -548,12 +548,12 @@ discard block |
||
548 | 548 | }); |
549 | 549 | DiscoJuice.Constants.Countries = { |
550 | 550 | <?php |
551 | - $C = $Gui->printCountryList(1); |
|
552 | - $ret = ''; |
|
553 | - foreach ($C as $key => $val) { |
|
551 | + $C = $Gui->printCountryList(1); |
|
552 | + $ret = ''; |
|
553 | + foreach ($C as $key => $val) { |
|
554 | 554 | $ret .= "'$key': \"$val\","; |
555 | - } |
|
556 | - echo substr($ret, 0, -1); |
|
555 | + } |
|
556 | + echo substr($ret, 0, -1); |
|
557 | 557 | ?> |
558 | 558 | }; |
559 | 559 |
@@ -62,9 +62,9 @@ discard block |
||
62 | 62 | } |
63 | 63 | public function printMenu($menu = NULL, $id=NULL) { |
64 | 64 | $menu = $menu ?? $this->menu; |
65 | - if(count($menu) == 0) { |
|
66 | - return; |
|
67 | - } |
|
65 | + if(count($menu) == 0) { |
|
66 | + return; |
|
67 | + } |
|
68 | 68 | $out = "\n<ul>\n"; |
69 | 69 | foreach ($menu as $menuItem) { |
70 | 70 | $itemVisibility = $menuItem['visibility'] ?? 'all'; |
@@ -80,7 +80,7 @@ discard block |
||
80 | 80 | $out .= $this->printMenuItem($menuItem['text'], $link, $class); |
81 | 81 | $out .= $this->printMenu($submenu,$iD); |
82 | 82 | $out .= "</li>\n"; |
83 | - } |
|
83 | + } |
|
84 | 84 | } |
85 | 85 | $out .= '</ul>'; |
86 | 86 | return($out); |
@@ -49,7 +49,7 @@ discard block |
||
49 | 49 | <div id="user_info"></div> <!-- this will be filled with the profile contact information --> |
50 | 50 | <div id="sb_info"> |
51 | 51 | <?php |
52 | - switch ($statusInfo['errorcode']) { |
|
52 | + switch ($statusInfo['errorcode']) { |
|
53 | 53 | case "GENERATOR_CONSUMED": |
54 | 54 | echo $uiElements->boxError(_("You attempted to download an installer that was already downloaded before. Please request a new token from your administrator instead."), _("Attempt to re-use download link"), TRUE) . "<p>"; |
55 | 55 | break; |
@@ -147,7 +147,7 @@ discard block |
||
147 | 147 | } |
148 | 148 | |
149 | 149 | echo "<div id='sb_download_message'><p>".sprintf(_("You can now download a personalised %s installation program."), CONFIG_CONFASSISTANT['CONSORTIUM']['display_name']); |
150 | - // echo sprintf(_("The installation program is <span class='emph'>strictly personal</span>, to be used <span class='emph'>only on this device (%s)</span>, and it is <span class='emph'>not permitted to share</span> this information with anyone."), $statusInfo['OS']['display']); |
|
150 | + // echo sprintf(_("The installation program is <span class='emph'>strictly personal</span>, to be used <span class='emph'>only on this device (%s)</span>, and it is <span class='emph'>not permitted to share</span> this information with anyone."), $statusInfo['OS']['display']); |
|
151 | 151 | echo sprintf(_("The installation program is <span class='emph'>strictly personal</span>, to be used <span class='emph'>only on this device (%s)</span>, and it is <span class='emph'>not permitted to share</span> this information with anyone."), $statusInfo['OS']['display']); |
152 | 152 | echo "<p style='color:red;'>" . _("When the system detects abuse such as sharing login data with others, all access rights for you will be revoked and you may be sanctioned by your local eduroam administrator.") . "</p>"; |
153 | 153 | echo "<p>" . _("During the installation process, you will be asked for the following import PIN. This only happens once during the installation. You do not have to write down this PIN.") . "</p></div>"; |