diff --git a/connect.py b/connect.py index 8e49abbeb..ae4527a62 100755 --- a/connect.py +++ b/connect.py @@ -24,7 +24,8 @@ django.setup() from juser.models import User from jasset.models import Asset from jlog.models import Log -from jumpserver.views import PyCrypt, perm_user_asset +from jumpserver.views import PyCrypt +from jumpserver.api import user_perm_asset_api try: import termios @@ -45,8 +46,7 @@ SERVER_KEY_DIR = os.path.join(SSH_KEY_DIR, 'server') # The key of decryptor. KEY = CONF.get('web', 'key') # Login user. -#LOGIN_NAME = getpass.getuser() -LOGIN_NAME = 'halcyon' +LOGIN_NAME = getpass.getuser() #LOGIN_NAME = os.getlogin() USER_KEY_FILE = os.path.join(SERVER_KEY_DIR, LOGIN_NAME) @@ -178,7 +178,7 @@ def posix_shell(chan, username, host): def get_user_host(username): """Get the hosts of under the user control.""" hosts_attr = {} - asset_all = perm_user_asset(username=username) + asset_all = user_perm_asset_api(username) for asset in asset_all: hosts_attr[asset.ip] = [asset.id, asset.comment] return hosts_attr @@ -200,7 +200,6 @@ def get_connect_item(username, ip): login_type_dict = { 'L': user.ldap_pwd, - 'P': user.ssh_pwd, } if asset.login_type in login_type_dict: @@ -247,7 +246,7 @@ def print_user_host(username): hosts = hosts_attr.keys() hosts.sort() for ip in hosts: - print '[%s] %s -- %s' % (hosts_attr[ip][0], ip, hosts_attr[ip][1]) + print '%s -- %s' % (ip, hosts_attr[ip][1]) def connect(username, password, host, port, login_name): diff --git a/docs/AddUserAsset.py b/docs/AddUserAsset.py index b9fabc291..0993c1853 100644 --- a/docs/AddUserAsset.py +++ b/docs/AddUserAsset.py @@ -114,8 +114,6 @@ if __name__ == '__main__': #test_add_idc() #test_add_asset_group() test_add_asset() - - test_add_user() test_add_log() diff --git a/jperm/views.py b/jperm/views.py index b1b14b737..fe7258f2b 100644 --- a/jperm/views.py +++ b/jperm/views.py @@ -8,7 +8,8 @@ from jasset.models import Asset, BisGroup from jperm.models import Perm, SudoPerm, CmdGroup from django.core.paginator import Paginator, EmptyPage, InvalidPage from django.db.models import Q -from jumpserver.views import LDAP_ENABLE, ldap_conn, CONF, perm_user_asset, page_list_return +from jumpserver.views import LDAP_ENABLE, ldap_conn, CONF, page_list_return +from jumpserver.api import user_perm_asset_api if LDAP_ENABLE: @@ -198,7 +199,7 @@ def perm_asset_detail(request): user = User.objects.filter(id=user_id) if user: user = user[0] - assets_list = perm_user_asset(user_id) + assets_list = user_perm_asset_api(user.username) return render_to_response('jperm/perm_asset_detail.html', locals(), context_instance=RequestContext(request)) @@ -277,7 +278,7 @@ def sudo_ldap_add(name, users_runas, user_groups_select, asset_groups_select, def sudo_add(request): header_title, path1, path2 = u'Sudo授权', u'权限管理', u'添加Sudo权限' - user_groups = UserGroup.objects.all() + user_groups = UserGroup.objects.filter(id__gt=2) asset_groups = BisGroup.objects.all() cmd_groups = CmdGroup.objects.all() @@ -293,7 +294,6 @@ def sudo_add(request): sudo_ldap_add(name, users_runas, user_groups_select, asset_groups_select, cmd_groups_select) msg = '添加成功' - return HttpResponseRedirect('/jperm/sudo_list/') return render_to_response('jperm/sudo_add.html', locals(), context_instance=RequestContext(request)) @@ -301,7 +301,7 @@ def sudo_list(request): header_title, path1, path2 = u'Sudo授权', u'权限管理', u'Sudo权限详情' sudo_perms = contact_list = SudoPerm.objects.all() p1 = paginator1 = Paginator(contact_list, 10) - user_groups = UserGroup.objects.filter(Q(type='A') | Q(type='P')) + user_groups = UserGroup.objects.filter(id__gt=2) asset_groups = BisGroup.objects.all() cmd_groups = CmdGroup.objects.all() @@ -324,7 +324,7 @@ def sudo_edit(request): sudo_perm_id = request.GET.get('id', '0') sudo_perm = SudoPerm.objects.filter(id=int(sudo_perm_id)) if sudo_perm: - user_group_all = UserGroup.objects.filter(Q(type='A') | Q(type='P')) + user_group_all = UserGroup.objects.filter(id__gt=2) asset_group_all = BisGroup.objects.filter() cmd_group_all = CmdGroup.objects.all() @@ -424,7 +424,7 @@ def cmd_edit(request): cmd_group = cmd_group[0] cmd_group_id = cmd_group.id name = cmd_group.name - cmd = cmd_group.cmd + cmd = '\n'.join(cmd_group.cmd.split(',')) comment = cmd_group.comment if request.method == 'POST': diff --git a/jumpserver/api.py b/jumpserver/api.py index 2a0aaa932..b4fd70b55 100644 --- a/jumpserver/api.py +++ b/jumpserver/api.py @@ -18,6 +18,18 @@ def user_perm_group_api(user): return asset_group_list +def user_perm_asset_api(username): + user = User.objects.filter(username=username) + if user: + user = user[0] + asset_list = [] + asset_group_list = user_perm_group_api(user) + for asset_group in asset_group_list: + asset_list.extend(asset_group.asset_set.all()) + + return asset_list + + def asset_perm_api(asset): if asset: perm_list = [] diff --git a/jumpserver/templatetags/mytags.py b/jumpserver/templatetags/mytags.py index 41f338e24..9a418eba5 100644 --- a/jumpserver/templatetags/mytags.py +++ b/jumpserver/templatetags/mytags.py @@ -6,7 +6,7 @@ import time from django import template from juser.models import User, UserGroup, DEPT from jasset.models import BisGroup -from jumpserver.views import perm_user_asset +from jumpserver.api import user_perm_asset_api register = template.Library() @@ -109,9 +109,13 @@ def group_type_to_str(type_name): return group_types.get(type_name) -@register.filter(name='perm_asset_count') -def perm_asset_count(user_id): - return len(perm_user_asset(user_id)) +# @register.filter(name='perm_asset_count') +# def perm_asset_count(user_id): +# return len(perm_user_asset(user_id)) + +@register.filter(name='string_length') +def string_length(string, length): + return '%s ...' % string[0:length] @register.filter(name='filter_private') diff --git a/jumpserver/views.py b/jumpserver/views.py index 1e2a00fa6..cc82543ea 100644 --- a/jumpserver/views.py +++ b/jumpserver/views.py @@ -292,26 +292,26 @@ class PyCrypt(object): return plain_text.rstrip('\0') -def perm_user_asset(user_id=None, username=None): - if user_id: - user = User.objects.get(id=user_id) - else: - user = User.objects.get(username=username) - user_groups = user.user_group.all() - perms = [] - assets = [] - asset_groups = [] - for user_group in user_groups: - perm = user_group.perm_set.all() - perms.extend(perm) - - for perm in perms: - asset_groups.extend(perm.asset_group.all()) - - for asset_group in asset_groups: - assets.extend(list(asset_group.asset_set.all())) - - return assets +# def perm_user_asset(user_id=None, username=None): +# if user_id: +# user = User.objects.get(id=user_id) +# else: +# user = User.objects.get(username=username) +# user_groups = user.user_group.all() +# perms = [] +# assets = [] +# asset_groups = [] +# for user_group in user_groups: +# perm = user_group.perm_set.all() +# perms.extend(perm) +# +# for perm in perms: +# asset_groups.extend(perm.asset_group.all()) +# +# for asset_group in asset_groups: +# assets.extend(list(asset_group.asset_set.all())) +# +# return assets if LDAP_ENABLE: @@ -322,7 +322,7 @@ else: def install(request): from juser.models import DEPT - DEPT(id=1, name="跨部门", comment="添加跨部门小组使用").save() - DEPT(id=2, name="默认", comment="默认部门,作为中间,可以用来初始化").save() + DEPT(id=1, name="跨部门", comment="跨部门小组使用").save() + DEPT(id=2, name="默认", comment="默认部门").save() return HttpResponse('Ok') diff --git a/templates/jperm/sudo_cmd_list.html b/templates/jperm/sudo_cmd_list.html index 78b25e196..f576e7c8c 100644 --- a/templates/jperm/sudo_cmd_list.html +++ b/templates/jperm/sudo_cmd_list.html @@ -46,9 +46,10 @@ {% for group in contacts.object_list %}