(request fieldsHasKey: 'password')
	ifTrue: [(page settingsAt: 'lock' ifAbsent: [false])
		ifTrue: [(page passwordMatches: request response: response shelf: shelf book: book)
			ifTrue: ["Password Matches"
				page
					forbidWriting;
					time: (Time now);
					date: (Date today);
					user: 'unknown';
					text: page text;
					settingsAt: 'lock' put: false;
					settingsRemove: 'lockPassword'.
				[page
					user: (shelf formatPrivAddress: 'getIPName' request: request response: response);
					backup;
					write;
					permitWriting] fork.
				book formatPageTemplate: 'unlockSuccess' request: request response: response shelf: shelf page: page]
			ifFalse: ["Try Again"
				book formatPageTemplate: 'unlockFailed' request: request response: response shelf: shelf page: page]]
		ifFalse: [((request fieldsKey: 'password' ifAbsent: [true]) = (request fieldsKey: 'passwordcheck' ifAbsent: [false]))
			ifTrue: [
				page
					forbidWriting;
					time: (Time now);
					date: (Date today);
					user: 'unknown';
					text: page text;
					settingsAt: 'lock' put: true.
				((request fieldsKey: 'password') = (book modulesAt: 'lockPassword'))
					ifFalse: [page settingsAt: 'lockPassword' put: (request fieldsKey: 'password')].
				[page
					user: (shelf formatPrivAddress: 'getIPName' request: request response: response);
					backup;
					write;
					permitWriting] fork.
				book formatPageTemplate: 'lockSuccess' request: request response: response shelf: shelf page: page]
			ifFalse: [book formatPageTemplate: 'lockFailed' request: request response: response shelf: shelf page: page]]]
	ifFalse: [(page settingsAt: 'lock' ifAbsent: [false])
		ifTrue: [book formatPageTemplate: 'unlock' request: request response: response shelf: shelf page: page]
		ifFalse: [book formatPageTemplate: 'lock' request: request response: response shelf: shelf page: page]]