Ponieważ ERPXL nie ma zakazu odpowiedzialnego za blokowanie modyfikacji istniejących załączników, próbuję napisać trigger który to zablokuje.
Poniższy trigger działa ale nie do końca, bo mimo komunikatu o braku uprawnień i tak podmienia pole dab_dane w tabeli cdn.danebinarne.
Macie może pomysł jak zablokować użytkownikom modyfikację już istniejących załączników ?
ALTER TRIGGER [CDN].[KontrolaModyfikacjiZalacznika]
ON [CDN].[DaneBinarne]
FOR UPDATE
AS
SET NOCOUNT ON
IF EXISTS
( select * from inserted
inner join cdn.daneobiekty o on o.dao_dabid=inserted.dab_id
where o.DAO_PKPrawa=1 and inserted.DAB_OpeNumer not in (151,309,370,509))
BEGIN
RAISERROR('#CDN_BLAD/# #CDN_1=Nie masz uprawnień do usuwania oraz modyfikowania załączników podpiętych do B2B./#',16,1)
ROLLBACK TRAN
SET NOCOUNT OFF
RETURN
END
pozdrawiam
Wojtek
Blokada modyfikacji załączników
Moderator: mikey
Re: Blokada modyfikacji załączników
Przy takiej konstrukcji jest tak samo ?
Kod: Zaznacz cały
FOR UPDATE
AS
SET NOCOUNT ON
IF UPDATE( Dab_dane )
BEGIN
IF EXISTS
( select * from inserted
inner join cdn.daneobiekty o on o.dao_dabid=inserted.dab_id
where o.DAO_PKPrawa=1 and inserted.DAB_OpeNumer not in (151,309,370,509))
BEGIN
RAISERROR('#CDN_BLAD/# #CDN_1=Nie masz uprawnień do usuwania oraz modyfikowania załączników podpiętych do B2B./#',16,1)
ROLLBACK TRAN
SET NOCOUNT OFF
RETURN
END
END
SET NOCOUNT OFF--------------------------------
Pozdrawiam
WW
Pozdrawiam
WW
- wojtek
- Posty: 359
- Rejestracja: 14 gru 2007, 12:23
- Rola: Administrator CDN XL
- Wersja: 9.8
- Lokalizacja: pomorskie
Re: Blokada modyfikacji załączników
Dokładnie jest to samo,
zauważyłem, że formatka zachowuje się tak, że po podmianie załącznika robi update na bazie pola dab_dane a dopiero po naciśnięciu dyskietki robi update osoby modyfikującej, i tu jest problem. Bo mimo że trigger zadziała to wpisu do tabeli cdn.danebinarne nie cofnie.
pozdrawiam
zauważyłem, że formatka zachowuje się tak, że po podmianie załącznika robi update na bazie pola dab_dane a dopiero po naciśnięciu dyskietki robi update osoby modyfikującej, i tu jest problem. Bo mimo że trigger zadziała to wpisu do tabeli cdn.danebinarne nie cofnie.
pozdrawiam
Re: Blokada modyfikacji załączników
nie znam się tak bardzo na tym ale
AS
SET NOCOUNT ON
IF UPDATE( Dab_dane )
DECLARE @STARE_DANE image
SELECT @STARE_DANE = Dab_dane from DELETED
BEGIN
IF EXISTS
( select * from inserted
inner join cdn.daneobiekty o on o.dao_dabid=inserted.dab_id
where o.DAO_PKPrawa=1 and inserted.DAB_OpeNumer not in (151,309,370,509))
BEGIN
UPDATE CDN.DaneBinarne set Dab_dane = @STARE_DANE where dab_id=inserted.dab_id
RAISERROR('#CDN_BLAD/# #CDN_1=Nie masz uprawnień do usuwania oraz modyfikowania załączników podpiętych do B2B./#',16,1)
ROLLBACK TRAN
END
SET NOCOUNT OFF
RETURN
END
END
SET NOCOUNT OFF
FOR UPDATEDELETED pseudo table has a copy of the rows that will be either updated or deleted
AS
SET NOCOUNT ON
IF UPDATE( Dab_dane )
DECLARE @STARE_DANE image
SELECT @STARE_DANE = Dab_dane from DELETED
BEGIN
IF EXISTS
( select * from inserted
inner join cdn.daneobiekty o on o.dao_dabid=inserted.dab_id
where o.DAO_PKPrawa=1 and inserted.DAB_OpeNumer not in (151,309,370,509))
BEGIN
UPDATE CDN.DaneBinarne set Dab_dane = @STARE_DANE where dab_id=inserted.dab_id
RAISERROR('#CDN_BLAD/# #CDN_1=Nie masz uprawnień do usuwania oraz modyfikowania załączników podpiętych do B2B./#',16,1)
ROLLBACK TRAN
END
SET NOCOUNT OFF
RETURN
END
END
SET NOCOUNT OFF
--------------------------------
Pozdrawiam
WW
Pozdrawiam
WW
Re: Blokada modyfikacji załączników
A jakby za pomocą Małej Hydry poblokować kontrolki i dodać warunek poprawności, który by zwracał czy dany operator ma uprawnienia czy nie.
Pozdrawiam
Wojtek Cyrklewicz
Wojtek Cyrklewicz