Neuigkeiten:

moziloCMS verwendet Cookies. Wenn Sie auf unserer Seite weitersurfen, stimmen Sie der Cookie-Nutzung zu Datenschutzerklärung
moziloCMS Layouts
moziloCMS Plugins

Hauptmenü
-Menü

Beiträge anzeigen

Dieser Abschnitt erlaubt es dir, alle Beiträge anzusehen, die von diesem Mitglied geschrieben wurden. Beachte, dass du nur Beiträge sehen kannst, die in Teilen des Forums geschrieben wurden, auf die du aktuell Zugriff hast.

Beiträge anzeigen-Menü

Themen - mhsob

#1
Hallo allerseits,

jetzt hat's bis zur Version 2.0 doch nicht besonders lange gedauert. Es wurde munter herumoptimiert und auch gleich noch ein kleiner Feature-Wunsch von rolinux eingebaut (der "alte" Thread von der Nicht-Plugin-Ur-Version bis zum Plugin v1.0 ist hier zu finden).
Und hier geht's direkt zur Plugin-Downloadseite.

Neue Funktionen gegenüber v1.0:
  • In der Zugriffsliste ist jetzt der Benutzer "any_login" erlaubt (Kategorie/Seite sichtbar für jeden registrierten Benutzer)
  • Es wurden zwei Mechanismen zur Verwendung des aktuell angemeldeten Benutzers z.B. durch andere Plugins implementiert
  • Passwörter können jetzt auch durch die Benutzer selbst geändert werden, wenn der Admin dies für den jeweiligen Benutzer zulässt
  • Es wurde ein kleines Formular für die MD5-Verschlüsselung von Passwörtern hinzugefügt, somit muss dafür keine externe Seite bemüht werden

Im Detail wurden folgende Änderungen durchgeführt (Auszug aus doku.html):
Version 2.0
- Bugfix: vergessenes {access_control|doku} aus Plugin-Dropdown-Liste bei Inhaltsseitenbearbeitung
  gelöscht
- Performance verbessert
  Die accesslist wird für aktuellen Benutzer am Anfang gleich auf die für ihn freigeschalteten
  Kategorien/Inhaltsseiten gekürzt -> 1x etwas mehr Verarbeitungsaufwand, bei den wiederholten
  Folgeaufrufen ist dann deutlich weniger Stringsuche nötig
- Wird für eine Seite der Benutzer "any_login" angegeben, so muss fuer die Anzeige der Seite
  einfach nur irgendein registrierter Benutzer angemeldet sein.
- Plugin-Funktion zur Rückgabe des verifizierten aktuell angemeldeten Benutzers implementiert
  Der Name kann auf einer Seite ausgegeben werden oder über als Teil des Aufrufs an andere Plugins
  übergeben werden.
- Implementierung einer sehr einfachen "API", welche die Verwendung des aktuell angemeldeten
  Benutzers in anderen Plugins ermöglicht.
- Erweiterung der Befehlssyntax um ein Formular zur Änderung des Benutzerpassworts im Frontend
  (vom Admin für jeden Benutzer extra freischaltbar)
- Erweiterung der Befehlssyntax um ein kleines Formular zur MD5-Codierung von Passwörtern
- Erweiterung der Doku im Backend und Aufnahme der Dokus für die Benutzer- und Zugriffsliste
  in den Plugin-Beschreibungstext (kann in Version 1.1 aus den eigentlichen Eingabefeldern gelöscht
  werden)
- Im Vergleich zu v1.0 muss nicht mehr für einen Benutzer eine Kategorie alleine extra freigegeben
  werden, wenn er für die betreffende Kategorie inkl. einer Unterseite freigeschaltet ist.
Das Update v1.0 auf v2.0 ist sehr unspektakulär:
  • Alle "alten" Dateien mit denen aus dem neuen Archiv überschreiben, die Datei plugin.conf belassen
  • Optional aufräumen: Im Backend können aus Benutzer- und Zugriffsliste die Kommentarzeilen größtenteils entfernt werden, da die Doku jetzt in der eigentlichen Beschreibung im Backend enthalten ist

