Pristupove prava pre polia vo formulari - ako na to?   otázka

VB.NET, SQL

Zdravím.

Potreboval by som udať smer, kt. sa mám vybrať.

V programe mám zadefinovaných užívateľov, kt. majú definované prístupové práva.

Užívateľ si otvorí formulár napr. s faktúrou a jednotlivé polia formulára sa mu sprístupnia alebo uzamknú podľa jeho prístupových práv ale zároveň aj podľa stavu faktúry.

Darmo, že užívateľ má právo editovať aj vytvárať faktúry , keď faktúra je už uzamknutá.

Klasika, nič špeciálne.

Viem to samozrejme urobiť tak, že pri otvorení formulára , sa prevedie funkcia, kt. toto zabezpečí, ale je pomerne komplikovaná a neprehľadná. A musím ju volať aj v priebehu úpravy faktúry.

Neexistuje na to niečo jednoduchšie a hlavne prehľadnejšie? Stačí keď ma navediete , nech neobjavujem teplú vodu.

Ďakujem.

Karol

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Ja by som sa to pokusil riesit na urovni DB

Mal by som ulozenu procku ktora by sa volala v editacnej procke, a podla SPID by hadzala chyby do nejakej tatulky, vzdy pri odoslani formu na server sa odpali edidacia + validacia + funkcia na zobrazenie chyb pri editacii.

Je to iba taky nastrel.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Neviem ci spravne rozumiem.

Na urovni .net by ste neriesili pristupy? To znamena ze sa otvori formular, nacitaju sa z DB udaje a vsetky polia a ostatne controls su enabled?

Následne pri update DB sa spusti na sql serveri procedura, kt. skontroluje ci ma uzivatel pravo menit údaje? Výsledok zapíše do tabuľky o chybách a ak nie sú žiadne chyby tak urobí update inak odmietne?

Takto nejako?

nahlásit spamnahlásit spam 0 odpovědětodpovědět

No ... riesil by som pristup aj v .net

Ale, to by bolo "zakladne opravnenie"... aby som vedel meno uzivatela a ze dany controler nie je pristupny bez mena a hesla.

Ak by som chcel komplikovanejsie nastavenie prav, pre specialne veci...presne ako to pozadujete Vy..., tak by som to spravil v DB.

create procedure osoba_kontakt_add	
  @ID_osoba_kontakt numeric (12,0),
  @ID_osoba numeric (12,0),
  @ID_typ_osoba_kontakt numeric (12,0),
  @S100_kontakt varchar (100),
  @S255_poznamka varchar (255),
  @S30_login varchar (30)
as
	exec _del_message
	
exec _osoba_kontakt_add_val
@ID_osoba_kontakt,
		@ID_osoba,
		@ID_typ_osoba_kontakt,
		@S100_kontakt,
		@S255_poznamka,
		@S30_login
	
	if(dbo._f_error_exists()=1)
	begin
		exec _print_error 
		return 0
	end
	
	exec _osoba_kontakt_add
		@ID_osoba_kontakt output,
		@ID_osoba,
		@ID_typ_osoba_kontakt,
		@S100_kontakt,
		@S255_poznamka,
		@S30_login
	
		exec _osoba_kontakt_view @ID_osoba_kontakt, null
		
go

V procke "_osoba_kontakt_add_val" mate vsetky potrebne informacie, pre validacie, ak budete mat tych formularov viacej a rozne nastavenia, tak mozete pouzit aj paramter @FormularName + nejaku tabulku kde su definovane dalsie parametre pre validacie.

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback