#88831 - 2002-10-24 08:46 PM
Re: Ping Ben Delaney - Rename user w/ADSI
|
Bonji
Starting to like KiXtart
Registered: 2001-09-28
Posts: 169
Loc: Virginia
|
I'm going to post the code to the OU browsing tool, but there is one problem I am working on atm. If you double-click the right window to open an item and you are currently sitting at the highest level view, then it will not pull in any values in the left window. Once you've gone forward in the structure, going back will take you one level back and fill in the data. Once 'Back' has been taken, this problem goes away.
[EDIT]: I fixed this problem. No bugs as far as I know. Code has been updated.
Dependencies: Kixforms 2.1.1
code:
BREAK ON $OULOC = " / "
$OU_FORM = CreateObject("KiXtart.FORM") $OU_FORM.CAPTION = "OU VIEW" $OU_FORM.SCALEHEIGHT = 450 $OU_FORM.SCALEWIDTH = 530 $OU_FORM.CENTER
$lblOULocation = $OU_FORM.Label("Current Path: "+$OULOC) $lblOULocation.HEIGHT = 38 $lblOULocation.WIDTH = 450 $lblOULocation.LEFT = 75 $lblOULocation.TOP = 10
$cmdOUBack = $OU_FORM.CommandButton("Back") $cmdOUBack.HEIGHT = 19 $cmdOUBack.WIDTH = 60 $cmdOUBack.LEFT = 10 $cmdOUBack.TOP = 8 $cmdOUBack.OnClick = "cmdOUBack_Click()"
$lstOU1 = $OU_FORM.ListBox $lstOU1.HEIGHT = 300 $lstOU1.WIDTH = 250 $lstOU1.LEFT = 10 $lstOU1.TOP = 60 $lstOU1.OnClick = "lstOU1_Click()" $lstOU1.OnDblClick = "lstOU1_DblClick()"
$lstOU2 = $OU_FORM.ListBox $lstOU2.HEIGHT = 300 $lstOU2.WIDTH = 250 $lstOU2.LEFT = 270 $lstOU2.TOP = 60 $lstOU2.OnDblClick = "lstOU2_DblClick()"
$cmdOUOK = $OU_FORM.CommandButton("OK") $cmdOUOK.HEIGHT = 19 $cmdOUOK.WIDTH = 80 $cmdOUOK.LEFT = 165 $cmdOUOK.TOP = 390 $cmdOUOK.OnClick = "cmdOUOK_Click()" $cmdOUOK.Default = 1
$cmdOUCancel = $OU_FORM.CommandButton("Cancel") $cmdOUCancel.HEIGHT = 19 $cmdOUCancel.WIDTH = 80 $cmdOUCancel.LEFT = 285 $cmdOUCancel.TOP = 390 $cmdOUCancel.OnClick = "$$OU_FORM = Nothing" $cmdOUCancel.Cancel = 1
$OU_FORM.SHOW $POPULATE2 = "NO" $GONEBACK = "NO" $OUROOT = ""
$LDAP = GetObject("LDAP:") FOR EACH $ELEMENT IN $LDAP $lstOU1.AddItem($ELEMENT.NAME);(SUBSTR($ELEMENT.NAME,4,LEN($ELEMENT.NAME) - 3)) NEXT
WHILE $OU_FORM.VISIBLE $=EXECUTE($OU_FORM.DoEvents) $OU_FORM.REFRESH LOOP $LDAP = Nothing
FUNCTION cmdOUOK_Click() ENDFUNCTION
FUNCTION lstOU1_Click() IF $OUROOT = "" $CNT = 1 FOR EACH $ELEMENT IN $LDAP IF $ELEMENT.NAME = $lstOU1.TEXT $OUPATH = $ELEMENT.ADSPATH ENDIF NEXT $OUROOT1 = SPLIT($OUPATH,",") WHILE $CNT <= UBOUND($OUROOT1) $OUROOT = $OUROOT + $OUROOT1[$CNT] + "," $CNT = $CNT + 1 LOOP $CNT = 0 $OUROOT = SUBSTR($OUROOT,1,LEN($OUROOT) - 1) ENDIF IF $INDEX2 <> $lstOU1.ListIndex $POPULATE2 = "NO" $lstOU2.CLEAR ENDIF $INDEX2 = $lstOU1.ListIndex IF $POPULATE2 = "NO" DIM $TMPARRAY $TMPARRAY = SPLIT($OUPATH,",") IF $lstOU1.TEXT <> SUBSTR($TMPARRAY[0],8,LEN($TMPARRAY[0])) $PASSVAR1 = $lstOU1.TEXT + "," ELSE $PASSVAR1 = "" ENDIF $PASSVAR2 = SUBSTR($OUPATH,8,LEN($OUPATH)) $LDAP = GetObject("LDAP://"+$PASSVAR1+$PASSVAR2) FOR EACH $ELEMENT IN $LDAP $lstOU2.AddItem($ELEMENT.NAME) NEXT $POPULATE2 = "YES" ENDIF ENDFUNCTION
FUNCTION lstOU1_DblClick() DIM $TMPARRAY $OULOC = $OULOC + $lstOU1.TEXT + " / " $lblOULocation.CAPTION = "Current Path: "+$OULOC $TMPARRAY = SPLIT($OUPATH,",") IF $lstOU1.TEXT <> SUBSTR($TMPARRAY[0],8,LEN($TMPARRAY[0])) $PASSVAR1 = $lstOU1.TEXT+"," ELSE $PASSVAR1 = "" ENDIF $PASSVAR2 = SUBSTR($OUPATH,8,LEN($OUPATH)) $OUPATH="LDAP://"+$PASSVAR1+$PASSVAR2 $LDAP = GetObject($OUPATH) $lstOU1.CLEAR FOR EACH $ELEMENT IN $LDAP $lstOU1.AddItem($ELEMENT.NAME) NEXT $lstOU2.CLEAR $POPULATE2 = "NO" ENDFUNCTION
FUNCTION lstOU2_DblClick() DIM $TMPARRAY $OULOC = $OULOC + $lstOU1.TEXT + " / " + $lstOU2.TEXT + " / " $lblOULocation.CAPTION = "Current Path: "+$OULOC $TMPARRAY = SPLIT($OUPATH,",") IF $lstOU2.TEXT <> SUBSTR($TMPARRAY[0],8,LEN($TMPARRAY[0])) $PASSVAR1 = $lstOU2.TEXT+"," ELSE $PASSVAR1 = "" ENDIF $PASSVAR2 = $lstOU1.TEXT+"," IF $GONEBACK = "NO" $PASSVAR3 = "" $TMPARRAY=SPLIT($OUPATH,",") $CNT = 1 $TOTCNT = UBOUND($TMPARRAY) WHILE $CNT <= $TOTCNT $PASSVAR3 = $PASSVAR3 + $TMPARRAY[$CNT] + "," $CNT = $CNT + 1 LOOP $PASSVAR3 = SUBSTR($PASSVAR3,1,LEN($PASSVAR3) - 1) ELSE $PASSVAR3 = SUBSTR($OUPATH,8,LEN($OUPATH)) ENDIF $OUPATH="LDAP://"+$PASSVAR1+$PASSVAR2+$PASSVAR3 $LDAP = GetObject($OUPATH) $lstOU1.CLEAR FOR EACH $ELEMENT IN $LDAP $lstOU1.AddItem($ELEMENT.NAME) NEXT $lstOU2.CLEAR $POPULATE2 = "NO" ENDFUNCTION
FUNCTION cmdOUBack_Click() IF $OULOC = " / " $OU_FORM.MsgBox("You are at the top of the structure.","Error") ELSE $GONEBACK = "YES" $WRKOULOC = SPLIT($OULOC,"/") $WRKOUPATH = "" $WRKOULOC2 = "" $TOTCNT = UBOUND($WRKOULOC) - 2 $CNT = 0 WHILE $CNT <= $TOTCNT $WRKOULOC2 = $WRKOULOC2 + $WRKOULOC[$CNT] + "/" $WRKOUPATH1 = $WRKOULOC[UBOUND($WRKOULOC) - $CNT - 2] $WRKOUPATH2 = SUBSTR($WRKOUPATH1,2,LEN($WRKOUPATH1) - 2) $WRKOUPATH = $WRKOUPATH + $WRKOUPATH2 + "," $CNT = $CNT + 1 LOOP $OULOC = $WRKOULOC2+" " $OUPATH = "LDAP://"+SUBSTR($WRKOUPATH,1,LEN($WRKOUPATH) - 1) + $OUROOT $lstOU1.CLEAR $lstOU2.CLEAR IF $OULOC = " / " $LDAP = GetObject("LDAP:") FOR EACH $ELEMENT IN $LDAP $lstOU1.AddItem($ELEMENT.NAME) NEXT ELSE $LDAP = GetObject($OUPATH) FOR EACH $ELEMENT IN $LDAP $lstOU1.AddItem($ELEMENT.NAME) NEXT ENDIF $lblOULocation.CAPTION = "Current Path: "+$OULOC $POPULATE2 = "NO" ENDIF ENDFUNCTION
I welcome any suggestions/comments on this.
-Ben http://www.rgcweb.org:90 [ 24. October 2002, 21:03: Message edited by: Ben Dulaney ]
|
|
Top
|
|
|
|
Moderator: Shawn, ShaneEP, Ruud van Velsen, Arend_, Jochen, Radimus, Glenn Barnas, Allen, Mart
|
0 registered
and 484 anonymous users online.
|
|
|