To be done

This commit is contained in:
CunYu
2021-06-18 10:42:32 +08:00
committed by pypy
parent ea1e6e82de
commit d8b558489b
2 changed files with 24 additions and 11 deletions
+22 -9
View File
@@ -926,12 +926,16 @@ speechSynthesis.getVoices();
} }
*/ */
API.login = function (params) { API.login = function (params) {
var { username, password, saveCredentials } = params; var { username, password, saveCredentials, cipher } = params;
username = encodeURIComponent(username); username = encodeURIComponent(username);
password = encodeURIComponent(password); password = encodeURIComponent(password);
var auth = btoa(`${username}:${password}`); var auth = btoa(`${username}:${password}`);
if (saveCredentials) { if (saveCredentials) {
delete params.saveCredentials; delete params.saveCredentials;
if (cipher) {
params.password = cipher;
delete params.cipher;
}
$app.saveCredentials = params; $app.saveCredentials = params;
} }
return this.call(`auth/user?apiKey=${this.cachedConfig.clientApiKey}`, { return this.call(`auth/user?apiKey=${this.cachedConfig.clientApiKey}`, {
@@ -5016,27 +5020,29 @@ speechSynthesis.getVoices();
}, },
).then(({value}) => { ).then(({value}) => {
for (let name in this.loginForm.savedCredentials) { for (let name in this.loginForm.savedCredentials) {
security.decrypt(this.loginForm.savedCredentials[name].loginParmas.password, value).then(plaintext => { security.decrypt(this.loginForm.savedCredentials[name].loginParmas.password, value).then(pt => {
this.loginForm.savedCredentials[name].loginParmas.password = plaintext; $app.saveCredentials = { username: name, password: pt };
this.updateStoredUser(this.loginForm.savedCredentials[name].user);
}).catch(_ => { }).catch(_ => {
this.enablePrimaryPassword = true; this.enablePrimaryPassword = true;
configRepository.setBool('enablePrimaryPassword', true);
}) })
} }
this.savePrimaryPassword();
}).catch(_ => { }).catch(_ => {
this.enablePrimaryPassword = true; this.enablePrimaryPassword = true;
this.savePrimaryPassword(); configRepository.setBool('enablePrimaryPassword', true);
}) })
} }
} }
$app.methods.savePrimaryPassword = function () { $app.methods.setPrimaryPassword = function () {
configRepository.setBool('enablePrimaryPassword', this.enablePrimaryPassword); configRepository.setBool('enablePrimaryPassword', this.enablePrimaryPassword);
this.enablePrimaryPasswordDialog.visible = false; this.enablePrimaryPasswordDialog.visible = false;
if(this.enablePrimaryPassword) { if(this.enablePrimaryPassword) {
let key = this.enablePrimaryPasswordDialog.password; let key = this.enablePrimaryPasswordDialog.password;
for (let name in this.loginForm.savedCredentials) { for (let name in this.loginForm.savedCredentials) {
security.encrypt(this.loginForm.savedCredentials[name].loginParmas.password, key).then(plaintext => { security.encrypt(this.loginForm.savedCredentials[name].loginParmas.password, key).then(ct => {
this.loginForm.savedCredentials[name].loginParmas.password = plaintext; $app.saveCredentials = { username: name, password: ct};
this.updateStoredUser(this.loginForm.savedCredentials[name].user);
}) })
} }
} }
@@ -5071,12 +5077,14 @@ speechSynthesis.getVoices();
}).then(() => { }).then(() => {
API.login({ API.login({
username: loginParmas.username, username: loginParmas.username,
password: pwd password: pwd,
cipher: loginParmas.password
}).catch((err2) => { }).catch((err2) => {
this.loginForm.loading = false; this.loginForm.loading = false;
API.logout(); API.logout();
return reject(err2); return reject(err2);
}).then(() => { }).then(() => {
this.loginForm.loading = false;
return resolve(); return resolve();
}); });
}); });
@@ -5089,6 +5097,11 @@ speechSynthesis.getVoices();
$app.methods.deleteSavedLogin = function (username) { $app.methods.deleteSavedLogin = function (username) {
var savedCredentialsArray = JSON.parse(configRepository.getString('savedCredentials')); var savedCredentialsArray = JSON.parse(configRepository.getString('savedCredentials'));
delete savedCredentialsArray[username]; delete savedCredentialsArray[username];
// Disable primary password when no account is available.
if (Object.keys(savedCredentialsArray).length === 0) {
$app.enablePrimaryPassword = false;
configRepository.setBool('enablePrimaryPassword', false);
}
$app.loginForm.savedCredentials = savedCredentialsArray; $app.loginForm.savedCredentials = savedCredentialsArray;
var jsonCredentialsArray = JSON.stringify(savedCredentialsArray); var jsonCredentialsArray = JSON.stringify(savedCredentialsArray);
configRepository.setString('savedCredentials', jsonCredentialsArray); configRepository.setString('savedCredentials', jsonCredentialsArray);
+2 -2
View File
@@ -740,7 +740,7 @@ html
el-switch(v-model="displayVRCPlusIconsAsAvatar") el-switch(v-model="displayVRCPlusIconsAsAvatar")
div.options-container-item div.options-container-item
span.name Use a Primary Password span.name Use a Primary Password
el-switch(v-model="enablePrimaryPassword" @change="enablePrimaryPasswordChange") el-switch(v-model="enablePrimaryPassword" @change="enablePrimaryPasswordChange" :disabled="!loginForm.savedCredentials[API.currentUser.username]")
div.options-container div.options-container
span.header Side Pannel Sorting Options span.header Side Pannel Sorting Options
div.options-container-item div.options-container-item
@@ -2410,7 +2410,7 @@ html
) )
template(#footer) template(#footer)
el-button( el-button(
type="primary" size="small" @click="savePrimaryPassword" type="primary" size="small" @click="setPrimaryPassword"
:disabled="enablePrimaryPasswordDialog.password.length===0||enablePrimaryPasswordDialog.password!==enablePrimaryPasswordDialog.rePassword" :disabled="enablePrimaryPasswordDialog.password.length===0||enablePrimaryPasswordDialog.password!==enablePrimaryPasswordDialog.rePassword"
) OK ) OK
script(src="app.js") script(src="app.js")