Пример #1
0
def overview_permissions(request):
    """
    Gives an overview of all permissions
    """
    if not (request.user.is_staff):
        raise Http404

    request_username = request.GET.get('user', None)
    if request_username is None:
        request_user = request.user
    else:
        request_user = User.objects.get(username=request_username)

    request_presentationlayer_id = request.GET.get('presentationlayer_id',
                                                   None)
    if request_presentationlayer_id is None:
        request_presentationlayer = None
        text = 'Wat mag user "%s" uberhaupt voor dingen doen?' % request_user
        source_application_choices = (
            PresentationLayer.SOURCE_APPLICATION_CHOICES)
    else:
        request_presentationlayer = PresentationLayer.objects.get(
            pk=int(request_presentationlayer_id))
        text = ('Wat mag user "%s" dingen doen voor presentationlayer "%s".' %
                (request_user, str(request_presentationlayer)))
        source_application_choices = (
            (request_presentationlayer.source_application,
             PresentationLayer.SOURCE_APPLICATION_DICT[
                 request_presentationlayer.source_application]), )

    header = range(1, 11)
    permission_list = []
    pm = PermissionManager(request_user)

    for app_code, app_name in source_application_choices:
        app_block = {}
        app_block['title'] = app_name
        app_block['header'] = header
        app_block['table'] = []
        for permission in [
                PermissionManager.PERMISSION_PRESENTATIONLAYER_VIEW,
                PermissionManager.PERMISSION_PRESENTATIONLAYER_EDIT
        ]:
            row = [PermissionManager.PERMISSION_DICT[permission]]
            for permission_level in header:
                row.append(
                    pm.check_permission_app(
                        app_code,
                        permission_level,
                        permission,
                        presentationlayer=request_presentationlayer))
            app_block['table'].append(row)
        permission_list.append(app_block)

    return render_to_response('presentation/overview_permissions.html', {
        'permissions': permission_list,
        'user': request.user,
        'text': text,
    })