Esempio n. 1
0
    // hidden roles can also see hidden categories
    if ($role->getValue('cat_system') == 1) {
        $showSystemCategory = true;
    }
} else {
    $role->setValue('rol_this_list_view', '1');
    $role->setValue('rol_mail_this_role', '2');
}
if (isset($_SESSION['roles_request'])) {
    // durch fehlerhafte Eingabe ist der User zu diesem Formular zurueckgekehrt
    // nun die vorher eingegebenen Inhalte ins Objekt schreiben
    $role->setArray($_SESSION['roles_request']);
    unset($_SESSION['roles_request']);
}
// holt eine Liste der ausgewaehlten abhaengigen Rolen
$childRoles = RoleDependency::getChildRoles($gDb, $getRoleId);
$childRoleObjects = array();
// create html page object
$page = new HtmlPage($headline);
$page->addJavascript('
    checkMaxMemberCount();
    $("#rol_assign_roles").change(function() {
        markRoleRight("rol_assign_roles", "rol_all_lists_view", true);
    });
    $("#rol_all_lists_view").change(function() {
        markRoleRight(\'rol_all_lists_view\', \'rol_assign_roles\', false);
    });
    $("#rol_max_members").change(function() {
        checkMaxMemberCount();
    });', true);
$page->addJavascript('
Esempio n. 2
0
    // but don't change their own membership, because there must be at least one webmaster
    if ($row['rol_webmaster'] == 0 || $row['rol_webmaster'] == 1 && $gCurrentUser->isWebmaster() && $getUserId != $gCurrentUser->getValue('usr_id')) {
        $roleAssign = 0;
        if (isset($_POST['role-' . $row['rol_id']]) && $_POST['role-' . $row['rol_id']] == 1) {
            $roleAssign = 1;
        }
        $roleLeader = 0;
        if (isset($_POST['leader-' . $row['rol_id']]) && $_POST['leader-' . $row['rol_id']] == 1) {
            $roleLeader = 1;
        }
        // update role membership
        if ($roleAssign == 1) {
            $user->setRoleMembership($row['rol_id'], DATE_NOW, '9999-12-31', $roleLeader);
            ++$count_assigned;
            // find the parent roles and assign user to parent roles
            $tmpRoles = RoleDependency::getParentRoles($gDb, $row['rol_id']);
            foreach ($tmpRoles as $tmpRole) {
                if (!in_array($tmpRole, $parentRoles, true)) {
                    $parentRoles[] = $tmpRole;
                }
            }
        } else {
            // if membership already exists then stop this membership
            if ($row['mem_id'] > 0) {
                // subtract one day, so that user leaves role immediately
                $newEndDate = date('Y-m-d', time() - 24 * 60 * 60);
                $user->editRoleMembership($row['mem_id'], $row['mem_begin'], $newEndDate, $roleLeader);
            }
        }
    }
}
        if (isset($_POST['member_' . $getUserId]) && $_POST['member_' . $getUserId] === 'true') {
            $membership = true;
        }
        if (isset($_POST['leader_' . $getUserId]) && $_POST['leader_' . $getUserId] === 'true') {
            $membership = true;
            $leadership = true;
        }
        // Member
        $member = new TableMembers($gDb);
        // Datensatzupdate
        $mem_count = $role->countMembers($getUserId);
        // Wenn Rolle weniger mitglieder hätte als zugelassen oder Leiter hinzugefügt werden soll
        if ($leadership || !$leadership && $membership && ($role->getValue('rol_max_members') > $mem_count || $role->getValue('rol_max_members') == 0 || $role->getValue('rol_max_members') == 0)) {
            $member->startMembership($role->getValue('rol_id'), $getUserId, $leadership);
            // find the parent roles and assign user to parent roles
            $dependencies = RoleDependency::getParentRoles($gDb, $role->getValue('rol_id'));
            $parentRoles = array();
            foreach ($dependencies as $tmpRole) {
                $member->startMembership($tmpRole, $getUserId);
            }
            echo 'success';
        } elseif (!$leadership && !$membership) {
            $member->stopMembership($role->getValue('rol_id'), $getUserId);
            echo 'success';
        } else {
            $gMessage->show($gL10n->get('SYS_ROLE_MAX_MEMBERS', $role->getValue('rol_name')));
        }
    } catch (AdmException $e) {
        $e->showText();
    }
} else {
Esempio n. 4
0
         }
     }
 }
 // Daten in Datenbank schreiben
 $returnCode = $role->save();
 if ($returnCode < 0) {
     $gMessage->show($gL10n->get('SYS_NO_RIGHTS'));
 }
 // 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) {
Esempio n. 5
0
if (array_key_exists('first_row', $_POST)) {
    $firstRowTitle = true;
} else {
    $firstRowTitle = false;
}
// jede Zeile aus der Datei einzeln durchgehen und den Benutzer in der DB anlegen
$line = reset($_SESSION['file_lines']);
$user = new User($gDb, $gProfileFields);
$startRow = 0;
$countImportNewUser = 0;
$countImportEditUser = 0;
$countImportEditRole = 0;
$importedFields = array();
$depRoles = array();
// Abhängige Rollen ermitteln
$depRoles = RoleDependency::getParentRoles($gDb, $_SESSION['rol_id']);
if ($firstRowTitle == true) {
    // erste Zeile ueberspringen, da hier die Spaltenbezeichnungen stehen
    $line = next($_SESSION['file_lines']);
    $startRow = 1;
}
for ($i = $startRow; $i < count($_SESSION['file_lines']); $i++) {
    $user->clear();
    $columnArray = explode($_SESSION['value_separator'], $line);
    foreach ($columnArray as $columnKey => $columnValue) {
        // Hochkomma und Spaces entfernen
        $columnValue = trim(strip_tags(str_replace('"', '', $columnValue)));
        $columnValueToLower = admStrToLower($columnValue);
        // nun alle Userfelder durchgehen und schauen, bei welchem
        // die entsprechende Dateispalte ausgewaehlt wurde
        // dieser dann den Wert zuordnen