--- /dev/null
+<html>
+
+<head>
+<title>Profile Manager Control Panel</title>
+
+<style type="text/css">
+#normal { background-color: white; font-family: sans-serif }
+td.head { font-weight: bold; background-color: #e6e6fa; color: brown }
+td.back { background-color: #e6e6fa; color: brown }
+#indent { margin-left: 1cm; margin-right: 1cm }
+</style>
+
+<script language="JavaScript">
+<!--
+function getParam(name, def)
+{
+ var search = top.location.search;
+ search = search.slice(1);
+ var args = search.split("&");
+ var value = "-1";
+ for (var i = 0 ; i < args.length ; i++) {
+ var couple = args[i].split("=");
+ if (couple[0] == name) value = couple[1];
+ }
+ if (value == "-1") value = def;
+ return value;
+}
+
+function getInitialURL()
+{
+ return getParam("pmURL", "http://mowgli.cs.unibo.it:58099/");
+}
+
+function getURL()
+{
+ return document.pmURL.elements[0].value;
+}
+
+function setURL(ss)
+{
+ if (ss.selectedIndex == 0) {
+ document.pmURL.elements[0].value = "";
+ } else {
+ document.pmURL.elements[0].value = "http://" + ss.options[ss.selectedIndex].value;
+ }
+}
+
+function escapePassword(pwd)
+{
+ if (ss == "") {
+ return "";
+ } else {
+ return ("&password=" + escape(pwd));
+ }
+}
+
+function getAccess(ss)
+{
+ return (ss.options[ss.selectedIndex].value);
+}
+-->
+</script>
+
+</head>
+
+<body>
+<a name="top"/>
+<table border="0" width="100%" cellpadding="4">
+<tr><td class="head" align="center"><big><big>Profile Manager Control Panel</big></big></td></tr>
+</table>
+
+<br />
+
+<div>
+This is a control panel for the profile manager. You can control a
+local or remote profile manager by filling the appropriate field below
+and sending the desired commands. Any command issued to the profile
+manager results into an XML response. Note that in order to use this
+page <i>you must have JavaScript enabled</i>. If you have troubles,
+please send an email to the author: lpadovan at cs dot unibo dot it.
+</div>
+
+<p>
+<div style="color: red">
+<b>WARNING</b>: the information stored in a profile,
+including the password, IS NOT encrypted in the profile nor while it
+is travelling from your computer to the profile manager. DO NOT USE
+THE PROFILE MANAGER FOR STORING SENSIBLE INFORMATION LIKE PASSWORDS
+FOR SECURE ACCOUNTS OR ANY OTHER PERSONAL DATA. </div>
+</p>
+
+<div>
+<br />
+
+<table border="1">
+ <tr> <td>
+ <form name="pmURL">
+ Profile Manager <b>URL</b>
+ <input type="text" value="http://localhost:58099/" size="50"/>
+ <select onChange="setURL(this)">
+ <option value="">---</option>
+ <option value="localhost:58099/">localhost</option>
+ <option value="mowgli.cs.unibo.it:58099/">mowgli</option>
+ </select>
+ </form>
+ </td> </tr>
+ <tr> <td>
+ <form>
+ <b>List</b> the profiles currently stored in the Profile Manager<br />
+ <input type="button" value="List"
+ onClick="top.result.location.replace(getURL() + 'list')"/>
+ </form>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <form name="newProfile">
+ <b>Create</b> a new profile<br />
+ <table>
+ <tr><td>Profile ID:</td><td> <input type="text" name="id" value="" /> (leave blank if you want an ID to be assigned automatically)</td></tr>
+ <tr><td>Password:</td><td><input type="text" name="password" value="" /> (optional)</td></tr>
+ </table>
+ <input type="button" value="Create"
+ onClick="top.result.location.replace(getURL() +
+ 'new?id=' + escape(document.newProfile.elements[0].value))"/>
+ </form>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <form name="delProfile">
+ <b>Delete</b> an existing profile<br />
+ <table>
+ <tr><td>Profile ID:</td><td> <input type="text" name="id" value="" /></td></tr>
+ <tr><td>Password:</td><td><input type="text" name="password" value="" /> (optional)</td></tr>
+ </table>
+ <input type="button" value="Delete"
+ onClick="top.result.location.replace(getURL() +
+ 'del?id=' + escape(document.delProfile.elements[0].value) +
+ '&password=' + escape(document.delProfile.elements[1].value))"/>
+ </form>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <form name="getProfile">
+ <b>Retrieve</b> an existing profile<br />
+ <table>
+ <tr><td>Profile ID:</td><td> <input type="text" name="id" value="" /></td></tr>
+ <tr><td>Password:</td><td><input type="text" name="password" value="" /> (optional)</td></tr>
+ </table>
+ <input type="button" value="Get"
+ onClick="top.result.location.replace(getURL() +
+ 'get?id=' + escape(document.getProfile.elements[0].value) +
+ '&password=' + escape(document.getProfile.elements[1].value))"/>
+ </form>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <form name="setProfile">
+ <b>Set</b> the value for a field in an existing profile<br />
+ <table>
+ <tr><td>Profile ID:</td><td> <input type="text" name="id" value="" /></td></tr>
+ <tr><td>Password:</td><td><input type="text" name="password" value="" /> (optional)</td></tr>
+ <tr><td>Field:</td><td><input type="text" name="field" value="" /></td></tr>
+ <tr><td>Value:</td><td><input type="text" name="value" value="" /> (optional, if blank will remove the field from the profile)</td></tr>
+ </table>
+ <input type="button" value="Set"
+ onClick="top.result.location.replace(getURL() +
+ 'set?id=' + escape(document.setProfile.elements[0].value) +
+ '&password=' + escape(document.setProfile.elements[1].value) +
+ '&field=' + escape(document.setProfile.elements[2].value) +
+ '&value=' + escape(document.setProfile.elements[3].value))"/>
+ </form>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <form name="setPassword">
+ <b>Set/Change</b> the password for a profile<br />
+ <table>
+ <tr><td>Profile ID:</td><td> <input type="text" name="id" value="" /></td></tr>
+ <tr><td>Old password:</td><td><input type="text" name="old_password" value="" /> (optional)</td></tr>
+ <tr><td>New password:</td><td><input type="text" name="new_password" value="" /> (optional)</td></tr>
+ </table>
+ <input type="button" value="Set/Change"
+ onClick="top.result.location.replace(getURL() +
+ 'password?id=' + escape(document.setPassword.elements[0].value) +
+ '&old_password=' + escape(document.setPassword.elements[1].value) +
+ '&new_password=' + escape(document.setPassword.elements[2].value))"/>
+ </form>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <form name="setAccess">
+ <b>Set</b> the access capabilities for a profile<br />
+ <table>
+ <tr><td>Profile ID:</td><td> <input type="text" name="id" value="" /></td></tr>
+ <tr><td>Password:</td><td><input type="text" name="password" value="" /> (optional)</td></tr>
+ <tr><td>Read access:</td><td>
+ <select>
+ <option value="allowed">allowed</option>
+ <option value="denied">denied</option>
+ <option value="password">allowed with password</option>
+ </select>
+ </td></tr>
+ <tr><td>Write access:</td><td>
+ <select>
+ <option value="allowed">allowed</option>
+ <option value="denied">denied</option>
+ <option value="password">allowed with password</option>
+ </select>
+ </td></tr>
+ <tr><td>Profile access:</td><td>
+ <select>
+ <option value="allowed">allowed</option>
+ <option value="denied">denied</option>
+ <option value="password">allowed with password</option>
+ </select>
+ </td></tr>
+ </table>
+ <input type="button" value="Set"
+ onClick="top.result.location.replace(getURL() +
+ 'access?id=' + escape(document.setAccess.elements[0].value) +
+ '&password=' + escape(document.setAccess.elements[1].value) +
+ '&read=' + getAccess(document.setAccess.elements[2]) +
+ '&write=' + getAccess(document.setAccess.elements[3]) +
+ '&profile=' + getAccess(document.setAccess.elements[4]))"/>
+ </form>
+ </td>
+ </tr>
+</table>
+</div>
+
+</body>
+
+</html>
+