feat: 增加用户修改密码与管理员重置密码
This commit is contained in:
@@ -380,6 +380,7 @@ function renderUserArea() {
|
||||
if (!currentUser) return;
|
||||
document.getElementById('user-name').textContent = currentUser.displayName || currentUser.username;
|
||||
document.getElementById('btn-logout').style.display = '';
|
||||
document.getElementById('btn-change-password').style.display = '';
|
||||
if (currentUser.isAdmin) {
|
||||
document.getElementById('admin-link').style.display = '';
|
||||
}
|
||||
@@ -477,6 +478,47 @@ function closeSettingsModal() {
|
||||
document.getElementById('settings-modal-overlay').classList.remove('show');
|
||||
}
|
||||
|
||||
function openPasswordModal() {
|
||||
document.getElementById('password-msg').textContent = '';
|
||||
document.getElementById('password-old').value = '';
|
||||
document.getElementById('password-new').value = '';
|
||||
document.getElementById('password-confirm').value = '';
|
||||
document.getElementById('password-modal-overlay').classList.add('show');
|
||||
setTimeout(function() { document.getElementById('password-old').focus(); }, 0);
|
||||
}
|
||||
|
||||
function closePasswordModal() {
|
||||
document.getElementById('password-modal-overlay').classList.remove('show');
|
||||
}
|
||||
|
||||
function savePasswordModal() {
|
||||
var oldPassword = document.getElementById('password-old').value;
|
||||
var newPassword = document.getElementById('password-new').value;
|
||||
var confirmPassword = document.getElementById('password-confirm').value;
|
||||
var msg = document.getElementById('password-msg');
|
||||
if (!oldPassword) {
|
||||
msg.textContent = '请输入当前密码';
|
||||
return;
|
||||
}
|
||||
if (newPassword.length < 6) {
|
||||
msg.textContent = '新密码至少 6 位';
|
||||
return;
|
||||
}
|
||||
if (newPassword !== confirmPassword) {
|
||||
msg.textContent = '两次输入的新密码不一致';
|
||||
return;
|
||||
}
|
||||
apiChangePassword({
|
||||
oldPassword: oldPassword,
|
||||
newPassword: newPassword
|
||||
}).then(function() {
|
||||
closePasswordModal();
|
||||
alert('密码已修改');
|
||||
}).catch(function(err) {
|
||||
msg.textContent = err.message || '修改密码失败';
|
||||
});
|
||||
}
|
||||
|
||||
function saveSettingsModal() {
|
||||
var extra = {};
|
||||
var rawExtra = document.getElementById('extra-config').value.trim();
|
||||
@@ -530,6 +572,9 @@ function bindAppEvents() {
|
||||
document.getElementById('btn-settings').addEventListener('click', openSettingsModal);
|
||||
document.getElementById('settings-cancel').addEventListener('click', closeSettingsModal);
|
||||
document.getElementById('settings-save').addEventListener('click', saveSettingsModal);
|
||||
document.getElementById('btn-change-password').addEventListener('click', openPasswordModal);
|
||||
document.getElementById('password-cancel').addEventListener('click', closePasswordModal);
|
||||
document.getElementById('password-save').addEventListener('click', savePasswordModal);
|
||||
document.getElementById('btn-logout').addEventListener('click', handleLogout);
|
||||
|
||||
document.querySelectorAll('#mobile-nav button').forEach(function(btn) {
|
||||
|
||||
Reference in New Issue
Block a user