Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: AKMOSUSR

AKMOSUSR.m

Go to the documentation of this file.
  1. AKMOSUSR ;BRJ/OHPD/TUCSON ASSIGN ALL SECURITY KEYS TO SUPER USER [ 04/02/2003 8:51 AM ]
  1. ;;8.0;KERNEL;**1002,1003,1004,1005,1007**;APR 1, 2003
  1. ;;2.0;IHS KERNEL UTILITIES;;JUN 28, 1993
  1. ;IHS/MFD fix at ASSGNKEY+3
  1. ;IHS/MFD,JCM fix to use DIE and work with KERNEL 7
  1. ;IHS/JLS 10/31/96 fix at EN+1 for version check
  1. ;IHS/MFD FINDKEY+2, check for provider key so it isn't given out here
  1. ;IHS/JDM OK+6 THRU 8 AND ASSGNKEY+1 THRU 3, prompt for namespace or 'all' and assign keys per response.
  1. EN ;
  1. I "20217.18.0"'[+$G(^DD(9.4,0,"VR")) W *7,!,"You must have KERNEL 7/FILEMAN 19 loaded to use this routine!!" Q
  1. W !,$T(+0),*7,?12,"Please enter the name of your ""SUPER USER"".",!!,?20,"<ADAM,ADAM> // " R AKMOSUSR S AKMOSUSR=$S(AKMOSUSR="":"ADAM,ADAM",1:AKMOSUSR)
  1. W !,$T(+0),?12,"This program will check the security key file (^DIC(19.1))",!,?12,"and assign all security keys to your ""SUPERUSER""."
  1. W !!,$T(+0),?12,"OK to continue <Y>es or <N>o? <No> // " R AKMOANS S AKMOANS=$S(AKMOANS="":"N",1:AKMOANS)
  1. I '(AKMOANS?1"Y".E!(AKMOANS?1"y".E)) W !!,$T(+0),?12,"That's a NO-GO!!" G XIT
  1. OK ;
  1. D ^XBKSET S DUZ(0)="@"
  1. W ! S AKMOXUSR=0,AKMODUZ="" F AKMOL=0:0 S AKMOXUSR=$O(^VA(200,"B",AKMOXUSR)) Q:AKMOXUSR="" I AKMOXUSR=AKMOSUSR S AKMODUZ=$O(^VA(200,"B",AKMOXUSR,AKMODUZ)) Q
  1. I '+AKMODUZ W !!,*7,?5,"Cannot continue!! Superuser <",AKMOSUSR,"> was not found in the USER (^VA(200)) file." G XIT
  1. D FINDKEYS
  1. I '+AKMOKDFN W !!,*7,$T(+0),?12,"OOPS - - Your Security Key file (^DIC(19.1)) ""B"" cross reference is missing or incorrect.",!!,?12,$T(+0)," cannot continue. No action taken!!" G XIT
  1. K DIR S DIR(0)="F^1:4^K:X'?.U X",DIR("A")="('ALL'=ALL) NAMESPACE? ",DIR("?")="Must enter 3-4 Uppercase Characters" D ^DIR
  1. I X["^"!($D(DTOUT))!($D(DUOUT)) W !,"ABORTING..." G XIT
  1. S AKMONSPC=X
  1. F AKMOL=1:1:AKMOHITX D ASSGNKEY
  1. W !!,$T(+0),?12,"Superuser <",AKMOSUSR,"> had or was assigned each security key."
  1. XIT ;
  1. W !!,*7,$T(+0),?12,"<DONE>"
  1. K AKMOANS,AKMOL,AKMOLAST,AKMOHLDR,AKMOSKEY,AKMOHIT,AKMODT,AKMOXUSR,AKMODUZ,AKMOHITS,AKMOHITX,AKMOKDFN,U,X,Y,%DT
  1. Q
  1. FINDKEYS ; FIND THE SECURITY KEYS IN ^DIC(19.1,
  1. S U="^",X="T",(AKMOSKEY,AKMOHITX)=0,(%DT,AKMOKDFN)="" D ^%DT S AKMODT=Y
  1. ;F AKMOL=0:0 S AKMOSKEY=$O(^DIC(19.1,"B",AKMOSKEY)) Q:AKMOSKEY=""!(AKMOSKEY"PROVIDER") S AKMOKDFN=$O(^DIC(19.1,"B",AKMOSKEY,"")) Q:'+AKMOKDFN D FINDHLDR
  1. F AKMOL=0:0 S AKMOSKEY=$O(^DIC(19.1,"B",AKMOSKEY)) Q:AKMOSKEY="" S AKMOKDFN=$O(^DIC(19.1,"B",AKMOSKEY,"")) Q:'+AKMOKDFN D FINDHLDR ;IHS/ORDC/LJF 4/14/94 REMOVED CHECK FOR PROVIDER KEY
  1. Q
  1. FINDHLDR ; CHECK TO SEE IF XUSR ALREADY HOLDS THE KEY
  1. Q:AKMOSKEY="PROVIDER" ;IHS/ORDC/LJF 4/14/94 don't give provider key to programmers
  1. I '$D(^VA(200,AKMODUZ,51,AKMOKDFN)) S AKMOHITX=AKMOHITX+1,AKMOHITS(AKMOHITX)=AKMOSKEY_U_AKMOKDFN
  1. Q
  1. S (AKMOHLDR,AKMOHIT,AKMOLAST)=0 F AKMOL=0:0 S AKMOHLDR=$O(^VA(200,AKMOKDFN,51,AKMOHLDR)) Q:'+AKMOHLDR S AKMOLAST=AKMOHLDR I $P(^(AKMOHLDR,0),U,1)=AKMODUZ S AKMOHIT=1 Q
  1. I 'AKMOHIT S AKMOHITX=AKMOHITX+1,AKMONXT=AKMOLAST+1,AKMOHITS(AKMOHITX)=AKMOSKEY_U_AKMOKDFN_U_AKMONXT
  1. ;W !,$T(+0),?12,AKMOSKEY,?35,$S(AKMOHIT:" already ",1:" "),"assigned to <",AKMOSUSR,">." ;IHS/MFD commented out
  1. Q
  1. ASSGNKEY ; ASSIGN XUSR THIS SECURITY KEY
  1. S AKMOKNAM=$P(AKMOHITS(AKMOL),"^",2),AKMOKNAM=$P(^DIC(19.1,AKMOKNAM,0),U,1),AKMONSLT=$L(AKMONSPC)
  1. Q:AKMONSPC'="ALL"&($E(AKMOKNAM,1,AKMONSLT)'=AKMONSPC)
  1. U IO(0) W !,AKMOSUSR,?30," ASSIGNED KEY: ",?50,AKMOKNAM
  1. S DIE="^VA(200,",DA=AKMODUZ,DR="51///`"_$P(AKMOHITS(AKMOL),"^",2)
  1. S DR(2,200.051)="1////.5;2////"_AKMODT_";3////"_AKMODT
  1. D ^DIE K DIE,DR,DA
  1. Q