Skip to content

Commit c2a8b95

Browse files
committed
update
1 parent e6af36a commit c2a8b95

File tree

4 files changed

+130
-97
lines changed

4 files changed

+130
-97
lines changed

panel_tools.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
os.chdir(web_dir)
2424
sys.path.append(web_dir)
2525

26-
from utils.firewall import firewall as MwFirewall
26+
from utils.firewall import Firewall as MwFirewall
2727
import core.mw as mw
2828
import thisdb
2929

web/admin/setting/setting.py

Lines changed: 29 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,7 @@
1515
from flask import Blueprint, render_template
1616
from flask import request
1717

18-
from admin import model
19-
18+
from admin import session
2019
from admin.user_login_check import panel_login_required
2120

2221

@@ -203,6 +202,34 @@ def set_ipv6_status():
203202
mw.restartMw()
204203
return mw.returnData(True, '设置成功!')
205204

205+
# 设置面板用户
206+
@blueprint.route('/set_name', endpoint='set_name', methods=['POST'])
207+
@panel_login_required
208+
def set_name():
209+
name1 = request.form.get('name1', '')
210+
name2 = request.form.get('name2', '')
211+
if name1 != name2:
212+
return mw.returnData(False, '两次输入的用户名不一致,请重新输入!')
213+
if len(name1) < 3:
214+
return mw.returnData(False, '用户名长度不能少于3位')
215+
thisdb.setUserByName(session['username'], name1)
216+
session['username'] = name1
217+
return mw.returnData(True, '用户修改成功!')
218+
219+
@blueprint.route('/set_password', endpoint='set_password', methods=['POST'])
220+
@panel_login_required
221+
def set_password():
222+
password1 = request.form.get('password1', '')
223+
password2 = request.form.get('password2', '')
224+
if password1 != password2:
225+
return mw.returnData(False, '两次输入的密码不一致,请重新输入!')
226+
if len(password1) < 5:
227+
return mw.returnData(False, '用户密码不能小于5位!')
228+
229+
thisdb.setUserPwdByName(session['username'], password1)
230+
return mw.returnData(True, '密码修改成功!')
231+
232+
206233
# 设置站点状态
207234
@blueprint.route('/set_port', endpoint='set_port', methods=['POST'])
208235
@panel_login_required

web/static/app/config.js

Lines changed: 93 additions & 94 deletions
Original file line numberDiff line numberDiff line change
@@ -310,126 +310,125 @@ function modifyAuthPath() {
310310
});
311311
}
312312

