Skip to content

Commit 9c4787d

Browse files
committed
wip
1 parent 4a579f2 commit 9c4787d

70 files changed

Lines changed: 3366 additions & 2680 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/copilot-instructions.md

Lines changed: 190 additions & 99 deletions
Large diffs are not rendered by default.

.github/instructions/project-conventions.instructions.md

Lines changed: 0 additions & 88 deletions
This file was deleted.

SECRETS.md

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,17 @@
2121

2222
# Database
2323
# Local single-node example:
24-
dotnet user-secrets set "ConnectionStrings:DefaultConnection" "Host=localhost;Port=5432;Database=ShopInventory;Username=postgres;Password=YOUR_PG_PASSWORD"
24+
dotnet user-secrets set "ConnectionStrings:DefaultConnection" "Host=localhost;Port=5432;Database=ShopInventory;Username=postgres;Password=YOUR_PG_PASSWORD;Maximum Pool Size=100;Minimum Pool Size=10;Connection Idle Lifetime=300;Connection Pruning Interval=10;Timeout=30;Command Timeout=60;Keepalive=60;Read Buffer Size=16384;Write Buffer Size=16384"
2525
# HA example for native PostgreSQL primary/standby:
26-
# dotnet user-secrets set "ConnectionStrings:DefaultConnection" "Host=db-primary.internal,db-standby.internal;Port=5432;Database=ShopInventory;Username=shopinventory;Password=YOUR_PG_PASSWORD;Target Session Attributes=read-write;Load Balance Hosts=false;Host Recheck Seconds=5;Timeout=15;Command Timeout=30;Keepalive=30;Maximum Pool Size=100;Minimum Pool Size=10"
26+
# dotnet user-secrets set "ConnectionStrings:DefaultConnection" "Host=db-primary.internal,db-standby.internal;Port=5432;Database=ShopInventory;Username=shopinventory;Password=YOUR_PG_PASSWORD;Target Session Attributes=read-write;Load Balance Hosts=false;Host Recheck Seconds=5;Maximum Pool Size=100;Minimum Pool Size=10;Connection Idle Lifetime=300;Connection Pruning Interval=10;Timeout=30;Command Timeout=60;Keepalive=60;Read Buffer Size=16384;Write Buffer Size=16384"
27+
28+
# Do not add Multiplexing=true to the shared DefaultConnection until the
29+
# session-level advisory lock paths have a separate non-multiplexed connection
30+
# string or have been validated under multiplexing.
31+
32+
# Thread pool tuning (optional; defaults are also in appsettings.json)
33+
# dotnet user-secrets set "Performance:ThreadPool:MinWorkerThreads" "50"
34+
# dotnet user-secrets set "Performance:ThreadPool:MinCompletionPortThreads" "50"
2735

2836
# SAP B1 Service Layer
2937
dotnet user-secrets set "SAP:Username" "YOUR_SAP_USERNAME"
@@ -62,9 +70,9 @@ dotnet user-secrets set "Email:Password" "YOUR_SMTP_PASSWORD"
6270

6371
# Database
6472
# Local single-node example:
65-
dotnet user-secrets set "ConnectionStrings:DefaultConnection" "Host=localhost;Port=5432;Database=ShopInventoryWeb;Username=postgres;Password=YOUR_PG_PASSWORD"
73+
dotnet user-secrets set "ConnectionStrings:DefaultConnection" "Host=localhost;Port=5432;Database=ShopInventoryWeb;Username=postgres;Password=YOUR_PG_PASSWORD;Maximum Pool Size=100;Minimum Pool Size=10;Connection Idle Lifetime=300;Connection Pruning Interval=10;Timeout=30;Command Timeout=60;Keepalive=60;Read Buffer Size=16384;Write Buffer Size=16384"
6674
# HA example for native PostgreSQL primary/standby:
67-
# dotnet user-secrets set "ConnectionStrings:DefaultConnection" "Host=db-primary.internal,db-standby.internal;Port=5432;Database=ShopInventoryWeb;Username=shopinventory;Password=YOUR_PG_PASSWORD;Target Session Attributes=read-write;Load Balance Hosts=false;Host Recheck Seconds=5;Timeout=15;Command Timeout=30;Keepalive=30;Maximum Pool Size=100;Minimum Pool Size=10"
75+
# dotnet user-secrets set "ConnectionStrings:DefaultConnection" "Host=db-primary.internal,db-standby.internal;Port=5432;Database=ShopInventoryWeb;Username=shopinventory;Password=YOUR_PG_PASSWORD;Target Session Attributes=read-write;Load Balance Hosts=false;Host Recheck Seconds=5;Maximum Pool Size=100;Minimum Pool Size=10;Connection Idle Lifetime=300;Connection Pruning Interval=10;Timeout=30;Command Timeout=60;Keepalive=60;Read Buffer Size=16384;Write Buffer Size=16384"
6876

