Page 1 of 2

Modul CustomContent in v.1.8.1

Posted: Fri Jul 23, 2010 8:06 am
by misiu
Hallo,
ich nutzte immer das Modul CustomContent / FrontEndUsers, um Inhalt mit Benutzername/Passwort zu schützten. Das funktionierte bis zur Version 1.7.1 tadellos.

Benutzt habe ich immer diesen Mechanismus:

Code: Select all

{if $customcontent_loggedin > 0}
  Welcome <b>{$customcontent_loginname}</b><br/>
{else}
  <h1>You are not authorized to view this data</h1>
{/if}
Die Variable $customcontent_loggedin scheint leer zu sein oder nicht zu existieren.
Im FrontEndUsers wurde der Benutzter erfolgreich angemeldet.

Meine Frage an die Profis:
Wie kann ich den Fehler eingrenzen?

Grüße Oliver

Re: Modul CustomContent in v.1.8.1

Posted: Fri Jul 23, 2010 8:55 am
by NaN
Hallo und willkommen im Forum!

In der Modulhilfe des CustomContent Moduls werden zwei Varianten gezeigt, mit denen man den Loginstatus abfragen kann. Versuchs einfach mal mit der anderen ;)

Re: Modul CustomContent in v.1.8.1

Posted: Fri Jul 23, 2010 8:58 am
by misiu
Das habe ich auch schon probiert - leider ohne Erfolg.

Re: Modul CustomContent in v.1.8.1

Posted: Fri Jul 23, 2010 9:10 am
by NaN
Hast Du den Zwischenspeicher gelöscht und für die Seiten in denen der Login geprüft wird deaktiviert?

Wird FrontendUsers und CustomContent auch im Template aufgerufen? (ich schätze mal ja, hatte ja vorher funktioniert)

Sind denn die Module auch alle auf dem neuesten Stand?
Es gab Änderungen bei CMSms 1.8, die bei vielen Modulen zu Problemen geführt hatten, weil die noch auf Funktionen zugegriffen haben, die es jetzt nicht mehr gibt.

Bei der aktuellsten Version von FrontendUsers wird zusätzlich noch CGExtensions benötigt.

Re: Modul CustomContent in v.1.8.1

Posted: Fri Jul 23, 2010 9:16 am
by misiu
Alle Module sind auf den neusten Stand:

CGExtensions 1.19
CustomContent 1.5.3
FrontEndUsers 1.10.1

Mir ist grade aufgefallen, dass in FrontEndUser unter Users folgender Fehler angezeigt wird.

Code: Select all

Error

Unknown column 'A.id' in 'on clause'
Steht das im Zusammenhang mit den beschriebenen Problem?

Re: Modul CustomContent in v.1.8.1

Posted: Fri Jul 23, 2010 9:20 am
by NaN
Könnte durchaus sein.
Setz mal in der config.php $config['debug'] = true; und Schau Dir das Ergebnis im FrontEndUsers Modul und im Frontend nochmal an. Schau mal was dort evtl. für Fehler stehen.

Re: Modul CustomContent in v.1.8.1

Posted: Fri Jul 23, 2010 9:57 am
by misiu
Diese Notiz kam hinzu:
Error
Notice: Undefined index: admin_nav in /var/www/html/tmp/templates_c/FrontEndUsers^%%84^849^8492E002%%module_file_tpl%3AFrontEndUsers%3Berror.tpl.php on line 5

Unknown column 'A.id' in 'on clause'


hier mal die Debug Meldung:
Debug: (2.4999999999942E-5) - (1483968)

loading smarty

Debug: (0.008425) - (1908208)

loading adodb

Debug: (0.011939) - (2043184)

loading page functions

Debug: (0.019394) - (2365672)

loading content functions

Debug: (0.025458) - (2678120)

loading pageinfo functions

Debug: (0.027018) - (2729008)

loading translation functions

Debug: (0.029655) - (2823472)

loading events functions

Debug: (0.03277) - (2947072)

loading php4 entity decode functions

Debug: (0.038292) - (3288224)

done loading files

Debug: (0.057597) - (4370592)

(mysql): SELECT sitepref_name, sitepref_value from cms_siteprefs

Debug: (0.070248) - (4524392)

