授权管理

This commit is contained in:
ibuler@qq.com
2015-10-07 17:16:20 +08:00
parent d3465be672
commit afbbad1604
14 changed files with 252 additions and 394 deletions

View File

@@ -14,48 +14,48 @@ class AssetGroup(models.Model):
def __unicode__(self):
return self.name
def get_asset(self):
return self.asset_set.all()
def get_asset_info(self, printable=False):
assets = self.get_asset()
ip_comment = {}
for asset in assets:
ip_comment[asset.ip] = asset.comment
for ip in sorted(ip_comment):
if ip_comment[ip]:
print '%-15s -- %s' % (ip, ip_comment[ip])
else:
print '%-15s' % ip
print ''
def get_asset_num(self):
return len(self.get_asset())
def get_user_group(self):
perm_list = self.perm_set.all()
user_group_list = []
for perm in perm_list:
user_group_list.append(perm.user_group)
return user_group_list
def get_user(self):
user_list = []
user_group_list = self.get_user_group()
for user_group in user_group_list:
user_list.extend(user_group.user_set.all())
return user_list
def is_permed(self, user=None, user_group=None):
if user:
if user in self.get_user():
return True
if user_group:
if user_group in self.get_user_group():
return True
return False
# def get_asset(self):
# return self.asset_set.all()
#
# def get_asset_info(self, printable=False):
# assets = self.get_asset()
# ip_comment = {}
# for asset in assets:
# ip_comment[asset.ip] = asset.comment
#
# for ip in sorted(ip_comment):
# if ip_comment[ip]:
# print '%-15s -- %s' % (ip, ip_comment[ip])
# else:
# print '%-15s' % ip
# print ''
#
# def get_asset_num(self):
# return len(self.get_asset())
#
# def get_user_group(self):
# perm_list = self.perm_set.all()
# user_group_list = []
# for perm in perm_list:
# user_group_list.append(perm.user_group)
# return user_group_list
#
# def get_user(self):
# user_list = []
# user_group_list = self.get_user_group()
# for user_group in user_group_list:
# user_list.extend(user_group.user_set.all())
# return user_list
#
# def is_permed(self, user=None, user_group=None):
# if user:
# if user in self.get_user():
# return True
#
# if user_group:
# if user_group in self.get_user_group():
# return True
# return False
class Asset(models.Model):
@@ -72,21 +72,21 @@ class Asset(models.Model):
def __unicode__(self):
return self.ip
def get_user(self):
perm_list = []
asset_group_all = self.bis_group.all()
for asset_group in asset_group_all:
perm_list.extend(asset_group.perm_set.all())
user_group_list = []
for perm in perm_list:
user_group_list.append(perm.user_group)
user_permed_list = []
for user_group in user_group_list:
user_permed_list.extend(user_group.user_set.all())
user_permed_list = list(set(user_permed_list))
return user_permed_list
# def get_user(self):
# perm_list = []
# asset_group_all = self.bis_group.all()
# for asset_group in asset_group_all:
# perm_list.extend(asset_group.perm_set.all())
#
# user_group_list = []
# for perm in perm_list:
# user_group_list.append(perm.user_group)
#
# user_permed_list = []
# for user_group in user_group_list:
# user_permed_list.extend(user_group.user_set.all())
# user_permed_list = list(set(user_permed_list))
# return user_permed_list
class AssetAlias(models.Model):

View File

@@ -278,15 +278,15 @@ def asset_edit(request):
if request.method == 'POST':
ip = request.POST.get('ip')
port = request.POST.get('port')
groups = request.POST.getlist('groups')
use_default_auth = True if request.POST.getlist('use_default_auth', []) else False
use_default = True if request.POST.getlist('use_default', []) else False
is_active = True if request.POST.get('is_active') else False
comment = request.POST.get('comment')
if not use_default_auth:
if not use_default:
username = request.POST.get('username')
password = request.POST.get('password')
port = request.POST.get('port')
if password == asset.password:
password_encode = password
else:
@@ -294,6 +294,7 @@ def asset_edit(request):
else:
username = None
password_encode = None
port = 22
try:
asset_test = get_object(Asset, ip=ip)
@@ -303,7 +304,7 @@ def asset_edit(request):
except ServerError:
pass
else:
db_asset_update(id=asset_id, ip=ip, port=port, use_default_auth=use_default_auth,
db_asset_update(id=asset_id, ip=ip, port=port, use_default=use_default,
username=username, password=password_encode,
is_active=is_active, comment=comment)
msg = u'主机 %s 修改成功' % ip