Esempio n. 1
0
 // holt die Role ID des letzten Insert Statements
 if ($getRoleId === 0) {
     $getRoleId = $role->getValue('rol_id');
 }
 // save role dependencies in database
 if (array_key_exists('dependent_roles', $_POST)) {
     $sentChildRoles = $_POST['dependent_roles'];
     $roleDep = new RoleDependency($gDb);
     // 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();
             }
         }