(mysql): SELECT * FROM cms_userplugins

Debug: (0.089673) - (5343552)

(mysql): SELECT * FROM cms_modules WHERE active = 1 ORDER by module_name

Debug display of 'End of include':(0.321718) - (13120096)
Debug: (0.323502) - (13067712)

Session found.  Moving on...

Debug: (0.323669) - (13068008)

Session found.  Moving on...

Debug: (0.325578) - (13071224)

(mysql): SELECT preference, value FROM cms_userprefs WHERE user_id = '1'

Debug: (0.340042) - (13747456)

Session found.  Moving on...

Debug: (0.340284) - (13748120)

Session found.  Moving on...

Debug: (0.340395) - (13748264)

before theme load

Debug display of 'Load Content Operations':(0.343507) - (13912968)
Debug display of 'End Load Content Operations':(0.360147) - (14790368)
Debug: (0.361204) - (14791424)

(mysql): SELECT content_id FROM cms_content WHERE default_content = 1

Debug: (0.362444) - (14793608)

(mysql): SELECT * FROM cms_content WHERE content_id = '15'

Debug: (0.372352) - (15198128)

(mysql): SELECT ug.user_id FROM cms_user_groups ug
                    WHERE ug.user_id = '1' AND ug.group_id = 1

Debug: (0.374957) - (15199688)

(mysql): SELECT DISTINCT permission_name FROM cms_user_groups ug INNER JOIN cms_group_perms gp ON gp.group_id = ug.group_id INNER JOIN cms_permissions p ON p.permission_id = gp.permission_id INNER JOIN cms_groups gr ON gr.group_id = ug.group_id WHERE ug.user_id = '1' AND gr.active = 1

Debug: (0.521601) - (15808648)

(mysql): SELECT htmlblob_id FROM cms_additional_htmlblob_users WHERE user_id = '1'

Debug: (0.522557) - (15811440)

(mysql): SELECT group_id FROM cms_user_groups WHERE user_id = '1'

Debug: (0.523422) - (15810512)

(mysql): SELECT htmlblob_id FROM cms_additional_htmlblob_users WHERE user_id IN (-1)

Debug: (0.524428) - (15810176)

(mysql): SELECT content_id FROM cms_content WHERE owner_id = '1'

Debug: (0.525248) - (15811912)

(mysql): SELECT user_id,content_id FROM cms_additional_users

Debug: (0.526608) - (15778824)

after theme load

Debug: (0.526848) - (15779600)

before populate admin navigation

Debug: (0.526965) - (15779880)

before menu items

Debug: (0.533685) - (15838408)

after menu items

Debug: (0.535136) - (15841304)

before syste modules

Debug: (0.536615) - (15851544)

before module menu items

Debug: (0.538184) - (15865200)

after module menu items

Debug: (0.54834) - (15906712)

after populate admin navigation

Debug: (0.548479) - (15906952)

before theme-y stuff

Debug: (0.551448) - (15907192)

after theme-y stuff

Debug: (0.553426) - (15921872)

(mysql): SELECT count(news_id) FROM cms_module_news n
                  WHERE status != 'published'
                    AND (( IFNULL(end_time, '1970-01-01 01:00:01')  = '1970-01-01 01:00:01') OR (end_time > '2010-07-23 11:53:11'))

Debug: (0.553971) - (15910544)

before notifications

Debug: (0.554323) - (15911400)

after notifications

Debug: (0.555079) - (15912968)

(mysql): SELECT version from cms_version

Debug: (0.559994) - (15983744)

(mysql): SELECT bookmark_id, user_id, title, url FROM cms_admin_bookmarks WHERE user_id = '1' ORDER BY title

Debug: (0.610101) - (16784424)

(mysql): SELECT * FROM cms_module_feusers_propdefn

Debug: (0.612129) - (16792152)

(mysql): SELECT * FROM cms_module_feusers_grouppropmap
          WHERE name = 'name' ORDER BY sort_key DESC

Debug: (0.620737) - (16977176)

(mysql): SELECT * FROM cms_module_feusers_grouppropmap
          WHERE name = 'vorname' ORDER BY sort_key DESC

Debug: (0.625047) - (16979200)