313-
function setPassword(a) {
314-
if(a == 1) {
315-
p1 = $("#p1").val();
316-
p2 = $("#p2").val();
317-
if(p1 == "" || p1.length < 8) {
318-
layer.msg('面板密码不能少于8位!', {icon: 2});
319-
return
320-
}
321-
322-
//准备弱口令匹配元素
323-
var checks = ['admin888','123123123','12345678','45678910','87654321','asdfghjkl','password','qwerqwer'];
324-
pchecks = 'abcdefghijklmnopqrstuvwxyz1234567890';
325-
for(var i=0;i<pchecks.length;i++){
326-
checks.push(pchecks[i]+pchecks[i]+pchecks[i]+pchecks[i]+pchecks[i]+pchecks[i]+pchecks[i]+pchecks[i]);
327-
}
328-
329-
//检查弱口令
330-
cps = p1.toLowerCase();
331-
var isError = "";
332-
for(var i=0;i<checks.length;i++){
333-
if(cps == checks[i]){
334-
isError += '['+checks[i]+'] ';
335-
}
336-
}
337-
338-
if(isError != ""){
339-
layer.msg('面板密码不能为弱口令'+isError,{icon:5});
340-
return;
341-
}
342-
343-
if(p1 != p2) {
344-
layer.msg('两次输入的密码不一致', {icon: 2});
345-
return;
346-
}
347-
$.post("/setting/set_password", "password1=" + encodeURIComponent(p1) + "&password2=" + encodeURIComponent(p2), function(b) {
348-
if(b.status) {
349-
layer.closeAll();
350-
layer.msg(b.msg, {icon: 1});
351-
} else {
352-
layer.msg(b.msg, {icon: 2});
353-
}
354-
},'json');
355-
return;
356-
}
313+
function setPassword() {
357314
layer.open({
358315
type: 1,
359-
area: "290px",
316+
area: ["350px",'auto'],
360317
title: '修改密码',
361318
closeBtn: 1,
362319
shift: 5,
363320
shadeClose: false,
364-
content: "<div class='bt-form pd20 pb70'>\
321+
btn:["修改","关闭","随机"],
322+
content: "<div class='bt-form'>\
365323
<div class='line'>\
366324
<span class='tname'>密码</span>\
367-
<div class='info-r'><input class='bt-input-text' type='text' name='password1' id='p1' value='' placeholder='新的密码' style='width:100%'/></div>\
325+
<div class='info-r'><input class='bt-input-text' type='text' name='password1' id='p1' value='' placeholder='新的密码' style='width:70%'/></div>\
368326
</div>\
369327
<div class='line'>\
370328
<span class='tname'>重复</span>\
371-
<div class='info-r'><input class='bt-input-text' type='text' name='password2' id='p2' value='' placeholder='再输一次' style='width:100%' /></div>\
372-
</div>\
373-
<div class='bt-form-submit-btn'>\
374-
<span style='float: left;' title='随机密码' class='btn btn-default btn-sm' onclick='randPwd(10)'>随机</span>\
375-
<button type='button' class='btn btn-danger btn-sm' onclick=\"layer.closeAll()\">关闭</button>\
376-
<button type='button' class='btn btn-success btn-sm' onclick=\"setPassword(1)\">修改</button>\
329+
<div class='info-r'><input class='bt-input-text' type='text' name='password2' id='p2' value='' placeholder='再输一次' style='width:70%' /></div>\
377330
</div>\
378-
</div>"
331+
</div>",
332+
yes:function(){
333+
var p1 = $("#p1").val();
334+
var p2 = $("#p2").val();
335+
if(p1 == "" || p1.length < 8) {
336+
layer.msg('面板密码不能少于8位!', {icon: 2});
337+
return
338+
}
339+
340+
//准备弱口令匹配元素
341+
var checks = ['admin888','123123123','12345678','45678910','87654321','asdfghjkl','password','qwerqwer'];
342+
pchecks = 'abcdefghijklmnopqrstuvwxyz1234567890';
343+
for(var i=0;i<pchecks.length;i++){
344+
checks.push(pchecks[i]+pchecks[i]+pchecks[i]+pchecks[i]+pchecks[i]+pchecks[i]+pchecks[i]+pchecks[i]);
345+
}
346+
347+
//检查弱口令
348+
cps = p1.toLowerCase();
349+
var isError = "";
350+
for(var i=0;i<checks.length;i++){
351+
if(cps == checks[i]){
352+
isError += '['+checks[i]+'] ';
353+
}
354+
}
355+
356+
if(isError != ""){
357+
layer.msg('面板密码不能为弱口令'+isError,{icon:5});
358+
return;
359+
}
360+
361+
if(p1 != p2) {
362+
layer.msg('两次输入的密码不一致', {icon: 2});
363+
return;
364+
}
365+
$.post("/setting/set_password", "password1=" + encodeURIComponent(p1) + "&password2=" + encodeURIComponent(p2), function(b) {
366+
if(b.status) {
367+
layer.closeAll();
368+
layer.msg(b.msg, {icon: 1});
369+
} else {
370+
layer.msg(b.msg, {icon: 2});
371+
}
372+
},'json');
373+
return;
374+
},
375+
btn3: function(){
376+
var pwd = randomStrPwd(12);
377+
$("#p1").val(pwd);
378+
$("#p2").val(pwd);
379+
layer.msg('请在修改前记录好您的新密码!',{time:2000});
380+
return false;
381+
}
379382
});
380383
}
381384

382-
383-
function randPwd(){
384-
var pwd = randomStrPwd(12);
385-
$("#p1").val(pwd);
386-
$("#p2").val(pwd);
387-
layer.msg(lan.bt.pass_rep_ps,{time:2000})
388-
}
389-
390-
function setUserName(a) {
391-
if(a == 1) {
392-
p1 = $("#p1").val();
393-
p2 = $("#p2").val();
394-
if(p1 == "" || p1.length < 3) {
395-
layer.msg('用户名长度不能少于3位', {icon: 2});
396-
return;
397-
}
398-
if(p1 != p2) {
399-
layer.msg('两次输入的用户名不一致', {icon: 2});
400-
return;
401-
}
402-
$.post("/setting/set_name", "name1=" + encodeURIComponent(p1) + "&name2=" + encodeURIComponent(p2), function(b) {
403-
if(b.status) {
404-
layer.closeAll();
405-
layer.msg(b.msg, {icon: 1});
406-
$("input[name='username_']").val(p1)
407-
} else {
408-
layer.msg(b.msg, {icon: 2});
409-
}
410-
},'json');
411-
return
412-
}
385+
function setUserName() {
413386
layer.open({
414387
type: 1,
415-
area: "290px",
388+
area: ["350px",'auto'],
416389
title: '修改面板用户名',
417390
closeBtn: 1,
418391
shift: 5,
419392
shadeClose: false,
420-
content: "<div class='bt-form pd20 pb70'>\
393+
btn:["确定","取消","随机"],
394+
content: "<div class='bt-form pd20'>\
421395
<div class='line'><span class='tname'>用户名</span>\
422-
<div class='info-r'><input class='bt-input-text' type='text' name='password1' id='p1' value='' placeholder='新的用户名' style='width:100%'/></div>\
396+
<div class='info-r'><input class='bt-input-text' type='text' name='password1' id='p1' value='' placeholder='新的用户名' style='width:70%'/></div>\
423397
</div>\
424398
<div class='line'>\
425399
<span class='tname'>重复</span>\
426-
<div class='info-r'><input class='bt-input-text' type='text' name='password2' id='p2' value='' placeholder='再输一次' style='width:100%'/></div>\
400+
<div class='info-r'><input class='bt-input-text' type='text' name='password2' id='p2' value='' placeholder='再输一次' style='width:70%'/></div>\
427401
</div>\
428-
<div class='bt-form-submit-btn'>\
429-
<button type='button' class='btn btn-danger btn-sm' onclick=\"layer.closeAll()\">关闭</button>\
430-
<button type='button' class='btn btn-success btn-sm' onclick=\"setUserName(1)\">修改</button>\
431-
</div>\
432-
</div>"
402+
</div>",
403+
yes: function(){
404+
p1 = $("#p1").val();
405+
p2 = $("#p2").val();
406+
if(p1 == "" || p1.length < 3) {
407+
layer.msg('用户名长度不能少于3位', {icon: 2});
408+
return;
409+
}
410+
if(p1 != p2) {
411+
layer.msg('两次输入的用户名不一致', {icon: 2});
412+
return;
413+
}
414+
$.post("/setting/set_name", "name1=" + encodeURIComponent(p1) + "&name2=" + encodeURIComponent(p2), function(b) {
415+
if(b.status) {
416+
layer.closeAll();
417+
layer.msg(b.msg, {icon: 1});
418+
$("input[name='username_']").val(p1)
419+
} else {
420+
layer.msg(b.msg, {icon: 2});
421+
}
422+
},'json');
423+
return
424+
},
425+
btn3:function(){
426+
var pwd = randomStrPwd(12);
427+
$("#p1").val(pwd);
428+
$("#p2").val(pwd);
429+
layer.msg('请在修改前记录好您的用户名!',{time:2000});
430+
return false;
431+
}
433432
})
434433
}
435434

web/thisdb/user.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,13 @@ def updateUserLoginTime():
8888
mw.M('users').field(__field).where('id=?', (1,)).update({'login_time':now_time})
8989
return True
9090

91+
def setUserByName(name, new_name):
92+
return mw.M('users').where("name=?", (name,)).setField('name', new_name.strip())
93+
94+
def setUserPwdByName(name, password):
95+
pwd = mw.md5(password)
96+
return mw.M('users').where("name=?", (name,)).setField('password', pwd)
97+
9198
def setUserByRoot(
9299
name: str | None = None,
93100
password: str | None = None,

0 commit comments

Comments
 (0)