Domino 4.6 Samples: Registration StateP domino }*2p{ PURSAF Internotes PURSAF H1'ez )&&_} P-RcfH $TITLE $AssistType $AssistLastRun $AssistDocCount $AssistFlags $MachineName $AssistInfo $AssistQuery $AssistAction $AssistAction_Ex $UpdatedBy $Flags CN=Lotus Notes Template Development/O=Lotus Notes \QZ'F CN=Richard Schwartz/OU=CAM/O=LotusCN=Sample Development/O=Lotus Domino Web Server TeamCN=Richard Schwartz/O=IrisCN=Lotus Notes Template Development/O=Lotus NotesCN=Richard Schwartz/O=IrisCN=Lotus Notes Template Development/O=Lotus Notes9 ########## $Modified 1S2S3S $TITLE$FormPrivs$FormUsers$Body$Flags$Class$Modified$Comment$AssistTrigger$AssistType$AssistFlags$UpdatedBy$$FormScript_O $Flags 0SL1S4S5S3724 $TITLE CN=server/O=RHSTEST/C=US####################### [UserManager][Web Users]Users\by Name|Registered UsersL FullName$Conflict Person L1S2S3S1 FullName FullNameName& CN=Richard Schwartz/OU=CAM/O=LotusCN=Sample Development/O=Lotus Domino Web Server TeamCN=Lotus Notes Template Development/O=Lotus Notes############################ ITEAM2c:\notes\data\dominoregis2.ntfpcDomino 4.6 Samples: Registration CN=Richard Schwartz/O=Iris qSYw{Y ################################################### MPerson [UserManager]H AuthorsReadersHTTPPasswordFullNameEmailOfficePhoneNumberCompanyLastNameMiddleInitialFirstName CN=Richard Schwartz/O=IrisCN=Lotus Notes Template Development/O=Lotus Notes################################## Change PasswordChPw [UserManager] [UserManager][Web Users] AgentRunDataCGI VariablesH SERVER_URLHTTP_REFERERHTTP_USER_AGENTREMOTE_USERREMOTE_ADDRREMOTE_HOSTReaders$$ReturnAgentStatusWhenHandledStateNewPasswordOldPasswordFullName CN=Richard Schwartz/O=IrisCN=Lotus Notes Template Development/O=Lotus Notes############################################### NewPassword NewPassword b.br.bl.c.cr.cl.d.dr.f.fr.fl.g.gr.gl.h.j.k.kl.kr.l.m.n.p.pl.pr.qu.r.s.st.sl.t.tr.v.w.y.z 1S2S6S 0R1S2S a.e.i.o.u.y 0R1S2S6S 0R1S2S =.=.=.=.=.b.d.f.g.k.l.m.n.p.r.s.t.v.x.z 0R1S2S6S 0R1S2S nini$ nmid$ nfin$ nini$ nmid$ nfin$ 0R2RS5E8S11S12S18S21S22RS5E28S31S32S38S41S42RS5E48S51S52S58S61S62RS5E68S71S72S78S81S82RS5E88S91S92S98S101S102RS5E108S111S112S118S121S122RS5E127S128S132R134S nchars 1S2S NPProblem NewPassword nchars Your password must be at least ncharsV characters long. Please go back to the form and correct your password. 0R1S2S3S5RS49E12S13S15RS49E16S17S21S22S24RS49E NPProblem NewPassword NewPassword 0RR3S4S6S14S NPProblem NPProblem 3S4S6S8S NewPassword CN=Richard Schwartz/OU=CAM/O=LotusCN=Sample Development/O=Lotus Domino Web Server TeamCN=Lotus Notes Template Development/O=Lotus Notes ########################################################## AgentRunDataCUA3 AgentStatusWhenHandledState CN=Richard Schwartz/O=IrisCN=Lotus Notes Template Development/O=Lotus Notes######## CN=Richard Schwartz/O=IrisCN=Lotus Notes Template Development/O=Lotus Notes################################################### CN=Richard Schwartz/O=IrisCN=Lotus Notes Template Development/O=Lotus Notes################################################### CN=John Walsh/OU=CAM/O=LotusITEAM2CN=Eileen Driscoll/OU=CAM/O=LotusITEAM2CN=John Walsh/OU=CAM/O=LotusITEAM2CN=Ned Batchelder/OU=CAM/O=LotusCN=John Walsh/OU=CAM/O=LotusITEAM2CN=John Walsh/OU=CAM/O=Lotus2 30719 ############################### ITEAM2 CN=John Walsh/OU=CAM/O=LotusITEAM2CN=Eileen Driscoll/OU=CAM/O=LotusITEAM2CN=John Walsh/OU=CAM/O=LotusITEAM2CN=Ned Batchelder/OU=CAM/O=LotusCN=John Walsh/OU=CAM/O=LotusITEAM2CN=John Walsh/OU=CAM/O=Lotus2 ########################### Set Command to Pending EPdomino4 dominofV3 ########################## Set Groups to Alpha Users EPdomino4 dominofV3 ####################### CN=John Walsh/OU=CAM/O=Lotus CN=John Walsh/OU=CAM/O=LotusITEAM2CN=Eileen Driscoll/OU=CAM/O=LotusITEAM2CN=John Walsh/OU=CAM/O=LotusITEAM2CN=Ned Batchelder/OU=CAM/O=LotusCN=John Walsh/OU=CAM/O=LotusITEAM2CN=John Walsh/OU=CAM/O=Lotus2 30719 Pretend Mail Was Sent EPCN=domino/OU=Public/O=InterNotes/C=US4 CN=domino/OU=Public/O=InterNotes/C=USfV3 ############################# GroupsToJoin GroupsToJoin Enter a list of PAB Groups that the registered users are to be entered into. Note: the code takes care of splitting groups to avoid size restrictions. 0R1S GroupsToJoin CN=Richard Schwartz/O=IrisCN=Lotus Notes Template Development/O=Lotus Notes########### Archive Old Successful Requests ITEAM21Sf3 CN=Richard Schwartz/OU=CAM/O=LotusCN=Sample Development/O=Lotus Domino Web Server TeamCN=Lotus Notes Template Development/O=Lotus Notes ############ Archive Old Unsuccessful Requests ITEAM21Sf3 ITEAM2CN=Sample Development/O=Lotus Domino Web Server TeamCN=Lotus Notes Template Development/O=Lotus Notes ###################################### New AccountNewAcc [UserManager] AgentRunDataCGI VariablesC AgentStatusWhenHandledStateSERVER_URLHTTP_REFERERHTTP_USER_AGENTREMOTE_USERREMOTE_ADDRREMOTE_HOST$$ReturnGroupsToJoinFullNameNewPasswordEmailOfficePhoneNumberCompanyLastNameMiddleInitialFirstName CN=Richard Schwartz/O=IrisCN=Lotus Notes Template Development/O=Lotus Notes################################################ CGI VariablesCUA3 SERVER_URLHTTP_REFERERHTTP_USER_AGENTREMOTE_USERREMOTE_ADDRREMOTE_HOST CN=Richard Schwartz/O=IrisCN=Lotus Notes Template Development/O=Lotus Notes ########################################################## CN=Ned Batchelder/OU=CAM/O=LotusCN=Richard Schwartz/OU=CAM/O=LotusCN=Sample Development/O=Lotus Domino Web Server TeamCN=Lotus Notes Template Development/O=Lotus NotesCN=Richard Schwartz/O=IrisCN=Lotus Notes Template Development/O=Lotus NotesModifiable Constantss34Q1########################### CN=Ned Batchelder/OU=CAM/O=LotusCN=Richard Schwartz/OU=CAM/O=LotusCN=Sample Development/O=Lotus Domino Web Server TeamCN=Richard Schwartz/O=IrisCN=Lotus Notes Template Development/O=Lotus NotesCN=Richard Schwartz/O=IrisCN=Lotus Notes Template Development/O=Lotus NotesCN=Richard Schwartz/O=IrisCN=Lotus Notes Template Development/O=Lotus NotesRequest Utilitiess34Q1################################################### &(Handle Change Password Request) This agent is invoked by the Change Password form.H4fL3 CN=Richard Schwartz/O=IrisCN=Lotus Notes Template Development/O=Lotus Notes############################ )(Handle New Account Request) This agent is invoked by the New Account form to process the new account request.EH4fL3 CN=Richard Schwartz/O=IrisCN=Lotus Notes Template Development/O=Lotus Notes [UserManager]Requests\By Day/P=24 0S0E $5$3FullNameEmail$Conflict NewAcc L1S2S3S1 0S0E FullNameNameEmailEmail& CN=Richard Schwartz/OU=CAM/O=LotusCN=Sample Development/O=Lotus Domino Web Server TeamCN=Lotus Notes Template Development/O=Lotus NotesCN=Richard Schwartz/O=Iris################################# \QZ'F [UserManager]Requests\By Name/P=24X FullNameFormEmail$Conflict Person L1S2S3S1 FullName FullNameNameFormRequestEmailEmail& CN=Richard Schwartz/OU=CAM/O=LotusCN=Sample Development/O=Lotus Domino Web Server TeamCN=Lotus Notes Template Development/O=Lotus NotesCN=Richard Schwartz/O=Iris######################### [UserManager]Requests\By Problem/P=168 $5AgentStatusFullNameFormEmail$Conflict Person AgentStatus Successful L1S2S3S4S5S6S7S1' AgentStatusFullName 10000 AgentStatusStatusFullNameNameFormRequestEmailEmail& CN=Richard Schwartz/OU=CAM/O=LotusCN=Sample Development/O=Lotus Domino Web Server TeamCN=Lotus Notes Template Development/O=Lotus NotesCN=Richard Schwartz/O=Iris##################### [UserManager]Requests\Emails To Be Sent/P=24 $5AgentStatusFullNameFormEmail$Conflict Person AgentStatus Successful SendMailTo MailSent L1S2S3S4S5S6S7S8S9S10S11S12S13S14S15S1' AgentStatusFullName 10000 AgentStatusStatusFullNameNameFormRequestEmailEmail& CN=Richard Schwartz/OU=CAM/O=LotusCN=Sample Development/O=Lotus Domino Web Server TeamCN=Lotus Notes Template Development/O=Lotus NotesCN=Richard Schwartz/O=Iris############# [UserManager]Users\by Domain/P=24 Email $1$2FullName$Conflict Person L1S2S3S1 Email FullNameName& CN=Richard Schwartz/OU=CAM/O=LotusCN=Sample Development/O=Lotus Domino Web Server TeamCN=Lotus Notes Template Development/O=Lotus NotesCN=Richard Schwartz/O=Iris########################################## [UserManager]Users\by Email/P=24j $1EmailFullName$Conflict Person L1S2S3S1 Email EmailFullNameName& CN=Richard Schwartz/OU=CAM/O=LotusCN=Sample Development/O=Lotus Domino Web Server TeamCN=Lotus Notes Template Development/O=Lotus NotesCN=Richard Schwartz/O=Iris################################################# ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## ########################################################## O=Lotus Notes O=Lotus Notes PURSAFO |.:#U O=Lotus Notes CN=Lotus Notes Template Development/O=Lotus Notes PURSAFO Fde!f^^ $ACLDigest O=Lotus Notes O=Lotus Notes PURSAFO |.:#U O=Lotus Notes CN=Lotus Notes Template Development/O=Lotus Notes PURSAFO Fde!f^^ $Readers $TITLE $Index $Formula $FormulaClass $ViewFormat $Comment New Person FullName 4S6S Times New Roman Person fffff3f3 33f3333 '''''''' ######## !"!"!"!" User Registration Information FullName 0S0E DisplayName First name(s) and nicknames - e.g. John; Johnny First name: FirstName FirstNameFirst name(s) and nicknames - e.g. John; Johnny Middle Initial with a trailing period (optional). Middle initial: MiddleInitial MiddleInitialMiddle Initial with a trailing period (optional). Last name - e.g. Smith. Last name: LastName^ LastName Last Name is required LastNameLast name - e.g. Smith. Company: Company Phone Number: OfficePhoneNumberOffice phone number. E-mail: Email Distinguished Notes user name and any other user names - e.g., Jon Smith/Sales/Acme; Jonathan M. Smith. User name: FullName^ 0S0E FullNameDistinguished name and aliases - e.g. Jon Smith/Sales/Acme; Jonathan M. Smith. Password: HTTPPassword^ 0S0E HTTPPassword Choose what you want to do: Change Password Change Password FullName [UserManager] 1S2S Readers the named person plus role [UserManager] FullName [UserManager] 1S2S Authors the named person plus role [UserManager] O=Lotus Notes O=Lotus Notes PURSAFO |.:#U O=Lotus Notes CN=Lotus Notes Template Development/O=Lotus Notes PURSAFO Fde!f^^ $TITLE $Readers $Info $WindowTitle $$Script_O $$ScriptName $Body Handle Change Password Request ChPw fffff3f3 33f3333 '''''''' ######## !"!"!"!" Password Change Request Name: FullName Old Password: OldPassword 0S0E OldPassword New Password: NewPassword (This is a suggested new password. Feel free to change it.) Submit Request Hidden AgentRunData // Agent run data: Everything here is hidden State Pending | PDone | D P = processing; D = done WhenHandled Date/Time agent processed Not run yet AgentStatus "Successful"; "Agent Running" or error message Comment CGI Variables REMOTE_HOST REMOTE_HOST CGI Variable: remote host name REMOTE_ADDR REMOTE_ADDR CGI Variable: remote host address REMOTE_USER REMOTE_USER CGI Variable: remote user name HTTP_USER_AGENT HTTP_USER_AGENT CGI Variable: browser type HTTP_REFERER HTTP_REFERER CGI Variable: page that linked here SERVER_URL SERVER_URL CGI Variable: server url

There seems to have been a problem processing your request. Please send mail to our webmaster. $$Return Returned to browser if agent produces no output Readers Readers Users authorized to read this document O=Lotus Notes O=Lotus Notes PURSAFO |.:#U O=Lotus Notes CN=Lotus Notes Template Development/O=Lotus Notes PURSAFO Fde!f^^ $TITLE $Readers $FormUsers $Info $SubForms $WEBQuerySave $$Script_O $$ScriptName $Body O=Lotus Notes O=Lotus Notes PURSAFO |.:#U O=Lotus Notes CN=Lotus Notes Template Development/O=Lotus Notes PURSAFO Fde!f^^ BpTD| $TITLE $Info $Body AgentRunData Hidden // Agent run data: Everything here is hidden State Pending | PDone | D P = processing; D = done WhenHandled Date/Time agent processed Not run yet AgentStatus "Successful"; "Agent Running" or error message O=Lotus Notes O=Lotus Notes PURSAFO |.:#U O=Lotus Notes CN=Lotus Notes Template Development/O=Lotus Notes PURSAFO Fde!f^^ QN*L@& $TITLE $Info $$Script_O $$ScriptName $Body Comment Richard Schwartz- The Domino Web Site User Registration Database (C) Copyright 1997, Lotus Development Corporation, Cambridge, MA This sample Domino application is distributed for demonstration and information purposes only ========================================================================= See the "Using" document (in design mode) for this database for information on customizing for your site. Note: this sample requires a Domino 4.5 server. fffff3f3 33f3333 '''''''' ######## !"!"!"!" ( ( ( 0 ( ( 0 808( (0(0 ( 0( 0 0( ( ( ( 8(0(08@ 0( 0( (0(0 (0(80808 8 0@8(8@(08 8(0(0( 0H@8(0 0(0( 8@808 (8(0( 0( 0(0( 0(08@ @0(0( HX`XP0@XP 8(8@8 H@P@ P HXH@8 0@80@ 8(80@8@ @80(@ PH8@80 @H@8@8H phXPH @ 08080H@H( phPH@8@8 `PH0@ X`PHPX H@HPH@ XPHPH X HPH@08H xp`h`H`XPX PHP`HPHP X@0(8HX H @808HP@(8 `P80H X PX@HP`hPH X8(0X`XHPHX@ H@P8@8H 80(0Ph 8X`@8X 8@HhP80P`P ph@8(8P` HXH@80HhPXHPH8H0 `PHP@PH@(0@XP`XH X`XPHPH HXP80X 8(@X@8 0`PhPHPX 8HPH@H XH0(8H HP@P@ pXhHPH @H@P( PHPHX Hph`@ hPXH@H0 @`X`0 XPX`H H0 0Xxh @H@H hxph`p XhPX@HXH (xpPXP` xp`Xh( xphXH8@0 P`hH` xpX@8@ @`XH@80 `XPH PphH`HP8 Xxh`PHPX PphP8@0 0x`XPX 8xhp`X @hX`XHP`P pxh`PH` 808@80(@ Xx`HX `XP@P PX`pxP 08Xh` h8`p(` Hx`XHP 8P`@`H@P(PpxX P@h`XP `8`p@ xhXP808@8 8(080 pxpH PXP@XHPH @hXP@ @phXhX (hp`@ 0ph`P (x`pX XhXhHPX hp`X0 8xh`P (8H@HXPX H@HPX`X X`h`X`h Xp`p`PH@808@8H8PH @PH@X Phxpxhp` Xphph X8HP8@ X HP@XP`HP` @xh`ph`p hXHXp hXPX`PHh h`X`h 80(80 H@8@X Xh`Xh Ph`X` P`Pph PXHP08 HXHPXH@P hPX`X(Xp XPXPXPHXHPHPXPX`P XH@08 8@08H8H8 PH@8@ PXPXP`XP HPHP@XP 0hp`@ XPH@PHP @H@P@ 8@8@8 80808 H@HPH0 PpPXH @8@8@08@80 HPH@08H@8@808 808080 ( 08080( 0 ( (0(8 (80(0(80@ 0@080 8 @8@H@H@H@ @8@H@P @0@0@8H Hh`XH@ H080808@ 0 8 0 ( 0( 8080@ (8@0@8(@ (@(0@8 (0@80(08 8 (08(0@HP @H8@8@8 ( ( ( 0 0 (0( ( 0( ( (08@H 8@8@( 0(8(08(0 0( @8 0(0(08 0(08(0 ( ( ( (80( ( ( ( ( ~~~}}}|||{{{zzzyyyxxxwwwvvvuuutttsssrrrqqqpppooonnnmmmlllkkkjjjiiihhhgggfffbbb [

] Domino User Registration [

] This site has several protected areas that require you to enter a username and password. If you have not yet registered, you need to request a new account below. [

] Choose what you want to do :[

] !!!)))111999BBBJJJRRRZZZccckkksss ssc11 B9{1) cR1skZ {sc11) {sBsk9cZ! 11)ccR kskZcZ !1k)B 99RZZ 91kB1 RJsB9k New Account Request a new account Anonymous 1S2S !!!)))111999BBBJJJRRRZZZccckkksss ssc11 B9{1) cR1skZ {sc11) {sBsk9cZ! 11)ccR kskZcZ !1k)B 99RZZ 91kB1 RJsB9k Registered Users 4S6S Examine or update your existing account - This is only visible if you have already authenticated Anonymous 1S2S !!!)))111999BBBJJJRRRZZZccckkksss ssc11 B9{1) cR1skZ {sc11) {sBsk9cZ! 11)ccR kskZcZ !1k)B 99RZZ 91kB1 RJsB9k ?OpenDatabase&Login=1 3S4S8S11S12S Login to update your existing account Note: If you've already been prompted for a username and password, and entered something that didn't work, you can clear the bad username by erasing the name from the authentication dialog box the next time you come across it. O=Lotus Notes O=Lotus Notes PURSAFO |.:#U O=Lotus Notes CN=Lotus Notes Template Development/O=Lotus Notes PURSAFO Fde!f^^ MBHGHx[ 9j78) $Info $Body fffff3f3 33f3333 '''''''' ######## !"!"!"!" ( ( ( 0 ( ( 0 808( (0(0 ( 0( 0 0( ( ( ( 8(0(08@ 0( 0( (0(0 (0(80808 8 0@8(8@(08 8(0(0( 0H@8(0 0(0( 8@808 (8(0( 0( 0(0( 0(08@ @0(0( HX`XP0@XP 8(8@8 H@P@ P HXH@8 0@80@ 8(80@8@ @80(@ PH8@80 @H@8@8H phXPH @ 08080H@H( phPH@8@8 `PH0@ X`PHPX H@HPH@ XPHPH X HPH@08H xp`h`H`XPX PHP`HPHP X@0(8HX H @808HP@(8 `P80H X PX@HP`hPH X8(0X`XHPHX@ H@P8@8H 80(0Ph 8X`@8X 8@HhP80P`P ph@8(8P` HXH@80HhPXHPH8H0 `PHP@PH@(0@XP`XH X`XPHPH HXP80X 8(@X@8 0`PhPHPX 8HPH@H XH0(8H HP@P@ pXhHPH @H@P( PHPHX Hph`@ hPXH@H0 @`X`0 XPX`H H0 0Xxh @H@H hxph`p XhPX@HXH (xpPXP` xp`Xh( xphXH8@0 P`hH` xpX@8@ @`XH@80 `XPH PphH`HP8 Xxh`PHPX PphP8@0 0x`XPX 8xhp`X @hX`XHP`P pxh`PH` 808@80(@ Xx`HX `XP@P PX`pxP 08Xh` h8`p(` Hx`XHP 8P`@`H@P(PpxX P@h`XP `8`p@ xhXP808@8 8(080 pxpH PXP@XHPH @hXP@ @phXhX (hp`@ 0ph`P (x`pX XhXhHPX hp`X0 8xh`P (8H@HXPX H@HPX`X X`h`X`h Xp`p`PH@808@8H8PH @PH@X Phxpxhp` Xphph X8HP8@ X HP@XP`HP` @xh`ph`p hXHXp hXPX`PHh h`X`h 80(80 H@8@X Xh`Xh Ph`X` P`Pph PXHP08 HXHPXH@P hPX`X(Xp XPXPXPHXHPHPXPX`P XH@08 8@08H8H8 PH@8@ PXPXP`XP HPHP@XP 0hp`@ XPH@PHP @H@P@ 8@8@8 80808 H@HPH0 PpPXH @8@8@08@80 HPH@08H@8@808 808080 ( 08080( 0 ( (0(8 (80(0(80@ 0@080 8 @8@H@H@H@ @8@H@P @0@0@8H Hh`XH@ H080808@ 0 8 0 ( 0( 8080@ (8@0@8(@ (@(0@8 (0@80(08 8 (08(0@HP @H8@8@8 ( ( ( 0 0 (0( ( 0( ( (08@H 8@8@( 0(8(08(0 0( @8 0(0(08 0(08(0 ( ( ( (80( ( ( ( ( ~~~}}}|||{{{zzzyyyxxxwwwvvvuuutttsssrrrqqqpppooonnnmmmlllkkkjjjiiihhhgggfffbbb !!!)))111999BBBJJJRRRZZZccckkksss ssc11 B9{1) cR1skZ {sc11) {sBsk9cZ! 11)ccR kskZcZ !1k)B 99RZZ 91kB1 RJsB9k _IWKSE _IPIC The Domino Web Site User Registration Database Copyright 1997 Lotus Development Corporation This sample Domino application is distributed for demonstration and information purposes only. See below for important security issues related to this sample. Important features of this sample: 1. WebQuerySave events on Change Password and New Account forms execute when form is submitted 2. Handle Change Password Request agent Initialize event calls HandleChangePassword subroutine 3. Handle New Account Request agent Initialize event calls HandleNewAccount subroutine 4. Request Utilities script library subroutines (a new design feature in 4.5, so this version of the registration application will only run on a 4.5 server or above) are called by HandleChangePassword and HandleNewAccount Steps for customization 1. Add yourself and your server to the ACL as Manager and member of the role "User Manager". If you need to replicate the database to multiple servers, be sure that all servers are members of the User Manager role. If other administrators will assist in management of the registration process, be sure that they are members of the User Manager role. 2. Modify the shared field "GroupsToJoin" to reflect the name of a group in your PAB that you want to use for registered users. Do not use slash ("/") characters in the name of this group. 3. Add the group you chose in step 2 to the ACL as Author with the "Create documents" permission checked, and add it to the role "Web Users." 4. Note: Do not add the group you have chosen to the PAB. It will be added automatically when the first user registers. 5. Modify the declarations in the "Modifiable Constants" script library to point to the appropriate Public Address Book database(s). NOTE: Groups must be created in the domain's primary address book, otherwise the Notes/Domino 4.x server will not recognize them when interpreting access control. The option of re-directing them by modifying nabGroupsPath$ is provided for test purposes only. Person documents, on the other hand, may be in any address book configured on the server. Also, the server will not authenticate users who are registered in a secondary Public Address Book unless it has been properly configured using the cascading technique or using a Master Address Book. Please see the Notes Administrator Help for more information about this. 6. Edit the Agent Manager section of the Server document in the PAB to make sure that you have permission to run restricted LotusScript agents on your server. If giving yourself access requires actually changing one or more fields in the Server document, you will need to stop and restart the Domino server for the change to take effect. If you merely have to add yourself to a group that is already listed in the Server document, you should not have to reboot the server. NOTE: if you follow the directions for altering the EnsureUserInNAB routine (see below), you must also give yourself permission to run restricted LotusScript agents on your server. 7. Edit the ACL on your PABs to make sure that you have permission to create and edit person and group documents. (Be sure to select the correct Creator and Modifier roles if you have implemented this feature in your PABs). 8. Make cosmetic changes to forms. 9. Open the Handle Change Password Request agent, position your cursor to a blank line in the script, type a single space and then select File - Save to force it to be re-compiled and signed with your user ID. Do the same with the Handle New Account Request agent. (Recompilation is required to incorporate the changes in the Modifiable Constants and Request Utilities libraries. Signature is required to grant access rights for your server). 10. Raise the Anonymous ACL entry to Author, and check the "Create documents" permission. Then go to the Advanced panel in the Access Control List dialog and raise the "Maximum Internet name and password" setting to Author. 11. See below for additional information about running this application... Notes: You must repeat both steps 5 9 if you want to change the name of the PAB used for storing Person or Group documents at any point after completing the above customization instructions. If you experience delays between the time that a user registers and the time that the user can successfully authenticate with the server, there are changes that you can make to the routine EnsureUserInNAB and accompanying Declarations in the Request Utilities script library. Comments in the LotusScript code for this routine explain these changes. Domino Registration sample application If you want to protect certain areas of your site, and require that Web users enter a user name and password before they access the protected information, you'll need to create an account for users. To do this, you register users in the Public Address Book on the Domino server. This application is a sample showing how to register Web users for Domino-based applications. Users can create accounts for themselves with no manual intervention. Security Warning: This sample is designed to allow anyone with Web connectivity to your server to create a user name and password for themselves on your server. This will not allow them to use Notes to access your data, but it will allow them to use their Web browser through Domino to access and possibly change data. Be very careful in deploying this application or modified versions of it. This application modifies your Public Address Book. By running this application, you acknowledge that this software may modify your Notes Public Address Book, which could, in certain circumstances, compromise security. About the Domino sample registration application The sample registration application asks users for a name, company name, phone number and e-mail address. The form contains a randomly generated password, which users can change when they register, or they can change their password at a later date. When the user submits the form, the password is encrypted, and a person document is created and the user name is added to a Group in the Public Address Book on the Domino server. The registration process is very simple; however, it does have some built-in error checks. For example, it uses an input validation formula to verify that the user's e-mail address has a valid structure when the form is submitted. Also, if the user name already exists in the Domino server's Public Address Book, it asks the user to pick another user name. Making sure your site is ready to register users In order to see how the sample registration application works, you need to have at least one database that has a default access of No Access. This forces Domino to authenticate users, which means they'll have to register. (If your databases all have a default access of Reader, Domino will never be required to authenticate users, which means they would never be required to register.) To do this: Change the databases(s) default access to No Access in the ACL. Add the group you chose in customization step 3 (above) to the database ACL. Assign this group an appropriate access level, (for example, Author). Use a browser to connect to your server and attempt to open this database. Your browser will display a login prompt, indicating that it will only give registered users access to the database. Now open up the Registration application from a browser and use it to create an account, then return to the database you were attempting to access. Enter the name and password information for the account you just created into your browser's login dialog. If you have followed these instructions, you should now gain access to the database. O=Lotus Notes O=Lotus Notes PURSAFO |.:#U O=Lotus Notes CN=Lotus Notes Template Development/O=Lotus Notes PURSAFO Fde!f^^ $Info $Body ed$UpdatedBy$ACLDigest$Signature$DesignVersion$Version$Formula$FormulaClass$Collation$Readers$TITLE$Index$ViewFormat$Comment$Flags$FlagsNoRefresh$TemplateModTime$TemplateServerName$TemplateFileName$LSECFlagsIconBitmap$Info$WindowTitle$Fonts$$Script_O$$ScriptNameFirstNameMiddleInitialLastNameCompanyOfficePhoneNumberEmailFullNameHTTPPASSWORDReadersAuthors$Fields$Body$FormUsers$SubForms$WEBQuerySaveOldPasswordNewPasswordStateWhenHandledAgentStatus$$ReturnREMOTE_HOSTREMOTE_ADDRREMOTE_USERHTTP_USER_AGENTHTTP_REFERERSERVER_URL$ReplVersion$ReplSrcServers$ReplClassMasks$ReplFormula$ReplView$ReplPrivateFolder$ReplFields$AssistVersion$AssistType$AssistLastRun$AssistDocCount$AssistFlags$MachineName$AssistTrigger$AssistInfo$AssistQuery$AssistAction$AssistAction_Ex$AssistRunInfoGroupsToJoin$ScriptLib$ScriptLib_O$PublicAccess$Totals Started running agent 'Set Command to Pending' on 06/03/96 03:15:06 PM Running on selected documents: 1 total Found 1 document(s) that match search criteria Modified field in 1 document(s) Done running agent 'Set Command to Pending' on 06/03/96 03:15:06 PM Started running agent 'Set Groups to Alpha Users' on 06/03/96 03:18:13 PM Running on selected documents: 4 total Found 4 document(s) that match search criteria Modified field in 4 document(s) Done running agent 'Set Groups to Alpha Users' on 06/03/96 03:18:14 PM GroupsToJoinAlpha Users domino }*2p{ PURSAF Internotes PURSAF H1'ez $TITLE $AssistType $AssistLastRun $AssistDocCount $AssistFlags $MachineName $AssistInfo $AssistQuery $AssistAction $AssistAction_Ex $UpdatedBy $Flags Started running agent 'Pretend Mail Was Sent' on 06/21/96 09:48:33 AM Running on selected documents: 5 total Found 5 document(s) that match search criteria Modified field in 5 document(s) Done running agent 'Pretend Mail Was Sent' on 06/21/96 09:48:34 AM MailSentPretend Sent (Ned) Internotes PURSAF H1'ez O=InterNotes/C=US O=InterNotes/C=US PURSAFO O=InterNotes/C=US OU=Public/O=InterNotes/C=US }#&8NM PURSAFO T{lnhA OU=Public/O=InterNotes/C=US CN=domino/OU=Public/O=InterNotes/C=US }*2p{ PURSAFO Doz|U Xh4]P $TITLE $AssistType $AssistLastRun $AssistDocCount $AssistFlags $MachineName $AssistInfo $AssistQuery $AssistAction $AssistAction_Ex $UpdatedBy $Flags O=Lotus Notes O=Lotus Notes PURSAFO |.:#U O=Lotus Notes CN=Lotus Notes Template Development/O=Lotus Notes PURSAFO Fde!f^^ -sIHS $TITLE $Info $Body Change Password|ChPwNew Account|NewAcc StateD AgentStatusSuccessful _RevisionDate ITEAM2domsite\regisarchive.nsf O=Lotus Notes O=Lotus Notes PURSAFO |.:#U O=Lotus Notes CN=Lotus Notes Template Development/O=Lotus Notes PURSAFO Fde!f^^ $TITLE $AssistType $AssistLastRun $AssistDocCount $AssistFlags $MachineName $AssistTrigger $AssistInfo $AssistQuery $AssistAction $AssistAction_Ex Change Password|ChPwNew Account|NewAcc StateD _RevisionDate ITEAM2domsite\regisarchive.nsf O=Lotus Notes O=Lotus Notes PURSAFO |.:#U O=Lotus Notes CN=Lotus Notes Template Development/O=Lotus Notes PURSAFO Fde!f^^ $TITLE $AssistType $AssistLastRun $AssistDocCount $AssistFlags $MachineName $AssistTrigger $AssistInfo $AssistQuery $AssistAction $AssistAction_Ex Handle New Account Request NewAcc fffff3f3 33f3333 '''''''' ######## !"!"!"!" User Registration Form !!!)))111999BBBJJJRRRZZZccckkksss{{{ kcck9 ZZcss !!)kk )!J9) 9)cR9 1!ZsZ B1k9!s1 RJcZB STRNGS All Fields marked with Kq}~Rk;4@ K~TG51- }h[;/+ ~i[5/( ~}aRkG5/' >kThikG52.% 5 ;52/)%# -+('%$# !!!)))111999BBBJJJRRRZZZccckkksss{{{ kcck9 ZZcss !!)kk )!J9) 9)cR9 1!ZsZ B1k9!s1 RJcZB are required First Name: Kq}~Rk;4@ K~TG51- }h[;/+ ~i[5/( ~}aRkG5/' >kThikG52.% 5 ;52/)%# -+('%$# !!!)))111999BBBJJJRRRZZZccckkksss{{{ kcck9 ZZcss !!)kk )!J9) 9)cR9 1!ZsZ B1k9!s1 RJcZB FirstName 0S0E FirstName First name is a required field. Please go back to the form to include a first name. FirstName x{x}x[x]x?x!x#x-x=x+x*x(x)x&x^x%x$x@x/x\x" Please use only letters in your first name{ 2RS3E6S7S9S14RS3E18S22S26S31RS3E FirstName Middle Initial: MiddleInitial 0S0E MiddleInitial x{x}x[x]x?x!x#x-x=x+x*x(x)x&x^x%x$x@x/x\x" Please use only letters in your middle name 6S10S14S19SMiddleInitial Last Name: Kq}~Rk;4@ K~TG51- }h[;/+ ~i[5/( ~}aRkG5/' >kThikG52.% 5 ;52/)%# -+('%$# !!!)))111999BBBJJJRRRZZZccckkksss{{{ kcck9 ZZcss !!)kk )!J9) 9)cR9 1!ZsZ B1k9!s1 RJcZB LastName^ 0S0E LastName Last name is a required field. Please go back to the form to include a last name. LastName x{x}x[x]x?x!x#x-x=x+x*x(x)x&x^x%x$x@x/x\x" Please use only letters in your last name 2RS3E6S7S9S14RS3E18S22S26S31RS3E LastName Company: Company 0S0E Company Phone Number: OfficePhoneNumberOffice phone number. E-mail: Kq}~Rk;4@ K~TG51- }h[;/+ ~i[5/( ~}aRkG5/' >kThikG52.% 5 ;52/)%# -+('%$# !!!)))111999BBBJJJRRRZZZccckkksss{{{ kcck9 ZZcss !!)kk )!J9) 9)cR9 1!ZsZ B1k9!s1 RJcZB Email 0S0E domain Email 1S2S6S Email Email domain domain domain domaina Email A valid Internet e-mail address is required. Please go back to the form to enter or correct the e-mail address. 0R2RS4E6S7S8S9RS4E14S16S17RS4E21S22S23S24S28S29S30S31RS4E36S37S38S39S46S60S61S63S64RS4E70S73S74S76RS4E81SEmail Password: Kq}~Rk;4@ K~TG51- }h[;/+ ~i[5/( ~}aRkG5/' >kThikG52.% 5 ;52/)%# -+('%$# !!!)))111999BBBJJJRRRZZZccckkksss{{{ kcck9 ZZcss !!)kk )!J9) 9)cR9 1!ZsZ B1k9!s1 RJcZB b.br.bl.c.cr.cl.d.dr.f.fr.fl.g.gr.gl.h.j.k.kl.kr.l.m.n.p.pl.pr.qu.r.s.st.str.sl.t.th.thr.tr.v.w.y.z 1S2S6S a.ai.aw.ay.e.ea.ee.ei.i.o.oo.ou.ow.oy.u 0R1S2S6S b.d.f.g.gh.k.l.m.n.p.r.s.st.t.v.z 0R1S2S6S 0R1S2S3S4S5S6S 0R1S2S nsyl$ nsyl$ nsyl$ nsyl$ 0R6S7S8S11S14S15S21S22S23S26S29S30S36S37S38S41S44S45S51S52S53S56SNewPassword This is a random password. Feel free to change it. Submit Request FirstName MiddleInitial MiddleInitial LastName" 1S2S5S6S8S10S11S12S14S15S16S17SFullName Computed FullName GroupsToJoin Groups to add the user to

