Multisite mit Subdomains, wie macht man es am Besten?
am 23.02.2010 - 19:04 Uhr in
Hallo Drupaler,
ich habe ein ziemlich komplexes Thema vor mir, dass ich mit Drupal umsetzen möchte. Um besseres Verständnis zu geben, habe ich folgendes Konzept erstellt:

Dabei soll folgendes möglich sein:
1. Es gibt nur einen Administrator, der die Subdomains betreut
2. Je Subdomain (Klassen) soll es einen Admin (Klassenlehrer) geben, der weitere Benutzer (Schüler) anlegen kann.
(aber nur für seinen Bereich)
3. Für jeden Benutzer (Schüler) soll es unterschiedliche Berechtigungen geben. Der Klassensprecher soll
mehr Rechte als die anderen haben.
4. Die Programmpunkte sollen für alle Subdomains gültig sein (Schüler erfassen, Schüler bearbeiten, etc.)
5. Es soll nur eine Datenbank verwendet werden.
6. Eventuell soll zwischen den Klassen eine Kommunikation möglich sein.
Urpsrünglicher Gedanke war, eine Multisite mit Subdomains aufzubauen und eine Datenbank mit einem Präfix für jede "Klasse" zu benutzen. Lassen sich denn dann Programmpunkte wie Schüler erfassen etc. bauen, die globale Gültigkeit für alle Subdomains besitzen? Gibt es vielleicht eine bessere bzw. einfachere Lösung?
Kann mir da mal jemand einen Rat geben? Vielen Dank schonmal im voraus.
Gruss
Frank
- Anmelden oder Registrieren um Kommentare zu schreiben

