feat(gps): фильтры heartbeat-эхо/valid=false/spike; доступ к GPS и Финансам — матрица на /users (пользователи+роли)
This commit is contained in:
@@ -48,6 +48,8 @@ export class RolesStorage extends BillingStorage {
|
||||
description: roles.description,
|
||||
parentId: roles.parentId,
|
||||
managerId: roles.managerId,
|
||||
gpsAccess: roles.gpsAccess,
|
||||
financeAccess: roles.financeAccess,
|
||||
createdAt: roles.createdAt,
|
||||
}).from(roles).where(eq(roles.organizationId, organizationId)).orderBy(asc(roles.name));
|
||||
|
||||
@@ -149,7 +151,7 @@ export class RolesStorage extends BillingStorage {
|
||||
return role;
|
||||
}
|
||||
|
||||
async updateRole(id: number, organizationId: number, updates: { name?: string; description?: string | null; parentId?: number | null; managerId?: number | null }) {
|
||||
async updateRole(id: number, organizationId: number, updates: { name?: string; description?: string | null; parentId?: number | null; managerId?: number | null; gpsAccess?: boolean; financeAccess?: boolean }) {
|
||||
const { roles } = await import('@shared/schema');
|
||||
if (updates.parentId) {
|
||||
if (updates.parentId === id) throw new Error('Роль не может быть родителем самой себя');
|
||||
@@ -256,6 +258,8 @@ export class RolesStorage extends BillingStorage {
|
||||
description: roles.description,
|
||||
parentId: roles.parentId,
|
||||
managerId: roles.managerId,
|
||||
gpsAccess: roles.gpsAccess,
|
||||
financeAccess: roles.financeAccess,
|
||||
createdAt: roles.createdAt,
|
||||
}).from(roleMembers)
|
||||
.innerJoin(roles, eq(roleMembers.roleId, roles.id))
|
||||
|
||||
Reference in New Issue
Block a user