(mysql): SELECT * FROM cms_module_feusers_grouppropmap
          WHERE name = 'email' ORDER BY sort_key DESC

Debug: (0.654784) - (18122120)

(mysql): SELECT eh.tag_name, eh.module_name, e.originator, e.event_name, eh.handler_order, eh.handler_id, eh.removable FROM cms_event_handlers eh
        INNER JOIN cms_events e ON e.event_id = eh.event_id
        ORDER BY eh.handler_order ASC

Debug: (0.686836) - (18067608)

(mysql): SELECT * FROM cms_module_feusers_groups

Debug: (0.703898) - (18075968)

(mysql): SELECT A.*,count(D.userid) as loggedin FROM cms_module_feusers_users A LEFT OUTER JOIN cms_module_feusers_loggedin D
                  ON A.id = D.userid LEFT JOIN cms_module_feusers_belongs C ON A.id = C.userid WHERE  A.id = C.userid AND  groupid = '1' GROUP BY  A.id LIMIT 0, 100000

Debug: (0.735865) - (18132152)

(mysql): SELECT * FROM cms_module_feusers_groups

Debug: (0.745752) - (18185696)

(mysql): SELECT A.*,count(D.userid) as loggedin FROM cms_module_feusers_users A,cms_module_feusers_loggedin D LEFT JOIN cms_module_feusers_belongs C ON A.id = C.userid WHERE  A.id = D.userid AND  A.id = C.userid AND  groupid = '1' GROUP BY  A.id ORDER BY username LIMIT 0, 100
Error (1054): Unknown column 'A.id' in 'on clause'

Debug: (0.754145) - (18186032)

(mysql): SELECT count(id) as num FROM cms_module_feusers_users,cms_module_feusers_belongs WHERE id=userid AND groupid = '1'

Debug: (0.809671) - (18226752)

(mysql): SELECT count(userid) as count FROM cms_module_feusers_history

Debug: (0.812564) - (18229688)

(mysql): SELECT A.*,B.username
            FROM cms_module_feusers_history A,
                  cms_module_feusers_users B
            WHERE A.userid = B.id ORDER BY refdate DESC LIMIT 0,10

Debug: (0.878004) - (18229272)

(mysql): SELECT * FROM cms_module_feusers_groups

Debug: (0.921387) - (18553360)

(mysql): SELECT * FROM cms_module_feusers_groups

Debug: (0.932704) - (18563888)

(mysql): SELECT * from cms_module_templates WHERE module_name = 'FrontEndUsers' and template_name = 'notification_template'

Debug: (0.934359) - (18562760)

(mysql): SELECT COUNT(*) AS count FROM cms_module_feusers_tempcode

Debug: (1.112861) - (18652640)

(mysql): SELECT * from cms_module_templates WHERE module_name = 'FrontEndUsers' and template_name = 'feusers_loginform'

Debug: (1.123474) - (18655008)

(mysql): SELECT * from cms_module_templates WHERE module_name = 'FrontEndUsers' and template_name = 'feusers_logoutform'

Debug: (1.134077) - (18655624)

(mysql): SELECT * from cms_module_templates WHERE module_name = 'FrontEndUsers' and template_name = 'feusers_changesettingsform'

Debug: (1.144464) - (18657592)

(mysql): SELECT * from cms_module_templates WHERE module_name = 'FrontEndUsers' and template_name = 'feusers_forgotpasswordform'

Debug: (1.146411) - (18659488)

(mysql): SELECT * from cms_module_templates WHERE module_name = 'FrontEndUsers' and template_name = 'feusers_forgotpasswordemailform'

Debug: (1.148277) - (18660616)

(mysql): SELECT * from cms_module_templates WHERE module_name = 'FrontEndUsers' and template_name = 'feusers_forgotpasswordverifyform'

Debug: (1.163364) - (18677280)

(mysql): SELECT * from cms_module_templates WHERE module_name = 'FrontEndUsers' and template_name = 'feusers_lostunform'

Debug: (1.165645) - (18678136)

(mysql): SELECT * from cms_module_templates WHERE module_name = 'FrontEndUsers' and template_name = 'feusers_lostunform_confirm'

Debug: (1.178352) - (18687856)

