mirror of https://github.com/jumpserver/jumpserver
授权收尾工作
parent
4190b19450
commit
b7acef8cb0
|
@ -24,8 +24,7 @@ django.setup()
|
||||||
from juser.models import User
|
from juser.models import User
|
||||||
from jasset.models import Asset
|
from jasset.models import Asset
|
||||||
from jlog.models import Log
|
from jlog.models import Log
|
||||||
from jperm.views import perm_user_asset
|
from jumpserver.views import PyCrypt, perm_user_asset
|
||||||
from jumpserver.views import PyCrypt
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
import termios
|
import termios
|
||||||
|
|
|
@ -7,7 +7,7 @@ from jasset.models import Asset, BisGroup
|
||||||
from jperm.models import Perm, SudoPerm, CmdGroup
|
from jperm.models import Perm, SudoPerm, CmdGroup
|
||||||
from django.core.paginator import Paginator, EmptyPage, InvalidPage
|
from django.core.paginator import Paginator, EmptyPage, InvalidPage
|
||||||
from django.db.models import Q
|
from django.db.models import Q
|
||||||
from jumpserver.views import LDAP_ENABLE, ldap_conn, CONF
|
from jumpserver.views import LDAP_ENABLE, ldap_conn, CONF, perm_user_asset
|
||||||
|
|
||||||
|
|
||||||
if LDAP_ENABLE:
|
if LDAP_ENABLE:
|
||||||
|
@ -34,26 +34,6 @@ def perm_group_update(user_group_name='', user_group_id='', asset_groups_name=''
|
||||||
Perm(user_group=user_group, asset_group=asset_group).save()
|
Perm(user_group=user_group, asset_group=asset_group).save()
|
||||||
|
|
||||||
|
|
||||||
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 = []
|
|
||||||
for user_group in user_groups:
|
|
||||||
perm = user_group.perm_set.all()
|
|
||||||
perms.extend(perm)
|
|
||||||
|
|
||||||
asset_groups = [perm.asset_group for perm in perms]
|
|
||||||
|
|
||||||
for asset_group in asset_groups:
|
|
||||||
assets.extend(list(asset_group.asset_set.all()))
|
|
||||||
|
|
||||||
return list(set(assets))
|
|
||||||
|
|
||||||
|
|
||||||
def perm_list(request):
|
def perm_list(request):
|
||||||
header_title, path1, path2 = u'主机授权 | Perm Host Detail.', u'授权管理', u'授权详情'
|
header_title, path1, path2 = u'主机授权 | Perm Host Detail.', u'授权管理', u'授权详情'
|
||||||
groups = contact_list = Perm.objects.all()
|
groups = contact_list = Perm.objects.all()
|
||||||
|
@ -205,9 +185,12 @@ def perm_del(request):
|
||||||
|
|
||||||
|
|
||||||
def perm_asset_detail(request):
|
def perm_asset_detail(request):
|
||||||
|
header_title, path1, path2 = u'用户授权主机 | User Perm Asset.', u'权限管理', u'用户主机详情'
|
||||||
user_id = request.GET.get('id')
|
user_id = request.GET.get('id')
|
||||||
user = User.objects.get(id=user_id)
|
user = User.objects.filter(id=user_id)
|
||||||
assets = perm_user_asset(user_id)
|
if user:
|
||||||
|
user = user[0]
|
||||||
|
assets_list = perm_user_asset(user_id)
|
||||||
return render_to_response('jperm/perm_asset_detail.html', locals())
|
return render_to_response('jperm/perm_asset_detail.html', locals())
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -2,10 +2,9 @@
|
||||||
|
|
||||||
import time
|
import time
|
||||||
from django import template
|
from django import template
|
||||||
from django.db.models import Q
|
|
||||||
from juser.models import User, UserGroup
|
from juser.models import User, UserGroup
|
||||||
from jperm.views import perm_user_asset
|
|
||||||
from jasset.models import BisGroup
|
from jasset.models import BisGroup
|
||||||
|
from jumpserver.views import perm_user_asset
|
||||||
|
|
||||||
register = template.Library()
|
register = template.Library()
|
||||||
|
|
||||||
|
|
|
@ -47,6 +47,9 @@ def jasset_group_add(name, comment, type):
|
||||||
smg = u'业务组%s添加成功' % name
|
smg = u'业务组%s添加成功' % name
|
||||||
|
|
||||||
|
|
||||||
|
class ServerError(Exception):
|
||||||
|
pass
|
||||||
|
|
||||||
def jasset_host_edit(j_id, j_ip, j_idc, j_port, j_type, j_group, j_active, j_comment):
|
def jasset_host_edit(j_id, j_ip, j_idc, j_port, j_type, j_group, j_active, j_comment):
|
||||||
groups = []
|
groups = []
|
||||||
is_active = {u'是': '1', u'否': '2'}
|
is_active = {u'是': '1', u'否': '2'}
|
||||||
|
@ -193,6 +196,28 @@ class PyCrypt(object):
|
||||||
return plain_text.rstrip('\0')
|
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
|
||||||
|
|
||||||
|
|
||||||
if LDAP_ENABLE:
|
if LDAP_ENABLE:
|
||||||
ldap_conn = LDAPMgmt(LDAP_HOST_URL, LDAP_BASE_DN, LDAP_ROOT_DN, LDAP_ROOT_PW)
|
ldap_conn = LDAPMgmt(LDAP_HOST_URL, LDAP_BASE_DN, LDAP_ROOT_DN, LDAP_ROOT_PW)
|
||||||
else:
|
else:
|
||||||
|
|
|
@ -1,41 +1,61 @@
|
||||||
|
{% extends 'base.html' %}
|
||||||
{% load mytags %}
|
{% load mytags %}
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
{% include 'link_css.html' %}
|
|
||||||
|
|
||||||
<style type="text/css">
|
{% block content %}
|
||||||
body
|
{% include 'nav_cat_bar.html' %}
|
||||||
{
|
<div class="wrapper wrapper-content animated fadeInRight">
|
||||||
background: #FFFFFF;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body>
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="contact-box">
|
|
||||||
<h2 class="text-center">{{ user.name }} 授权详情</h2>
|
|
||||||
<div class="ibox-content">
|
|
||||||
|
|
||||||
<table class="table table-striped table-bordered table-hover " id="editable" >
|
<div class="col-lg-6">
|
||||||
<thead>
|
<div class="ibox float-e-margins">
|
||||||
|
<div class="ibox-title">
|
||||||
|
<h5>授权主机 <small> Asset.</small></h5>
|
||||||
|
<div class="ibox-tools">
|
||||||
|
<a class="collapse-link">
|
||||||
|
<i class="fa fa-chevron-up"></i>
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-toggle" data-toggle="dropdown" href="#">
|
||||||
|
<i class="fa fa-wrench"></i>
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu dropdown-user">
|
||||||
|
<li><a href="#">未启用 1</a>
|
||||||
|
</li>
|
||||||
|
<li><a href="#">未启用 2</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<a class="close-link">
|
||||||
|
<i class="fa fa-times"></i>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="ibox-content">
|
||||||
|
<table class="table">
|
||||||
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th class="text-center">主机</th>
|
<th>IP</th>
|
||||||
<th class="text-center">端口</th>
|
<th>IDC</th>
|
||||||
<th class="text-center">登录方式</th>
|
<th>主机组</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
{% for asset in assets %}
|
{% for asset in assets_list %}
|
||||||
<tr class="gradeX">
|
<tr>
|
||||||
<td class="text-center">{{ asset.ip }}</td>
|
<td>{{ asset.ip }}</td>
|
||||||
<td class="text-center">{{ asset.port }}</td>
|
<td>{{ asset.idc.name }}</td>
|
||||||
<td class="text-center">{{ asset.login_type }}</td>
|
<td>
|
||||||
</tr>
|
{% for group in asset.bis_group.all|filter_private %}
|
||||||
{% endfor %}
|
{{ group }}
|
||||||
|
{% endfor %}
|
||||||
</table>
|
</td>
|
||||||
|
</tr>
|
||||||
|
{% endfor %}
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</div>
|
||||||
</html>
|
|
||||||
|
{% endblock %}
|
|
@ -143,12 +143,12 @@
|
||||||
<tbody id="perm_list">
|
<tbody id="perm_list">
|
||||||
{% for user in contacts2.object_list %}
|
{% for user in contacts2.object_list %}
|
||||||
<tr class="gradeX">
|
<tr class="gradeX">
|
||||||
{# <td class="text-center"> {{ user.name }} </td>#}
|
<td class="text-center"> {{ user.name }} </td>
|
||||||
{# <td class="text-center"> {{ user.id | get_role }} </td>#}
|
<td class="text-center"> {{ user.id | get_role }} </td>
|
||||||
{# <td class="text-center"> {{ user.username | groups_str }} </td>#}
|
<td class="text-center"> {{ user.username | groups_str }} </td>
|
||||||
{# <td class="text-center"> {{ user.id | perm_asset_count }} </td>#}
|
<td class="text-center"> {{ user.id | perm_asset_count }} </td>
|
||||||
{# <td class="text-center">#}
|
<td class="text-center">
|
||||||
<a title="[ {{ user.name }} ] 授权详情" href="../perm_asset_detail/?id={{ user.id }}" class="iframe btn btn-xs btn-primary">详情</a>
|
<a title="[ {{ user.name }} ] 授权详情" href="../perm_asset_detail/?id={{ user.id }}" class="btn btn-xs btn-primary">详情</a>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|
Loading…
Reference in New Issue