From 5ddcdf99c147b6d9ec72b070d0483b0377fa243f Mon Sep 17 00:00:00 2001 From: guanghongwei Date: Tue, 27 Jan 2015 15:01:09 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=BB=84=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- jperm/models.py | 16 +++------------- juser/models.py | 6 ++++++ juser/views.py | 21 ++++++++++++--------- 3 files changed, 21 insertions(+), 22 deletions(-) diff --git a/jperm/models.py b/jperm/models.py index 9aa31c2a0..75a4081f2 100644 --- a/jperm/models.py +++ b/jperm/models.py @@ -3,19 +3,9 @@ from juser.models import User, UserGroup from jasset.models import Asset, BisGroup -class PermUser(models.Model): - user = models.ForeignKey(User) - asset = models.ForeignKey(Asset) +class Perm(models.Model): + user_group = models.ForeignKey(UserGroup) asset_group = models.ForeignKey(BisGroup) def __unicode__(self): - 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) \ No newline at end of file + return '%s_%s' % (self.user_group.name, self.asset_group.name) \ No newline at end of file diff --git a/juser/models.py b/juser/models.py index 25bc2c055..4426a3b17 100644 --- a/juser/models.py +++ b/juser/models.py @@ -2,7 +2,13 @@ from django.db import models class UserGroup(models.Model): + GROUP_TYPE_CHOICES = ( + ('U', 'UniqueUserGroup'), + ('M', 'ManyUserGroup') + ) + name = models.CharField(max_length=80, unique=True) + type = models.CharField(max_length=1, choices=GROUP_TYPE_CHOICES, default='U') comment = models.CharField(max_length=160, blank=True, null=True) def __unicode__(self): diff --git a/juser/views.py b/juser/views.py index e090dd8ce..0b1077731 100644 --- a/juser/views.py +++ b/juser/views.py @@ -113,6 +113,14 @@ def gen_sha512(salt, password): return crypt.crypt(password, '$6$%s$' % salt) +def group_db_add(**kwargs): + group_name = kwargs.get('name') + group = UserGroup.objects.filter(name=group_name) + if group: + raise AddError + UserGroup.objects.create(**kwargs) + + def group_add(request): error = '' msg = '' @@ -127,13 +135,8 @@ def group_add(request): error = u'组名不能为空' raise AddError - group = UserGroup.objects.filter(name=group_name) - if group: - error = u'组 %s 已存在' % group_name - raise AddError + group_db_add(name=group_name, comment=comment, type='M') - group = UserGroup(name=group_name, comment=comment) - group.save() except AddError: pass @@ -148,7 +151,7 @@ def group_add(request): def group_list(request): header_title, path1, path2 = '查看属组 | Show Group', 'juser', 'group_list' - groups = contact_list = UserGroup.objects.all().order_by('id') + groups = contact_list = UserGroup.objects.filter(type='M').order_by('id') p = paginator = Paginator(contact_list, 10) try: @@ -418,7 +421,7 @@ def user_add(request): msg = '' header_title, path1, path2 = '添加用户 | Add User', 'juser', 'user_add' user_role = {'SU': u'超级管理员', 'GA': u'组管理员', 'CU': u'普通用户'} - all_group = UserGroup.objects.all() + all_group = UserGroup.objects.filter(type='M') if request.method == 'POST': username = request.POST.get('username', None) password = request.POST.get('password', None) @@ -457,10 +460,10 @@ def user_add(request): date_joined=time_now) server_add_user(username, password, ssh_key_pwd1) + group_db_add(name=username, comment=username, type='U') if LDAP_ENABLE: ldap_add_user(username, ldap_pwd) msg = u'添加用户 %s 成功!' % username - # locals = lambda: {} except Exception, e: error = u'添加用户 %s 失败 %s ' % (username, e)