[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
REDAXO Forum • NEU: Addon TVSFEUser - Frontend-User-Login
Seite 1 von 5

NEU: Addon TVSFEUser - Frontend-User-Login

Verfasst: 31. Aug 2010, 16:01
von michaelwandel
Hi,

habe mal ein recht komfortables Addon umgesetzt, mit dem man bestimmte Bereiche mit Zugangsdaten schützen kann.

Download und weitere Infos hier: http://www.redaxo.de/180-0-addon-detail ... don_id=784

Es sollte soweit laufen, schaut doch mal nach sicherheitsrelevanten Bugs oder natürlich nach Verbesserungsmöglichkeiten ;-)

Gruß, Michael :)

Kleiner Bug drin ;-)

Verfasst: 1. Sep 2010, 15:56
von michaelwandel
Ok,

der erste Bug schon aufgetaucht, sobald man einmal eingeloggt ist hat der Benutzer auf alle geschützten Bereiche zugriff, ich werde schnellstmöglich ein Update nachlegen ;-)

Gruß, Michael

Bufgbehoben!

Verfasst: 1. Sep 2010, 16:15
von michaelwandel
So, jetzt gehts richtig, danke an Saskia ;-)

Download und weitere Infos hier: http://www.redaxo.de/180-0-addon-detail ... don_id=784

Gruß, Michael :)

Verfasst: 23. Sep 2010, 12:32
von Richard.Laing
hi michael

was mir aufgefallen ist natürlich erst als ich schon viele user drin hatte ...
was ist wenn ein neuer geschützter bereich (kategorie) dazu kommt dann müß ich allen usern einzelnt das recht dazu geben... kann man da evtl. noch eine checkbox etc. rein machen (beim user) die besagt für alle geschützten bereiche oder so?. (wenn zeit dafür über ist)

stelle mir das gerade spassig vor 500 user und es kommt für alle eine neue kategorie dazu...
gruß richy

Verfasst: 23. Sep 2010, 12:35
von michaelwandel
Hi Richy,

ja sowas in der Richtung dachte ich auch schon, sozusagen auf der 1. Seite ein "Rechte allen Usern zuweisen" ;-) Das sollte schnell machbar sein, muß meine aktuelle Version eh mal wieder posten da pack ich das mal mit rein :-)

Gruß, Michael :)

Verfasst: 20. Okt 2010, 13:46
von Frezl
Hey Michael,

danke, dass du dieses AddOn geschrieben hast. Leider komm ich damit überhaupt nicht zurecht :-P

Seh ich das richtig: Auf der Seite "Zugriffsrechte" markier ich die Bereiche, die geschützt werden sollen?
Mein Problem ist dabei, dass nur Kategorien auftauchen. Ich würde aber gerne eine einzelne Seite schützen können...
Auf der Seite "Benutzer" hab ichs nicht geschafft, einen Benutzer anzulegen :-P Da fehlt irgendwie der Button, mit dem ich die Eingaben speichern kann. Und in der Auswahlbox "Rechte" gibts auch nix auszuwählen.

Was mach ich falsch?

Viele Grüße,
Frezl

// EDIT:
Info:
REDAXO: 4.3.0
PHP: 5.2.12-nmm2

Verfasst: 21. Okt 2010, 12:35
von michaelwandel
Hi Frezl,

mmh, ok, ich muss da die "Unterseiten" mal mit einbinden ;-) Denn genau jetzt brauche ich das auch :-D

Auf der Benutzer-Seite siehst Du nicht den "Speichern" bzw. "Abbrechen"-Knopf wenn Du einen neuen Benutzer versuchst anzulegen (Blaues +-Symbol oben links ;-) ) ?

Mh komisch, also unter 4.3.1 und 4.2.1 läuft es einwandfrei, wenn du die 4.3.0 benutzt solltest Du eh updaten aber daran kann es eigentlich nicht liegen.

Gruß, Michael

Verfasst: 21. Okt 2010, 13:05
von Frezl
Hey Michael,

vielen Dank für deine Antwort. Hab dir mal den Screenshot der Seite angehängt. Das einzige blaue Symbol oben links ist das, mit dem man das Formular öffnet. Aber dann fehlen tatsächlich die Buttons, um das Formular zu speichern.

http://www.frederikheld.de/shared/embed/tvsfeuser.jpg

Was das Einbinden der Unterseiten angeht: Es wär suuuper cool, wenn du das übers Wochenende einbinden könntest! Ich brauch die Funktion nämlich dringend und hab bis jetzt kein anderes brauchbares AddOn dieser Art gefunden.

Viele Grüße und herzlichen Dank,
Frezl

