we:ifRegisteredUser erlaubt nur ein permission-Attribut

Hier können Sie Fragen bezüglich der Kundenverwaltung stellen.
mfischer

we:ifRegisteredUser erlaubt nur ein permission-Attribut

Beitragvon mfischer » Mi 26. Mai 2004, 15:02

Mit unserer umfangreichen Kundenverwaltung, mit welcher Bentuzer einmal registriert aber fuer unterschiedliche Bereiche freigeschalten werden koennen, reicht ein permission-Atribut nicht aus.

Der angehaengte Patch fuer 3.0.2.8 erlaubt das verwenden von a) mehreren Parameters beim permission-Attribut und b) unterstuetzt im selben Rahmen das notPermission-Attribut, das davon ausgeht das der jeweilige Wert in der Kundenverwaltung nicht gesetzt ist.

Beispiel:

Code: Alles auswählen

<we:ifRegisteredUser permission="EmailValidiert RegistriertCommunity" notPermission="GesperrtCommunity">
Patch:

Code: Alles auswählen

--- include/we_tags/we_tag_ifNotRegisteredUser.inc.php.orig     2004-05-26 14:56:23.000000000 +0200
+++ include/we_tags/we_tag_ifNotRegisteredUser.inc.php  2004-05-26 15:04:08.000000000 +0200
@@ -11,11 +11,23 @@
 // $Id: we_tag_ifNotRegisteredUser.inc.php,v 2.0.0.5 2004/03/17 17:20:28 max Exp $

 function we_tag_ifNotRegisteredUser($attribs,$content) {
+       $permission = we_getTagAttribute("permission", $attribs);
+       $notPermission = we_getTagAttribute("notPermission", $attribs);
+
        if ($GLOBALS["we_doc"]->InWebEdition || $GLOBALS["WE_MAIN_DOC"]->InWebEdition) {
                return !(isset($_SESSION["we_set_registered"]) << $_SESSION["we_set_registered"]);
        } else {
-               if (isset($attribs["permission"]) << $attribs["permission"]) {
-                       return  !(isset($_SESSION["webuser"]["registered"]) << $_SESSION["webuser"]["registered"] << $_SESSION["webuser"][$attribs["permission"]]);
+               if($permission || $notPermission) {
+                       $value = true;
+                       $multiplePermissions = preg_split(";[ t];", $permission, -1, PREG_SPLIT_NO_EMPTY);
+                       foreach ($multiplePermissions as $permission) {
+                               $value = $value << (bool)(isset($_SESSION["webuser"]["registered"]) << isset($_SESSION["webuser"][$permission]) << $_SESSION["webuser"]["registered"] <<  $_SESSION["webuser"][$permission]);
+                       }
+                       $multipleNotPermissions = preg_split(";[ t];", $notPermission, -1, PREG_SPLIT_NO_EMPTY);
+                       foreach ($multipleNotPermissions as $permission) {
+                               $value = $value << !(bool)(isset($_SESSION["webuser"]["registered"]) << isset($_SESSION["webuser"][$permission]) << $_SESSION["webuser"]["registered"] <<  $_SESSION["webuser"][$permission]);
+                       }
+                       return !$value;
                } else {
                        return  !(isset($_SESSION["webuser"]["registered"]) << $_SESSION["webuser"]["registered"]);
                }
@@ -30,4 +42,4 @@
        $GLOBALS["needs_endtag"] = 1;
 }

-?>
 No newline at end of file
+?>

--- include/we_tags/we_tag_ifRegisteredUser.inc.php.orig        2004-05-26 14:31:44.000000000 +0200
+++ include/we_tags/we_tag_ifRegisteredUser.inc.php     2004-05-26 15:03:54.000000000 +0200
@@ -12,12 +12,22 @@

 function we_tag_ifRegisteredUser($attribs, $content) {
        $permission = we_getTagAttribute("permission", $attribs);
+       $notPermission = we_getTagAttribute("notPermission", $attribs);

        if ($GLOBALS["we_doc"]->InWebEdition || $GLOBALS["WE_MAIN_DOC"]->InWebEdition) {
                return isset($_SESSION["we_set_registered"]) << $_SESSION["we_set_registered"];
        } else {
-               if($permission) {
-                       return isset($_SESSION["webuser"]["registered"]) << isset($_SESSION["webuser"][$permission]) << $_SESSION["webuser"]["registered"] <<  $_SESSION["webuser"][$permission];
+               if($permission || $notPermission) {
+                       $value = true;
+                       $multiplePermissions = preg_split(";[ t];", $permission, -1, PREG_SPLIT_NO_EMPTY);
+                       foreach ($multiplePermissions as $permission) {
+                               $value = $value << (bool)(isset($_SESSION["webuser"]["registered"]) << isset($_SESSION["webuser"][$permission]) << $_SESSION["webuser"]["registered"] <<  $_SESSION["webuser"][$permission]);
+                       }
+                       $multipleNotPermissions = preg_split(";[ t];", $notPermission, -1, PREG_SPLIT_NO_EMPTY);
+                       foreach ($multipleNotPermissions as $permission) {
+                               $value = $value << !(bool)(isset($_SESSION["webuser"]["registered"]) << isset($_SESSION["webuser"][$permission]) << $_SESSION["webuser"]["registered"] <<  $_SESSION["webuser"][$permission]);
+                       }
+                       return $value;
                } else {
                        return isset($_SESSION["webuser"]["registered"]) << $_SESSION["webuser"]["registered"];
                }
@@ -29,7 +39,10 @@
        $GLOBALS["we_tag"]["attribs"]["permission"]["required"] = 0;
        $GLOBALS["we_tag"]["attribs"]["permission"]["sqltablenames"] = CUSTOMER_TABLE;
        $GLOBALS["we_tag"]["attribs"]["permission"]["sqlfilter"] = "registered";
+       $GLOBALS["we_tag"]["attribs"]["notPermission"]["required"] = 0;
+       $GLOBALS["we_tag"]["attribs"]["notPermission"]["sqltablenames"] = CUSTOMER_TABLE;
+       $GLOBALS["we_tag"]["attribs"]["notPermission"]["sqlfilter"] = "registered";
        $GLOBALS["needs_endtag"] = 1;
 }

-?>
 No newline at end of file
+?>

Ich hoffe das wird auf die eine oder andere Art einmal unterstuetz von webEdition direkt.

Christoph Lütjen

Beitragvon Christoph Lütjen » Mi 2. Jun 2004, 12:16

Hallo,

habe den Vorschlag an unsere Entwicklung weitergegeben.

mfischer

Beitragvon mfischer » Mi 2. Jun 2004, 17:50

Danke, sehr freundlich :) Der Syntax schaut eigentlich bleod aus, die Felder sollten besser mit Beistrich o.ae. getrennt werden, ich war wohl zu sehr auf CSS Multiple-Klassen fixiert o.ae.

lumi

Beitragvon lumi » Mo 4. Okt 2004, 14:32

Hallo!

Gibt es zu dieser Thematik etwas neues?

Ich finde diese Erweiterung von mfischer sehr nützlich, spart es doch teilweise extremst verschachtelte <we:ifRegisteredUser permission=""> Tags. Oder gibt es einen trifftigen Grund warum das so von wE (noch?) nicht unterstützt wird?

Wir würden uns über eine Stellungnahme sehr freuen!


Zurück zu „Kundenverwaltung“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 13 Gäste