Commit 8be8e6fe authored by Juliusz Chroboczek's avatar Juliusz Chroboczek

Use management stubs in change-password.js.

parent 53481fde
......@@ -15,12 +15,12 @@
<h1 id="title" class="navbar-brand">Change password</h1>
<form id="passwordform">
<label for="old1">Old password:</label>
<input id="old1" type="password"/>
<label for="old2">Old password (repeat):</label>
<input id="old2" type="password"/>
<label for="new">New password:</label>
<input id="new" type="password"/>
<label for="old">Old password:</label>
<input id="old" type="password"/>
<label for="new1">New password:</label>
<input id="new1" type="password"/>
<label for="new2">New password (repeat):</label>
<input id="new2" type="password"/>
<input type="submit" value="Submit"/>
</form>
......@@ -28,6 +28,7 @@
<p id="errormessage"></p>
<script src="/management.js" defer></script>
<script src="/change-password.js" defer></script>
</body>
</html>
......@@ -35,18 +35,19 @@ document.getElementById('passwordform').onsubmit = async function(e) {
return;
}
let old1 = document.getElementById('old1').value;
let old2 = document.getElementById('old2').value;
if(old1 !== old2) {
let old = document.getElementById('old').value;
let new1 = document.getElementById('new1').value;
let new2 = document.getElementById('new2').value;
if(new1 !== new2) {
displayError("Passwords don't match.");
return;
}
try {
await doit(group, user, old1, document.getElementById('new').value);
document.getElementById('old1').value = '';
document.getElementById('old2').value = '';
document.getElementById('new').value = '';
await setPassword(group, user, new1, old);
document.getElementById('old').value = '';
document.getElementById('new1').value = '';
document.getElementById('new2').value = '';
displayError(null);
document.getElementById('message').textContent =
'Password successfully changed.';
......@@ -55,26 +56,6 @@ document.getElementById('passwordform').onsubmit = async function(e) {
}
}
async function doit(group, user, old, pw) {
let creds = btoa(user + ":" + old);
let r = await fetch(`/galene-api/0/.groups/${group}/.users/${user}/.password`,
{
method: 'POST',
body: pw,
credentials: 'omit',
headers: {
'Authorization': `Basic ${creds}`
}
});
if(!r.ok) {
if(r.status === 401)
throw new Error('Permission denied');
else
throw new Error(`The server said: ${r.status} ${r.statusText}`);
return;
}
}
function displayError(message) {
document.getElementById('errormessage').textContent = (message || '');
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment