Commit 75979e39 authored by guanghongwei's avatar guanghongwei

修改sudo授权

parent c113035d
...@@ -11,21 +11,14 @@ class Perm(models.Model): ...@@ -11,21 +11,14 @@ class Perm(models.Model):
return '%s_%s' % (self.user_group.name, self.asset_group.name) return '%s_%s' % (self.user_group.name, self.asset_group.name)
class CMD(models.Model):
cmd = models.CharField(max_length=200)
class CmdGroup(models.Model): class CmdGroup(models.Model):
name = models.CharField(max_length=50) name = models.CharField(max_length=50)
cmd = models.ForeignKey(CMD) cmd = models.CharField(max_length=999)
comment = models.CharField(blank=True, null=True, max_length=50) comment = models.CharField(blank=True, null=True, max_length=50)
class SudoPerm(models.Model): class SudoPerm(models.Model):
user = models.CharField(max_length=100) user_group = models.ManyToManyField(UserGroup)
is_user_group = models.BooleanField(default=False) asset_group = models.ManyToManyField(BisGroup)
asset = models.CharField(max_length=100) cmd_group = models.ManyToManyField(CmdGroup)
is_asset_group = models.BooleanField(default=False) comment = models.CharField(max_length=30)
cmd = models.CharField(max_length=200) \ No newline at end of file
is_cmd_group = models.BooleanField(default=False)
...@@ -12,4 +12,5 @@ urlpatterns = patterns('jperm.views', ...@@ -12,4 +12,5 @@ urlpatterns = patterns('jperm.views',
(r'^perm_detail/$', 'perm_detail'), (r'^perm_detail/$', 'perm_detail'),
(r'^perm_del/$', 'perm_del'), (r'^perm_del/$', 'perm_del'),
(r'^perm_asset_detail/$', 'perm_asset_detail'), (r'^perm_asset_detail/$', 'perm_asset_detail'),
(r'^sudo_list/$', 'sudo_list'),
) )
...@@ -4,7 +4,7 @@ from django.shortcuts import render_to_response ...@@ -4,7 +4,7 @@ from django.shortcuts import render_to_response
from django.http import HttpResponseRedirect, HttpResponse from django.http import HttpResponseRedirect, HttpResponse
from juser.models import User, UserGroup from juser.models import User, UserGroup
from jasset.models import Asset, BisGroup from jasset.models import Asset, BisGroup
from jperm.models import Perm from jperm.models import Perm, SudoPerm
from django.core.paginator import Paginator, EmptyPage, InvalidPage from django.core.paginator import Paginator, EmptyPage, InvalidPage
...@@ -137,3 +137,23 @@ def perm_asset_detail(request): ...@@ -137,3 +137,23 @@ def perm_asset_detail(request):
return render_to_response('jperm/perm_asset_detail.html', locals()) return render_to_response('jperm/perm_asset_detail.html', locals())
def sudo_list(request):
header_title, path1, path2 = u'Sudo授权 | Perm Sudo Detail.', u'jperm', u'sudo_list'
sudo_perms = contact_list = SudoPerm.objects.all()
users = contact_list2 = User.objects.all().order_by('id')
p = paginator = Paginator(contact_list, 10)
p2 = paginator2 = Paginator(contact_list2, 10)
try:
page = int(request.GET.get('page', '1'))
except ValueError:
page = 1
try:
contacts = paginator.page(page)
contacts2 = paginator2.page(page)
except (EmptyPage, InvalidPage):
contacts = paginator.page(paginator.num_pages)
contacts2 = paginator2.page(paginator2.num_pages)
return render_to_response('jperm/sudo_list.html', locals())
{% extends 'base.html' %}
{% load mytags %}
{% block content %}
{% include 'nav_cat_bar.html' %}
<div class="wrapper wrapper-content animated fadeInRight">
<div class="row">
<div class="col-lg-10">
<div class="ibox float-e-margins">
<div class="ibox-title">
<h5> Sudo授权 <small> show sudo perm info.</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">
<div class="panel blank-panel">
<div class="panel-heading">
<div class="panel-options">
<ul class="nav nav-tabs">
<li id="tab1" class="active"><a data-toggle="tab" href="#tab-1">授权编辑</a></li>
<li id="tab2" class=""><a data-toggle="tab" href="#tab-2">查看授权</a></li>
<li style="float: right">
<form method="get" action="" class="pull-right mail-search">
<div class="input-group">
<input type="text" class="form-control input-sm" id="search_input" name="search" placeholder="Search">
<div class="input-group-btn">
<button id='search_btn' type="button" class="btn btn-sm btn-primary">
Search
</button>
</div>
</div>
</form>
</li>
</ul>
</div>
</div>
<div class="panel-body">
<div class="tab-content">
<div id="tab-1" class="tab-pane active">
<table class="table table-striped table-bordered table-hover " id="editable" >
<thead>
<tr>
<th class="text-center">用户(组)</th>
<th class="text-center">主机(组)</th>
<th class="text-center">命令(组)</th>
<th class="text-center">操作</th>
</tr>
</thead>
<tbody id="perm_edit">
{% for sudo_perm in contacts.object_list %}
<tr class="gradeX">
<td class="text-center">
{% for user_group in sudo_perm.user_group %}
{{ user_group.name }}
{% endfor %}
</td>
<td class="text-center">
{% for asset_group in sudo_perm.asset_group %}
{{ asset_group.name }}
{% endfor %}
</td>
<td class="text-center">
{% for cmd_group in sudo_perm.cmd_group %}
{{ cmd_group.name }}
{% endfor %}
</td>
<td class="text-center">
<a title="[ {{ group.name }} 授权详情 ]" href="../perm_detail/?id={{ group.id }}" class="iframe btn btn-xs btn-primary">详情</a>
<a href="../perm_edit/?id={{ group.id }}" class="btn btn-xs btn-info">编辑</a>
<a href="../perm_del/?id={{ group.id }}" class="btn btn-xs btn-danger">删除</a>
</td>
</tr>
{% endfor %}
</tbody>
</table>
<div class="row">
<div class="col-sm-6">
<div class="dataTables_info" id="editable_info" role="status" aria-live="polite">
Showing {{ contacts.start_index }} to {{ contacts.end_index }} of {{ p.count }} entries
</div>
</div>
<div class="col-sm-6">
<div class="dataTables_paginate paging_simple_numbers" id="editable_paginate">
<ul class="pagination" style="margin-top: 0; float: right">
{% if contacts.has_previous %}
<li class="paginate_button previous" aria-controls="editable" tabindex="0" id="editable_previous">
<a href="?page={{ contacts.previous_page_number }}">Previous</a>
</li>
{% else %}
<li class="paginate_button previous disabled" aria-controls="editable" tabindex="0" id="editable_previous">
<a href="#">Previous</a>
</li>
{% endif %}
{% for page in p.page_range %}
{% ifequal offset1 page %}
<li class="paginate_button active" aria-controls="editable" tabindex="0"><a href="?page={{ page }}" title="第{{ page }}页">{{ page }}</a></li>
{% else %}
<li class="paginate_button" aria-controls="editable" tabindex="0"><a href="?page={{ page }}" title="第{{ page }}页">{{ page }}</a></li>
{% endifequal %}
{% endfor %}
{% if contacts.has_next %}
<li class="paginate_button next" aria-controls="editable" tabindex="0" id="editable_next">
<a href="?page={{ contacts.next_page_number }}">Next</a>
</li>
{% else %}
<li class="paginate_button next disabled" aria-controls="editable" tabindex="0" id="editable_next">
<a href="#">Next</a>
</li>
{% endif %}
</ul>
</div>
</div>
</div>
</div>
<div id="tab-2" class="tab-pane">
<table class="table table-striped table-bordered table-hover " id="editable" >
<thead>
<tr>
<th class="text-center">用户</th>
<th class="text-center">角色</th>
<th class="text-center">属组</th>
<th class="text-center">主机数量</th>
<th class="text-center">操作</th>
</tr>
</thead>
<tbody id="perm_list">
{% for user in contacts2.object_list %}
<tr class="gradeX">
<td class="text-center"> {{ user.name }} </td>
<td class="text-center"> {{ user.id | get_role }} </td>
<td class="text-center"> {{ user.username | groups_str }} </td>
<td class="text-center"> {{ user.id | perm_asset_count }} </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>
</tr>
{% endfor %}
</tbody>
</table>
<div class="row">
<div class="col-sm-6">
<div class="dataTables_info" id="editable_info" role="status" aria-live="polite">
Showing {{ contacts2.start_index }} to {{ contacts2.end_index }} of {{ p2.count }} entries
</div>
</div>
<div class="col-sm-6">
<div class="dataTables_paginate paging_simple_numbers" id="editable_paginate">
<ul class="pagination" style="margin-top: 0; float: right">
{% if contacts2.has_previous %}
<li class="paginate_button previous" aria-controls="editable" tabindex="0" id="editable_previous">
<a href="?page={{ contacts2.previous_page_number }}">Previous</a>
</li>
{% else %}
<li class="paginate_button previous disabled" aria-controls="editable" tabindex="0" id="editable_previous">
<a href="#">Previous</a>
</li>
{% endif %}
{% for page in p2.page_range %}
{% ifequal offset1 page %}
<li class="paginate_button active" aria-controls="editable" tabindex="0"><a href="?page={{ page }}" title="第{{ page }}页">{{ page }}</a></li>
{% else %}
<li class="paginate_button" aria-controls="editable" tabindex="0"><a href="?page={{ page }}" title="第{{ page }}页">{{ page }}</a></li>
{% endifequal %}
{% endfor %}
{% if contacts2.has_next %}
<li class="paginate_button next" aria-controls="editable" tabindex="0" id="editable_next">
<a href="?page={{ contacts2.next_page_number }}">Next</a>
</li>
{% else %}
<li class="paginate_button next disabled" aria-controls="editable" tabindex="0" id="editable_next">
<a href="#">Next</a>
</li>
{% endif %}
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<script>
$(document).ready(function(){
$(".iframe").colorbox({iframe:true, width:"70%", height:"70%"});
});
$(document).ready(function(){
$('#search_btn').click(function(){
if ($('#tab2').attr('class') == 'active'){
var tab='tab2'
} else {
var tab='tab1'
}
var search=$('#search_input').val()
$.post('/jperm/perm_list_ajax/',
{'tab': tab, 'search': search},
function(data){
if ($('#tab2').attr('class') == 'active'){
$('#tab-2').html(data)
} else {
$('#tab-1').html(data)
}
})
})
})
</script>
{% endblock %}
\ No newline at end of file
...@@ -33,7 +33,7 @@ ...@@ -33,7 +33,7 @@
<a href="#"><i class="fa fa-edit"></i> <span class="nav-label">授权管理</span><span class="fa arrow"></span></a> <a href="#"><i class="fa fa-edit"></i> <span class="nav-label">授权管理</span><span class="fa arrow"></span></a>
<ul class="nav nav-second-level"> <ul class="nav nav-second-level">
<li id="perm_list"><a href="/jperm/perm_list/">主机授权</a></li> <li id="perm_list"><a href="/jperm/perm_list/">主机授权</a></li>
<li id="perm_sudo"><a href="/jperm/perm_sudo/">Sudo授权</a></li> <li id="perm_sudo"><a href="/jperm/sudo_list/">Sudo授权</a></li>
</ul> </ul>
</li> </li>
<li id="jlog"> <li id="jlog">
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment