feat(products): add UpsertNutritionDto import to products controller
This commit is contained in:
@@ -28,6 +28,8 @@
|
|||||||
| Matplan — inventariejämförelse | ❌ Saknas |
|
| Matplan — inventariejämförelse | ❌ Saknas |
|
||||||
| Seed produktdata med kategoritilldelning | ❌ Saknas (002-seed-products.sql.disabled) |
|
| Seed produktdata med kategoritilldelning | ❌ Saknas (002-seed-products.sql.disabled) |
|
||||||
| Användarspecifika produkter (UserProduct) | ⚠️ Schema klart, UI basic |
|
| Användarspecifika produkter (UserProduct) | ⚠️ Schema klart, UI basic |
|
||||||
|
| Användarroller (user / admin) | ❌ Saknas |
|
||||||
|
| Användarhantering i admin-UI | ❌ Saknas |
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -55,6 +57,14 @@ Admin-UI:t tillåter idag att sätta kategori per produkt. För att effektivt ka
|
|||||||
- Filtervy för okategoriserade produkter
|
- Filtervy för okategoriserade produkter
|
||||||
- Möjlighet att sätta kategori på flera produkter samtidigt (bulk-select)
|
- Möjlighet att sätta kategori på flera produkter samtidigt (bulk-select)
|
||||||
|
|
||||||
|
### 5. Användarroller och användarhantering i admin
|
||||||
|
Idag har alla inloggade användare samma behörighetsnivå. Behövs:
|
||||||
|
- **Databas:** Lägg till `role` (enum `user` | `admin`) på `User`-modellen i Prisma + migration
|
||||||
|
- **Backend:** Rollbaserad guard (`@Roles('admin')`) — skyddar admin-endpoints; vanliga användare nekas med 403
|
||||||
|
- **Auth:** Rollen inkluderas i JWT-tokenen och i Auth.js session-objektet
|
||||||
|
- **Frontend — admin-UI (`/admin/users/`):** Lista användare, skapa nya konton (namn, e-post, lösenord, roll), ändra roll, avaktivera konto
|
||||||
|
- **Frontend — skyddade routes:** `/admin/*` kräver admin-roll; omdirigerar annars till startsidan
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Teknisk skuld och städning
|
## Teknisk skuld och städning
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ import { ProductsService } from './products.service';
|
|||||||
import { MergeProductsDto } from './dto/merge-products.dto';
|
import { MergeProductsDto } from './dto/merge-products.dto';
|
||||||
import { UpdateCanonicalNameDto } from './dto/update-canonical-name.dto';
|
import { UpdateCanonicalNameDto } from './dto/update-canonical-name.dto';
|
||||||
import { SetTagsDto } from './dto/set-tags.dto';
|
import { SetTagsDto } from './dto/set-tags.dto';
|
||||||
|
import { UpsertNutritionDto } from './dto/upsert-nutrition.dto';
|
||||||
import { BulkUpdateProductsDto } from './dto/bulk-update-products.dto';
|
import { BulkUpdateProductsDto } from './dto/bulk-update-products.dto';
|
||||||
|
|
||||||
@Controller('products')
|
@Controller('products')
|
||||||
|
|||||||
Reference in New Issue
Block a user