134 lines
5.5 KiB
JavaScript
134 lines
5.5 KiB
JavaScript
|
console.log('Hello world!');
|
||
|
|
||
|
var getAllMessagesURL = `http://${hostAddress}/api/admin/get/messages/`; //hostAddress set in thymeleaf backend
|
||
|
var reencryptURL = `http://${hostAddress}/api/admin/post/re-encrypt`;
|
||
|
var getAllRegularUsersURL = `http://${hostAddress}/api/regular-users`;
|
||
|
var username = sessionStorage.getItem('username');
|
||
|
var password = sessionStorage.getItem('password');
|
||
|
var authToken = 'Basic ' + btoa(username + ":" + password);
|
||
|
var iterations = 10000;
|
||
|
|
||
|
function handleAddToAdminForm() {
|
||
|
document.getElementById('addUserToAdminForm').addEventListener(
|
||
|
'submit',
|
||
|
function(e) {
|
||
|
e.preventDefault();
|
||
|
getAllRegularUsers()
|
||
|
// .then(usernamesArray => {
|
||
|
// console.lo
|
||
|
// });
|
||
|
});
|
||
|
}
|
||
|
|
||
|
function handleChangePassphraseForm() {
|
||
|
document.getElementById('changePassphraseForm').addEventListener(
|
||
|
'submit',
|
||
|
function(e) {
|
||
|
e.preventDefault();
|
||
|
let changePassphraseDropDown = document.getElementById('changePassphraseDropDown');
|
||
|
let user = changePassphraseDropDown.value;
|
||
|
let passphraseOld = document.getElementById('passphraseOld');
|
||
|
let passphraseNew = document.getElementById('passphraseNew');
|
||
|
// let messageCipherNew = {};
|
||
|
console.log(user);
|
||
|
getAllMessages(user)
|
||
|
.then(json => {
|
||
|
console.log(json);
|
||
|
|
||
|
return json;
|
||
|
})
|
||
|
.then(json => {
|
||
|
let jsonNew = [];
|
||
|
let messageCiphers = [];
|
||
|
let chatMessageDTOs = [];
|
||
|
if (json.length > 0) {
|
||
|
json.forEach(function(obj) {
|
||
|
let newObj = obj;
|
||
|
let messageID = obj.messageCipher.id;
|
||
|
let plainText = sjcl.decrypt(passphraseOld.value, JSON.stringify(obj.messageCipher));
|
||
|
let messageCipherNew = sjcl.encrypt(passphraseNew.value, plainText, { mode: "gcm", ts: 128, adata: "", iter: iterations });
|
||
|
// let plainText = sjcl.decrypt("password", JSON.stringify(obj.messageCipher));
|
||
|
// let messageCipherNew = sjcl.encrypt("password2", plainText, { mode: "gcm", ts: 128, adata: "", iter: iterations });
|
||
|
// console.log(messageCipherNew)
|
||
|
let messageCipherNewObj = JSON.parse(messageCipherNew);
|
||
|
// console.log(messageCipherNewObj);
|
||
|
messageCipherNewObj.id = messageID;
|
||
|
newObj.messageCipher = messageCipherNewObj;
|
||
|
// obj.messageCipher = messageCipherNewObj;
|
||
|
// console.log(obj.messageCipher);
|
||
|
// console.log(plainText);
|
||
|
// console.log(messageCipherNewObj);
|
||
|
jsonNew.push(newObj);
|
||
|
messageCiphers.push(messageCipherNewObj);
|
||
|
|
||
|
// let messageCipherJson = JSON.stringify(messageCipherNewObj);
|
||
|
let chatMessageDTO = {
|
||
|
"toUser": user,
|
||
|
"fromUser": username,
|
||
|
"messageCipher": messageCipherNewObj
|
||
|
}
|
||
|
chatMessageDTOs.push(chatMessageDTO);
|
||
|
});
|
||
|
// console.log(jsonNew);
|
||
|
|
||
|
}
|
||
|
// sendReencryptedMessages(JSON.stringify(jsonNew));
|
||
|
console.log
|
||
|
sendReencryptedMessages(JSON.stringify(chatMessageDTOs));
|
||
|
// sendReencryptedMessages(JSON.stringify(messageCiphers));
|
||
|
|
||
|
return jsonNew;
|
||
|
})
|
||
|
.then(json => {
|
||
|
json.forEach(function(obj) {
|
||
|
let plainText = sjcl.decrypt("password2", JSON.stringify(obj.messageCipher));
|
||
|
console.log(plainText);
|
||
|
})
|
||
|
|
||
|
});
|
||
|
});
|
||
|
}
|
||
|
|
||
|
async function getAllMessages(user) {
|
||
|
let headers = new Headers();
|
||
|
// headers.append('Accept','application/json')
|
||
|
// headers.append('Content-Type', 'application/json');
|
||
|
headers.append('Authorization', authToken);
|
||
|
let response = await fetch(`${getAllMessagesURL}${user}`, {
|
||
|
method: 'GET',
|
||
|
headers: headers
|
||
|
});
|
||
|
let data = await response.json();
|
||
|
return data;
|
||
|
}
|
||
|
|
||
|
async function getAllRegularUsers() {
|
||
|
let headers = new Headers();
|
||
|
// headers.append('Accept','application/json')
|
||
|
// headers.append('Content-Type', 'application/json');
|
||
|
headers.append('Authorization', authToken);
|
||
|
let response = await fetch(`${getAllRegularUsersURL}`, {
|
||
|
method: 'GET',
|
||
|
headers: headers
|
||
|
});
|
||
|
let data = await response.json();
|
||
|
return data;
|
||
|
}
|
||
|
|
||
|
function sendReencryptedMessages(chatMessageDTOs) {
|
||
|
let headers = new Headers();
|
||
|
// console.log("Token = " + btoa("hmm" + ":" + "hmm"))
|
||
|
|
||
|
// headers.append('Accept','application/json')
|
||
|
headers.append('Content-Type', 'application/json');
|
||
|
headers.append('Authorization', authToken);
|
||
|
fetch(reencryptURL, {
|
||
|
method: 'POST',
|
||
|
headers: headers,
|
||
|
body: chatMessageDTOs
|
||
|
})
|
||
|
.then(response => console.log(response));
|
||
|
}
|
||
|
|
||
|
handleAddToAdminForm();
|
||
|
handleChangePassphraseForm();
|