MyXoops Forum

Aw:: Permissions vs. xoopsModuleConfig [Entwicklung allgemein] - myXOOPS German Support

frankblack

"myXOOPs"-Profi
Gepostet am:14.05.2009 22:24
frankblack
frankblack Offline (Show more)
"myXOOPs"-Profi
Posts: 747
Since: 19.04.2006
#5

Aw:: Permissions vs. xoopsModuleConfig

An der Stelle merci vielmals für die Mühe die du dir immer machst. Und nach dem ich dich genug gebauchpinselt habe: kennst du vielleicht ein Modul wo ich die Benutzung von $gperm_handler->getObjects($criteria, true) nachschauen könnte? Bin halt nur ein copy'n'paste-Programmierer.

edit: achso, natürlich nur bitte simple Code-Beispiele und nicht wie bei cbb LOL
... is gone with the wind ...

alfred

Administrator
Gepostet am:14.05.2009 22:21
alfred
alfred Offline (Show more)
Administrator
Posts: 7619
Since: 06.12.2004
#4

Aw:: Permissions vs. xoopsModuleConfig

aja, naja die Funktion lässt sich etwas modifizieren

nutze eben nicht $gperm_handler->checkRight für eine einzelne Abfrage sondern $gperm_handler->getObjects($criteria, true) für das auslesen aller Berechtigungen. Mit dem true hast du dann die Berechtigungen als array, das criteria kannst du dir entsprechend was du brauchst anpassen.

Zitat:
2. Wenn ich den Flash-Uploader in meinem Modul benutze, bin ich beim Verarbeiten des Uploads für einen Moment "quasi" kein angemeldeter Benutzer (also Gast) mehr. Sollte ich aber den Gästen keinen Modulzugriff gewährt haben, schlägt der Upload bzw. die Weiterverarbeitung fehl.


mh, verstehe, allerdings geht das dann nur, wenn die xoopseigene common.php nicht mit geladen wird.
Werd mal die Tage drüber nachdenken, ob es da was sinnvolleres gibt

Advertisement

Gepostet am:0
Advertisement (Show more)
Posts: 0
Since: 0


Hier könnten Sie Ihre Anzeige aufgeben!
Bitte kontaktieren Sie uns, um mehr darüber zu erfahren.

frankblack

"myXOOPs"-Profi
Gepostet am:14.05.2009 21:53
frankblack
frankblack Offline (Show more)
"myXOOPs"-Profi
Posts: 747
Since: 19.04.2006
#3

Aw:: Permissions vs. xoopsModuleConfig

Zitat:
ansonsten wird doch die Konfiguration nur einmal je aktiven Modul eingelesen.


Wird sie? Wenn ich mich innerhalb eines Moduls von Seite zu Seite bewege wird folgendes aus der Datenbank gezogen:

