[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
simple user V3.1 - REDAXO Forum
Hallo,

Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.

Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt :-)
Selbst einladen kannst Du dich hier: https://redaxo.org/slack/
cwenet
Beiträge: 380
Registriert: 16. Feb 2006, 10:13
Wohnort: Lake Constance

simple user V3.1

18. Feb 2006, 16:33

Hallo,

folgendes Problem:

Unter "Spezielle Features" habe ich 2 Artikeltypen angelegt:
geheim ID1
streng geheim ID2

Ich habe 2 User unter "User Verwaltung" angelegt.
User1 hat Benutzertyp 1
User2 hat Benutzertyp 2
Userstatus und Login sind jeweils aktiviert.

Die Templates "Authentifizierung" und "Login" wurden angelegt.

rex_3.1_login_demo.tar und SQL wurde importiert.

Der Artikeltyp wurde unter Metadaten bei 2 unterschiedlichen Artikeln entsprechend gesetzt.

Alles funktioniert soweit gut.
Normale User (ohne Login) haben keinen Zugriff. Auch nicht durch Direkteingabe der URL
in der Browser Adresszeile (Bsp. index.php?article_id=3)


Folgendes Verhalten ist mir aufgefallen:

User1 logged sich erfolgreich ein und sieht Artikeltyp "geheim" und "streng geheim"

User2 logged sich erfolgreich ein und sieht nur Artikeltyp "geheim"
User2 kann aber per Direkteingabe (Bsp. index.php?article_id=3) auch Artikeltyp "streng geheim" sehen.

Habe ich etwas übersehen oder ist diese Art von Userverwaltung nicht möglich?
Wunsch wäre jeder User sieht nur seinen Bereich.

Gruß
Christoph

Benutzeravatar
holger
Beiträge: 403
Registriert: 21. Jun 2005, 13:21
Wohnort: Sehnde / Hannover / lower saxony
Kontaktdaten: Website

19. Feb 2006, 16:08

Hallo Christoph,

hier ist eine Abwandlung des authentifizierungs-template.
Mit diesem funktioniert es.
Allerdings nur, wenn die gesperrte Seite maximal im 2. Level liegt.
Ist aber erweiterbar.

Code: Alles auswählen

<?
$errorArticleId = "25";

setlocale(LC_ALL,"de_DE");

// -------------------------------------------------------------- USER AUTH

session_start();

$FORM['USR'] = false;

$user_id = 0;
$user_name = "";

if($REX['CUR_CLANG']== "0"){
	$error_lang = "de"; 
}
else{
	$error_lang = "en"; 
}

