summaryrefslogtreecommitdiffstats
path: root/ldap/clients/dsgw/admhtml
diff options
context:
space:
mode:
authorcvsadm <cvsadm>2005-01-21 00:44:34 +0000
committercvsadm <cvsadm>2005-01-21 00:44:34 +0000
commitb2093e3016027d6b5cf06b3f91f30769bfc099e2 (patch)
treecf58939393a9032182c4fbc4441164a9456e82f8 /ldap/clients/dsgw/admhtml
downloadds-ldapserver7x.tar.gz
ds-ldapserver7x.tar.xz
ds-ldapserver7x.zip
Moving NSCP Directory Server from DirectoryBranch to TRUNK, initial drop. (foxworth)ldapserver7x
Diffstat (limited to 'ldap/clients/dsgw/admhtml')
-rw-r--r--ldap/clients/dsgw/admhtml/Makefile52
-rw-r--r--ldap/clients/dsgw/admhtml/display-country.html52
-rw-r--r--ldap/clients/dsgw/admhtml/display-dnedit.html74
-rw-r--r--ldap/clients/dsgw/admhtml/display-dnedittop.html19
-rw-r--r--ldap/clients/dsgw/admhtml/display-group.html122
-rw-r--r--ldap/clients/dsgw/admhtml/display-groupun.html122
-rw-r--r--ldap/clients/dsgw/admhtml/display-licensed-user.html71
-rw-r--r--ldap/clients/dsgw/admhtml/display-mailgroup.html121
-rw-r--r--ldap/clients/dsgw/admhtml/display-org.html129
-rw-r--r--ldap/clients/dsgw/admhtml/display-orgperson.html142
-rw-r--r--ldap/clients/dsgw/admhtml/display-orgunit.html95
-rw-r--r--ldap/clients/dsgw/admhtml/display-person.html133
-rw-r--r--ldap/clients/dsgw/admhtml/display-umperson.html177
-rw-r--r--ldap/clients/dsgw/admhtml/dsconfig.html191
-rw-r--r--ldap/clients/dsgw/admhtml/dscrgroup.html114
-rw-r--r--ldap/clients/dsgw/admhtml/dscrou.html103
-rw-r--r--ldap/clients/dsgw/admhtml/dscruser.html172
-rw-r--r--ldap/clients/dsgw/admhtml/dsexpldif.html76
-rw-r--r--ldap/clients/dsgw/admhtml/dsimpldif.html85
-rw-r--r--ldap/clients/dsgw/admhtml/dslsgroups.html164
-rw-r--r--ldap/clients/dsgw/admhtml/dslsous.html172
-rw-r--r--ldap/clients/dsgw/admhtml/dslsusers.html166
-rw-r--r--ldap/clients/dsgw/admhtml/edit-passwd.html103
-rw-r--r--ldap/clients/dsgw/admhtml/index.lst87
-rw-r--r--ldap/clients/dsgw/admhtml/list-Anything.html42
-rw-r--r--ldap/clients/dsgw/admhtml/list-Auth.html72
-rw-r--r--ldap/clients/dsgw/admhtml/list-Groups-report.html56
-rw-r--r--ldap/clients/dsgw/admhtml/list-Groups-rm.html80
-rw-r--r--ldap/clients/dsgw/admhtml/list-Groups.html62
-rw-r--r--ldap/clients/dsgw/admhtml/list-Org-Units.html62
-rw-r--r--ldap/clients/dsgw/admhtml/list-OrgUnits-report.html56
-rw-r--r--ldap/clients/dsgw/admhtml/list-OrgUnits.html62
-rw-r--r--ldap/clients/dsgw/admhtml/list-Organizations.html38
-rw-r--r--ldap/clients/dsgw/admhtml/list-Ous-rm.html80
-rw-r--r--ldap/clients/dsgw/admhtml/list-People-report.html60
-rw-r--r--ldap/clients/dsgw/admhtml/list-People-rm.html81
-rw-r--r--ldap/clients/dsgw/admhtml/list-People.html61
-rw-r--r--ldap/clients/dsgw/admhtml/list-fa-Groups.html24
-rw-r--r--ldap/clients/dsgw/admhtml/list-fa-People.html24
-rw-r--r--ldap/clients/dsgw/admhtml/list-fa_people.html24
-rw-r--r--ldap/clients/dsgw/admhtml/list-urlsearch.html39
41 files changed, 3665 insertions, 0 deletions
diff --git a/ldap/clients/dsgw/admhtml/Makefile b/ldap/clients/dsgw/admhtml/Makefile
new file mode 100644
index 00000000..a8cfafee
--- /dev/null
+++ b/ldap/clients/dsgw/admhtml/Makefile
@@ -0,0 +1,52 @@
+#
+# PROPRIETARY/CONFIDENTIAL. Use of this product is subject to
+# license terms. Copyright © 2001 Sun Microsystems, Inc.
+# Some preexisting portions Copyright © 2001 Netscape Communications Corp.
+# All rights reserved.
+#
+#
+# Gmakefile for Directory Server Gateway html files.
+#
+
+LDAP_SRC = ../../..
+MCOM_ROOT = ../../../../..
+
+NOSTDSTRIP=true # don't let nsconfig.mak define target strip
+NOSTDCLEAN=true # don't let nsconfig.mak define target clean
+NOSTDDEPEND=true # don't let nsconfig.mak define target depend
+
+include $(MCOM_ROOT)/ldapserver/nsdefs.mk
+
+include ../dsgw_include.mk
+
+HTMLDEST = $(DSGW_HTML_RELDIR)
+
+HTML= auth.html authroot.html authtitle.html csearchtitle.html greeting.html \
+ index.html maintitle.html newentrytitle.html searchtitle.html \
+ back.gif back1.gif blankbut.gif content.gif content1.gif country.gif \
+ exit1.gif forward1.gif group.gif index1.gif netscape.gif \
+ organization.gif orgunit.gif person.gif title.gif triangle.gif
+
+BINS=$(addprefix $(HTMLDEST)/,$(HTML))
+
+# install: $(HTMLDEST) $(BINS) inst-manual inst-info
+install:
+
+all: install
+
+clean:
+ $(RM) $(BINS)
+
+$(HTMLDEST)/%: %
+ -@$(RM) $@
+ cp $< $@
+
+$(HTMLDEST)/%.gif: %.gif
+ -@$(RM) $@
+ cp $< $@
+
+strip:
+depend:
+
+include $(MCOM_ROOT)/ldapserver/nsconfig.mk
+include $(LDAP_SRC)/nsldap.mk
diff --git a/ldap/clients/dsgw/admhtml/display-country.html b/ldap/clients/dsgw/admhtml/display-country.html
new file mode 100644
index 00000000..20960338
--- /dev/null
+++ b/ldap/clients/dsgw/admhtml/display-country.html
@@ -0,0 +1,52 @@
+<!--
+ PROPRIETARY/CONFIDENTIAL. Use of this product is subject to
+ license terms. Copyright © 2001 Sun Microsystems, Inc.
+ Some preexisting portions Copyright © 2001 Netscape Communications Corp.
+ All rights reserved.
+ -->
+<HTML><HEAD>
+<!-- DS_OBJECTCLASS "value=country" -->
+
+<!-- DS_ENTRYBEGIN -->
+<TITLE>Country -
+<!-- DS_ATTRIBUTE "attr=dn" "syntax=dn" "options=nolink" -->
+</TITLE></HEAD><BODY>
+
+<TABLE>
+<TR><TD NOWRAP>
+<IMG SRC="/admin-serv/icons/country.gif" ALT="Country" HSPACE=5>
+</TD><TD><FONT SIZE="+2">
+<!-- DS_ATTRIBUTE "attr=dn" "syntax=dn" "options=nolink" -->
+</FONT></TD></TR></TABLE>
+
+<TABLE CELLSPACING="5">
+
+<TR><TD VALIGN="TOP" NOWRAP>Country Name:</TD><TD VALIGN="TOP" NOWRAP><B>
+<!-- DS_ATTRIBUTE "attr=co" "options=sort" -->
+</B></TD><TD WIDTH="20%"></TD>
+</B><TD VALIGN="TOP">Description:</TD><TD VALIGN="TOP" NOWRAP><B>
+<!-- DS_ATTRIBUTE "attr=description" -->
+</B></TD></TR>
+
+<TR><TD VALIGN="TOP">See Also:</TD><TD VALIGN="TOP" NOWRAP COLSPAN="4"><B>
+<!-- DS_ATTRIBUTE "attr=seeAlso" "syntax=dn" -->
+</B></TD></TR>
+
+<TR>
+<TD VALIGN="TOP">URL:</TD><TD VALIGN="TOP" NOWRAP COLSPAN="4"><B>
+<!-- DS_ATTRIBUTE "attr=labeledURI" "syntax=url" -->
+</B></TD></TR>
+
+</TABLE>
+
+<HR>
+
+This entry was last modified on <B>
+<!-- DS_ATTRIBUTE "attr=modifyTimestamp" "syntax=time" "defaultvalue=N/A" "options=readonly" -->
+</B> by <B>
+<!-- DS_ATTRIBUTE "attr=modifiersName" "syntax=dn" "defaultvalue=N/A" "options=readonly" -->
+</B>
+
+<!-- DS_ENTRYEND -->
+
+<!-- ENDHTML -->
diff --git a/ldap/clients/dsgw/admhtml/display-dnedit.html b/ldap/clients/dsgw/admhtml/display-dnedit.html
new file mode 100644
index 00000000..7a1b78fc
--- /dev/null
+++ b/ldap/clients/dsgw/admhtml/display-dnedit.html
@@ -0,0 +1,74 @@
+<!--
+ PROPRIETARY/CONFIDENTIAL. Use of this product is subject to
+ license terms. Copyright © 2001 Sun Microsystems, Inc.
+ Some preexisting portions Copyright © 2001 Netscape Communications Corp.
+ All rights reserved.
+ -->
+<HTML>
+<HEAD>
+
+<!-- DS_ENTRYBEGIN -->
+<!-- DS_EMIT_BASE_HREF -->
+<TITLE>
+Group Entry -
+<!-- DS_ATTRIBUTE "attr=dn" "syntax=dn" "options=nolink" -->
+</TITLE></HEAD>
+<!-- BODY "onLoad='document.searchForm.searchstring.focus();'" -->
+
+<!-- DS_LAST_OP_INFO "prefix=<FONT SIZE=%22%2B1%22>" "suffix=</FONT><HR>" -->
+
+<!-- DS_BEGIN_DNSEARCHFORM -->
+<INPUT TYPE=hidden NAME=mode VALUE="smart">
+<INPUT TYPE=hidden NAME=dnlist_js VALUE="true">
+<INPUT TYPE=hidden NAME=listifone VALUE="true">
+<INPUT TYPE=hidden NAME=listtemplate VALUE="">
+<INPUT TYPE=hidden NAME=faMode VALUE="add">
+
+<FONT SIZE="+2">
+Edit
+<!-- DS_DNDESC -->
+:
+<!-- DS_ATTRIBUTE "attr=dn" "syntax=dn" "dncomponents=2" "options=nolink" -->
+</FONT>
+
+<TABLE CELLSPACING=0 CELLPADDING=0><TR>
+
+<TD NOWRAP>
+Find
+<SELECT NAME="type">
+<OPTION SELECTED VALUE="People">Users
+<OPTION VALUE="Groups">Groups
+</SELECT>
+</TD>
+
+<TD NOWRAP>
+matching&nbsp;
+<INPUT NAME="searchstring" SIZE=15>
+</TD>
+
+<TD>
+<INPUT TYPE=SUBMIT VALUE=" Find and Add ">
+<BR>
+<INPUT TYPE=BUTTON VALUE=" Find and Remove " onClick="searchForm.faMode.value='remove';searchForm.submit();searchForm.searchstring.select();searchForm.searchstring.focus();">
+</TD>
+
+</TR>
+</TABLE>
+
+<P>
+<CENTER><TABLE BORDER="2" WIDTH="100%">
+<TR>
+<TD WIDTH="33%" ALIGN="center">
+<INPUT TYPE=BUTTON VALUE=" Save Changes " onClick="parent.saveChanges();">
+<TD WIDTH="34%" ALIGN="center">
+<INPUT TYPE=BUTTON VALUE=" Cancel " onClick="if ((parent.changesMade) == 0 || confirm('Discard changes?')) {parent.document.location.href=parent.completion_url}";>
+<TD WIDTH=33% ALIGN=center>
+<!-- DS_HELPBUTTON -->
+</TD></TR></TABLE></CENTER>
+
+<INPUT TYPE=hidden NAME=completion_javascript VALUE='parent.updateList(parent.controlFrame.document.searchForm.faMode.value, parent.dnlist, parent.stagingFrame.dnlist, parent.outputFrame);parent.controlFrame.document.searchForm.faMode.value="add";'>
+<!-- DS_END_DNSEARCHFORM -->
+
+<!-- DS_ENTRYEND -->
+
+<!-- ENDHTML -->
diff --git a/ldap/clients/dsgw/admhtml/display-dnedittop.html b/ldap/clients/dsgw/admhtml/display-dnedittop.html
new file mode 100644
index 00000000..89f6b6bc
--- /dev/null
+++ b/ldap/clients/dsgw/admhtml/display-dnedittop.html
@@ -0,0 +1,19 @@
+<!--
+ PROPRIETARY/CONFIDENTIAL. Use of this product is subject to
+ license terms. Copyright © 2001 Sun Microsystems, Inc.
+ Some preexisting portions Copyright © 2001 Netscape Communications Corp.
+ All rights reserved.
+ -->
+<HTML>
+<!-- DS_ENTRYBEGIN -->
+<SCRIPT LANGUAGE="JavaScript">
+
+</SCRIPT>
+
+<FRAMESET BORDER=1 FRAMEBORDER=1 ROWS=1,150,* SCROLLING="NO" NORESIZE>
+ <FRAME SRC="javascript:parent.emptyFrame" NAME="stagingFrame">
+<!-- DS_EDDN_FRAMEDEF "template=dnedit" -->
+ <FRAME SRC="javascript:parent.emptyFrame" NAME="outputFrame">
+</FRAMESET>
+<!-- DS_ENTRYEND -->
+</HTML>
diff --git a/ldap/clients/dsgw/admhtml/display-group.html b/ldap/clients/dsgw/admhtml/display-group.html
new file mode 100644
index 00000000..d154e3eb
--- /dev/null
+++ b/ldap/clients/dsgw/admhtml/display-group.html
@@ -0,0 +1,122 @@
+<!--
+ PROPRIETARY/CONFIDENTIAL. Use of this product is subject to
+ license terms. Copyright © 2001 Sun Microsystems, Inc.
+ Some preexisting portions Copyright © 2001 Netscape Communications Corp.
+ All rights reserved.
+ -->
+<HTML><HEAD>
+<SCRIPT LANGUAGE="JavaScript">
+
+function setDeleteCheckboxes(attr, checked)
+{
+ var varName = 'delete_' + attr;
+
+ for ( i = 0; i < document.modifyEntryForm.elements.length; ++i ) {
+ if ( document.modifyEntryForm.elements[i].name == varName ) {
+ document.modifyEntryForm.elements[i].checked = checked;
+ }
+ }
+ aChg(attr);
+}
+
+</SCRIPT>
+<!-- DS_OBJECTCLASS "value=groupOfNames" -->
+
+<!-- DS_ENTRYBEGIN -->
+<TITLE>
+<!-- IF "Adding" -->
+New
+<!-- ENDIF // Adding -->
+Group Entry -
+<!-- DS_ATTRIBUTE "attr=dn" "syntax=dn" "options=nolink" -->
+</TITLE></HEAD>
+<!-- BODY -->
+
+<!-- DS_LAST_OP_INFO "prefix=<FONT SIZE=%22%2B1%22>" "suffix=</FONT><HR>" -->
+
+<!-- DS_BEGIN_ENTRYFORM -->
+<FONT SIZE="+2">
+<!-- IF "Adding" -->
+New Group -
+<!-- ENDIF // Adding -->
+<!-- DS_ATTRIBUTE "attr=dn" "syntax=dn" "dncomponents=2" "options=nolink" -->
+</FONT>
+
+<!-- IF "Adding" -->
+<INPUT TYPE="hidden" NAME="add_objectClass" VALUE="top">
+<INPUT TYPE="hidden" NAME="add_objectClass" VALUE="groupOfNames">
+<!-- ENDIF // Adding -->
+
+<!-- IF "!Displaying" -->
+<INPUT TYPE="hidden" NAME="quiet" VALUE="true">
+<INPUT TYPE="hidden" NAME="completion_javascript" VALUE="if (dsmodify_dn.length == 0) document.location.href=\'genscreen?dslsgroups&info=\' + escape(dsmodify_info); else document.location.href=\'edit/\' + dsmodify_dn + \'?&info=\' + escape(dsmodify_info);">
+<DIV ALIGN="right"><FONT SIZE="-1">* Indicates a required field</FONT></DIV>
+<!-- ENDIF -->
+
+
+<TABLE CELLSPACING="5">
+<TR>
+<TD ALIGN="right" NOWRAP>
+<!-- IF "!Displaying" -->
+<B>*</B>
+<!-- ENDIF -->
+<B>Name:</B>
+</TD>
+<TD NOWRAP><B>
+<!-- DS_ATTRIBUTE "attr=cn" "cols=>40" -->
+</B></TD><TD WIDTH="20%"></TD>
+</TR>
+
+<TR>
+<TD ALIGN="right" NOWRAP><B>Description:</B></TD>
+<TD NOWRAP><B>
+<!-- DS_ATTRIBUTE "attr=description" "cols=>40" "defaultvalue=none" -->
+</B></TD></TR>
+
+<TR>
+<TD NOWRAP ALIGN="right" VALIGN="top"><B>Group Members:</B><BR>
+<!-- DS_DNEDITBUTTON "label=Edit..." "template=dnedit" "attr=member" "desc=Group Members" -->
+</TD><TD>
+<!-- DS_ATTRIBUTE "attr=member" "syntax=dn" "dncomponents=2" "options=readonly,sort" -->
+</TD></TR>
+
+<TR>
+<TD VALIGN="top" ALIGN="right" NOWRAP><B>Owner:</B><BR>
+<!-- DS_DNEDITBUTTON "label=Edit..." "template=dnedit" "attr=owner" "desc=Owner" -->
+</TD><TD>
+<!-- DS_ATTRIBUTE "attr=owner" "syntax=dn" "dncomponents=2" "options=readonly" -->
+</TD>
+</TD></TR>
+
+<TR>
+<TD VALIGN="top" ALIGN="right" NOWRAP><B>See Also:</B><BR>
+<!-- DS_DNEDITBUTTON "label=Edit..." "template=dnedit" "attr=seeAlso" "desc=See Also" -->
+</TD><TD>
+<!-- DS_ATTRIBUTE "attr=seeAlso" "syntax=dn" "dncomponents=2" "options=readonly" -->
+</TABLE></TD>
+</TD></TR>
+
+</TABLE>
+
+<!-- IF "AttributeHasValues" "modifyTimestamp" -->
+<TABLE BORDER=0><TR><TD><FONT SIZE="-1">
+Last modified on
+<!-- DS_ATTRIBUTE "attr=modifyTimestamp" "syntax=time" "options=readonly" -->
+ by
+<!-- DS_ATTRIBUTE "attr=modifiersName" "syntax=dn" "options=readonly" -->
+</FONT></TD></TR></TABLE>
+<!-- ENDIF // AttributeHasValues -->
+
+<TABLE BORDER=2 WIDTH=100%><TR><TD WIDTH=25% ALIGN="center">
+<!-- DS_SAVEBUTTON -->
+</TD><TD WIDTH=25% ALIGN="center">
+<!-- DS_RENAMEBUTTON "label=Rename Group" "prompt=Enter a new name for this group:" -->
+</TD><TD WIDTH=25% ALIGN="center">
+<!-- DS_DELETEBUTTON "label=Delete Group" "prompt=Delete this group?" -->
+</TD><TD WIDTH=25% ALIGN="center">
+<!-- DS_HELPBUTTON "topic=EDIT_GROUP" -->
+</TD></TR></TABLE>
+
+<!-- DS_END_ENTRYFORM -->
+<!-- DS_ENTRYEND -->
+<!-- ENDHTML -->
diff --git a/ldap/clients/dsgw/admhtml/display-groupun.html b/ldap/clients/dsgw/admhtml/display-groupun.html
new file mode 100644
index 00000000..a11a6646
--- /dev/null
+++ b/ldap/clients/dsgw/admhtml/display-groupun.html
@@ -0,0 +1,122 @@
+<!--
+ PROPRIETARY/CONFIDENTIAL. Use of this product is subject to
+ license terms. Copyright © 2001 Sun Microsystems, Inc.
+ Some preexisting portions Copyright © 2001 Netscape Communications Corp.
+ All rights reserved.
+ -->
+<HTML><HEAD>
+<SCRIPT LANGUAGE="JavaScript">
+
+function setDeleteCheckboxes(attr, checked)
+{
+ var varName = 'delete_' + attr;
+
+ for ( i = 0; i < document.modifyEntryForm.elements.length; ++i ) {
+ if ( document.modifyEntryForm.elements[i].name == varName ) {
+ document.modifyEntryForm.elements[i].checked = checked;
+ }
+ }
+ aChg(attr);
+}
+
+</SCRIPT>
+<!-- DS_OBJECTCLASS "value=groupOfUniqueNames" -->
+
+<!-- DS_ENTRYBEGIN -->
+<TITLE>
+<!-- IF "Adding" -->
+New
+<!-- ENDIF // Adding -->
+Group Entry -
+<!-- DS_ATTRIBUTE "attr=dn" "syntax=dn" "options=nolink" -->
+</TITLE></HEAD>
+<!-- BODY -->
+
+<!-- DS_LAST_OP_INFO "prefix=<FONT SIZE=%22%2B1%22>" "suffix=</FONT><HR>" -->
+
+<!-- DS_BEGIN_ENTRYFORM -->
+<FONT SIZE="+2">
+<!-- IF "Adding" -->
+New Group -
+<!-- ENDIF // Adding -->
+<!-- DS_ATTRIBUTE "attr=dn" "syntax=dn" "dncomponents=2" "options=nolink" -->
+</FONT>
+
+<!-- IF "Adding" -->
+<INPUT TYPE="hidden" NAME="add_objectClass" VALUE="top">
+<INPUT TYPE="hidden" NAME="add_objectClass" VALUE="groupOfUniqueNames">
+<!-- ENDIF // Adding -->
+
+<!-- IF "!Displaying" -->
+<INPUT TYPE="hidden" NAME="quiet" VALUE="true">
+<INPUT TYPE="hidden" NAME="completion_javascript" VALUE="if (dsmodify_dn.length == 0) document.location.href=\'genscreen?dslsgroups&info=\' + escape(dsmodify_info); else document.location.href=\'edit/\' + dsmodify_dn + \'?&info=\' + escape(dsmodify_info);">
+<DIV ALIGN="right"><FONT SIZE="-1">* Indicates a required field</FONT></DIV>
+<!-- ENDIF -->
+
+
+<TABLE CELLSPACING="5">
+<TR>
+<TD ALIGN="right" NOWRAP>
+<!-- IF "!Displaying" -->
+<B>*</B>
+<!-- ENDIF -->
+<B>Name:</B>
+</TD>
+<TD NOWRAP><B>
+<!-- DS_ATTRIBUTE "attr=cn" "cols=>40" -->
+</B></TD><TD WIDTH="20%"></TD>
+</TR>
+
+<TR>
+<TD ALIGN="right" NOWRAP><B>Description:</B></TD>
+<TD NOWRAP><B>
+<!-- DS_ATTRIBUTE "attr=description" "cols=>40" "defaultvalue=none" -->
+</B></TD></TR>
+
+<TR>
+<TD NOWRAP ALIGN="right" VALIGN="top"><B>Group Members:</B><BR>
+<!-- DS_DNEDITBUTTON "label=Edit..." "template=dnedit" "attr=uniquemember" "desc=Group Members" -->
+</TD><TD>
+<!-- DS_ATTRIBUTE "attr=uniquemember" "syntax=dn" "dncomponents=2" "options=readonly,sort" -->
+</TD></TR>
+
+<TR>
+<TD VALIGN="top" ALIGN="right" NOWRAP><B>Owner:</B><BR>
+<!-- DS_DNEDITBUTTON "label=Edit..." "template=dnedit" "attr=owner" "desc=Owner" -->
+</TD><TD>
+<!-- DS_ATTRIBUTE "attr=owner" "syntax=dn" "dncomponents=2" "options=readonly" -->
+</TD>
+</TD></TR>
+
+<TR>
+<TD VALIGN="top" ALIGN="right" NOWRAP><B>See Also:</B><BR>
+<!-- DS_DNEDITBUTTON "label=Edit..." "template=dnedit" "attr=seeAlso" "desc=See Also" -->
+</TD><TD>
+<!-- DS_ATTRIBUTE "attr=seeAlso" "syntax=dn" "dncomponents=2" "options=readonly" -->
+</TABLE></TD>
+</TD></TR>
+
+</TABLE>
+
+<!-- IF "AttributeHasValues" "modifyTimestamp" -->
+<TABLE BORDER=0><TR><TD><FONT SIZE="-1">
+Last modified on
+<!-- DS_ATTRIBUTE "attr=modifyTimestamp" "syntax=time" "options=readonly" -->
+ by
+<!-- DS_ATTRIBUTE "attr=modifiersName" "syntax=dn" "options=readonly" -->
+</FONT></TD></TR></TABLE>
+<!-- ENDIF // AttributeHasValues -->
+
+<TABLE BORDER=2 WIDTH=100%><TR><TD WIDTH=25% ALIGN="center">
+<!-- DS_SAVEBUTTON -->
+</TD><TD WIDTH=25% ALIGN="center">
+<!-- DS_RENAMEBUTTON "label=Rename Group" "prompt=Enter a new name for this group:" -->
+</TD><TD WIDTH=25% ALIGN="center">
+<!-- DS_DELETEBUTTON "label=Delete Group" "prompt=Delete this group?" -->
+</TD><TD WIDTH=25% ALIGN="center">
+<!-- DS_HELPBUTTON "topic=EDIT_GROUP" -->
+</TD></TR></TABLE>
+
+<!-- DS_END_ENTRYFORM -->
+<!-- DS_ENTRYEND -->
+<!-- ENDHTML -->
diff --git a/ldap/clients/dsgw/admhtml/display-licensed-user.html b/ldap/clients/dsgw/admhtml/display-licensed-user.html
new file mode 100644
index 00000000..869e8886
--- /dev/null
+++ b/ldap/clients/dsgw/admhtml/display-licensed-user.html
@@ -0,0 +1,71 @@
+<!--
+ PROPRIETARY/CONFIDENTIAL. Use of this product is subject to
+ license terms. Copyright © 2001 Sun Microsystems, Inc.
+ Some preexisting portions Copyright © 2001 Netscape Communications Corp.
+ All rights reserved.
+ -->
+<HTML>
+<HEAD>
+<!-- Netscape Client Access Licensee directory entry -->
+<!-- DS_OBJECTCLASS "value=nsLicenseUser" -->
+
+<!-- DS_ENTRYBEGIN -->
+<!-- DS_EMIT_BASE_HREF -->
+<TITLE>
+<!-- DS_ATTRIBUTE "attr=dn" "syntax=dn" "options=nolink" -->
+</TITLE></HEAD>
+<!-- BODY -->
+
+<!-- DS_LAST_OP_INFO "prefix=<FONT SIZE=%22%2B1%22>" "suffix=</FONT><HR>" -->
+
+<!-- DS_BEGIN_ENTRYFORM -->
+
+<FONT SIZE="+2">
+<!-- DS_ATTRIBUTE "attr=dn" "syntax=dn" "dncomponents=2" "options=nolink" -->
+</FONT>
+
+<!-- DS_VIEW_SWITCHER -->
+
+<!-- IF "Adding" -->
+<INPUT TYPE="hidden" NAME="add_objectClass" VALUE="top">
+<INPUT TYPE="hidden" NAME="add_objectClass" VALUE="nsLicenseUser">
+<!-- ENDIF // Adding -->
+
+<CENTER>
+<FONT SIZE="+1"><B>Netscape Client Access License Information</B></FONT>
+<!-- IF "!AttributeHasThisValue" "objectClass" "cis" "nsLicenseUser" -->
+<INPUT TYPE="hidden" NAME="add_objectClass" VALUE="nsLicenseUser">
+<!-- ENDIF // !AttributeHasThisValue -->
+</CENTER>
+<P>
+
+<!-- IF "!Displaying" -->
+<INPUT TYPE="hidden" NAME="quiet" VALUE="true">
+<INPUT TYPE="hidden" NAME="completion_javascript" VALUE="if (dsmodify_dn.length == 0) document.location.href=\'genscreen?dslsusers&info=\' + escape(dsmodify_info); else document.location.href=\'edit/\' + dsmodify_dn + \'?licensed-user&info=\' + escape(dsmodify_info);">
+<!-- ENDIF -->
+
+<P>
+Mark all of the products that this person has been granted a
+Client Access License for:
+<P>
+
+<TABLE CELLSPACING="5">
+
+<INPUT TYPE="hidden" NAME="replace_nsLicensedFor" VALUE="">
+<!-- DS_ATTRVAL_SET "set=CAL" "attr=nsLicensedFor" "type=checkbox" "prefix=<TR><TD>" "suffix=</TD></TR>" -->
+
+</TABLE>
+
+<P>
+
+<TABLE BORDER=2 WIDTH=100%><TR><TD WIDTH=50% ALIGN="center">
+<!-- DS_SAVEBUTTON -->
+</TD><TD WIDTH=50% ALIGN="center">
+<!-- DS_HELPBUTTON "topic=EDIT_LICENSE_INFO" -->
+</TD>
+</TR></TABLE>
+
+<!-- DS_END_ENTRYFORM -->
+<!-- DS_ENTRYEND -->
+
+<!-- ENDHTML -->
diff --git a/ldap/clients/dsgw/admhtml/display-mailgroup.html b/ldap/clients/dsgw/admhtml/display-mailgroup.html
new file mode 100644
index 00000000..4768270a
--- /dev/null
+++ b/ldap/clients/dsgw/admhtml/display-mailgroup.html
@@ -0,0 +1,121 @@
+<!--
+ PROPRIETARY/CONFIDENTIAL. Use of this product is subject to
+ license terms. Copyright © 2001 Sun Microsystems, Inc.
+ Some preexisting portions Copyright © 2001 Netscape Communications Corp.
+ All rights reserved.
+ -->
+<HTML><HEAD>
+<!-- DS_OBJECTCLASS "value=rfc822mailgroup" -->
+
+<!-- DS_ENTRYBEGIN -->
+<TITLE>
+<!-- IF "Adding" -->
+New
+<!-- ENDIF // Adding -->
+Mail Group Entry -
+<!-- DS_ATTRIBUTE "attr=dn" "syntax=dn" "options=nolink" -->
+</TITLE></HEAD><BODY>
+
+<!-- DS_BEGIN_ENTRYFORM -->
+
+<TABLE>
+<TR>
+<TD>
+<IMG SRC="/admin-serv/icons/group.gif" ALT="Group" HSPACE=5 >
+<FONT SIZE="+2">
+<!-- IF "Adding" -->
+New Mail Group
+<!-- ENDIF // Adding -->
+
+<!-- DS_ATTRIBUTE "attr=dn" "syntax=dn" "dncomponents=2" "options=nolink" -->
+</FONT>
+</TABLE>
+
+<TABLE><TR><TD>
+<!-- IF "Displaying" -->
+<!-- DS_EDITBUTTON "label=Edit Group" -->
+<!-- ELIF "Adding" -->
+<!-- DS_SAVEBUTTON "label=Save New Group" -->
+<!-- ELIF "Editing" -->
+<!-- DS_SAVEBUTTON -->
+<!-- ENDIF // Editing -->
+</TD><TD>&nbsp&nbsp</TD><TD>
+<!-- IF "!Displaying" -->
+<!-- DS_CLOSEBUTTON "label=Cancel" -->
+<!-- ENDIF // !Displaying -->
+</TD><TD>&nbsp&nbsp</TD><TD>
+<!-- IF "Editing" -->
+<!-- DS_HELPBUTTON "topic=EDIT_MAILGROUP" -->
+<!-- ELIF "Adding" -->
+<!-- DS_HELPBUTTON "topic=ADD_MAILGROUP" -->
+<!-- ENDIF // Adding -->
+
+<!-- IF "Editing" -->
+</TD><TD>&nbsp&nbsp</TD><TD>
+<!-- DS_RENAMEBUTTON "label=Rename Group" "prompt=Enter a new name for this group:" -->
+</TD><TD>
+<!-- DS_DELETEBUTTON "label=Delete Group" "prompt=Delete this group?" -->
+</TD>
+<!-- ENDIF // Editing -->
+
+</TR></TABLE>
+
+<!-- IF "Adding" -->
+<INPUT TYPE="hidden" NAME="add_objectClass" VALUE="top">
+<INPUT TYPE="hidden" NAME="add_objectClass" VALUE="rfc822mailgroup">
+<!-- ENDIF // Adding -->
+
+<HR>
+
+<TABLE CELLSPACING="5">
+
+<TR><TD VALIGN="TOP">Name:</TD><TD VALIGN="TOP" NOWRAP><B>
+<!-- DS_ATTRIBUTE "attr=cn" -->
+</B></TD><TD WIDTH="20%"></TD>
+<TD VALIGN="TOP">Description:</TD><TD VALIGN="TOP" NOWRAP><B>
+<!-- DS_ATTRIBUTE "attr=multilineDescription" "defaultvalue=none" -->
+</B></TD></TR>
+
+<TR><TD VALIGN="TOP">Owner:</TD>
+<TD VALIGN="TOP" NOWRAP COLSPAN="4"><B>
+<!-- DS_ATTRIBUTE "attr=owner" "syntax=dn" "cols=>40" -->
+</B></TD></TR>
+
+<TR><TD VALIGN="TOP" NOWRAP>See Also:</TD>
+<TD VALIGN="TOP" NOWRAP COLSPAN="4"><B>
+<!-- DS_ATTRIBUTE "attr=seeAlso" "syntax=dn" "cols=>40" -->
+</B></TD></TR>
+
+<TR><TD NOWRAP COLSPAN="2">
+<!-- DS_ATTRIBUTE "attr=joinable" "syntax=bool" "type=radio" "true=Allow Others To Join" "false=Do Not Allow Others To Join" "defaultvalue=FALSE" -->
+</TD><TD></TD><TD NOWRAP COLSPAN="2">
+<!-- DS_ATTRIBUTE "attr=suppressNoEmailError" "syntax=bool" "type=radio" "true=Suppress 'No Email Address' Errors" "false=Return 'No Email Address' Errors" "defaultvalue=FALSE" -->
+</TD></TR>
+
+<HR>
+
+<TR><TD VALIGN="TOP" NOWRAP>Group Members:</TD>
+<TD VALIGN="TOP" NOWRAP COLSPAN="4"><B>
+<!-- DS_ATTRIBUTE "attr=member" "syntax=dn" "numfields=+4" "options=sort" -->
+</B></TD></TR>
+
+<TR><TD VALIGN="TOP" NOWRAP>E-Mail Members:</TD>
+<TD VALIGN="TOP" NOWRAP COLSPAN="4"><B>
+<!-- DS_ATTRIBUTE "attr=mail" "syntax=mail" "numfields=+4" "cols=>30" "options=sort" -->
+</B></TD></TR>
+
+</TABLE>
+
+<!-- IF "!Adding" -->
+<HR>
+This entry was last modified on <B>
+<!-- DS_ATTRIBUTE "attr=lastModifiedTime" "syntax=time" "defaultvalue=N/A" "options=readonly" -->
+</B> by <B>
+<!-- DS_ATTRIBUTE "attr=lastModifiedBy" "syntax=dn" "defaultvalue=N/A" "options=readonly" -->
+</B>
+<!-- ENDIF // !Adding -->
+
+<!-- DS_END_ENTRYFORM -->
+<!-- DS_ENTRYEND -->
+
+<!-- ENDHTML -->
diff --git a/ldap/clients/dsgw/admhtml/display-org.html b/ldap/clients/dsgw/admhtml/display-org.html
new file mode 100644
index 00000000..1d05a994
--- /dev/null
+++ b/ldap/clients/dsgw/admhtml/display-org.html
@@ -0,0 +1,129 @@
+<!--
+ PROPRIETARY/CONFIDENTIAL. Use of this product is subject to
+ license terms. Copyright © 2001 Sun Microsystems, Inc.
+ Some preexisting portions Copyright © 2001 Netscape Communications Corp.
+ All rights reserved.
+ -->
+<HTML><HEAD>
+<!-- DS_OBJECTCLASS "value=organization" -->
+
+<!-- DS_ENTRYBEGIN -->
+<TITLE>
+<!-- IF "Adding" -->
+New
+<!-- ENDIF // Adding -->
+Organization -
+<!-- DS_ATTRIBUTE "attr=dn" "syntax=dn" "options=nolink" -->
+</TITLE></HEAD><BODY>
+
+<!-- DS_BEGIN_ENTRYFORM -->
+
+<TABLE>
+<TR>
+<TD>
+<IMG SRC="/admin-serv/icons/organization.gif" ALT="Organization" HSPACE=5>
+<TD>
+<FONT SIZE="+2">
+<!-- IF "Adding" -->
+New Organization -
+<!-- ENDIF // Adding -->
+<!-- DS_ATTRIBUTE "attr=dn" "syntax=dn" "options=nolink" -->
+</FONT>
+</TABLE>
+
+<TABLE><TR><TD>
+<!-- IF "Displaying" -->
+<!-- DS_EDITBUTTON "label=Edit Organization" -->
+<!-- ELIF "Adding" -->
+<!-- DS_SAVEBUTTON "label=Save New Org." -->
+<!-- ELIF "Editing" -->
+<!-- DS_SAVEBUTTON -->
+<!-- ENDIF // Editing -->
+</TD><TD>&nbsp&nbsp</TD><TD>
+<!-- IF "!Displaying" -->
+<!-- DS_CLOSEBUTTON "label=Cancel" -->
+<!-- ENDIF // !Displaying -->
+</TD><TD>&nbsp&nbsp</TD><TD>
+<!-- IF "Editing" -->
+<!-- DS_HELPBUTTON "topic=EDIT_ORG" -->
+<!-- ELIF "Adding" -->
+<!-- DS_HELPBUTTON "topic=ADD_ORG" -->
+<!-- ENDIF // Adding -->
+</TD>
+
+<!-- IF "Editing" -->
+<TD>&nbsp&nbsp</TD><TD>
+<!-- DS_RENAMEBUTTON "label=Rename Org." "prompt=Enter a new name for this organization:" -->
+</TD><TD>
+<!-- DS_DELETEBUTTON "label=Delete Org." "prompt=Delete this organization?" -->
+</TD>
+<!-- ENDIF // Editing -->
+
+</TR></TABLE>
+
+<!-- IF "Adding" -->
+<INPUT TYPE="hidden" NAME="add_objectClass" VALUE="top">
+<INPUT TYPE="hidden" NAME="add_objectClass" VALUE="organization">
+<!-- ENDIF // Adding -->
+
+<HR>
+<!-- IF "!Displaying" -->
+<DIV ALIGN="right"><B>*&nbsp</B>Indicates a required field</DIV>
+<!-- ENDIF -->
+
+<TABLE>
+<TR>
+<TD VALIGN="TOP" NOWRAP>
+<!-- IF "!Displaying" -->
+<B>*&nbsp</B>
+<!-- ENDIF -->
+<B>Organization Name:</B>
+</TD>
+<TD VALIGN="TOP" NOWRAP><B>
+<!-- DS_ATTRIBUTE "attr=o" "cols=>20" -->
+</B></TD><TD WIDTH="20%"></TD>
+<TD>Description:</TD><TD NOWRAP><B>
+<!-- DS_ATTRIBUTE "attr=description" "cols=>30" -->
+</B></TR>
+
+<TR><TD>Phone:</TD><TD NOWRAP><B>
+<!-- DS_ATTRIBUTE "attr=telephoneNumber" "syntax=tel" "cols=>16" -->
+</B></TD><TD></TD>
+<TD NOWRAP>Business Category:</TD><TD NOWRAP><B>
+<!-- DS_ATTRIBUTE "attr=businessCategory" "cols=>30" -->
+</B></TD></TR>
+
+<TR><TD>Fax:<TD NOWRAP><B>
+<!-- DS_ATTRIBUTE "attr=facsimiletelephonenumber" "syntax=tel" "cols=>16" -->
+</B></TD><TD></TD>
+<TD>Location:</TD><TD NOWRAP><B>
+<!-- DS_ATTRIBUTE "attr=l" "cols=>30" -->
+</B></TD></TR>
+
+<TR>
+<TD VALIGN="TOP" NOWRAP>Mailing Address:</TD>
+<TD VALIGN="TOP" COLSPAN="4" NOWRAP><B>
+<!-- DS_ATTRIBUTE "attr=postalAddress" "syntax=mls" "type=TEXTAREA" "cols=>40" "rows=>4" -->
+</B></TD></TR>
+
+<TR>
+<TD VALIGN="TOP">See Also:</TD>
+<TD VALIGN="TOP" NOWRAP COLSPAN="4"><B>
+<!-- DS_ATTRIBUTE "attr=seeAlso" "syntax=dn" "dncomponents=3" "cols=>50" -->
+</B></TR>
+
+</TABLE>
+
+<!-- IF "!Adding" -->
+<HR>
+This entry was last modified on <B>
+<!-- DS_ATTRIBUTE "attr=modifyTimestamp" "syntax=time" "defaultvalue=N/A" "options=readonly" -->
+</B> by <B>
+<!-- DS_ATTRIBUTE "attr=modifiersName" "syntax=dn" "defaultvalue=N/A" "options=readonly" -->
+</B>
+<!-- ENDIF // !Adding -->
+
+<!-- DS_END_ENTRYFORM -->
+<!-- DS_ENTRYEND -->
+
+<!-- ENDHTML -->
diff --git a/ldap/clients/dsgw/admhtml/display-orgperson.html b/ldap/clients/dsgw/admhtml/display-orgperson.html
new file mode 100644
index 00000000..60660b1e
--- /dev/null
+++ b/ldap/clients/dsgw/admhtml/display-orgperson.html
@@ -0,0 +1,142 @@
+<!--
+ PROPRIETARY/CONFIDENTIAL. Use of this product is subject to
+ license terms. Copyright © 2001 Sun Microsystems, Inc.
+ Some preexisting portions Copyright © 2001 Netscape Communications Corp.
+ All rights reserved.
+ -->
+<HTML>
+<HEAD>
+<!-- inet. organizational person directory entry -->
+<!-- DS_OBJECTCLASS "value=person,inetOrgPerson" -->
+
+<!-- DS_ENTRYBEGIN -->
+<!-- DS_EMIT_BASE_HREF -->
+<TITLE>
+User Entry -
+<!-- DS_ATTRIBUTE "attr=dn" "syntax=dn" "options=nolink" -->
+</TITLE></HEAD>
+<!-- BODY -->
+
+<!-- DS_LAST_OP_INFO "prefix=<FONT SIZE=%22%2B1%22>" "suffix=</FONT><HR>" -->
+
+<!-- DS_BEGIN_ENTRYFORM -->
+
+<FONT SIZE="+2">
+<!-- DS_ATTRIBUTE "attr=dn" "syntax=dn" "dncomponents=2" "options=nolink" -->
+</FONT>
+
+<!-- DS_VIEW_SWITCHER -->
+
+<!-- IF "Adding" -->
+<INPUT TYPE="hidden" NAME="add_objectClass" VALUE="top">
+<INPUT TYPE="hidden" NAME="add_objectClass" VALUE="person">
+<INPUT TYPE="hidden" NAME="add_objectClass" VALUE="organizationalPerson">
+<INPUT TYPE="hidden" NAME="add_objectClass" VALUE="inetOrgPerson">
+<!-- ENDIF // Adding -->
+
+<!-- IF "!Displaying" -->
+<INPUT TYPE="hidden" NAME="quiet" VALUE="true">
+<INPUT TYPE="hidden" NAME="completion_javascript" VALUE="if (dsmodify_dn.length == 0) document.location.href=\'genscreen?dslsusers&info=\' + escape(dsmodify_info); else document.location.href=\'edit/\' + dsmodify_dn + \'?&info=\' + escape(dsmodify_info);">
+<DIV ALIGN="right"><FONT SIZE="-1">* Indicates a required field</FONT></DIV>
+<!-- ENDIF -->
+
+<TABLE CELLSPACING="5">
+
+<TR>
+<TD VALIGN="top" ALIGN="Right" NOWRAP><B>Given Name (First Name):</B></TD>
+<TD VALIGN="top" NOWRAP>
+<!-- DS_ATTRIBUTE "attr=givenName" "cols=>32" -->
+</TD>
+</TR>
+
+<TR>
+<TD VALIGN="top" ALIGN="Right" NOWRAP>
+<!-- IF "!Displaying" -->
+<B>*</B>
+<!-- ENDIF -->
+<B>Surname (Last Name):</B></TD>
+<TD VALIGN="top" NOWRAP>
+<!-- DS_ATTRIBUTE "attr=sn" "cols=>32" -->
+</TD>
+</TR>
+
+<TR>
+<TD VALIGN="top" ALIGN="right" NOWRAP>
+<!-- IF "!Displaying" -->
+<B>*</B>
+<!-- ENDIF -->
+<B>Full Name(s):</B>
+</TD>
+<TD VALIGN="top" NOWRAP><B>
+<!-- DS_ATTRIBUTE "attr=cn" "numfields=+1" "cols=>32" -->
+</B></TD>
+</TR>
+
+<TR>
+<TD VALIGN="top" ALIGN="right" NOWRAP>
+<!-- IF "!Displaying" -->
+<B>*</B>
+<!-- ENDIF -->
+<B>User ID:</B>
+</TD>
+<TD VALIGN="top" NOWRAP><B>
+<!-- DS_ATTRIBUTE "attr=uid" "numfields=1" "cols=>16" "options=unique" -->
+</B></TD>
+</TR>
+
+<!-- IF "Adding" -->
+<TR><TD COLSPAN="2"><HR></TD></TR>
+<TR>
+<TD VALIGN="top" ALIGN="Right" NOWRAP><B>Password:</B></TD><TD>
+<!-- DS_NEWPASSWORD -->
+</TD>
+</TR>
+<TR>
+<TD VALIGN="top" ALIGN="Right" NOWRAP><B>Repeat password to confirm:</B></TD><TD>
+<!-- DS_CONFIRM_NEWPASSWORD -->
+</TD></TR>
+<TR><TD COLSPAN="2"><HR></TD></TR>
+<!-- ENDIF // Adding -->
+
+<TR>
+<TD VALIGN="top" ALIGN="Right" NOWRAP><B>E-Mail Address:</B></TD>
+<TD VALIGN="top" NOWRAP><B>
+<!-- DS_ATTRIBUTE "attr=mail" "syntax=mail" "cols=>32" -->
+</B></TD></TR>
+
+<TR>
+<TD VALIGN="top" ALIGN="Right" NOWRAP><B>Title:</B></TD>
+<TD VALIGN="top" NOWRAP><B>
+<!-- DS_ATTRIBUTE "attr=title" "cols=>32" -->
+</B></TD></TR>
+
+<TR>
+<TD VALIGN="top" ALIGN="Right" NOWRAP><B>Telephone:</B></TD>
+<TD VALIGN="top" NOWRAP><B>
+<!-- DS_ATTRIBUTE "attr=telephoneNumber" "syntax=tel" "cols=>16" "numfields=+1" -->
+</B></TD></TR>
+
+</TABLE>
+
+<!-- IF "AttributeHasValues" "modifyTimestamp" -->
+<TABLE BORDER=0><TR><TD><FONT SIZE="-1">
+Last modified on
+<!-- DS_ATTRIBUTE "attr=modifyTimestamp" "syntax=time" "options=readonly" -->
+ by
+<!-- DS_ATTRIBUTE "attr=modifiersName" "syntax=dn" "options=readonly" -->
+</FONT></TD></TR></TABLE>
+<!-- ENDIF // AttributeHasValues -->
+
+<TABLE BORDER=2 WIDTH=100%><TR><TD WIDTH=25% ALIGN="center">
+<!-- DS_SAVEBUTTON -->
+</TD><TD WIDTH=25% ALIGN="center">
+<!-- DS_RENAMEBUTTON "label=Rename User" "prompt=Please enter a new name for this user.\nNote that renaming only affects the Full Name field." -->
+</TD><TD WIDTH=25% ALIGN="center">
+<!-- DS_DELETEBUTTON "label=Delete User" "prompt=Delete this user?" -->
+</TD><TD WIDTH=25% ALIGN="center">
+<!-- DS_HELPBUTTON "topic=EDIT_ORGPERSON" -->
+</TD></TR></TABLE>
+
+<!-- DS_END_ENTRYFORM -->
+<!-- DS_ENTRYEND -->
+<!-- ENDHTML -->
diff --git a/ldap/clients/dsgw/admhtml/display-orgunit.html b/ldap/clients/dsgw/admhtml/display-orgunit.html
new file mode 100644
index 00000000..0f1db1a4
--- /dev/null
+++ b/ldap/clients/dsgw/admhtml/display-orgunit.html
@@ -0,0 +1,95 @@
+<!--
+ PROPRIETARY/CONFIDENTIAL. Use of this product is subject to
+ license terms. Copyright © 2001 Sun Microsystems, Inc.
+ Some preexisting portions Copyright © 2001 Netscape Communications Corp.
+ All rights reserved.
+ -->
+<HTML><HEAD>
+<!-- DS_OBJECTCLASS "value=organizationalUnit" -->
+
+<!-- DS_ENTRYBEGIN -->
+<TITLE>
+<!-- IF "Adding" -->
+New
+<!-- ENDIF // Adding -->
+Organizational Unit -
+<!-- DS_ATTRIBUTE "attr=dn" "syntax=dn" "options=nolink" -->
+</TITLE></HEAD>
+<!-- BODY -->
+
+<!-- DS_LAST_OP_INFO "prefix=<FONT SIZE=%22%2B1%22>" "suffix=</FONT><HR>" -->
+
+<!-- DS_BEGIN_ENTRYFORM -->
+
+<FONT SIZE="+2">
+<!-- IF "Adding" -->
+New Organizational Unit -
+<!-- ENDIF // Adding -->
+<!-- DS_ATTRIBUTE "attr=dn" "syntax=dn" "options=nolink" -->
+</FONT>
+
+<!-- IF "Adding" -->
+<INPUT TYPE="hidden" NAME="add_objectClass" VALUE="top">
+<INPUT TYPE="hidden" NAME="add_objectClass" VALUE="organizationalUnit">
+<!-- ENDIF // Adding -->
+
+<!-- IF "!Displaying" -->
+<INPUT TYPE="hidden" NAME="quiet" VALUE="true">
+<INPUT TYPE="hidden" NAME="completion_javascript" VALUE="if (dsmodify_dn.length == 0) document.location.href=\'genscreen?dslsous&info=\' + escape(dsmodify_info); else document.location.href=\'edit/\' + dsmodify_dn + \'?&info=\' + escape(dsmodify_info);">
+<DIV ALIGN="right"><FONT SIZE="-1">* Indicates a required field</FONT></DIV>
+<!-- ENDIF -->
+
+
+<TABLE>
+<TR><TD>
+<!-- IF "!Displaying" -->
+<B>*</B>
+<!-- ENDIF -->
+<B>Unit Name:</B>
+</TD><TD NOWRAP><B>
+<!-- DS_ATTRIBUTE "attr=ou" "cols=>40" -->
+</B></TD></TR>
+
+<TR><TD>
+<B>Description:</B></TD><TD NOWRAP><B>
+<!-- DS_ATTRIBUTE "attr=description" "cols=>40" -->
+</B></TD></TR>
+
+<TR><TD><B>Phone:</B></TD><TD NOWRAP><B>
+<!-- DS_ATTRIBUTE "attr=telephoneNumber" "syntax=tel" "cols=>16" -->
+</B></TD></TR>
+
+<TR><TD><B>Fax:</B><TD NOWRAP><B>
+<!-- DS_ATTRIBUTE "attr=facsimiletelephonenumber" "syntax=tel" "cols=>16" -->
+</B></TD></TR>
+
+<TR>
+<TD VALIGN="TOP"><B>Mailing Address:</B></TD>
+<TD VALIGN="TOP" COLSPAN="4" NOWRAP><B>
+<!-- DS_ATTRIBUTE "attr=postalAddress" "syntax=mls" "type=TEXTAREA" "cols=>40" "rows=>4" -->
+</B></TD></TR>
+
+</TABLE>
+
+<!-- IF "AttributeHasValues" "modifyTimestamp" -->
+<TABLE BORDER=0><TR><TD><FONT SIZE="-1">
+Last modified on
+<!-- DS_ATTRIBUTE "attr=modifyTimestamp" "syntax=time" "options=readonly" -->
+ by
+<!-- DS_ATTRIBUTE "attr=modifiersName" "syntax=dn" "options=readonly" -->
+</FONT></TD></TR></TABLE>
+<!-- ENDIF // AttributeHasValues -->
+
+<TABLE BORDER=2 WIDTH=100%><TR><TD WIDTH=25% ALIGN="center">
+<!-- DS_SAVEBUTTON -->
+</TD><TD WIDTH=25% ALIGN="center">
+<!-- DS_RENAMEBUTTON "label=Rename" "prompt=Enter a new name for this organizational unit:" -->
+</TD><TD WIDTH=25% ALIGN="center">
+<!-- DS_DELETEBUTTON "label=Delete" "prompt=Delete this organizational unit?" -->
+</TD><TD WIDTH=25% ALIGN="center">
+<!-- DS_HELPBUTTON "topic=EDIT_ORGUNIT" -->
+</TD></TR></TABLE>
+
+<!-- DS_END_ENTRYFORM -->
+<!-- DS_ENTRYEND -->
+<!-- ENDHTML -->
diff --git a/ldap/clients/dsgw/admhtml/display-person.html b/ldap/clients/dsgw/admhtml/display-person.html
new file mode 100644
index 00000000..74fc3d3a
--- /dev/null
+++ b/ldap/clients/dsgw/admhtml/display-person.html
@@ -0,0 +1,133 @@
+<!--
+ PROPRIETARY/CONFIDENTIAL. Use of this product is subject to
+ license terms. Copyright © 2001 Sun Microsystems, Inc.
+ Some preexisting portions Copyright © 2001 Netscape Communications Corp.
+ All rights reserved.
+ -->
+<HTML>
+<HEAD>
+<!-- person directory entry -->
+<!-- DS_OBJECTCLASS "value=person" -->
+
+<!-- DS_ENTRYBEGIN -->
+<!-- DS_EMIT_BASE_HREF -->
+<TITLE>
+User Entry -
+<!-- DS_ATTRIBUTE "attr=dn" "syntax=dn" "options=nolink" -->
+</TITLE></HEAD>
+<!-- BODY -->
+
+<!-- DS_LAST_OP_INFO "prefix=<FONT SIZE=%22%2B1%22>" "suffix=</FONT><HR>" -->
+
+<!-- DS_BEGIN_ENTRYFORM -->
+
+<FONT SIZE="+2">
+<!-- DS_ATTRIBUTE "attr=dn" "syntax=dn" "dncomponents=2" "options=nolink" -->
+</FONT>
+
+<!-- DS_VIEW_SWITCHER -->
+
+<!-- IF "Adding" -->
+<INPUT TYPE="hidden" NAME="add_objectClass" VALUE="top">
+<INPUT TYPE="hidden" NAME="add_objectClass" VALUE="person">
+<!-- ENDIF // Adding -->
+
+<!-- IF "!Displaying" -->
+<INPUT TYPE="hidden" NAME="quiet" VALUE="true">
+<INPUT TYPE="hidden" NAME="completion_javascript" VALUE="if (dsmodify_dn.length == 0) document.location.href=\'genscreen?dslsusers&info=\' + escape(dsmodify_info); else document.location.href=\'edit/\' + dsmodify_dn + \'?&info=\' + escape(dsmodify_info);">
+<DIV ALIGN="right"><FONT SIZE="-1">* Indicates a required field</FONT></DIV>
+<!-- ENDIF -->
+
+<TABLE CELLSPACING="5">
+
+<TR>
+<TD VALIGN="top" ALIGN="Right" NOWRAP>
+<!-- IF "!Displaying" -->
+<B>*</B>
+<!-- ENDIF -->
+<B>Surname (Last Name):</B></TD>
+<TD VALIGN="top" NOWRAP>
+<!-- DS_ATTRIBUTE "attr=sn" "cols=>32" -->
+</TD>
+</TR>
+
+<TR>
+<TD VALIGN="top" ALIGN="right" NOWRAP>
+<!-- IF "!Displaying" -->
+<B>*</B>
+<!-- ENDIF -->
+<B>Full Name(s):</B>
+</TD>
+<TD VALIGN="top" NOWRAP><B>
+<!-- DS_ATTRIBUTE "attr=cn" "numfields=+1" "cols=>32" -->
+</B></TD>
+</TR>
+
+<TR>
+<TD VALIGN="top" ALIGN="right" NOWRAP>
+<!-- IF "!Displaying" -->
+<B>*</B>
+<!-- ENDIF -->
+<B>User ID:</B>
+</TD>
+<TD VALIGN="top" NOWRAP><B>
+<!-- DS_ATTRIBUTE "attr=uid" "numfields=1" "cols=>16" "options=unique" -->
+</B></TD>
+</TR>
+
+<!-- IF "Adding" -->
+<TR><TD COLSPAN="2"><HR></TD></TR>
+<TR>
+<TD VALIGN="top" ALIGN="Right" NOWRAP><B>Password:</B></TD><TD>
+<!-- DS_NEWPASSWORD -->
+</TD>
+</TR>
+<TR>
+<TD VALIGN="top" ALIGN="Right" NOWRAP><B>Repeat password to confirm:</B></TD><TD>
+<!-- DS_CONFIRM_NEWPASSWORD -->
+</TD></TR>
+<TR><TD COLSPAN="2"><HR></TD></TR>
+<!-- ENDIF // Adding -->
+
+<TR>
+<TD VALIGN="top" ALIGN="Right" NOWRAP><B>E-Mail Address:</B></TD>
+<TD VALIGN="top" NOWRAP><B>
+<!-- DS_ATTRIBUTE "attr=mail" "syntax=mail" "cols=>32" -->
+</B></TD></TR>
+
+<TR>
+<TD VALIGN="top" ALIGN="Right" NOWRAP><B>Title:</B></TD>
+<TD VALIGN="top" NOWRAP><B>
+<!-- DS_ATTRIBUTE "attr=title" "cols=>32" -->
+</B></TD></TR>
+
+<TR>
+<TD VALIGN="top" ALIGN="Right" NOWRAP><B>Telephone:</B></TD>
+<TD VALIGN="top" NOWRAP><B>
+<!-- DS_ATTRIBUTE "attr=telephoneNumber" "syntax=tel" "cols=>16" "numfields=+1" -->
+</B></TD></TR>
+
+</TABLE>
+
+<!-- IF "AttributeHasValues" "modifyTimestamp" -->
+<TABLE BORDER=0><TR><TD><FONT SIZE="-1">
+Last modified on
+<!-- DS_ATTRIBUTE "attr=modifyTimestamp" "syntax=time" "options=readonly" -->
+ by
+<!-- DS_ATTRIBUTE "attr=modifiersName" "syntax=dn" "options=readonly" -->
+</FONT></TD></TR></TABLE>
+<!-- ENDIF // AttributeHasValues -->
+
+<TABLE BORDER=2 WIDTH=100%><TR><TD WIDTH=25% ALIGN="center">
+<!-- DS_SAVEBUTTON -->
+</TD><TD WIDTH=25% ALIGN="center">
+<!-- DS_RENAMEBUTTON "label=Rename User" "prompt=Please enter a new name for this user.\nNote that renaming only affects the Full Name field." -->
+</TD><TD WIDTH=25% ALIGN="center">
+<!-- DS_DELETEBUTTON "label=Delete User" "prompt=Delete this user?" -->
+</TD><TD WIDTH=25% ALIGN="center">
+<!-- DS_HELPBUTTON "topic=EDIT_ORGPERSON" -->
+</TD></TR></TABLE>
+
+<!-- DS_END_ENTRYFORM -->
+<!-- DS_ENTRYEND -->
+<!-- ENDHTML -->
diff --git a/ldap/clients/dsgw/admhtml/display-umperson.html b/ldap/clients/dsgw/admhtml/display-umperson.html
new file mode 100644
index 00000000..6688b471
--- /dev/null
+++ b/ldap/clients/dsgw/admhtml/display-umperson.html
@@ -0,0 +1,177 @@
+<!--
+ PROPRIETARY/CONFIDENTIAL. Use of this product is subject to
+ license terms. Copyright © 2001 Sun Microsystems, Inc.
+ Some preexisting portions Copyright © 2001 Netscape Communications Corp.
+ All rights reserved.
+ -->
+<HTML><HEAD>
+<!-- U-M person directory entry -->
+<!-- DS_OBJECTCLASS "value=person,umichPerson" -->
+
+<!-- DS_ENTRYBEGIN -->
+<TITLE>
+<!-- IF "Adding" -->
+New
+<!-- ENDIF // Adding -->
+U-M Person Entry -
+<!-- DS_ATTRIBUTE "attr=dn" "syntax=dn" "options=nolink" -->
+</TITLE></HEAD><BODY>
+
+<!-- DS_BEGIN_ENTRYFORM -->
+
+<TABLE><TR><TD>
+<IMG SRC="/admin-serv/icons/person.gif" ALT="Person" HSPACE=5>
+</TD><TD><FONT SIZE="+2">
+<!-- IF "Adding" -->
+New U-M Person -
+<!-- ENDIF // Adding -->
+<!-- DS_ATTRIBUTE "attr=dn" "syntax=dn" "dncomponents=2" "options=nolink" -->
+</FONT></TD></TR></TABLE>
+
+<TABLE><TR><TD>
+<!-- IF "Displaying" -->
+<!-- DS_EDITBUTTON "label=Edit Person" -->
+<!-- ELIF "Adding" -->
+<!-- DS_SAVEBUTTON "label=Save New Person" -->
+<!-- ELIF "Editing" -->
+<!-- DS_SAVEBUTTON -->
+<!-- ENDIF // Editing -->
+</TD><TD>&nbsp&nbsp</TD><TD>
+<!-- IF "!Displaying" -->
+<!-- DS_CLOSEBUTTON "label=Cancel" -->
+<!-- ENDIF // !Displaying -->
+</TD><TD>&nbsp&nbsp</TD><TD>
+<!-- IF "Editing" -->
+<!-- DS_HELPBUTTON "topic=EDIT_UMPERSON" -->
+<!-- ELIF "Adding" -->
+<!-- DS_HELPBUTTON "topic=ADD_UMPERSON" -->
+<!-- ENDIF // Adding -->
+</TD>
+
+<!-- IF "Editing" -->
+<TD>&nbsp&nbsp</TD><TD>
+<!-- DS_EDITASBUTTON "label=Change Password" "template=passwd" -->
+</TD><TD>
+<!-- DS_RENAMEBUTTON "label=Rename Person" "prompt=Enter a new name for this person:" -->
+</TD><TD>
+<!-- DS_DELETEBUTTON "label=Delete Person" "prompt=Delete this person?" -->
+</TD>
+<!-- ENDIF // Editing -->
+
+</TR></TABLE>
+
+<!-- IF "Adding" -->
+<INPUT TYPE="hidden" NAME="add_objectClass" VALUE="top">
+<INPUT TYPE="hidden" NAME="add_objectClass" VALUE="person">
+<INPUT TYPE="hidden" NAME="add_objectClass" VALUE="umichPerson">
+<!-- ENDIF // Adding -->
+
+<HR>
+<!-- IF "!Displaying" -->
+<DIV ALIGN="right"><B>*&nbsp</B>Indicates a required field</DIV>
+<!-- ENDIF -->
+
+
+<TABLE CELLSPACING="5">
+<TR>
+<TD VALIGN="top" NOWRAP>Last Name:
+<!-- IF "!Displaying" -->
+<B>*</B>
+<!-- ENDIF -->
+</TD>
+<TD VALIGN="top" NOWRAP><B>
+<!-- DS_ATTRIBUTE "attr=sn" "cols=>16" -->
+</B></TD><TD WIDTH="20%"></TD>
+<TD VALIGN="top" NOWRAP>Full Name:
+<!-- IF "!Displaying" -->
+<B>*</B>
+<!-- ENDIF -->
+</TD>
+<TD VALIGN="top" NOWRAP><B>
+<!-- DS_ATTRIBUTE "attr=cn" "numfields=+1" "cols=>16" -->
+</B></TD></TR>
+
+<TR>
+<TD VALIGN="TOP">Phone:</TD>
+<TD VALIGN="TOP" NOWRAP><B>
+<!-- DS_ATTRIBUTE "attr=telephoneNumber" "syntax=tel" "cols=>16" "numfields=+1" -->
+</B></TD><TD></TD>
+<TD VALIGN="TOP" NOWRAP>E-Mail Address:</TD>
+<TD VALIGN="TOP" NOWRAP><B>
+<!-- DS_ATTRIBUTE "attr=mail" "syntax=mail" "cols=>20" -->
+</B></TD></TR>
+
+<TR>
+<TD VALIGN="TOP">Fax:</TD>
+<TD VALIGN="TOP" NOWRAP><B>
+<!-- DS_ATTRIBUTE "attr=facsimiletelephonenumber" "syntax=tel" "cols=>16" -->
+</B></TD><TD></TD>
+<TD VALIGN="TOP" NOWRAP>Uniqname:</TD>
+<TD VALIGN="TOP" NOWRAP><B>
+<!-- DS_ATTRIBUTE "attr=uid" "cols=>16" -->
+</B></TD></TR>
+
+<TR>
+<TD VALIGN="TOP" NOWRAP>Pager:</TD>
+<TD VALIGN="TOP" NOWRAP><B>
+<!-- DS_ATTRIBUTE "attr=pager" "syntax=tel" "cols=>16" -->
+</B></TD><TD></TD>
+<TD VALIGN="TOP" NOWRAP>Mobile Phone:<TD VALIGN="TOP" NOWRAP><B>
+<!-- DS_ATTRIBUTE "attr=mobile" "syntax=tel" "cols=>16" -->
+</B></TD></TR>
+
+<TR><TD COLSPAN="5"><HR></TD></TR>
+
+<TR>
+<TD VALIGN="TOP">Title:</TD>
+<TD VALIGN="TOP" NOWRAP COLSPAN="4"><B>
+<!-- DS_ATTRIBUTE "attr=title" -->
+</B></TD></TR>
+
+<TR>
+<TD VALIGN="TOP">Mailing Address:</TD>
+<TD VALIGN="TOP" COLSPAN="4" NOWRAP><B>
+<!-- DS_ATTRIBUTE "attr=postalAddress" "syntax=mls" "type=TEXTAREA" "cols=>40" "rows=>4" -->
+</B></TD></TR>
+
+<TR><TD COLSPAN="5"><HR></TD></TR>
+
+<TR>
+<TD VALIGN="TOP">Description:</TD>
+<TD VALIGN="TOP" NOWRAP COLSPAN="4"><B>
+<!-- DS_ATTRIBUTE "attr=multilineDescription" "syntax=mls" "cols=>50" -->
+</B></TR>
+
+<TR>
+<TD VALIGN="TOP">See Also:</TD>
+<TD VALIGN="TOP" NOWRAP COLSPAN="4"><B>
+<!-- DS_ATTRIBUTE "attr=seeAlso" "syntax=dn" "dncomponents=3" "cols=>50" -->
+</B></TR>
+
+<TR>
+<TD VALIGN="TOP">URL:</TD>
+<TD VALIGN="TOP" NOWRAP COLSPAN="4"><B>
+<!-- DS_ATTRIBUTE "attr=labeledURL" "syntax=url" "cols=>50" -->
+</B></TR>
+
+<TR>
+<TD VALIGN="TOP">Favorite Beverage:</TD>
+<TD VALIGN="TOP" NOWRAP><B>
+<!-- DS_ATTRIBUTE "attr=drink" -->
+</B></TR>
+
+</TABLE>
+
+<!-- IF "!Adding" -->
+<HR>
+This entry was last modified on <B>
+<!-- DS_ATTRIBUTE "attr=lastModifiedTime" "syntax=time" "defaultvalue=N/A" "options=readonly" -->
+</B> by <B>
+<!-- DS_ATTRIBUTE "attr=lastModifiedBy" "syntax=dn" "defaultvalue=N/A" "options=readonly" -->
+</B>
+<!-- ENDIF // !Adding -->
+
+<!-- DS_END_ENTRYFORM -->
+<!-- DS_ENTRYEND -->
+
+<!-- ENDHTML -->
diff --git a/ldap/clients/dsgw/admhtml/dsconfig.html b/ldap/clients/dsgw/admhtml/dsconfig.html
new file mode 100644
index 00000000..a8ea5b2c
--- /dev/null
+++ b/ldap/clients/dsgw/admhtml/dsconfig.html
@@ -0,0 +1,191 @@
+<!--
+ PROPRIETARY/CONFIDENTIAL. Use of this product is subject to
+ license terms. Copyright © 2001 Sun Microsystems, Inc.
+ Some preexisting portions Copyright © 2001 Netscape Communications Corp.
+ All rights reserved.
+ -->
+<HEAD><TITLE>User Management</TITLE>
+
+<SCRIPT language=JavaScript>
+var didSetDefaults = 0;
+
+
+function resetForm()
+{
+ if (document.modForm.dirsvctype[1].checked) {
+ document.configuredForRemote = 1;
+ document.modForm.host.focus();
+ if (document.modForm.port.value == '') {
+ document.modForm.port.value = '389';
+ }
+ } else {
+ document.configuredForRemote = 0;
+ }
+}
+
+
+function submitModify()
+{
+ var theForm = document.modForm;
+
+ // verify form fields
+ if ( theForm.dirsvctype[1].checked ) { // remote directory server
+ if ( theForm.host.value.length == 0 ) {
+ alert( 'Please provide the host name of the LDAP server.' );
+ return false;
+ }
+ if ( theForm.port.value.length == 0 ) {
+ alert( 'Please provide the port number of the LDAP server.' );
+ return false;
+ }
+ if ( theForm.port.value < 1 || theForm.port.value > 65535 ) {
+ alert( 'The port number must be between 1 and 65535.' );
+ return false;
+ }
+ if ( theForm.basedn.value.length == 0 ) {
+ alert( 'Please provide a base DN.' );
+ return false;
+ }
+ if ( theForm.bindpw.value.length > 0 &&
+ theForm.binddn.value.length == 0 ) {
+ alert( 'Please provide the Bind DN.' );
+ return false;
+ }
+ }
+
+ theForm.submit();
+ return false;
+}
+
+
+function selectedSSL( doSSL )
+{
+ var theForm = document.modForm;
+ var onWrongPort, portDesc;
+
+ // SSL On or SSL Off radio button was clicked on: offer to set the
+ // port to the standard SSL or non-SSL one as appropriate.
+
+ if ( doSSL ) {
+ onWrongPort = ( theForm.port.value == 389 );
+ portDesc = 'LDAP over SSL';
+ stdPort = 636;
+ } else {
+ onWrongPort = ( theForm.port.value == 636 );
+ portDesc = 'LDAP';
+ stdPort = 389;
+ }
+
+ if ( onWrongPort && confirm( 'The standard port for ' + portDesc + ' is ' +
+ stdPort + '.\nWould you like to switch to the standard port?' )) {
+ theForm.port.value = stdPort;
+ }
+}
+
+
+function checkForChange()
+{
+ cTLMsg = 'If you switch to local database mode,\n' +
+ 'any configuration data about directory servers\n' +
+ 'will be lost. Go ahead and change to\n' +
+ 'local database mode?';
+ cTRMsg = 'To use a directory server, you must\n' +
+ 'provide the host name, port, and base DN for\n' +
+ 'an LDAP directory server. Go ahead and\n' +
+ 'change to directory server mode?';
+
+ if (document.modForm.dirsvctype[0].checked &&
+ document.configuredForRemote) {
+ if (confirm(cTLMsg)) {
+ var tmp = document.location.href;
+ if (document.location.search == "?CHANGE") {
+ document.location.search = "";
+ } else {
+ document.location.href = tmp + "?CHANGE";
+ }
+ } else {
+ document.modForm.dirsvctype[1].checked = true;
+ }
+ } else if (document.modForm.dirsvctype[1].checked &&
+ !document.configuredForRemote) {
+ if (confirm(cTRMsg)) {
+ var tmp = document.location.href;
+ if (document.location.search == "?CHANGE") {
+ document.location.search = "";
+ } else {
+ document.location.href = tmp + "?CHANGE";
+ }
+ } else {
+ document.modForm.dirsvctype[0].checked = true;
+ }
+ }
+}
+
+</SCRIPT>
+
+</HEAD>
+<!-- BODY "onLoad='resetForm()'" -->
+
+<CENTER><TABLE BORDER="2" CELLPADDING="10" WIDTH="100%">
+<TR><TD ALIGN="center" WIDTH="100%">
+<FONT SIZE="+2"><B>Configure Directory Service</B></FONT>
+</TD></TR></TABLE></CENTER>
+
+<!-- DS_INLINE_POST_RESULTS -->
+
+<FORM METHOD="POST" ACTION="dsconfig" NAME="modForm">
+<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH=100%>
+<TR>
+<TD ALIGN="right" NOWRAP><B>Obtain Directory Service From:</B></TD>
+<TD>
+<INPUT TYPE="radio" NAME="dirsvctype"
+VALUE="local"
+<!-- DS_CHECKED_IF_LOCAL -->
+onClick="checkForChange(this);">Local Database
+<BR>
+<INPUT TYPE="radio" NAME="dirsvctype"
+VALUE="remote"
+<!-- DS_CHECKED_IF_REMOTE -->
+onClick="checkForChange(this);">LDAP Directory Server
+</TD>
+</TR>
+</TABLE>
+<HR>
+<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH=100%>
+<TR><TD COLSPAN="2" ALIGN="center">
+
+<!-- DS_CONFIG_INFO -->
+<BR>
+
+</B></TD></TR>
+
+<!-- DS_HOSTNAME_VALUE -->
+
+<!-- DS_PORT_VALUE -->
+
+<!-- DS_SSL_CONFIG_VALUE -->
+
+<!-- DS_BASEDN_VALUE -->
+
+<!-- DS_BINDDN_VALUE -->
+
+<!-- DS_BINDPASSWD_VALUE -->
+
+</TABLE>
+<P>
+
+<CENTER><TABLE BORDER="2" WIDTH="100%">
+<TR>
+<TD WIDTH="33%" ALIGN="center"><INPUT TYPE="button" VALUE=" Save Changes "
+ onClick="submitModify()"></TD>
+<TD WIDTH=34% ALIGN=center><INPUT TYPE="reset" VALUE=" Reset "
+ onClick="resetForm()"></TD>
+<TD WIDTH=33% ALIGN=center>
+<!-- HELPBUTTON "DSCONFIG" -->
+</TD>
+</TR></TABLE></CENTER>
+</FORM>
+
+<!-- DS_NOCERTFILE_WARNING "<SCRIPT language=JavaScript>alert('For the Users and Groups forms to work over SSL, you need to activate SSL for this Administration Server.\nChoose Encryption|On/Off to do so.');</SCRIPT>" -->
+
+<!-- ENDHTML -->
diff --git a/ldap/clients/dsgw/admhtml/dscrgroup.html b/ldap/clients/dsgw/admhtml/dscrgroup.html
new file mode 100644
index 00000000..f51f255f
--- /dev/null
+++ b/ldap/clients/dsgw/admhtml/dscrgroup.html
@@ -0,0 +1,114 @@
+<!--
+ PROPRIETARY/CONFIDENTIAL. Use of this product is subject to
+ license terms. Copyright © 2001 Sun Microsystems, Inc.
+ Some preexisting portions Copyright © 2001 Netscape Communications Corp.
+ All rights reserved.
+ -->
+<HEAD><TITLE>User Management</TITLE>
+
+<SCRIPT language=JavaScript>
+
+function resetForm()
+{
+ document.addForm.add_cn.focus();
+}
+
+
+function submitAdd()
+{
+ var theForm = document.addForm;
+ var dn, dnSuffix, i, e, prod;
+
+ if ( theForm.add_cn.value.length == 0 ) {
+ alert( 'Please provide a name for the group' );
+ theForm.add_cn.focus();
+ return;
+ }
+
+ dn = 'cn=' + theForm.add_cn.value;
+ if ( theForm.CrLoc.type == 'hidden' ) {
+ dnSuffix = unescape( theForm.CrLoc.value );
+ } else {
+ dnSuffix = unescape(
+ theForm.CrLoc.options[ theForm.CrLoc.selectedIndex ].value );
+ }
+ if ( dnSuffix.length > 0 ) {
+ dn += ', ' + dnSuffix;
+ }
+ theForm.dn.value = escape(dn);
+
+ // execute selected product-specific default functions
+ for ( i = 0; i < theForm.elements.length; ++i ) {
+ e = theForm.elements[ i ];
+ if ( e.type == 'checkbox' &&
+ e.name.substring( 0, 17 ) == 'product_checkbox_' &&
+ e.checked ) {
+ prod = e.name.substring( 17, e.name.length );
+ if ( !eval( 'product_setdefaults_' + prod + '(theForm)' )) {
+ return; // submit vetoed by product
+ }
+ }
+ }
+
+ theForm.submit();
+}
+
+
+function submitAddandEdit()
+{
+ document.addForm.completion_javascript.value =
+ "if (dsmodify_dn.length == 0) document.location.href=\"genscreen?dscrgroup&info=\" + escape(dsmodify_info); else document.location.href=\"edit/\" + dsmodify_dn + \"?&info=\" + escape(dsmodify_info);";
+
+ submitAdd();
+}
+
+</SCRIPT>
+
+</HEAD>
+<!-- BODY "onLoad='resetForm()'" -->
+
+<CENTER><TABLE BORDER="2" CELLPADDING="10" WIDTH="100%">
+<TR><TD ALIGN="center" WIDTH="100%">
+<FONT SIZE="+2"><B>New Group</B></FONT>
+</TD></TR></TABLE></CENTER>
+
+<!-- DS_LAST_OP_INFO "prefix=<P><FONT SIZE=%22%2B1%22>The group " "suffix=</FONT><HR>" -->
+
+<FORM METHOD="POST" ACTION="domodify" NAME="addForm">
+
+<INPUT TYPE="hidden" NAME="completion_javascript" VALUE="document.location.href=\'genscreen?dscrgroup&info=\' + escape(dsmodify_info)">
+
+<INPUT TYPE="hidden" NAME="changetype" VALUE="add">
+<INPUT TYPE="hidden" NAME="dn" VALUE="">
+
+<INPUT TYPE="hidden" NAME="add_objectClass" VALUE="top">
+<INPUT TYPE="hidden" NAME="add_objectClass" VALUE="groupOfUniqueNames">
+<INPUT TYPE="hidden" NAME="quiet" VALUE="true">
+
+<DIV ALIGN="right"><FONT SIZE="-1">* Indicates a required field</FONT></DIV>
+
+<TABLE CELLSPACING="0" BORDER="0">
+<TR><TD ALIGN="right"><b>* Group Name:</b></TD>
+<TD><INPUT type="text" name="add_cn" value="" size=32></TD></TR>
+<TR><TD ALIGN="right"><b>Description:</b></TD>
+<TD><INPUT type="text" name="add_description" value="" size=32></TD></TR>
+<!-- INCLUDESET dscrgroup -->
+<!-- DS_LOCATIONPOPUP "name=CrLoc" "prefix=<TR><TD ALIGN=%22right%22><b>Add New Group To:</b></TD><TD>" "suffix=</TD></TR>" "rootname=the top of the directory" -->
+</TABLE>
+<P>
+
+<CENTER><TABLE BORDER="2" WIDTH="100%">
+<TR>
+<TD WIDTH="25%" ALIGN="center"><INPUT TYPE="button" VALUE=" Create Group "
+ onClick="submitAdd()"></TD>
+<TD WIDTH="25%" ALIGN="center">
+ <INPUT TYPE="button" VALUE=" Create and Edit Group "
+ onClick="submitAddandEdit()"></TD>
+<TD WIDTH=25% ALIGN=center><INPUT TYPE="reset" VALUE=" Reset "
+ onClick="resetForm()"></TD>
+<TD WIDTH=25% ALIGN=center>
+<!-- HELPBUTTON "DSCRGROUP" -->
+</TD></TR></TABLE></CENTER>
+</FORM>
+
+<!-- ENDHTML -->
diff --git a/ldap/clients/dsgw/admhtml/dscrou.html b/ldap/clients/dsgw/admhtml/dscrou.html
new file mode 100644
index 00000000..78ffe725
--- /dev/null
+++ b/ldap/clients/dsgw/admhtml/dscrou.html
@@ -0,0 +1,103 @@
+<!--
+ PROPRIETARY/CONFIDENTIAL. Use of this product is subject to
+ license terms. Copyright © 2001 Sun Microsystems, Inc.
+ Some preexisting portions Copyright © 2001 Netscape Communications Corp.
+ All rights reserved.
+ -->
+<HEAD><TITLE>User Management</TITLE>
+
+<SCRIPT language=JavaScript>
+
+function resetForm()
+{
+ document.addForm.add_ou.focus();
+}
+
+
+function submitAdd()
+{
+ var theForm = document.addForm;
+ var dn, dnSuffix, i, e, prod;
+
+ if ( theForm.add_ou.value.length == 0 ) {
+ alert( 'Please provide a name for the org. unit.' );
+ theForm.add_ou.focus();
+ return;
+ }
+
+ dn = 'ou=' + theForm.add_ou.value;
+ if ( theForm.CrLoc.type == 'hidden' ) {
+ dnSuffix = unescape( theForm.CrLoc.value );
+ } else {
+ dnSuffix = unescape(
+ theForm.CrLoc.options[ theForm.CrLoc.selectedIndex ].value );
+ }
+ if ( dnSuffix.length > 0 ) {
+ dn += ', ' + dnSuffix;
+ }
+ theForm.dn.value = escape(dn);
+
+ // execute selected product-specific default functions
+ for ( i = 0; i < theForm.elements.length; ++i ) {
+ e = theForm.elements[ i ];
+ if ( e.type == 'checkbox' &&
+ e.name.substring( 0, 17 ) == 'product_checkbox_' &&
+ e.checked ) {
+ prod = e.name.substring( 17, e.name.length );
+ if ( !eval( 'product_setdefaults_' + prod + '(theForm)' )) {
+ return; // submit vetoed by product
+ }
+ }
+ }
+
+ theForm.submit();
+}
+</SCRIPT>
+
+</HEAD>
+<!-- BODY "onLoad='resetForm()'" -->
+
+<CENTER><TABLE BORDER="2" CELLPADDING="10" WIDTH="100%">
+<TR><TD ALIGN="center" WIDTH="100%">
+<FONT SIZE="+2"><B>New Organizational Unit</B></FONT>
+</TD></TR></TABLE></CENTER>
+
+<!-- DS_LAST_OP_INFO "prefix=<P><FONT SIZE=%22%2B1%22>The organizational unit " "suffix=</FONT><HR>" -->
+
+<FORM METHOD="POST" ACTION="domodify" NAME="addForm">
+
+<INPUT TYPE="hidden" NAME="completion_javascript" VALUE="document.location.href=\'genscreen?dscrou&info=\' + escape(dsmodify_info)">
+
+<INPUT TYPE="hidden" NAME="changetype" VALUE="add">
+<INPUT TYPE="hidden" NAME="dn" VALUE="">
+
+<INPUT TYPE="hidden" NAME="add_objectClass" VALUE="top">
+<INPUT TYPE="hidden" NAME="add_objectClass" VALUE="organizationalUnit">
+<INPUT TYPE="hidden" NAME="quiet" VALUE="true">
+
+<DIV ALIGN="right"><FONT SIZE="-1">* Indicates a required field</FONT></DIV>
+
+<TABLE CELLSPACING="0" BORDER="0">
+<TR><TD ALIGN="right"><b>* Unit Name:</b></TD>
+<TD><INPUT type="text" name="add_ou" value="" size=32></TD></TR>
+<TR><TD ALIGN="right"><b>Description:</b></TD>
+<TD><INPUT type="text" name="add_description" value="" size=32></TD></TR>
+<!-- INCLUDESET dscrou -->
+<!-- DS_LOCATIONPOPUP "name=CrLoc" "prefix=<TR><TD ALIGN=%22right%22><b>Add Organizational Unit To:</b></TD><TD>" "suffix=</TD></TR>" "rootname=the top of the directory" -->
+</TABLE>
+<P>
+
+<CENTER><TABLE BORDER="2" WIDTH="100%">
+<TR>
+<TD WIDTH="33%" ALIGN="center">
+ <INPUT TYPE="button" VALUE=" Create Organizational Unit "
+ onClick="submitAdd()"></TD>
+<TD WIDTH=33% ALIGN=center><INPUT TYPE="reset" VALUE=" Reset "
+ onClick="resetForm()"></TD>
+<TD WIDTH=33% ALIGN=center>
+<!-- HELPBUTTON "DSCROU" -->
+</TD>
+</TR></TABLE></CENTER>
+</FORM>
+
+<!-- ENDHTML -->
diff --git a/ldap/clients/dsgw/admhtml/dscruser.html b/ldap/clients/dsgw/admhtml/dscruser.html
new file mode 100644
index 00000000..efddfbd2
--- /dev/null
+++ b/ldap/clients/dsgw/admhtml/dscruser.html
@@ -0,0 +1,172 @@
+<!--
+ PROPRIETARY/CONFIDENTIAL. Use of this product is subject to
+ license terms. Copyright © 2001 Sun Microsystems, Inc.
+ Some preexisting portions Copyright © 2001 Netscape Communications Corp.
+ All rights reserved.
+ -->
+<HEAD><TITLE>User Management</TITLE>
+
+<SCRIPT language=JavaScript>
+var didSetDefaults = 0;
+
+
+function resetForm()
+{
+ didSetDefaults = 0;
+ document.addForm.add_givenname.focus();
+}
+
+
+function submitAdd()
+{
+ var theForm = document.addForm;
+ var dn, dnSuffix, i, e, prod;
+
+ if ( theForm.add_cn.value.length == 0 ) {
+ alert( 'Please provide the user\'s full name.' );
+ theForm.add_cn.focus();
+ return;
+ }
+ if ( theForm.add_sn.value.length == 0 ) {
+ alert( 'Please provide the user\'s surname.' );
+ theForm.add_sn.focus();
+ return;
+ }
+ if ( theForm.add_unique_uid.value.length == 0 ) {
+ alert( 'Please choose a user id for this user.' );
+ theForm.add_unique_uid.focus();
+ return;
+ }
+
+ dn = 'cn=' + theForm.add_cn.value;
+ if ( theForm.CrLoc.type == 'hidden' ) {
+ dnSuffix = unescape( theForm.CrLoc.value );
+ } else {
+ dnSuffix = unescape(
+ theForm.CrLoc.options[ theForm.CrLoc.selectedIndex ].value );
+ }
+ if ( dnSuffix.length > 0 ) {
+ dn += ', ' + dnSuffix;
+ }
+ theForm.dn.value = escape(dn);
+
+ // execute selected product-specific default functions
+ for ( i = 0; i < theForm.elements.length; ++i ) {
+ e = theForm.elements[ i ];
+ if ( e.type == 'checkbox' &&
+ e.name.substring( 0, 17 ) == 'product_checkbox_' &&
+ e.checked ) {
+ prod = e.name.substring( 17, e.name.length );
+ if ( !eval( 'product_setdefaults_' + prod + '(theForm)' )) {
+ return; // submit vetoed by product
+ }
+ }
+ }
+
+ theForm.submit();
+}
+
+
+function submitAddandEdit()
+{
+ document.addForm.completion_javascript.value =
+ "if (dsmodify_dn.length == 0) document.location.href=\"genscreen?dscruser&info=\" + escape(dsmodify_info); else document.location.href=\"edit/\" + dsmodify_dn + \"?&info=\" + escape(dsmodify_info);";
+
+ submitAdd();
+}
+
+
+function setDefaults()
+{
+ var theForm = document.addForm;
+
+ if ( theForm.add_cn.value.length == 0 ) {
+ theForm.add_cn.value = theForm.add_givenname.value + ' '
+ + theForm.add_sn.value;
+ if ( theForm.add_unique_uid.value.length == 0 ) {
+ theForm.add_unique_uid.value =
+ theForm.add_givenname.value.substring(0,1).toLowerCase()
+ + theForm.add_sn.value.toLowerCase();
+ }
+ didSetDefaults = 1;
+ }
+}
+
+
+function skipIfDefaulted()
+{
+// Make this function a NOP for now since it exercises a bug in NT Navigator
+// that makes the interface very confusing (see bug # 40412 in Scopus).
+// var theForm = document.addForm;
+//
+// if ( didSetDefaults == 1 ) {
+// didSetDefaults = 0;
+// document.addForm.newpasswd.focus();
+// }
+}
+
+</SCRIPT>
+
+</HEAD>
+<!-- BODY "onLoad='resetForm()'" -->
+
+<CENTER><TABLE BORDER="2" CELLPADDING="10" WIDTH="100%">
+<TR><TD ALIGN="center" WIDTH="100%">
+<FONT SIZE="+2"><B>New User</B></FONT>
+</TD></TR></TABLE></CENTER>
+
+<!-- DS_LAST_OP_INFO "prefix=<P><FONT SIZE=%22%2B1%22>The user " "suffix=</FONT><HR>" -->
+
+<FORM METHOD="POST" ACTION="domodify" NAME="addForm">
+
+<INPUT TYPE="hidden" NAME="completion_javascript" VALUE="document.location.href=\'genscreen?dscruser&info=\' + escape(dsmodify_info)">
+
+<INPUT TYPE="hidden" NAME="changetype" VALUE="add">
+<INPUT TYPE="hidden" NAME="dn" VALUE="">
+
+<INPUT TYPE="hidden" NAME="add_objectClass" VALUE="top">
+<INPUT TYPE="hidden" NAME="add_objectClass" VALUE="person">
+<INPUT TYPE="hidden" NAME="add_objectClass" VALUE="organizationalPerson">
+<INPUT TYPE="hidden" NAME="add_objectClass" VALUE="inetOrgPerson">
+<INPUT TYPE="hidden" NAME="quiet" VALUE="true">
+<INPUT TYPE="hidden" NAME="desc_uid" VALUE="user id">
+
+<DIV ALIGN="right"><FONT SIZE="-1">* Indicates a required field</FONT></DIV>
+
+<TABLE CELLSPACING="0" BORDER="0">
+<TR><TD NOWRAP ALIGN="right"><b>* Given Name (First Name):</b></TD>
+<TD><INPUT type="text" name="add_givenname" value="" size=32></TD></TR>
+<TR><TD NOWRAP ALIGN="right"><b>* Surname (Last Name):</b></TD>
+<TD><INPUT type="text" name="add_sn" value="" size=32
+ onBlur="setDefaults()"> </TD></TR>
+<TR><TD NOWRAP ALIGN="right"><b>* Full Name:</b></TD>
+<TD><INPUT type="text" name="add_cn" value="" size=32
+ onFocus="skipIfDefaulted()"></TD></TR>
+<TR><TD NOWRAP ALIGN="right"><b>* User ID:</b></TD>
+<TD><INPUT type="text" name="add_unique_uid" value="" size=20></TD></TR>
+<TR><TD NOWRAP ALIGN="right"><b>Password:</b></TD>
+<TD><INPUT type=password name="newpasswd" value="" size=20></TD></TR>
+<TR><TD NOWRAP ALIGN="right"><b>Password (Again):</b></TD>
+<TD><INPUT type=password name="newpasswdconfirm" value="" size=20></TD></TR>
+<TR><TD NOWRAP ALIGN="right"><b>E-Mail Address:</b></TD>
+<TD><INPUT type="text" name="add_mail" value="" size=32></TD></TR>
+<!-- INCLUDESET dscruser -->
+<!-- DS_LOCATIONPOPUP "name=CrLoc" "prefix=<TR><TD NOWRAP ALIGN=%22right%22><b>Add New User To:</b></TD><TD>" "suffix=</TD></TR>" "rootname=the top of the directory" -->
+</TABLE>
+<P>
+
+<CENTER><TABLE BORDER="2" WIDTH="100%">
+<TR>
+<TD WIDTH="25%" ALIGN="center"><INPUT TYPE="button" VALUE=" Create User "
+ onClick="submitAdd()"></TD>
+<TD WIDTH="25%" ALIGN="center">
+<INPUT TYPE="button" VALUE=" Create and Edit User "
+ onClick="submitAddandEdit()"></TD>
+<TD WIDTH=25% ALIGN=center><INPUT TYPE="reset" VALUE=" Reset "
+ onClick="resetForm()"></TD>
+<TD WIDTH=25% ALIGN=center>
+<!-- HELPBUTTON "DSCRUSER" -->
+</TD></TR></TABLE></CENTER>
+</FORM>
+
+<!-- ENDHTML -->
diff --git a/ldap/clients/dsgw/admhtml/dsexpldif.html b/ldap/clients/dsgw/admhtml/dsexpldif.html
new file mode 100644
index 00000000..27326c72
--- /dev/null
+++ b/ldap/clients/dsgw/admhtml/dsexpldif.html
@@ -0,0 +1,76 @@
+<!--
+ PROPRIETARY/CONFIDENTIAL. Use of this product is subject to
+ license terms. Copyright © 2001 Sun Microsystems, Inc.
+ Some preexisting portions Copyright © 2001 Netscape Communications Corp.
+ All rights reserved.
+ -->
+<HEAD><TITLE>User Management</TITLE>
+
+<SCRIPT language=JavaScript>
+var didSetDefaults = 0;
+
+function submitModify()
+{
+ var theForm = document.expForm;
+
+ // verify form fields
+ if ( theForm.ldif.value.length == 0 ) {
+ alert( 'Please provide the export ldif file name.' );
+ return false;
+ }
+
+ theForm.submit();
+ return false;
+}
+
+</SCRIPT>
+
+
+</HEAD>
+<!-- BODY -->
+
+<CENTER><TABLE BORDER="2" CELLPADDING="10" WIDTH="100%">
+<TR><TD ALIGN="center" WIDTH="100%">
+<FONT SIZE="+2"><B>Export Directory Information</B></FONT>
+</TD></TR></TABLE></CENTER>
+
+<!-- DS_INLINE_POST_RESULTS -->
+
+<FORM METHOD="POST" ACTION="dsexpldif" NAME="expForm">
+<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH=100%>
+<TR>
+<TD ALIGN="right" NOWRAP><B>Export database to LDIF file:</B></TD>
+<TD><INPUT TYPE="text" NAME="ldif"
+<!-- DS_LDIF_FILE -->
+SIZE=40></TD>
+</TR>
+
+<!-- IF "DirectoryIsLocalDB" -->
+<TR>
+<TD ALIGN="right" NOWRAP><B>Suffix to add:</B></TD>
+<TD><INPUT TYPE="text" NAME="suffix"
+<!-- DS_SUFFIX -->
+SIZE=40></TD>
+</TR>
+<!-- ENDIF -->
+
+</TABLE>
+<P>
+
+<CENTER><TABLE BORDER="2" WIDTH="100%">
+<TR>
+<TD WIDTH="33%" ALIGN="center"><INPUT TYPE="button" VALUE=" Begin Export "
+ onClick="submitModify()"></TD>
+<TD WIDTH=34% ALIGN=center><INPUT TYPE="reset" VALUE=" Reset "
+ ></TD>
+<TD WIDTH=33% ALIGN=center>
+<!-- HELPBUTTON "DSEXPLDIF" -->
+</TD>
+</TR></TABLE></CENTER>
+</FORM>
+
+<P ALIGN="right"><FONT SIZE="-2">
+<!-- DS_GATEWAY_VERSION -->
+</FONT></P>
+
+<!-- ENDHTML -->
diff --git a/ldap/clients/dsgw/admhtml/dsimpldif.html b/ldap/clients/dsgw/admhtml/dsimpldif.html
new file mode 100644
index 00000000..24b0e065
--- /dev/null
+++ b/ldap/clients/dsgw/admhtml/dsimpldif.html
@@ -0,0 +1,85 @@
+<!--
+ PROPRIETARY/CONFIDENTIAL. Use of this product is subject to
+ license terms. Copyright © 2001 Sun Microsystems, Inc.
+ Some preexisting portions Copyright © 2001 Netscape Communications Corp.
+ All rights reserved.
+ -->
+<HEAD><TITLE>User Management</TITLE>
+
+<SCRIPT language=JavaScript>
+var didSetDefaults = 0;
+
+function submitModify()
+{
+ var theForm = document.impForm;
+
+ // verify form fields
+ if ( theForm.ldif.value.length == 0 ) {
+ alert( 'Please provide the import ldif file name.' );
+ return false;
+ }
+
+ theForm.submit();
+ return false;
+}
+
+</SCRIPT>
+
+
+</HEAD>
+<!-- BODY -->
+
+<CENTER><TABLE BORDER="2" CELLPADDING="10" WIDTH="100%">
+<TR><TD ALIGN="center" WIDTH="100%">
+<FONT SIZE="+2"><B>Import Directory Information</B></FONT>
+</TD></TR></TABLE></CENTER>
+
+<!-- DS_INLINE_POST_RESULTS -->
+
+<FORM METHOD="POST" ACTION="dsimpldif" NAME="impForm">
+<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH=100%>
+<TR>
+<TD ALIGN="right" NOWRAP><B>Import from LDIF file:</B></TD>
+<TD><INPUT TYPE="text" NAME="ldif"
+<!-- DS_LDIF_FILE -->
+SIZE=40></TD>
+</TR>
+
+<!-- IF "DirectoryIsLocalDB" -->
+<TR>
+<TD ALIGN="right" NOWRAP>&nbsp;</TD>
+<TD>
+<INPUT TYPE="checkbox" NAME="erase" VALUE="true"
+<!-- DS_CHECKED_IF_ERASE -->
+><B>Erase existing database</B></TD>
+</TD>
+</TR>
+<!-- ENDIF -->
+
+<TR>
+<TD ALIGN="right" NOWRAP>&nbsp;</TD>
+<TD>
+<INPUT TYPE="checkbox" NAME="stop"
+VALUE="true"
+<!-- DS_CHECKED_IF_STOP -->
+><B>Stop on errors</B>
+</TD>
+</TR>
+
+
+</TABLE>
+<P>
+
+<CENTER><TABLE BORDER="2" WIDTH="100%">
+<TR>
+<TD WIDTH="33%" ALIGN="center"><INPUT TYPE="button" VALUE=" Begin Import "
+ onClick="submitModify()"></TD>
+<TD WIDTH=34% ALIGN=center><INPUT TYPE="reset" VALUE=" Reset "
+ ></TD>
+<TD WIDTH=33% ALIGN=center>
+<!-- HELPBUTTON "DSIMPLDIF" -->
+</TD>
+</TR></TABLE></CENTER>
+</FORM>
+
+<!-- ENDHTML -->
diff --git a/ldap/clients/dsgw/admhtml/dslsgroups.html b/ldap/clients/dsgw/admhtml/dslsgroups.html
new file mode 100644
index 00000000..b25abb33
--- /dev/null
+++ b/ldap/clients/dsgw/admhtml/dslsgroups.html
@@ -0,0 +1,164 @@
+<!--
+ PROPRIETARY/CONFIDENTIAL. Use of this product is subject to
+ license terms. Copyright © 2001 Sun Microsystems, Inc.
+ Some preexisting portions Copyright © 2001 Netscape Communications Corp.
+ All rights reserved.
+ -->
+<HTML>
+<HEAD><TITLE>Manage Groups</TITLE>
+
+<SCRIPT language=JavaScript>
+
+function doList()
+{
+ var theForm = document.listForm;
+ var baseDesc;
+
+ theForm.base.value = baseDN();
+ baseDesc = baseDescription();
+
+ if ( theForm.searchstring.value.length == 0 ) {
+ theForm.filterpattern.value = '(cn=*)';
+ theForm.searchdesc.value = '<BR>All groups ' + baseDesc;
+ return( true ); // submit the form
+ }
+
+ theForm.searchdesc.value = '<BR>Groups ' + baseDesc + ' whose <B>' +
+ theForm.attr.options[ theForm.attr.selectedIndex ].text + '</B> ' +
+ theForm.patternSelect.options[ theForm.patternSelect.selectedIndex
+ ].text + ' <B>' + theForm.searchstring.value + '</B>';
+
+ theForm.filterpattern.value = theForm.patternSelect.options[
+ theForm.patternSelect.selectedIndex ].value;
+
+ return( true ); // submit
+}
+
+function doEdit()
+{
+ var theForm = document.editForm;
+
+ if ( theForm.visiblesearchstring.value.length == 0 ) {
+ theForm.searchstring.value = '*'; // a bit of a hack
+ } else {
+ theForm.searchstring.value = theForm.visiblesearchstring.value;
+ }
+
+ theForm.listtemplate.value = document.listForm.listtemplate.options[
+ document.listForm.listtemplate.selectedIndex ].value;
+ theForm.base.value = baseDN();
+
+ return( true ); // submit the form
+}
+
+function baseDN()
+{
+ var theForm = document.listForm;
+ var escapedDN;
+
+ if ( theForm.encodedbase.type == 'hidden' ) {
+ escapedDN = theForm.encodedbase.value;
+ } else {
+ escapedDN = theForm.encodedbase.options[
+ theForm.encodedbase.selectedIndex ].value;
+ }
+
+ return( unescape( escapedDN ));
+}
+
+function baseDescription()
+{
+ var theForm = document.listForm;
+
+ if ( theForm.encodedbase.type == 'hidden' ) {
+ return( '' );
+ } else {
+ return( 'in ' + theForm.encodedbase.options[
+ theForm.encodedbase.selectedIndex ].text );
+ }
+}
+</SCRIPT>
+</HEAD>
+
+<!-- BODY "onLoad='document.editForm.visiblesearchstring.focus()'" -->
+
+<CENTER><TABLE BORDER="2" CELLPADDING="10" WIDTH="100%">
+<TR><TD ALIGN="center" WIDTH="100%">
+<FONT SIZE="+2"><B>Manage Groups</B></FONT>
+</TD></TR></TABLE></CENTER>
+
+<!-- DS_LAST_OP_INFO "prefix=<P><FONT SIZE=%22%2B1%22>The group " "suffix=</FONT><HR>" -->
+
+<FORM method="POST" ACTION="dosearch" NAME="editForm"
+ onSubmit="return doEdit()">
+<INPUT TYPE="hidden" NAME="mode" VALUE="smart">
+<INPUT TYPE="hidden" NAME="type" VALUE="groups">
+<INPUT TYPE="hidden" NAME="link2edit" VALUE="true">
+<INPUT TYPE="hidden" NAME="editable" VALUE="true">
+<INPUT TYPE="hidden" NAME="goback" VALUE="Return To Manage Groups Screen">
+<INPUT TYPE="hidden" NAME="base" VALUE="">
+<INPUT TYPE="hidden" NAME="listtemplate" VALUE="">
+<INPUT TYPE="hidden" NAME="searchstring" VALUE="">
+<B>Find group:</B><BR>
+<INPUT TYPE="text" NAME="visiblesearchstring" SIZE=25 VALUE="">
+<INPUT TYPE="submit" VALUE=" Find ">
+</FORM>
+
+<FORM METHOD="POST" ACTION="dosearch" NAME="listForm"
+ onSubmit="return doList()">
+
+<INPUT TYPE="hidden" NAME="mode" VALUE="pattern">
+<INPUT TYPE="hidden" NAME="type" VALUE="Groups">
+<INPUT TYPE="hidden" NAME="filterprefix"
+ VALUE="(&(|(objectclass=groupofuniquenames)(objectclass=groupofnames))">
+<INPUT TYPE="hidden" NAME="filtersuffix" VALUE=")">
+<INPUT TYPE="hidden" NAME="filterpattern" VALUE="">
+<INPUT TYPE="hidden" NAME="searchdesc" VALUE="">
+<INPUT TYPE="hidden" NAME="listifone" VALUE="true">
+<INPUT TYPE="hidden" NAME="link2edit" VALUE="true">
+<INPUT TYPE="hidden" NAME="goback" VALUE="Return To Manage Groups Screen">
+<INPUT TYPE="hidden" NAME="base" VALUE="">
+
+<B>Find all groups whose:</B>
+<BR>
+
+<NOBR>
+<SELECT name="attr">
+<OPTION VALUE="cn">name
+<OPTION VALUE="description">description
+</SELECT>
+
+<SELECT name="patternSelect">
+<OPTION VALUE="(%a=*%v*)">contains
+<OPTION VALUE="(%a=%v)">is
+<OPTION VALUE="(!(%a=%v))">isn't
+<OPTION VALUE="(%a~=%v)">sounds like
+<OPTION VALUE="(%a=%v*)">starts with
+<OPTION VALUE="(%a=*%v)">ends with
+</SELECT>
+<INPUT TYPE="text" NAME="searchstring" VALUE="" SIZE="17">
+<INPUT TYPE="submit" VALUE=" Find "></TD>
+</NOBR>
+
+<SPACER TYPE=vertical SIZE=20>
+<TABLE BORDER=0>
+<!-- DS_LOCATIONPOPUP "name=encodedbase" "prefix=<TR><TD><B>Look within:</B></TD><TD>" "suffix="</TD></TR>" -->
+</TD></TR>
+<TR><TD>
+<B>Format:</B></TD><TD>
+<SELECT name="listtemplate">
+<OPTION VALUE="Groups">On-Screen
+<OPTION VALUE="Groups-report">Printer
+</SELECT>
+</TD></TR></TABLE>
+
+<SPACER TYPE=vertical SIZE=5>
+<TABLE BORDER="2" WIDTH="100%">
+<TR>
+<TD WIDTH="50%" ALIGN="center"><INPUT TYPE="reset" VALUE=" Reset "></TD>
+<TD WIDTH="50%" ALIGN="center">
+<!-- HELPBUTTON "DSLSGROUP" -->
+</TD></TR></TABLE>
+</FORM>
+
+<!-- ENDHTML -->
diff --git a/ldap/clients/dsgw/admhtml/dslsous.html b/ldap/clients/dsgw/admhtml/dslsous.html
new file mode 100644
index 00000000..90a58f07
--- /dev/null
+++ b/ldap/clients/dsgw/admhtml/dslsous.html
@@ -0,0 +1,172 @@
+<!--
+ PROPRIETARY/CONFIDENTIAL. Use of this product is subject to
+ license terms. Copyright © 2001 Sun Microsystems, Inc.
+ Some preexisting portions Copyright © 2001 Netscape Communications Corp.
+ All rights reserved.
+ -->
+<HTML>
+<HEAD><TITLE>Manage Organizational Units </TITLE>
+
+<SCRIPT language=JavaScript>
+
+function doList()
+{
+ var theForm = document.listForm;
+ var baseDesc;
+
+ theForm.base.value = baseDN();
+ baseDesc = baseDescription();
+
+ if ( theForm.searchstring.value.length == 0 ) {
+ theForm.filterpattern.value = '(ou=*)';
+ theForm.searchdesc.value = '<BR>All organizational units ' + baseDesc;
+ return( true ); // submit the form
+ }
+
+ if ( theForm.searchstring.value.length == 0 ) {
+ alert( 'Please supply a filter string.' );
+ return( false ); // cancel the submit
+ }
+
+ theForm.searchdesc.value = '<BR>Organizational units ' + baseDesc
+ + ' whose <B>' +
+ theForm.attr.options[ theForm.attr.selectedIndex ].text + '</B> ' +
+ theForm.patternSelect.options[ theForm.patternSelect.selectedIndex
+ ].text + ' <B>' + theForm.searchstring.value + '</B>';
+
+ theForm.filterpattern.value = theForm.patternSelect.options[
+ theForm.patternSelect.selectedIndex ].value;
+
+ return( true ); // submit
+}
+
+function doEdit()
+{
+ var theForm = document.editForm;
+
+ if ( theForm.visiblesearchstring.value.length == 0 ) {
+ theForm.searchstring.value = '*'; // a bit of a hack
+ } else {
+ theForm.searchstring.value = theForm.visiblesearchstring.value;
+ }
+
+ theForm.listtemplate.value = document.listForm.listtemplate.options[
+ document.listForm.listtemplate.selectedIndex ].value;
+ theForm.base.value = baseDN();
+
+ return( true ); // submit the form
+}
+
+function baseDN()
+{
+ var theForm = document.listForm;
+ var escapedDN;
+
+ if ( theForm.encodedbase.type == 'hidden' ) {
+ escapedDN = theForm.encodedbase.value;
+ } else {
+ escapedDN = theForm.encodedbase.options[
+ theForm.encodedbase.selectedIndex ].value;
+ }
+
+ return( unescape( escapedDN ));
+}
+
+function baseDescription()
+{
+ var theForm = document.listForm;
+
+ if ( theForm.encodedbase.type == 'hidden' ) {
+ return( '' );
+ } else {
+ return( 'in ' + theForm.encodedbase.options[
+ theForm.encodedbase.selectedIndex ].text );
+ }
+}
+</SCRIPT>
+</HEAD>
+
+<!-- BODY "onLoad='document.editForm.visiblesearchstring.focus()'" -->
+
+<CENTER><TABLE BORDER="2" CELLPADDING="10" WIDTH="100%">
+<TR><TD ALIGN="center" WIDTH="100%">
+<FONT SIZE="+2"><B>Manage Organizational Units</B></FONT>
+</TD></TR></TABLE></CENTER>
+
+<!-- DS_LAST_OP_INFO "prefix=<P><FONT SIZE=%22%2B1%22>The organizational unit " "suffix=</FONT><HR>" -->
+
+<FORM method="POST" ACTION="dosearch" NAME="editForm"
+ onSubmit="return doEdit()">
+<INPUT TYPE="hidden" NAME="mode" VALUE="smart">
+<INPUT TYPE="hidden" NAME="type" VALUE="org-units">
+<INPUT TYPE="hidden" NAME="link2edit" VALUE="true">
+<INPUT TYPE="hidden" NAME="editable" VALUE="true">
+<INPUT TYPE="hidden" NAME="goback"
+ VALUE="Return To Manage Organizational Units Screen">
+<INPUT TYPE="hidden" NAME="base" VALUE="">
+<INPUT TYPE="hidden" NAME="listtemplate" VALUE="">
+<INPUT TYPE="hidden" NAME="searchstring" VALUE="">
+<B>Find organizational unit:</B><BR>
+<INPUT TYPE="text" NAME="visiblesearchstring" SIZE=25 VALUE="">
+<INPUT TYPE="submit" VALUE=" Find ">
+</FORM>
+
+<FORM METHOD="POST" ACTION="dosearch" NAME="listForm"
+ onSubmit="return doList()">
+
+<INPUT TYPE="hidden" NAME="mode" VALUE="pattern">
+<INPUT TYPE="hidden" NAME="type" VALUE="OrgUnits">
+<INPUT TYPE="hidden" NAME="filterprefix"
+ VALUE="(&(objectclass=organizationalunit)">
+<INPUT TYPE="hidden" NAME="filtersuffix" VALUE=")">
+<INPUT TYPE="hidden" NAME="filterpattern" VALUE="">
+<INPUT TYPE="hidden" NAME="searchdesc" VALUE="">
+<INPUT TYPE="hidden" NAME="listifone" VALUE="true">
+<INPUT TYPE="hidden" NAME="link2edit" VALUE="true">
+<INPUT TYPE="hidden" NAME="goback"
+ VALUE="Return To Manage Organizational Units Screen">
+<INPUT TYPE="hidden" NAME="base" VALUE="">
+
+<B>Find all units whose:</B>
+<BR>
+
+<NOBR>
+<SELECT name="attr">
+<OPTION VALUE="ou">unit name
+<OPTION VALUE="description">description
+</SELECT>
+
+<SELECT name="patternSelect">
+<OPTION VALUE="(%a=*%v*)">contains
+<OPTION VALUE="(%a=%v)">is
+<OPTION VALUE="(!(%a=%v))">isn't
+<OPTION VALUE="(%a~=%v)">sounds like
+<OPTION VALUE="(%a=%v*)">starts with
+<OPTION VALUE="(%a=*%v)">ends with
+</SELECT>
+<INPUT TYPE="text" NAME="searchstring" VALUE="" SIZE="17">
+<INPUT TYPE="submit" VALUE=" Find ">
+</NOBR>
+
+<SPACER TYPE=vertical SIZE=20>
+<TABLE BORDER=0>
+<!-- DS_LOCATIONPOPUP "name=encodedbase" "prefix=<TR><TD><B>Look within:</B></TD><TD>" "suffix="</TD></TR>" -->
+</TD></TR>
+<TR><TD>
+<B>Format:</B></TD><TD>
+<SELECT name="listtemplate">
+<OPTION VALUE="OrgUnits">On-Screen
+<OPTION VALUE="OrgUnits-report">Printer
+</SELECT>
+</TD></TR></TABLE>
+
+<SPACER TYPE=vertical SIZE=5>
+<TABLE BORDER="2" WIDTH="100%">
+<TR>
+<TD WIDTH="50%" ALIGN="center"><INPUT TYPE="reset" VALUE=" Reset "></TD>
+<TD WIDTH="50%" ALIGN="center">
+<!-- HELPBUTTON "DSLSOUS" -->
+</TD></TR></TABLE>
+</FORM>
+
+<!-- ENDHTML -->
diff --git a/ldap/clients/dsgw/admhtml/dslsusers.html b/ldap/clients/dsgw/admhtml/dslsusers.html
new file mode 100644
index 00000000..90cf49fa
--- /dev/null
+++ b/ldap/clients/dsgw/admhtml/dslsusers.html
@@ -0,0 +1,166 @@
+<!--
+ PROPRIETARY/CONFIDENTIAL. Use of this product is subject to
+ license terms. Copyright © 2001 Sun Microsystems, Inc.
+ Some preexisting portions Copyright © 2001 Netscape Communications Corp.
+ All rights reserved.
+ -->
+<HTML>
+<HEAD><TITLE>Manage Users</TITLE>
+
+<SCRIPT language=JavaScript>
+
+function doList()
+{
+ var theForm = document.listForm;
+ var baseDesc;
+
+ theForm.base.value = baseDN();
+ baseDesc = baseDescription();
+
+ if ( theForm.searchstring.value.length == 0 ) {
+ theForm.filterpattern.value = '(cn=*)';
+ theForm.searchdesc.value = '<BR>All users ' + baseDesc;
+ return( true ); // submit the form
+ }
+
+ theForm.searchdesc.value = '<BR>Users ' + baseDesc + ' whose <B>' +
+ theForm.attr.options[ theForm.attr.selectedIndex ].text + '</B> ' +
+ theForm.patternSelect.options[ theForm.patternSelect.selectedIndex
+ ].text + ' <B>' + theForm.searchstring.value + '</B>';
+
+ theForm.filterpattern.value = theForm.patternSelect.options[
+ theForm.patternSelect.selectedIndex ].value;
+
+ return( true ); // submit
+}
+
+function doEdit()
+{
+ var theForm = document.editForm;
+
+ if ( theForm.visiblesearchstring.value.length == 0 ) {
+ theForm.searchstring.value = '*'; // a bit of a hack
+ } else {
+ theForm.searchstring.value = theForm.visiblesearchstring.value;
+ }
+
+ theForm.listtemplate.value = document.listForm.listtemplate.options[
+ document.listForm.listtemplate.selectedIndex ].value;
+ theForm.base.value = baseDN();
+
+ return( true ); // submit the form
+}
+
+function baseDN()
+{
+ var theForm = document.listForm;
+ var escapedDN;
+
+ if ( theForm.encodedbase.type == 'hidden' ) {
+ escapedDN = theForm.encodedbase.value;
+ } else {
+ escapedDN = theForm.encodedbase.options[
+ theForm.encodedbase.selectedIndex ].value;
+ }
+
+ return( unescape( escapedDN ));
+}
+
+function baseDescription()
+{
+ var theForm = document.listForm;
+
+ if ( theForm.encodedbase.type == 'hidden' ) {
+ return( '' );
+ } else {
+ return( 'in ' + theForm.encodedbase.options[
+ theForm.encodedbase.selectedIndex ].text );
+ }
+}
+</SCRIPT>
+</HEAD>
+
+<!-- BODY "onLoad='document.editForm.visiblesearchstring.focus()'" -->
+
+<CENTER><TABLE BORDER="2" CELLPADDING="10" WIDTH="100%">
+<TR><TD ALIGN="center" WIDTH="100%">
+<FONT SIZE="+2"><B>Manage Users</B></FONT>
+</TD></TR></TABLE></CENTER>
+
+<!-- DS_LAST_OP_INFO "prefix=<P><FONT SIZE=%22%2B1%22>The user " "suffix=</FONT><HR>" -->
+
+<FORM METHOD="POST" ACTION="dosearch" NAME="editForm"
+ onSubmit="return doEdit()">
+<INPUT TYPE="hidden" NAME="mode" value="smart">
+<INPUT TYPE="hidden" NAME="type" value="People">
+<INPUT TYPE="hidden" NAME="editable" value="true">
+<INPUT TYPE="hidden" NAME="link2edit" value="true">
+<INPUT TYPE="hidden" NAME="goback" value="Return To Manage Users Screen">
+<INPUT TYPE="hidden" NAME="base" VALUE="">
+<INPUT TYPE="hidden" NAME="listtemplate" VALUE="">
+<INPUT TYPE="hidden" NAME="searchstring" VALUE="">
+<B>Find user:</B><BR>
+<INPUT TYPE="text" NAME="visiblesearchstring" SIZE=25 VALUE="">
+<INPUT TYPE="submit" VALUE=" Find ">
+</FORM>
+
+<FORM METHOD="POST" ACTION="dosearch" NAME="listForm"
+ onSubmit="return doList()">
+<INPUT TYPE="hidden" NAME="mode" VALUE="pattern">
+<INPUT TYPE="hidden" NAME="type" VALUE="People">
+<INPUT TYPE="hidden" NAME="filterprefix" VALUE="(&(objectclass=person)">
+<INPUT TYPE="hidden" NAME="filtersuffix" VALUE=")">
+<INPUT TYPE="hidden" NAME="filterpattern" VALUE="">
+<INPUT TYPE="hidden" NAME="searchdesc" VALUE="">
+<INPUT TYPE="hidden" NAME="listifone" VALUE="true">
+<INPUT TYPE="hidden" NAME="link2edit" VALUE="true">
+<INPUT TYPE="hidden" NAME="goback" VALUE="Return To Manage Users Screen">
+<INPUT TYPE="hidden" NAME="base" VALUE="">
+
+<B>Find all users whose:</B>
+<BR>
+
+<NOBR>
+<SELECT name="attr">
+<OPTION VALUE="cn">full name
+<OPTION VALUE="sn">last name
+<OPTION VALUE="uid">user id
+<OPTION VALUE="telephonenumber">phone number
+<OPTION VALUE="mail">email address
+</SELECT>
+
+<SELECT name="patternSelect">
+<OPTION VALUE="(%a=*%v*)">contains
+<OPTION VALUE="(%a=%v)">is
+<OPTION VALUE="(!(%a=%v))">isn't
+<OPTION VALUE="(%a~=%v)">sounds like
+<OPTION VALUE="(%a=%v*)">starts with
+<OPTION VALUE="(%a=*%v)">ends with
+</SELECT>
+<INPUT TYPE="text" NAME="searchstring" VALUE="" SIZE="17">
+<INPUT TYPE="submit" VALUE=" Find "></TD>
+</NOBR>
+
+<SPACER TYPE=vertical SIZE=20>
+
+<TABLE BORDER=0>
+<!-- DS_LOCATIONPOPUP "name=encodedbase" "prefix=<TR><TD><B>Look within:</B></TD><TD>" "suffix="</TD></TR>" -->
+</TD></TR>
+<TR><TD>
+<B>Format:</B></TD><TD>
+<SELECT name="listtemplate">
+<OPTION VALUE="People">On-Screen
+<OPTION VALUE="People-report">Printer
+</SELECT>
+</TD></TR></TABLE>
+
+<SPACER TYPE=vertical SIZE=5>
+<TABLE BORDER="2" WIDTH="100%">
+<TR>
+<TD WIDTH="50%" ALIGN="center"><INPUT TYPE="reset" VALUE=" Reset "></TD>
+<TD WIDTH="50%" ALIGN="center">
+<!-- HELPBUTTON "DSLSUSERS" -->
+</TD></TR></TABLE>
+</FORM>
+
+<!-- ENDHTML -->
diff --git a/ldap/clients/dsgw/admhtml/edit-passwd.html b/ldap/clients/dsgw/admhtml/edit-passwd.html
new file mode 100644
index 00000000..f65d3814
--- /dev/null
+++ b/ldap/clients/dsgw/admhtml/edit-passwd.html
@@ -0,0 +1,103 @@
+<!--
+ PROPRIETARY/CONFIDENTIAL. Use of this product is subject to
+ license terms. Copyright © 2001 Sun Microsystems, Inc.
+ Some preexisting portions Copyright © 2001 Netscape Communications Corp.
+ All rights reserved.
+ -->
+<HTML><HEAD>
+<!-- change a directory entry's password -->
+
+<!-- DS_ENTRYBEGIN -->
+<!-- DS_EMIT_BASE_HREF -->
+<TITLE>
+<!-- IF "BoundAsThisEntry" -->
+Set
+<!-- ELSE -->
+Change
+<!-- ENDIF -->
+Password -
+<!-- DS_ATTRIBUTE "attr=dn" "syntax=dn" "options=nolink" -->
+</TITLE>
+</HEAD>
+
+<!-- BODY -->
+<!-- DS_LAST_OP_INFO "prefix=<FONT SIZE=%22%2B1%22>" "suffix=</FONT><HR>" -->
+
+<!-- DS_BEGIN_ENTRYFORM -->
+
+<SCRIPT LANGUAGE="JavaScript">
+<!-- Hide from non-JavaScript-capable browsers
+
+function
+disableUser()
+{
+ if ( confirm( "Password-based access will be disabled by setting this " +
+ "user's password to an invalid value. Proceed?" )) {
+ document.modifyEntryForm.lockpasswd.value = 'true';
+ submitModify( 'modify', null );
+ }
+}
+
+// End hiding -->
+</SCRIPT>
+
+<FONT SIZE="+2">
+<!-- DS_ATTRIBUTE "attr=dn" "syntax=dn" "dncomponents=2" "options=nolink" -->
+</FONT>
+
+<!-- DS_VIEW_SWITCHER -->
+
+<P>
+<TABLE>
+
+<!-- IF "BoundAsThisEntry" -->
+<TR>
+<TD ALIGN="right" NOWRAP>
+<B>Current password:</B>
+</TD><TD>
+<!-- DS_OLDPASSWORD -->
+</TD></TR>
+<!-- ENDIF //BoundAsThisEntry -->
+
+<TR>
+<TD ALIGN="right" NOWRAP>
+<B>New password:</B>
+</TD><TD>
+<!-- DS_NEWPASSWORD -->
+</TD></TR>
+
+<TR>
+<TD ALIGN="right" NOWRAP>
+<B>New password (again):</B>
+</TD><TD>
+<!-- DS_CONFIRM_NEWPASSWORD -->
+</TD></TR>
+</TABLE>
+
+<P>
+
+<TABLE BORDER=2 WIDTH="100%">
+<TR>
+<TD ALIGN="center" WIDTH="33%">
+<!-- IF "BoundAsThisEntry" -->
+<!-- DS_SAVEBUTTON "label=Change Password" -->
+<!-- ELSE -->
+<!-- DS_SAVEBUTTON "label=Set Password" -->
+<!-- ENDIF -->
+<TD ALIGN="center" WIDTH="34%">
+<INPUT TYPE="button" VALUE="Disable Password" onClick="disableUser()" -->
+<TD ALIGN="center" WIDTH="33%">
+<!-- DS_HELPBUTTON "topic=MODIFYPASSWD" -->
+</TABLE>
+
+
+<!-- this next hidden field is used by the "Disable Password" feature -->
+<INPUT TYPE="hidden" NAME="lockpasswd" VALUE="false">
+
+<INPUT TYPE="hidden" NAME="quiet" VALUE="true">
+<INPUT TYPE="hidden" NAME="completion_javascript" VALUE="document.location.href=\'edit/\' + dsmodify_dn + \'?passwd&info=\' + escape(dsmodify_info)">
+
+<!-- DS_END_ENTRYFORM -->
+<!-- DS_ENTRYEND -->
+
+<!-- ENDHTML -->
diff --git a/ldap/clients/dsgw/admhtml/index.lst b/ldap/clients/dsgw/admhtml/index.lst
new file mode 100644
index 00000000..aea03131
--- /dev/null
+++ b/ldap/clients/dsgw/admhtml/index.lst
@@ -0,0 +1,87 @@
+;-------------------------------------------------------------------------
+; PROPRIETARY/CONFIDENTIAL. Use of this product is subject to
+; license terms. Copyright © 2001 Sun Microsystems, Inc.
+; Some preexisting portions Copyright © 2001 Netscape Communications Corp.
+; All rights reserved.
+;-------------------------------------------------------------------------
+; Netscape admin index page master list
+;
+; Lines beginning with a ';' are comments
+; Lines beginning with '--' are dividers:
+; '--Category:[ID,NAME]' is the title of the category of options,
+; with short identifier ID and text NAME
+; '--TabIcon:[ICON]' is the name of the icon that goes on top
+; (assumes a suffix of '_on.gif' for on icon,
+; '_off.gif' for off)
+; (ex: for "users", would have URL "users" which points
+; to "users_on.gif" and "users_off.gif")
+; '--Icon:[URL]' is the icon to associate with those options
+; '--Option:[URL,TXT]' is the URL that the option should point to,
+; and the text that should be used to describe
+; it
+;
+; NOTE: Do NOT let a line have unterminated quotes, double slash
+; characters, pound signs, or slash star sequences. This file
+; is sent through the C preprocessor and that can screw it up.
+
+--Category:pref,System Settings
+--TabIcon:pref
+--Icon:prefer.gif
+--Option:stopadm,Shut Down
+--Option:confadm,Network Settings
+--Option:confopt,Logging Options
+#if defined(XP_UNIX)
+--Option:cronctrl,Cron Control
+--Option:snmpcomm,SNMP Master Agent Community
+--Option:snmptrpc,SNMP Master Agent Trap
+#endif
+--Option:
+--Option:dsconfig,Configure Directory Service
+
+--Category:acss,Access Control
+--TabIcon:acss
+--Icon:access.gif
+--Option:confacc,Admin password
+--Option:distadm,Distributed Admin
+--Option:distacl,Add Permission
+
+--Category:secy,Encryption
+--TabIcon:secy
+--Icon:encrypt.gif
+--Option:sec-pref,Security Preferences
+--Option:sec-gkey,Generate Key
+--Option:sec-pswd,Change Key Password
+--Option:sec-gcrt,Request Certificate
+--Option:sec-icrt,Install Certificate
+--Option:sec-mcrt,Manage Certificates
+
+--Category:clst,Cluster Management
+--TabIcon:clst
+--Icon:cluster.gif
+--Option:clctrl,Cluster Control
+--Option:cladd,Add Server
+--Option:clmod,Modify Server
+--Option:clrem,Remove Server
+
+--Category:user,Users and Groups
+--TabIcon:user
+--Icon:users.gif
+--Option:genscreen?dscruser,Create User
+--Option:genscreen?dseduser,Edit User
+--Option:genscreen?dsrmuser,Remove User
+--Option:genscreen?dslsusers,List Users
+--Option:
+--Option:genscreen?dscrgroup,Create Group
+--Option:genscreen?dsedgroup,Edit Group
+--Option:genscreen?dsrmgroup,Remove Group
+--Option:genscreen?dslsgroups,List Groups
+
+--Option:
+--Option:genscreen?dscrou,Create Organizational Unit (OU)
+--Option:genscreen?dsedou,Edit OU
+--Option:genscreen?dsrmou,Remove OU
+--Option:genscreen?dslsous,List OUs
+
+--Option:
+--Option:dsimpldif,Import
+--Option:dsexpldif,Export
diff --git a/ldap/clients/dsgw/admhtml/list-Anything.html b/ldap/clients/dsgw/admhtml/list-Anything.html
new file mode 100644
index 00000000..a4d47431
--- /dev/null
+++ b/ldap/clients/dsgw/admhtml/list-Anything.html
@@ -0,0 +1,42 @@
+<!--
+ PROPRIETARY/CONFIDENTIAL. Use of this product is subject to
+ license terms. Copyright © 2001 Sun Microsystems, Inc.
+ Some preexisting portions Copyright © 2001 Netscape Communications Corp.
+ All rights reserved.
+ -->
+<!-- TITLE "Search for Anything" -->
+<CENTER><FONT SIZE=+1>
+<!-- DS_SEARCHDESC -->
+</FONT></CENTER>
+<P>
+
+<!-- IF "FoundEntries" -->
+<TABLE BORDER=1 CELLPADDING=4 WIDTH=100%>
+<TR>
+<TH NOWRAP>Name <TH NOWRAP>Phone Number
+<TH NOWRAP>E-Mail Address <TH NOWRAP>Description
+
+<!-- DS_SORTENTRIES -->
+
+<!-- DS_ENTRYBEGIN -->
+<TR>
+<TD NOWRAP>
+<!-- DS_ATTRIBUTE "attr=dn" "syntax=dn" -->
+<TD NOWRAP>
+<!-- DS_ATTRIBUTE "attr=telephoneNumber" "syntax=tel" -->
+<TD NOWRAP>
+<!-- DS_ATTRIBUTE "attr=mail" "syntax=mail" -->
+<TD NOWRAP>
+<!-- DS_ATTRIBUTE "attr=description" -->
+<!-- DS_ENTRYEND -->
+
+</TABLE>
+
+<!-- ELSE -->
+<P>
+<CENTER><FONT SIZE=+1>
+Please try a different search.
+</FONT></CENTER>
+<!-- ENDIF -->
+
+<!-- ENDHTML -->
diff --git a/ldap/clients/dsgw/admhtml/list-Auth.html b/ldap/clients/dsgw/admhtml/list-Auth.html
new file mode 100644
index 00000000..cee812d3
--- /dev/null
+++ b/ldap/clients/dsgw/admhtml/list-Auth.html
@@ -0,0 +1,72 @@
+<!--
+ PROPRIETARY/CONFIDENTIAL. Use of this product is subject to
+ license terms. Copyright © 2001 Sun Microsystems, Inc.
+ Some preexisting portions Copyright © 2001 Netscape Communications Corp.
+ All rights reserved.
+ -->
+<!-- TITLE "Authenticate as..." -->
+
+<!--
+ The "authForm" form and the authSubmit() JavaScript function are
+ used to avoid the need for a separate form for each entry listed.
+ Each entry is tied to this single form through the magic of an
+ anchor that contains href=javascript:authSubmit().
+-->
+
+<FORM NAME="authForm" METHOD=POST ACTION="/clients/dsgw/bin/auth">
+<INPUT TYPE="hidden" NAME="escapedbinddn">
+<INPUT TYPE="hidden" NAME="authdesturl"
+<!-- DS_POSTEDVALUE "name=authdesturl" "within=VALUE=%22--value--%22" -->
+>
+</FORM>
+
+<SCRIPT LANGUAGE="JavaScript">
+<!-- Hide from non-JavaScript-capable browsers
+function authSubmit(encodeddn)
+{
+ document.authForm.escapedbinddn.value = encodeddn;
+ document.authForm.submit();
+}
+// End hiding -->
+</SCRIPT>
+
+<CENTER><FONT SIZE=+1>
+<!-- DS_SEARCHDESC "VERBOSE" -->
+<P>
+<!-- IF "FoundEntries" -->
+Please click on the name of the entry you would like to use for authentication.
+</FONT>
+<P>
+
+<TABLE BORDER=1 CELLPADDING=4>
+<TR>
+<TH NOWRAP>Authenticate As <TH NOWRAP>Title
+
+<!-- DS_SORTENTRIES -->
+
+<!-- DS_ENTRYBEGIN -->
+<TR>
+<TD NOWRAP>
+<!-- DS_ATTRIBUTE "attr=dn" "syntax=dn" "href=javascript:authSubmit('--value--'); onMouseOver=%22window.status='Click to authenticate'; return true;%22" -->
+<TD NOWRAP>
+<!-- DS_ATTRIBUTE "attr=title" -->
+
+<!-- DS_ENTRYEND -->
+
+</TABLE>
+<!-- ELSE "FoundEntries" -->
+Please go back and try again.
+<!-- ENDIF "FoundEntries" -->
+</CENTER>
+
+<FORM>
+<TABLE BORDER=2 WIDTH=100%%>
+<TR>
+<TD ALIGN=center width=50%%>
+<INPUT TYPE="button" VALUE="Go Back" onClick="history.back();">
+<TD ALIGN=center WIDTH=50%%>
+<!-- DS_HELPBUTTON "topic=AUTHMULTMATCH" -->
+</TABLE>
+</FORM>
+
+<!-- ENDHTML -->
diff --git a/ldap/clients/dsgw/admhtml/list-Groups-report.html b/ldap/clients/dsgw/admhtml/list-Groups-report.html
new file mode 100644
index 00000000..89a4bfc6
--- /dev/null
+++ b/ldap/clients/dsgw/admhtml/list-Groups-report.html
@@ -0,0 +1,56 @@
+<!--
+ PROPRIETARY/CONFIDENTIAL. Use of this product is subject to
+ license terms. Copyright © 2001 Sun Microsystems, Inc.
+ Some preexisting portions Copyright © 2001 Netscape Communications Corp.
+ All rights reserved.
+ -->
+<!-- TITLE "List of Groups" -->
+
+<!-- IF "PostedFormValue" "goback" -->
+<FORM>
+<INPUT TYPE="button"
+<!-- DS_POSTEDVALUE "name=goback">
+onClick="history.back()">
+</FORM>
+<!-- ENDIF // PostedFormValue goback -->
+<!-- DS_SEARCHDESC -->
+<P>
+
+<!-- IF "FoundEntries" -->
+<P>
+<TABLE BORDER=1 CELLPADDING=0 CELLSPACING=0 WIDTH=100%>
+<TR>
+<TH ALIGN="left" NOWRAP><FONT SIZE="-3"><B>Group Name</B></FONT>
+<TH ALIGN="left" NOWRAP><FONT SIZE="-3"><B>Description</B></FONT>
+</TR>
+
+<!-- DS_SORTENTRIES "attr=cn" -->
+
+<!-- Make sure attrs in lists are read-only. If they aren't, they're rendered
+ as INPUT fields, but since we're not in a form here, they don't display
+ at all.
+-->
+
+<!-- DS_ENTRYBEGIN -->
+
+<TR>
+<TD NOWRAP><FONT SIZE="-3">
+<!-- DS_ATTRIBUTE "attr=cn" "options=readonly" -->
+</FONT></TD>
+<TD NOWRAP><FONT SIZE="-3">
+<!-- DS_ATTRIBUTE "attr=description" "options=readonly" -->
+</FONT>
+</TR>
+
+<!-- DS_ENTRYEND -->
+
+</TABLE>
+
+<!-- ELSE -->
+<P>
+<FONT SIZE=+1>
+Please try a different search.
+</FONT>
+<!-- ENDIF -->
+
+<!-- ENDHTML -->
diff --git a/ldap/clients/dsgw/admhtml/list-Groups-rm.html b/ldap/clients/dsgw/admhtml/list-Groups-rm.html
new file mode 100644
index 00000000..54973ad9
--- /dev/null
+++ b/ldap/clients/dsgw/admhtml/list-Groups-rm.html
@@ -0,0 +1,80 @@
+<!--
+ PROPRIETARY/CONFIDENTIAL. Use of this product is subject to
+ license terms. Copyright © 2001 Sun Microsystems, Inc.
+ Some preexisting portions Copyright © 2001 Netscape Communications Corp.
+ All rights reserved.
+ -->
+<!-- TITLE "Search for People" -->
+<SCRIPT LANGUAGE="JavaScript">
+<!-- Hide from non-JavaScript-capable browsers
+function deleteEntry(encodeddn)
+{
+ if ( confirm( 'Are you sure you want to remove this group?' )) {
+ document.deleteForm.dn.value = encodeddn;
+ document.deleteForm.submit();
+ }
+}
+// End hiding -->
+</SCRIPT>
+
+<!-- IF "PostedFormValue" "goback" -->
+<FORM>
+<INPUT TYPE="button"
+<!-- DS_POSTEDVALUE "name=goback">
+onClick="history.back()">
+</FORM>
+<!-- ENDIF // PostedFormValue goback -->
+
+<FORM NAME="deleteForm" method="POST" ACTION="domodify">
+<INPUT TYPE="hidden" NAME="changetype" VALUE="delete">
+<INPUT TYPE="hidden" NAME="quiet" VALUE="true">
+<INPUT TYPE="hidden" NAME="dn" VALUE="">
+<INPUT TYPE="hidden" NAME="completion_javascript" VALUE="document.location.href=\'genscreen?dsrmgroup&info=\' + escape(dsmodify_info);">
+</FORM>
+
+<FONT SIZE=+1>
+<!-- DS_SEARCHDESC -->
+</FONT>
+<P>
+
+<!-- IF "FoundEntries" -->
+<FONT SIZE=+1>
+Click on a group to remove it.
+</FONT>
+<P>
+<FORM>
+<TABLE BORDER=1 CELLPADDING=4 WIDTH=100%>
+<TR>
+<TH NOWRAP>Group Name
+<TH NOWRAP>Description
+</TR>
+
+<!-- DS_SORTENTRIES -->
+
+<!-- Make sure attrs in lists are read-only. If they aren't, they're rendered
+ as INPUT fields, but since we're not in a form here, they don't display
+ at all.
+-->
+
+<!-- DS_ENTRYBEGIN -->
+
+<TR>
+<TD NOWRAP>
+<!-- DS_ATTRIBUTE "attr=dn" "syntax=dn" "href=javascript:deleteEntry('--value--'); onMouseOver=%22window.status='Click here to remove this group'; return true;%22" -->
+<TD NOWRAP>
+<!-- DS_ATTRIBUTE "attr=description" "options=readonly"-->
+</TR>
+
+<!-- DS_ENTRYEND -->
+
+</TABLE>
+</FORM>
+
+<!-- ELSE -->
+<P>
+<FONT SIZE=+1>
+Please try a different search.
+</FONT>
+<!-- ENDIF -->
+
+<!-- ENDHTML -->
diff --git a/ldap/clients/dsgw/admhtml/list-Groups.html b/ldap/clients/dsgw/admhtml/list-Groups.html
new file mode 100644
index 00000000..50a86e0f
--- /dev/null
+++ b/ldap/clients/dsgw/admhtml/list-Groups.html
@@ -0,0 +1,62 @@
+<!--
+ PROPRIETARY/CONFIDENTIAL. Use of this product is subject to
+ license terms. Copyright © 2001 Sun Microsystems, Inc.
+ Some preexisting portions Copyright © 2001 Netscape Communications Corp.
+ All rights reserved.
+ -->
+<!-- TITLE "Search for Groups" -->
+
+<!-- IF "PostedFormValue" "goback" -->
+<FORM>
+<INPUT TYPE="button"
+<!-- DS_POSTEDVALUE "name=goback">
+onClick="history.back()">
+</FORM>
+<!-- ENDIF // PostedFormValue goback -->
+
+<FONT SIZE=+1>
+<!-- DS_SEARCHDESC -->
+</FONT>
+<P>
+
+<!-- IF "FoundEntries" -->
+<TABLE BORDER=1 CELLPADDING=4 WIDTH=100%>
+<TR>
+<TH NOWRAP>Group Name
+<TH NOWRAP>Description
+
+<!-- DS_SORTENTRIES -->
+
+<!-- DS_ENTRYBEGIN -->
+<TR>
+<TD NOWRAP>
+<!-- DS_ATTRIBUTE "attr=dn" "syntax=dn" -->
+<TD NOWRAP>
+<!-- DS_ATTRIBUTE "attr=description" "options=readonly"-->
+<!-- DS_ENTRYEND -->
+
+</TABLE>
+
+<!-- ELSE -->
+<P>
+<FONT SIZE=+1>
+Please try a different search.
+</FONT>
+<!-- ENDIF -->
+
+<!-- "Faceless" form which holds (initial) values for domodify -->
+<FORM NAME="modifyForm" ACTION="/admin-serv/bin/domodify" METHOD="POST">
+
+<INPUT TYPE="hidden" NAME="changetype" VALUE="modify">
+<INPUT TYPE="hidden" NAME="dn" VALUE="
+<!-- DS_FA_GROUPDN -->
+">
+<INPUT TYPE="hidden" NAME="add_
+<!-- DS_FA_ATTRNAME -->
+" VALUE="">
+
+
+</FORM>
+
+
+<!-- ENDHTML -->
diff --git a/ldap/clients/dsgw/admhtml/list-Org-Units.html b/ldap/clients/dsgw/admhtml/list-Org-Units.html
new file mode 100644
index 00000000..48cf1b4f
--- /dev/null
+++ b/ldap/clients/dsgw/admhtml/list-Org-Units.html
@@ -0,0 +1,62 @@
+<!--
+ PROPRIETARY/CONFIDENTIAL. Use of this product is subject to
+ license terms. Copyright © 2001 Sun Microsystems, Inc.
+ Some preexisting portions Copyright © 2001 Netscape Communications Corp.
+ All rights reserved.
+ -->
+<!-- TITLE "Search for Organizational Units" -->
+
+<!-- IF "PostedFormValue" "goback" -->
+<FORM>
+<INPUT TYPE="button"
+<!-- DS_POSTEDVALUE "name=goback">
+onClick="history.back()">
+</FORM>
+<!-- ENDIF // PostedFormValue goback -->
+
+<FONT SIZE=+1>
+<!-- DS_SEARCHDESC -->
+</FONT>
+<P>
+
+<!-- IF "FoundEntries" -->
+<TABLE BORDER=1 CELLPADDING=4 WIDTH=100%>
+<TR>
+<TH NOWRAP>Unit Name
+<TH NOWRAP>Description
+
+<!-- DS_SORTENTRIES -->
+
+<!-- DS_ENTRYBEGIN -->
+<TR>
+<TD NOWRAP>
+<!-- DS_ATTRIBUTE "attr=dn" "syntax=dn" -->
+<TD NOWRAP>
+<!-- DS_ATTRIBUTE "attr=description" "options=readonly"-->
+<!-- DS_ENTRYEND -->
+
+</TABLE>
+
+<!-- ELSE -->
+<P>
+<FONT SIZE=+1>
+Please try a different search.
+</FONT>
+<!-- ENDIF -->
+
+<!-- "Faceless" form which holds (initial) values for domodify -->
+<FORM NAME="modifyForm" ACTION="/admin-serv/bin/domodify" METHOD="POST">
+
+<INPUT TYPE="hidden" NAME="changetype" VALUE="modify">
+<INPUT TYPE="hidden" NAME="dn" VALUE="
+<!-- DS_FA_GROUPDN -->
+">
+<INPUT TYPE="hidden" NAME="add_
+<!-- DS_FA_ATTRNAME -->
+" VALUE="">
+
+
+</FORM>
+
+
+<!-- ENDHTML -->
diff --git a/ldap/clients/dsgw/admhtml/list-OrgUnits-report.html b/ldap/clients/dsgw/admhtml/list-OrgUnits-report.html
new file mode 100644
index 00000000..0d956628
--- /dev/null
+++ b/ldap/clients/dsgw/admhtml/list-OrgUnits-report.html
@@ -0,0 +1,56 @@
+<!--
+ PROPRIETARY/CONFIDENTIAL. Use of this product is subject to
+ license terms. Copyright © 2001 Sun Microsystems, Inc.
+ Some preexisting portions Copyright © 2001 Netscape Communications Corp.
+ All rights reserved.
+ -->
+<!-- TITLE "List of Organizational Units" -->
+
+<!-- IF "PostedFormValue" "goback" -->
+<FORM>
+<INPUT TYPE="button"
+<!-- DS_POSTEDVALUE "name=goback">
+onClick="history.back()">
+</FORM>
+<!-- ENDIF // PostedFormValue goback -->
+<!-- DS_SEARCHDESC -->
+<P>
+
+<!-- IF "FoundEntries" -->
+<P>
+<TABLE BORDER=1 CELLPADDING=0 CELLSPACING=0 WIDTH=100%>
+<TR>
+<TH ALIGN="left" NOWRAP><FONT SIZE="-3"><B>Unit Name</B></FONT>
+<TH ALIGN="left" NOWRAP><FONT SIZE="-3"><B>Description</B></FONT>
+</TR>
+
+<!-- DS_SORTENTRIES "attr=cn" -->
+
+<!-- Make sure attrs in lists are read-only. If they aren't, they're rendered
+ as INPUT fields, but since we're not in a form here, they don't display
+ at all.
+-->
+
+<!-- DS_ENTRYBEGIN -->
+
+<TR>
+<TD NOWRAP><FONT SIZE="-3">
+<!-- DS_ATTRIBUTE "attr=ou" "options=readonly" -->
+</FONT></TD>
+<TD NOWRAP><FONT SIZE="-3">
+<!-- DS_ATTRIBUTE "attr=description" "options=readonly" -->
+</FONT>
+</TR>
+
+<!-- DS_ENTRYEND -->
+
+</TABLE>
+
+<!-- ELSE -->
+<P>
+<FONT SIZE=+1>
+Please try a different search.
+</FONT>
+<!-- ENDIF -->
+
+<!-- ENDHTML -->
diff --git a/ldap/clients/dsgw/admhtml/list-OrgUnits.html b/ldap/clients/dsgw/admhtml/list-OrgUnits.html
new file mode 100644
index 00000000..48cf1b4f
--- /dev/null
+++ b/ldap/clients/dsgw/admhtml/list-OrgUnits.html
@@ -0,0 +1,62 @@
+<!--
+ PROPRIETARY/CONFIDENTIAL. Use of this product is subject to
+ license terms. Copyright © 2001 Sun Microsystems, Inc.
+ Some preexisting portions Copyright © 2001 Netscape Communications Corp.
+ All rights reserved.
+ -->
+<!-- TITLE "Search for Organizational Units" -->
+
+<!-- IF "PostedFormValue" "goback" -->
+<FORM>
+<INPUT TYPE="button"
+<!-- DS_POSTEDVALUE "name=goback">
+onClick="history.back()">
+</FORM>
+<!-- ENDIF // PostedFormValue goback -->
+
+<FONT SIZE=+1>
+<!-- DS_SEARCHDESC -->
+</FONT>
+<P>
+
+<!-- IF "FoundEntries" -->
+<TABLE BORDER=1 CELLPADDING=4 WIDTH=100%>
+<TR>
+<TH NOWRAP>Unit Name
+<TH NOWRAP>Description
+
+<!-- DS_SORTENTRIES -->
+
+<!-- DS_ENTRYBEGIN -->
+<TR>
+<TD NOWRAP>
+<!-- DS_ATTRIBUTE "attr=dn" "syntax=dn" -->
+<TD NOWRAP>
+<!-- DS_ATTRIBUTE "attr=description" "options=readonly"-->
+<!-- DS_ENTRYEND -->
+
+</TABLE>
+
+<!-- ELSE -->
+<P>
+<FONT SIZE=+1>
+Please try a different search.
+</FONT>
+<!-- ENDIF -->
+
+<!-- "Faceless" form which holds (initial) values for domodify -->
+<FORM NAME="modifyForm" ACTION="/admin-serv/bin/domodify" METHOD="POST">
+
+<INPUT TYPE="hidden" NAME="changetype" VALUE="modify">
+<INPUT TYPE="hidden" NAME="dn" VALUE="
+<!-- DS_FA_GROUPDN -->
+">
+<INPUT TYPE="hidden" NAME="add_
+<!-- DS_FA_ATTRNAME -->
+" VALUE="">
+
+
+</FORM>
+
+
+<!-- ENDHTML -->
diff --git a/ldap/clients/dsgw/admhtml/list-Organizations.html b/ldap/clients/dsgw/admhtml/list-Organizations.html
new file mode 100644
index 00000000..67b028f7
--- /dev/null
+++ b/ldap/clients/dsgw/admhtml/list-Organizations.html
@@ -0,0 +1,38 @@
+<!--
+ PROPRIETARY/CONFIDENTIAL. Use of this product is subject to
+ license terms. Copyright © 2001 Sun Microsystems, Inc.
+ Some preexisting portions Copyright © 2001 Netscape Communications Corp.
+ All rights reserved.
+ -->
+<!-- TITLE "Search for Organizations" -->
+<CENTER><FONT SIZE=+1>
+<!-- DS_SEARCHDESC -->
+</FONT></CENTER>
+<P>
+
+<!-- IF "FoundEntries" -->
+<TABLE BORDER=1 CELLPADDING=4 WIDTH=100%>
+<TR><TH>Organization <TH>Description <TH>Phone Number
+
+<!-- DS_SORTENTRIES -->
+
+<!-- DS_ENTRYBEGIN -->
+<TR>
+<TD>
+<!-- DS_ATTRIBUTE "attr=dn" "syntax=dn" -->
+<TD>
+<!-- DS_ATTRIBUTE "attr=description" -->
+<TD>
+<!-- DS_ATTRIBUTE "attr=telephoneNumber" "syntax=tel" -->
+<!-- DS_ENTRYEND -->
+
+</TABLE>
+
+<!-- ELSE -->
+<P>
+<CENTER><FONT SIZE=+1>
+Please try a different search.
+</FONT></CENTER>
+<!-- ENDIF -->
+
+<!-- ENDHTML -->
diff --git a/ldap/clients/dsgw/admhtml/list-Ous-rm.html b/ldap/clients/dsgw/admhtml/list-Ous-rm.html
new file mode 100644
index 00000000..1f4e1677
--- /dev/null
+++ b/ldap/clients/dsgw/admhtml/list-Ous-rm.html
@@ -0,0 +1,80 @@
+<!--
+ PROPRIETARY/CONFIDENTIAL. Use of this product is subject to
+ license terms. Copyright © 2001 Sun Microsystems, Inc.
+ Some preexisting portions Copyright © 2001 Netscape Communications Corp.
+ All rights reserved.
+ -->
+<!-- TITLE "Search for People" -->
+<SCRIPT LANGUAGE="JavaScript">
+<!-- Hide from non-JavaScript-capable browsers
+function deleteEntry(encodeddn)
+{
+ if ( confirm( 'Are you sure you want to remove this organizational unit?' )) {
+ document.deleteForm.dn.value = encodeddn;
+ document.deleteForm.submit();
+ }
+}
+// End hiding -->
+</SCRIPT>
+
+<!-- IF "PostedFormValue" "goback" -->
+<FORM>
+<INPUT TYPE="button"
+<!-- DS_POSTEDVALUE "name=goback">
+onClick="history.back()">
+</FORM>
+<!-- ENDIF // PostedFormValue goback -->
+
+<FORM NAME="deleteForm" method="POST" ACTION="domodify">
+<INPUT TYPE="hidden" NAME="changetype" VALUE="delete">
+<INPUT TYPE="hidden" NAME="quiet" VALUE="true">
+<INPUT TYPE="hidden" NAME="dn" VALUE="">
+<INPUT TYPE="hidden" NAME="completion_javascript" VALUE="document.location.href=\'genscreen?dsrmou&info=\' + escape(dsmodify_info);">
+</FORM>
+
+<FONT SIZE=+1>
+<!-- DS_SEARCHDESC -->
+</FONT>
+<P>
+
+<!-- IF "FoundEntries" -->
+<FONT SIZE=+1>
+Click on an organizational unit to remove it.
+</FONT>
+<P>
+<FORM>
+<TABLE BORDER=1 CELLPADDING=4 WIDTH=100%>
+<TR>
+<TH NOWRAP>Unit Name
+<TH NOWRAP>Description
+</TR>
+
+<!-- DS_SORTENTRIES -->
+
+<!-- Make sure attrs in lists are read-only. If they aren't, they're rendered
+ as INPUT fields, but since we're not in a form here, they don't display
+ at all.
+-->
+
+<!-- DS_ENTRYBEGIN -->
+
+<TR>
+<TD NOWRAP>
+<!-- DS_ATTRIBUTE "attr=dn" "syntax=dn" "href=javascript:deleteEntry('--value--'); onMouseOver=%22window.status='Click here to remove this org unit'; return true;%22" -->
+<TD NOWRAP>
+<!-- DS_ATTRIBUTE "attr=description" "options=readonly"-->
+</TR>
+
+<!-- DS_ENTRYEND -->
+
+</TABLE>
+</FORM>
+
+<!-- ELSE -->
+<P>
+<FONT SIZE=+1>
+Please try a different search.
+</FONT>
+<!-- ENDIF -->
+
+<!-- ENDHTML -->
diff --git a/ldap/clients/dsgw/admhtml/list-People-report.html b/ldap/clients/dsgw/admhtml/list-People-report.html
new file mode 100644
index 00000000..8eb33a3e
--- /dev/null
+++ b/ldap/clients/dsgw/admhtml/list-People-report.html
@@ -0,0 +1,60 @@
+<!--
+ PROPRIETARY/CONFIDENTIAL. Use of this product is subject to
+ license terms. Copyright © 2001 Sun Microsystems, Inc.
+ Some preexisting portions Copyright © 2001 Netscape Communications Corp.
+ All rights reserved.
+ -->
+<!-- TITLE "List of People" -->
+
+<!-- IF "PostedFormValue" "goback" -->
+<FORM>
+<INPUT TYPE="button"
+<!-- DS_POSTEDVALUE "name=goback">
+onClick="history.back()">
+</FORM>
+<!-- ENDIF // PostedFormValue goback -->
+<!-- DS_SEARCHDESC -->
+<P>
+
+<!-- IF "FoundEntries" -->
+<P>
+<TABLE BORDER=1 CELLPADDING=0 CELLSPACING=0 WIDTH=100%>
+<TR>
+<TH ALIGN="left" NOWRAP><FONT SIZE="-3"><B>Name</B></FONT>
+<TH ALIGN="left" NOWRAP><FONT SIZE="-3"><B>User ID</B></FONT>
+<TH ALIGN="left" NOWRAP><FONT SIZE="-3"><B>Title</B></FONT>
+</TR>
+
+<!-- DS_SORTENTRIES "attr=sn" -->
+
+<!-- Make sure attrs in lists are read-only. If they aren't, they're rendered
+ as INPUT fields, but since we're not in a form here, they don't display
+ at all.
+-->
+
+<!-- DS_ENTRYBEGIN -->
+
+<TR>
+<TD NOWRAP><FONT SIZE="-3">
+<!-- DS_ATTRIBUTE "attr=dn" "syntax=dn" "options=nolink">
+</FONT>
+<TD NOWRAP><FONT SIZE="-3">
+<!-- DS_ATTRIBUTE "attr=uid" "options=readonly" -->
+<TD NOWRAP><FONT SIZE="-3">
+</FONT>
+<!-- DS_ATTRIBUTE "attr=title" "options=readonly" -->
+</FONT>
+</TR>
+
+<!-- DS_ENTRYEND -->
+
+</TABLE>
+
+<!-- ELSE -->
+<P>
+<FONT SIZE=+1>
+Please try a different search.
+</FONT>
+<!-- ENDIF -->
+
+<!-- ENDHTML -->
diff --git a/ldap/clients/dsgw/admhtml/list-People-rm.html b/ldap/clients/dsgw/admhtml/list-People-rm.html
new file mode 100644
index 00000000..bdacf2f1
--- /dev/null
+++ b/ldap/clients/dsgw/admhtml/list-People-rm.html
@@ -0,0 +1,81 @@
+<!--
+ PROPRIETARY/CONFIDENTIAL. Use of this product is subject to
+ license terms. Copyright © 2001 Sun Microsystems, Inc.
+ Some preexisting portions Copyright © 2001 Netscape Communications Corp.
+ All rights reserved.
+ -->
+<!-- TITLE "Search for People" -->
+<SCRIPT LANGUAGE="JavaScript">
+<!-- Hide from non-JavaScript-capable browsers
+function deleteEntry(encodeddn)
+{
+ if ( confirm( 'Are you sure you want to remove this user?' )) {
+ document.deleteForm.dn.value = encodeddn;
+ document.deleteForm.submit();
+ }
+}
+// End hiding -->
+</SCRIPT>
+
+<!-- IF "PostedFormValue" "goback" -->
+<FORM>
+<INPUT TYPE="button"
+<!-- DS_POSTEDVALUE "name=goback">
+onClick="history.back()">
+</FORM>
+<!-- ENDIF // PostedFormValue goback -->
+
+<FORM NAME="deleteForm" method="POST" ACTION="domodify">
+<INPUT TYPE="hidden" NAME="changetype" VALUE="delete">
+<INPUT TYPE="hidden" NAME="quiet" VALUE="true">
+<INPUT TYPE="hidden" NAME="dn" VALUE="">
+<INPUT TYPE="hidden" NAME="completion_javascript" VALUE="document.location.href=\'genscreen?dsrmuser&info=\' + escape(dsmodify_info);">
+</FORM>
+
+<FONT SIZE=+1>
+<!-- DS_SEARCHDESC -->
+</FONT>
+<P>
+
+<!-- IF "FoundEntries" -->
+<FONT SIZE=+1>
+Click on a user's name to remove them.
+</FONT>
+<P>
+<FORM>
+<TABLE BORDER=1 CELLPADDING=1 CELLSPACING=0 WIDTH=100%>
+<TR>
+<TH NOWRAP>Name<TH NOWRAP>User ID<TH NOWRAP>Title
+</TR>
+
+<!-- DS_SORTENTRIES "attr=sn" -->
+
+<!-- Make sure attrs in lists are read-only. If they aren't, they're rendered
+ as INPUT fields, but since we're not in a form here, they don't display
+ at all.
+-->
+
+<!-- DS_ENTRYBEGIN -->
+
+<TR>
+<TD NOWRAP>
+<!-- DS_ATTRIBUTE "attr=dn" "syntax=dn" "href=javascript:deleteEntry('--value--'); onMouseOver=%22window.status='Click here to remove this user'; return true;%22" -->
+<TD NOWRAP>
+<!-- DS_ATTRIBUTE "attr=uid" "options=readonly" -->
+<TD NOWRAP>
+<!-- DS_ATTRIBUTE "attr=title" "options=readonly" -->
+</TR>
+
+<!-- DS_ENTRYEND -->
+
+</TABLE>
+</FORM>
+
+<!-- ELSE -->
+<P>
+<FONT SIZE=+1>
+Please try a different search.
+</FONT>
+<!-- ENDIF -->
+
+<!-- ENDHTML -->
diff --git a/ldap/clients/dsgw/admhtml/list-People.html b/ldap/clients/dsgw/admhtml/list-People.html
new file mode 100644
index 00000000..0e023dd9
--- /dev/null
+++ b/ldap/clients/dsgw/admhtml/list-People.html
@@ -0,0 +1,61 @@
+<!--
+ PROPRIETARY/CONFIDENTIAL. Use of this product is subject to
+ license terms. Copyright © 2001 Sun Microsystems, Inc.
+ Some preexisting portions Copyright © 2001 Netscape Communications Corp.
+ All rights reserved.
+ -->
+<!-- TITLE "Search for People" -->
+
+<!-- IF "PostedFormValue" "goback" -->
+<FORM>
+<INPUT TYPE="button"
+<!-- DS_POSTEDVALUE "name=goback">
+onClick="history.back()">
+</FORM>
+<!-- ENDIF // PostedFormValue goback -->
+
+<FONT SIZE=+1>
+<!-- DS_SEARCHDESC -->
+</FONT>
+<P>
+
+<!-- IF "FoundEntries" -->
+<FONT SIZE=+1>
+Click on a user's name to edit their entry.
+</FONT>
+<P>
+<TABLE BORDER=1 CELLPADDING=1 CELLSPACING=0 WIDTH=100%>
+<TR>
+<TH NOWRAP>Name<TH NOWRAP>User ID<TH NOWRAP>Title
+</TR>
+
+<!-- DS_SORTENTRIES "attr=sn" -->
+
+<!-- Make sure attrs in lists are read-only. If they aren't, they're rendered
+ as INPUT fields, but since we're not in a form here, they don't display
+ at all.
+-->
+
+<!-- DS_ENTRYBEGIN -->
+
+<TR>
+<TD NOWRAP>
+<!-- DS_ATTRIBUTE "attr=dn" "syntax=dn" "hrefextra=onMouseOver=%22%0Awindow.status='Click here to edit this entry'; return true%22" -->
+<TD NOWRAP>
+<!-- DS_ATTRIBUTE "attr=uid" "options=readonly" -->
+<TD NOWRAP>
+<!-- DS_ATTRIBUTE "attr=title" "options=readonly" -->
+</TR>
+
+<!-- DS_ENTRYEND -->
+
+</TABLE>
+
+<!-- ELSE -->
+<P>
+<FONT SIZE=+1>
+Please try a different search.
+</FONT>
+<!-- ENDIF -->
+
+<!-- ENDHTML -->
diff --git a/ldap/clients/dsgw/admhtml/list-fa-Groups.html b/ldap/clients/dsgw/admhtml/list-fa-Groups.html
new file mode 100644
index 00000000..06946994
--- /dev/null
+++ b/ldap/clients/dsgw/admhtml/list-fa-Groups.html
@@ -0,0 +1,24 @@
+<!--
+ PROPRIETARY/CONFIDENTIAL. Use of this product is subject to
+ license terms. Copyright © 2001 Sun Microsystems, Inc.
+ Some preexisting portions Copyright © 2001 Netscape Communications Corp.
+ All rights reserved.
+ -->
+<!-- TITLE "Search for People" -->
+<!-- IF "FoundEntries" -->
+
+<!-- DS_BEGIN_ENTRYFORM -->
+<FORM>
+<!-- DS_ENTRYBEGIN -->
+
+<!-- DS_ENTRYEND -->
+<!-- DS_END_ENTRYFORM -->
+</FORM>
+
+<!-- ELSE -->
+<SCRIPT LANGUAGE="JavaScript">
+alert('No entries were found.');
+</SCRIPT>
+<!-- ENDIF -->
+
+<!-- ENDHTML -->
diff --git a/ldap/clients/dsgw/admhtml/list-fa-People.html b/ldap/clients/dsgw/admhtml/list-fa-People.html
new file mode 100644
index 00000000..06946994
--- /dev/null
+++ b/ldap/clients/dsgw/admhtml/list-fa-People.html
@@ -0,0 +1,24 @@
+<!--
+ PROPRIETARY/CONFIDENTIAL. Use of this product is subject to
+ license terms. Copyright © 2001 Sun Microsystems, Inc.
+ Some preexisting portions Copyright © 2001 Netscape Communications Corp.
+ All rights reserved.
+ -->
+<!-- TITLE "Search for People" -->
+<!-- IF "FoundEntries" -->
+
+<!-- DS_BEGIN_ENTRYFORM -->
+<FORM>
+<!-- DS_ENTRYBEGIN -->
+
+<!-- DS_ENTRYEND -->
+<!-- DS_END_ENTRYFORM -->
+</FORM>
+
+<!-- ELSE -->
+<SCRIPT LANGUAGE="JavaScript">
+alert('No entries were found.');
+</SCRIPT>
+<!-- ENDIF -->
+
+<!-- ENDHTML -->
diff --git a/ldap/clients/dsgw/admhtml/list-fa_people.html b/ldap/clients/dsgw/admhtml/list-fa_people.html
new file mode 100644
index 00000000..06946994
--- /dev/null
+++ b/ldap/clients/dsgw/admhtml/list-fa_people.html
@@ -0,0 +1,24 @@
+<!--
+ PROPRIETARY/CONFIDENTIAL. Use of this product is subject to
+ license terms. Copyright © 2001 Sun Microsystems, Inc.
+ Some preexisting portions Copyright © 2001 Netscape Communications Corp.
+ All rights reserved.
+ -->
+<!-- TITLE "Search for People" -->
+<!-- IF "FoundEntries" -->
+
+<!-- DS_BEGIN_ENTRYFORM -->
+<FORM>
+<!-- DS_ENTRYBEGIN -->
+
+<!-- DS_ENTRYEND -->
+<!-- DS_END_ENTRYFORM -->
+</FORM>
+
+<!-- ELSE -->
+<SCRIPT LANGUAGE="JavaScript">
+alert('No entries were found.');
+</SCRIPT>
+<!-- ENDIF -->
+
+<!-- ENDHTML -->
diff --git a/ldap/clients/dsgw/admhtml/list-urlsearch.html b/ldap/clients/dsgw/admhtml/list-urlsearch.html
new file mode 100644
index 00000000..964e6291
--- /dev/null
+++ b/ldap/clients/dsgw/admhtml/list-urlsearch.html
@@ -0,0 +1,39 @@
+<!--
+ PROPRIETARY/CONFIDENTIAL. Use of this product is subject to
+ license terms. Copyright © 2001 Sun Microsystems, Inc.
+ Some preexisting portions Copyright © 2001 Netscape Communications Corp.
+ All rights reserved.
+ -->
+<!-- TITLE "URL-based Search" -->
+<CENTER><FONT SIZE=+1>
+Found
+<!-- DS_SEARCHDESC -->
+</FONT></CENTER>
+<P>
+
+<!-- IF "FoundEntries" -->
+<TABLE BORDER=1 CELLPADDING=4 WIDTH=100%>
+<TR><TH>Name <TH>Phone Number <TH>E-Mail Address
+
+<!-- DS_SORTENTRIES -->
+
+<!-- DS_ENTRYBEGIN -->
+<TR>
+<TD>
+<!-- DS_ATTRIBUTE "attr=dn" "syntax=dn" -->
+<TD>
+<!-- DS_ATTRIBUTE "attr=telephoneNumber" "syntax=tel" -->
+<TD>
+<!-- DS_ATTRIBUTE "attr=mail" "syntax=mail" -->
+<!-- DS_ENTRYEND -->
+
+</TABLE>
+
+<!-- ELSE -->
+<P>
+<CENTER><FONT SIZE=+1>
+Please try a different search.
+</FONT></CENTER>
+<!-- ENDIF -->
+
+<!-- ENDHTML -->