There seems to have been a problem processing your request. Please send mail to our webmaster. $$Return returned by browser if no output from agent AgentRunData // Agent run data: Everything here is hidden State Pending | PDone | D P = processing; D = done WhenHandled Not run yet AgentStatus "Successful"; Comment CGI Variables // CGI variables: Everything here is hidden... Hidden REMOTE_HOST REMOTE_HOST REMOTE_HOST REMOTE_ADDR REMOTE_ADDR REMOTE_ADDR REMOTE_USER REMOTE_USER REMOTE_USER HTTP_USER_AGENT HTTP_USER_AGENT HTTP_USER_AGENT HTTP_REFERER HTTP_REFERER HTTP_REFERER SERVER_URL SERVER_URL SERVER_URL O=Lotus Notes O=Lotus Notes PURSAFO |.:#U O=Lotus Notes CN=Lotus Notes Template Development/O=Lotus Notes PURSAFO Fde!f^^ $TITLE $Readers $Info $SubForms $WEBQuerySave $$Script_O $$ScriptName $Body CGI Variables Comment REMOTE_HOST REMOTE_HOST CGI Variable: remote host name REMOTE_ADDR REMOTE_ADDR CGI Variable: remote host address REMOTE_USER REMOTE_USER CGI Variable: remote user name HTTP_USER_AGENT HTTP_USER_AGENT CGI Variable: browser type HTTP_REFERER HTTP_REFERER CGI Variable: page that linked here SERVER_URL SERVER_URL CGI Variable: server url Hidden O=Lotus Notes O=Lotus Notes PURSAFO |.:#U O=Lotus Notes CN=Lotus Notes Template Development/O=Lotus Notes PURSAFO Fde!f^^ J9@Vta $TITLE $Info $$Script_O $$ScriptName $Body '++LotusScript Development Environment:2:5:(Options):0:74 Option Public Option Declare '++LotusScript Development Environment:2:5:(Forward):0:1 '++LotusScript Development Environment:2:5:(Declarations):0:10 ' NOTE: You must recompile the agents in this database if you ' change the value of either of these constants. '------------------------- User-modifiable constants --------------------------- ' This is the path to the NAB that has the people documents Const nabPeoplePath$ = "names.nsf" ' This is the path to the NAB that has the group documents Const nabGroupsPath$ = "names.nsf" '-------------------------- end of user-modifiable constants ---------------- O=Lotus Notes O=Lotus Notes PURSAFO |.:#U O=Lotus Notes CN=Lotus Notes Template Development/O=Lotus Notes PURSAFO Fde!f^^ a15-E $ScriptLib $ScriptLib_O $TITLE $Flags $PublicAccess '++LotusScript Development Environment:2:5:(Options):0:74 '--------------------------------------------------------------------------------------- ' Domino Web Server sample account management app. ' Lotus Development Corp. '--------------------------------------------------------------------------------------- Option Public Option Declare Use "Modifiable Constants" '++LotusScript Development Environment:2:5:(Forward):0:1 Declare Function GetPersonDocument (Byval personName As String, nab As NotesDatabase) As NotesDocument Declare Function IsPasswordOK( Byval pw As String ) Declare Sub WriteInitialAgentData( req As NotesDocument ) Declare Sub WriteFinalAgentData( req As NotesDocument ) Declare Sub EnsureUserInNAB(Byval fullname As String) Declare Sub AddUserToGroup( Byval fullname As String, Byval group As String, nab As NotesDatabase ) '++LotusScript Development Environment:2:5:(Declarations):0:10 ' NAMELookup and OSMemFree are used in alternate code that ' is commented out in EnsureUserInNAB. The location of these ' Notes API routines is required in these LotusScript declarations. ' The locations are platform specific, so if you choose to use this ' code you must remove the %rem and %endrem statements ' surrounding the set of declarations appropriate for the platform ' on which you are deploying this application, and you must also ' follow the instructions in the comments in EnsureUserInNAB. '=============== Win32 Intel Version===================== Declare Sub NAMELookup Lib "nnotes.dll" _ (Byval serverName As Integer, _ Byval flags As Integer, _ Byval numNameSpaces As Integer, _ Byval nameSpaces As String, _ Byval numNames As Integer, _ Byval names As String, _ Byval numItems As Integer, _ Byval items As String, _ rethBuffer As Long _ Declare Sub OSMemFree Lib "nnotes.dll" (Byval hBuffer As Long) '=============== end Win32 Intel Version================== %ENDREM '=============== OS/2 Version===================== Declare Sub NAMELookup Lib "inotes.dll" _ (Byval serverName As Integer, _ Byval flags As Integer, _ Byval numNameSpaces As Integer, _ Byval nameSpaces As String, _ Byval numNames As Integer, _ Byval names As String, _ Byval numItems As Integer, _ Byval items As String, _ rethBuffer As Long _ Declare Sub OSMemFree Lib "inotes.dll" (Byval hBuffer As Long) '=============== end OS/2 Version================== %ENDREM '=============== Win32 Alpha Version===================== Declare Sub NAMELookup Lib "anotes.dll" _ (Byval serverName As Integer, _ Byval flags As Integer, _ Byval numNameSpaces As Integer, _ Byval nameSpaces As String, _ Byval numNames As Integer, _ Byval names As String, _ Byval numItems As Integer, _ Byval items As String, _ rethBuffer As Long _ Declare Sub OSMemFree Lib "anotes.dll" (Byval hBuffer As Long) '=============== end Win32 Alpha Version================== %ENDREM '=============== AIX Version===================== Declare Sub NAMELookup Lib "libnotes_r.a" _ (Byval serverName As Integer, _ Byval flags As Integer, _ Byval numNameSpaces As Integer, _ Byval nameSpaces As String, _ Byval numNames As Integer, _ Byval names As String, _ Byval numItems As Integer, _ Byval items As String, _ rethBuffer As Long _ Declare Sub OSMemFree Lib "libnotes_r.a" (Byval hBuffer As Long) '=============== end AIX Version================== %ENDREM '=============== HP-UX Version===================== Declare Sub NAMELookup Lib "libnotes.sl" _ (Byval serverName As Integer, _ Byval flags As Integer, _ Byval numNameSpaces As Integer, _ Byval nameSpaces As String, _ Byval numNames As Integer, _ Byval names As String, _ Byval numItems As Integer, _ Byval items As String, _ rethBuffer As Long _ Declare Sub OSMemFree Lib "libnotes.sl" (Byval hBuffer As Long) '=============== end HP-UX Version================== %ENDREM '=============== Solaris (SPARC & Intel) Version===================== Declare Sub NAMELookup Lib "libnotes.so" _ (Byval serverName As Integer, _ Byval flags As Integer, _ Byval numNameSpaces As Integer, _ Byval nameSpaces As String, _ Byval numNames As Integer, _ Byval names As String, _ Byval numItems As Integer, _ Byval items As String, _ rethBuffer As Long _ Declare Sub OSMemFree Lib "libnotes.so" (Byval hBuffer As Long) '=============== end Solaris (SPARC & Intel) Version================== %ENDREM '++LotusScript Development Environment:2:1:GetPersonDocument:3:8 ' Find the person document in the NAB for the person named in the argument. Function GetPersonDocument (Byval personName As String, nab As NotesDatabase) As NotesDocument Dim coll As NotesDocumentCollection Dim search As String search$ = "Form = ""Person"" & @LowerCase(FullName) = """ + Lcase$(personName) + """" Set coll = nab.Search(search$, Nothing, 0) Set GetPersonDocument = coll.GetFirstDocument End Function '++LotusScript Development Environment:2:1:IsPasswordOK:6:8 ' Some basic checking that a password is OK. This ' checks the hashed password, which is the only form ' available to us. The cleartext passwords are not stored ' anywhere. Function IsPasswordOK( Byval pw As String ) IsPasswordOK = True If Left$(pw, 1) <> "(" Then IsPasswordOK = False End If If Right$(pw, 1) <> ")" Then IsPasswordOK = False End If End Function '++LotusScript Development Environment:2:2:WriteInitialAgentData:3:8 ' Write the initial agent bookkeeping information into the request document. Sub WriteInitialAgentData( req As NotesDocument ) req.AgentStatus = "Agent running" End Sub '++LotusScript Development Environment:2:2:WriteFinalAgentData:4:8 ' Write the agent's bookkeeping information into a request document. ' This leaves a trail that can help to diagnose problems that might occur. Sub WriteFinalAgentData( req As NotesDocument ) Dim dateTime As New NotesDateTime( "" ) Call dateTime.SetNow Set req.WhenHandled = dateTime Call req.ReplaceItemValue( "State", "D" ) ' Since this agent is run synchronously, we don't need to save the document ' here. Domino will do it as part of processing the document. End Sub '++LotusScript Development Environment:2:2:EnsureUserInNAB:5:8 ' This sub is used to guarantee that the NAB view of users is up-to-date after adding a new ' user. Domino 1.5 does not force the view to be up-to-date when authenticating users, so ' we'll do it ourselves so the user can start working right away. Sub EnsureUserInNAB(Byval fullname As String) ' %rem goes here -- see below Dim pab1 As New NotesDatabase("","") Dim pab2 As New NotesDatabase("","") Dim v As NotesView Call pab1.Open("",nabPeoplePath$) Set v = pab1.GetView("($Users)") v.Refresh If nabPeoplePath$ <> nabGroupsPath$ Then Call pab2.Open("",nabGroupsPath$) Set v = pab2.GetView("($ServerAccess)") Else Set v = pab1.GetView("($ServerAccess)") End If v.Refresh ' %endrem goes here -- see below ' NOTE: testing by Lotus QE has determined that the above code does not ' always have the desired effect due to the caching strategies used for ' authentication information by the Domino server. In cases where users are ' being registered in the primary PAB and sufficient free indexer tasks are ' available, the account information should be active in less than 60 seconds. ' In other cases, however, it may take several minutes. The code that is ' commented out below offers a way to get immediate results through the use ' of calls to the Notes API. This code has not been rigorously tested by Lotus ' only on the Win32 Intel platform. ' To activate this code you must first go to the Declarations section of this Script ' Library and un-comment the subroutine declarations appropriate for the server ' platform on which this application will run, then return here and put %rem and ' %endrem statements around the above code in the locations indicated in the ' comments, and then remove the %rem and %endrem below. Finally, recompile ' the agents in this database (see step 5 in the instruction in the Using document) ' to make sure this change takes effect. ' If you activate this code, the id that you use to re-compile the agenst must be ' granted permission to run unrestricted LotusScript agents on your server. %REM Dim hBuf As Long Call NAMELookup(0, 0, 1, "$Users", 1, fullname, 1, "HTTPPassword", hBuf) Call OSMemFree(hBuf) Call NAMELookup(0, 0, 1, "$ServerAccess", 1, fullname, 1, "ListName", hBuf) Call OSMemFree(hBuf) %ENDREM End Sub '++LotusScript Development Environment:2:2:AddUserToGroup:14:8 ' This is a complicated sub. It adds a user to a group, but does it in a way ' that allows very large groups. Because Notes stores group members in ' text lists, and text lists can have only 15K bytes in them, simple groups ' are limited to around 1000 members. To have more members than that, ' the group must be broken into a number of other groups, which are ' then referenced as members of a master group. ' This sub handles all of that complexity. The group name passed in ' is the name of the master group, and this sub will handle the creation ' and populating of the sub-groups as needed. The sub-groups will ' be named by appending numbers to the master group name, and will ' have slightly more than 10K bytes of members in them. Sub AddUserToGroup( Byval fullname As String, Byval group As String, nab As NotesDatabase ) ' Load up our static groups view Dim groups As NotesView Set groups = nab.GetView( "Groups" ) Dim groupMainDoc As NotesDocument Set groupMainDoc = groups.GetDocumentByKey( group ) Dim saveGroupMainDoc As Integer saveGroupMainDoc = False Dim subGroup As String Dim newGroup As Integer subGroup = "" newGroup = False If groupMainDoc Is Nothing Then Set groupMainDoc = New NotesDocument( nab ) newGroup = True groupMainDoc.Form = "Group" groupMainDoc.ListName = group subGroup = group & " 1" groupMainDoc.Members = subGroup groupMainDoc.GroupType = "0" Call groupMainDoc.ComputeWithForm( False, False ) saveGroupMainDoc = True End If Dim groupMainMembers As NotesItem Set groupMainMembers = groupMainDoc.GetFirstItem( "Members" ) If groupMainMembers Is Nothing Then Call groupMainDoc.ReplaceItemValues("Members","") Set groupMainMembers = groupMainDoc.GetFirstItem( "Members" ) End If ' Find last subgroup entry in the members list If subGroup = "" Then Forall s In groupMainMembers.Values If Left$( s, Len( group ) ) = group Then subGroup = s End If End Forall End If ' Open the subgroup, and keep trying until we find one with room Dim groupNum As Integer groupNum = 0 ' Which subgroup was the last one If subGroup <> "" Then groupNum = Val( Right( subGroup, Len( subGroup ) - Len( group ) - 1 ) ) Else groupNum = 1 subGroup = group & " 1" End If Dim groupSubDoc As NotesDocument Do Set groupSubDoc = groups.GetDocumentByKey( subGroup ) If groupSubDoc Is Nothing Then ' Create a new subgroup document Dim newSubGroup As Integer newSubGroup = False Set groupSubDoc = New NotesDocument( nab ) newSubGroup = True groupSubDoc.Form = "Group" groupSubDoc.ListName = subGroup groupSubDoc.GroupType = "0" Call groupSubDoc.ComputeWithForm( False, False ) ' check all values of groupMainMembers to see if ' one of them is the subgroup. Note: this works around ' an apparent bug in NotesItem.Contains Dim subGroupFound As Integer subGroupFound = False If newGroup = True Then subGroupFound = True Else Forall s In groupMainMembers.Values If s = subGroup Then subGroupFound = True End If End Forall End If ' Add it to the main group if needed If Not subGroupFound Then Call groupMainMembers.AppendToTextList( subGroup ) saveGroupMainDoc = True End If End If ' See if the subgroup still has room, if so, we've found our subgroup Dim groupSubMembers As NotesItem Set groupSubMembers = groupSubDoc.GetFirstItem( "Members" ) If groupSubMembers.ValueLength < 10000 Then Exit Do End If ' If no room, try the next one groupNum = groupNum + 1 subGroup = group & " " & groupNum Loop ' Finally: add the user to the subgroup Call groupSubMembers.AppendToTextList( fullname ) Call groupSubDoc.Save( False, True ) If saveGroupMainDoc Then Call groupMainDoc.Save( False, True ) End If Exit Sub End Sub 4 4 L ^$ +$ K$ ,( O=Lotus Notes O=Lotus Notes PURSAFO |.:#U O=Lotus Notes CN=Lotus Notes Template Development/O=Lotus Notes PURSAFO Fde!f^^ $ScriptLib $ScriptLib_O $TITLE $Flags $PublicAccess '++LotusScript Development Environment:2:5:(Options):0:74 '-------------------------------------------------------------------------------------- ' Domino Web Server sample account management app. ' Lotus Development Corp. '--------------------------------------------------------------------------------------- ' Note: this agent runs with the permissions of the Web User for ' all operations in this database, and with the permission of the ' user whose signature is on the agent for all operations in the PAB Option Public Option Declare ' This script uses the utility functions in the Request Utilities script library. Use "Request Utilities" Use "Modifiable Constants" '++LotusScript Development Environment:2:5:(Forward):0:1 Declare Sub Initialize Declare Sub HandleChangePassword ( req As NotesDocument ) '++LotusScript Development Environment:2:5:(Declarations):0:2 '++LotusScript Development Environment:2:2:Initialize:1:10 Sub Initialize Dim s As New NotesSession Dim doc As NotesDocument Set doc = s.DocumentContext ' Handle Change Password Requests If ( doc.Form(0) = "ChPw" And doc.State(0) = "P" ) Then Call HandleChangePassword( doc ) End If End Sub '++LotusScript Development Environment:2:2:HandleChangePassword:3:8 ' Handle any Change Password requests that come in. Sub HandleChangePassword ( req As NotesDocument ) Dim status As String On Error Goto Oops Call WriteInitialAgentData( req ) ' Certain rules: ' Old password must have been hashed. If Not IsPasswordOK( req.OldPassword(0) ) Then req.AgentStatus = "Old password ill-formed" Goto Done End If ' New password must have been hashed. If Not IsPasswordOK( req.NewPassword(0) ) Then req.AgentStatus = "New password ill-formed" Goto Done End If ' Name in the request must match the name in the parent document Dim docPerson As NotesDocument Set docPerson = GetPersonDocument( req.FullName(0), req.ParentDatabase ) ' This can only fail if something is very, very wrong -- e.g., someone's trying to break in If docPerson Is Nothing Then req.AgentStatus = "No such user" Goto Done End If ' sanity check to make sure we found the right thing If req.FullName(0) <> docPerson.FullName(0) Then req.AgentStatus = "Request name doesn't match person name" Goto Done End If ' The password must match the person's password If req.OldPassword(0) <> docPerson.HTTPPassword(0) Then req.AgentStatus = "Old password is incorrect" Print "Your old password does not match your current password." Print "
Please go back and correct your password." Goto Done End If ' ' Ok: Find the user in the NAB. ' ' This is the NAB to use for people Dim nabPeople As NotesDatabase Set nabPeople = New NotesDatabase( "", nabPeoplePath$ ) Dim nabPerson As NotesDocument Set nabPerson = GetPersonDocument( req.FullName(0), nabPeople ) If nabPerson Is Nothing Then req.AgentStatus = "No such user" Goto Done End If ' Check that the old password matches. If req.OldPassword(0) <> nabPerson.HTTPPassword(0) Then req.AgentStatus = "Old password is incorrect" Print "Your old password does not match your current password." Print "
Please go back and correct your password." Goto Done End If ' OK: Set the new password in the NAB Call nabPerson.ReplaceItemValue( "HTTPPassword", req.NewPassword(0) ) Call nabPerson.Save( False, True ) ' Update the person document in this database. Call docPerson.ReplaceItemValue( "HTTPPassword", req.NewPassword(0) ) Call docPerson.Save( False, True ) Call EnsureUserInNAB( req.FullName(0) ) req.AgentStatus = "Successful" Print "Thank you " + docPerson.FirstName(0) + ". Your password has been changed." Print "

