Archiwum kategorii: Subiekt

Ograniczenie dostępu do magazynu w Subiekcie

Na chwilę obecną za pomocą interfejsu w systemie Subiekt GT istnieje możliwość udostępnienia tylko jednego lub wszystkich magazynów. Czasami zachodzi konieczność nadania dostępu do więcej niż jednego, ale nie do wszystkich magazynów. W bazie Subiekta znajduje się tabela sl_MagazynProfil, w której są wpisy odpowiedzialne za wykluczenie użytkownika z magazynów.

Poniżej skrypt SQL, który umożliwia wykluczenie z magazynu wszystkich użytkowników z wyjątkiem wskazanych (Kowalski Jan, Lewandowski Marcin, ID 1, ID 2

/* Definicja Magazynu */
declare @magId INT;
set @magId = 10;

/* Usunięcie poprzedniej konfiguracji */
delete from sl_MagazynProfil where pf_IdObiektu = @magId;

/* Nowa konfiguracja */
insert into sl_MagazynProfil
select @magId, uz_Id
from pd_Uzytkownik
where uz_Status = 1
and not (uz_Nazwisko = 'Kowalski' and uz_Imie = 'Jan')
and not (uz_Nazwisko = 'Lewandowski' and uz_Imie = 'Marcin')
and uz_Id not in (1, 2);

/* Podgląd konfiguracji */
select mag_Symbol, uz_Nazwisko, uz_Imie
from sl_MagazynProfil, pd_Uzytkownik, sl_Magazyn
where pf_idUzytkownika = uz_Id and mag_Id = sl_MagazynProfil.pf_IdObiektu and pf_IdObiektu = @magId;

Definicja magazynu ID 10
set @magId = 10;
(...)

Użytkownicy, którzy mają mieć dostęp
(...)
and not (uz_Nazwisko = 'Kowalski' and uz_Imie = 'Jan')
and not (uz_Nazwisko = 'Lewandowski' and uz_Imie = 'Marcin')
and uz_Id not in (1, 2)
(...)