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 {
// 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 (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