Ignore:
Timestamp:
Dec 4, 2009, 12:11:15 AM (14 years ago)
Author:
George Lilly
Message:

revised back to 6/30/08 version

File:
1 edited

Legend:

Unmodified
Added
Removed
  • WorldVistAEHR/trunk/r/KERNEL-XU-A4A7-USC-XG-XLF-XNOA-XPD-XQ-XVIR-ZI-ZOSF-ZOSV-ZT-ZU-%Z-XIP--XQAB--XUC--XUR--ZIN--ZTED/XUS.m

    r613 r623  
    1 XUS     ;SFISC/STAFF - SIGNON ;1:27 PM  11 Dec 2008
    2         ;;8.0;KERNEL;**16,26,49,59,149,180,265,337,419,434,437**;Jul 10, 1995;Build 23
    3         ; Modified from FOIA VISTA,
    4         ; Copyright (C) 2007 WorldVistA
    5         ;
    6         ; This program is free software; you can redistribute it and/or modify
    7         ; it under the terms of the GNU General Public License as published by
    8         ; the Free Software Foundation; either version 2 of the License, or
    9         ; (at your option) any later version.
    10         ;
    11         ; This program is distributed in the hope that it will be useful,
    12         ; but WITHOUT ANY WARRANTY; without even the implied warranty of
    13         ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    14         ; GNU General Public License for more details.
    15         ;
    16         ; You should have received a copy of the GNU General Public License
    17         ; along with this program; if not, write to the Free Software
    18         ; Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301
    19         ;
    20         ;Sign-on message numbers are 30810.51 to 30810.99
    21         S U="^" D INTRO^XUS1A()
    22         K  K ^XUTL("ZISPARAM",$I)
    23         S U="^",XQXFLG("GUI")="^"
    24         W ! S $Y=0 D SET1(1) I POP S XUM=3 G NO ;Sets DUZ("LANG")
    25         S XUSTMP(51)=$$EZBLD^DIALOG(30810.51),XUSTMP(52)=$$EZBLD^DIALOG(30810.52)
    26         W !!,"Volume set: ",$P(XUENV,U,4),"  UCI: ",XUCI,"  Device: ",$I W:$S('$D(IO("ZIO")):0,1:$I'=IO("ZIO")) " (",IO("ZIO"),")" W !
    27 RESTART ;
    28         S XUM=$$SET2 G:XUM NO
    29         I $P(XU1,U,2)]"" S XUM=$$DEVPAS() I XUM G H:XUM<0,NO
    30         ;S PGM=$P(XOPT,U,8),XUA=$P(PGM,"[",1) I XUA]"" X XUEON G NEXT^XUS1
    31 A       S (XUSER(0),XUSER(1),XQUR)=""
    32         ;Check for locked IP/device.
    33         I $$LKCHECK^XUSTZIP() S XUM=7,XUFAC=$P(XOPT,U,2),XUHALT=1 G NO
    34         ;Auto Sign-on check
    35         S X=$$AUTOXUS^XUS1B() I X>0 S DUZ=X D USER(DUZ) W !!,">> Auto Sign-on: ",$P(XUSER(0),U)," <<<",! G B
    36         X XUEOFF S AV=$$ASKAV() X XUEON I AV="^;^" G H ;Get out
    37         I AV["MAIL-BOX",AV[";XMR" S (XUA,PGM)="XMR",XMCHAN=$P($P(AV,";")," ",2),DUZ=.5 G XMR^XUSCLEAN
    38         S XQUR=$P(AV,";",3)
    39         S DUZ=$$CHECKAV(AV) K AV
    40         S XUM=$$UVALID() G:XUM NO
    41 B       K XUF,%1 S XUF=0 X XUEON
    42         I DUZ D USER^XUS1 G:XUM NO
    43         I DUZ D SEC^XUS3:($D(^%ZIS(1,XUDEV,"TIME"))!$D(^(95))) G:XUM NO
    44         G NO:'DUZ
    45         S DTIME=$P(XOPT,U,10),X=$S(DUZ("BUF"):"",1:"NO-")_"TYPE-AHEAD" X:$D(^%ZOSF(X)) ^(X)
    46         D TT^XUS3:$G(XUTT)
    47         D CLRFAC^XUS3($G(IO("IP")))
    48 PGM     ;
    49         S Y=+$G(^%ZIS(1,XUDEV,201)) I Y>0,$$CHK S XQY=Y G OK
    50         S Y=+$G(^VA(200,DUZ,201)) I Y>0,$$CHK S XQY=Y G OK
    51         I $D(DUZ("ASH")) S Y=$O(^DIC(19,"B","XU NOP MENU",0)) I Y>0 S XQY=Y G OK ;rwf 403
    52         S XUM=16
    53         G NO
    54         ;
    55 OK      D CHEK^XQ83
    56         S (XUA,PGM)="XQ"
    57         G NEXT^XUS1
    58         ;
    59 CHK()   ;Check that option exeist and LOCK
    60         I $D(^DIC(19,Y,0)),$S($P(^(0),U,6)="":1,1:$D(^XUSEC($P(^(0),U,6),DUZ))) Q 1
    61         Q 0
    62         ;
    63 LC      S X=$$UP(X)
    64         Q
    65 UP(%)   Q $TR(%,"abcdefghijklmnopqrstuvwxyz","ABCDEFGHIJKLMNOPQRSTUVWXYZ")
    66         ;
    67 FAC     ;Failed access
    68         S:'DUZ XUF(.1)=$E(%1)
    69         S:XUF=2 XUF(.2)=XUF(.2)+1,XUF(XUF(.2))=%1 S %1="" Q
    70         Q
    71 NO      ;Tell why didn't get on
    72         S X=$$NO^XUS3() G RESTART:'X ;fall into exit
    73 H       ;Exit point for all applications
    74 C       ;CLOSE
    75         G ^XUSCLEAN
    76         ;
    77 ON      X ^%ZOSF("EON") Q
    78         ;
    79 ASKAV(PRE)      ;Ask and return Access;Verify code, Turn off echo before calling
    80         N X,Y S PRE=$G(PRE)
    81         F  W !,PRE,XUSTMP(51) S X=$$ACCEPT S:X="^" X="^;^" Q:$L(X)
    82         S X=$TR(X,$C(9),";") ;Convert TAB to ; to match GUI.
    83         I $P(X," ")="MAIL-BOX" S X=X_";XMR"
    84         I $E(X,1,7)="~~TOK~~" Q X ;Use CCOW token
    85         I '$L($P(X,";",2)) W !,PRE,XUSTMP(52) S Y=$$ACCEPT S:Y="^" X="^;" S $P(X,";",2)=Y
    86         Q X
    87         ;
    88         ;Timeout used by XUSTZ call.
    89 ACCEPT(TO)      ;Read A/V and echo '*' char.
    90         ;Have the Read write to flush the buffer on some systems
    91         N C,A,E K DUOUT S A="",TO=$G(TO,60),E=0
    92         F  D  Q:E
    93         . R "",*C:TO S:('$T) DUOUT=1 S:('$T)!(C=94) A="^"
    94         . I (A="^")!(C=13)!($L(A)>60) S E=1 Q
    95         . I C=127 Q:'$L(A)  S A=$E(A,1,$L(A)-1) W $C(8,32,8) Q
    96         . S A=A_$C(C) W *42
    97         . Q
    98         Q A
    99         ;
    100 CHECKAV(X1)     ;Check A/V code return DUZ or Zero. (Called from XUSRB)
    101         N %,%1,X,Y,IEN,DA,DIK
    102         S IEN=0
    103         ;Start CCOW
    104         I $E(X1,1,7)="~~TOK~~" D  Q:IEN>0 IEN
    105         . I $E(X1,8,9)="~1" S IEN=$$CHKASH^XUSRB4($E(X1,8,255))
    106         . I $E(X1,8,9)="~2" S IEN=$$CHKCCOW^XUSRB4($E(X1,8,255))
    107         . Q
    108         ;End CCOW
    109         ; WV p437 ;Allow case sensitivefor VOE
    110         S X1=$S($$GET^XPAR("SYS","XU VC CASE SENSITIVE"):$$UP($P(X1,";",1))_";"_$P(X1,";",2),1:$$UP(X1))
    111         ; End WV change
    112         S X1=$$UP(X1) S:X1[":" XUTT=1,X1=$TR(X1,":")
    113         S X=$P(X1,";") Q:X="^" -1 S:XUF %1="Access: "_X
    114         Q:X'?1.20ANP 0
    115         S X=$$EN^XUSHSH(X) I '$D(^VA(200,"A",X)) D LBAV Q 0
    116         S %1="",IEN=$O(^VA(200,"A",X,0)),XUF(.3)=IEN D USER(IEN)
    117         S X=$P(X1,";",2) S:XUF %1="Verify: "_X S X=$$EN^XUSHSH(X)
    118         I $P(XUSER(1),"^",2)'=X D LBAV Q 0
    119         I $G(XUFAC(1)) S DIK="^XUSEC(4,",DA=XUFAC(1) D ^DIK
    120         Q IEN
    121 LBAV    ;Log Bad AV
    122         D:XUF FAC
    123         I IEN S X=$P($G(^VA(200,IEN,1.1)),U,2)+1,$P(^(1.1),"^",2)=X
    124         Q
    125         ;
    126 USER(IX)        ;Build XUSER
    127         S XUSER(0)=$G(^VA(200,+IX,0)),XUSER(1)=$G(^(.1)),XUSER(1.1)=$G(^(1.1))
    128         Q
    129         ;
    130 XUVOL   ;Setup XUENV, XUCI,XQVOL,XUVOL
    131         S U="^" D GETENV^%ZOSV S XUENV=Y,XUCI=$P(Y,U,1),XQVOL=$P(Y,U,2)
    132         S X=$O(^XTV(8989.3,1,4,"B",XQVOL,0)),XUVOL=$S(X>0:^XTV(8989.3,1,4,X,0),1:XQVOL_"^y^1")
    133         Q
    134         ;
    135 XOPT    ;Setup initial XOPT
    136         S XOPT=$S($D(^XTV(8989.3,1,"XUS")):^("XUS"),1:"")
    137         F I=2:1:15 I $P(XOPT,U,I)="" S $P(XOPT,U,I)=$P("^5^900^1^1^^^^1^300^^^^N^90",U,I)
    138         Q
    139         ;
    140 SET1(FLAG)      ;Setup parameters (also called from XUSRB)
    141         N %
    142         S U="^",XUEON=^%ZOSF("EON"),XUEOFF=^("EOFF")
    143         D XUVOL,XOPT S DUZ("LANG")=$P(XOPT,U,7) ;S:$P(XUVOL,U,6)="y" XRTL=XUCI_","_XQVOL
    144         K ^XUTL("XQ",$J) S XUF=0,XUDEV=0,DUZ=0,DUZ(0)="@",IOS=0,ION=""
    145         I FLAG S %ZIS="L",IOP="HOME" D ^%ZIS Q:POP
    146         S XUDEV=IOS,XUIOP=ION
    147         D GETFAC^XUS3($G(IO("IP")))
    148         S %=$P(XOPT,U,14)
    149         I "N"'[% D
    150         . S XUF=(%["R")+1,XUF(.1)="",XUF(.2)=0,XUF(.3)=0
    151         . I %["D" S:$D(^XTV(8989.3,1,4.33,"B",XUDEV))[0 XUF=0
    152         S DILOCKTM=+$G(^DD("DILOCKTM"),1) ;p434 IA#4909
    153         Q
    154 SET2()  ;EF. Return error code (also called from XUSRB)
    155         N %,X
    156         S XUNOW=$$HTFM^XLFDT($H),DT=$P(XUNOW,".")
    157         K DUZ,XUSER
    158         S (DUZ,DUZ(2))=0,(DUZ(0),DUZ("AG"),XUSER(0),XUSER(1),XUTT,%UCI)=""
    159         S %=$$INHIBIT^XUSRB() I %>0 Q %
    160         S X=$G(^%ZIS(1,XUDEV,"XUS")),XU1=$G(^(1))
    161         I $L(X) F I=1:1:15 I $L($P(X,U,I)) S $P(XOPT,U,I)=$P(X,U,I)
    162         S DTIME=600
    163         I '$P(XOPT,U,11),$D(^%ZIS(1,XUDEV,90)),^(90)>2800000,^(90)'>DT Q 8
    164         Q 0
    165         ;
    166 UVALID()        ;EF. Is it valid for this user to sign on?
    167         I DUZ'>0 Q 4
    168         I $P(XUSER(1.1),U,5),$P(XUSER(1.1),U,5)>XUNOW S XUM(0)=$$FMTE^XLFDT($P(XUSER(1.1),U,5),"2PM") Q 18 ;User locked until
    169         I $P(XUSER(0),U,11),$P(XUSER(0),U,11)'>DT Q 11 ;Access Terminated
    170         I $D(DUZ("ASH")) Q 0 ;If auto handle, Allow to sign-on p434
    171         I $P(XUSER(0),U,7) Q 5 ;Disuser flag set
    172         I '$L($P(XUSER(1),U,2)) Q 21 ;p419, p434
    173         Q 0
    174         ;
    175 DEVPAS()        ;EF. Ask device password
    176         X XUEOFF W !,"DEVICE PASSWORD: " R X:60 X XUEON
    177         S X=$E(X,1,30) S:'$T X="^" D LC Q:X["^" -1 I $P(XU1,U,2)'=X S:XUF %1="Device: "_X D:XUF FAC Q 6
    178         Q 0
    179         ;
     1XUS ;SFISC/STAFF - SIGNON ;3/19/07  09:15
     2 ;;8.0;KERNEL;**16,26,49,59,149,180,265,337,419,437**;Jul 10, 1995;Build 22
     3 ; Modified from FOIA VISTA,
     4 ; Copyright (C) 2007 WorldVistA
     5 ;
     6 ; This program is free software; you can redistribute it and/or modify
     7 ; it under the terms of the GNU General Public License as published by
     8 ; the Free Software Foundation; either version 2 of the License, or
     9 ; (at your option) any later version.
     10 ;
     11 ; This program is distributed in the hope that it will be useful,
     12 ; but WITHOUT ANY WARRANTY; without even the implied warranty of
     13 ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     14 ; GNU General Public License for more details.
     15 ;
     16 ; You should have received a copy of the GNU General Public License
     17 ; along with this program; if not, write to the Free Software
     18 ; Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
     19 ;Sign-on message numbers are 30810.51 to 30810.99
     20 S U="^" D INTRO^XUS1A()
     21 K  K ^XUTL("ZISPARAM",$I)
     22 S U="^",XQXFLG("GUI")="^"
     23 W ! S $Y=0 D SET1(1) I POP S XUM=3 G NO ;Sets DUZ("LANG")
     24 S XUSTMP(51)=$$EZBLD^DIALOG(30810.51),XUSTMP(52)=$$EZBLD^DIALOG(30810.52)
     25 W !!,"Volume set: ",$P(XUENV,U,4),"  UCI: ",XUCI,"  Device: ",$I W:$S('$D(IO("ZIO")):0,1:$I'=IO("ZIO")) " (",IO("ZIO"),")" W !
     26RESTART ;
     27 S XUM=$$SET2 G:XUM NO
     28 I $P(XU1,U,2)]"" S XUM=$$DEVPAS() I XUM G H:XUM<0,NO
     29 ;S PGM=$P(XOPT,U,8),XUA=$P(PGM,"[",1) I XUA]"" X XUEON G NEXT^XUS1
     30A S (XUSER(0),XUSER(1),XQUR)=""
     31 ;Check for locked IP/device.
     32 I $$LKCHECK^XUSTZIP() S XUM=7,XUFAC=$P(XOPT,U,2),XUHALT=1 G NO
     33 ;Auto Sign-on check
     34 S X=$$AUTOXUS^XUS1B() I X>0 S DUZ=X D USER(DUZ) W !!,">> Auto Sign-on: ",$P(XUSER(0),U)," <<<",! G B
     35 X XUEOFF S AV=$$ASKAV() X XUEON I AV="^;^" G H ;Get out
     36 I AV["MAIL-BOX",AV[";XMR" S (XUA,PGM)="XMR",XMCHAN=$P($P(AV,";")," ",2),DUZ=.5 G XMR^XUSCLEAN
     37 S XQUR=$P(AV,";",3)
     38 S DUZ=$$CHECKAV(AV) K AV
     39 S XUM=$$UVALID() G:XUM NO
     40B K XUF,%1 S XUF=0 X XUEON
     41 I DUZ D USER^XUS1 G:XUM NO
     42 I DUZ D SEC^XUS3:($D(^%ZIS(1,XUDEV,"TIME"))!$D(^(95))) G:XUM NO
     43 G NO:'DUZ
     44 S DTIME=$P(XOPT,U,10),X=$S(DUZ("BUF"):"",1:"NO-")_"TYPE-AHEAD" X:$D(^%ZOSF(X)) ^(X)
     45 D TT^XUS3:$G(XUTT)
     46 D CLRFAC^XUS3($G(IO("IP")))
     47PGM ;
     48 S Y=+$G(^%ZIS(1,XUDEV,201)) I Y>0,$$CHK S XQY=Y G OK
     49 S Y=+$G(^VA(200,DUZ,201)) I Y>0,$$CHK S XQY=Y G OK
     50 I $D(DUZ("ASH")) S Y=$O(^DIC(19,"B","XU NOP MENU",0)) I Y>0 S XQY=Y G OK ;rwf 403
     51 S XUM=16
     52 G NO
     53 ;
     54OK D CHEK^XQ83
     55 S (XUA,PGM)="XQ"
     56 G NEXT^XUS1
     57 ;
     58CHK() ;Check that option exeist and LOCK
     59 I $D(^DIC(19,Y,0)),$S($P(^(0),U,6)="":1,1:$D(^XUSEC($P(^(0),U,6),DUZ))) Q 1
     60 Q 0
     61 ;
     62LC S X=$$UP(X)
     63 Q
     64UP(%) Q $TR(%,"abcdefghijklmnopqrstuvwxyz","ABCDEFGHIJKLMNOPQRSTUVWXYZ")
     65 ;
     66FAC ;Failed access
     67 S:'DUZ XUF(.1)=$E(%1)
     68 S:XUF=2 XUF(.2)=XUF(.2)+1,XUF(XUF(.2))=%1 S %1="" Q
     69 Q
     70NO ;Tell why didn't get on
     71 S X=$$NO^XUS3() G RESTART:'X ;fall into exit
     72H ;Exit point for all applications
     73C ;CLOSE
     74 G ^XUSCLEAN
     75 ;
     76ON X ^%ZOSF("EON") Q
     77 ;
     78ASKAV(PRE) ;Ask and return Access;Verify code, Turn off echo before calling
     79 N X,Y S PRE=$G(PRE)
     80 F  W !,PRE,XUSTMP(51) S X=$$ACCEPT S:X="^" X="^;^" Q:$L(X)
     81 S X=$TR(X,$C(9),";") ;Convert TAB to ; to match GUI.
     82 I $P(X," ")="MAIL-BOX" S X=X_";XMR"
     83 I $E(X,1,7)="~~TOK~~" Q X ;Use CCOW token
     84 I '$L($P(X,";",2)) W !,PRE,XUSTMP(52) S Y=$$ACCEPT S:Y="^" X="^;" S $P(X,";",2)=Y
     85 Q X
     86 ;
     87 ;Timeout used by XUSTZ call.
     88ACCEPT(TO) ;Read A/V and echo '*' char.
     89 ;Have the Read write to flush the buffer on some systems
     90 N C,A,E K DUOUT S A="",TO=$G(TO,60),E=0
     91 F  D  Q:E
     92 . R "",*C:TO S:('$T) DUOUT=1 S:('$T)!(C=94) A="^"
     93 . I (A="^")!(C=13)!($L(A)>60) S E=1 Q
     94 . I C=127 Q:'$L(A)  S A=$E(A,1,$L(A)-1) W $C(8,32,8) Q
     95 . S A=A_$C(C) W *42
     96 . Q
     97 Q A
     98 ;
     99CHECKAV(X1) ;Check A/V code return DUZ or Zero. (Called from XUSRB)
     100 N %,%1,X,Y,IEN,DA,DIK
     101 S IEN=0
     102 ;Start CCOW
     103 I $E(X1,1,7)="~~TOK~~" D  Q:IEN>0 IEN
     104 . I $E(X1,8,9)="~1" S IEN=$$CHKASH^XUSRB4($E(X1,8,255))
     105 . I $E(X1,8,9)="~2" S IEN=$$CHKCCOW^XUSRB4($E(X1,8,255))
     106 . Q
     107 ;End CCOW
     108 S X1=$S($$GET^XPAR("SYS","XU VC CASE SENSITIVE"):$$UP($P(X1,";",1))_";"_$P(X1,";",2),1:$$UP(X1)) S:X1[":" XUTT=1,X1=$TR(X1,":") ; Allow case sensitive for VOE
     109 S X=$P(X1,";") Q:X="^" -1 S:XUF %1="Access: "_X
     110 Q:X'?1.20ANP 0
     111 S X=$$EN^XUSHSH(X) I '$D(^VA(200,"A",X)) D LBAV Q 0 ; Case insensitive for Access Code for VOE
     112 S %1="",IEN=$O(^VA(200,"A",X,0)),XUF(.3)=IEN D USER(IEN)
     113 S X=$P(X1,";",2) S:XUF %1="Verify: "_X S X=$$EN^XUSHSH(X)
     114 I $P(XUSER(1),"^",2)'=X D LBAV Q 0
     115 I $G(XUFAC(1)) S DIK="^XUSEC(4,",DA=XUFAC(1) D ^DIK
     116 Q IEN
     117LBAV ;Log Bad AV
     118 D:XUF FAC
     119 I IEN S X=$P($G(^VA(200,IEN,1.1)),U,2)+1,$P(^(1.1),"^",2)=X
     120 Q
     121 ;
     122USER(IX) ;Build XUSER
     123 S XUSER(0)=$G(^VA(200,+IX,0)),XUSER(1)=$G(^(.1)),XUSER(1.1)=$G(^(1.1))
     124 Q
     125 ;
     126XUVOL ;Setup XUENV, XUCI,XQVOL,XUVOL
     127 S U="^" D GETENV^%ZOSV S XUENV=Y,XUCI=$P(Y,U,1),XQVOL=$P(Y,U,2)
     128 S X=$O(^XTV(8989.3,1,4,"B",XQVOL,0)),XUVOL=$S(X>0:^XTV(8989.3,1,4,X,0),1:XQVOL_"^y^1")
     129 Q
     130 ;
     131XOPT ;Setup initial XOPT
     132 S XOPT=$S($D(^XTV(8989.3,1,"XUS")):^("XUS"),1:"")
     133 F I=2:1:15 I $P(XOPT,U,I)="" S $P(XOPT,U,I)=$P("^5^900^1^1^^^^1^300^^^^N^90",U,I)
     134 Q
     135 ;
     136SET1(FLAG) ;Setup parameters (also called from XUSRB)
     137 N %
     138 S U="^",XUEON=^%ZOSF("EON"),XUEOFF=^("EOFF")
     139 D XUVOL,XOPT S DUZ("LANG")=$P(XOPT,U,7) S:$P(XUVOL,U,6)="y" XRTL=XUCI_","_XQVOL
     140 K ^XUTL("XQ",$J) S XUF=0,XUDEV=0,DUZ=0,DUZ(0)="@",IOS=0,ION=""
     141 I FLAG S %ZIS="L",IOP="HOME" D ^%ZIS Q:POP
     142 S XUDEV=IOS,XUIOP=ION D:$D(XRTL) T0^%ZOSV
     143 D GETFAC^XUS3($G(IO("IP")))
     144 S %=$P(XOPT,U,14)
     145 I "N"'[% D
     146 . S XUF=(%["R")+1,XUF(.1)="",XUF(.2)=0,XUF(.3)=0
     147 . I %["D" S:$D(^XTV(8989.3,1,4.33,"B",XUDEV))[0 XUF=0
     148 Q
     149SET2() ;EF. Return error code (also called from XUSRB)
     150 N %,X
     151 S XUNOW=$$HTFM^XLFDT($H),DT=$P(XUNOW,".")
     152 K DUZ,XUSER
     153 S (DUZ,DUZ(2))=0,(DUZ(0),DUZ("AG"),XUSER(0),XUSER(1),XUTT,%UCI)=""
     154 S %=$$INHIBIT^XUSRB() I %>0 Q %
     155 S X=$G(^%ZIS(1,XUDEV,"XUS")),XU1=$G(^(1))
     156 I $L(X) F I=1:1:15 I $L($P(X,U,I)) S $P(XOPT,U,I)=$P(X,U,I)
     157 S DTIME=600
     158 I '$P(XOPT,U,11),$D(^%ZIS(1,XUDEV,90)),^(90)>2800000,^(90)'>DT Q 8
     159 I $D(XRT0) S XRTN="XUS" D T1^%ZOSV
     160 Q 0
     161 ;
     162UVALID() ;EF. Is it valid for this user to sign on?
     163 I DUZ'>0 Q 4
     164 I $P(XUSER(1.1),U,5),$P(XUSER(1.1),U,5)>XUNOW S XUM(0)=$$FMTE^XLFDT($P(XUSER(1.1),U,5),"2PM") Q 18 ;User locked until
     165 I $P(XUSER(0),U,11),$P(XUSER(0),U,11)'>DT Q 11 ;Access Terminated
     166 I $P(XUSER(0),U,7) Q 5 ;Disuser flag set
     167 I '$L($P(XUSER(1),U,2)) Q 21 ;419
     168 Q 0
     169 ;
     170DEVPAS() ;EF. Ask device password
     171 X XUEOFF W !,"DEVICE PASSWORD: " R X:60 X XUEON
     172 S X=$E(X,1,30) S:'$T X="^" D LC Q:X["^" -1 I $P(XU1,U,2)'=X S:XUF %1="Device: "_X D:XUF FAC Q 6
     173 Q 0
     174 ;
Note: See TracChangeset for help on using the changeset viewer.