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
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
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
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
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 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
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))
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
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)
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)
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
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)