Folgende Ausgangslage:
Die Homepage unseres Unternehmens wird neugestaltet. Bisher waren das mit WORD erstellte HTML-Seiten, mittlerweile haben wir auf php umgestellt.
Mit der "normalen" Homepage bin ich mittlerweile fast fertig (bis auf ein paar kleine inhaltliche Sachen).
Neben der "normalen" Homepage gibt es einen geschlossenen Bereich für die Mitarbeiter. Insgesamt sind das derzeit 4 Benutzerebenen.
Die ganzen Daten liegen auf nem Strato V-Server, die Benutzer haben jeweils nen eigenen Benutzernamen und ein individuelles Passwort (normale Seite - http, interner Bereich über https).
Problem:
In der Vergangenheit wurde das so gelöst, dass es eine LogIn-Seite für alle gab und es danach in die 4 "Richtungen" (sprich eigene Ordner) weiterging.
Das war ziemlich aufwändig - auch von der Betreuung her, da alle Seiten 4 mal erstellt (und entsprechend angepasst werden mussten) sowie die hochgeladenen Dokumente ebenfalls 4 mal existierten. Bei jeder Änderung musste je der 4 existierenden HTML-Seiten geändert werden etc pp
Nun die Fragen:
Gibt es eine Möglichkeit, das irgendwie zu vereinfachen?
(Die Ideallösung wäre IMO, wenn nach dem LogIn der Benutzer nur auf die für ihn "gedachten" Seiten und Dokumente zugreifen kann und dazu nicht wieder jede Seite 4 Mal erstellt und entsprechend der Berechtigungen angepasst werden muss)
Wenn ja wie?
Und wenn wie, dann auch so, dass ich das kapiere?
Als Software hab ich bisher Dreamweaver 8 und PSPad verwendet - damit komm ich auch einigermaßen zurecht.
UnoOC
Nethands /// Regeln beachten - Suchfunktion benutzen /// Bildblog.de - Schlagzeil-O-Mat
Neid ist die deutsche Form der Anerkennung „Ringlein sehn heut lieblich aus, morgen werden Fesseln draus.“ Clemens Brentano /// "Keine schöne Frau kann die Erwartungen, die wegen ihres Aussehens in sie gesetzt wurden, über einen annehmbaren Zeitraum hinweg rechtfertigen." Kurt Vonnegut /// "Emanzipation ist der Versuch, auch häßliche Frauen in die Gesellschaft zu integrieren." Charles Bukowski /// Geduld ist die Kunst, nur langsam wütend zu werden. /// ,,Zuerst schuf der liebe Gott den Mann, dann schuf er die Frau. Danach tat ihm der Mann leid, und er gab ihm Tabak." Mark Twain /// Wenn du tot bist, dann weißt du nicht, dass du tot bist. Es ist nur blöd für die Anderen. Genau so ist es, ... wenn du dumm bist.
Wenn die Seiten sowieso mit PHP erstellt werden gibt es doch bestimmt viele
Möglichkeiten bis zu aufwendigeren CMS-Lösungen.
Das Einfachste wäre wohl schon mit SSI realisierbar, dabei würde keiner der 4 Benutzer
an die "normalen" HTML-Verzeichnisse herankommen, sondern nur an ein eigenes
Verzeichnis mit den wirklich für ihn freigegebenen Teilen als include-Dateien.
In der normalen HTML-Datei werden per SSI oder natürlich auch mittels PHP die
Includes eingebunden, z.B.:
Das Prinzip der geschützten Verzeichnisse wie /mitarbeiter/maier/ besteht ja wohl
schon, es würde nicht soviel geändert werden müssen, Datenbank ist auch unnötig.
Falls es Probleme mit den verwendeten Editoren gibt, könnte zur Not noch auf
iframes und normale HTML-Dateien für die includes zurückgegriffen werden.
Per PHP könnte natürlich auch ein CMS zum Einsatz kommen, bei dem am Browser
editiert wird, m.E. sind solche Lösungen aber oft recht unflexibel, bei einigen muß
zudem noch ein Copyright-Hinweis bleiben, auch nicht immer geeignet.
Ah, äh ja ... wie bereits gesagt, so, dass ich das auch kapiere
Wenn ich ne Vorstellung hätte was unklar ist...
Du erstellst normale HTML-Dateien und packst diese in ein für alle Besucher
zugängliches Verzeichnis.
Innerhalb dieser Dateien schneidest du den Teil raus, den Maier ändern darf.
Per copy&paste fügst du diesen Block in eine neu erzeugte, noch leere Datei mit
dem Namen "text1.inc" ein, die im Unter-Verzeichnis "maier", auf das (nur) Maier
Zugriff hat, gespeichert wird.
Wo jetzt das "Loch" im HTML-Code zurückgeblieben ist, fügst du folgenden Code
ein: <!--#include virtual="/maier/text1.inc"
-->
Wenn jetzt dein Server weiß (Stichwort .htaccess), dass er die HTML-Datei parsen,
also bei der Ausgabe nochmal durchgucken soll, ersetzt er die include-passage durch
den Block "text1.inc", auf den Maier Zugriff hat.
Falls das so nicht klappen sollte, kannst du statt der include-Methode auch über
HTML, den Iframe-Tag, gehen. Die Anforderung kommt dann durch den Browser über
HTML statt wie vorher beim Server, du müßtest dich weniger mit den Servereinstellungen
auseinandersetzen, dafür ist die Ausgabe im Iframe nicht so elegant.
Am Einfachsten ist es wohl mit der Rechteverwaltung, wenn das Verzeichnis 'maier'
für alle Besucher lesbar ist, aber nur Meier darf ändern/schreiben.
Trotzdem liegen im Verzeichnis 'maier' nur die einzufügenden Bausteine, die
eigentlichen Seiten liegen alle in einem öffentlichen Verzeichnis.
Hoffe die Richtung ist etwas deutlicher geworden?
Wie, mit welchem Editor, bearbeitet 'Maier' seine Seiten?
"Maier" darf keine Dateien ändern - das wäre ja noch schöner. Ich hab mich anscheinend etwas ungenau ausgedrückt.
Es geht "nur" um den Abruf bestimmter Dokumente (idR doc, xls, pdf).
Auf einen Teil der Dokumente haben alle Zugriff, auf bestimmte nur ausgewählte Mitarbeiter.
Bisher ist das so gelöst, dass für jede Benutzergruppe sozusagen ein komplett eigenständiger Ordner mit ca. 20 HTML-Seiten (und den darin verlinkten Dokumenten) existiert. Das sind dann 4 mal 20 Seiten (die z. T sogar identisch sind) und 4 mal zum Großteil die selben Dokumente.
Da auf diesen Seiten regelmäßig etwas zu ändern ist (bei den Dokumenten sowieso) würde ich das gern irgendwie vereinfachen.
Ich hab schon versucht, die gleichen Seiten (und Dokumente) in nen Ordner für alle zu packen und nur die unterschiedlichen Seiten (und Dokumente) in nen Extra-Ordner.
Dann müssen sich bei der derzeitigen Konfiguration aber die Mitarbeiter bei jedem "Ordnerwechsel" neu einloggen - das ist auch keine Lösung.
Ich würd mir das so wünschen:
If=Maier, than allow=Ordner1, Ordner2
If=Schulze, than allow=Ordner1, Ordner3
If=Lehmann, than allow=Ordner1, Ordner2, Ordner3, Ordner4
etc. pp
Wenn jemand nicht auf die entsprechende Seite und/oder das Dokument zugreifen darf, dann sollte dort eben stehen: Darfste nicht! (oder so ähnlich)
Da ich von Programmieren so 0,0 Ahnung hat (bis auf das bissel HTML und PHP, was ich in Dreamweaver mitbekomme), brauch ich wohl ne idiotensichere Erklärung
Es gibt ja die Datei .htaccess, damit kann ein Zugang vielleicht auch innerhalb
eines Verzeichnisses geregelt werden.
Einfachste Möglichkeit wäre im Intranet eine fest vergebene IP-Nummer, um den PC
eindeutig zu identifizieren. Dann könnten natürlich Kollegen über den betr. PC oder über
eine am andern PC mutwillig verstellte IP-Nummer auch draufschauen, ich poste
aber trotzdem erstmal als Anregung wie es m.E. gehen sollte, dabei sind hier
die Dateien durch ihren Namensanfang unterschieden:
Code:
<Files maier*>
Order Allow, Deny
Deny from all
Allow from 192.178.158.002
</Files>
<Files mueller*>
Order Allow, Deny
Deny from all
Allow from 192.178.158.003
</Files>
maier_planung1.html sollte dann (nur) vom PC 192.178.158.002 zu sehen sein.
Vorteil ist der einfache Eintrag in die Datei .htaccess, und alle Dateien können
ins gleiche Verzeichnis.
Mit einer Userabfrage sollte es im Prinzip so gehen, wenn im betr. Verzeichnis die
User (in .htusers) angelegt sind:
Code:
AuthType Basic
AuthUserFile /usr/web/.htusers
<Files maier*>
Require user Maier
</Files>
<Files mueller*>
Require user Mueller
</Files>
Werden denn alle Dateien sowieso per PHP generiert? Dann könnte einmal eingelogt
werden und der Status dann (Session, SSL o.ä.) beibehalten, oder bei niedrigen
Sicherheitsanforderungen per Cookies auf dem PC gemerkt werden.
Per PHP könnte dann jeweils nach dem Cookie geschaut werden, da müßtest du dich
womöglich doch noch etwas mit PHP, ggf. JavaScript, beschäften. Aber vielleicht
reicht es mit .htaccess?
Hast du mal an den einsatz eines Content Management Systems gedacht? Da lassen sich für verschiedene Seiten dann Zugriffslevel definieren und z.B. auch Benutzerspezifische Navigationsteile erstellen usw...
Hab mir nochmal das Problem "Ordnerwechsel/ neu einloggen" angeschaut.
Die Passwortabfrage bei der einfachen Lösung über .htaccess müßte ins
Hauptverzeichnis, m.E. sollte sich das gesetzte Passwort auf die Unterverzeichnisse
"vererben", hab es aber jetzt nicht nochmal getestet.
Ausprobiert habe ich aber gerade folgende einfache Geschichte (xxx ist der Pfad auf
dem betr. Server) per .htaccess Datei im Verzeichnis:
Code:
AuthType Basic
AuthName "Zugang"
AuthUserFile xxx/.htusers
<Files o1*>
Require user Maier Schulze Lehmann
</Files>
<Files o2*>
Require user Maier Lehmann
</Files>
<Files o3*>
Require user Schulze Lehmann
</Files>
<Files o4*>
Require user Lehmann
</Files>
Die Dateien eines Ressorts haben hier zur Unterscheidung den gleichen Anfang,
und die Anmeldung beim ersten Besuch bleibt erstmal erhalten.
Wenn Lehmann sich bei einer Datei o1-xxx.html mit Passwort anmeldet, kann er
-zumindest bei meinem Apachen klappts- sofort ohne weitere Abfrage auch
o4-irgendwas anschauen.
Schulze kann nach o1 auch o3 anschauen, bei o2 erhält er eine Passwortabfrage,
und ggf. eine ordentliche 401-Meldung des Servers.
Nachtrag:
Zusätzlich zur .htaccess (Code oben) ist natürlich noch die Datei .htusers im
in der .htaccess angebenen Verzeichnis nötig, um die Passwörter zu verwalten:
Sachma Pirke?
Das ist nicht dein Ernst oder?!?
DAS IST ECHT NICHT WAHR^^
Da will man einmal was posten wo man n bisschen was von versteht und was ist?!?
Hat schon wer gepostet.
Aber: ich würd auch Joomla vorschlagen,
kannst dir ja ma die seiter von "meiner" schülerzeitung angucken (im aufbau)
oder seit gestern meine neue hp
Per Plugins kann man ALLES haben^^
Bei der SZ können nun angemeldete n bestimmten bereich sehen, autoren die für uns schreiben was schreiben, aber ich muss das veröffendlichen, ich kann usergruppen machen, die bestimmte seiten sehen dürfen, usw.
@ Mondrian:
feste IPs gehen nicht -> haben 3 Außenstellen, viele PCs werden von mehreren Kollegen (mit unterschiedlichen Zugangsberechtigungen) genutzt
Es geht nicht um den Abruf irgendwelcher HTML/PHP oder sonstwas Dateien - es werden nur .doc, .xls und .pdf abgerufen; über die HTML/PHP-Seiten werden nur verschiedene Informationen (für den jeweiligen Benutzerkreis) und die Links für die o. g. Dokumente bereitgestellt.
Den Rest muss ich mir mal anschauen - ich vermute aber, dass meine Idee einerseits an meinen beschränkten Programmierkenntnissen und andererseits an der für deren Abbau notwendigen Zeit scheitern wird.
Darüber hinaus ist mit unserem EDV-ler über sowas kaum zu reden. Der sagt immer: "Ist alles kein Problem, ich mach das schon."
Leider dauert das Ewigkeiten, dann macht der das so, dass nur er damit klarkommt und drittens ist überhaupt die Frage, ob das dann so läuft, wie ich mir das vorstelle.
@ Pirke: Ich schau mir das mal an - danke für den Link
2. GruppenListe - in der werden User in Gruppen zusammen gefasst
3. RechteObjekt - hier können pro Ordner/Datei oder was auch immer Rechte auf Gruppen oder auch einzelne User vergeben werden.
Dann kannste es so schreiben, dass pro Ordner/Datei einfach ausgewählt werden kann, welcher User/Gruppe darauf Leserechte bekommt.
Soweit erstmal zur Theorie
Ich habe selbst keine Erfahrungen mit PHP - da ich eigentlich ASP/ASP.NET Seiten entwickle. Das obere System habe ich schon einmal in einer WebApplikation abgebildet.
Das Problem bei ASP.NET ist, dass Standardmässig das DOTNET Framework nur den Zugriff auf *.ASPX, *.config und ein paar weitere ASP.NET spezifische Dateien regelt. Zugriffe auf *.jpg, *.doc, *.pdf usw. werden ohne weitere Prüfung durchgelassen.
Das ganze muss man dann extra im IIS konfigurieren. Alternativ kann man auch die Dateien in eine Datenbank schmeißen. So haben wir das gemacht - was diverse Vor und Nachteile hat - aber egal. Das dies mit nem popeligen 10€ Webseitenaccount natürlich nicht funktioniert sollte jedem klar sein.
Jetzt bin ich etwas überfragt, was per .htaccess Datei alles möglich ist. Da können Dir nur php Freaks weiter helfen.
Den Rest muss ich mir mal anschauen - ich vermute aber, dass meine Idee einerseits an meinen beschränkten Programmierkenntnissen und andererseits an der für deren Abbau notwendigen Zeit scheitern wird.
Dabei sollte wohl auch das funktionierende System nicht gefährdet werden.
Ist alles nicht so schwierig, aber etwas Zeit ist schon nötig.
Falls du dich da doch etwas mit beschäftigen willst, wäre m.E. eine Testumgebung
sinnvoll. Strato V-Server läuft wohl mit Apache-Server unter Linux.
Im einfachsten Fall würde ich dann ein auf deinem Windows-PC selbstinstallierendes
Paket wie WAMP5 oder EasyPHP (m.E. ruhig die Beta 2) erwägen.
Dann kannst du nicht nur .htaccess Dateien ändern oder anlegen und alles testen,
sondern ggf. auch die httpd.conf des Apachen.
Zitat:
Darüber hinaus ist mit unserem EDV-ler über sowas kaum zu reden. Der sagt immer: "Ist alles kein Problem, ich mach das schon."
Mit dem muß es vmtl. auch koordiniert werden?
Zitat:
Leider dauert das Ewigkeiten, dann macht der das so, dass nur er damit klarkommt und drittens ist überhaupt die Frage, ob das dann so läuft, wie ich mir das vorstelle.
Wahrscheinlich muß man einem typischen EDV-ler öfters etwas "bearbeiten", und wenn
so jemand mal gar keine Phantasie hat wirds schwierig.
Vielleicht kannst du ja seinen Ehrgeiz wecken. Womöglich gibt es doch irgendeine
eher einfache Lösung, um zumindest "Bei jeder Änderung musste je der 4
existierenden HTML-Seiten geändert werden" zu vereinfachen.
Entweder doch ein Baukasten wie in meinen ersten Postings per PHP oder SSI,
d.h. die vier existierenden Seiten werden im Baukasten zusammengesetzt und du
mußt u.U. nur einen Baustein ändern statt vier Seiten.
Oder statt eines Baukastens werden für bestimmte einheitliche Seiten die Anfragen
der verschiedenen vier Seiten intern vom Server auf eine einzige Seite umgeleitet.
Wenn du den EDVler fragst welche Strategie der denn als rasche einfache Lösung
besser finden würde usw., kommt ja vielleicht was bei raus.
Mit unserem EDVler ist leider nicht zu reden. Der steht auf dem Standpunkt: "Ich hab Ahnung, alle anderen nicht." Wenn man dem was vorschlägt, ist immer alles "Kein Problem", aber die Umsetzung wird, selbst mit Druck der Geschäftsleitung, ewig dauern und dann auch so wie er es will (und nicht wie vorgeschlagen).
Da heißt es also: Selbst ist der Mann, wobei es leider so ist, dass ich sowas nur nebenbei machen kann, obwohl es viel mehr Zeit erfordern würde.
Genug rumgejammert - ich werd mal ein wenig rumprobieren und mich ggf. nochmal hier melden