SELECT FROM config WHERE (conf_modid '5'ORDER BY conf_order ASC


D. h. für mich die Konfigurationsdaten sind innerhalb des Moduls IMMER da, egal auf welcher Seite. Oder habe ich dich da missverstanden?

Folgendes sind meine Probleme:

1. Das Submenü zu meinem Modul ist recht kompliziert, weil viele unterschiedliche Berechtigungen abgefragt werden. Wenn ich jetzt das Berechtigungsmanagement von XOOPS nutze über $gperm_handler->checkRight wird jedes Mal eine Datenbankabfrage ausgelöst. Beim Abfragen von $xoopsModuleConfig wird immer nur aus einem "modul"omnipräsenten Array gelesen, welches meines Wissens nur eine Datenbankabfrage benötigt. Daher meine Frage: bin ich einfach nur unfähig das Berechtigungssystem zu nutzen ohne gleiche mehrere Datenbankabfragen zu erzeugen oder ist es EINFACH SO? Wenn es einfach so ist, "ärgere" ich mich halt nur über die Inkonsistenz der Core-Programmierung. Warum werden einmal bei group_multi die Gäste mit einbezogen und einmal nicht?

2. Wenn ich den Flash-Uploader in meinem Modul benutze, bin ich beim Verarbeiten des Uploads für einen Moment "quasi" kein angemeldeter Benutzer (also Gast) mehr. Sollte ich aber den Gästen keinen Modulzugriff gewährt haben, schlägt der Upload bzw. die Weiterverarbeitung fehl. Ich bin deswegen kurzfristig ausgeloggt, weil ich im Uploadskript irgendetwas an den Browser zurückschicken muss und sei es nur ein Leerzeichen. Dieses Leerzeichen muss ich aber nur ausgeben, damit Mac-User auch den Flash-Uploader nutzen können, da Flash-Plugin für Mac einen Bug hat. --- muss mal nen absatz machen ---

OK, habe ich mir gesagt, es ist wie es ist. Vielleicht kann ich mein Problem aber so lösen, dass obwohl Gäste Modulzugriff haben, das Modul NICHT im Hauptmenü angezeigt wird ohne dass ich mich mit einer smarty-Abfrage behelfen muss. Aber das funktioniert nicht aus dem Modul heraus, weil auch aus anderen Modulen heraus das Hauptmenü mit meinem Modul angezeigt wird. Über attribut-bedingte CSS-Formate und einem winzig kleinen Modul-Block der auf jeder Seite angezeigt wird, könnte ich es das regeln, aber das funktioniert auch nicht mit allen Browsern.

Ich hoffe, dass war einigermaßen verständlich?
... is gone with the wind ...

alfred

Administrator
Gepostet am:14.05.2009 20:20
alfred
alfred Offline (Show more)
Administrator
Posts: 7619
Since: 06.12.2004
#2

Aw:: Permissions vs. xoopsModuleConfig

hm ja, was willst du machen, evtl. kommen wir da so eher zu einem Ziel. ansonsten wird doch die Konfiguration nur einmal je aktiven Modul eingelesen.

frankblack

"myXOOPs"-Profi
Gepostet am:13.05.2009 18:47
frankblack
frankblack Offline (Show more)
"myXOOPs"-Profi
Posts: 747
Since: 19.04.2006
#1

Permissions vs. xoopsModuleConfig

So schön und nützlich die Berechtigungsverwaltung bei XOOPS auch ist, ressourcenschonend ist sie auf keinen Fall.

Meine xoops_version.php ist mittlerweile ziemlich kompliziert geworden durch unterschiedliche Berechtigungen die regeln was als Submenü im Hauptmenü angezeigt werden soll. Dadurch dass die Berechtigungen abgefragt werden, wird auch jedes Mal eine Datenbankabfrage erzeugt.

Weit weniger (11 in meinem Fall) Datenbankabfragen wird durch die Nutzung des Arrays xoopsModuleConfig gebraucht. Bei jedem Aufruf einer Modulseite wird dieses Array eh eingelesen. Einzig negativer Punkt ist, dass man in der xoops_version.php group_multi benutzen kann, ich aber group_multi nicht sagen, dass Gäste auch mit einbezogen werden sollen.

Lange Rede kurzer Sinn: Gibt es eine bessere Methode der Nutzung der Permissions-Tabelle?

Noch ne Frage: Für meine Zwecke wäre es sinnvoll gewesen, dass hasMain nicht in der Tabelle präfix_modules abgelegt wäre (denn den Wert kann ich zur Laufzeit nicht beeinflussen), sondern auch eine Modulkonfiguration wäre. In meinem speziellen Fall muss ich eine Möglichkeit vorsehen für Gäste den Eintrag im Hauptmenü auszublenden OBWOHL Gäste Modulzugriff haben. Das hängt mit einem Bug in einer Third-Party-Software (Flash-Browser-Plugin) zusammen. Sollte ein Gast Modulseiten per URL anspringen, kann ich ihn dann immer noch zurückschicken. Es sind also allein optische Gründe für folgende Frage: Kann ich auf irgendeine Weise den Menüeintrag ausblenden? Ärks, nein kann ich nicht, da der Menüeintrag auch in anderen Modulen eingeblendet würde. Müssen sich die Nutzer meines Moduls halt mit smarty behelfen. seufz

edit: bzgl. group_multi ist mir noch etwas aufgefallen. Wenn man die Einstellungen für das Modul ändern will ist op = showmod, möchte man die Systemeinstellungen ändern ist op = mod. So weit so einleuchtend, was ich aber nicht verstehe ist warum case group_multi in beiden Fällen voneinander abweicht.
Für Modulpräferenzen gilt folgender Code:
$ele = new XoopsFormSelectGroup($title$config[$i]->getVar('conf_name'), false$config[$i]->getConfValueForOutput(), 5true);


Der dritte Wert bestimmt, ob Gäste in dieser Liste mit aufgenommen werden sollen. In diesem Fall: NEIN. Wieso ist das hier anders geregelt als bei den Systemeinstellungen? Versteh einer die Entwickler...
... is gone with the wind ...
Diesen Thread durchsuchen:  1 Anonyme Benutzer

Aktuell aus dem Forum

Forum Thema Antworten Views Letzter Beitrag
Modulentwicklung New Xoops Xcreate Module 0 5319 26.11.2025 15:22
efkan Gehe zum letzten Beitrag
Modulentwicklung XOOPS Custom Field Module 1 1810 24.11.2025 11:21
Goffy Gehe zum letzten Beitrag