Guten Tag,
Ich hätte da mal eher eine allgemeinere konzeptionelle Frage:
Ich habe in PHP so ne kleine Dateiablage geschrieben, die aktuell noch kein direktes Berechtigungskonzept besitzt. Dies soll sich nun ändern!! Es gibt mehrere Leute die diese Dateiablage benutzen, aber sich bei dem Server halt nur mir einem FTP-Benutzer am Server anmelden, weswegen ich die Berechtigungen nicht via chmod regeln kann. Aus diesem Grund brauch ich ein eigenes Berechtigungskonzept.
Dazu habe ich mir 2 Konzepte ausgedacht:
1.) Ich kann die Dateiablage in einer Datenbank "mappen" und bei jedem Upload, wird dann die Datei hochgeladen und ein entsprechender Eintrag in der DB getätigt. In der DB kann ich dann zusätzliche Angaben zur Berechtigung tätigen. Nachteil ist aber, dass sollte der Upload in irgendeiner Form schief gehen, dann kann es sein, dass ich in eine Datei hochgeladen habe, aber keinen Eintrag in der DB habe, was dann aber dazu führt, dass die Datei keiner sieht. Somit kann es sein, dass sich der Server mit Trash-Daten vollmöhlt. Das würde wiederrum bedeutet, dass ich nen Cron-Job schreiben müsste, der in Regelmäßigen Abständen die Dateiablage mit der Datenbank abgleicht und alle Inkompatibilitäten rauslöscht. Finde ich genrell keine saubere Lösung!
2.) Ich führe eine Konvention ein. Jede Datei / Ordner bekommt am Namensanfang eine ID. Diese ID bestimmt dann die Berechtigung. Die Regeln für die Berechtigungen würden dann in der DB stehen. Hierbei handelt es sich dann aber um eher allgemeingültigere Regeln, die nicht direkt dateiabhängig sind. Nachteil ist der, dass jeder, der an der Dateiablage programmiert, die Konvention auch kennen muss, damit das funktioniert. Außerdem kann es Probleme geben, sobald sich die Regeln für die Berechtigung ändern, bzw. ich die ID erweitern müsste oder sowas (also im Bezug auf die alten Datein)... Weiterhin müsste ich die paar Stellen am Anfang immer abschneiden. Für mich auch irgendwie keine saubere Lösung.
Jetzt frage ich mich, gibt es noch andere Konzepte? Wie macht man es "richtig", oder wie löst man diese Problematik generell??? Welche anderen Konzepte gibt es noch?? Wie habt ihr das Problem gelöst??
Ich wäre über jeden Tipp und Erfahrungsberichte sehr dankbar!!
Gruß
V
PS: Ich hatte vor dieses Thema bereits in anderen Foren zu diskutieren um ein möglichst großen Überblick zu erhalten und das möglichst beste Konzept zu erarbeiten. Ich bin davon ausgegangen somit mehr Leute anzusprechen und somit mehr Erfahrungsberichte und Anregungen zu erlangen. Beide Foren (Berechtigungskonzept in der Dateiablage - Entwickler-Forum , php.de) reagierten ziemlich empört darüber und schlossen beide Beiträge. Nun hoffe ich hier das Thema endlich diskutieren zu können und eure Erfahrungsberichte und Anregungen einzuholen!
Ich hätte da mal eher eine allgemeinere konzeptionelle Frage:
Ich habe in PHP so ne kleine Dateiablage geschrieben, die aktuell noch kein direktes Berechtigungskonzept besitzt. Dies soll sich nun ändern!! Es gibt mehrere Leute die diese Dateiablage benutzen, aber sich bei dem Server halt nur mir einem FTP-Benutzer am Server anmelden, weswegen ich die Berechtigungen nicht via chmod regeln kann. Aus diesem Grund brauch ich ein eigenes Berechtigungskonzept.
Dazu habe ich mir 2 Konzepte ausgedacht:
1.) Ich kann die Dateiablage in einer Datenbank "mappen" und bei jedem Upload, wird dann die Datei hochgeladen und ein entsprechender Eintrag in der DB getätigt. In der DB kann ich dann zusätzliche Angaben zur Berechtigung tätigen. Nachteil ist aber, dass sollte der Upload in irgendeiner Form schief gehen, dann kann es sein, dass ich in eine Datei hochgeladen habe, aber keinen Eintrag in der DB habe, was dann aber dazu führt, dass die Datei keiner sieht. Somit kann es sein, dass sich der Server mit Trash-Daten vollmöhlt. Das würde wiederrum bedeutet, dass ich nen Cron-Job schreiben müsste, der in Regelmäßigen Abständen die Dateiablage mit der Datenbank abgleicht und alle Inkompatibilitäten rauslöscht. Finde ich genrell keine saubere Lösung!
2.) Ich führe eine Konvention ein. Jede Datei / Ordner bekommt am Namensanfang eine ID. Diese ID bestimmt dann die Berechtigung. Die Regeln für die Berechtigungen würden dann in der DB stehen. Hierbei handelt es sich dann aber um eher allgemeingültigere Regeln, die nicht direkt dateiabhängig sind. Nachteil ist der, dass jeder, der an der Dateiablage programmiert, die Konvention auch kennen muss, damit das funktioniert. Außerdem kann es Probleme geben, sobald sich die Regeln für die Berechtigung ändern, bzw. ich die ID erweitern müsste oder sowas (also im Bezug auf die alten Datein)... Weiterhin müsste ich die paar Stellen am Anfang immer abschneiden. Für mich auch irgendwie keine saubere Lösung.
Jetzt frage ich mich, gibt es noch andere Konzepte? Wie macht man es "richtig", oder wie löst man diese Problematik generell??? Welche anderen Konzepte gibt es noch?? Wie habt ihr das Problem gelöst??
Ich wäre über jeden Tipp und Erfahrungsberichte sehr dankbar!!
Gruß
V
PS: Ich hatte vor dieses Thema bereits in anderen Foren zu diskutieren um ein möglichst großen Überblick zu erhalten und das möglichst beste Konzept zu erarbeiten. Ich bin davon ausgegangen somit mehr Leute anzusprechen und somit mehr Erfahrungsberichte und Anregungen zu erlangen. Beide Foren (Berechtigungskonzept in der Dateiablage - Entwickler-Forum , php.de) reagierten ziemlich empört darüber und schlossen beide Beiträge. Nun hoffe ich hier das Thema endlich diskutieren zu können und eure Erfahrungsberichte und Anregungen einzuholen!
Kommentar