Lotus Domino Home Page" Done: On Error Goto Bail Call WriteFinalAgentData( req ) Exit Sub Oops: status$ = "Error " & Err() & " at line " & Erl() & ": " & Error() req.AgentStatus = status$ Resume Done Bail: status$ = "Error " & Err() & " at line " & Erl() & ": " & Error() Resume BailOut BailOut: End Sub O=Lotus Notes O=Lotus Notes PURSAFO |.:#U O=Lotus Notes CN=Lotus Notes Template Development/O=Lotus Notes PURSAFO Fde!f^^ +s1_sh $TITLE $AssistType $AssistLastRun $AssistDocCount $Comment $AssistFlags $AssistTrigger $AssistInfo $AssistQuery $AssistAction $AssistAction_Ex '++LotusScript Development Environment:2:5:(Options):0:74 '-------------------------------------------------------------------------------------- ' Domino Web Server sample account management app. ' Lotus Development Corp. '--------------------------------------------------------------------------------------- ' Note: this agent runs with the permissions of the Web User for ' all operations in this database, and with the permission of the ' user whose signature is on the agent for all operations in the PAB. Option Public Option Declare ' This script uses the utility functions in the Request Utilities script library. Use "Request Utilities" Use "Modifiable Constants" '++LotusScript Development Environment:2:5:(Forward):0:1 Declare Sub Initialize Declare Sub HandleNewAccount ( req As NotesDocument ) '++LotusScript Development Environment:2:5:(Declarations):0:2 '++LotusScript Development Environment:2:2:Initialize:1:10 Sub Initialize Dim s As New NotesSession Dim doc As NotesDocument Set doc = s.DocumentContext ' Handle New Account Request If ( doc.Form(0) = "NewAcc" And doc.State(0) = "P" ) Then Call HandleNewAccount( doc ) End If End Sub '++LotusScript Development Environment:2:2:HandleNewAccount:5:8 ' This sub handles the creation of new accounts. Person documents are created ' in both the NAB and in this database. The new user is also added to any groups ' that are needed. Sub HandleNewAccount ( req As NotesDocument ) Dim status As String On Error Goto Oops Call WriteInitialAgentData( req ) ' Password must have been hashed. If Not IsPasswordOK( req.NewPassword(0) ) Then req.AgentStatus = "Password ill-formed" Goto Done End If ' This is the NAB to use for creating people docs Dim nabPeople As NotesDatabase Set nabPeople = New NotesDatabase( "", nabPeoplePath$ ) ' This is the NAB to use for creating group docs Dim nabGroups As NotesDatabase Set nabGroups = New NotesDatabase( "", nabGroupsPath$ ) ' ' Ok: Check that the user doesn't already exist in the NAB ' Dim docPerson As NotesDocument Set docPerson = GetPersonDocument( req.FullName(0), nabPeople ) If Not (docPerson Is Nothing) Then req.AgentStatus = "Duplicate name" Print "