Wenn Ihr an weiteren Neuigkeiten bzgl. access_control interessiert seid, dann beobachtet einfach diesen Thread - ich werde mich voraussichtlich auch bei Folgeversionen hier melden...

Viel Spaß mit dem Plugin!
Manfred
#2
Hallo an die Mozilo-Entwickler,

es handelt sich hierbei nicht um einen Feature-Wunsch, sondern der Wunsch geht in Richtung Doku.

Die Haupt-index.php lädt sich die template.html aus dem Layout rein und ersetzt in dieser gewisse Platzhalter wie Menü oder Suchfeld. Dann gibt es die Textdateien mit dem Seiteninhalt, die in geeigneter Weise in HTML-Code umgewandelt werden und dann im content-Bereich der template.html landen. Schließlich kommen noch benutzerdefinierte Syntaxelemente und Plugins mit rein. Wer wird vor wem abgearbeitet, können Syntaxelemente im Plugin-Argument verwendet werden oder umgekehrt etc.?
Natürlich kriegt man alles durch Probieren raus, aber vielleicht wär's für den ein oder anderen ganz hilfreich, wenn's da eine einfache Info gäbe.

Vielleicht gibts ja sowas schon?

Grüße
Manfred
#3
Hallo!

Erstmal war ich überrascht, dass man auch ohne Probleme Plugins ineinander verschachteln kann - genial programmiert!

Nun bin ich aber auf ein Problem gestoßen: <script></script>-Bereiche werden ja in der Haupt-index.php erstmal ersetzt, da sie ja z.B. javascript-Code und somit {} enthalten könnten, die dann fälschlicherweise als Plugin-Aufruf interpretiert würden. Tiefer bin ich nicht eingestiegen... Dies führt aber bei der Verschachtelung zu einem Problem:
Bei dem Aufruf {plugin1|{plugin2|xyz}} könnte z.B. plugin1 ein Plugin zum Ein-/Ausblenden von Seitenteilen sein und Plugin2 eine Slimbox-Galerie, die eben auf Mausklick ein- oder ausgeblendet wird. Zum Ein-/Ausblenden ändert man mit javascript das css-"display"-Attribut und Slimbox includiert auch javascripts für seine Funktionalität. Nun passiert es, dass im erzeugten HTML-Quellcode die includes von plugin2 einwandfrei enthalten sind, das erste include von plugin1 aber durch den Inhalt des ersten Includes von plugin2 ersetzt wird, etc. Es funktioniert also in diesem Fall die Rück-Ersetzung nicht.

Vielleicht ist das Problem so speziell, dass der Rat einfach "Lass es sein..." oder der Kommentar "Was issn das für ein Unsinn?" ist.
Als Workaround hab ich jetzt vor {plugin1|{plugin2|xyz}} ein {plugin1|init} eingefügt, welches die nötigen javascripts zurückgibt, damit es im eigentlichen Plugin-Aufruf keine <script>-Bereiche mehr gibt. Nachteil ist, dass es bei der eigentlichen Plugin-Rückgabe des "äußeren" Plugins keine alternativen <script> und <noscript>-Bereiche mehr geben kann.

Vielleicht gibt's eine andere Lösung, vielleicht ist's einfach nur eine Feststellung und die Weitergabe der Erfahrung an die Mozilo-Entwickler. Das mit der Plugin-Schnittstelle ist auf alle Fälle einfach und total genial gelöst!

Grüße
Manfred
#4
Hi,

ich hab eine Weile schon die Nightly-Version vom 28.03.2010 "produktiv" genutzt. Heute hab ich mir die Arbeit gemacht, manuell auf 1.12.beta1 upzudaten.

Was mir am unangenehmsten aufgefallen ist: alles, was zwischen { und } steht, wird gleich als Plugin gedeutet und damit als fehlerhaft dargestellt. Ich habe in einigen Seiten C-Code zitiert, und da braucht man {} wie auch bei PHP zum Bilden von Blöcken. Natürlich funktionierts mit ^{ und ^}, aber das ist umständlich, wenn man mehrere zig Zeilen Code korrigieren muss. Das war bei der Nightly auch nicht so.

