getrennter zugriff auf strukturbäume

websugar
Beiträge: 54
Registriert: Di 17. Sep 2002, 20:18
Wohnort: Wien
Kontaktdaten:

getrennter zugriff auf strukturbäume

Beitrag von websugar » Do 19. Sep 2002, 11:26

hier die fortsetzung von dem alten thread unter http://p10089516.pureserver.de/phorum-3 ... 004&t=1004

> verschiedene redakteure sollen die möglichkeit haben nur ihren strukturbaum zu bearbeiten (und sehen nur ihren eigenen upload-bereich).

@Detlev: du hast ja schon begonnen daran zu arbeiten.

1) con_clients: um spalte "redakeur" erweitert
2) redakteur aus anmeldeformular holen, in session-Variable speichern
3) ausgabeabfrage für die select-Felder umgewandelt:
if($redakteur=="admin") $redakteur ="%";
$sql = "select * from $cfgTab_clients where redakteur like '$redakteur'";
So sieht der admin alle clients, die Redakteure nur ihre clients.

klappt das so? wenn ja, ist es möglich, einpaar kommentare zu diesen punkten hinzuzufügen (benutzte files angeben).
bei punkt 2) weiß ich zb gar nicht wie ich das umsetze.

damit auch nicht-contenido-experten nicht ganz im dunkeln stehen :-)
thanx!

detlev
Beiträge: 156
Registriert: Mi 18. Sep 2002, 08:05
Wohnort: Bochum
Kontaktdaten:

Mein HowTo

Beitrag von detlev » Do 19. Sep 2002, 12:20

Ummit mehreren Redakteuren zu arbeiten,
die nur ihre eigenen Clients sehen,
habe ich an die Tabelle con_clients
eine Spalte mit den 'redakteur' angebängt.

Beim einloggen in Contenido wird jetzt der Username als
Variable redakteur als Session-Variable gespeichert und
die SQL Abfrage der Clients nun auf die Einträge der
jeweiligen Redakteure reduziert, so dass jeder Redakteur
(ausser natürlich der user: 'admin')
nur noch seine eigenen Seiten sieht.

1. Schritt
Anhängen der Spalte redakteur an die DB-Tabelle conclients
2. Schritt
Ändern der Datei contenido/index.php wie folgt / direkt nach dem <? Tag:
//begin mychanges
session_start();
//end mychanges
3. Schritt
Ändern der Datei contenido/main.php wie folgt / direkt nach dem <? Tag:
//begin mychanges
session_start();
//end mychanges
4. Schritt
Ändern der Datei contenido/index.php wie folgt
// begin mychanges
//old:
//$sql = "SELECT * FROM $cfgTab_clients";
//new:
session_register("redakteur");
$redakteur=$auth->auth["uname"];
if($auth->auth["uname"]=="admin")
$redakteur="%";
$sql = "SELECT * FROM $cfgTab_clients where redakteur like '%$redakteur%'";
echo "<option></option>";
// end mychanges
5. Schritt
Ändern der Datei contenido/header_for_frame.php
// begin mychanges
//old:
//$sql = "SELECT * FROM $cfgTab_clients";
//new:
$sql = "SELECT * FROM $cfgTab_clients where redakteur like '%$redakteur%'";
//end mychanges
6. Schritt:
Ändern der Datei contenido/tpl/form_client.php
// begin mychanges
//old:
//$sql = "SELECT * FROM $cfgTab_clients";
//new:
$sql = "SELECT * FROM $cfgTab_clients where redakteur like '%$redakteur%'";
//end mychanges

websugar
Beiträge: 54
Registriert: Di 17. Sep 2002, 20:18
Wohnort: Wien
Kontaktdaten:

Beitrag von websugar » Do 19. Sep 2002, 12:54

hey, danke für die anleitung!! habs gleich ausprobiert.
hat bis jetzt nicht ganz geklappt.

werd später weitermachen.

übrigens: die auswahl - front_single/frame - erscheint jetzt beim einloggen nur noch beim admin. dementsprechend passt bei den anderen die struktur und die seiten überhaupt nicht....

