Commit 386d6a1c authored by guanghongwei's avatar guanghongwei

--no commit message

parent a2ede31a
...@@ -192,7 +192,6 @@ def view_splitter(request, su=None, adm=None): ...@@ -192,7 +192,6 @@ def view_splitter(request, su=None, adm=None):
raise Http404 raise Http404
def user_perm_group_api(user): def user_perm_group_api(user):
if user: if user:
perm_list = [] perm_list = []
...@@ -233,3 +232,43 @@ def asset_perm_api(asset): ...@@ -233,3 +232,43 @@ def asset_perm_api(asset):
for user_group in user_group_list: for user_group in user_group_list:
user_permed_list.extend(user_group.user_set.all()) user_permed_list.extend(user_group.user_set.all())
return user_permed_list return user_permed_list
def validate(request, user_group=None, user=None, asset_group=None, asset=None):
dept = get_session_user_dept(request)[1]
if user_group:
dept_user_groups = dept.usergroup_set.all()
user_groups = []
for user_group_id in user_group:
user_groups.extend(UserGroup.objects.filter(id=user_group_id))
if not set(user_groups).issubset(set(dept_user_groups)):
return False
if user:
dept_users = dept.user_set.all()
users = []
for user_id in user:
users.extend(User.objects.filter(id=user_id))
if not set(users).issubset(set(dept_users)):
return False
if asset_group:
dept_asset_groups = dept.bisgroup_set.all()
asset_groups = []
for asset_group_id in asset_group:
asset_groups.extend(BisGroup.objects.filter(id=asset_group_id))
if not set(asset_groups).issubset(set(dept_asset_groups)):
return False
if asset:
dept_assets = dept.asset_set.all()
assets = []
for asset_id in asset:
assets.extend(asset_id)
if not set(assets).issubset(dept_assets):
return False
return True
\ No newline at end of file
...@@ -18,7 +18,7 @@ urlpatterns = patterns('juser.views', ...@@ -18,7 +18,7 @@ urlpatterns = patterns('juser.views',
(r'^group_detail/$', 'group_detail'), (r'^group_detail/$', 'group_detail'),
(r'^group_del/$', 'group_del'), (r'^group_del/$', 'group_del'),
(r'^group_del_ajax/$', 'group_del_ajax'), (r'^group_del_ajax/$', 'group_del_ajax'),
(r'^group_edit/$', 'group_edit'), (r'^group_edit/$', view_splitter, {'su': group_edit, 'adm': group_edit_adm}),
(r'^user_add/$', 'user_add'), (r'^user_add/$', 'user_add'),
(r'^user_list/$', 'user_list'), (r'^user_list/$', 'user_list'),
(r'^user_detail/$', 'user_detail'), (r'^user_detail/$', 'user_detail'),
......
...@@ -444,7 +444,7 @@ def group_update_member(group_id, users_id_list): ...@@ -444,7 +444,7 @@ def group_update_member(group_id, users_id_list):
group.user_set.add(user) group.user_set.add(user)
@require_admin @require_super_user
def group_edit(request): def group_edit(request):
error = '' error = ''
msg = '' msg = ''
...@@ -492,6 +492,56 @@ def group_edit(request): ...@@ -492,6 +492,56 @@ def group_edit(request):
return HttpResponseRedirect('/juser/group_list/') return HttpResponseRedirect('/juser/group_list/')
@require_admin
def group_edit_adm(request):
error = ''
msg = ''
header_title, path1, path2 = '修改小组信息', '用户管理', '编辑小组'
if request.method == 'GET':
group_id = request.GET.get('id', '')
if not validate(request, user_group=[group_id]):
return HttpResponseRedirect('/juser/group_list/')
group = UserGroup.objects.filter(id=group_id)
if group:
group = group[0]
dept_all = DEPT.objects.all()
users_all = User.objects.all()
users_selected = group.user_set.all()
users = [user for user in users_all if user not in users_selected]
return render_to_response('juser/group_edit.html', locals(), context_instance=RequestContext(request))
else:
group_id = request.POST.get('group_id', '')
group_name = request.POST.get('group_name', '')
dept_id = request.POST.get('dept_id', '')
comment = request.POST.get('comment', '')
users_selected = request.POST.getlist('users_selected')
users = []
try:
if '' in [group_id, group_name]:
raise AddError('组名不能为空')
dept = DEPT.objects.filter(id=dept_id)
if dept:
dept = dept[0]
else:
raise AddError('部门不存在')
for user_id in users_selected:
users.extend(User.objects.filter(id=user_id))
user_group = UserGroup.objects.filter(id=group_id)
if user_group:
user_group.update(name=group_name, comment=comment, dept=dept)
user_group = user_group[0]
user_group.user_set.clear()
user_group.user_set = users
except AddError, e:
error = e
return HttpResponseRedirect('/juser/group_list/')
@require_admin @require_admin
def user_add(request): def user_add(request):
error = '' error = ''
......
...@@ -41,6 +41,7 @@ ...@@ -41,6 +41,7 @@
<input id="group_name" name="group_name" placeholder="Group name" type="text" class="form-control" value="{{ group.name }}"> <input id="group_name" name="group_name" placeholder="Group name" type="text" class="form-control" value="{{ group.name }}">
</div> </div>
</div> </div>
{% ifequal session_role_id 2 %}
<div class="hr-line-dashed"></div> <div class="hr-line-dashed"></div>
<div class="form-group"> <div class="form-group">
<label for="dept_id" class="col-sm-2 control-label">部门<span class="red-fonts">*</span></label> <label for="dept_id" class="col-sm-2 control-label">部门<span class="red-fonts">*</span></label>
...@@ -56,6 +57,7 @@ ...@@ -56,6 +57,7 @@
</select> </select>
</div> </div>
</div> </div>
{% endifequal %}
<div class="hr-line-dashed"></div> <div class="hr-line-dashed"></div>
<div class="form-group"> <div class="form-group">
<label for="users" class="col-lg-2 control-label">用户</label> <label for="users" class="col-lg-2 control-label">用户</label>
......
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