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
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/
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/
- holger
- Beiträge: 403
- Registriert: 21. Jun 2005, 13:21
- Wohnort: Sehnde / Hannover / lower saxony
- Kontaktdaten: Website
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.
mfg
Holger
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;
}
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
CHRONO.net Media Works
In der Wörth 11
31319 Sehnde
+495138614810 tel
+495138615553 fax
info@chrono.net
- holger
- Beiträge: 403
- Registriert: 21. Jun 2005, 13:21
- Wohnort: Sehnde / Hannover / lower saxony
- Kontaktdaten: Website
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
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
CHRONO.net Media Works
In der Wörth 11
31319 Sehnde
+495138614810 tel
+495138615553 fax
info@chrono.net
Hallo Holger,
Dankeschön.
Gruß
Christoph
Kannst Du mir bitte zeigen, wie das "hineinprogrammierte" aussieht und wo genau es platziert wird?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.
Dankeschön.
Gruß
Christoph
- holger
- Beiträge: 403
- Registriert: 21. Jun 2005, 13:21
- Wohnort: Sehnde / Hannover / lower saxony
- Kontaktdaten: Website
Hallo Christoph,
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
Code: Alles auswählen
if ($lev1->getTypeId() > $FORM['USR_TYP']) {
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
CHRONO.net Media Works
In der Wörth 11
31319 Sehnde
+495138614810 tel
+495138615553 fax
info@chrono.net
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.Mickholger hat geschrieben:Hallo Christoph,
wäre die Abfrage für das erste Level.Code: Alles auswählen
if ($lev1->getTypeId() > $FORM['USR_TYP']) {
Wie du das in deiner Navigation dann einbringst, weiß ich allerdings nicht, da ich deine Navigation nicht kenne.
mfg
holger
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.