Example #1
0
 def _can_edit_content(self, request, obj):
     if isinstance(obj, Content):
         owners = obj.get_root().node.versiontracker_set.get().owners
         any_owner_in_current_site = any(current_site_id() == o.site_id for o in owners)
         return has_site_permission(request.user) and any_owner_in_current_site
     else:
         return True
Example #2
0
 def _can_edit_content(self, request, obj):
     if isinstance(obj, Content):
         owners = obj.get_root().node.versiontracker_set.get().owners
         any_owner_in_current_site = any(current_site_id() == o.site_id
                                         for o in owners)
         return has_site_permission(
             request.user) and any_owner_in_current_site
     else:
         return True
Example #3
0
def editable_loader(context):
    """
    Set up the required JS/CSS for the in-line editing toolbar and controls.
    """
    user = context["request"].user
    context["has_site_permission"] = has_site_permission(user)
    if context["has_site_permission"]:
        t = get_template("includes/editable_toolbar.html")
        context["REDIRECT_FIELD_NAME"] = REDIRECT_FIELD_NAME
        context["toolbar"] = t.render(Context(context))
        context["richtext_media"] = RichTextField().formfield().widget.media
    return context
Example #4
0
def editable_loader(context):
    """
    Set up the required JS/CSS for the in-line editing toolbar and controls.
    """
    user = context["request"].user
    context["has_site_permission"] = has_site_permission(user)
    if settings.INLINE_EDITING_ENABLED and context["has_site_permission"]:
        t = get_template("includes/editable_toolbar.html")
        context["REDIRECT_FIELD_NAME"] = REDIRECT_FIELD_NAME
        context["toolbar"] = t.render(Context(context))
        context["richtext_media"] = RichTextField().formfield().widget.media
    return context
Example #5
0
def is_editable(obj, request):
    """
    Returns ``True`` if the object is editable for the request. First
    check for a custom ``editable`` handler on the object, otherwise
    use the logged in user and check change permissions for the
    object's model.
    """
    if hasattr(obj, "is_editable"):
        return obj.is_editable(request)
    else:
        perm = obj._meta.app_label + "." + obj._meta.get_change_permission()
        return (request.user.is_authenticated() and
                has_site_permission(request.user) and
                request.user.has_perm(perm))
Example #6
0
def editable_loader(context):
    """
    Set up the required JS/CSS for the in-line editing toolbar and controls.
    """
    user = context["request"].user
    template_vars = {"has_site_permission": has_site_permission(user), "request": context["request"]}
    if settings.INLINE_EDITING_ENABLED and template_vars["has_site_permission"]:
        t = get_template("includes/editable_toolbar.html")
        template_vars["REDIRECT_FIELD_NAME"] = REDIRECT_FIELD_NAME
        template_vars["editable_obj"] = context.get("editable_obj", context.get("page", None))
        template_vars["accounts_logout_url"] = context.get("accounts_logout_url", None)
        template_vars["toolbar"] = t.render(Context(template_vars))
        template_vars["richtext_media"] = RichTextField().formfield().widget.media
    return template_vars
Example #7
0
def is_editable(obj, request):
    """
    Returns ``True`` if the object is editable for the request. First
    check for a custom ``editable`` handler on the object, otherwise
    use the logged in user and check change permissions for the
    object's model.
    """
    if hasattr(obj, "is_editable"):
        return obj.is_editable(request)
    else:
        perm = obj._meta.app_label + "." + obj._meta.get_change_permission()
        return (request.user.is_authenticated()
                and has_site_permission(request.user)
                and request.user.has_perm(perm))
def is_editable(obj, request):
    """
    Returns ``True`` if the object is editable for the request. First
    check for a custom ``editable`` handler on the object, otherwise
    use the logged in user and check change permissions for the
    object's model.
    """
    if hasattr(obj, "is_editable"):
        return obj.is_editable(request)
    else:
        codename = get_permission_codename("change", obj._meta)
        perm = "%s.%s" % (obj._meta.app_label, codename)
        return (is_authenticated(request.user)
                and has_site_permission(request.user)
                and request.user.has_perm(perm))
Example #9
0
def is_editable(obj, request):
    """
    Returns ``True`` if the object is editable for the request. First
    check for a custom ``editable`` handler on the object, otherwise
    use the logged in user and check change permissions for the
    object's model.
    """
    if hasattr(obj, "is_editable"):
        return obj.is_editable(request)
    else:
        codename = get_permission_codename("change", obj._meta)
        perm = "%s.%s" % (obj._meta.app_label, codename)
        return (is_authenticated(request.user) and
                has_site_permission(request.user) and
                request.user.has_perm(perm))