Verfasst: 22. Okt 2010, 08:54
von michaelwandel
Moin Fred,

habe mir dasa nochmal angeschaut, das Addon zeigt die Unterartikel bereits an, aber NUR wenn sie auch auf online gesetzt ;-) Das macht ja sonst keinen großen Sinn ;-) Probier das doch nochmal aus :)

Bei der anderen Geschichte mit den Buttons bin ich etwas ratlos, hast Du denn auf der ersten (Zugriffsrechte-) Seite die Buttons ? Denn das ist das gleiche Prinzip...Komisch...

Gruß, Michael :)

Verfasst: 24. Okt 2010, 21:50
von Frezl
Hey Michael,

vielen Dank für deine Antwort! Du hast recht, wenn die Artikel online sind, tauchen sie auch in der Liste auf :-) Sehr schön. Auf der Zugriffs-Seite hab ich die Buttons "Speichern" und "Abbrechen". Die scheinen auch das zu tun, was ich von ihnen erwarte. Und was jetzt noch erstaunlicher ist: Nachdem ich ein paar zu schützende Seiten ausgewählt und gespeichert hab, funktioniert jetzt auch die Benutzer-Seite richtig. Nice :-)

Wär vielleicht schön, wenn du dazu nen Hinweis einarbeiten könntest. Als Nutzer geht man davon aus, dass man die Benutzer unabhängig von den geschützten Seiten erstellen kann.

Nachdem jetzt alles klappt, werd ich das Plugin morgen mal richtig testen.

Viele Grüße,
Frezl

Verfasst: 25. Okt 2010, 08:02
von michaelwandel
Ja super ;-)

Ich werde eh weiter am Addon arbeiten, da muß ich die Dokumentation mal ein wenig "aufarbeiten" ;-) Aber Richy hat hier (http://www.rexvideo.de/tutorials/videot ... -user.html) ein feines Tutorial gemacht, das hilft hoffentlich auch weiter ;-)

Gruß, Michael :)

Re: NEU: Addon TVSFEUser - Frontend-User-Login

Verfasst: 30. Dez 2010, 18:33
von nuxx
Hallo Michael,

Wunderbar, das Addon! Mit anderen Log-In Addons bin ich nie zurecht gekommen, und bei Deinem klappt alles auf Anhieb.

Wie lässt sich denn der login-Name auf der Seite ausgeben? z.B. "Hallo $User , schön dass Du da bist "
Gibt es auch schon Beispiele für Registrierungsseiten etc ?
Viele Grüße
Nuxx

Re: NEU: Addon TVSFEUser - Frontend-User-Login

Verfasst: 3. Jan 2011, 15:52
von stuttgarter
Hallo

Super Addon ! Danke !

Eine Frage jedoch....

Ein user hat Rechte um z.b.: link 1 , 2 , 3 einzusehen... wenn er eingeloggt ist, klickt er jedoch im menue auf link 4 und hat keine Rechte hierfür somit wird er automatisch ausgeloggt...
das ist bisserl nervig !?

Oder habe ich etwas falsch gemacht?

Grüßle und danke für eine Antwort

Re: NEU: Addon TVSFEUser - Frontend-User-Login

Verfasst: 4. Jan 2011, 11:02
von michaelwandel
Moin zusammen :)

Sorry bin heute erst wieder im Einsatz ;)

@Nuxx: Tja, da hast du recht, ich sollte das Ganze mal in einer Klasse kapseln, da wäre das mit dem Abfragen der Benutzerinformationen einfacher, Du kannst sonst einfach die Session-Variable "aufbohren", da steht schon der Login-Name bereit ;-)

Ein Beispiel-Modul zum Login liegt ja im Zip, einfach ein Modul draus machen und eine versteckte Login-Seite damit ausstatten :)

@Stuttgarter: Stimmt, ist nervig, liegt aber daran das er wieder auf die Login-Seite redirectet und dort die Session wieder zurückgesetzt wird, da müsste ich nochmal schauen das man das ändert ;-)

Gruß, Michael :)

Re: NEU: Addon TVSFEUser - Frontend-User-Login

Verfasst: 4. Jan 2011, 20:36
von stuttgarter
Halll und danke für die schnelle Antwort !!!

------ zu: liegt aber daran das er wieder auf die Login-Seite redirectet und dort die Session wieder zurückgesetzt wird, da müsste ich nochmal schauen das man das ändert ---------


Das wäre eigentlich das einzigste was es zu bemängeln gibt ... also wäre wiklich eine Bereicherung wenn dies noch einbaust .-)))))

Grüßle aus Stuttgart

