diff --git a/web/admin/setting/__init__.py b/web/admin/setting/__init__.py index 9ab27c368..19074a4ff 100644 --- a/web/admin/setting/__init__.py +++ b/web/admin/setting/__init__.py @@ -8,6 +8,7 @@ # Author: midoks # --------------------------------------------------------------------------------- +import re from flask import Blueprint, render_template from flask import request @@ -44,6 +45,36 @@ def set_ip(): src_host_ip = model.getOption('server_ip') if host_ip != src_host_ip: model.setOption('server_ip', host_ip) - return mw.returnJson(True, 'IP保存成功!') + return mw.returnData(True, 'IP保存成功!') + +# 设置安全入口 +@blueprint.route('/set_admin_path', endpoint='set_admin_path', methods=['POST']) +def set_admin_path(): + admin_path = request.form.get('admin_path', '') + admin_path_sensitive = ['/', '/close', '/login', + '/do_login', '/site', '/sites', + '/download_file', '/control', '/crontab', + '/firewall', '/files', '/config', '/setting','/monitor' + '/soft', '/system', '/code', + '/ssl', '/plugins', '/hook'] + + if admin_path == '': + admin_path = '/' + + if admin_path != '/': + if len(admin_path) < 6: + return mw.returnData(False, '安全入口地址长度不能小于6位!') + if admin_path in admin_path_sensitive: + return mw.returnData(False, '该入口已被面板占用,请使用其它入口!') + if not re.match(r"^/[\w]+$", admin_path): + return mw.returnData(False, '入口地址格式不正确,示例: /mw_rand') + + src_admin_path = model.getOption('admin_path') + if admin_path != src_admin_path: + model.setOption('admin_path', admin_path[1:]) + return mw.returnData(True, '修改成功!') + + + \ No newline at end of file diff --git a/web/static/app/config.js b/web/static/app/config.js index 063bb03c4..7c1808558 100755 --- a/web/static/app/config.js +++ b/web/static/app/config.js @@ -265,7 +265,7 @@ function modifyAuthPath() { title: "修改安全入口", closeBtn: 1, shift: 5, - btn:['提交','关闭'], + btn:['提交','关闭', '随机生成'], shadeClose: false, content: '
\
\ @@ -282,25 +282,30 @@ function modifyAuthPath() { cancel:function(){ }}, function() { var loadT = layer.msg(lan.config.config_save, { icon: 16, time: 0, shade: [0.3, '#000'] }); - $.post('/config/set_admin_path', { admin_path: auth_path }, function (rdata) { + $.post('/setting/set_admin_path', { admin_path: auth_path }, function (rdata) { showMsg(rdata.msg, function(){ layer.close(index); layer.close(loadT); - $("#admin_path").val(auth_path); + location.reload(); },{ icon: rdata.status ? 1 : 2 }, 2000); },'json'); }); return; } else { var loadT = layer.msg(lan.config.config_save, { icon: 16, time: 0, shade: [0.3, '#000'] }); - $.post('/config/set_admin_path', { admin_path: auth_path }, function (rdata) { + $.post('/setting/set_admin_path', { admin_path: auth_path }, function (rdata) { showMsg(rdata.msg, function(){ layer.close(index); layer.close(loadT); - $("#admin_path").val(auth_path); + location.reload(); },{ icon: rdata.status ? 1 : 2 }, 2000); },'json'); } + }, + btn3:function(){ + var rand_str = getRandomString(8); + $("input[name='auth_path_set']").val('/'+rand_str); + return false; } }); }