def ctnr_get_add_form(request, pk): ctnr = Ctnr.objects.get(id=pk) submit_btn_label = "Add" add_user_form = CtnrUserForm(initial={'ctnr': ctnr}) if request.user.get_profile().has_perm(request, ACTION_UPDATE, obj_class='CtnrObject', ctnr=ctnr): form_title = "Add Object to Container" object_form = CtnrObjectForm(obj_perm=True) only_user = False else: form_title = "Add User to Container" only_user = True object_form = CtnrObjectForm() object_form.fields['obj_type'] = ChoiceField(widget=HiddenInput, initial='user') return HttpResponse( json.dumps({ 'object_form': object_form.as_p(), 'add_user_form': add_user_form.as_p(), 'form_title': form_title, 'submit_btn_label': submit_btn_label, 'only_user': only_user }))
def add_user(request, pk): """Add user to container.""" form = CtnrUserForm(qd_to_py_dict(request.POST)) if form.is_valid(): # Create table so client can inside new row into user table. extra_cols = [{"header": ""}] extra_cols[0]["data"] = [{"value": LEVELS[int(request.POST["level"])], "url": ""}] user_table = tablefy(User.objects.filter(id=request.POST["user"]), users=True, extra_cols=extra_cols) form.save() return HttpResponse(json.dumps({"user": user_table})) else: return HttpResponse(json.dumps({"error": [form.errors[err] for err in form.errors]}))
def get_context_data(self, **kwargs): context = super(CoreDetailView, self).get_context_data(**kwargs) ctnr = kwargs.get('object', False) if not ctnr: return context # Add user levels of ctnr to user table. users = ctnr.users.all() extra_cols = [{ 'header': 'Level to %s' % ctnr.name, 'sort_field': 'user' }] extra_cols[0]['data'] = [{ 'value': LEVELS[CtnrUser.objects.get(user=user, ctnr=ctnr).level] if not user.is_superuser else 'Superuser', 'url': '' } for user in users] user_table = tablefy(users, extra_cols=extra_cols, users=True) domains = ctnr.domains.filter(is_reverse=False) domain_table = tablefy(domains) rdomains = ctnr.domains.filter(is_reverse=True) rdomain_table = tablefy(rdomains) add_user_form = CtnrUserForm(initial={'ctnr': ctnr}) return dict({ 'obj_type': 'ctnr', 'user_table': user_table, 'domain_table': domain_table, 'rdomain_table': rdomain_table, 'add_user_form': add_user_form }.items() + context.items())
def add_user(request, pk): """Add user to container.""" form = CtnrUserForm(qd_to_py_dict(request.POST)) if form.is_valid(): # Create table so client can inside new row into user table. extra_cols = [{'header': ''}] extra_cols[0]['data'] = [{ 'value': LEVELS[int(request.POST['level'])], 'url': '' }] user_table = tablefy(User.objects.filter(id=request.POST['user']), users=True, extra_cols=extra_cols) form.save() return HttpResponse(json.dumps({'user': user_table})) else: return HttpResponse( json.dumps({'error': [form.errors[err] for err in form.errors]}))
def ctnr_get_add_form(request, pk): ctnr = Ctnr.objects.get(id=pk) submit_btn_label = "Add" add_user_form = CtnrUserForm(initial={'ctnr': ctnr}) if request.user.get_profile().has_perm( request, ACTION_UPDATE, obj_class='CtnrObject', ctnr=ctnr): form_title = "Add Object to Container" object_form = CtnrObjectForm(obj_perm=True) only_user = False else: form_title = "Add User to Container" only_user = True object_form = CtnrObjectForm() object_form.fields['obj_type'] = ChoiceField(widget=HiddenInput, initial='user') return HttpResponse( json.dumps({ 'object_form': object_form.as_p(), 'add_user_form': add_user_form.as_p(), 'form_title': form_title, 'submit_btn_label': submit_btn_label, 'only_user': only_user }))
def ctnr_detail(request, pk): ctnr = Ctnr.objects.get(id=pk) ctnrUsers = ctnr.ctnruser_set.select_related('user', 'user__profile') ctnrDomains = ctnr.domains.select_related().filter(is_reverse=False) ctnrRdomains = ctnr.domains.select_related().filter(is_reverse=True) ctnrRanges = ctnr.ranges.select_related() ctnrWorkgroups = ctnr.workgroups.select_related() if request.user.get_profile().has_perm(request, ACTION_UPDATE, obj_class='CtnrObject', ctnr=ctnr): extra_cols, domains = create_obj_extra_cols(ctnr, ctnrDomains, 'domain') domain_table = tablefy(domains, extra_cols=extra_cols, request=request) extra_cols, rdomains = create_obj_extra_cols(ctnr, ctnrRdomains, 'domain') rdomain_table = tablefy(rdomains, extra_cols=extra_cols, request=request) extra_cols, ranges = create_obj_extra_cols(ctnr, ctnrRanges, 'range') range_table = tablefy(ranges, extra_cols=extra_cols, request=request) extra_cols, workgroups = create_obj_extra_cols(ctnr, ctnrWorkgroups, 'workgroup') workgroup_table = tablefy(workgroups, extra_cols=extra_cols, request=request) object_form = CtnrObjectForm(obj_perm=True) else: domain_table = tablefy(ctnrDomains, request=request) rdomain_table = tablefy(ctnrRdomains, request=request) range_table = tablefy(ctnrRanges, request=request) workgroup_table = tablefy(ctnrWorkgroups, request=request) object_form = CtnrObjectForm() object_form.fields['obj_type'] = ChoiceField(widget=HiddenInput, initial='user') if request.user.get_profile().has_perm(request, ACTION_UPDATE, obj_class='CtnrUser', ctnr=ctnr): extra_cols, users = create_user_extra_cols(ctnr, ctnrUsers, actions=True) user_table = tablefy(users, extra_cols=extra_cols, users=True, request=request, update=False) else: extra_cols, users = create_user_extra_cols(ctnr, ctnrUsers) user_table = tablefy(users, extra_cols=extra_cols, users=True, request=request, update=False) add_user_form = CtnrUserForm(initial={'ctnr': ctnr}) return render( request, 'ctnr/ctnr_detail.html', { 'obj': ctnr, 'pretty_obj_type': ctnr.pretty_type, 'obj_type': 'ctnr', 'user_table': user_table, 'domain_table': domain_table, 'rdomain_table': rdomain_table, 'range_table': range_table, 'workgroup_table': workgroup_table, 'add_user_form': add_user_form, 'object_select_form': object_form })