Re: NEU: Addon TVSFEUser - Frontend-User-Login

Verfasst: 5. Jan 2011, 09:56
von michaelwandel
Hi lieber Stuttgarter :)

Also, hab mal was rumgetüftelt, bei mir klappt es mit 2 separaten Bereichen, aber teste doch mal folgendes Login-Modul:

Code: Alles auswählen

<?php
	
	global $REX;
	$thispage		= "tvsfeuser";
	$areaname		= "feuser";
	$table_pre		= "rex_" . $REX['ADDON']['rxid'][$thispage];
	$user_table		= $table_pre . "_user";

	session_start();

	// Auslesen von Benutzern und Passworten
	$users = array();
	$sql = new rex_sql();
	$sql->setQuery("SELECT * FROM " . $user_table);
	if ($sql->getRows() > 0 )
	{
		for ($i = 1; $i <= $sql->getRows(); $i++) {
			$users[$sql->getValue('login')]['psw'] = $sql->getValue('psw');
			$users[$sql->getValue('login')]['rights'] = $sql->getValue('rights');
			$users[$sql->getValue('login')]['status'] = $sql->getValue('status');
			$sql->next();			
		}
	}

	if (rex_post('username', 'string', '') != "" && rex_post('userpw', 'string', '') == $users[rex_post('username', 'string', '')]['psw']) {
		$userrights_array = explode(",", $users[rex_post('username', 'string', '')]['rights']);
		if ($users[rex_post('username', 'string', '')]['status'] == 1) {
			if (in_array(rex_get('target_id', 'int', 0), $userrights_array)) {
				$_SESSION[$thispage][$areaname]['user']   = rex_post('username', 'string', '');
				$_SESSION[$thispage][$areaname]['rights'] = $users[rex_post('username', 'string', '')]['rights'];
				$_SESSION[$thispage][$areaname]['access'] = "yes";
			}
			else
				unset($_SESSION[$thispage][$areaname]);
			}
		else
			unset($_SESSION[$thispage][$areaname]);
	}
	else {
		$userrights_array = explode(",", $users[$_SESSION[$thispage][$areaname]['user']]['rights']);
		if ($users[$_SESSION[$thispage][$areaname]['user']]['status'] == 1) {
			if (in_array(rex_get('target_id', 'int', 0), $userrights_array)) {
				$_SESSION[$thispage][$areaname]['access'] = "yes";
			} else {
				$_SESSION[$thispage][$areaname]['access'] = "no";
			}
		}
	}

	// Frontend?
	if($REX['REDAXO'] != 1) {
		if ($REX['CUR_CLANG'] == 0) {
			$loginmessage = "Bitte melden Sie sich an!";
			$username = "Benutzername:";
			$password = "Passwort:";
			$buttonlabel = "Anmelden";
		}
		else {
			$loginmessage = "Please log in first!";
			$username = "Username:";
			$password = "Password";
			$buttonlabel = "Login";
		}
		// Benutzer nicht angemeldet? Dann Formular anzeigen!
		if($_SESSION[$thispage][$areaname]['access'] != "yes") {
			echo '<p>' . $loginmessage . '</p>
			<form name="loginform" method="post" action="">
				<label for="username">' . $username . '</label><br />
				<input type="text" size="40" name="username" /><br />
				<label for="userpw">' . $password . '</label><br />
				<input type="password" size="40" name="userpw" /><br />
				<input type="submit" name="buttonSubmit" id="buttonSubmit" value="' . $buttonlabel . '" />
			</form>';
		}
		else {
			rex_redirect(rex_get('target_id', 'int', 0), $REX['CUR_CLANG']);
		}
	}

?>
Bin mir da nicht sicher, aber wenns bei Dir klappt hau ich das mal als neue Version raus ;-)

Gruß, Michael :)

Re: NEU: Addon TVSFEUser - Frontend-User-Login

Verfasst: 6. Jan 2011, 14:58
von stuttgarter
Hallo

Habe es getestet und vorab scheint es zu klappen... .-)



Nun ändere ich nur noch folgende Wortlaute bei dem Loginverfahren...

Bitte melden Sie sich an!

Wird geändert in

Sie sind nicht angemeldet oder Sie haben für diesen Bereich keine Berechtigung...

Vielen Dank !!!

Grüße aus Stuttgart

Re: NEU: Addon TVSFEUser - Frontend-User-Login

Verfasst: 6. Jan 2011, 15:09
von michaelwandel
Fein ;-)

Sag mal Bescheid ob alles soweit klappt, der Wortlaut ist auch besser ;-)

Gruß, Michael :)

Re: NEU: Addon TVSFEUser - Frontend-User-Login

