true]; switch ($action) { case 'authSourcesList': $start = $_REQUEST['start'] ?? 0; $limit = $_REQUEST['limit'] ?? $limit_size; $filter = $_REQUEST['textFilter'] ?? ''; $orderBy = $_REQUEST['orderBy'] ?? ''; $ascending = $_REQUEST['ascending'] ?? 'asc'; $authSources = new AuthSources(); $responseProxy = $authSources->getListAuthSources($userUid, $start, $limit, $orderBy, $ascending, $filter); break; case 'authSourcesDelete': if (!isset($_REQUEST['auth_uid'])) { throw new Exception('No auth source UID was sent'); } $authSourceUid = $_REQUEST['auth_uid']; $authSources = new AuthSources(); $responseProxy = $authSources->removeAuthSource($authSourceUid); break; case 'authSourcesVerifyName': if (empty($_REQUEST['AUTH_SOURCE_NAME'])) { throw new Exception('No auth source UID was sent'); } $authSourceName = $_REQUEST['AUTH_SOURCE_NAME']; $authSources = new AuthSources(); $responseProxy = $authSources->verifyAuthSourceName($authSourceName); break; case 'authSourcesTestConnection': if ($_REQUEST['AUTH_ANONYMOUS'] == '1') { $_REQUEST['AUTH_SOURCE_SEARCH_USER'] = ''; $_REQUEST['AUTH_SOURCE_PASSWORD'] = ''; } $authSourceData = $_REQUEST; $authSourceData['AUTH_SOURCE_VERSION'] = 3; $authSources = new AuthSources(); $responseProxy = $authSources->testConnection($authSourceData); break; case 'authSourcesSave': $temporalData = $_REQUEST; if (isset($temporalData['AUTH_SOURCE_SHOWGRID-checkbox'])) { if ($temporalData['AUTH_SOURCE_SHOWGRID-checkbox'] == 'on') { $temporalData['AUTH_SOURCE_SHOWGRID'] = 'on'; $attributes = G::json_decode($temporalData['AUTH_SOURCE_GRID_TEXT']); $con = 1; foreach ($attributes as $value) { $temporalData['AUTH_SOURCE_GRID_ATTRIBUTE'][$con] = (array)$value; $con++; } } unset($temporalData['AUTH_SOURCE_SHOWGRID-checkbox']); } if ($temporalData['AUTH_ANONYMOUS'] == '1') { $temporalData['AUTH_SOURCE_SEARCH_USER'] = ''; $temporalData['AUTH_SOURCE_PASSWORD'] = ''; } unset($temporalData['AUTH_SOURCE_GRID_TEXT']); unset($temporalData['DELETE1']); unset($temporalData['DELETE2']); unset($temporalData['AUTH_SOURCE_ATTRIBUTE_IDS']); unset($temporalData['AUTH_SOURCE_SHOWGRID_FLAG']); unset($temporalData['AUTH_SOURCE_GRID_TEXT']); $commonFields = array('AUTH_SOURCE_UID', 'AUTH_SOURCE_NAME', 'AUTH_SOURCE_PROVIDER', 'AUTH_SOURCE_SERVER_NAME', 'AUTH_SOURCE_PORT', 'AUTH_SOURCE_ENABLED_TLS', 'AUTH_ANONYMOUS', 'AUTH_SOURCE_SEARCH_USER', 'AUTH_SOURCE_PASSWORD', 'AUTH_SOURCE_VERSION', 'AUTH_SOURCE_BASE_DN', 'AUTH_SOURCE_OBJECT_CLASSES', 'AUTH_SOURCE_ATTRIBUTES'); $authSourceData = $authSourceExtraData = array(); foreach ($temporalData as $sField => $sValue) { if (in_array($sField, $commonFields)) { $authSourceData[$sField] = $sValue; } else { $authSourceExtraData[$sField] = $sValue; } } if (!isset($authSourceExtraData['AUTH_SOURCE_SHOWGRID']) || $authSourceExtraData['AUTH_SOURCE_SHOWGRID'] == 'off') { unset($authSourceExtraData['AUTH_SOURCE_GRID_ATTRIBUTE']); unset($authSourceExtraData['AUTH_SOURCE_SHOWGRID']); } $authSourceData['AUTH_SOURCE_DATA'] = $authSourceExtraData; $authSources = new AuthSources(); $responseProxy = $authSources->saveAuthSource($authSourceData); break; case 'authSourcesImportSearchUsers': if (!isset($_REQUEST['sUID'])) { throw new Exception('No auth source UID was sent'); } $authSourceUid = $_POST['sUID']; $filters = [ 'start'=> $_POST['start'] ?? 0, 'limit'=> $_POST['limit'] ?? ($_POST["pageSize"] ?? 10), 'text'=> $_POST['sKeyword'] ?? '' ]; $authSources = new AuthSources(); $responseProxy = $authSources->searchUsers($authSourceUid, $filters); break; case 'authSourcesImportUsers': if (!isset($_REQUEST['UsersImport'])) { throw new Exception('There are no users to import'); } if (!isset($_REQUEST['AUTH_SOURCE_UID'])) { throw new Exception('The auth source UID was not sent'); } $authSourceUid = $_REQUEST['AUTH_SOURCE_UID']; $usersImport = $_REQUEST['UsersImport']; $usersImport = json_decode($usersImport, true); $authSources = new AuthSources(); $responseProxy = $authSources->importUsers($authSourceUid, $usersImport); break; case 'authSourcesImportLoadDepartment': $responseProxy['success'] = true; break; case 'authSourcesImportSaveDepartment': $responseProxy['success'] = true; break; case 'authSourcesImportLoadGroup': $responseProxy['success'] = true; break; case 'authSourcesImportSaveGroup': $responseProxy['success'] = true; break; default: throw new Exception('The action "' . $action . '" is not allowed'); break; } header('Content-Type: application/json'); echo json_encode($responseProxy, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE); } catch (Exception $exception) { $responseProxy['success'] = false; $responseProxy['message'] = $exception->getMessage(); header('Content-Type: application/json'); echo json_encode($responseProxy, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE); }