Registration not completed:

" Print "
The name " + req.FullName(0) + " is already in use. Please try registering again with a different name." Print "
To try again, go back to the previous page and re-enter the name fields." Print "

Lotus Domino Home Page" Goto Done End If ' Create the person document in the NAB Set docPerson = New NotesDocument( nabPeople ) docPerson.Form = "Person" docPerson.Type = "Person" docPerson.LastName = req.LastName docPerson.FirstName = req.FirstName docPerson.MiddleInitial = req.MiddleInitial docPerson.FullName = req.FullName docPerson.OfficePhoneNumber = req.OfficePhoneNumber docPerson.MailAddress = req.EMail docPerson.HTTPPassword = req.NewPassword Call docPerson.ComputeWithForm( False, False ) Call docPerson.Save( False, True ) ' Add the person to the proper groups Forall group In req.GroupsToJoin Call AddUserToGroup( req.FullName(0), group, nabGroups ) End Forall ' Create the person document in this database Set docPerson = New NotesDocument( req.ParentDatabase ) docPerson.Form = "Person" docPerson.LastName = req.LastName docPerson.FirstName = req.FirstName docPerson.MiddleInitial = req.MiddleInitial docPerson.FullName = req.FullName docPerson.OfficePhoneNumber = req.OfficePhoneNumber docPerson.HTTPPassword = req.NewPassword docPerson.Email = req.Email docPerson.Company = req.Company Call docPerson.ComputeWithForm( False, False ) Call docPerson.Save( False, True ) Call EnsureUserInNAB( req.FullName(0) ) req.AgentStatus = "Successful" Print "