(mysql): SELECT * from cms_module_templates WHERE module_name = 'FrontEndUsers' and template_name = 'feusers_viewuser'

Debug: (1.190011) - (18689576)

(mysql): SELECT * from cms_module_templates WHERE module_name = 'FrontEndUsers' and template_name = 'feusers_resetsession'

Re: Modul CustomContent in v.1.8.1

Posted: Fri Jul 23, 2010 12:46 pm
by NaN
Wie hast Du die Module aktualisiert?
Mit dem ModuleManager oder über FTP?

Weißt Du zufällig noch welche FrontendUsers Version Du vorher hattest?
Die Meldung "Unknown column 'A.id' in 'on clause'" gab es nämlich in einer älteren Version (aus dem Jahr 2009). Ich vermute mal, dass beim Update nicht alle Dateien fehlerfrei auf Deinem Server gelandet sind. Lade das FrontendUsers Modul einfach nochmal neu hoch.

Wenn Du den MenuManager verwendet hast, wird das nicht so einfach gehen.
Da musst Du erst die Zugriffsberechtigungen der Verzeichnisse und Dateien im Modulverzeichnis ändern.

In den Debug-Infos kann ich jetzt auf den ersten Blick keinen Fehler erkennen.

Die Meldung "Error Notice: Undefined index: admin_nav..." könnte auch mit anderen Modulen zusammenhängen. Z.B. Selfregistration oder CMSMailer. (frag nicht wieso, aber irgendwo hatte ich mal gelesen, dass eine Neuinstallation und -konfiguration das Problem behoben hat)

Eine Neuinstallation von FrontEndUsers könnte auch helfen.
Vielleicht war ein Fehler im Update-Skript.
Ich hoffe Du hast eine Sicherung der Datenbank gemacht, damit die User erhalten bleiben.

Re: Modul CustomContent in v.1.8.1

Posted: Fri Jul 23, 2010 1:03 pm
by misiu
Welche Version ich vorher hatte, kann ich leider nicht mehr sagen.
Ich meine es wäre die letzte gewesen. Ich nutzte dafür meist den ModulManager.
Ich werde mal heute FrontendUser neu installieren.

Ein Backup ist vorhanden - das macht doch jeder, oder? In den letzten 24 Stunden sind keine neuen User dazu gekommen.

Re: Modul CustomContent in v.1.8.1

Posted: Mon Jul 26, 2010 6:17 am
by misiu
So, nun habe ich das Modul FrontendUser neu installiert (direkt übers Filesystem).
Die Fehlermeldung:

Code: Select all

Unknown column 'A.id' in 'on clause'
ist leider nicht verschwunden.

Um zu meine ursprüngliche Frage zurückzukommen - Die zweite Methode von CustomContent funktioniert jetzt auf einmal. Das wäre für mich eine Lösung.

Gibt es noch andere Möglichkeiten Inhalt mit einer Authentifizierung über FEU zu schützten?

Re: Modul CustomContent in v.1.8.1

Posted: Mon Jul 26, 2010 11:21 am
by NaN
Das Modul AdvancedContent bietet die Möglichkeit Seiten nur für bestimmte FrontEndUsers Gruppen zugänglich zu machen (im Tab Optionen kann man dann einfach eine Gruppe auswählen).
So braucht man die Abfrage nicht im Template zu machen und kann ein und dasselbe Template verwenden.
Wenn eine Gruppe ausgewählt wurde, werden beim Speichern automatisch die Optionen "Zwischenspeichern" und "Seite kann durchsucht werden" deaktiviert.
Darüber muss man sich also auch keinen Kopf mehr machen.
Probiers einfach mal aus.

Re: Modul CustomContent in v.1.8.1

Posted: Mon Jul 26, 2010 11:25 am
by NaN
misiu wrote:
So, nun habe ich das Modul FrontendUser neu installiert (direkt übers Filesystem).
Bist Du sicher, dass die Dateien auch alle überschrieben wurden?
Wenn Du vorher den ModulManager verwendet hast, kann es sein, dass Du via FTP keine Dateien überschreiben kannst.

Re: Modul CustomContent in v.1.8.1

Posted: Mon Jul 26, 2010 11:39 am
by misiu
Doch direkt über SSH

