|
1
|
|
|
<?php |
|
2
|
|
|
|
|
3
|
|
|
/* |
|
4
|
|
|
* ***************************************************************************** |
|
5
|
|
|
* Contributions to this work were made on behalf of the GÉANT project, a |
|
6
|
|
|
* project that has received funding from the European Union’s Framework |
|
7
|
|
|
* Programme 7 under Grant Agreements No. 238875 (GN3) and No. 605243 (GN3plus), |
|
8
|
|
|
* Horizon 2020 research and innovation programme under Grant Agreements No. |
|
9
|
|
|
* 691567 (GN4-1) and No. 731122 (GN4-2). |
|
10
|
|
|
* On behalf of the aforementioned projects, GEANT Association is the sole owner |
|
11
|
|
|
* of the copyright in all material which was developed by a member of the GÉANT |
|
12
|
|
|
* project. GÉANT Vereniging (Association) is registered with the Chamber of |
|
13
|
|
|
* Commerce in Amsterdam with registration number 40535155 and operates in the |
|
14
|
|
|
* UK as a branch of GÉANT Vereniging. |
|
15
|
|
|
* |
|
16
|
|
|
* Registered office: Hoekenrode 3, 1102BR Amsterdam, The Netherlands. |
|
17
|
|
|
* UK branch address: City House, 126-130 Hills Road, Cambridge CB2 1PQ, UK |
|
18
|
|
|
* |
|
19
|
|
|
* License: see the web/copyright.inc.php file in the file structure or |
|
20
|
|
|
* <base_url>/copyright.php after deploying the software |
|
21
|
|
|
* */ |
|
22
|
|
|
|
|
23
|
|
|
/** |
|
24
|
|
|
* This file is used to display a deployment. |
|
25
|
|
|
* |
|
26
|
|
|
* @author Maja Gorecka-Wolniewicz <[email protected]> |
|
27
|
|
|
*/ |
|
28
|
|
|
?> |
|
29
|
|
|
<?php |
|
30
|
|
|
|
|
31
|
|
|
$error_message = [ |
|
32
|
|
|
'WRONGCSR' => _('The uploaded file does not contain a valid CSR!'), |
|
33
|
|
|
'NOCSR' => _('The provided file can not be uploaded.'), |
|
34
|
|
|
]; |
|
35
|
|
|
|
|
36
|
|
|
$langInstance = new \core\common\Language(); |
|
37
|
|
|
$start = $langInstance->rtl ? "right" : "left"; |
|
38
|
|
|
$end = $langInstance->rtl ? "left" : "right"; |
|
39
|
|
|
$errormsg = []; |
|
40
|
|
|
if (isset($_GET['errormsg'])) { |
|
41
|
|
|
$msg = explode('_', trim($_GET['errormsg'])); |
|
42
|
|
|
if (count($msg) == 2) { |
|
43
|
|
|
$errormsg[$msg[1]] = $error_message[$msg[0]]; |
|
44
|
|
|
} |
|
45
|
|
|
} |
|
46
|
|
|
?> |
|
47
|
|
|
<style> |
|
48
|
|
|
.deployments td:first-child { |
|
49
|
|
|
padding-right: 15px; |
|
50
|
|
|
} |
|
51
|
|
|
img.copy_link { |
|
52
|
|
|
position: relative; |
|
53
|
|
|
top: 3px; |
|
54
|
|
|
<?php echo $start ?>: 3px; |
|
55
|
|
|
height: 16px; |
|
56
|
|
|
} |
|
57
|
|
|
</style> |
|
58
|
|
|
<script> |
|
59
|
|
|
function getFile() { |
|
60
|
|
|
if (confirm('<?php printf(_("Do you really want to replace TLS credentials for this deployment? The current TLS credentials will be revoked in 4 hours.")); ?>')) { |
|
61
|
|
|
document.getElementById("upfile").click(); |
|
62
|
|
|
} |
|
63
|
|
|
event.preventDefault(); |
|
64
|
|
|
} |
|
65
|
|
|
|
|
66
|
|
|
function sendcsr(obj) { |
|
67
|
|
|
//alert(obj.value); |
|
68
|
|
|
var file = obj.value; |
|
69
|
|
|
var fileName = file.split("\\"); |
|
70
|
|
|
//alert(fileName[fileName.length - 1]); |
|
71
|
|
|
document.getElementById("submitbuttoncsr").value = '<?php echo web\lib\common\FormElements::BUTTON_USECSR; ?>'; |
|
72
|
|
|
document.csrupload.submit(); |
|
73
|
|
|
event.preventDefault(); |
|
74
|
|
|
} |
|
75
|
|
|
|
|
76
|
|
|
$(function() { |
|
77
|
|
|
$(".copy_link").tooltip(); |
|
78
|
|
|
|
|
79
|
|
|
$(".copy_link").on("click", function() { |
|
80
|
|
|
$(".copy_link").tooltip({ |
|
81
|
|
|
content: "<?php echo _("Copy to clipboard") ?>" |
|
82
|
|
|
}); |
|
83
|
|
|
var field = $(this).attr("id").replace('_icon', '_data'); |
|
84
|
|
|
var toCopy = $("#"+field).html(); |
|
85
|
|
|
navigator.clipboard.writeText(toCopy); |
|
86
|
|
|
$(this).tooltip({ |
|
87
|
|
|
content: "<strong><?php echo _("Copied!") ?></strong>" |
|
88
|
|
|
}); |
|
89
|
|
|
$(this).fadeOut(150).fadeIn(150); |
|
90
|
|
|
}); |
|
91
|
|
|
}); |
|
92
|
|
|
|
|
93
|
|
|
|
|
94
|
|
|
</script> |
|
95
|
|
|
|
|
96
|
|
|
<?php |
|
97
|
|
|
function copyIcon($target) { |
|
98
|
|
|
return '<img class="copy_link" id="'.$target.'" src="../resources/images/icons/Tabler/copy.svg" title="'. _("Copy to clipboard").'" >'; |
|
99
|
|
|
} |
|
100
|
|
|
|
|
101
|
|
|
/** |
|
102
|
|
|
* displays an infocard about a Managed SP deployment |
|
103
|
|
|
* |
|
104
|
|
|
* @param \core\DeploymentManaged $deploymentObject the deployment to work with |
|
105
|
|
|
* @throws Exception |
|
106
|
|
|
*/ |
|
107
|
|
|
function displayDeploymentPropertyWidget(&$deploymentObject, $errormsg=[]) { |
|
108
|
|
|
// RADIUS status icons |
|
109
|
|
|
$depId = $deploymentObject->identifier; |
|
110
|
|
|
$radiusMessages = [ |
|
111
|
|
|
\core\AbstractDeployment::RADIUS_OK => ['icon' => '../resources/images/icons/Tabler/square-rounded-check-filled-green.svg', 'text' => _("Successfully set profile")], |
|
112
|
|
|
\core\AbstractDeployment::RADIUS_FAILURE => ['icon' => '../resources/images/icons/Tabler/square-rounded-x-filled-red.svg', 'text' => _("Some problem occurred during profile update")], |
|
113
|
|
|
]; |
|
114
|
|
|
$radius_status = array(); |
|
115
|
|
|
$radius_status[0] = $deploymentObject->radius_status_1; |
|
116
|
|
|
$radius_status[1] = $deploymentObject->radius_status_2; |
|
117
|
|
|
$cacert = file_get_contents(ROOT . "/config/ManagedSPCerts/eduroamSP-CA.pem"); |
|
118
|
|
|
$retry = $deploymentObject->checkRADIUSHostandConfigDaemon(); |
|
119
|
|
|
$isradiusready = radius_ready($deploymentObject); |
|
120
|
|
|
if (is_array($retry)) { |
|
121
|
|
|
foreach ($retry as $id => $stat) { |
|
122
|
|
|
if ($stat) { |
|
123
|
|
|
$response = $deploymentObject->setRADIUSconfig($id, 1); |
|
|
|
|
|
|
124
|
|
|
} |
|
125
|
|
|
} |
|
126
|
|
|
} |
|
127
|
|
|
?> |
|
128
|
|
|
<div style='display: table-row_id;'> |
|
129
|
|
|
<div class='profilebox' id="profilebox_<?php echo $depId;?>" style='display: table-cell;'> |
|
130
|
|
|
<h2><?php |
|
131
|
|
|
switch ($deploymentObject->consortium) { |
|
132
|
|
|
case "eduroam": |
|
133
|
|
|
$displayname = config\ConfAssistant::CONSORTIUM['name'] . " " . core\DeploymentManaged::PRODUCTNAME. ": SP$depId-".$deploymentObject->institution; |
|
134
|
|
|
break; |
|
135
|
|
|
case "OpenRoaming": |
|
136
|
|
|
$displayname = "OpenRoaming ANP"; |
|
137
|
|
|
break; |
|
138
|
|
|
default: |
|
139
|
|
|
throw new Exception("We are supposed to operate on a roaming consortium we don't know."); |
|
140
|
|
|
} |
|
141
|
|
|
echo $displayname . " (<span style='color:" . ( $deploymentObject->status == \core\AbstractDeployment::INACTIVE ? "red;'>" . _("inactive") : "green;'>" . _("active") ) . "</span>)"; |
|
142
|
|
|
?></h2> |
|
143
|
|
|
<table class="deployments"> |
|
144
|
|
|
<caption><?php echo _("Deployment Details"); ?></caption> |
|
145
|
|
|
<form action="?inst_id=<?php echo $deploymentObject->institution; ?>" method="post"> |
|
146
|
|
|
<tr> |
|
147
|
|
|
<th colspan="2"><?php echo("RADIUS over UDP"); ?></th> |
|
148
|
|
|
</tr> |
|
149
|
|
|
<tr style="vertical-align:top"> |
|
150
|
|
|
<td> |
|
151
|
|
|
<?php echo _("Your primary RADIUS server") ?> |
|
152
|
|
|
</td> |
|
153
|
|
|
<td> |
|
154
|
|
|
<?php |
|
155
|
|
|
if ($deploymentObject->host1_v4 !== NULL) { |
|
156
|
|
|
printf(_("IPv4: %s"), "<span id='host1_v4_data_$depId'>".$deploymentObject->host1_v4."</span>"); |
|
157
|
|
|
echo copyIcon("host1_v4_icon_$depId"); |
|
158
|
|
|
} |
|
159
|
|
|
if ($deploymentObject->host1_v4 !== NULL && $deploymentObject->host1_v6 !== NULL) { |
|
160
|
|
|
echo "<br/>"; |
|
161
|
|
|
} |
|
162
|
|
|
if ($deploymentObject->host1_v6 !== NULL) { |
|
163
|
|
|
printf(_("IPv6: %s"), "<span id='host1_v6_data_$depId'>".$deploymentObject->host1_v6."</span>"); |
|
164
|
|
|
echo copyIcon("host1_v6_icon_$depId"); |
|
165
|
|
|
} |
|
166
|
|
|
echo "<br/>"; |
|
167
|
|
|
printf(_("port: %s"), "<span id='port1_data_$depId'>".$deploymentObject->port1."</span>"); |
|
168
|
|
|
echo copyIcon("port1_icon_$depId"); |
|
169
|
|
|
?> |
|
170
|
|
|
</td> |
|
171
|
|
|
<td> |
|
172
|
|
|
<?php |
|
173
|
|
|
if ($deploymentObject->status) { |
|
174
|
|
|
echo "<img src='" . $radiusMessages[$deploymentObject->radius_status_1]['icon'] . |
|
175
|
|
|
"' alt='" . $radiusMessages[$deploymentObject->radius_status_1]['text'] . |
|
176
|
|
|
"' title='" . $radiusMessages[$deploymentObject->radius_status_1]['text'] . "' class='cat-icon'>"; |
|
177
|
|
|
} |
|
178
|
|
|
?> |
|
179
|
|
|
</td> |
|
180
|
|
|
</tr> |
|
181
|
|
|
<tr style="vertical-align:top"> |
|
182
|
|
|
<td> |
|
183
|
|
|
<?php echo _("Your secondary RADIUS server") ?> |
|
184
|
|
|
</td> |
|
185
|
|
|
<td> |
|
186
|
|
|
<?php |
|
187
|
|
|
if ($deploymentObject->host2_v4 !== NULL) { |
|
188
|
|
|
printf(_("IPv4: %s"), "<span id='host2_v4_data_$depId'>".$deploymentObject->host2_v4."</span>"); |
|
189
|
|
|
echo copyIcon("host2_v4_icon_$depId"); |
|
190
|
|
|
} |
|
191
|
|
|
if ($deploymentObject->host2_v4 !== NULL && $deploymentObject->host2_v6 !== NULL) { |
|
192
|
|
|
echo "<br/>"; |
|
193
|
|
|
} |
|
194
|
|
|
if ($deploymentObject->host2_v6 !== NULL) { |
|
195
|
|
|
printf(_("IPv6: %s"), "<span id='host2_v6_data_$depId'>".$deploymentObject->host2_v6."</span>"); |
|
196
|
|
|
echo copyIcon("host2_v6_icon_$depId"); |
|
197
|
|
|
} |
|
198
|
|
|
echo "<br/>"; |
|
199
|
|
|
printf(_("port: %s"), "<span id='port2_data_$depId'>".$deploymentObject->port2."</span>"); |
|
200
|
|
|
echo copyIcon("port2_icon_$depId"); |
|
201
|
|
|
?> |
|
202
|
|
|
</td> |
|
203
|
|
|
<td> |
|
204
|
|
|
<?php |
|
205
|
|
|
if ($deploymentObject->status && $deploymentObject->radius_status_2) { |
|
206
|
|
|
echo "<img src='" . $radiusMessages[$deploymentObject->radius_status_2]['icon'] . |
|
207
|
|
|
"' alt='" . $radiusMessages[$deploymentObject->radius_status_2]['text'] . |
|
208
|
|
|
"' title='" . $radiusMessages[$deploymentObject->radius_status_2]['text'] . "' class='cat-icon'>"; |
|
209
|
|
|
} |
|
210
|
|
|
?> |
|
211
|
|
|
</td> |
|
212
|
|
|
</tr> |
|
213
|
|
|
<tr style="vertical-align:bottom"> |
|
214
|
|
|
<td><?php echo _("RADIUS shared secret for both servers"); ?></td> |
|
215
|
|
|
<td> |
|
216
|
|
|
<span id="shared_data_<?php echo $deploymentObject->identifier;?>"><?php echo $deploymentObject->secret;?></span> |
|
217
|
|
|
<?php echo copyIcon("shared_icon_".$deploymentObject->identifier) ?> |
|
218
|
|
|
</td> |
|
219
|
|
|
<td></td> |
|
220
|
|
|
</tr> |
|
221
|
|
|
<tr></tr> |
|
222
|
|
|
<tr><td colspan="3" style="background-color: #1d4a74; height: 1px"></tr> |
|
223
|
|
|
|
|
224
|
|
|
<tr> |
|
225
|
|
|
<th colspan="2"><?php echo("RADIUS over TLS or TLS-PSK"); ?></th> |
|
226
|
|
|
</tr> |
|
227
|
|
|
<tr style="vertical-align:top"> |
|
228
|
|
|
<td> |
|
229
|
|
|
<?php echo _("Your primary RADIUS server") ?> |
|
230
|
|
|
</td> |
|
231
|
|
|
<td> |
|
232
|
|
|
<?php |
|
233
|
|
|
if ($deploymentObject->host1_v4 !== NULL) { |
|
234
|
|
|
printf(_("IPv4: %s"), "<span id='host1_v4_t_data_$depId'>".$deploymentObject->host1_v4."</span>"); |
|
235
|
|
|
echo copyIcon("host1_v4_t_icon_$depId"); |
|
236
|
|
|
} |
|
237
|
|
|
if ($deploymentObject->host1_v4 !== NULL && $deploymentObject->host1_v6 !== NULL) { |
|
238
|
|
|
echo "<br/>"; |
|
239
|
|
|
} |
|
240
|
|
|
if ($deploymentObject->host1_v6 !== NULL) { |
|
241
|
|
|
printf(_("IPv6: %s"), "<span id='host1_v6_t_data_$depId'>".$deploymentObject->host1_v6."</span>"); |
|
242
|
|
|
echo copyIcon("host1_v6_t_icon_$depId"); |
|
243
|
|
|
} |
|
244
|
|
|
echo "<br/>"; |
|
245
|
|
|
printf(_("port: %s"), "<span id='port1_t_data_$depId'>2083</span>"); |
|
246
|
|
|
echo copyIcon("port1_t_icon_$depId"); |
|
247
|
|
|
?> |
|
248
|
|
|
</td> |
|
249
|
|
|
<td> |
|
250
|
|
|
<?php |
|
251
|
|
|
if ($deploymentObject->status) { |
|
252
|
|
|
echo "<img src='" . $radiusMessages[$deploymentObject->radius_status_1]['icon'] . |
|
253
|
|
|
"' alt='" . $radiusMessages[$deploymentObject->radius_status_1]['text'] . |
|
254
|
|
|
"' title='" . $radiusMessages[$deploymentObject->radius_status_1]['text'] . "' class='cat-icon'>"; |
|
255
|
|
|
} |
|
256
|
|
|
?> |
|
257
|
|
|
</td> |
|
258
|
|
|
</tr> |
|
259
|
|
|
<tr style="vertical-align:top"> |
|
260
|
|
|
<td> |
|
261
|
|
|
<?php echo _("Your secondary RADIUS server") ?> |
|
262
|
|
|
</td> |
|
263
|
|
|
<td> |
|
264
|
|
|
<?php |
|
265
|
|
|
if ($deploymentObject->host2_v4 !== NULL) { |
|
266
|
|
|
printf(_("IPv4: %s"), "<span id='host2_v4_t_data_$depId'>".$deploymentObject->host2_v4."</span>"); |
|
267
|
|
|
echo copyIcon("host2_v4_t_icon_$depId"); |
|
268
|
|
|
} |
|
269
|
|
|
if ($deploymentObject->host2_v4 !== NULL && $deploymentObject->host2_v6 !== NULL) { |
|
270
|
|
|
echo "<br/>"; |
|
271
|
|
|
} |
|
272
|
|
|
if ($deploymentObject->host2_v6 !== NULL) { |
|
273
|
|
|
printf(_("IPv6: %s"), "<span id='host2_v6_t_data_$depId'>".$deploymentObject->host2_v6."</span>"); |
|
274
|
|
|
echo copyIcon("host2_v6_t_icon_$depId"); |
|
275
|
|
|
} |
|
276
|
|
|
echo "<br/>"; |
|
277
|
|
|
printf(_("port: %s"), "<span id='port2_t_data_$depId'>2083</span>"); |
|
278
|
|
|
echo copyIcon("port2_t_icon_$depId"); |
|
279
|
|
|
?> |
|
280
|
|
|
</td> |
|
281
|
|
|
<td> |
|
282
|
|
|
<?php |
|
283
|
|
|
if ($deploymentObject->status && $deploymentObject->radius_status_2) { |
|
284
|
|
|
echo "<img src='" . $radiusMessages[$deploymentObject->radius_status_2]['icon'] . |
|
285
|
|
|
"' alt='" . $radiusMessages[$deploymentObject->radius_status_2]['text'] . |
|
286
|
|
|
"' title='" . $radiusMessages[$deploymentObject->radius_status_2]['text'] . "' class='cat-icon'>"; |
|
287
|
|
|
} |
|
288
|
|
|
?> |
|
289
|
|
|
</td> |
|
290
|
|
|
</tr> |
|
291
|
|
|
|
|
292
|
|
|
|
|
293
|
|
|
|
|
294
|
|
|
<?php if ($deploymentObject->radsec_cert != '') { |
|
295
|
|
|
$data = openssl_x509_parse($deploymentObject->radsec_cert); |
|
296
|
|
|
?> |
|
297
|
|
|
<tr style="vertical-align:top"> |
|
298
|
|
|
<td><?php echo _("RADIUS over TLS credentials"); ?></td> |
|
299
|
|
|
<td> |
|
300
|
|
|
<?php |
|
301
|
|
|
if ($deploymentObject->radsec_priv == '') { |
|
302
|
|
|
echo _('The client certificate was created using an uploaded CSR, the private key is not available') . '<br><br>'; |
|
303
|
|
|
} |
|
304
|
|
|
echo _('Subject:') . ' ' . $data['name'] . '<br>'; |
|
305
|
|
|
echo _('Serial number:') . ' ' . $data['serialNumberHex'] . '<br>'; |
|
306
|
|
|
$dleft = floor(($data['validTo_time_t']-time())/(24*60*60)); |
|
307
|
|
|
if ($dleft < 30) { |
|
308
|
|
|
echo '<font color="red">'; |
|
309
|
|
|
} |
|
310
|
|
|
echo _('Not valid after:') . ' '. date_create_from_format('ymdGis', substr($data['validTo'], 0, -1))->format('Y-m-d H:i:s') . ' UTC'; |
|
311
|
|
|
if ($dleft > 2) { |
|
312
|
|
|
echo '<br>' . _('Number of days to expiry:') . ' ' . $dleft; |
|
313
|
|
|
} else { |
|
314
|
|
|
echo '<br>' . _('If you are using RADIUS over TLS you should urgently renew your credentials') . '!'; |
|
315
|
|
|
} |
|
316
|
|
|
if ($dleft < 30) { echo '</font>'; } |
|
317
|
|
|
?></td> |
|
318
|
|
|
</tr><tr><td></td> |
|
319
|
|
|
|
|
320
|
|
|
<td> |
|
321
|
|
|
<span style="display: none;" id="cert_data_<?php echo $depId;?>"><?php echo $deploymentObject->radsec_cert;?></span> |
|
322
|
|
|
<span style="display: none;" id="ca_cert_data_<?php echo $depId;?>"><?php echo $cacert;?></span> |
|
323
|
|
|
<?php if ($deploymentObject->radsec_priv != '') { |
|
324
|
|
|
echo _("private key").copyIcon("priv_key_icon_$depId")." "; |
|
325
|
|
|
echo '<span style="display: none;" id="priv_key_data_'.$depId.'">'.$deploymentObject->radsec_priv.'</span>'; |
|
326
|
|
|
echo ' '; |
|
327
|
|
|
} |
|
328
|
|
|
echo _("certificate").copyIcon("cert_icon_$depId")." "; |
|
329
|
|
|
echo ' '; |
|
330
|
|
|
echo _("CA certificate").copyIcon("ca_cert_icon_$depId"); |
|
331
|
|
|
?> |
|
332
|
|
|
<br/> |
|
333
|
|
|
<button name="sendzip" onclick="location.href='inc/sendZip.inc.php?inst_id=<?php echo $deploymentObject->institution;?>&dep_id=<?php echo $depId?>'" type="button"><?php echo _('download ZIP-file with full data');?></button> |
|
334
|
|
|
|
|
335
|
|
|
</td> |
|
336
|
|
|
<td></td> |
|
337
|
|
|
</tr> |
|
338
|
|
|
<tr> |
|
339
|
|
|
<td></td> |
|
340
|
|
|
<td> |
|
341
|
|
|
<?php |
|
342
|
|
|
if ($deploymentObject->radsec_cert != NULL) { |
|
343
|
|
|
echo "<i>"; |
|
344
|
|
|
echo _('If your certificate is close to expiry or you need to create new RADIUS over TLS credentials') . '<br>' . |
|
345
|
|
|
_('click on "Renew RADIUS over TLS credentials" button') . '<br>'; |
|
346
|
|
|
|
|
347
|
|
|
echo '<br/>' . _('You can upload your own CSR to replace default TLS credentials.') . '<br>' . |
|
348
|
|
|
_('Click on "Upload CSR to sign my own TLS credentials"'); |
|
349
|
|
|
echo "</i>"; |
|
350
|
|
|
} |
|
351
|
|
|
?> |
|
352
|
|
|
</td> |
|
353
|
|
|
<td></td> |
|
354
|
|
|
</tr> |
|
355
|
|
|
<?php |
|
356
|
|
|
|
|
357
|
|
|
} |
|
358
|
|
|
if ($deploymentObject->pskkey != '') {?> |
|
359
|
|
|
<tr style="vertical-align:top"> |
|
360
|
|
|
<td><?php echo _("RADIUS over TLS-PSK credentials"); ?></td> |
|
361
|
|
|
<td> |
|
362
|
|
|
<?php printf(_("PSK Identity: %s"), "<span id='pskid_data_$depId'>SP".$depId.'-'.$deploymentObject->institution.'</span>'); |
|
363
|
|
|
echo copyIcon("pskid_icon_$depId"); |
|
364
|
|
|
?> |
|
365
|
|
|
<br> |
|
366
|
|
|
<?php printf(_("PSK hexphrase: %s"), "<span id='pskkey_data_$depId'>".$deploymentObject->pskkey."</span>"); |
|
367
|
|
|
echo copyIcon("pskkey_icon_$depId"); |
|
368
|
|
|
?> |
|
369
|
|
|
</td> |
|
370
|
|
|
<td></td> |
|
371
|
|
|
</tr> |
|
372
|
|
|
|
|
373
|
|
|
|
|
374
|
|
|
<?php } |
|
375
|
|
|
$allRealms = array_values(array_unique(array_column($deploymentObject->getAttributes("managedsp:realmforvlan"), "value"))); |
|
376
|
|
|
$opname = $deploymentObject->getAttributes("managedsp:operatorname")[0]['value'] ?? NULL; |
|
377
|
|
|
$vlan = $deploymentObject->getAttributes("managedsp:vlan")[0]['value'] ?? NULL; |
|
378
|
|
|
$guest_vlan = $deploymentObject->getAttributes("managedsp:guest_vlan")[0]['value'] ?? NULL; |
|
379
|
|
|
|
|
380
|
|
|
?> |
|
381
|
|
|
<tr></tr> |
|
382
|
|
|
<tr><th colspan="2"><?php echo _('Additional deployment settings');?></th></tr> |
|
383
|
|
|
<tr> |
|
384
|
|
|
<td> |
|
385
|
|
|
<?php |
|
386
|
|
|
if ($opname) { |
|
387
|
|
|
echo _("Custom Operator-Name"); |
|
388
|
|
|
} else { |
|
389
|
|
|
echo _("Default Operator-Name"); |
|
390
|
|
|
} |
|
391
|
|
|
?> |
|
392
|
|
|
</td> |
|
393
|
|
|
<td> |
|
394
|
|
|
<?php |
|
395
|
|
|
if ($opname) { |
|
396
|
|
|
echo $opname; |
|
397
|
|
|
} else { |
|
398
|
|
|
echo '1sp.'.$depId.'-'.$deploymentObject->institution.'.hosted.eduroam.org'; |
|
399
|
|
|
} |
|
400
|
|
|
?> |
|
401
|
|
|
</td> |
|
402
|
|
|
</tr> |
|
403
|
|
|
<?php |
|
404
|
|
|
if ($guest_vlan) { |
|
405
|
|
|
?> |
|
406
|
|
|
<tr> |
|
407
|
|
|
<td><?php echo _("VLAN tag for guests"); ?></td> |
|
408
|
|
|
<td> |
|
409
|
|
|
<?php |
|
410
|
|
|
if ($guest_vlan) { |
|
411
|
|
|
echo $guest_vlan; |
|
412
|
|
|
} |
|
413
|
|
|
?> |
|
414
|
|
|
</td> |
|
415
|
|
|
</tr> |
|
416
|
|
|
<?php |
|
417
|
|
|
} |
|
418
|
|
|
if (!empty($allRealms) || $vlan) { |
|
419
|
|
|
?> |
|
420
|
|
|
<tr> |
|
421
|
|
|
<td><?php echo _("VLAN tag for own users"); ?></td> |
|
422
|
|
|
<td> |
|
423
|
|
|
<?php |
|
424
|
|
|
if ($vlan) { |
|
425
|
|
|
echo $vlan; |
|
426
|
|
|
} else { |
|
427
|
|
|
echo _('not set, be aware that realm setting is not used until a VLAN tag is added'); |
|
428
|
|
|
} |
|
429
|
|
|
?> |
|
430
|
|
|
</td> |
|
431
|
|
|
</tr> |
|
432
|
|
|
<tr> |
|
433
|
|
|
<td><?php echo _("Realm to be considered own users"); ?></td> |
|
434
|
|
|
<td> |
|
435
|
|
|
<?php |
|
436
|
|
|
if (!empty($allRealms)) { |
|
437
|
|
|
echo implode(', ', $allRealms); |
|
438
|
|
|
} else { |
|
439
|
|
|
echo _('not set, be aware that VLAN setting is not used until a realm is added'); |
|
440
|
|
|
} |
|
441
|
|
|
} |
|
442
|
|
|
?> |
|
443
|
|
|
</td></tr> |
|
444
|
|
|
</form> |
|
445
|
|
|
</table> |
|
446
|
|
|
<div class='buttongroupprofilebox' style='clear:both;'> |
|
447
|
|
|
<form action='edit_hotspot.php?inst_id=<?php echo $deploymentObject->institution; ?>&deployment_id=<?php echo $deploymentObject->identifier; ?>' method='post' accept-charset='UTF-8'> |
|
448
|
|
|
<br/> |
|
449
|
|
|
<button type='submit' name='profile_action' value='edit'><?php echo _("Advanced Configuration"); ?></button> |
|
450
|
|
|
</form> |
|
451
|
|
|
<?php if ($isradiusready && $deploymentObject->status == \core\AbstractDeployment::ACTIVE) { ?> |
|
452
|
|
|
<form action='edit_hotspot.php?inst_id=<?php echo $deploymentObject->institution; ?>&deployment_id=<?php echo $deploymentObject->identifier; ?>' method='post' accept-charset='UTF-8'> |
|
453
|
|
|
<button class='delete' type='submit' name='submitbutton' value='<?php echo web\lib\common\FormElements::BUTTON_DELETE; ?>' onclick="return confirm('<?php printf(_("Do you really want to deactivate the %s deployment?"), core\DeploymentManaged::PRODUCTNAME); ?>')"> |
|
454
|
|
|
<?php echo _("Deactivate"); ?> |
|
455
|
|
|
</button> |
|
456
|
|
|
<?php |
|
457
|
|
|
if (isset($_GET['res']) && is_array($_GET['res'])) { |
|
458
|
|
|
$res = array_count_values($_GET['res']); |
|
459
|
|
|
if (array_key_exists('FAILURE', $res) && $res['FAILURE'] > 0) { |
|
460
|
|
|
echo '<br>'; |
|
461
|
|
|
if ($res['FAILURE'] == 2) { |
|
462
|
|
|
echo ' <span style="color: red;">' . _("Activation failure.") . '</span>'; |
|
463
|
|
|
} else { |
|
464
|
|
|
if (isset($_GET['res'][1]) && $_GET['res']['1'] == 'FAILURE') { |
|
465
|
|
|
echo ' <span style="color: red;">' . _("Activation failure for your primary RADIUS server.") . '</span>'; |
|
466
|
|
|
} else { |
|
467
|
|
|
echo ' <span style="color: red;">' . _("Activation failure for your backup RADIUS server.") . '</span>'; |
|
468
|
|
|
} |
|
469
|
|
|
} |
|
470
|
|
|
} |
|
471
|
|
|
} |
|
472
|
|
|
?> |
|
473
|
|
|
</form> |
|
474
|
|
|
<?php |
|
475
|
|
|
} elseif (count($deploymentObject->getAttributes("hiddenmanagedsp:tou_accepted")) == 0) { |
|
476
|
|
|
?> |
|
477
|
|
|
<form action='edit_hotspot.php?inst_id=<?php echo $deploymentObject->institution; ?>&deployment_id=<?php echo $deploymentObject->identifier; ?>' method='post' accept-charset='UTF-8'> |
|
478
|
|
|
<button class='delete' type='submit' name='submitbutton' value='<?php echo web\lib\common\FormElements::BUTTON_TERMSOFUSE_NEEDACCEPTANCE; ?>'> |
|
479
|
|
|
<?php echo _("Accept Terms of Use"); ?> |
|
480
|
|
|
</button> |
|
481
|
|
|
</form> |
|
482
|
|
|
<?php } |
|
483
|
|
|
if ($isradiusready && $deploymentObject->status == \core\AbstractDeployment::INACTIVE && count($deploymentObject->getAttributes("hiddenmanagedsp:tou_accepted"))) { ?> |
|
484
|
|
|
<form action='edit_hotspot.php?inst_id=<?php echo $deploymentObject->institution; ?>&deployment_id=<?php echo $deploymentObject->identifier; ?>' method='post' accept-charset='UTF-8'> |
|
485
|
|
|
<button class='delete' type='submit' name='submitbutton' value='<?php echo web\lib\common\FormElements::BUTTON_ACTIVATE; ?>'> |
|
486
|
|
|
<?php echo _("Activate"); ?> |
|
487
|
|
|
</button> |
|
488
|
|
|
<?php |
|
489
|
|
|
if (isset($_GET['res']) && is_array($_GET['res'])) { |
|
490
|
|
|
$res = array_count_values($_GET['res']); |
|
491
|
|
|
if (array_key_exists('FAILURE', $res) && $res['FAILURE'] > 0) { |
|
492
|
|
|
echo '<br>'; |
|
493
|
|
|
if ($res['FAILURE'] == 2) { |
|
494
|
|
|
echo ' <span style="color: red;">' . _("Failure during deactivation, your request is queued for handling") . '</span>'; |
|
495
|
|
|
} else { |
|
496
|
|
|
if (isset($_GET['res'][1]) && $_GET['res']['1'] == 'FAILURE') { |
|
497
|
|
|
echo ' <span style="color: red;">' . _("Deactivation failure for your primary RADIUS server, your request is queued.") . '</span>'; |
|
498
|
|
|
} else { |
|
499
|
|
|
echo ' <span style="color: red;">' . _("Deactivation failure for your backup RADIUS server, your request is queued.") . '</span>'; |
|
500
|
|
|
} |
|
501
|
|
|
} |
|
502
|
|
|
} |
|
503
|
|
|
} |
|
504
|
|
|
?> |
|
505
|
|
|
</form> |
|
506
|
|
|
<?php } |
|
507
|
|
|
if ($deploymentObject->status == \core\AbstractDeployment::INACTIVE) { ?> |
|
508
|
|
|
<div align="right"> |
|
509
|
|
|
<form action='edit_hotspot.php?inst_id=<?php echo $deploymentObject->institution; ?>&deployment_id=<?php echo $deploymentObject->identifier; ?>' method='post' accept-charset='UTF-8'> |
|
510
|
|
|
<button class='delete' type='submit' name='submitbutton' value='<?php echo web\lib\common\FormElements::BUTTON_REMOVESP; ?>' onclick="return confirm('<?php printf(_("Do you really want to remove this %s deployment?"), core\DeploymentManaged::PRODUCTNAME); ?>')"> |
|
511
|
|
|
<?php echo _("Remove deployment"); ?> |
|
512
|
|
|
</button> |
|
513
|
|
|
</form> |
|
514
|
|
|
</div> |
|
515
|
|
|
<?php } ?> |
|
516
|
|
|
<div align="right"> |
|
517
|
|
|
<form action='edit_hotspot.php?inst_id=<?php echo $deploymentObject->institution; ?>&deployment_id=<?php echo $deploymentObject->identifier; ?>' method='post' accept-charset='UTF-8'> |
|
518
|
|
|
<button class='renewtls' type='submit' name='submitbutton' value='<?php echo web\lib\common\FormElements::BUTTON_RENEWTLS; ?>' onclick="return confirm('<?php printf(_("Do you really want to replace TLS credentials for this %s deployment? The current TLS credentials will be revoked in 4 hours."), core\DeploymentManaged::PRODUCTNAME); ?>')"> |
|
519
|
|
|
<?php echo _("Renew RADIUS over TLS credentials"); ?> |
|
520
|
|
|
</button> |
|
521
|
|
|
</form> |
|
522
|
|
|
<form name="csrupload" enctype="multipart/form-data" action='edit_hotspot.php?inst_id=<?php echo $deploymentObject->institution; ?>&deployment_id=<?php echo $deploymentObject->identifier; ?>' method='post' accept-charset='UTF-8'> |
|
523
|
|
|
<button class='usecsr' type='submit' onclick="getFile();"); ?> |
|
524
|
|
|
<?php echo _("Upload CSR to sign my own TLS credentials"); ?> |
|
525
|
|
|
</button> |
|
526
|
|
|
<div style='height: 0px;width: 0px; overflow:hidden;'> |
|
527
|
|
|
<input name='submitbutton' id='submitbuttoncsr' value=''> |
|
528
|
|
|
<input id="upfile" name="upload" type="file" value="upload" onchange="sendcsr(this);" /> |
|
529
|
|
|
</div> |
|
530
|
|
|
</form> |
|
531
|
|
|
<!-- |
|
532
|
|
|
<label for="csr"><?php echo _("Upload CSR to sign my own TLS credentials"); ?></label> |
|
533
|
|
|
<div align="right"> |
|
534
|
|
|
<form action='edit_hotspot.php?inst_id=<?php echo $deploymentObject->institution; ?>&deployment_id=<?php echo $deploymentObject->identifier; ?>' method='post' accept-charset='UTF-8'> |
|
535
|
|
|
<!--<input type="file" id="csr" class='usecsr' name='submitbutton' value='<?php echo web\lib\common\FormElements::BUTTON_USECSR; ?>' onclick="return confirm('<?php printf(_("Do you really want to replace TLS credentials for this %s deployment? The current TLS credentials will be revoked in 4 hours."), core\DeploymentManaged::PRODUCTNAME); ?>')">--> |
|
536
|
|
|
|
|
537
|
|
|
<!-- this is your file input tag, so i hide it!--> |
|
538
|
|
|
<!-- i used the onchange event to fire the form submission--> |
|
539
|
|
|
|
|
540
|
|
|
<!-- here you can have file submit button or you can write a simple script to upload the file automatically--> |
|
541
|
|
|
<!-- <input type="submit" value='submit' > --> |
|
542
|
|
|
|
|
543
|
|
|
</div> |
|
544
|
|
|
</div> |
|
545
|
|
|
<?php |
|
546
|
|
|
if (!$isradiusready) { |
|
547
|
|
|
echo '<p>'. _("We are not able to handle a new configuration request requiring contact with RADIUS servers now.") . '<br>' . _("Check later."); |
|
548
|
|
|
|
|
549
|
|
|
} |
|
550
|
|
|
if (count($errormsg) > 0 && array_key_exists($deploymentObject->identifier, $errormsg)) { |
|
551
|
|
|
?> |
|
552
|
|
|
<div style='color: red'> |
|
553
|
|
|
<b> |
|
554
|
|
|
<?php echo $errormsg[$deploymentObject->identifier]; ?> |
|
555
|
|
|
</b> |
|
556
|
|
|
</div> |
|
557
|
|
|
<?php |
|
558
|
|
|
} |
|
559
|
|
|
?> |
|
560
|
|
|
</div> |
|
561
|
|
|
<div style='width:20px;'></div> <!-- QR code space, reserved --> |
|
562
|
|
|
<div style='display: table-cell; min-width:200px;'> |
|
563
|
|
|
<?php $tablecaption = _("Hotspot Usage Statistics");?> |
|
564
|
|
|
<h1><?php echo $tablecaption; ?></h1> |
|
565
|
|
|
<h2><?php echo _("5 most recent authentications");?></h2> |
|
566
|
|
|
<p><?php echo _("<b>AP Identifier</b> is a /-separated tuple of NAS-Identifier/NAS-IP-Address/NAS-IPv6-Address/Called-Station-Id") .'<br>'; |
|
567
|
|
|
echo _("<b>Protocol</b> is a protocol used between a client and RADIUS server, for TLS it is a /-separated tuple TLS/<i>TLS-Client-Cert-Serial</i>"); ?></p> |
|
568
|
|
|
<table class='authrecord'> |
|
569
|
|
|
<caption><?php echo $tablecaption;?></caption> |
|
570
|
|
|
<tr style='text-align: left;'> |
|
571
|
|
|
<th scope="col"><strong><?php echo _("Timestamp (UTC)");?></strong></th> |
|
572
|
|
|
<th scope="col"><strong><?php echo _("Outer-Identity");?></strong></th> |
|
573
|
|
|
<th scope="col"><strong><?php echo _("Result");?></strong></th> |
|
574
|
|
|
<th scope="col"><strong><?php echo _("MAC Address");?></strong></th> |
|
575
|
|
|
<th scope="col"><strong><?php echo _("Chargeable-User-Identity");?></strong></th> |
|
576
|
|
|
<th scope="col"><strong><?php echo _("AP Identifier");?></strong></th> |
|
577
|
|
|
<th scope="col"><strong><?php echo _("Protocol");?></strong></th> |
|
578
|
|
|
</tr> |
|
579
|
|
|
<?php |
|
580
|
|
|
$userAuthData = $deploymentObject->retrieveStatistics(0,5); |
|
581
|
|
|
$i = 0; |
|
582
|
|
|
foreach ($userAuthData as $oneRecord) { |
|
583
|
|
|
echo "<tr class='".($oneRecord['result'] == "OK" ? "auth-success" : "auth-fail" )."'>" |
|
584
|
|
|
. "<td>".$oneRecord['activity_time']."</td>" |
|
585
|
|
|
. "<td>".$oneRecord['outer_user']."</td>" |
|
586
|
|
|
. "<td>".($oneRecord['result'] == "OK" ? _("Success") : _("Failure"))."</td>" |
|
587
|
|
|
. "<td>".$oneRecord['mac']."</td>" |
|
588
|
|
|
. "<td>".substr($oneRecord['cui'], 0, 18) |
|
589
|
|
|
. ($oneRecord['cui']=='' ? "" : "... " . copyIcon("cui_icon_".$deploymentObject->identifier."_$i") |
|
590
|
|
|
. "<span style='display: none;' id='cui_data_".$deploymentObject->identifier."_$i'>".$oneRecord['cui'].'</span>')."</td>" |
|
591
|
|
|
. "<td>".$oneRecord['ap_id']."</td>" |
|
592
|
|
|
. "<td>".$oneRecord['prot']."</td>" |
|
593
|
|
|
. "</tr>"; |
|
594
|
|
|
if ($oneRecord['cui']!='') { |
|
595
|
|
|
$i++; |
|
596
|
|
|
} |
|
597
|
|
|
} |
|
598
|
|
|
?> |
|
599
|
|
|
</table> |
|
600
|
|
|
<div style='display: ruby;'> |
|
601
|
|
|
<form style="display: inline;" action="inc/deploymentStats.inc.php?inst_id=<?php echo $deploymentObject->institution; ?>&deployment_id=<?php echo $deploymentObject->identifier; ?>" onsubmit='popupRedirectWindow(this); return false;' accept-charset='UTF-8' method='post'> |
|
602
|
|
|
<button type='submit' id='stats-hour' name='stats' value='HOUR'><?php echo _("Last hour"); ?></button> |
|
603
|
|
|
</form> |
|
604
|
|
|
<form style="display: inline;" action="inc/deploymentStats.inc.php?inst_id=<?php echo $deploymentObject->institution; ?>&deployment_id=<?php echo $deploymentObject->identifier; ?>" onsubmit='popupRedirectWindow(this); return false;' accept-charset='UTF-8' method='post'> |
|
605
|
|
|
<button type='submit' id='stats-month' name='stats' value='MONTH'><?php echo _("Last 30 days"); ?></button> |
|
606
|
|
|
</form> |
|
607
|
|
|
<form style="display: inline;" action="inc/deploymentStats.inc.php?inst_id=<?php echo $deploymentObject->institution; ?>&deployment_id=<?php echo $deploymentObject->identifier; ?>" onsubmit='popupRedirectWindow(this); return false;' accept-charset='UTF-8' method='post'> |
|
608
|
|
|
<button type='submit' id='stats-full' name='stats' value='FULL'><?php echo _("Last 6 months"); ?></button> |
|
609
|
|
|
</form> |
|
610
|
|
|
</div> |
|
611
|
|
|
</br> |
|
612
|
|
|
<?php |
|
613
|
|
|
echo _('Get statistics as CSV file:').' '; |
|
614
|
|
|
$query = 'inc/deploymentStats.inc.php?inst_id='.$deploymentObject->institution."&deployment_id=$depId&as=csv&backlog="; |
|
615
|
|
|
?> |
|
616
|
|
|
<button name="sendcsv" type="button" onclick="location.href='<?php echo $query;?>WEEK';"><?php echo _('Last week');?> |
|
617
|
|
|
</button> |
|
618
|
|
|
<button name="sendcsv" type="button" onclick="location.href='<?php echo $query;?>MONTH';"><?php echo _('Last 30 days');?> |
|
619
|
|
|
</button> |
|
620
|
|
|
<button name="sendcsv" type="button" onclick="location.href='<?php echo $query;?>FULL';"><?php echo _('Last 6 months');?> |
|
621
|
|
|
</button> |
|
622
|
|
|
</div><!-- statistics space --> |
|
623
|
|
|
<div style='height:5px'></div> |
|
624
|
|
|
<div style='display: table-cell; min-width:200px;'> |
|
625
|
|
|
<h1><?php echo _("Hotspot Debug Logs"); ?></h1> |
|
626
|
|
|
<h2><?php echo _('To get detailed logs from RADIUS sites click a button below.'); |
|
627
|
|
|
$query = 'inc/deploymentLogs.inc.php?inst_id='.$deploymentObject->institution."&deployment_id=$depId&backlog="; |
|
628
|
|
|
?></h2> |
|
629
|
|
|
<?php echo _('You will receive zip file with logs from both RADIUS servers: primary (folder named radius-1) and secondary (folder named radius-2).') . '<br>' . |
|
630
|
|
|
_('If no logs are available an empty zip file is provided.');?> |
|
631
|
|
|
<div style='height:3px'></div> |
|
632
|
|
|
<button name="logs" type="button" onclick="location.href='<?php echo $query;?>1';"><?php echo _('Today');?> |
|
633
|
|
|
</button> |
|
634
|
|
|
<button name="logs" type="button" onclick="location.href='<?php echo $query;?>2';"><?php echo _('Last 2 days');?> |
|
635
|
|
|
</button> |
|
636
|
|
|
<button name="logs" type="button" onclick="location.href='<?php echo $query;?>7';"><?php echo _('Last 7 days');?> |
|
637
|
|
|
</button> |
|
638
|
|
|
</div> |
|
639
|
|
|
</div> |
|
640
|
|
|
<!-- dummy div to keep a little distance--> |
|
641
|
|
|
<div style='height:20px'></div> |
|
642
|
|
|
|
|
643
|
|
|
<?php |
|
644
|
|
|
} |
|
645
|
|
|
|
|
646
|
|
|
/** |
|
647
|
|
|
* displays a eduroam DB entry for SPs. Not implemented yet. |
|
648
|
|
|
* |
|
649
|
|
|
* @param \core\DeploymentClassic $deploymentObject the deployment to work with |
|
650
|
|
|
*/ |
|
651
|
|
|
function displayClassicHotspotPropertyWidget($deploymentObject) { |
|
|
|
|
|
|
652
|
|
|
|
|
653
|
|
|
} |
|
654
|
|
|
|
|
655
|
|
|
/** |
|
656
|
|
|
* checks if both RADIUS servers are ready to accept reconfiguration requests |
|
657
|
|
|
* |
|
658
|
|
|
* |
|
659
|
|
|
*/ |
|
660
|
|
|
function radius_ready($dsp) { |
|
661
|
|
|
foreach (array($dsp->host1_v4, $dsp->host2_v4) as $host) { |
|
662
|
|
|
$connection = @fsockopen($host, \config\Master::MANAGEDSP['radiusconfigport']); |
|
|
|
|
|
|
663
|
|
|
if (is_resource($connection)) { |
|
664
|
|
|
fclose($connection); |
|
665
|
|
|
} else { |
|
666
|
|
|
return false; |
|
667
|
|
|
} |
|
668
|
|
|
} |
|
669
|
|
|
return true; |
|
670
|
|
|
} |
|
671
|
|
|
|
|
672
|
|
|
?> |
|
673
|
|
|
<h2 style='display: flex;'><?php printf(_("%s: %s Deployment Details"), $uiElements->nomenclatureParticipant, $uiElements->nomenclatureHotspot); ?> |
|
674
|
|
|
<?php |
|
675
|
|
|
if ($readonly === FALSE && $editMode === 'fullaccess') { |
|
676
|
|
|
if (\config\Master::FUNCTIONALITY_LOCATIONS['CONFASSISTANT_SILVERBULLET'] == "LOCAL" && count($myfed->getAttributes("fed:silverbullet")) > 0) { |
|
677
|
|
|
// the button is greyed out if there's no support email address configured... |
|
678
|
|
|
$hasMail = count($my_inst->getAttributes("support:email")); |
|
679
|
|
|
?> |
|
680
|
|
|
<form action='edit_hotspot.php?inst_id=<?php echo $my_inst->identifier; ?>' method='post' accept-charset='UTF-8'> |
|
681
|
|
|
<div> |
|
682
|
|
|
<input type="hidden" name="consortium" value="eduroam"/> |
|
683
|
|
|
<button type='submit' <?php echo ($hasMail > 0 ? "" : "disabled"); ?> name='profile_action' value='new'> |
|
684
|
|
|
<?php echo sprintf(_("Add %s deployment ..."), \config\ConfAssistant::CONSORTIUM['name'] . " " . \core\DeploymentManaged::PRODUCTNAME); ?> |
|
685
|
|
|
</button> |
|
686
|
|
|
<span style='color: red;'> |
|
687
|
|
|
<?php if ($hasMail == 0) { |
|
688
|
|
|
echo _("Helpdesk mail address is required but missing!"); |
|
689
|
|
|
} |
|
690
|
|
|
?> |
|
691
|
|
|
</span> |
|
692
|
|
|
</div> |
|
693
|
|
|
</form> |
|
694
|
|
|
|
|
695
|
|
|
<?php |
|
696
|
|
|
/* |
|
697
|
|
|
if (count($myfed->getAttributes("fed:openroaming")) > 0) { |
|
698
|
|
|
?> |
|
699
|
|
|
|
|
700
|
|
|
<form action='edit_hotspot.php?inst_id=<?php echo $my_inst->identifier; ?>' method='post' accept-charset='UTF-8'> |
|
701
|
|
|
<div> |
|
702
|
|
|
<input type="hidden" name="consortium" value="OpenRoaming"/> |
|
703
|
|
|
<button type='submit' <?php echo ($hasMail > 0 ? "" : "disabled"); ?> name='profile_action' value='new'> |
|
704
|
|
|
<?php echo sprintf(_("Add %s deployment ..."), "OpenRoaming ANP"); ?> |
|
705
|
|
|
</button> |
|
706
|
|
|
|
|
707
|
|
|
</div> |
|
708
|
|
|
</form> |
|
709
|
|
|
<?php |
|
710
|
|
|
} |
|
711
|
|
|
*/ |
|
712
|
|
|
} |
|
713
|
|
|
} |
|
714
|
|
|
?> |
|
715
|
|
|
</h2> |
|
716
|
|
|
<?php |
|
717
|
|
|
$hotspotProfiles = $my_inst->listDeployments(); |
|
718
|
|
|
if (count($hotspotProfiles) == 0) { // no profiles yet. |
|
719
|
|
|
echo sprintf(_("There are not yet any known deployments for your %s."), $uiElements->nomenclatureHotspot); |
|
720
|
|
|
} |
|
721
|
|
|
|
|
722
|
|
|
foreach ($hotspotProfiles as $counter => $deploymentObject) { |
|
723
|
|
|
switch (get_class($deploymentObject)) { |
|
724
|
|
|
case "core\DeploymentManaged": |
|
725
|
|
|
displayDeploymentPropertyWidget($deploymentObject, $errormsg); |
|
726
|
|
|
break; |
|
727
|
|
|
case "core\DeploymentClassic": |
|
728
|
|
|
displayClassicHotspotPropertyWidget($deploymentObject); |
|
729
|
|
|
break; |
|
730
|
|
|
default: |
|
731
|
|
|
throw new Exception("We were asked to operate on something that is neither a classic nor a Managed hotspot deployment!"); |
|
732
|
|
|
} |
|
733
|
|
|
} |
|
734
|
|
|
?> |
|
735
|
|
|
|