Blokada modyfikacji załączników

Zapytania SQL, widoki, Crystal, definicje filtrów, szybkich raportów, wydruków, API, Hydra, .NET

Moderator: mikey

Awatar użytkownika
wojtek
Posty: 359
Rejestracja: 14 gru 2007, 12:23
Rola: Administrator CDN XL
Wersja: 9.8
Lokalizacja: pomorskie

Blokada modyfikacji załączników

Post autor: wojtek »

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

Awatar użytkownika
praiser
Posty: 1089
Rejestracja: 02 lip 2014, 12:22
Rola: Handlowiec CDN XL
Wersja: 2023

Re: Blokada modyfikacji załączników

Post autor: praiser »

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

Awatar użytkownika
wojtek
Posty: 359
Rejestracja: 14 gru 2007, 12:23
Rola: Administrator CDN XL
Wersja: 9.8
Lokalizacja: pomorskie

Re: Blokada modyfikacji załączników

Post autor: wojtek »

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

Awatar użytkownika
praiser
Posty: 1089
Rejestracja: 02 lip 2014, 12:22
Rola: Handlowiec CDN XL
Wersja: 2023

Re: Blokada modyfikacji załączników

Post autor: praiser »

nie znam się tak bardzo na tym ale
DELETED pseudo table has a copy of the rows that will be either updated or deleted
FOR UPDATE
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

taszek
Posty: 609
Rejestracja: 12 wrz 2012, 13:20
Rola: Administrator CDN XL
Wersja: 2016

Re: Blokada modyfikacji załączników

Post autor: taszek »

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

ODPOWIEDZ