Example #1
0
File: views.py Project: soon/berfmk
def news_page(request, id):
    news = get_news_or_404(id)
    if news.hidden and not request.user.has_perm('news.view_hidden'):
        # soon(02.08.12, 14:17)
        # FIXME
        #  Сделать нормальную страницу, оповещающую об отсутствии прав
        raise Http404()

    return direct_to_template(request, 'news/news_page.hdt', {'news': news})
Example #2
0
File: views.py Project: soon/berfmk
def news_page(request, id):
    news = get_news_or_404(id)
    if news.hidden and not request.user.has_perm('news.view_hidden'):
        # soon(02.08.12, 14:17)
        # FIXME
        #  Сделать нормальную страницу, оповещающую об отсутствии прав
        raise Http404()

    return direct_to_template(
        request,
        'news/news_page.hdt', {
            'news': news
        }
    )
Example #3
0
File: views.py Project: soon/berfmk
def edit_news(request, id, preview = False):
    # FIXME
    # Если послать поддельный POST, то юзер без прав(на определенный раздел) 
    # сможет добавить новость
    # soon(30.08.12, 11:11)
    # См. выше
    user = request.user

    if not (
        user.has_perm('news.add_news')          or \
        user.has_perm('news.add_schoolnews')    or \
        user.has_perm('news.add_sitenews')      or \
        user.has_perm('news.add_hidden')        or \
        user.has_perm('news.add_only_hidden')
    ):
        # soon(02.09.12, 15:32)
        # FIXME
        # Сделать нормальную страницу, оповещающую об отсутствии прав
        raise Http404()

    news = get_news_or_404(id)
    if news.hidden:
        if not (
            user.has_perm('news.add_hidden') or \
            user.has_perm('news.add_only_hidden')
        ):
        # soon(02.09.12, 14:13)
        # FIXME
        # Сделать нормальную страницу, оповещающую об отсутствии прав
            raise Http404()
    # FIXME:
    # Если длинна будет нулевая
    if request.method == 'POST':
        errors = {'title': False, 'text_block': False}
        title = request.POST['input_title']
        if len(title) > 100:
            errors['title'] = True

        text_block = request.POST['input_text_block']
        if len(text_block) > 1000:
            errors['text_block'] = True

        if not True in errors.values():
            schoolNews = 'school' in request.POST.keys()
            if schoolNews and not user.has_perm('news.add_schoolnews'):
                # soon(02.09.12, 14:07)
                # FIXME
                # Сделать нормальную страницу, оповещающую об отсутствии прав
                raise Http404()

            siteNews = 'site' in request.POST.keys()
            if siteNews and not user.has_perm('news.add_sitenews'):
                # soon(02.09.12, 14:07)
                # FIXME
                # Сделать нормальную страницу, оповещающую об отсутствии прав
                raise Http404()

            hidden = 'hidden' in request.POST.keys() or \
                    user.has_perm('news.add_only_hidden')
            if hidden:
                if not (
                    user.has_perm('news.add_hidden') or \
                    user.has_perm('news.add_only_hidden')
                ):
                    # soon(02.09.12, 14:08)
                    # FIXME
                    # Сделать нормальную страницу, оповещающую об отсутствии прав
                    raise Http404()
            news.title, news.text_block, news.schoolNews, news.siteNews = \
            title,      text_block,         schoolNews,     siteNews
            news.hidden = hidden
            if not preview:
                news.save()
                return redirect('/news/{0}/'.format(id))
        return direct_to_template(
            request,
            'news/edit_news.hdt', {
                'news'              : news,
                'news_title'        : title,
                'news_text_block'   : text_block,
                'errors'            : errors
            }
        )
    else:
        return direct_to_template(
            request,
            'news/edit_news.hdt', {
                'news': news
            }
        )
#-------------------------------------------------------------------------------
Example #4
0
File: views.py Project: soon/berfmk
def edit_news(request, id, preview=False):
    # FIXME
    # Если послать поддельный POST, то юзер без прав(на определенный раздел)
    # сможет добавить новость
    # soon(30.08.12, 11:11)
    # См. выше
    user = request.user

    if not (
        user.has_perm('news.add_news')          or \
        user.has_perm('news.add_schoolnews')    or \
        user.has_perm('news.add_sitenews')      or \
        user.has_perm('news.add_hidden')        or \
        user.has_perm('news.add_only_hidden')
    ):
        # soon(02.09.12, 15:32)
        # FIXME
        # Сделать нормальную страницу, оповещающую об отсутствии прав
        raise Http404()

    news = get_news_or_404(id)
    if news.hidden:
        if not (
            user.has_perm('news.add_hidden') or \
            user.has_perm('news.add_only_hidden')
        ):
            # soon(02.09.12, 14:13)
            # FIXME
            # Сделать нормальную страницу, оповещающую об отсутствии прав
            raise Http404()
    # FIXME:
    # Если длинна будет нулевая
    if request.method == 'POST':
        errors = {'title': False, 'text_block': False}
        title = request.POST['input_title']
        if len(title) > 100:
            errors['title'] = True

        text_block = request.POST['input_text_block']
        if len(text_block) > 1000:
            errors['text_block'] = True

        if not True in errors.values():
            schoolNews = 'school' in request.POST.keys()
            if schoolNews and not user.has_perm('news.add_schoolnews'):
                # soon(02.09.12, 14:07)
                # FIXME
                # Сделать нормальную страницу, оповещающую об отсутствии прав
                raise Http404()

            siteNews = 'site' in request.POST.keys()
            if siteNews and not user.has_perm('news.add_sitenews'):
                # soon(02.09.12, 14:07)
                # FIXME
                # Сделать нормальную страницу, оповещающую об отсутствии прав
                raise Http404()

            hidden = 'hidden' in request.POST.keys() or \
                    user.has_perm('news.add_only_hidden')
            if hidden:
                if not (
                    user.has_perm('news.add_hidden') or \
                    user.has_perm('news.add_only_hidden')
                ):
                    # soon(02.09.12, 14:08)
                    # FIXME
                    # Сделать нормальную страницу, оповещающую об отсутствии прав
                    raise Http404()
            news.title, news.text_block, news.schoolNews, news.siteNews = \
            title,      text_block,         schoolNews,     siteNews
            news.hidden = hidden
            if not preview:
                news.save()
                return redirect('/news/{0}/'.format(id))
        return direct_to_template(
            request, 'news/edit_news.hdt', {
                'news': news,
                'news_title': title,
                'news_text_block': text_block,
                'errors': errors
            })
    else:
        return direct_to_template(request, 'news/edit_news.hdt',
                                  {'news': news})


#-------------------------------------------------------------------------------