feat(gps): фильтры heartbeat-эхо/valid=false/spike; доступ к GPS и Финансам — матрица на /users (пользователи+роли)
This commit is contained in:
@@ -9,8 +9,6 @@ import {
|
||||
gpsGroupAssets,
|
||||
gpsAssetSubscribers,
|
||||
gpsSettings,
|
||||
roles,
|
||||
roleMembers,
|
||||
type GpsAsset,
|
||||
type GpsPosition,
|
||||
type GpsGeozone,
|
||||
@@ -471,8 +469,6 @@ export class GpsStorage {
|
||||
defaultLat: number | null;
|
||||
defaultLng: number | null;
|
||||
defaultZoom: number | null;
|
||||
allowedUserIds: number[] | null;
|
||||
allowedRoleIds: number[] | null;
|
||||
}> {
|
||||
const [row] = await db
|
||||
.select()
|
||||
@@ -485,8 +481,6 @@ export class GpsStorage {
|
||||
defaultLat: row?.defaultLat ?? null,
|
||||
defaultLng: row?.defaultLng ?? null,
|
||||
defaultZoom: row?.defaultZoom ?? null,
|
||||
allowedUserIds: row?.allowedUserIds ?? null,
|
||||
allowedRoleIds: row?.allowedRoleIds ?? null,
|
||||
};
|
||||
}
|
||||
|
||||
@@ -499,8 +493,6 @@ export class GpsStorage {
|
||||
defaultLat: number | null;
|
||||
defaultLng: number | null;
|
||||
defaultZoom: number | null;
|
||||
allowedUserIds: number[] | null;
|
||||
allowedRoleIds: number[] | null;
|
||||
}
|
||||
): Promise<GpsSettings> {
|
||||
const [row] = await db
|
||||
@@ -513,16 +505,6 @@ export class GpsStorage {
|
||||
.returning();
|
||||
return row;
|
||||
}
|
||||
|
||||
/** Организационные роли пользователя (через role_members) в рамках организации */
|
||||
async getUserRoleIds(userId: number, organizationId: number): Promise<number[]> {
|
||||
const rows = await db
|
||||
.select({ roleId: roleMembers.roleId })
|
||||
.from(roleMembers)
|
||||
.innerJoin(roles, eq(roleMembers.roleId, roles.id))
|
||||
.where(and(eq(roleMembers.userId, userId), eq(roles.organizationId, organizationId)));
|
||||
return rows.map((r) => r.roleId);
|
||||
}
|
||||
}
|
||||
|
||||
export const gpsStorage = new GpsStorage();
|
||||
|
||||
Reference in New Issue
Block a user