Thank you " + req.FirstName(0) + ", for registering with the Domino site!

" Print "
You can now access all of the areas of the Domino site to help you setup and use Domino." Print "
Your user name is: " + req.FullName(0) Print "

Lotus Domino Home Page" Done: On Error Goto Bail Call WriteFinalAgentData( req ) Exit Sub Oops: status$ = "Error " & Err() & " at line " & Erl() & ": " & Error() req.AgentStatus = status$ Resume Done Bail: status$ = "Error " & Err() & " at line " & Erl() & ": " & Error() Resume BailOut BailOut: End Sub -P #$ O=Lotus Notes O=Lotus Notes PURSAFO |.:#U O=Lotus Notes CN=Lotus Notes Template Development/O=Lotus Notes PURSAFO Fde!f^^ $TITLE $AssistType $AssistLastRun $AssistDocCount $Comment $AssistFlags $AssistTrigger $AssistInfo $AssistQuery $AssistAction $AssistAction_Ex O=Lotus Notes O=Lotus Notes PURSAFO |.:#U O=Lotus Notes CN=Lotus Notes Template Development/O=Lotus Notes PURSAFO Fde!f^^ PP5#_W: $Readers $TITLE $Index $Formula $FormulaClass $Totals $ViewFormat $Comment O=Lotus Notes O=Lotus Notes PURSAFO |.:#U O=Lotus Notes CN=Lotus Notes Template Development/O=Lotus Notes PURSAFO Fde!f^^ $Readers $TITLE $Index $Formula $FormulaClass $ViewFormat $Comment O=Lotus Notes O=Lotus Notes PURSAFO |.:#U O=Lotus Notes CN=Lotus Notes Template Development/O=Lotus Notes PURSAFO Fde!f^^