Example #10
0
def editable_loader(context):
    """
    Set up the required JS/CSS for the in-line editing toolbar and controls.
    """
    user = context["request"].user
    context["has_site_permission"] = has_site_permission(user)
    if settings.INLINE_EDITING_ENABLED and context["has_site_permission"]:
        t = get_template("includes/editable_toolbar.html")
        context["REDIRECT_FIELD_NAME"] = REDIRECT_FIELD_NAME
        try:
            context["editable_obj"]
        except KeyError:
            context["editable_obj"] = context.get("page", None)
        context["toolbar"] = t.render(Context(context))
        context["richtext_media"] = RichTextField().formfield().widget.media
    return context
Example #11
0
def edit(request):
    """
    Process the inline editing form.
    """
    model = apps.get_model(request.POST["app"], request.POST["model"])
    obj = model.objects.get(id=request.POST["id"])
    form = get_edit_form(obj, request.POST["fields"], data=request.POST, files=request.FILES)
    if not (is_editable(obj, request) and has_site_permission(request.user)):
        response = _("Permission denied")
    elif form.is_valid():
        form.save()
        model_admin = ModelAdmin(model, admin.site)
        message = model_admin.construct_change_message(request, form, None)
        model_admin.log_change(request, obj, message)
        response = ""
    else:
        response = list(form.errors.values())[0][0]
    return HttpResponse(response)
Example #12
0
def edit(request):
    """
    Process the inline editing form.
    """
    model = get_model(request.POST["app"], request.POST["model"])
    obj = model.objects.get(id=request.POST["id"])
    form = get_edit_form(obj, request.POST["fields"], data=request.POST,
                         files=request.FILES)
    if not (is_editable(obj, request) and has_site_permission(request.user)):
        response = _("Permission denied")
    elif form.is_valid():
        form.save()
        model_admin = ModelAdmin(model, admin.site)
        message = model_admin.construct_change_message(request, form, None)
        model_admin.log_change(request, obj, message)
        response = ""
    else:
        response = list(form.errors.values())[0][0]
    return HttpResponse(response)
Example #13
0
def editable_loader(context):
    """
    Set up the required JS/CSS for the in-line editing toolbar and controls.
    """
    user = context["request"].user
    template_vars = {
        "has_site_permission": has_site_permission(user),
        "request": context["request"],
    }
    if settings.INLINE_EDITING_ENABLED and template_vars["has_site_permission"]:
        t = get_template("includes/editable_toolbar.html")
        template_vars["REDIRECT_FIELD_NAME"] = REDIRECT_FIELD_NAME
        template_vars["editable_obj"] = context.get(
            "editable_obj", context.get("page", None)
        )
        template_vars["accounts_logout_url"] = context.get("accounts_logout_url", None)
        template_vars["toolbar"] = t.render(template_vars)
        template_vars["richtext_media"] = RichTextField().formfield().widget.media
    return template_vars
Example #14
0
def unifypage(request,
              slug,
              template=u"pages/unifypage.html",
              extra_context=None):
    if hasattr(request, "page") and hasattr(request.page, "unifypage"):
        if request.method == 'POST':
            if slug == 'about-us/contact':
                send_mail(
                    request.POST.get("name") + ' (' + request.POST.get("email")\
                            + ') completed the contact form. Subject: '\
                            + request.POST.get("subject"),
                    request.POST.get("message"),
                    '*****@*****.**',
                    ['*****@*****.**',],
                    fail_silently=False,
                )
                if request.POST.get("send_email") == 'on':
                    send_mail(
                        'Your email to the ln2x team on the subject: '\
                                + request.POST.get("subject"),
                        request.POST.get("message"),
                        '*****@*****.**',
                        [request.POST.get("email"),],
                        fail_silently=False,
                        )
            form = ContactForm(request.POST)
        else:
            form = ContactForm()
        context = {
            'row_entry_list': request.page.unifypage.toRows.all,
            'is_user_admin': has_site_permission(request.user),
            'form': form,
            'keywords': request.page.unifypage.multilang_keywords.all(),
        }
    else:
        context = {}
    context.update(extra_context or {})
    return page(request, slug, template, context)