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. 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);
            }
        }
    }
}
Esempio n. 3
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