Produced by Araxis Merge on 10/18/2017 11:37:28 AM Eastern Daylight Time. See www.araxis.com for information about Merge. This report uses XHTML and CSS2, and is best viewed with a modern standards-compliant browser. For optimum results when printing this report, use landscape orientation and enable printing of background images and colours in your browser.
| # | Location | File | Last Modified |
|---|---|---|---|
| 1 | OSCIF_CPRS v32 Phase 2 Build 2OR3.0405_August_2017.zip\OR_30_405V36_SRC.zip\XE8\Broker\Source | CCOWRPCBroker.pas | Wed Oct 11 20:08:07 2017 UTC |
| 2 | OSCIF_CPRS v32 Phase 2 Build 2OR3.0405_August_2017.zip\OR_30_405V36_SRC.zip\XE8\Broker\Source | CCOWRPCBroker.pas | Tue Oct 17 19:58:09 2017 UTC |
| Description | Between Files 1 and 2 |
|
|---|---|---|
| Text Blocks | Lines | |
| Unchanged | 2 | 908 |
| Changed | 1 | 2 |
| Inserted | 0 | 0 |
| Removed | 0 | 0 |
| Whitespace | |
|---|---|
| Character case | Differences in character case are significant |
| Line endings | Differences in line endings (CR and LF characters) are ignored |
| CR/LF characters | Not shown in the comparison detail |
No regular expressions were active.
| 1 | { ******** ********** ********** ********** ********** ********** **** | |
| 2 | Pa ckage: XWB - Kernel RPCBroker | |
| 3 | Da te Created : Sept 18, 1997 (Ver sion 1.1) | |
| 4 | Si te Name: O akland, OI Field Off ice, Dept of Veteran Affairs | |
| 5 | De velopers: PII, PII, PII, PII | |
| 6 | De scription: Contains TRPCBroker and relat ed compone nts. | |
| 7 | Unit: CC OWRPCBroke r Authenti cates user using CCO W | |
| 8 | Cu rrent Rele ase: Versi on 1.1 Pat ch 65 | |
| 9 | ********** ********** ********** ********** ********** ********** *** } | |
| 10 | ||
| 11 | { ******** ********** ********** ********** ********** ** | |
| 12 | Changes in v1.1.65 (HGW 07/1 9/2016) XW B*1.1*65 | |
| 13 | 1. Updat ed RPC Ver sion to ve rsion 65. | |
| 14 | 2. Note that the u se of CCOW RPC Broke r to authe nticate th e user doe s NOT | |
| 15 | use 2 -factor au thenticati on and doe s not comp ly with th e anticipa ted | |
| 16 | futur e security policy of the VA. T his code m ay be depr ecated in a | |
| 17 | futur e release. | |
| 18 | ||
| 19 | Changes in v1.1.60 (HGW 12/1 8/2013) XW B*1.1*60 | |
| 20 | 1. Updat ed RPC Ver sion to ve rsion 60 | |
| 21 | 2. Refor mated inde ntations a nd comment s to make code more readable | |
| 22 | ||
| 23 | Changes in v1.1.31 (DCM ) XW B*1.1*31 | |
| 24 | 1. Added new read only prope rty Broker Version to TRPCBroke r which | |
| 25 | shoul d contain the versio n number f or the RPC Broker | |
| 26 | (or S haredRPCBr oker) in u se. | |
| 27 | ||
| 28 | Changes in v1.1.13 (JLI 5/2 4/2001) XW B*1.1*13 | |
| 29 | 1. More silent log in code; d eleted obs olete line s (DCM 9/1 0/99) | |
| 30 | ||
| 31 | Changes in v1.1.8 (REM 7/13/ 1999) XWB* 1.1*8 | |
| 32 | 1. Check for Multi -Division users. | |
| 33 | ||
| 34 | Changes in v1.1.6 (DPC 4/199 9) XWB*1.1 *6 | |
| 35 | 1. Polli ng to supp ort termin ating orph aned serve r jobs. | |
| 36 | ********** ********** ********** ********** ********** } | |
| 37 | unit CCOWR PCBroker; | |
| 38 | ||
| 39 | interface | |
| 40 | ||
| 41 | {$I IISBas e.inc} | |
| 42 | ||
| 43 | uses | |
| 44 | {System} | |
| 45 | Classes, SysUtils, ComObj, | |
| 46 | {Vcl} | |
| 47 | Controls , Dialogs, Forms, Gr aphics, ex tctrls, Ol eCtrls, | |
| 48 | {VA} | |
| 49 | XWBut1, MFunStr, X WBHash, Tr pcb, VERGE NCECONTEXT ORLib_TLB, | |
| 50 | {WinApi} | |
| 51 | Messages , WinProcs , WinTypes , Windows, ActiveX; | |
| 52 | ||
| 53 | const | |
| 54 | NoMore: boolean = False; | |
| 55 | MIN_RPCT IMELIMIT: integer = 30; | |
| 56 | CURRENT_ RPC_VERSIO N: String = 'XWB*1.1 *65'; | |
| 57 | ||
| 58 | type | |
| 59 | TCCOWRPC Broker = c lass(TRPCB roker) | |
| 60 | private | |
| 61 | { Privat e declarat ions } | |
| 62 | protecte d | |
| 63 | FCCOWL ogonIDName : String; | |
| 64 | FCCOWL ogonIDValu e: String; | |
| 65 | FCCOWL ogonName: String; | |
| 66 | FCCOWL ogonNameVa lue: Strin g; | |
| 67 | FConte xtor: TCon textorCont rol; //CC OW | |
| 68 | FCCOWt oken: stri ng; //CC OW | |
| 69 | FVista Domain: St ring; | |
| 70 | FCCOWL ogonVpid: String; | |
| 71 | FCCOWL ogonVpidVa lue: Strin g; | |
| 72 | FWasUs erDefined: Boolean; | |
| 73 | functi on GetCCO WHandle(Co nnectedBro ker: TCCOW RPCBroker) : string; | |
| 74 | functi on GetCCO Wduz( Cont extor: TCo ntextorCon trol): str ing; | |
| 75 | proced ure CCOWse tUser(Unam e, token, Domain, Vp id: string ; Contexto r: TContex torControl ); | |
| 76 | public | |
| 77 | { Public declarati ons } | |
| 78 | functi on GetCCOW token(Cont extor: TCo ntextorCon trol): str ing; | |
| 79 | functi on IsUserC leared: Bo olean; | |
| 80 | functi on WasUser Defined: B oolean; | |
| 81 | functi on IsUserC ontextPend ing(aConte xtItemColl ection: IC ontextItem Collection ):Boolean; | |
| 82 | proper ty Context or: TConte xtorContro l read Fco ntextor wr ite FConte xtor; //C COW | |
| 83 | proper ty CCOWLog onIDName: String rea d FCCOWLog onIDName; | |
| 84 | proper ty CCOWLog onIDValue: String re ad FCCOWLo gonIDValue ; | |
| 85 | proper ty CCOWLog onName: St ring read FCCOWLogon Name; | |
| 86 | proper ty CCOWLog onNameValu e: String read FCCOW LogonNameV alue; | |
| 87 | proper ty CCOWLog onVpid: St ring read FCCOWLogon Vpid; | |
| 88 | proper ty CCOWLog onVpidValu e: String read FCCOW LogonVpidV alue; | |
| 89 | publishe d | |
| 90 | proper ty Conn ected: boo lean read FConnected write Set Connected; | |
| 91 | end; | |
| 92 | ||
| 93 | procedure Authentica teUser(Con nectingBro ker: TCCOW RPCBroker) ; | |
| 94 | ||
| 95 | implementa tion | |
| 96 | ||
| 97 | uses | |
| 98 | {VA} | |
| 99 | Loginfrm , RpcbErr, WSockc, S elDiv, Rpc SLogin, fR PCBErrMsg, CCOW_cons t; | |
| 100 | var | |
| 101 | CCOWToke n: String; | |
| 102 | Domain: String; | |
| 103 | PassCode 1: String; | |
| 104 | PassCode 2: String; | |
| 105 | ||
| 106 | ||
| 107 | function T CCOWRPCBro ker.WasUse rDefined: Boolean; | |
| 108 | begin | |
| 109 | Result : = FWasUser Defined; | |
| 110 | end; //fun ction TCCO WRPCBroker .WasUserDe fined | |
| 111 | ||
| 112 | ||
| 113 | function T CCOWRPCBro ker.IsUser Cleared: B oolean; | |
| 114 | var | |
| 115 | CCOWcont extItem: I ContextIte mCollectio n; // CCOW | |
| 116 | CCOWdata Item1: ICo ntextItem; // CCOW | |
| 117 | Name: St ring; | |
| 118 | begin | |
| 119 | Result : = False; | |
| 120 | Name := CCOW_LOGON _ID; | |
| 121 | if (Cont extor <> n il) then | |
| 122 | try | |
| 123 | //Se e if conte xt contain s the ID i tem | |
| 124 | CCOW contextIte m := Conte xtor.Curre ntContext; | |
| 125 | CCOW DataItem1 := CCowCon textItem.P resent(Nam e); | |
| 126 | if ( CCOWdataIt em1 <> nil ) then | |
| 127 | begi n | |
| 128 | if CCOWdataI tem1.Value = '' then | |
| 129 | Result := True | |
| 130 | el se | |
| 131 | FWasUserDe fined := T rue; | |
| 132 | end //if | |
| 133 | else | |
| 134 | Re sult := Tr ue; | |
| 135 | finall y | |
| 136 | end; / /try | |
| 137 | end; //fun ction TCCO WRPCBroker .IsUserCle ared | |
| 138 | ||
| 139 | ||
| 140 | {--------- ---------- ----- Auth enticateUs er ------- ---------- ------- | |
| 141 | ---------- ---------- ---------- ---------- ---------- ---------- ------} | |
| 142 | procedure Authentica teUser(Con nectingBro ker: TCCOW RPCBroker) ; | |
| 143 | var | |
| 144 | SaveClea rParmeters , SaveClea rResults: boolean; | |
| 145 | SavePara m: TParams ; | |
| 146 | SaveRemo teProcedur e, SaveRpc Version: s tring; | |
| 147 | SaveResu lts: TStri ngs; | |
| 148 | blnSigne dOn: boole an; | |
| 149 | SaveKern elLogin: b oolean; | |
| 150 | SaveVist aLogin: TV istaLogin; | |
| 151 | OldExcep tionHandle r: TExcept ionEvent; | |
| 152 | OldHandl e: THandle ; | |
| 153 | begin | |
| 154 | with Con nectingBro ker do | |
| 155 | begin | |
| 156 | SavePa ram := TPa rams.Creat e(nil); | |
| 157 | SavePa ram.Assign (Param); //sa ve off set tings | |
| 158 | SaveRe moteProced ure := Rem oteProcedu re; | |
| 159 | SaveRp cVersion : = RpcVersi on; | |
| 160 | SaveRe sults := R esults; | |
| 161 | SaveCl earParmete rs := Clea rParameter s; | |
| 162 | SaveCl earResults := ClearR esults; | |
| 163 | ClearP arameters := True; //se t'em as I need'em | |
| 164 | ClearR esults := True; | |
| 165 | SaveKe rnelLogin := KernelL ogin; // p13 | |
| 166 | SaveVi staLogin : = Login; // p13 | |
| 167 | end; //w ith | |
| 168 | blnSigne dOn := Fal se; //in itialize t o bad sign -on | |
| 169 | if Conne ctingBroke r.AccessVe rifyCodes <> '' then // p13 handle as AVCode sin gle signon | |
| 170 | begin | |
| 171 | Connec tingBroker .Login.Acc essCode := Piece(Con nectingBro ker.Access VerifyCode s, ';', 1) ; | |
| 172 | Connec tingBroker .Login.Ver ifyCode := Piece(Con nectingBro ker.Access VerifyCode s, ';', 2) ; | |
| 173 | Connec tingBroker .Login.Mod e := lmAVC odes; | |
| 174 | Connec tingBroker .KernelLog In := Fals e; | |
| 175 | end; //i f | |
| 176 | //CCOW s tart | |
| 177 | if Conne ctingBroke r.KernelLo gIn and (n ot (Connec tingBroker .Contextor = nil)) t hen | |
| 178 | begin | |
| 179 | CCOWto ken := Con nectingBro ker.GetCCO Wtoken(Con nectingBro ker.Contex tor); | |
| 180 | if len gth(CCOWto ken)>0 the n | |
| 181 | begin | |
| 182 | Conn ectingBrok er.FKernel LogIn := f alse; | |
| 183 | Conn ectingBrok er.Login.M ode := lmA ppHandle; | |
| 184 | Conn ectingBrok er.Login.L ogInHandle := CCOWto ken; | |
| 185 | end; / /if | |
| 186 | end; //i f | |
| 187 | if not C onnectingB roker.FKer nelLogIn t hen | |
| 188 | if Con nectingBro ker.FLogin <> nil th en //t he user. vistalogin contains login info | |
| 189 | begin | |
| 190 | blns ignedon := SilentLog in(Connect ingBroker) ; // Rp cSLogin un it | |
| 191 | if n ot blnSign edOn then | |
| 192 | begi n //Sw itch back to Kernel Login | |
| 193 | Co nnectingBr oker.FKern elLogIn := true; | |
| 194 | Co nnectingBr oker.Login .Mode := l mAVCodes; | |
| 195 | end; //if | |
| 196 | end; / /if | |
| 197 | //CCOW end | |
| 198 | if Conn ectingBrok er.FKernel LogIn then | |
| 199 | begin //p13 | |
| 200 | CCOWT oken := '' ; //if ca n't sign o n with Tok en clear i t so can g et new one | |
| 201 | if As signed(App lication.O nException ) then | |
| 202 | Old ExceptionH andler := Applicatio n.OnExcept ion | |
| 203 | else | |
| 204 | Old ExceptionH andler := nil; | |
| 205 | Appli cation.OnE xception : = TfrmErrM sg.RPCBSho wException ; | |
| 206 | frmSi gnon := Tf rmSignon.C reate(Appl ication); | |
| 207 | try | |
| 208 | // ShowApp licationAn dFocusOK(A pplication ); | |
| 209 | Old Handle := GetForegro undWindow; | |
| 210 | Set Foreground Window(frm Signon.Han dle); | |
| 211 | Pre pareSignon Form(Conne ctingBroke r); | |
| 212 | if SetUpSignO n then / /SetUpSign On in logi nfrm unit. | |
| 213 | beg in / /True if s ignon need ed | |
| 214 | i f frmSignO n.lblServe r.Caption <> '' then | |
| 215 | b egin | |
| 216 | frmSignOn .ShowModal ; //do inte ractive lo gon // p 13 | |
| 217 | if frmSig nOn.Tag = 1 then //Tag=1 f or good lo gon | |
| 218 | blnSign edOn := Tr ue; //Succes sfull logo n | |
| 219 | end //if | |
| 220 | end //if | |
| 221 | els e / /False whe n no logon needed | |
| 222 | b lnSignedOn := NoSign OnNeeded; / /Returns T rue always (for now! ) | |
| 223 | if blnSignedO n then / /P6 If log ged on, re trieve use r info. | |
| 224 | beg in | |
| 225 | G etBrokerIn fo(Connect ingBroker) ; | |
| 226 | i f not Choo seDiv('',C onnectingB roker) the n | |
| 227 | b egin | |
| 228 | blnSigned On := Fals e;//P8 | |
| 229 | {Select d ivision if multi-div ision user . First p arameter i s 'userid' | |
| 230 | (DUZ or u sername) f or future use. (P8)} | |
| 231 | Connectin gBroker.Lo gin.ErrorT ext := 'Fa iled to se lect Divis ion'; // p13 set so me text in dicating p roblem | |
| 232 | e nd; //if | |
| 233 | end ; //if | |
| 234 | Set Foreground Window(Old Handle); | |
| 235 | final ly | |
| 236 | frm Signon.Fre e; | |
| 237 | Sho wApplicati onAndFocus OK(Applica tion); | |
| 238 | end; //try | |
| 239 | if As signed(Old ExceptionH andler) th en | |
| 240 | App lication.O nException := OldExc eptionHand ler; | |
| 241 | end; // if Connect ingBroker. FKernelLog In | |
| 242 | // p13 following section f or silent signon | |
| 243 | if (not Connectin gBroker.Ke rnelLogIn) and (not blnsignedo n) then // was d oing the s ignon twic e if alrea dy true | |
| 244 | if Co nnectingBr oker.Login <> nil th en //t he user. vistalogin contains login info | |
| 245 | bln signedon : = SilentLo gin(Connec tingBroker ); // R pcSLogin u nit | |
| 246 | if not blnsignedo n then | |
| 247 | begin | |
| 248 | TXWBW insock(Con nectingBro ker.XWBWin sock).Netw orkDisconn ect(Connec tingBroker .Socket); | |
| 249 | end //i f | |
| 250 | else | |
| 251 | GetBr okerInfo(C onnectingB roker); | |
| 252 | //res et the Bro ker | |
| 253 | with Co nnectingBr oker do | |
| 254 | begin | |
| 255 | Clear Parameters := SaveCl earParmete rs; | |
| 256 | Clear Results := SaveClear Results; | |
| 257 | Param .Assign(Sa veParam); //r estore set tings | |
| 258 | SaveP aram.Free; | |
| 259 | Remot eProcedure := SaveRe moteProced ure; | |
| 260 | RpcVe rsion := S aveRpcVers ion; | |
| 261 | Resul ts := Save Results; | |
| 262 | FKern elLogin := SaveKerne lLogin; // p 13 | |
| 263 | FLogi n := SaveV istaLogin; // p 13 | |
| 264 | end; // with | |
| 265 | if not blnSignedO n then //F lag for un successful signon. | |
| 266 | TXWBW insock(Con nectingBro ker.XWBWin sock).NetE rror('',XW B_BadSignO n); //W ill raise error. | |
| 267 | end; //pro cedure Aut henticateU ser | |
| 268 | ||
| 269 | ||
| 270 | {--------- ---------- ---- GetCC OWHandle - ---------- ---------- ----- | |
| 271 | Private fu nction to return a s pecial CCO W Handle f rom the se rver | |
| 272 | which is s et into th e CCOW con text. | |
| 273 | The Broker of a new applicatio n can get the CCOWHa ndle from the contex t | |
| 274 | and use it to do a I mAPPHandle Sign-on. | |
| 275 | ---------- ---------- ---------- ---------- ---------- ---------- ----} | |
| 276 | function T CCOWRPCBro ker.GetCCO WHandle(Co nnectedBro ker : TCCO WRPCBroker ): String; // p13 | |
| 277 | begin | |
| 278 | Result : = ''; | |
| 279 | with Con nectedBrok er do | |
| 280 | try / / to permi t it to wo rk correct ly if CCOW is not in stalled on the serve r. | |
| 281 | begi n | |
| 282 | Re moteProced ure := 'XU S GET CCOW TOKEN'; | |
| 283 | Ca ll; | |
| 284 | Re sult := Re sults[0]; | |
| 285 | Do main := Re sults[1]; | |
| 286 | Re moteProced ure := 'XU S CCOW VAU LT PARAM'; | |
| 287 | Ca ll; | |
| 288 | Pa ssCode1 := Results[0 ]; | |
| 289 | Pa ssCode2 := Results[1 ]; | |
| 290 | end; | |
| 291 | except | |
| 292 | Resu lt := ''; | |
| 293 | end; / /try | |
| 294 | end; //fun ction TCCO WRPCBroker .GetCCOWHa ndle | |
| 295 | ||
| 296 | ||
| 297 | {--------- ---------- ---- CCOWs etUser --- ---------- ---------- --- | |
| 298 | CCOW Start | |
| 299 | ---------- ---------- ---------- ---------- ---------- ---------- ----} | |
| 300 | procedure TCCOWRPCBr oker.CCOWs etUser(Una me, token, Domain, V pid: strin g; Context or: TConte xtorContro l); | |
| 301 | var | |
| 302 | CCOWdata : IContext ItemCollec tion; // CCOW | |
| 303 | CCOWdata Item1,CCOW dataItem2, CCOWdataIt em3: ICont extItem; | |
| 304 | CCOWdata Item4,CCOW dataItem5: IContextI tem; // CCOW | |
| 305 | Cname: s tring; | |
| 306 | begin | |
| 307 | if Conte xtor <> ni l then | |
| 308 | begin | |
| 309 | try | |
| 310 | //Pa rt 1 | |
| 311 | Cont extor.Star tContextCh ange; | |
| 312 | //Pa rt 2 Set t he new pro posed cont ext data | |
| 313 | CCOW data := Co ContextIte mCollectio n.Create; | |
| 314 | CCOW dataItem1 := CoConte xtItem.Cre ate; | |
| 315 | Cnam e := CCOW_ LOGON_ID; | |
| 316 | CCOW dataItem1. Name := Cn ame; | |
| 317 | CCOW dataItem1. Value := d omain; | |
| 318 | CCOW Data.Add(C COWdataIte m1); | |
| 319 | CCOW dataItem2 := CoConte xtItem.Cre ate; | |
| 320 | Cnam e := CCOW_ LOGON_TOKE N; | |
| 321 | CCOW dataItem2. Name := Cn ame; | |
| 322 | CCOW dataItem2. Value := t oken; | |
| 323 | CCOW data.Add(C COWdataIte m2); | |
| 324 | CCOW dataItem3 := CoConte xtItem.Cre ate; | |
| 325 | Cnam e := CCOW_ LOGON_NAME ; | |
| 326 | CCOW dataItem3. Name := Cn ame; | |
| 327 | CCOW dataItem3. Value := U name; | |
| 328 | CCOW data.Add(C COWdataIte m3); | |
| 329 | // | |
| 330 | CCOW dataItem4 := CoConte xtItem.Cre ate; | |
| 331 | Cnam e := CCOW_ LOGON_VPID ; | |
| 332 | CCOW dataItem4. Name := Cn ame; | |
| 333 | CCOW dataItem4. Value := V pid; | |
| 334 | CCOW data.Add(C COWdataIte m4); | |
| 335 | // | |
| 336 | CCOW dataItem5 := CoConte xtItem.Cre ate; | |
| 337 | Cnam e := CCOW_ USER_NAME; | |
| 338 | CCOW dataItem5. Name := Cn ame; | |
| 339 | CCOW dataItem5. Value := U name; | |
| 340 | CCOW data.Add(C COWdataIte m5); | |
| 341 | //Pa rt 3 Make change | |
| 342 | Cont extor.EndC ontextChan ge(true, C COWdata); | |
| 343 | //We don't nee d to check CCOWrespo nce | |
| 344 | finall y | |
| 345 | end; //try | |
| 346 | end; //i f | |
| 347 | end; //pro cedure TCC OWRPCBroke r.CCOWsetU ser | |
| 348 | ||
| 349 | ||
| 350 | {--------- ---------- ---- GetCC OWtoken -- ---------- ---------- ---- | |
| 351 | Get Token from CCOW context | |
| 352 | ---------- ---------- ---------- ---------- ---------- ---------- ----} | |
| 353 | function T CCOWRPCBro ker.GetCCO Wtoken(Con textor: TC ontextorCo ntrol): st ring; | |
| 354 | var | |
| 355 | CCOWdata Item1: ICo ntextItem; //C COW | |
| 356 | CCOWcont extItem: I ContextIte mCollectio n; // CCOW | |
| 357 | name: st ring; | |
| 358 | begin | |
| 359 | result : = ''; | |
| 360 | name := CCOW_LOGON _TOKEN; | |
| 361 | if (Cont extor <> n il) then | |
| 362 | try | |
| 363 | CCOW contextIte m := Conte xtor.Curre ntContext; | |
| 364 | //Se e if conte xt contain s the ID i tem | |
| 365 | CCOW dataItem1 := CCOWcon textItem.P resent(nam e); | |
| 366 | if ( CCOWdataIt em1 <> nil ) then //1 | |
| 367 | begi n | |
| 368 | re sult := CC OWdataItem 1.Value; | |
| 369 | if not (resu lt = '') t hen | |
| 370 | FWasUserDe fined := T rue; | |
| 371 | end; //if | |
| 372 | FCCO WLogonIDNa me := CCOW _LOGON_ID; | |
| 373 | FCCO WLogonName := CCOW_L OGON_NAME; | |
| 374 | FCCO WLogonVpid := CCOW_L OGON_VPID; | |
| 375 | CCOW dataItem1 := CCOWcon textItem.P resent(CCO W_LOGON_ID ); | |
| 376 | if C COWdataIte m1 <> nil then | |
| 377 | FC COWLogonId Value := C COWdataIte m1.Value; | |
| 378 | CCOW dataItem1 := CCOWcon textItem.P resent(CCO W_LOGON_NA ME); | |
| 379 | if C COWdataIte m1 <> nil then | |
| 380 | FC COWLogonNa meValue := CCOWdataI tem1.Value ; | |
| 381 | CCOW dataItem1 := CCOWcon textItem.P resent(CCO W_LOGON_VP ID); | |
| 382 | if C COWdataIte m1 <> nil then | |
| 383 | FC COWLogonVp idValue := CCOWdataI tem1.Value ; | |
| 384 | finall y | |
| 385 | end; / /try | |
| 386 | end; //fun ction TCCO WRPCBroker .GetCCOWto ken | |
| 387 | ||
| 388 | ||
| 389 | {--------- ---------- ---- GetCC OWduz ---- ---------- ---------- -- | |
| 390 | Get Name f rom CCOW c ontext | |
| 391 | ---------- ---------- ---------- ---------- ---------- ---------- ----} | |
| 392 | function T CCOWRPCBro ker.GetCCO Wduz(Conte xtor: TCon textorCont rol): stri ng; | |
| 393 | var | |
| 394 | CCOWdata Item1: ICo ntextItem; // CCOW | |
| 395 | CCOWcont extItem: I ContextIte mCollectio n; // CCOW | |
| 396 | name: st ring; | |
| 397 | begin | |
| 398 | result : = ''; | |
| 399 | name := CCOW_LOGON _ID; | |
| 400 | if (Cont extor <> n il) then | |
| 401 | try | |
| 402 | CCOW contextIte m := Conte xtor.Curre ntContext; | |
| 403 | //Se e if conte xt contain s the ID i tem | |
| 404 | CCOW dataItem1 := CCOWcon textItem.P resent(nam e); | |
| 405 | if ( CCOWdataIt em1 <> nil ) then //1 | |
| 406 | begi n | |
| 407 | re sult := CC OWdataItem 1.Value; | |
| 408 | if result <> '' then | |
| 409 | FWasUserDe fined := T rue; | |
| 410 | end; //if | |
| 411 | finall y | |
| 412 | end; / /try | |
| 413 | end; //fun ction TCCO WRPCBroker .GetCCOWdu z | |
| 414 | ||
| 415 | ||
| 416 | {--------- ---------- ---- IsUse rContextPe nding ---- ---------- ---------- -- | |
| 417 | ---------- ---------- ---------- ---------- ---------- ---------- ----} | |
| 418 | function T CCOWRPCBro ker.IsUser ContextPen ding(aCont extItemCol lection: I ContextIte mCollectio n): Boolea n; | |
| 419 | var | |
| 420 | CCOWdata Item1: ICo ntextItem; // CCOW | |
| 421 | Val1: St ring; | |
| 422 | begin | |
| 423 | result : = false; | |
| 424 | if WasUs erDefined( ) then // indicates data was d efined | |
| 425 | begin | |
| 426 | Val1 : = ''; // look for a ny USER Co ntext item s defined | |
| 427 | result := True; | |
| 428 | // | |
| 429 | CCOWda taItem1 := aContextI temCollect ion.Presen t(CCOW_LOG ON_ID); | |
| 430 | if CCO WdataItem1 <> nil th en | |
| 431 | if n ot (CCOWda taItem1.Va lue = FCCO WLogonIDVa lue) then | |
| 432 | Va l1 := '^' + CCOWdata Item1.Valu e; | |
| 433 | // | |
| 434 | CCOWda taItem1 := aContextI temCollect ion.Presen t(CCOW_LOG ON_NAME); | |
| 435 | if CCO WdataItem1 <> nil th en | |
| 436 | if n ot (CCOWda taItem1.Va lue = FCCO WLogonName Value) the n | |
| 437 | Va l1 := Val1 + '^' + C COWdataIte m1.Value; | |
| 438 | // | |
| 439 | CCOWda taItem1 := aContextI temCollect ion.Presen t(CCOW_LOG ON_VPID); | |
| 440 | if CCO WdataItem1 <> nil th en | |
| 441 | if n ot (CCOWda taItem1.Va lue = FCCO WLogonVpid Value) the n | |
| 442 | Va l1 := Val1 + '^' + C COWdataIte m1.Value; | |
| 443 | // | |
| 444 | CCOWda taItem1 := aContextI temCollect ion.Presen t(CCOW_USE R_NAME); | |
| 445 | if CCO WdataItem1 <> nil th en | |
| 446 | if n ot (CCOWda taItem1.Va lue = user .Name) the n | |
| 447 | Va l1 := Val1 + '^' + C COWdataIte m1.Value; | |
| 448 | // | |
| 449 | if Val 1 = '' the n // no thing defi ned or all matches, so not use r context change | |
| 450 | resu lt := Fals e; | |
| 451 | end; //i f | |
| 452 | end; //fun ction TCCO WRPCBroker .IsUserCon textPendin g | |
| 453 | ||
| 454 | end. | |
| 455 |
Araxis Merge (but not the data content of this report) is Copyright © 1993-2016 Araxis Ltd (www.araxis.com). All rights reserved.