<?xml version="1.0"?>

<st-source>



<class>
<name>FileStuff</name>
<environment>Smalltalk</environment>
<super>Core.Object</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>employees directory </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>ToyzInc</category>
<attributes>
<package>(none)</package>
</attributes>
</class>

<!-- -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -   -->


<methods>
<class-id>FileStuff class</class-id> <category>class initialization</category>

<body package="(none)">new
	^super new initialize</body>
</methods>

<!-- -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -   -->


<methods>
<class-id>FileStuff</class-id> <category>instance-creation</category>

<body package="(none)">initialize
	directory := 'c:\vw72nc\web\sandbox\db\'.
	employees := SortedCollection new.</body>
</methods>

<methods>
<class-id>FileStuff</class-id> <category>accessing</category>

<body package="(none)">getEmployees
  | empFile separator stream number level firstName lastName |
  empFile := (directory, 'employees.txt') asFilename.
  separator := $,.   "comma"
  stream := empFile readStream lineEndCRLF. 
  [stream atEnd] whileFalse: [
   number := (stream upTo: separator).
   level := (stream upTo: separator).
   lastName := (stream upTo: separator).
   firstName := (stream upTo: separator).
   stream upTo: (Character cr).
   employees add: ((Employee new) number: number level: level firstName: firstName lastName: lastName ). 
  ].  
  stream close.
  ^employees.</body>
</methods>
<new-page/>


<class>
<name>Toyz</name>
<environment>Smalltalk</environment>
<super>Core.Object</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>toyzData </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>ToyzInc</category>
<attributes>
<package>(none)</package>
</attributes>
</class>

<!-- -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -   -->


<methods>
<class-id>Toyz class</class-id> <category>class initialization</category>

<body package="(none)">new
	^super new initialize</body>
</methods>

<!-- -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -   -->


<methods>
<class-id>Toyz</class-id> <category>instance-creation</category>

<body package="(none)">initialize
    toyzData := FileStuff new.</body>
</methods>

<methods>
<class-id>Toyz</class-id> <category>accessing</category>

<body package="(none)">getEmployees
	^toyzData getEmployees.</body>
</methods>
<new-page/>


<class>
<name>Employee</name>
<environment>Smalltalk</environment>
<super>Core.Object</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars>number level firstName lastName </inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>ToyzInc</category>
<attributes>
<package>(none)</package>
</attributes>
</class>

<!-- -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -   -->


<methods>
<class-id>Employee class</class-id> <category>class initialization</category>

<body package="(none)">new
	^super new</body>
</methods>

<!-- -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -   -->


<methods>
<class-id>Employee</class-id> <category>accessing</category>

<body package="(none)">firstName
 ^firstName</body>

<body package="(none)">firstName: aName
 firstName := aName.</body>

<body package="(none)">lastName
 ^lastName</body>

<body package="(none)">lastName: aName
 lastName := aName.</body>

<body package="(none)">level
 ^level</body>

<body package="(none)">level: aLevel
  level := aLevel.</body>

<body package="(none)">number
	^number</body>

<body package="(none)">number: aNumber
  number := aNumber.</body>

<body package="(none)">number: aNumber level: aLevel firstName: aFirstName lastName: aLastName
 self firstName: aFirstName.
 self number: aNumber.
 self lastName: aLastName.
 self level: aLevel.</body>
</methods>

<methods>
<class-id>Employee</class-id> <category>printing</category>

<body package="(none)">printOn: aStream
	aStream nextPutAll: (lastName, ':', firstName).</body>
</methods>

<methods>
<class-id>Employee</class-id> <category>operators</category>

<body package="(none)">&lt;= aEmployee
	^self lastName &lt;= aEmployee lastName</body>
</methods>




















<class>
<name>ServletVerify5</name>
<environment>VisualWave</environment>
<super>VisualWave.HttpServlet</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars></inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>ToyzInc</category>
<attributes>
<package>(none)</package>
</attributes>
</class>

<methods>
<class-id>VisualWave.ServletVerify5</class-id> <category>serving</category>

<body package="(none)"> doPost: aRequest response: aResponse
| firstName lastName passWord goodLogin employees mySession |
firstName := aRequest anyFormValueAt: 'firstName'.
lastName := aRequest anyFormValueAt: 'lastName'.
passWord := aRequest anyFormValueAt: 'passWord'.

mySession := aRequest session.
mySession removeKey: 'signon'.
goodLogin := 'NO'.
employees := (Toyz new) getEmployees.
employees do:
[ :each |
(passWord = each number) ifTrue:
[
(lastName = each lastName) ifTrue:
[
(firstName = each firstName) ifTrue:
[
goodLogin := 'YES'.
mySession setAttribute: 'signon' to: each.
mySession timeout: 5.].
].
].
].

(goodLogin = 'YES')
ifTrue: [ aResponse redirectTo: '/teach/main5.ssp'. ]
ifFalse: [ aResponse redirectTo: '/teach/logon5.ssp?msg=111'.].</body>
</methods>
<new-page/>


