diff --git a/connect.py b/connect.py index 3d52e727b..3fed445f2 100755 --- a/connect.py +++ b/connect.py @@ -240,28 +240,13 @@ def get_connect_item(username, ip): if asset.login_type in login_type_dict: password = cryptor.decrypt(login_type_dict[asset.login_type]) - return username, password, ip, port elif asset.login_type == 'M': - perms = asset.permission_set.filter(user=user) - if perms: - perm = perms[0] - else: - raise ServerError('Permission %s to %s does not exist.' % (username, ip)) + username = asset.username + password= cryptor.decrypt(asset.password) + return username, password, ip, port - if perm.role == 'SU': - username_super = asset.username_super - password_super = cryptor.decrypt(asset.password_super) - return username_super, password_super, ip, port - - elif perm.role == 'CU': - username_common = asset.username_common - password_common = asset.password_common - return username_common, password_common, ip, port - - else: - raise ServerError('Perm in %s for %s map role is not in ["SU", "CU"].' % (ip, username)) else: raise ServerError('Login type is not in ["L", "S", "P", "M"]') diff --git a/jasset/models.py b/jasset/models.py index 99f435f96..d7d262185 100644 --- a/jasset/models.py +++ b/jasset/models.py @@ -32,10 +32,8 @@ class Asset(models.Model): user_group = models.ManyToManyField(UserGroup) bis_group = models.ManyToManyField(BisGroup) login_type = models.CharField(max_length=1, choices=LOGIN_TYPE_CHOICES, default='L') - username_common = models.CharField(max_length=20, blank=True, null=True) - password_common = models.CharField(max_length=80, blank=True, null=True) - username_super = models.CharField(max_length=20, blank=True, null=True) - password_super = models.CharField(max_length=80, blank=True, null=True) + username = models.CharField(max_length=20, blank=True, null=True) + password = models.CharField(max_length=80, blank=True, null=True) date_added = models.DateTimeField(auto_now=True, default=datetime.datetime.now(), null=True) is_active = models.BooleanField(default=True) comment = models.CharField(max_length=100, blank=True, null=True) diff --git a/jperm/models.py b/jperm/models.py index b462d77ef..27d57c12c 100644 --- a/jperm/models.py +++ b/jperm/models.py @@ -4,16 +4,8 @@ from jasset.models import Asset class Perm(models.Model): - USER_ROLE_CHOICES = ( - ('SU', 'SuperUser'), - ('CU', 'CommonUser'), - ) user = models.ForeignKey(User) asset = models.ForeignKey(Asset) - role = models.CharField(choices=USER_ROLE_CHOICES, - max_length=2, - blank=True, - null=True) def __unicode__(self): return '%s_%s' % (self.user.username, self.asset.ip) \ No newline at end of file diff --git a/jperm/views.py b/jperm/views.py index 9902fe08b..ff9a2abc5 100644 --- a/jperm/views.py +++ b/jperm/views.py @@ -1,7 +1,7 @@ # coding: utf-8 from django.shortcuts import render_to_response -from django.http import HttpResponseRedirect +from django.http import HttpResponseRedirect, HttpResponse from juser.models import User, UserGroup from jasset.models import Asset from jperm.models import Perm @@ -28,6 +28,13 @@ def perm_host(request): return render_to_response('jperm/perm_host.html', locals()) +def perm_user_host(username, ip): + user = User.objects.get(username=username) + asset = Asset.objects.get(ip=ip) + if not Perm.objects.filter(user=user, asset=asset): + Perm.objects.create(user=user, asset=asset) + + def perm_edit(request): header_title, path1, path2 = u'授权编辑 | Perm Edit.', u'jperm', u'perm_edit' if request.method == 'GET': @@ -35,7 +42,18 @@ def perm_edit(request): user_id = request.GET.get('id') user = User.objects.get(id=user_id) assets = Asset.objects.all() + assets_permed = [] + 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()) + else: + host_ips = request.POST.getlist('host_permed', '') + username = request.POST.get('username') + for ip in host_ips: + perm_user_host(username, ip) + + return HttpResponseRedirect('/jperm/perm_host/') def perm_add(request): diff --git a/templates/jperm/perm_edit.html b/templates/jperm/perm_edit.html index 90eb35fd1..9491d5b1a 100644 --- a/templates/jperm/perm_edit.html +++ b/templates/jperm/perm_edit.html @@ -21,8 +21,13 @@ function search_host(text){ $("#host_unperm").children().each(function(){$(this).remove();}); $("#host_all").children().each(function(){ - if ($(this).text().search(text) != -1) { - $("#host_unperm").append($(this).clone()) + if ($(this).text().search(text) != -1){ +{# $("#host_permed").children().each(function(){#} +{# if ($(this).text().search(text) == -1){#} +{# $("#host_unperm").append($(this).clone())#} +{# }#} +{# });#} + $("#host_unperm").append($(this).clone()) } }); } @@ -35,7 +40,7 @@