diff --git a/plugins/mysql/index.py b/plugins/mysql/index.py index 223797961..1652c1aa4 100755 --- a/plugins/mysql/index.py +++ b/plugins/mysql/index.py @@ -60,7 +60,7 @@ def getArgs(): def checkArgs(data, ck=[]): for i in range(len(ck)): if not ck[i] in data: - return (False, public.returnJson(False, ck[i] + 'missing!')) + return (False, public.returnJson(False, '参数:(' + ck[i] + ')没有!')) return (True, public.returnJson(True, 'ok')) @@ -456,6 +456,13 @@ def syncGetDatabases(): return public.returnJson(True, msg) +def toDbBase(): + + +def syncToDatabases(): + return public.returnJson(False, 'f') + + def setRootPwd(): args = getArgs() if not 'password' in args: @@ -663,6 +670,28 @@ def getDbAccess(): userStr = ','.join(accs) return public.returnJson(True, userStr) + +def setDbAccess(): + args = getArgs() + data = checkArgs(args, ['username', 'access']) + if not data[0]: + return data[1] + name = args['username'] + access = args['access'] + pdb = pMysqlDb() + psdb = pSqliteDb('databases') + + dbname = psdb.where('username=?', (name,)).getField('name') + password = psdb.where("username=?", (name,)).getField('password') + users = pdb.query("select Host from mysql.user where User='" + + name + "' AND Host!='localhost'") + for us in users: + pdb.execute("drop user '" + name + "'@'" + us[0] + "'") + + __createUser(dbname, name, password, access) + + return public.returnJson(True, '设置成功!') + if __name__ == "__main__": func = sys.argv[1] if func == 'status': @@ -705,11 +734,15 @@ if __name__ == "__main__": print delDb() elif func == 'sync_get_databases': print syncGetDatabases() + elif func == 'sync_to_databases': + print syncToDatabases() elif func == 'set_root_pwd': print setRootPwd() elif func == 'set_user_pwd': print setUserPwd() elif func == 'get_db_access': print getDbAccess() + elif func == 'set_db_access': + print setDbAccess() else: print 'error' diff --git a/plugins/mysql/js/mysql.js b/plugins/mysql/js/mysql.js index a22641d8c..ad8a7fb47 100755 --- a/plugins/mysql/js/mysql.js +++ b/plugins/mysql/js/mysql.js @@ -421,6 +421,17 @@ function syncGetDatabase(){ }); } +function syncToDatabase(type){ + myPost('sync_to_databases', null, function(data){ + console.log(data); + var rdata = $.parseJSON(data.data); + console.log(rdata); + showMsg(rdata.msg,function(){ + dbList(); + },{ icon: rdata.status ? 1 : 2 }); + }); +} + function setRootPwd(type, pwd){ if (type==1){ var data = $("#mod_pwd").serialize(); @@ -477,11 +488,11 @@ function showHidePass(obj){ function copyPass(password){ var clipboard = new ClipboardJS('#bt_copys'); clipboard.on('success', function (e) { - bt.msg({msg:'复制成功',icon:1}); + layer.msg({msg:'复制成功',icon:1}); }); clipboard.on('error', function (e) { - bt.msg({msg:'复制失败,浏览器不兼容!',icon:2}); + layer.msg({msg:'复制失败,浏览器不兼容!',icon:2}); }); $("#bt_copys").attr('data-clipboard-text',password); $("#bt_copys").click(); @@ -489,9 +500,90 @@ function copyPass(password){ function setDbAccess(username){ myPost('get_db_access','username='+username, function(data){ - console.log(data); - }); + var rdata = $.parseJSON(data.data); + if (!rdata.status){ + layer.msg(rdata.msg,{icon:2,shade: [0.3, '#000']}); + return; + } + + var index = layer.open({ + type: 1, + area: '500px', + title: '设置数据库权限', + closeBtn: 1, + shift: 5, + shadeClose: true, + content: "
", + }); + layer.ready(function(){ + if (rdata.msg == '127.0.0.1'){ + $('select[name="dataAccess"]').find("option[value='127.0.0.1']").attr("selected",true); + } else if (rdata.msg == '%'){ + $('select[name="dataAccess"]').find('option[value="%"]').attr("selected",true); + } else if ( rdata.msg == 'ip' ){ + $('select[name="dataAccess"]').find('option[value="ip"]').attr("selected",true); + $('select[name="dataAccess"]').after(""); + } else { + $('select[name="dataAccess"]').find('option[value="ip"]').attr("selected",true); + $('select[name="dataAccess"]').after(""); + } + }); + + $('#my_mod_close').click(function(){ + $('.layui-layer-close1').click(); + }); + + + $('select[name="dataAccess"]').change(function(){ + var v = $(this).val(); + if (v == 'ip'){ + $(this).after(""); + } else { + $('#dataAccess_subid').remove(); + } + }); + + $('#my_mod_save').click(function(){ + var data = $("#set_db_access").serialize(); + data = decodeURIComponent(data); + var dataObj = str2Obj(data); + if(!dataObj['access']){ + dataObj['access'] = dataObj['dataAccess']; + if ( dataObj['dataAccess'] == 'ip'){ + if (dataObj['address']==''){ + layer.msg('IP地址不能空!',{icon:2,shade: [0.3, '#000']}); + return; + } + dataObj['access'] = dataObj['address']; + } + } + dataObj['username'] = username; + // console.log(data,dataObj); + myPost('set_db_access', dataObj, function(data){ + var rdata = $.parseJSON(data.data); + showMsg(rdata.msg,function(){ + dbList(); + $('.layui-layer-close1').click(); + },{icon: rdata.status ? 1 : 2}); + }); + }); + }); } function setDbPass(id, username, password){ @@ -626,7 +718,7 @@ function delDb(id, name){ showMsg(rdata.msg,function(){ dbList(); $('.layui-layer-close1').click(); - },{icon: rdata.status ? 1 : 2},1000); + },{icon: rdata.status ? 1 : 2}, 600); }); }); } @@ -731,8 +823,8 @@ function dbList(page, search){ \ \ \ \