Hallo Frank, mein erster
am 23.02.2010 - 19:51 Uhr
Hallo Frank,
mein erster Gedanke war: Hier würde ich nicht mit Subdomains arbeiten. Beschäftige mich gerade selber damit.
Versuche es lieber mit Gruppen und Benutzerrollen, das ist ein klassischer Fall für Berechtigungen.
Die Subdomains klasse-xy würde ich nicht verwenden. Du wärst damit beschäftigt jedes Jahr neue Subdomains zu erstellen, zu löschen usw.
Rolle Administrator (alle Rechte)
Rolle-Lehrer (darf mehr machen, z.B. User Anlegen)
beinhaltet
Rolle Lehrer A
Rolle Lehrer B...
dann gibt es noch
Rolle-KlasseA
Rolle-KlasseB
usw.
Der Admin legt dann die Rollen an und gibt der Rolle-LeherA die Berechtigungen User mit der Rolle-KlasseA anzulegen usw.
Ich habe es so nie in Drupal umgesetzt. Denke dass es mit den Standardmodulen so auch nicht geht. Mit Sicherheit gibt es aber Module dafür.
Vortei. Du hast wirklich alles auf einer Instanz laufen, denn es ist ja eine Schule.
Wenn noch eine andere Schule eine WebSite will, dann wäre MultiSite interessant.
Ich hoffe der Gedankenansatz hilft ggf. weiter. Auch wenn es Deine Frage nicht direkt beantwortet hat.
-----------------
Gruss Kemal
http://www.oguz-online.de
Hallo Frank, hier habe ich
am 23.02.2010 - 20:48 Uhr
Hallo Frank,
hier habe ich noch Module gefunden, die das Problem lösen könnten.
Habe es nicht selbst getestet.
http://drupal.org/project/role_delegation
http://drupal.org/project/administerusersbyrole
Wichtig ist, dass einfach Lehrer A nur Schüler A freigeben, löschen usw machen kann.
Der Authentic User hat dann die Rechte die Du generell vergibst.
So ich hoffe das hilft weiter.
//Nachtrag: Ich habe es jetzt getestet und bin der Meinung Role_Delegation könnte hier sehr gut sein.
-----------------
Gruss Kemal
http://www.oguz-online.de
Multisite sollte notwendig sein
am 24.02.2010 - 08:11 Uhr
Hallo Kemal,
ersteinmal vielen Dank für Deine Bemühungen.
Ich halte eine Multisite für erforderlich, weil das System auch schulübergreifend funktionieren soll. Ein häufiges Wechseln (Löschen und Neuanlage) sollte nicht erforderlich sein, denn statt "Klasse.." ist eher "Jahrgang" anzusetzen.
Meine Grundfrage bleibt. Lassen sich einzelne programmierten Websites (wie Schüler erfassen, Schüler bearbeiten, etc.) global (also für alle Subdomains) einrichten?
Gruss
Frank
Organic Groups?
am 24.02.2010 - 08:48 Uhr
Hallo Frank,
Eine Multisite-Installation auf dem eigenen Rechner hast du wahrscheinlich schon gelesen. So wie ich dein Szenario verstehe, wirst du womöglich mit gemeinsamen Tabellen über alle Multisites hinweg arbeiten müssen, das kann aber ziemlich komplex werden.
Es gibt allerdings eine ganze Reihe von hilfreichen Modulen für die Verwaltung von Multisites: http://drupal.org/search/apachesolr_search/multisite
Auch das Modul "Domain Access" könnte für dich interessant sein.
Ansonsten würde ich auch Kemals Vorschlag unterstützen und empfehlen, das Ganze lieber mit Gruppen zu realisieren. Das Modul "Organic Groups" ist da Standard. (Dort lohnt auch immer ein Blick auf die "Related Modules".)
Gruß
Frank
Bitte Erledigtes im Betreff des ersten Postings als [gelöst] markieren.
Ich sehe hier wirklich
am 24.02.2010 - 10:24 Uhr
Ich sehe hier wirklich Schwierigkeiten.
Du müsstest ja nur die Tabellen, die für die Benutzer zuständig ist verwenden.
Ein Gedanke der mir dann da kommt ist ggf. über LDAP zu arbeiten. Dazu sollte es auch Tools geben.
(Hatte es noch nie eingesetzt)
Also Zentral die Benutzer zu verwalten und den Rest in eigenen Datenbanken.
Das was ich meine
Domain 1 -> Datenbank 1
Domain 2 -> Datenbank 2
LDAP für beide Datenbanken.
Natürlich kannst Du auch für beide Domains die gleiche Datenbank verwenden, also Damain1 und Domain2 haben Datenbank0.
Hier sehe ich aber dann für Dein Problem keinen Vorteil.
Ich weiss, Dein Problem ist noch nicht gelöst, dennoch will ich einfach diese Gedanken herschreiben. Vielleicht hilft der Ansatz auch weiter.
-----------------
Gruss Kemal
http://www.oguz-online.de
gemeinsame Datenbanktabellen - Vor- und Nachteile
am 24.02.2010 - 12:30 Uhr
Multi-site with single codebase, different content databases, shared user database, shared sign-on und Share tables across instances (not recommended) führen Vor- und Nachteile einer solchen Vorgehensweise auf.
Gruß
Frank
Bitte Erledigtes im Betreff des ersten Postings als [gelöst] markieren.
Prefix
am 24.02.2010 - 15:05 Uhr
Schonmal mit nem Prefix sharing probiert?
Du hast eine Datenbank, müsste so aussehen ungefähr
klasse1_system ....
klasse2_system ....
klasse3_system ....
der Trick ist jetzt dass du in der Settings.php sagst, dass die user tabelle die gleiche für alle Seiten ist.
Hier mal ein Beispiel für Klasse1
<?php$db_prefix = array(
'default' => 'klasse1_',
'users' => 'shared_',
'sessions' => 'shared_',
'role' => 'shared_',
'authmap' => 'shared_',
);
?>
Wenn man jetzt das Organic Goup modul anwendet, kannste du für jede Klasse ein sich selbst verwaltende Usergruppe erstellen, in der du als root-admin trotzdem alle Gewalt hast.
Ich hoffe dass das die weiterhilft.
lg. Hydra