fix: 12 issues - admin permission scope, player sidebar nav, SMTP label, user create servers
This commit is contained in:
@@ -25,7 +25,7 @@ const SettingsPage = {
|
||||
<div class="grid-2"><div class="form-group"><label>用户名</label><input id="s-user" value="${U.esc(settings.smtp_user?.value||'')}"></div>
|
||||
<div class="form-group"><label>密码</label><input type="password" id="s-pass" value="${U.esc(settings.smtp_pass?.value||'')}"></div></div>
|
||||
<div class="grid-2"><div class="form-group"><label>发件地址</label><input id="s-from" value="${U.esc(settings.smtp_from?.value||'')}"></div>
|
||||
<div class="form-group"><label>SSL</label><select id="s-secure"><option value="0" ${settings.smtp_secure?.value!=='1'?'selected':''}>否(587)</option><option value="1" ${settings.smtp_secure?.value==='1'?'selected':''}>是(465)</option></select></div></div>
|
||||
<div class="form-group"><label>加密方式</label><select id="s-secure"><option value="0" ${settings.smtp_secure?.value!=='1'?'selected':''}>STARTTLS (587)</option><option value="1" ${settings.smtp_secure?.value==='1'?'selected':''}>SSL/TLS (465)</option></select></div></div>
|
||||
<button type="submit" class="btn btn-p btn-sm"><i class="fas fa-save"></i> 保存SMTP设置</button>
|
||||
</form>
|
||||
</div></div>
|
||||
|
||||
@@ -30,23 +30,37 @@ const UsersPage = {
|
||||
},
|
||||
|
||||
createUser() {
|
||||
this.loadServersForCreate();
|
||||
},
|
||||
|
||||
async loadServersForCreate() {
|
||||
let groups = [];
|
||||
try { groups = await API.get('/polls/groups'); } catch {}
|
||||
const checks = groups.map(g => {
|
||||
return `<label style="display:inline-flex;align-items:center;gap:4px;margin:2px 8px 2px 0;font-size:12px;white-space:nowrap"><input type="checkbox" value="${g.group_name}::${g.server_name}" class="cu-srv"> ${g.group_name}/${g.server_name}</label>`;
|
||||
}).join('');
|
||||
|
||||
U.modal('添加用户', `
|
||||
<form id="cu-form">
|
||||
<div class="grid-2"><div class="form-group"><label>用户名 *</label><input id="cu-u" required></div><div class="form-group"><label>密码 *</label><input type="password" id="cu-p" required minlength="6"></div></div>
|
||||
<div class="grid-2"><div class="form-group"><label>邮箱 *</label><input type="email" id="cu-e" required></div><div class="form-group"><label>来源</label><select id="cu-s"><option value="netease">网易端</option><option value="skin">皮肤站</option></select></div></div>
|
||||
<div class="grid-2"><div class="form-group"><label>角色 *</label><select id="cu-r"><option value="owner">服主</option><option value="admin">管理员</option><option value="player">玩家</option></select></div></div>
|
||||
<div class="grid-2"><div class="form-group"><label>角色 *</label><select id="cu-r" onchange="this.value==='admin'?document.getElementById('cu-servers').classList.remove('hidden'):document.getElementById('cu-servers').classList.add('hidden')">${req.user.role==='owner'?'<option value="owner">服主</option>':''}<option value="admin">管理员</option><option value="player">玩家</option></select></div></div>
|
||||
<div class="grid-2"><div class="form-group"><label>游戏名 *</label><input id="cu-gn" required></div><div class="form-group"><label>游戏UID *</label><input id="cu-gu" required></div></div>
|
||||
<div class="form-group hidden" id="cu-servers"><label>管辖子服务器</label><div style="max-height:120px;overflow-y:auto;border:1px solid var(--g200);border-radius:var(--r);padding:8px">${checks||'<span class="tm">暂无可选服务器</span>'}</div></div>
|
||||
<div class="modal-f"><button type="button" class="btn btn-o" data-action="App:closeModal">取消</button><button type="submit" class="btn btn-p">创建</button></div>
|
||||
</form>
|
||||
`);
|
||||
document.getElementById('cu-form').onsubmit = async e => {
|
||||
e.preventDefault();
|
||||
const servers = [];
|
||||
document.querySelectorAll('.cu-srv:checked').forEach(cb => { const [g,s] = cb.value.split('::'); servers.push({group_name:g,server_name:s}); });
|
||||
try {
|
||||
await API.post('/users', {
|
||||
username: document.getElementById('cu-u').value, password: document.getElementById('cu-p').value,
|
||||
email: document.getElementById('cu-e').value, role: document.getElementById('cu-r').value,
|
||||
game_name: document.getElementById('cu-gn').value, game_uid: document.getElementById('cu-gu').value,
|
||||
source: document.getElementById('cu-s').value,
|
||||
admin_servers: servers,
|
||||
});
|
||||
App.closeModal(); this.load();
|
||||
} catch (ex) { alert(ex.message); }
|
||||
|
||||
Reference in New Issue
Block a user