rework issue system
This commit is contained in:
@@ -0,0 +1,20 @@
|
||||
-- Migration 055: Ensure wissen:view and bestellungen:view are seeded for all dashboard groups
|
||||
-- Re-seeds permissions that may be missing due to migration ordering or cascade deletes.
|
||||
-- Uses ON CONFLICT DO NOTHING — safe to run multiple times.
|
||||
|
||||
DO $$
|
||||
DECLARE
|
||||
grp TEXT;
|
||||
BEGIN
|
||||
FOR grp IN
|
||||
SELECT DISTINCT authentik_group FROM group_permissions WHERE authentik_group LIKE 'dashboard_%'
|
||||
LOOP
|
||||
INSERT INTO group_permissions (authentik_group, permission_id)
|
||||
VALUES (grp, 'wissen:view'), (grp, 'wissen:widget_recent'), (grp, 'wissen:widget_search')
|
||||
ON CONFLICT DO NOTHING;
|
||||
|
||||
INSERT INTO group_permissions (authentik_group, permission_id)
|
||||
VALUES (grp, 'bestellungen:view')
|
||||
ON CONFLICT DO NOTHING;
|
||||
END LOOP;
|
||||
END $$;
|
||||
@@ -117,7 +117,7 @@ async function getOrders(filters?: { status?: string; lieferant_id?: number; bes
|
||||
const result = await pool.query(
|
||||
`SELECT b.*,
|
||||
l.name AS lieferant_name,
|
||||
u.display_name AS besteller_name,
|
||||
COALESCE(u.name, u.preferred_username, u.email) AS besteller_name,
|
||||
COALESCE(pos.total_cost, 0) AS total_cost,
|
||||
COALESCE(pos.items_count, 0) AS items_count
|
||||
FROM bestellungen b
|
||||
@@ -145,7 +145,7 @@ async function getOrderById(id: number) {
|
||||
const orderResult = await pool.query(
|
||||
`SELECT b.*,
|
||||
l.name AS lieferant_name,
|
||||
u.display_name AS besteller_name
|
||||
COALESCE(u.name, u.preferred_username, u.email) AS besteller_name
|
||||
FROM bestellungen b
|
||||
LEFT JOIN lieferanten l ON l.id = b.lieferant_id
|
||||
LEFT JOIN users u ON u.id = b.erstellt_von
|
||||
@@ -158,7 +158,7 @@ async function getOrderById(id: number) {
|
||||
pool.query(`SELECT * FROM bestellpositionen WHERE bestellung_id = $1 ORDER BY id`, [id]),
|
||||
pool.query(`SELECT * FROM bestellung_dateien WHERE bestellung_id = $1 ORDER BY hochgeladen_am DESC`, [id]),
|
||||
pool.query(`SELECT * FROM bestellung_erinnerungen WHERE bestellung_id = $1 ORDER BY faellig_am`, [id]),
|
||||
pool.query(`SELECT h.*, u.display_name AS benutzer_name FROM bestellung_historie h LEFT JOIN users u ON u.id = h.erstellt_von WHERE h.bestellung_id = $1 ORDER BY h.erstellt_am DESC`, [id]),
|
||||
pool.query(`SELECT h.*, COALESCE(u.name, u.preferred_username, u.email) AS benutzer_name FROM bestellung_historie h LEFT JOIN users u ON u.id = h.erstellt_von WHERE h.bestellung_id = $1 ORDER BY h.erstellt_am DESC`, [id]),
|
||||
]);
|
||||
|
||||
return {
|
||||
@@ -579,7 +579,7 @@ async function logAction(bestellungId: number, aktion: string, details: string,
|
||||
async function getHistory(bestellungId: number) {
|
||||
try {
|
||||
const result = await pool.query(
|
||||
`SELECT h.*, u.display_name AS benutzer_name
|
||||
`SELECT h.*, COALESCE(u.name, u.preferred_username, u.email) AS benutzer_name
|
||||
FROM bestellung_historie h
|
||||
LEFT JOIN users u ON u.id = h.erstellt_von
|
||||
WHERE h.bestellung_id = $1
|
||||
|
||||
@@ -525,7 +525,7 @@ class EquipmentService {
|
||||
async getStatusHistory(equipmentId: string) {
|
||||
try {
|
||||
const result = await pool.query(
|
||||
`SELECT h.*, u.display_name AS geaendert_von_name
|
||||
`SELECT h.*, COALESCE(u.name, u.preferred_username, u.email) AS geaendert_von_name
|
||||
FROM ausruestung_status_historie h
|
||||
LEFT JOIN users u ON u.id = h.geaendert_von
|
||||
WHERE h.ausruestung_id = $1
|
||||
|
||||
@@ -653,7 +653,7 @@ class VehicleService {
|
||||
async getStatusHistory(fahrzeugId: string) {
|
||||
try {
|
||||
const result = await pool.query(
|
||||
`SELECT h.*, u.display_name AS geaendert_von_name
|
||||
`SELECT h.*, COALESCE(u.name, u.preferred_username, u.email) AS geaendert_von_name
|
||||
FROM fahrzeug_status_historie h
|
||||
LEFT JOIN users u ON u.id = h.geaendert_von
|
||||
WHERE h.fahrzeug_id = $1
|
||||
|
||||
Reference in New Issue
Block a user