drop trigger if exists GroupGroups_Trigger; CREATE TRIGGER Groups_Trigger BEFORE delete ON pbs_group FOR EACH ROW INSERT INTO pbs_groupgroups g SET g.parentID = (SELECT parentID FROM pbs_groupgroups WHERE groupID = old.gro INSERT INTO pbs_group (title) VALUES ('testgruppe1'); INSERT INTO pbs_group (title) VALUES ('testgruppe2'); INSERT INTO pbs_group (title) VALUES ('testgruppe3'); INSERT INTO pbs_group (title) VALUES ('testgruppe4'); INSERT INTO pbs_group (title) VALUES ('testgruppe5'); INSERT INTO pbs_groupgroups (parentID,groupID) VALUES (1,2); INSERT INTO pbs_groupgroups (parentID,groupID) VALUES (2,3); INSERT INTO pbs_groupgroups (parentID,groupID) VALUES (1,4); INSERT INTO pbs_groupgroups (parentID,groupID) VALUES (3,5); Löschen von Gruppen Case 1. Lösche alle Untergruppen Case 2. Untergruppen werden an Root gehängt Case 2. Untergruppen werden an alle Obergruppen der Gruppe gehängt (Authorisation der Obergruppe?) Case 3. Untergruppen werden an bestimmte Obergruppen gehängt (Authorisation der Obergruppe?) Löschen von Groupgroups Case1. Gruppe hat noch andere Obergruppen -> tue nichts Case2. Gruppe hat keine Obergruppen mehr -> hänge gruppe an root Gruppen verwalten root-gruppen Gruppen die unter Root hängen repräsentieren eine PBS-Datenbank Instanz, sog. root-gruppen (z.b. PBS-Server1) root-gruppen können nicht gelöscht werden root-gruppen können Untergruppen anlegen und wieder löschen root-gruppen besitzen angehörige, rollen, rechte angehörige mit den nötigen Rechten können Untergruppen erstellen und löschen. angehörige mit den nötigen Rechten können Personen anlegen, angehörigkeiten und rollen zuweisen angehörige mit den nötigen Rechten können rechte erstellen, ändern und löschen angehörige mit den nötigen Rechten können Untergruppen einen oder mehreren Gruppen unterstellen Gruppen Jede Gruppe kann mehrere Untergruppen erstellen und löschen Gruppen können sich nicht selbst löschen Jede Gruppe außer root-gruppen können mehrere Obergruppen besitzen Sanity Checks Constraints 1. Group -> Groupgroups 1. Groupgroups -> group, group 2. Grouprequests -> person, group 3. RightRoles -> role, right 4. Membership -> role, group, right 5. Role -> group 6. Config -> membership 7. BootOs -> group 8. Bootmenuentries -> bootos, bootmenu 9. Bootmenu -> membership 10. BootIso -> membership 11. Session -> client, bootos 12. MembershipFilters -> membership, filter 13. Poolentries -> pool, client 14. Filter -> membership, bootmenu 15. Poolfilters -> pool, filter 16. Filterentries -> filter, filtertype Not Null ...