greetz, vanessa

Gast

Beitrag von Gast » Do 19. Sep 2002, 14:42

Dumme Rückfrage:
Hast Du denn die Spalte redakteur in der Datenbank auch gefüllt?
Beispielsweise redakteur "mustermann" trägst du ein für den Client front_single.
Dann siehst du in den select Feldern hinterher beim admin beide clients, beim user mustermann, wenn er sich einloggt nur den Client front_single etc für jedem neuen Client.

websugar
Beiträge: 54
Registriert: Di 17. Sep 2002, 20:18
Wohnort: Wien
Kontaktdaten:

Beitrag von websugar » Do 19. Sep 2002, 17:15

dumme fragen gibts nicht... sonst würd ich mich nicht mehr trauen hier zu posten :-)

habe die spalte redakteur in con_clients gefüllt. da stehen dann untereinander redakteur1, redakteur2,... unter name steht immer front_single.
beim einloggen gibts den gewünschten effekt: man kann nur noch front_single wählen.

da ist aber noch irgendwo ein problem, weil:
redakteur1 kann alle artikel bearbeiten, struktur verändern.
redakteur2 sieht gar nichts und kann auch nichts erstellen. rechte sind jedoch alle vorhanden.

:cry:

detlev
Beiträge: 156
Registriert: Mi 18. Sep 2002, 08:05
Wohnort: Bochum
Kontaktdaten:

So siehts bei mir aus:

Beitrag von detlev » Do 19. Sep 2002, 18:45

#
# Daten für Tabelle `con_clients`
#

INSERT INTO con_clients VALUES (1, 'testclient', 0, '', '0000-00-00 00:00:00', '0000-00-00 00:00:00', 'wagner');
INSERT INTO con_clients VALUES (2, 'front_single', 0, '', '2002-07-08 17:16:48', '2002-07-08 17:16:48', 'admin');
INSERT INTO con_clients VALUES (3, 'pflegedienst', 0, '', '2002-09-19 19:31:56', '2002-09-19 19:31:56', 'pflege');
INSERT INTO con_clients VALUES (4, 'verwaltung', 0, '', '2002-09-19 19:32:58', '2002-09-19 19:32:58', 'verwalt');
INSERT INTO con_clients VALUES (5, 'entsorgung', 0, '', '2002-09-19 19:33:25', '2002-09-19 19:33:25', 'entsorger');
INSERT INTO con_clients VALUES (6, 'meddienst', 0, '', '2002-09-19 19:33:52', '2002-09-19 19:33:52', 'arzt');

Der Redakteur arzt darf nur den client meddienst, der Redakteur pflege nur den pflegedienst, der admin darf alle Clients (s.o.)

Des weiteren habe ich wie schon gepostet, die Layouts, Templates und Module allen Clients zur Verfügung gestellt, indem ich nicht die spezifische Client_id abfrage.

Ich hoffe damit geholfen zu haben.

Gruß aus Bochum
Detlev

websugar
Beiträge: 54
Registriert: Di 17. Sep 2002, 20:18
Wohnort: Wien
Kontaktdaten:

Beitrag von websugar » Fr 20. Sep 2002, 09:20

hi, danke für die hilfe!

das mit den layouts für alle clients funktioniert und die clients an sich werden auch richtig angezeigt.

problem ist aber immer noch, daß nur der admin die struktur und die seiten sehen kann.
die anderen clients sehen unter seiten und struktur nichts und haben auch keine möglichkeit etwas zu erstellen.

in der db tabelle con_side steht unter idclient immer 1 bzw. 2., kann das ein grund sein, weshalb die anderen clients außer dem admin die seiten nicht sehen können? in der tabelle con_cat das gleiche: unter idclient immer 1 bzw. 2.
nach manueller änderung auf einen anderen client tut sich nichts...

wo liegt denn da der fehler?

detlev
Beiträge: 156
Registriert: Mi 18. Sep 2002, 08:05
Wohnort: Bochum
Kontaktdaten:

