예제 #1
0
     // 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'));