<class>
<name>ServletVerify2</name>
<environment>VisualWave</environment>
<super>VisualWave.HttpServlet</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars></inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>ToyzInc</category>
<attributes>
<package>(none)</package>
</attributes>
</class>

<methods>
<class-id>VisualWave.ServletVerify2</class-id> <category>serving</category>

<body package="(none)"> doPost: aRequest response: aResponse
| firstName lastName passWord goodLogin employees mySession |
firstName := aRequest anyFormValueAt: 'firstName'.
lastName := aRequest anyFormValueAt: 'lastName'.
passWord := aRequest anyFormValueAt: 'passWord'.

goodLogin := 'NO'.
employees := (Toyz new) getEmployees.
employees do:
[ :each |
(passWord = each number) ifTrue:
[
(lastName = each lastName) ifTrue:
[
(firstName = each firstName) ifTrue:
[
goodLogin := 'YES'.
mySession := aRequest session.
mySession setAttribute: 'signon' to: each.
].
].
].
].

(goodLogin = 'YES')
ifTrue: [ aResponse redirectTo: '/teach/main2.ssp'. ]
ifFalse: [ aResponse redirectTo: '/teach/logon2.htm'.].</body>
</methods>
<new-page/>


<class>
<name>ServletVerify3</name>
<environment>VisualWave</environment>
<super>VisualWave.HttpServlet</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars></inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>ToyzInc</category>
<attributes>
<package>(none)</package>
</attributes>
</class>

<methods>
<class-id>VisualWave.ServletVerify3</class-id> <category>serving</category>

<body package="(none)"> doPost: aRequest response: aResponse
| firstName lastName passWord goodLogin employees mySession |
firstName := aRequest anyFormValueAt: 'firstName'.
lastName := aRequest anyFormValueAt: 'lastName'.
passWord := aRequest anyFormValueAt: 'passWord'.

goodLogin := 'NO'.
employees := (Toyz new) getEmployees.
employees do:
[ :each |
(passWord = each number) ifTrue:
[
(lastName = each lastName) ifTrue:
[
(firstName = each firstName) ifTrue:
[
goodLogin := 'YES'.
mySession := aRequest session.
mySession setAttribute: 'signon' to: each.
].
].
].
].

(goodLogin = 'YES')
 ifTrue: [ aResponse redirectTo: '/teach/main3.ssp'. ]
ifFalse: [ aResponse redirectTo: '/teach/logon3.ssp?msg=111'.].</body>
</methods>
<new-page/>


<class>
<name>ServletVerify1</name>
<environment>VisualWave</environment>
<super>VisualWave.HttpServlet</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars></inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>ToyzInc</category>
<attributes>
<package>(none)</package>
</attributes>
</class>

<methods>
<class-id>VisualWave.ServletVerify1</class-id> <category>serving</category>

<body package="(none)"> doPost: aRequest response: aResponse
| firstName lastName passWord goodLogin employees employeeCookie|
firstName := aRequest anyFormValueAt: 'firstName'.
lastName := aRequest anyFormValueAt: 'lastName'.
passWord := aRequest anyFormValueAt: 'passWord'.

goodLogin := 'NO'.
employees := (Toyz new) getEmployees.
employees do:
[ :each |
(passWord = each number) ifTrue:
[
(lastName = each lastName) ifTrue:
[
(firstName = each firstName) ifTrue:
[
goodLogin := 'YES'.
employeeCookie := HTTPCookie named: 'employee' value: (each firstName, ' ', each lastName).
employeeCookie expireAfterDays: 90.
aResponse addCookie: employeeCookie.
].
].
].
].

(goodLogin = 'YES')
ifTrue: [ aResponse redirectTo: '/teach/main1.ssp'. ]
ifFalse: [ aResponse redirectTo: '/teach/logon1.htm'.].</body>
</methods>
<new-page/>


<class>
<name>ServletVerify4</name>
<environment>VisualWave</environment>
<super>VisualWave.HttpServlet</super>
<private>false</private>
<indexed-type>none</indexed-type>
<inst-vars></inst-vars>
<class-inst-vars></class-inst-vars>
<imports></imports>
<category>ToyzInc</category>
<attributes>
<package>(none)</package>
</attributes>
</class>

<methods>
<class-id>VisualWave.ServletVerify4</class-id> <category>serving</category>

<body package="(none)"> doPost: aRequest response: aResponse
| firstName lastName passWord goodLogin employees mySession |
firstName := aRequest anyFormValueAt: 'firstName'.
lastName := aRequest anyFormValueAt: 'lastName'.
passWord := aRequest anyFormValueAt: 'passWord'.

goodLogin := 'NO'.
employees := (Toyz new) getEmployees.
employees do:
[ :each |
(passWord = each number) ifTrue:
[
(lastName = each lastName) ifTrue:
[
(firstName = each firstName) ifTrue:
[
goodLogin := 'YES'.
mySession := aRequest session.
mySession setAttribute: 'signon' to: each.
].
].
].
].

(goodLogin = 'YES')
 ifTrue: [ aResponse redirectTo: '/teach/main4.ssp'. ]
ifFalse: [ aResponse redirectTo: '/teach/logon4.ssp?msg=111'.].</body>
</methods>















</st-source>

