Browse Source

minor fix

pull/2170/head
Bernd Storath 9 months ago
parent
commit
0ff941ce62
  1. 5
      src/app/stores/clients.ts
  2. 12
      src/server/database/repositories/client/service.ts
  3. 2
      src/server/database/repositories/client/types.ts
  4. 12
      src/server/utils/WireGuard.ts

5
src/app/stores/clients.ts

@ -32,7 +32,7 @@ export const useClientsStore = defineStore('Clients', () => {
const clientsPersist = ref<Record<string, ClientPersist>>({});
const searchParams = ref({
filter: '',
filter: undefined as string | undefined,
});
const { data: _clients, refresh: _refresh } = useFetch('/api/client', {
@ -125,6 +125,7 @@ export const useClientsStore = defineStore('Clients', () => {
};
});
// TODO: move search to backend
if (transformedClients !== undefined) {
transformedClients = sortByProperty(
transformedClients,
@ -138,7 +139,7 @@ export const useClientsStore = defineStore('Clients', () => {
function setSearchQuery(filter: string) {
clients.value = null;
searchParams.value.filter = filter;
searchParams.value.filter = filter || undefined;
}
return { clients, clientsPersist, refresh, _clients, setSearchQuery };

12
src/server/database/repositories/client/service.ts

@ -133,11 +133,8 @@ export class ClientService {
* Get clients based on user ID and filter conditions
*/
async getForUserFiltered(userId: ID, filter: string) {
if (!filter.trim()) {
return this.getForUser(userId);
}
const filterPattern = `%${filter.toLowerCase()}%`;
const result = await this.#statements.findByUserIdFiltered.execute({
userId,
filter: filterPattern,
@ -151,14 +148,11 @@ export class ClientService {
}
/**
* Get all public clients based on filter conditions
* Get all clients based on filter conditions without sensitive data
*/
async getAllPublicFiltered(filter: string) {
if (!filter.trim()) {
return this.getAllPublic();
}
const filterPattern = `%${filter.toLowerCase()}%`;
const result = await this.#statements.findAllPublicFiltered.execute({
filter: filterPattern,
});

2
src/server/database/repositories/client/types.ts

@ -39,7 +39,7 @@ const address6 = z
.min(1, { message: t('zod.client.address6') })
.pipe(safeStringRefine);
const filter = z.string().optional().default('');
const filter = z.string().optional();
const serverAllowedIps = z.array(AddressSchema, {
message: t('zod.client.serverAllowedIps'),

12
src/server/utils/WireGuard.ts

@ -61,14 +61,16 @@ class WireGuard {
WG_DEBUG('Config synced successfully.');
}
async getClientsForUser(userId: ID, filter: string) {
async getClientsForUser(userId: ID, filter?: string) {
const wgInterface = await Database.interfaces.get();
let dbClients;
if (filter.trim()) {
if (filter?.trim()) {
dbClients = await Database.clients.getForUserFiltered(userId, filter);
} else {
dbClients = await Database.clients.getForUser(userId);
}
const clients = dbClients.map((client) => ({
...client,
latestHandshakeAt: null as Date | null,
@ -107,14 +109,16 @@ class WireGuard {
return clientDump;
}
async getAllClients(filter: string) {
async getAllClients(filter?: string) {
const wgInterface = await Database.interfaces.get();
let dbClients;
if (filter.trim()) {
if (filter?.trim()) {
dbClients = await Database.clients.getAllPublicFiltered(filter);
} else {
dbClients = await Database.clients.getAllPublic();
}
const clients = dbClients.map((client) => ({
...client,
latestHandshakeAt: null as Date | null,

Loading…
Cancel
Save