Verfasst: 6. Jan 2011, 15:19
von stuttgarter
Hallo

Mannn bist Du schnell mit Deinen Antworten.

Also ich werde es so verwenden und bin Dir sehr Dankbar !!!

Vielen Dank :P

Re: NEU: Addon TVSFEUser - Frontend-User-Login

Verfasst: 6. Jan 2011, 15:24
von michaelwandel
Oki ;-)

Ich mach denn mal eine neue Version daraus ;-)

Gruß, Michael :)

Re: NEU: Addon TVSFEUser - Frontend-User-Login

Verfasst: 11. Jan 2011, 17:36
von teletubbie
Habt Ihr einen Tipp wie man das Logout-Modul mittels css formatieren kann. Beim Login kein Problem, ich hab das einfach in das Modul eingefügt. Beim Ausloggen lassen sich Text und "Button" nicht formatieren. Alles was ich einfüge führt zu einer leeren Seite. Habt Ihr eine Idee wie man das einbauen könnte?

Daniel

Seitenaufbau fehlerhaft , Addon TVSFEUser - Frontend-User-Lo

Verfasst: 16. Jan 2011, 13:17
von teletubbie
Hallo,

ich habe noch eine Kuriosität festgestellt welche ich mir nicht so ganz erklären kann aber das AddOn erst mal auf Eis legt.

Ich habe das Login-Modul installiert und derzeit nur mit einem einzigen "Kunden" auf eine Testseite angelegt. Relativ weit unten, unauffällig in den Menüs platziert. Das Login/Logoff funktioniert eigentlich.
Sobald allerdings das AddOn aktiviert ist, ist der Seitenaufbau fehlerhaft. Die Inhalte im "maincontent" werden nur teilweise oder gar nicht angezeigt. Erst eine Klick auf "Reload" behebt das Problem. Sobald ich das AddOn deaktiviere funktioniert wieder alles normal. Ich verwende die Version tvsfeuser_0.3_3.zip, im Backend wird Version 0.2 angezeigt, Redaxo 4.2.1.
Kann es sein, dass die Prüfung welche Seiten öffentlich und welche privat sind, etwas durcheinanderbringt?

Daniel

Re: NEU: Addon TVSFEUser - Frontend-User-Login

Verfasst: 17. Jan 2011, 09:16
von michaelwandel
Hiho ;-)

Mmh, also ich benutze das Addon jetzt selbst auf derzeit 4 Auftritten mit hoher Performance und habe keine Probleme. Sollte mich eigentlich auch wundern denn die Funktion ist sehr schmalbandig und sendet bzw. verändert keine Outputs, sondern klemmt sich nur vor dem Seitengenerierungsprozess und macht dann ggfls. einen rex_redirect. Das sollte CSS und andere Outputs nicht stören ;-) Eigentlich... :-D
Da bin ich leider echt überfragt, wie gesagt, bei meinen Auftritten geht es reibungslos.

Gruß, Michael :)

Re: NEU: Addon TVSFEUser - Frontend-User-Login

Verfasst: 26. Jan 2011, 16:36
von himmelreich
Hallo zusammen,

erst mal vielen Dank an michaelwandel für das genial einfache Addon
So etwas hab ich schon lange gesucht.

Jetzt zu meinem Problem:
ich habe eine Kategorie mit mehreren Artikeln.
Kategorie und Artikel sind geschützt.
Zu jedem Benutzer gehört ein oder mehrere Artikel und dieser soll auch nur auf seinen Artikel zugriff haben.
Im Startartikel der geschützten Kategorie hab ich eine Artikelliste diese wird allen Benutzern komplett angezeigt auch die Artikellinks zu denen der Benutzer keinen Zugriff hat.
Wie kann ich die Artikelliste so modifizieren das jeder Benutzer nur seine Artikel sieht.

Im voraus schon mal vielen Dank

Gruß Himmelreich

Re: NEU: Addon TVSFEUser - Frontend-User-Login

Verfasst: 26. Jan 2011, 16:55
von michaelwandel
Hi :)

Vielen Dank für das Lob, brauchte das einfach zu oft selbst und dann wurde es programmiert, auch wenn es noch einige kleinere unsaubere Stellen enthält aber die Tage gibt es ein Update, das etwas sauberer läuft ;-)

Ich würde einfach mal in die config.inc.php schauen, da ist recht wenig Code drin, evtl. hilft Dir das, die Rechte auszulesen und die entsprechenden Links nur auf Bedarf einzublenden, aber da sind ein paar Zeilen Code für notwendig ;-)

Gruß und viel Erfolg, Michael :)