if ($_SESSION['UID']['rexsite'] !="" OR $FORM['loginname'] != "" OR $FORM['logout'] != "") {

	$FORM['USER'] = new login();
	$FORM['USER']->setSqlDb(1);
	$FORM['USER']->setSysID("rexsite");
	$FORM['USER']->setLanguage($error_lang);
	$FORM['USER']->setSessiontime(3000);
	$FORM['USER']->setLogin($FORM['loginname'],$FORM['loginpasswort']);
	if ($FORM['LOGOUT'] == 1) {
		$FORM['USER']->setLogout(true);
	}
	$FORM['USER']->setUserID("rex_2_user.id");
	$FORM['USER']->setUserquery("SELECT * 
								FROM 	rex_2_user 
								WHERE 	id='USR_UID' 
								AND 	login_activation=1 
								AND 	user_status='1' 
								AND user_typ>'0'");
	$FORM['USER']->setLoginquery("SELECT * 
								FROM 	rex_2_user 
								WHERE	user_login='USR_LOGIN' 
								AND		user_password='USR_PSW' 
								AND 	login_activation='1' 
								AND		user_status='1'");

	if ($FORM['USER']->checkLogin()) {
 		$FORM['USR'] 	 = true;
		$user_id 		 = $FORM['USER']->getValue("rex_2_user.id");
		$user_name 	 = $FORM['USER']->getValue("rex_2_user.user_name");
		$FORM['USR_ID']  = $user_id;
		$FORM['USR_TYP'] = $FORM['USER']->getValue("rex_2_user.user_typ");
	}
	else {
		$FORM['USR'] = false;
		$err_msg 		 = $FORM['USER']->message;
		$FORM['USR_ID']  = 0;
		$FORM['USR_TYP'] = 0;
	}
}
else {
	// nicht eingeloggt und kein login
	$FORM['USR_ID'] = 0;
	$FORM['USR_TYP'] = 0;
}



// EXPLODE PATH
$PATH = explode("|",$this->getValue("path").$this->getValue("article_id")."|");
$aid = $this->getValue("article_id");

// GET CURRENTS
$path1 = $PATH[1];
$path2 = $PATH[2];
$path3 = $PATH[3];

$lev1 = OOCategory::getCategoryById($path1);

if ($lev1->getTypeId() > 1 && $lev1->getTypeId() > $FORM['USR_TYP']) {
$hack = true;
} else {

if ($lev1->getTypeId() > 1 && !$FORM[USR]) {
	$hack = true;
}
else {
	if ($lev1->getId() == $aid) {
		$hack = false;
	}
	else {
		if (sizeof($lev1->getChildren()) != 0) {
			$lev2 = OOCategory::getCategoryById($path2);

                                           if ($lev2->getTypeId() > 1 && $lev2->getTypeId() > $FORM['USR_TYP']) {
                                         $hack = true;
                                                } else {

			if ($lev2->getTypeId() >1 && !$FORM[USR]) {
				$hack = true;
			}
			else {
				if ($lev1->getId() == $aid) {
					$hack = false;
				}
			}
		}
	}
}

}
}

if ($hack) {
	header("Location: http://".$_SERVER['HTTP_HOST']."/index.php?article_id=".$errorArticleId."&clang=".$REX['CUR_CLANG']);
	exit;
}
mfg
Holger
// Wenn die Theorie von der Praxis abweicht: --> Ändere die Theorie //

CHRONO.net Media Works
In der Wörth 11
31319 Sehnde
+495138614810 tel
+495138615553 fax
info@chrono.net

cwenet
Beiträge: 380
Registriert: 16. Feb 2006, 10:13
Wohnort: Lake Constance

19. Feb 2006, 16:39

Vielen Dank, Holger,

leider bring es keine Abhilfe. Aber es hat sich etwas getan.
Bei User 2 ist nun keine Direkteingabe mehr möglich. So ist es ok.
User 1 sieht dennoch alle Artikel: "geheim" und "streng geheim".


Gruß
Christoph

ruwe
Beiträge: 173
Registriert: 3. Feb 2005, 02:28

19. Feb 2006, 16:47

hallo,

da ich demnächst da auch dran will, fände ich es spannend zu hören was sich getan hat, bzw. wieso sich etwas getan hat.
(vorallem da du sagst das das geänderte template keine abhilfe schafft)

grüsse
ruwe

cwenet
Beiträge: 380
Registriert: 16. Feb 2006, 10:13
Wohnort: Lake Constance

19. Feb 2006, 17:01

Ok. Abhilfe gab es insofern nicht, da ein User immer noch beide Bereiche sehen kann. Deine Template-Variation brachte ein Teil-Erfolg: Die Direkteingabe wird jetzt unterbunden.

Gruß
Christoph

Benutzeravatar
holger
Beiträge: 403
Registriert: 21. Jun 2005, 13:21
Wohnort: Sehnde / Hannover / lower saxony
Kontaktdaten: Website

19. Feb 2006, 18:10

Hallo,

komisch, bei mir funktioniert es.

Ich habe es so gemacht:

Unter "Types" einen Bereich "intern" mit der ID=2 und einen Bereich "superintern" mit der ID=3 angelegt.

Einzelne Artikel dann darauf umgestellt.

User mit dem Benutzertyp =2 angelegt und andere mit Benutzertyp=3


Alle User mit benutzertyp=2 kommen nur in den "intern"-Bereich, aber nicht in "superintern".

Alle Benutzer mit benutzertyp=3 kommen überall hin.

Auch nicht per Direkteingabe. Dieses habe ich auch hineinprogrammiert.
Denn es wird abgefragt ob der Benutzertyp mindestens so groß ist wie der Types-Typ.

Es kann höchstens sein, das der Bereich noch in der Navigation angezeigt wird. Dies müßte dort vielleicht noch mit programmiert werden.

mfg
Holger
// Wenn die Theorie von der Praxis abweicht: --> Ändere die Theorie //

CHRONO.net Media Works
In der Wörth 11
31319 Sehnde
+495138614810 tel
+495138615553 fax
info@chrono.net

cwenet
Beiträge: 380
Registriert: 16. Feb 2006, 10:13
Wohnort: Lake Constance

20. Feb 2006, 12:23

Hallo Holger,
Auch nicht per Direkteingabe. Dieses habe ich auch hineinprogrammiert.
Denn es wird abgefragt ob der Benutzertyp mindestens so groß ist wie der Types-Typ.

Es kann höchstens sein, das der Bereich noch in der Navigation angezeigt wird. Dies müßte dort vielleicht noch mit programmiert werden.
Kannst Du mir bitte zeigen, wie das "hineinprogrammierte" aussieht und wo genau es platziert wird?

Dankeschön.

Gruß
Christoph

Benutzeravatar
holger
Beiträge: 403
Registriert: 21. Jun 2005, 13:21
Wohnort: Sehnde / Hannover / lower saxony
Kontaktdaten: Website

20. Feb 2006, 16:32

Hallo Christoph,

Code: Alles auswählen

if ($lev1->getTypeId() > $FORM['USR_TYP']) {
wäre die Abfrage für das erste Level.
Wie du das in deiner Navigation dann einbringst, weiß ich allerdings nicht, da ich deine Navigation nicht kenne.

mfg
holger
// Wenn die Theorie von der Praxis abweicht: --> Ändere die Theorie //

CHRONO.net Media Works
In der Wörth 11
31319 Sehnde
+495138614810 tel
+495138615553 fax
info@chrono.net

cwenet
Beiträge: 380
Registriert: 16. Feb 2006, 10:13
Wohnort: Lake Constance

20. Feb 2006, 20:45

Danke Holger,

habe auch Deinen Eintrag in der Wunschliste gesehen.
Das vereinfacht natürlich die Userverwaltung.

Gruß
Christoph

Mick
Beiträge: 23
Registriert: 31. Dez 2005, 13:01
Wohnort: Köln
Kontaktdaten: Website

21. Feb 2006, 20:12

holger hat geschrieben:Hallo Christoph,

Code: Alles auswählen

if ($lev1->getTypeId() > $FORM['USR_TYP']) {
wäre die Abfrage für das erste Level.
Wie du das in deiner Navigation dann einbringst, weiß ich allerdings nicht, da ich deine Navigation nicht kenne.

mfg
holger
Hallo Holger ich habe das gleiche Problem das alle id die größer sind auch die unteren Kategorien angezeigt werden. Ich weiß leider nicht wie ich das änder kann. Den Code den du oben geschrieben hast keine ahnung wo man den einfügen muß vieleicht kannst du mir ja nochmal einen tip geben. Grup M.Mick
Erstes CMS was verständlich ist. Arbeite gerade an zwei Projekte www.rentstar.de und www.interbay.de Über Hilfe und Kooperationen bin ich immer sehr dankbar und Aufgeschlossen. Ich helfe übgrigens auch sehr gerne einfach Fragen.

Zurück zu „Allgemeines [R3]“