mirror of
https://github.com/jumpserver/jumpserver.git
synced 2026-01-15 14:47:24 +00:00
修改组方面授权
This commit is contained in:
@@ -1,11 +1,21 @@
|
||||
from django.db import models
|
||||
from juser.models import User
|
||||
from jasset.models import Asset
|
||||
from juser.models import User, UserGroup
|
||||
from jasset.models import Asset, BisGroup
|
||||
|
||||
|
||||
class Perm(models.Model):
|
||||
class PermUser(models.Model):
|
||||
user = models.ForeignKey(User)
|
||||
asset = models.ForeignKey(Asset)
|
||||
asset_group = models.ForeignKey(BisGroup)
|
||||
|
||||
def __unicode__(self):
|
||||
return '%s_%s' % (self.user.username, self.asset.ip)
|
||||
return '%s_%s' % (self.user.username, self.asset.ip)
|
||||
|
||||
|
||||
class PermUserGroup(models.Model):
|
||||
group = models.ForeignKey(UserGroup)
|
||||
asset = models.ForeignKey(Asset)
|
||||
asset_group = models.ForeignKey(BisGroup)
|
||||
|
||||
def __unicode__(self):
|
||||
return '%s_%s' % (self.group.name, self.asset.ip)
|
||||
@@ -10,5 +10,8 @@ urlpatterns = patterns('jperm.views',
|
||||
(r'^perm_add/$', 'perm_add'),
|
||||
(r'^perm_user_show/$', 'perm_user_show'),
|
||||
(r'^perm_host/$', 'perm_list'),
|
||||
(r'^perm_edit/$', 'perm_edit'),
|
||||
(r'^perm_user_edit/$', 'perm_user_edit'),
|
||||
(r'^perm_user_detail/$', 'perm_user_detail'),
|
||||
(r'^perm_group_edit/$', 'perm_group_edit'),
|
||||
(r'^perm_group_detail/$', 'perm_group_detail'),
|
||||
)
|
||||
|
||||
@@ -28,14 +28,15 @@ def perm_host(request):
|
||||
return render_to_response('jperm/perm_host.html', locals())
|
||||
|
||||
|
||||
def perm_user_host(username, ip):
|
||||
def perm_user_host(username, ips):
|
||||
user = User.objects.get(username=username)
|
||||
asset = Asset.objects.get(ip=ip)
|
||||
if not Perm.objects.filter(user=user, asset=asset):
|
||||
user.perm_set.all().delete()
|
||||
for ip in ips:
|
||||
asset = Asset.objects.get(ip=ip)
|
||||
Perm.objects.create(user=user, asset=asset)
|
||||
|
||||
|
||||
def perm_edit(request):
|
||||
def perm_user_edit(request):
|
||||
header_title, path1, path2 = u'授权编辑 | Perm Edit.', u'jperm', u'perm_edit'
|
||||
if request.method == 'GET':
|
||||
if request.GET.get('id', None):
|
||||
@@ -46,16 +47,33 @@ def perm_edit(request):
|
||||
for perm in user.perm_set.all():
|
||||
assets_permed.append(perm.asset)
|
||||
assets_unperm = list(set(assets)-set(assets_permed))
|
||||
return render_to_response('jperm/perm_edit.html', locals())
|
||||
return render_to_response('jperm/perm_user_edit.html', locals())
|
||||
else:
|
||||
host_ips = request.POST.getlist('host_permed', '')
|
||||
username = request.POST.get('username')
|
||||
for ip in host_ips:
|
||||
perm_user_host(username, ip)
|
||||
perm_user_host(username, host_ips)
|
||||
|
||||
return HttpResponseRedirect('/jperm/perm_host/')
|
||||
|
||||
|
||||
def perm_user_detail(request):
|
||||
user_id = request.GET.get('id', '')
|
||||
user = User.objects.get(id=user_id)
|
||||
host_permed = []
|
||||
for perm in user.perm_set.all():
|
||||
host_permed.append(perm.asset)
|
||||
|
||||
return render_to_response('jperm/perm_user_detail.html', locals())
|
||||
|
||||
|
||||
def perm_group_edit(request):
|
||||
if request.method == 'GET':
|
||||
group_id = request.GET.get('id', '')
|
||||
group = UserGroup.objects.get(id=group_id)
|
||||
|
||||
return render_to_response('jperm/perm_group_edit.html')
|
||||
|
||||
|
||||
def perm_add(request):
|
||||
header_title, path1, path2 = u'添加授权 | Add User perm.', u'授权管理', u'添加授权'
|
||||
if request.method == 'GET':
|
||||
@@ -76,8 +94,8 @@ def perm_add(request):
|
||||
host_ids = request.POST.getlist('host_ids', None)
|
||||
|
||||
user = User.objects.get(username=username)
|
||||
for id in host_ids:
|
||||
asset = Asset.objects.get(id=id)
|
||||
for host_id in host_ids:
|
||||
asset = Asset.objects.get(id=host_id)
|
||||
perm = Perm(user=user, asset=asset)
|
||||
perm.save()
|
||||
msg = u'添加成功'
|
||||
|
||||
Reference in New Issue
Block a user