LVHDPAR ;Xecutes Van Hoecke ;LVHDPAR ; [ 07/13/2001 8:34 AM ] G YZ ; YZ Q ; LOGIN ; Xecute via ^DPAR(0,"X","LOGIN",0) uit %A5000 Set $ZT="TRAP^cAN000" ; ; Link met ^vhUSER adhv io (geen vast IP-adres meer zoals vroeger) New RI,RU ; RI = device-nummer ; RU = intern nummer uit ^DATA(0,"USR") Set RU=$G(QU(1)) If 'RU Set RU=$$UI1^cAFA1("USR",101,QU) If 'RU Goto LOGINZ ; Verwijderen andere gebruikers voor hetzelfde device Set IPNr="" For Set IPNr=$O(^vhUSER("ID",io,IPNr)) Quit:IPNr="" Do:IPNr'=RU . Kill ^vhUSER("D",IPNr,"D",io) . Kill ^vhUSER("ID",io,IPNr) . If $D(^vhUSER("D",IPNr,"D"))>1 Set ^vhUSER("D",IPNr,"D")="" . Else Kill ^vhUSER("D",IPNr,"D") ; ; Opzetten nieuwe device Set:'$G(^vhUSER("D",RU,"D")) ^vhUSER("D",RU,"D")=io Set ^vhUSER("D",RU,"D",io)="",^vhUSER("ID",io,RU)="" If $Get(^vhUSER("D",RU))="" Do ; VJ 10.05.01 . Set ^vhUSER("D",RU)=99_D_"WindowsGebruikersNaam"_D_15_D_QU_D_$G(QU(2),QU)_D_D_D . Do StelInVelden(RU) . Set ^(RU,"M")="K\\\3\\\\\\\MGR\\"_$P($G(QU(0,2)),D,21)_"\\\\" . If $L($P(QU(0,1),D,15)) Set ^vhUSER("D",RU,"R")=$P(QU(0,1),D,15) . Set ^vhUSER("II",QU)=RU ; ; Device-driver MC + input-driver If $P($G(^cLOG(boot,"DEV",io)),D)'="MC" Do . New K ; noodzakelijk voor %A5000 . Set $P(^(io),D)="MC" Kill U("D") Do ^cA600 ; LOGINZ Quit ; OK(X,Y) ; Functie om prioriteiten af te testen Set $ZT="TRAP^cAN000" ; ; Input: X=string met prioriteiten, gescheiden door spaties ; Y=prioriteit ; Output: 0=Y komt niet voor in X (geen toegang) ; 1=Y komt wel voor in X -> toegang ; If $L(X) Do . If $E(X)'=" " Set X=" "_X . If $E(X,$L(X))'=" " Set X=X_" " If $L(Y) Do . If $E(Y)'=" " Set Y=" "_Y . If $E(Y,$L(Y))'=" " Set Y=Y_" " ; New OK Set OK=0 If X=""!(Y="") S OK=1 If $L(X),$L(Y),X[Y S OK=1 OKZ Quit OK ; PRI ; Xecute via ^DPAR(0,"X","MENU","PRI") uit %A501 Set $ZT="TRAP^cAN000" ; ; Input: R6=menu-lijn ; QL=string met prioriteiten, gescheiden door spaties ; Output: K="" -> ok ; K="-" -> geen toegang ; Set K="" If '$$OK(QL,$P(R6,D,10)) Set K="-" ; boodschap geven ? ; PRIZ Quit ; PWD ; Xecute via ^DPAR(0,"X","MENU","PWD") uit %A501 Set $ZT="TRAP^cAN000" ; ; Input: R6=menu-lijn ; Output: K="" -> ok ; K="-" -> geen toegang ; Set K="" I '$$ASK^vhWACHTW($P(R6,D,7)) S K="-" ; PWDZ Quit ; /// Aangeroepen vanuit ^DMA(0,"USR",0,3) = "\D WijzigGebruiker^LVHDPAR" WijzigGebruiker New Functie // De gebruiker moet eerst eens ingelogd zijn zodat ^vhUSER aangemaakt is. // DATA-M maakt deze pas aan bij de eerste inlog. If $D(^vhUSER("D",UI1)) { Set Functie=$P(B(1),D,15) If $L(Functie) Set ^vhUSER("D",UI1,"R")=$P(B(1),D,15) Else Kill ^vhUSER("D",UI1,"R") Do StelInVelden(UI1) } Quit StelInVelden(UI1) Set $Piece(^vhUSER("D",UI1),"\",2) = $$GeefWindowsGebruikersNaam(UI1) Set $Piece(^vhUSER("D",UI1),"\",5) = $$GeefNaam(UI1) Set $Piece(^vhUSER("D",UI1),"\",6) = $$GeefSharedMapNaam(UI1) Quit GeefWindowsGebruikersNaam(UI1) Quit $Piece(^DATA(0,"USR",UI1,0),"\",26) GeefNaam(UI1) Quit $Piece(^DATA(0,"USR",UI1,0),"\",2) GeefSharedMapNaam(UI1) #dim GebruikersInitialen As %String = $Piece(^DATA(0,"USR",UI1,0),"\",1) Quit ##class(TECH.StringUtils).Trim($tr("1 2 3 4 5 6 7 8 9","123456789",GebruikersInitialen)) ; Geef de functie van een gebruiker ; Openen en wijzigen gebruikers (Data-M bestanden en vhUSER) Functie(B) New Functie,FunctieCode,zb Set Functie=$P($G(B(1)),D,15) Set:$L(Functie) FunctieCode=$$UPTRIMA^vhRtn1(Functie) Set FunctieCode=$$PI^vhPOPUP("C;C","-1OZ","Functie","USER","FUNCTIE",$G(FunctieCode)) If $g(zb)="CANC" Set Functie="-" Else If $L(FunctieCode) Set Functie=$P(^RES("USER","PI","FUNCTIE","D",FunctieCode),"`",2) Else Set Functie="" Quit Functie ; ZZ ; 15.03.2001 - 17 u 30