Ich werd wahrscheinlich auch mal ein Slimbox-Galerie-Plugin online stellen, wenn die 1.12 mal ausgegoren ist.

Grüße
Manfred
#5
Hallo allerseits,

ich bin vor ein paar Wochen nach langer CMS-Suche für eine private Homepage auf Mozilo gestoßen und es hat mir irgendwie sofort zugesagt, da ich selbst ein paar PHP-Kenntnisse habe und mich die einfachsten Datenbank-CMS mit weit über 2000 Dateien auf dem Server einfach überrannt haben. Nach einer gewissen Einarbeitungszeit habe ich jetzt sogar das Gefühl, das Mozilo-Prinzip zu verstehen. Und im Forum wird man nach Anmeldung auch gleich ganz nett begrüßt!

Was mir allerdings sehr abgeht, ist ein (einfacher) Zugangsschutz für bestimmte Seiten, der

  • Anmelden / Abmelden von verschiedenen registrierten Benutzern mit Benutzername / Passwort ermöglicht
  • den angemeldeten Benutzer zumindest bis zum Schließen des Browsers angemeldet lässt (also keine ständige Passwortabfrage wie der Zugangsschutz im aktuellen Nightly verlangt)
  • je nach angemeldetem Benutzer entweder ganze Kategorien oder auch nur Seiten innerhalb einer Kategorie sperrt
  • gesperrte Seiten erst gar nicht im Menü anbietet ("...warum hab ICH auf ... und ... und ... auf Deiner Homepage keinen Zugriff?" & was der Gelegenheits-Hacker nicht weiss, macht ihn nicht heiss)
  • die Verwaltung der Benutzer in einer einfachen Textdatei ermöglicht, man sollte aber nur gesperrte Kategorien / Seiten explizit mit den freigeschalteten Benutzern angeben müssen)
  • nicht durch den Browser manipulierbar ist (wie z.B. Cookies)
  • bei Aufruf von gebookmarkten geschützten Seiten diese unmittelbar nach dem Login anzeigt, ohne ein weiteres Mal das Bookmark aufrufen zu müssen
  • immer den Namen des angemeldeten Benutzers anzeigt und diesem auch ein explizites Abmelden ermöglicht

Daher habe ich in die Nightly-Version (so vom 19.02.2010 oder so) einen Zugangsschutz codiert (wollte wissen, ob ich das so hinbringe, wie ich mir das vorstelle), der nach folgendem Prinzip arbeitet:

  • Die Login-Felder inkl. Anmeldebutton befinden sich (im Template wählbar) z.B. zwischen Menü und Suchfeld, der Stil entspricht dem Suchfeld
  • Die zugelassenen Benutzer für bestimmte Bereiche sowie die Anmelde-Passworte sind in zwei Textdateien abgelegt (in einem extra Verzeichnis - evtl. Schutz über .htaccess)
  • Ein korrekt angemeldeter Benutzer wird in einer Session-Variable gespeichert (das wollten die Mozilo-Coder bei ihrem Login explizit nicht, da es evtl. in seltenen Fällen zu Problemen kommen kann)
  • Im Wesentlichen wird in derjenigen Funktion in der index.php gefiltert, welche entsprechend der Verzeichnisstruktur im "Kategorien"-Verzeichnis die Kategorien bzw. Seiten innerhalb einer Kategorie ermittelt. Diese Filterroutine (unmittelbar vor Rückgabe der Liste eingebaut) gibt nur DIE Seiten zurück, für welche kein Zugangsschutz-Eintrag besteht bzw. für welche der Benutzer eingetragen ist. Andere Seiten existieren dann für Mozilo gar nicht - sowohl der Menüeintrag taucht nicht auf als auch der Direktaufruf der (eben "nicht existenten") Seite ist nicht möglich.

So siehts aus:



Wie wird der Zugangsschutz eingebaut / was muss geändert werden? Eigentlich gar nicht viel...
(Grundlage ist das Nightly-Preview auf Version 1.12)

  • /index.php: Da der Zugangsschutz etwas tiefer in Mozilo eingreift (ich wollte wie gesagt keine geschützten Seiten, von deren Existenz aber jeder weiss), habe ich die index.php verändert. Oberhalb und unterhalb von Abschnitten, die von mir stammen, befinden sich /**AC**/-Kommentare (AccessControl). Alle eingefügten Codeblöcke (insgesamt nur 5 / eigentlich nur 4!) sind kommentiert, auch eine Info zum richtigen Einfügeort ist im Kommentar enthalten. WICHTIG für Skeptiker: In der index.php muss nichts gelöscht oder verändert, sondern nur zusätzlicher Code ergänzt werden!
  • /layouts/xxx/template.html: Hier muss das Login-Formular eingebaut werden (ich habs im "MoziloCMS 2009" eingebaut, innerhalb <!--AC--> Tags
  • /access_control/: dieses Verzeichnis mit Unterverzeichnis /safedir (letzteres kann z.B. mit .htaccess geschützt werden) wird aus der ZIP-Datei ins Basis-Verzeichnis kopiert (da wo auch "admin", "cms", etc. liegen)
Wahrscheinlich funktioniert das alles erst ab Version 1.12 (oder eben dem aktuellen Nightly), da jetzt im Browser genialerweise nicht mehr vor den Kategorien/Seitennamen die Nummern stehen (professionell! das hat mir bisher auch nicht so gefallen, da nicht Suchmaschinenfreundlich...) und dies wird der ganzen Erweiterung zugrundegelegt

Die "Benutzerverwaltung" muss vorerst über die beiden Dateien /access_control/safedir/ac_accesslist.txt und /access_control/safedir/ac_users.txt erfolgen (Texteditor!), der Aufbau der Einträge ist in der jeweiligen Datei erklärt.

Ich hab vorübergehend mal eine Demo-Installation mit zwei Benutzern (user1/pass1 und user2/pass2) aufgesetzt (so auch in der ZIP-Datei enthalten), die folgende Struktur enthält:
(die Demo-Installation befindet sich auf http://engineering.square7.ch/mozilodemo)

Willkommen
|- Willkommen
|- Kontakt
|- Eine Galerie
offene Kategorie
|- offene Seite
|- geschützte Seite (NUR user1 hat Zugriff)
geschützte Kategorie (user1 UND user2 haben Zugriff)
|- Standardseite


Setzt, wenn ihr angemeldet seid, auch mal auf einer geschützten Seite ein Bookmark, meldet Euch ab und ruft das Bookmark auf. Meldet Euch dann an.

Gebt bitte Feedback zu der Lösung, da ich das ganze relativ bald gerne "produktiv" einsetzten will.
Mich würde sehr freuen, wenn eine derartige Loginlösung mit den genannten Features in Mozilo aufgenommen würde (auch wenn sie auf Sessions basiert...) - auch in anderen Forumsbeiträgen sieht man, dass durchaus einige Nutzer einen Teil ihrer Internetpräsenz sichern wollen.

Zum Thema "Plugins in Version 1.12":
Ich habe auf die Schnelle keine Möglichkeit gesehen, den Eingriff in die index.php über die neue Plugin-Schnittstelle vorzunehmen - vielleicht ist da jemand anders fitter!

Und: Mozilo ist einfach GEIL!

Grüße
Manfred
#6
mozilo allgemein / Wann kommt Version 1.12 (Beta)?
14. Februar 2010, 19:29:03
Hallo allerseits!

Ich will mich schon lange überwinden, mal wieder unsere private Homepage neu aufzusetzen. Mehr durch Zufall bin ich auf Mozilo gekommen. Das Konzept gefällt mir sehr gut - ich habe für mich selbst in PHP einen Terminplaner und ein Rezepte-Verzeichnis programmiert, für die ich alle Daten in Textdateien statt in einer Datenbank ablege. Vorteile: einfaches Backup und das Gefühl, jederzeit Herr der Lage zu sein.
Ich habe nun schon verschiedene Artikel in den Foren gelesen, und da wurde bzgl. einfacher Zugangskontrolle und externer Links in den Kategorien auf Version 1.12 verwiesen. Wann ist die denn soweit, dass sie zum Betatest freigegeben wird? Früjahr, Sommer, Herbst 2010?

Grüße
Manfred