Esempio n. 1
0
        $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'));
} elseif ($getMode === 3) {