feat: role system fix

This commit is contained in:
2026-03-18 21:38:50 +03:00
parent c3127b8d47
commit 591ca8104d
14 changed files with 267 additions and 183 deletions

View File

@@ -13,17 +13,17 @@ import { MapPin } from "lucide-react";
export const CitySelector: React.FC = observer(() => {
const { selectedCity, setSelectedCity } = selectedCityStore;
const canReadCities = authStore.canRead("cities");
const canLoadAllCities = authStore.isAdmin && authStore.canRead("cities");
useEffect(() => {
if (canReadCities) {
if (canLoadAllCities) {
cityStore.getCities("ru");
return;
}
authStore.fetchMeCities().catch(() => undefined);
}, [canReadCities]);
}, [canLoadAllCities]);
const baseCities: City[] = canReadCities
const baseCities: City[] = canLoadAllCities
? cityStore.cities["ru"].data
: authStore.meCities["ru"].map((uc) => ({
id: uc.city_id,

View File

@@ -781,7 +781,7 @@ export const DevicesTable = observer(() => {
Добавить устройство
</Button>
)}
{selectedIds.length > 0 && (
{canWriteDevices && selectedIds.length > 0 && (
<Button
variant="contained"
color="error"
@@ -862,16 +862,18 @@ export const DevicesTable = observer(() => {
<DataGrid
rows={groupRows}
columns={columns}
checkboxSelection
checkboxSelection={canWriteDevices}
disableRowSelectionExcludeModel
loading={isLoading}
paginationModel={paginationModel}
onPaginationModelChange={setPaginationModel}
pageSizeOptions={[50]}
onRowSelectionModelChange={
createSelectionHandler(groupRowIds) as (
ids: unknown,
) => void
canWriteDevices
? (createSelectionHandler(groupRowIds) as (
ids: unknown,
) => void)
: undefined
}
rowSelectionModel={{
type: "include",