diff --git a/plugins/csvn/index.py b/plugins/csvn/index.py index 7360bd046..39c38978a 100755 --- a/plugins/csvn/index.py +++ b/plugins/csvn/index.py @@ -330,7 +330,8 @@ def makeAclFile(content): for iv in range(len(v)): tmp += v[iv]['user'] + ' = ' + v[iv]['acl'] + "\n" tmp += "\n" - return public.writeFile(getServerDir() + '/data/conf/svn_access_file.log', tmp) + svn_tmp_path = getServerDir() + '/data/conf/svn_access_file.log' + return public.writeFile(svn_access_file, tmp) def projectAclList(): @@ -363,27 +364,27 @@ def projectAclAdd(): acl = getAllAclList() + tmp_acl = {'user': uname, 'acl': 'rw'} if not pname in acl: - return 'project not exists!' + acl[pname] = [tmp_acl] + makeAclFile(acl) + return 'ok' tmp = acl[pname] tmp_len = len(tmp) - tmp_acl = {'user': uname, 'acl': 'rw'} + if tmp_len == 0: acl[pname] = [tmp_acl] else: - print tmp_len is_have = False for x in range(tmp_len): - # print tmp[x], tmp[x]['user'], uname if tmp[x]['user'] == uname: is_have = True - return 'fail' - # print acl + return uname + ' users already exist!' if not is_have: tmp.append(tmp_acl) acl[pname] = tmp - # print acl + makeAclFile(acl) return 'ok' @@ -394,6 +395,7 @@ def projectAclDel(): return 'username missing' if not 'pname' in args: return 'project name missing' + uname = args['uname'] pname = args['pname'] @@ -412,10 +414,11 @@ def projectAclDel(): return 'project no have user:' + uname else: is_have = False + rtmp = [] for x in range(tmp_len): - if tmp[x]['user'] == uname: - tmp.remove(x) - acl[pname] = tmp + if tmp[x]['user'] != uname: + rtmp.append(tmp[x]) + acl[pname] = rtmp makeAclFile(acl) return 'ok' diff --git a/plugins/csvn/js/csvn.js b/plugins/csvn/js/csvn.js index fbe723a24..96b56cc69 100755 --- a/plugins/csvn/js/csvn.js +++ b/plugins/csvn/js/csvn.js @@ -4,6 +4,11 @@ function csvnPost(method,args,callback){ var loadT = layer.msg('正在获取...', { icon: 16, time: 0, shade: 0.3 }); $.post('/plugins/run', {name:'csvn', func:method, args:JSON.stringify(args)}, function(data) { layer.close(loadT); + if (!data.status){ + layer.msg(data.data,{icon:0,time:2000,shade: [0.3, '#000']}); + return; + } + if(typeof(callback) == 'function'){ callback(data); } @@ -21,10 +26,6 @@ function csvnUserList(page) { _data['page_size'] = 10; csvnPost('user_list', _data, function(data){ - if (!data.status){ - layer.msg(data.msg,{icon:0,time:2000,shade: [0.3, '#000']}); - return; - } var rdata = $.parseJSON(data.data); // console.log(rdata); @@ -294,20 +295,46 @@ function csvnAddProject(){ }); } -function csvnAclProject(name){ - csvnPost('project_acl_list', {'name':name}, function(data){ +function csvnAclAdd(pname){ + var uname = $('#csvn_username').val(); + if (uname == ''){ + layer.msg('添加用户名不能为空!',{icon:0,time:2000,shade: [0.3, '#000']}); + return; + } + + csvnPost('project_acl_add', {'pname':pname,'uname':uname}, function(data){ + if (data.data != 'ok'){ + layer.msg(data.data,{icon:0,time:2000,shade: [0.3, '#000']}); + return; + } + $('#csvn_acl_close').click(); + csvnAclProject(pname); + }); +} + +function csvnAclDel(pname, uname){ + // console.log(pname,uname); + csvnPost('project_acl_del', {'pname':pname,'uname':uname}, function(data){ + // console.log(data); + if (data.data != 'ok'){ + layer.msg(data.data,{icon:0,time:2000,shade: [0.3, '#000']}); + return; + } + $('#csvn_acl_close').click(); + csvnAclProject(pname); + }); +} + +function csvnAclProject(pname){ + csvnPost('project_acl_list', {'name':pname}, function(data){ var rdata = []; try { rdata = $.parseJSON(data.data); - } catch(e){ - console.log(e); - } + } catch(e){} var list = ''; - console.log(rdata); for (i in rdata) { - console.log(rdata[i]); var acl = ''; if (rdata[i]['acl'] == 'r'){ acl += ' 只读 | 读写'; @@ -316,7 +343,7 @@ function csvnAclProject(name){ } list += ''+rdata[i]['user']+'' + acl +''+ - '删除'+''; + '删除'+''; } var loadOpen = layer.open({ @@ -326,8 +353,8 @@ function csvnAclProject(name){ content:"
\
\
\ -
\ -
\ +
\ +
\
\ "+list+"\
用户权限操作
\ @@ -338,5 +365,9 @@ function csvnAclProject(name){
\
" }); + + $('#csvn_acl_close').click(function(){ + layer.close(loadOpen); + }); }); } \ No newline at end of file