Du bist dabei mich zu überholen...

Beitrag von detlev » Fr 20. Sep 2002, 09:40

Du bist mir wohl sehr dicht auf den Fersen.
Bis jetzt habe ich all das gepostet, was ich gemacht habe.
Der Aufbau meines Intranet-Projektes ist noch nicht so weit gediehen und ich habe mich erst mal mit den strukturellen Problemen beschäftigt.
Die Mängel, die Du bescdhreibst, habe ich noch gar nicht bemerkt, weil ich noch keine einzige Seite gefüllt habe.
Am Wochenende darf ich segeln in Holland, so dass von mir wohl erst wieder etwas ab Dienstag zu erwarten ist.
Vielleicht findet ja jemand bis dahin schon eine Fortsetzung dieser Baustelle.

Gruß aus Bochum
Detlev

websugar
Beiträge: 54
Registriert: Di 17. Sep 2002, 20:18
Wohnort: Wien
Kontaktdaten:

Beitrag von websugar » Fr 20. Sep 2002, 09:46

jup, ich folge dir so gut ich kann 8)
du hast mir schon sehr geholfen!!

nachdem das, was ich suche eigentlich auch für andere ganz nützlich ist, hoffe ich, daß es bald eine lösung dazu gibt.

viel spaß beim segeln! :wink:

greetz from vienna,
vanessa

websugar
Beiträge: 54
Registriert: Di 17. Sep 2002, 20:18
Wohnort: Wien
Kontaktdaten:

Beitrag von websugar » Sa 21. Sep 2002, 13:20

ich frag jetzt einfach nochmal in die runde, ob mir jemand noch einbisschen weiterhelfen kann.

problem, das ich schon beschrieben habe, besteht immer noch...

detlev
Beiträge: 156
Registriert: Mi 18. Sep 2002, 08:05
Wohnort: Bochum
Kontaktdaten:

möglicher fehler

Beitrag von detlev » Mo 23. Sep 2002, 10:51

Nach Windstärke 7 auf dem Isselmeer leicht teumelig zurück..

@vanessa
Ich baue mein System nur framelos auf. Deswegen habe ich den Inhalt des Ordners front_frame gelöscht, und den Inhalt von front_single darein kopiert (Nach meinen Änderungen werden die Pfade und Variablen aus diesem Verzeichnis nämlich mit abgefragt).
Du hast ja in der Tabelle con_clients die Einträge für die neuen Clients gemacht und dort auch die ID-Nummern vergeben.
Auf jeden Fall musst Du innerhalb sämtlicher Client-Ordner die Datei config.php bearbeiten und die Variable $client gleich der client-ID aus der Tabelle setzen.
Wenn Du dann neue Strukturbäume oder Seiten für die Clients erstellst, sollte es funktionieren.
Zumindest bin ich im Augenblick soweit, dass es meiner Meinung nach funktioniert.

Gruß aus Bochum
Detlev

websugar
Beiträge: 54
Registriert: Di 17. Sep 2002, 20:18
Wohnort: Wien
Kontaktdaten:

Beitrag von websugar » Mo 23. Sep 2002, 17:09

habe in config.php die clients bearbeitet. für jeden client die selbe liste mit entsprechender id. es klappt immer noch nicht. werde weiterprobieren.

eines wundert mich aber immer noch: in der database steht unter idclient immer 1 oder 2 - nachdem es ja anfangs nur 2 gab.
hast du da irgendetwas verändert?

detlev
Beiträge: 156
Registriert: Mi 18. Sep 2002, 08:05
Wohnort: Bochum
Kontaktdaten:

Beitrag von detlev » Mo 23. Sep 2002, 18:00

1. in der contenido/inc/conifig.inc z.B. den Client 3 anlegen:

$cfgClient[3]["path"]["frontend"] = "/home/www-server/intranet/htdocs/pages/pflegedienst/"; // for Contenido PHP
$cfgClient[3]["path"]["htmlpath"] = "pages/pflegedienst/"; // for Contenido-HTML
$cfgClient[3]["htmlpath"]["frontend"] = "../".$cfgClient[1]["path"]["htmlpath"];// for linking to files in frontend from contenido (main -> dis_editcontent)

//**** just comment out one of those blocks to not display this folder for upload ************
$cfgClient[3]["path"]["img"] = $cfgClient[1]["path"]["frontend"]."img/";
$cfgClient[3]["htmlpath"]["img"] = $cfgClient[1]["htmlpath"]["frontend"]."img/";
$cfgClient[3]["frontendpath"]["img"] = "img/";
$cfgClient[3]["actionname"]["img"] = "Bilder";
$cfgClient[3]["text"]["img"] = "Laden Sie ein Bild auf den Webserver";
$cfgClient[3]["filetype"]["img"] = "img";

$cfgClient[3]["path"]["pdf"] = $cfgClient[3]["path"]["frontend"]."pdf/";
$cfgClient[3]["htmlpath"]["pdf" ] = $cfgClient[3]["htmlpath"]["frontend"]."pdf/";
$cfgClient[3]["frontendpath"]["pdf"] = "pdf/";
$cfgClient[3]["actionname"]["pdf"] = "PDF";
$cfgClient[3]["text"]["pdf"] = "Laden Sie ein PDF-Dokument auf den Webserver";
$cfgClient[3]["filetype"]["pdf"] = "pdf";

2. in dem Verzeichnis des Client 3 bei mir /pages/pflegedienst/ in der Datei config.php auch den Client einstellen:
<?
$ContenidoPath = "../../contenido/";
$errorfont = "font3";
$language = "de";
$client = "3";
?>

Wenn Du nicht weiterkommst, kann ich dir
a) einen mysql-dump der DB
b) das gezippte contenido-Verzeichnis
c) meine HowTos für die Umstellungen, die ich hier je nach Fortschritt verraten habe,
mailen
Mail-Adresse: wagner@bergmannsheil.de

Ansonsten viel Erfolg
Detlev

Gast

Beitrag von Gast » Mo 23. Sep 2002, 21:52

bin grad so einbisschen am rätseln, ob wir da tatsächlich aneinander vorbei-gedacht haben...
dank deiner hilfe können die clients nun ihre eigenen strukturbäume bearbeiten. aber das sind tatsächlich "ihre eigenen". dh sie haben praktisch ihr eigenes frontend - wie front_single eben.
es ist nicht so, daß sie nur einen teil der struktur die der admin sehen kann, bearbeiten.

admin kann alle strukturpunkte bearbeiten.
home
Menu1 > kann nur von redakteur1 bearbeitet werden
Menu1 > kann nur von redakteur2 bearbeitet werden

dafür muß es einfach eine lösung geben und solange ich die nicht habe... tja, dann muß ich wohl die nächsten paar tage php/mysql bücher studieren... 8)
schließlich soll man nicht fordern ohne zu leisten...

trotzdem vielen dank - das bringt mich auf jeden fall weiter!

detlev
Beiträge: 156
Registriert: Mi 18. Sep 2002, 08:05
Wohnort: Bochum
Kontaktdaten:

Beitrag von detlev » Di 24. Sep 2002, 06:49

Wir wollen eigentlich das Gleiche.
Mir ist aber nur diese Lösung eingefallen, die ich beschrieben habe.
Zumal mir nichts besseres eingefallen ist, wie ich die Uploadbereiche für die Bilder trennen kann.
Den gesamten Baum will ich als nächstes zusammenstricken und dort die einzelnen Clients zusammenlinken, bei mir sind die Clients so selbständig, dass sie eine eigene senkrechte Navigation erhalten sollen, während die waagerechte Navigation bleibt und auf die Clients linkt.
Nach wie vor kann der Admin in sämtliche sämtliche Clients reinschauen.

Wenn Du mit deinem Ansatz aber weiterkommst, wäre ich Dir für Infos sehr dankbar.

Gesperrt