6977
# API Key (must match Security:ApiKeys:0:Key in API project)
7078
dotnet user-secrets set "ApiSettings:ApiKey" "YOUR_MAIN_API_KEY"

ShopInventory.Web/Components/Layout/NavMenu.razor

Lines changed: 22 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -643,31 +643,37 @@
643643
</Authorized>
644644
</AuthorizeView>
645645

646-
<AuthorizeView Roles="Admin,Cashier,PodOperator,Driver" Context="podCtx">
646+
<AuthorizeView Roles="Admin,Cashier,PodOperator,Operator,Driver" Context="podCtx">
647647
<Authorized>
648648
<AuthorizeView Roles="PodOperator,Driver" Context="podLabelCtx">
649649
<Authorized>
650650
<div class="nav-section-label">Insights</div>
651651
</Authorized>
652652
</AuthorizeView>
653-
<NavLink class="snav-link" href="/pod-dashboard" Match="NavLinkMatch.Prefix">
654-
<span class="snav-icon">
655-
<MudIcon Icon="@Icons.Material.Filled.Speed" />
656-
</span>
657-
<span class="snav-text">POD Dashboard</span>
658-
</NavLink>
653+
@if (!podCtx.User.IsInRole("Operator"))
654+
{
655+
<NavLink class="snav-link" href="/pod-dashboard" Match="NavLinkMatch.Prefix">
656+
<span class="snav-icon">
657+
<MudIcon Icon="@Icons.Material.Filled.Speed" />
658+
</span>
659+
<span class="snav-text">POD Dashboard</span>
660+
</NavLink>
661+
}
659662
<NavLink class="snav-link" href="/pods" Match="NavLinkMatch.Prefix">
660663
<span class="snav-icon">
661664
<MudIcon Icon="@Icons.Material.Filled.FactCheck" />
662665
</span>
663666
<span class="snav-text">Product PODs</span>
664667
</NavLink>
665-
<NavLink class="snav-link" href="/pod-report" Match="NavLinkMatch.Prefix">
666-
<span class="snav-icon">
667-
<MudIcon Icon="@Icons.Material.Filled.Assessment" />
668-
</span>
669-
<span class="snav-text">Product POD Report</span>
670-
</NavLink>
668+
@if (!podCtx.User.IsInRole("Operator"))
669+
{
670+
<NavLink class="snav-link" href="/pod-report" Match="NavLinkMatch.Prefix">
671+
<span class="snav-icon">
672+
<MudIcon Icon="@Icons.Material.Filled.Assessment" />
673+
</span>
674+
<span class="snav-text">Product POD Report</span>
675+
</NavLink>
676+
}
671677
<AuthorizeView Roles="PodOperator" Context="driverAccountCtx">
672678
<Authorized>
673679
<NavLink class="snav-link" href="/user-management" Match="NavLinkMatch.Prefix">
@@ -678,7 +684,7 @@
678684
</NavLink>
679685
</Authorized>
680686
</AuthorizeView>
681-
<AuthorizeView Roles="PodOperator,Driver" Context="podSecCtx">
687+
<AuthorizeView Roles="PodOperator,Driver,Operator" Context="podSecCtx">
682688
<Authorized>
683689
<div class="nav-section-label">Account</div>
684690
<NavLink class="snav-link" href="/security" Match="NavLinkMatch.Prefix">
@@ -691,7 +697,7 @@
691697
</AuthorizeView>
692698
</Authorized>
693699
</AuthorizeView>
694-
<AuthorizeView Roles="Admin,Manager,Merchandiser,PodOperator,Driver,SalesRep" Context="crateCtx">
700+
<AuthorizeView Roles="Admin,Manager,Merchandiser,PodOperator,Operator,Driver,SalesRep" Context="crateCtx">
695701
<Authorized>
696702
<div class="nav-section-label">Crates</div>
697703
<NavLink class="snav-link sub-link" href="/crates/pods" Match="NavLinkMatch.All">
@@ -700,7 +706,7 @@
700706
</span>
701707
<span class="snav-text">Crate PODs</span>
702708
</NavLink>
703-
@if (!crateCtx.User.IsInRole("PodOperator"))
709+
@if (!crateCtx.User.IsInRole("PodOperator") && !crateCtx.User.IsInRole("Operator"))
704710
{
705711
<NavLink class="snav-link" href="/crates/opening-balances" Match="NavLinkMatch.All">
706712
<span class="snav-icon">

ShopInventory.Web/Components/Pages/AIAssistant.razor

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
@page "/ai-assistant"
2-
@attribute [Authorize]
2+
@using Microsoft.AspNetCore.Authorization
3+
@using ShopInventory.Web.Data
4+
@attribute [Authorize(Roles = UserRoles.SystemRoles)]
35
@inject IAIService AIService
46
@inject ILocalizationService L
57
@inject IJSRuntime JS
@@ -491,4 +493,4 @@
491493
_ => "bi-exclamation-triangle"
492494
};
493495
}
494-
}
496+
}

0 commit comments

Comments
 (0)