mirror of https://github.com/jumpserver/jumpserver
修改一些bug
parent
67f9aad1b9
commit
9a638bc856
11
connect.py
11
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):
|
||||
|
|
|
@ -114,8 +114,6 @@ if __name__ == '__main__':
|
|||
#test_add_idc()
|
||||
#test_add_asset_group()
|
||||
test_add_asset()
|
||||
|
||||
test_add_user()
|
||||
test_add_log()
|
||||
|
||||
|
||||
|
|
|
@ -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':
|
||||
|
|
|
@ -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 = []
|
||||
|
|
|
@ -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')
|
||||
|
|
|
@ -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')
|
||||
|
||||
|
|
|
@ -46,9 +46,10 @@
|
|||
{% for group in contacts.object_list %}
|
||||
<tr class="gradeX">
|
||||
<td class="text-center"> {{ group.name }} </td>
|
||||
<td class="text-center"> {{ group.cmd }} </td>
|
||||
<td class="text-center"> {{ group.cmd | string_length:50 }} </td>
|
||||
<td class="text-center"> {{ group.comment }} </td>
|
||||
<td class="text-center">
|
||||
<a href="../cmd_detail/?id={{ group.id }}" class="btn btn-xs btn-info">详情</a>
|
||||
<a href="../cmd_edit/?id={{ group.id }}" class="btn btn-xs btn-info">编辑</a>
|
||||
<a href="../cmd_del/?id={{ group.id }}" class="btn btn-xs btn-danger">删除</a>
|
||||
</td>
|
||||
|
|
|
@ -42,8 +42,8 @@
|
|||
<tr>
|
||||
<td>{{ user.username }}</td>
|
||||
<td>{{ user.name }}</td>
|
||||
<td>{{ user.username|group_manage_str }}</td>
|
||||
<td>{{ user.username|groups_str }}</td>
|
||||
<td>{{ user.dept.name }}</td>
|
||||
<td>{{ user.group.all | group_str2}}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
|
||||
<div class="wrapper wrapper-content animated fadeInRight">
|
||||
<div class="row">
|
||||
<div class="col-lg-10">
|
||||
<div class="col-lg-12">
|
||||
<div class="ibox float-e-margins">
|
||||
<div class="ibox-title">
|
||||
<h5> Sudo授权列表 </h5>
|
||||
|
@ -29,11 +29,11 @@
|
|||
</div>
|
||||
|
||||
<div class="ibox-content">
|
||||
<div class="" style="margin-left: 15px;">
|
||||
<a target="_blank" href="/jperm/cmd_add/" class="btn btn-sm btn-primary "> 添加命令组 </a>
|
||||
<a target="_blank" href="/jperm/cmd_list/" class="btn btn-sm btn-warning "> 查看命令组 </a>
|
||||
<a target="_blank" href="/jperm/sudo_add/" class="btn btn-sm btn-danger "> Sudo授权添加 </a>
|
||||
</div>
|
||||
{# <div class="" style="margin-left: 15px;">#}
|
||||
{# <a target="_blank" href="/jperm/cmd_add/" class="btn btn-sm btn-primary "> 添加命令组 </a>#}
|
||||
{# <a target="_blank" href="/jperm/cmd_list/" class="btn btn-sm btn-warning "> 查看命令组 </a>#}
|
||||
{# <a target="_blank" href="/jperm/sudo_add/" class="btn btn-sm btn-danger "> Sudo授权添加 </a>#}
|
||||
{# </div>#}
|
||||
|
||||
<div class="panel blank-panel">
|
||||
<div class="panel-heading">
|
||||
|
@ -78,21 +78,15 @@
|
|||
<td class="text-center"> {{ sudo_perm.name }} </td>
|
||||
<td class="text-center"> {{ sudo_perm.user_runas }} </td>
|
||||
<td class="text-center">
|
||||
{% for user_group in sudo_perm.user_group.all %}
|
||||
{{ user_group.name }}
|
||||
{% endfor %}
|
||||
{{ sudo_perm.user_group.all | group_str2 }}
|
||||
</td>
|
||||
|
||||
<td class="text-center">
|
||||
{% for asset_group in sudo_perm.asset_group.all %}
|
||||
{{ asset_group.name }}
|
||||
{% endfor %}
|
||||
{{ sudo_perm.asset_group.all | group_str2 }}
|
||||
</td>
|
||||
|
||||
<td class="text-center">
|
||||
{% for cmd_group in sudo_perm.cmd_group.all %}
|
||||
{{ cmd_group.name }}
|
||||
{% endfor %}
|
||||
{{ sudo_perm.cmd_group.all | group_str2 }}
|
||||
</td>
|
||||
<td class="text-center">
|
||||
<a title="[ {{ sudo_perm.name }} 授权详情 ]" href="../sudo_detail/?id={{ sudo_perm.id }}" class="btn btn-xs btn-primary">详情</a>
|
||||
|
@ -161,7 +155,7 @@
|
|||
<td class="text-center"> {{ user.name }} </td>
|
||||
<td class="text-center"> {{ user.id | get_role }} </td>
|
||||
<td class="text-center"> {{ user.username }} </td>
|
||||
<td class="text-center"> {{ user.id | perm_asset_count }} </td>
|
||||
<td class="text-center"> {{ user.id }} </td>
|
||||
<td class="text-center">
|
||||
<a title="[ {{ user.name }} ] 授权详情" href="../perm_asset_detail/?id={{ user.id }}" class="iframe btn btn-xs btn-primary">详情</a>
|
||||
</td>
|
||||
|
|
|
@ -40,12 +40,7 @@
|
|||
<li id="perm_list">
|
||||
<a href="/jperm/perm_list/">授权查看</a>
|
||||
</li>
|
||||
<li id="cmd_add">
|
||||
<a href="/jperm/cmd_add/">命令组添加</a>
|
||||
</li>
|
||||
<li id="cmd_list">
|
||||
<a href="/jperm/cmd_list/">命令组查看</a>
|
||||
</li>
|
||||
|
||||
<li id="sudo_add">
|
||||
<a href="/jperm/sudo_add/">Sudo添加</a>
|
||||
</li>
|
||||
|
@ -53,6 +48,13 @@
|
|||
<a href="/jperm/sudo_list/">Sudo查看</a>
|
||||
</li>
|
||||
|
||||
<li id="cmd_add">
|
||||
<a href="/jperm/cmd_add/">命令组添加</a>
|
||||
</li>
|
||||
<li id="cmd_list">
|
||||
<a href="/jperm/cmd_list/">命令组查看</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</li>
|
||||
<li id="jlog">
|
||||
|
|
Loading…
Reference in New Issue