Newsletter erzeugen -> nichts passiert(bei Redakteuren)
Newsletter erzeugen -> nichts passiert(bei Redakteuren)
Hallo,
ich habe gerade die CSV von vorletzte Woche installiert und wollte dessen Newsletter-Funktionalität nutzen. Funktioniert soweit auch super nur können benutzer die keine Admin-Rechte haben keinen "Newsletter erzeugen", obwohl Sie dieses Recht im Rechtemanagement zugewiesen bekommen haben.
In welcher Datei müsste man gucken um, das zu beheben oder ist das nur bei mir so ?
MFG
ich habe gerade die CSV von vorletzte Woche installiert und wollte dessen Newsletter-Funktionalität nutzen. Funktioniert soweit auch super nur können benutzer die keine Admin-Rechte haben keinen "Newsletter erzeugen", obwohl Sie dieses Recht im Rechtemanagement zugewiesen bekommen haben.
In welcher Datei müsste man gucken um, das zu beheben oder ist das nur bei mir so ?
MFG
hmm...
mal kurz angesehen -> include.newsletter_edit.php
da findet sich reihenweise (? 3x)
$perm->have_perm_area_action("newsletters", "...
die area ist aber sicher nicht newsletters sondern eher news
ob es andere positionen gibt wo das falsch ist kann ich momentan nicht sagen...., da muss HerrB noch was dazu sagen...
ich verschieb das mal nach bugs...
mal kurz angesehen -> include.newsletter_edit.php
da findet sich reihenweise (? 3x)
$perm->have_perm_area_action("newsletters", "...
die area ist aber sicher nicht newsletters sondern eher news
ob es andere positionen gibt wo das falsch ist kann ich momentan nicht sagen...., da muss HerrB noch was dazu sagen...
ich verschieb das mal nach bugs...
*** make your own tools (wishlist :: thx)
jop liegt daran.
Hier der komplette Fix:
include.newsletter_edit.php Zeile 27-39
Hier der komplette Fix:
include.newsletter_edit.php Zeile 27-39
Code: Alles auswählen
if ($action == "news_create" && $perm->have_perm_area_action("news", "news_create")) {
$newsletter = $newsletters->create(i18n("-- new newsletter --"));
$idnewsletter = $newsletter->get("idnews");
$page->setReload();
} else if ($action == "news_duplicate" && $perm->have_perm_area_action("news", "news_create")) {
$newsletter = $newsletters->duplicate($idnewsletter);
$idnewsletter = $newsletter->get("idnews");
$page->setReload();
} else if ($action == "news_delete" && $perm->have_perm_area_action("news", "news_delete")) {
$newsletters->delete($idnewsletter);
$idnewsletter = 0;
$page->setReload();
}
Cool, der Fehler ist da schon seid biblischen Zeiten drin. Danke, korrigiert.
Gruß
HerrB
Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!
Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
so hab nochn Fehler gefunden. Der Messagetext des Newsletters wird escaped in die DB geschrieben aber beim auslesen bzw versenden nicht wieder deescaped.
Hier der Fix:
include.newsletter_edit.php @ 109
class.newsletter.php @ 224
MFG
Hier der Fix:
include.newsletter_edit.php @ 109
Code: Alles auswählen
$message = new cHTMLTextarea("message", stripslashes($newsletter->get("message")),80,20);
Code: Alles auswählen
$message = stripslashes($this->get("message"));
Mmmh? Das weist aber IMHO mehr auf einen Mangel in der verwendeten Klasse hin. Die Message wird über $newsletter->set("message", $message); gespeichert und über $newsletter->get("message") zurückgeholt.
Eigentlich sollte sich die Klasse, die set und get zur Verfügung stellt, darum kümmern. Gucke ich mir nochmal an. Danke.
Gruß
HerrB
Eigentlich sollte sich die Klasse, die set und get zur Verfügung stellt, darum kümmern. Gucke ich mir nochmal an. Danke.
Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!
Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
-
- Beiträge: 6284
- Registriert: Do 15. Mai 2003, 18:32
- Wohnort: Da findet ihr mich nie!
- Kontaktdaten:
ähm ein kommentar dazu:
set speichert den Wert genauso wie er übergeben wird, also bei einer Übergabe von \"test wird auch \"test in die DB geschriebene und genauso wieder zurückgegeben
grundsätzlich müssen alle werte, die von extern kommen mit stripslashes bearbeitet werden.
früher war es so, daß man (aus der faulheit heraus) einfach den externen Wert in das SQL-Statement gepumpt hat, und es hat eben "zufällig" funktioniert
set speichert den Wert genauso wie er übergeben wird, also bei einer Übergabe von \"test wird auch \"test in die DB geschriebene und genauso wieder zurückgegeben
grundsätzlich müssen alle werte, die von extern kommen mit stripslashes bearbeitet werden.
früher war es so, daß man (aus der faulheit heraus) einfach den externen Wert in das SQL-Statement gepumpt hat, und es hat eben "zufällig" funktioniert
Ähm, so ganz habe ich das noch nicht. Das Problem ist, dass wenn ich "Macs' Weinladen" eingebe, aufgrund des urlencode "Macs\' Weinladen" in der DB steht. urldecode wiederum belässt \', d.h. es kommt "Macs\' Weinladen" raus.
So war auch meine Frage gemeint: get und set sollten IMHO so gestrickt sein, dass das, was reingeht, auch wieder rauskommt (und das ist nicht der Fall).
Deine Aussage bedeutet, dass ich zwar Daten über set einfach so speichern kann, aber alles, was mit get aus der DB kommt, wieder mit stripslashes putzen muss - das soll so sein? Da fummele ich mir ja den Wolf...
Gruß
HerrB
So war auch meine Frage gemeint: get und set sollten IMHO so gestrickt sein, dass das, was reingeht, auch wieder rauskommt (und das ist nicht der Fall).
Deine Aussage bedeutet, dass ich zwar Daten über set einfach so speichern kann, aber alles, was mit get aus der DB kommt, wieder mit stripslashes putzen muss - das soll so sein? Da fummele ich mir ja den Wolf...
Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!
Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
-
- Beiträge: 6284
- Registriert: Do 15. Mai 2003, 18:32
- Wohnort: Da findet ihr mich nie!
- Kontaktdaten:
ähm das kann ich nicht bestätigen...
ich bin zu 99.999% sicher, daß das, was über set eingegeben wird, auch über get so zurückgeliefert wird
wäre das nicht der Fall hätte ich das bei meinen 230932094 Projekten, die die GenericDB auch einsetzen, gemerkt
vielleicht reden wir auch aneinander vorbei: ich meinte, daß wenn du folgendes hast:
es nicht funktionieren wird, da PHP über die magic_quotes ein $_GET["wert"] mit slashes versieht
d.h. wenn du externe Daten in die DB speichern willst, mußt du es immer mit
machen
ich bin zu 99.999% sicher, daß das, was über set eingegeben wird, auch über get so zurückgeliefert wird
wäre das nicht der Fall hätte ich das bei meinen 230932094 Projekten, die die GenericDB auch einsetzen, gemerkt
vielleicht reden wir auch aneinander vorbei: ich meinte, daß wenn du folgendes hast:
Code: Alles auswählen
$objekt->set("feld", $_GET["wert"]);
d.h. wenn du externe Daten in die DB speichern willst, mußt du es immer mit
Code: Alles auswählen
$objekt->set("feld", stripslashes($_GET["wert"]));
Nein eben nicht Ich meinte das gerade andersrum.Deine Aussage bedeutet, dass ich zwar Daten über set einfach so speichern kann, aber alles, was mit get aus der DB kommt, wieder mit stripslashes putzen muss - das soll so sein? Da fummele ich mir ja den Wolf...