Example #1
0
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
        }))
Example #2
0
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]}))
Example #3
0
    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())
Example #4
0
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]}))
Example #5
0
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
        }))
Example #6
0
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
        })