// holt eine Liste der ausgewählten Rolen $dbChildRoles = RoleDependency::getChildRoles($gDb, $getRoleId); // entferne alle Rollen die nicht mehr ausgewählt sind if ($dbChildRoles != -1) { foreach ($dbChildRoles as $dbChildRole) { if (!in_array($dbChildRole, $sentChildRoles, true)) { $roleDep->get($dbChildRole, $getRoleId); $roleDep->delete(); } } } // add all new role dependencies to database if (count($sentChildRoles) > 0) { foreach ($sentChildRoles as $sentChildRole) { if ($dbChildRoles != -1 && !in_array($sentChildRole, $dbChildRoles, true) && $sentChildRole > 0) { $roleDep->clear(); $roleDep->setChild($sentChildRole); $roleDep->setParent($getRoleId); $roleDep->insert($gCurrentUser->getValue('usr_id')); // füge alle Mitglieder der ChildRole der ParentRole zu $roleDep->updateMembership(); } } } } else { RoleDependency::removeChildRoles($gDb, $getRoleId); } $gNavigation->deleteLastUrl(); unset($_SESSION['roles_request']); $gMessage->setForwardUrl($gNavigation->getUrl(), 2000); $gMessage->show($gL10n->get('SYS_SAVE_DATA'));