Code: Select all

cd /var/www/html/modules/
rm -fr FrontEndUsers/
wget http://s3.amazonaws.com/cmsms/downloads/5767/FrontEndUsers-1.10.1.tar.gz
tar xvzf FrontEndUsers-1.10.1.tar.gz
chown -R apache.apache FrontEndUsers/
rm -f FrontEndUsers-1.10.1.tar.gz
fertig...

Re: Modul CustomContent in v.1.8.1

Posted: Wed Jul 28, 2010 12:25 pm
by nockenfell
NaN wrote: Das Modul AdvancedContent bietet die Möglichkeit Seiten nur für bestimmte FrontEndUsers Gruppen zugänglich zu machen (im Tab Optionen kann man dann einfach eine Gruppe auswählen).
So braucht man die Abfrage nicht im Template zu machen und kann ein und dasselbe Template verwenden.
Wenn eine Gruppe ausgewählt wurde, werden beim Speichern automatisch die Optionen "Zwischenspeichern" und "Seite kann durchsucht werden" deaktiviert.
Darüber muss man sich also auch keinen Kopf mehr machen.
Probiers einfach mal aus.
Bin dies gerade am Testen. Allerdings komme ich noch nicht auf den grünen Zweig. Meine Überlegung dazu:

- Ich weiss anhand dem Eintrag in den Optionen, ob der Inhalt geschützt ist oder nicht.
- Darauf aufbauend mache ich eine Abfrage im Template

Hier der Test-Code den ich im Moment verwende, jedoch noch nicht klappt:

Code: Select all

{if $content_obj.mProperties->mPropertyValues->feu_access == 1 and $ccuser->loggedin() == 0}
<h1>Zugriff verweigert</h1>
<p>Sie haben keinen Zugriff auf diese Seite. Bitte melden Sie sich an:</p>

{FrontEndUsers form="login"}

{else}

Sie sind eingeloggt oder müssen sich nicht einloggen

{/if}
Ich komme im Moment noch nicht auf den Wert von "feu_access"

@NaN: Hast du ein Beispiel-Code für den FEU-Zugriff? Ich möchte für FEU-Zugriff wie normalen Zugriff das gleiche Template verwenden.

Re: Modul CustomContent in v.1.8.1

Posted: Wed Jul 28, 2010 1:46 pm
by NaN
Also eigentlich brauchst Du ja bei AdvancedContent keine Abfrage mehr im Template.
Du kannst einfach auf eine öffentliche Seite umleiten (die nicht im Menü sichtbar ist).
Kann man ebenfalls im Tab Optionen auswählen.
Und auf dieser Seite kannst Du ja einfach als Inhalt "Sie sind nicht berechtigt ... usw." verwenden.
Du kannst bei AdvancedContent auch einstellen, ob auf der Zielseite das Login-Formular angezeigt werden soll, oder nicht (bietet sich natürlich nur an, wenn die Seite generell nur für eingeloggte User ist - also unabhängig von der Gruppe)
Du kannst das aber auch alles im Inhalt der Zielseite selber machen.

Aber um Deine Frage nach dem feu_access zu beantworten:

1. Der Syntax bei {$content_obj} ist falsch.
   Richtig wäre {$content_obj->mProperties->mPropertyValues.feu_access}

ABER:

2. feu_access beinhaltet nur die IDs der Usergruppen durch Semikolon getrennt
   D.h. {if $content_obj->mProperties->mPropertyValues.feu_access == 1}
   wird nur dann eintreten, wenn auch wirklich nur eine Usergruppe ausgewählt wurde
   und diese die ID 1 hat.
   Also der reine Login-Status lässt sich darüber nicht abfragen, sondern nur, ob die Seite öffentlich
   oder nur für bestimmte Gruppen ist.

Also bei AdvancedContent wird der Inhalt automatisch nur dann angezeigt wenn man zu der ausgewählten Gruppe gehört. Da muss man nichts abfragen. Wenn man nicht eingeloggt ist, hat man entweder einfach keinen Inhalt oder kann das Login-Formular an dieser Stelle anzeigen lassen oder wird umgeleitet auf eine ausgewählte Seite und zeigt dort entweder deren Inhalt oder das Login-Formular an.