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

View File

@@ -926,12 +926,16 @@ speechSynthesis.getVoices();
}
*/
API.login = function (params) {
var { username, password, saveCredentials } = params;
var { username, password, saveCredentials, cipher } = params;
username = encodeURIComponent(username);
password = encodeURIComponent(password);
var auth = btoa(`${username}:${password}`);
if (saveCredentials) {
delete params.saveCredentials;
if (cipher) {
params.password = cipher;
delete params.cipher;
}
$app.saveCredentials = params;
}
return this.call(`auth/user?apiKey=${this.cachedConfig.clientApiKey}`, {
@@ -5016,27 +5020,29 @@ speechSynthesis.getVoices();
},
).then(({value}) => {
for (let name in this.loginForm.savedCredentials) {
security.decrypt(this.loginForm.savedCredentials[name].loginParmas.password, value).then(plaintext => {
this.loginForm.savedCredentials[name].loginParmas.password = plaintext;
security.decrypt(this.loginForm.savedCredentials[name].loginParmas.password, value).then(pt => {
$app.saveCredentials = { username: name, password: pt };
this.updateStoredUser(this.loginForm.savedCredentials[name].user);
}).catch(_ => {
this.enablePrimaryPassword = true;
configRepository.setBool('enablePrimaryPassword', true);
})
}
this.savePrimaryPassword();
}).catch(_ => {
this.enablePrimaryPassword = true;
this.savePrimaryPassword();
configRepository.setBool('enablePrimaryPassword', true);
})
}
}
$app.methods.savePrimaryPassword = function () {
$app.methods.setPrimaryPassword = function () {
configRepository.setBool('enablePrimaryPassword', this.enablePrimaryPassword);
this.enablePrimaryPasswordDialog.visible = false;
if(this.enablePrimaryPassword) {
let key = this.enablePrimaryPasswordDialog.password;
for (let name in this.loginForm.savedCredentials) {
security.encrypt(this.loginForm.savedCredentials[name].loginParmas.password, key).then(plaintext => {
this.loginForm.savedCredentials[name].loginParmas.password = plaintext;
security.encrypt(this.loginForm.savedCredentials[name].loginParmas.password, key).then(ct => {
$app.saveCredentials = { username: name, password: ct};
this.updateStoredUser(this.loginForm.savedCredentials[name].user);
})
}
}
@@ -5071,12 +5077,14 @@ speechSynthesis.getVoices();
}).then(() => {
API.login({
username: loginParmas.username,
password: pwd
password: pwd,
cipher: loginParmas.password
}).catch((err2) => {
this.loginForm.loading = false;
API.logout();
return reject(err2);
}).then(() => {
this.loginForm.loading = false;
return resolve();
});
});
@@ -5089,6 +5097,11 @@ speechSynthesis.getVoices();
$app.methods.deleteSavedLogin = function (username) {
var savedCredentialsArray = JSON.parse(configRepository.getString('savedCredentials'));
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;
var jsonCredentialsArray = JSON.stringify(savedCredentialsArray);
configRepository.setString('savedCredentials', jsonCredentialsArray);

View File

@@ -740,7 +740,7 @@ html
el-switch(v-model="displayVRCPlusIconsAsAvatar")
div.options-container-item
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
span.header Side Pannel Sorting Options
div.options-container-item
@@ -2410,7 +2410,7 @@ html
)
template(#footer)
el-button(
type="primary" size="small" @click="savePrimaryPassword"
type="primary" size="small" @click="setPrimaryPassword"
:disabled="enablePrimaryPasswordDialog.password.length===0||enablePrimaryPasswordDialog.password!==enablePrimaryPasswordDialog.rePassword"
) OK
script(src="app.js")