'From etoys4.0 of 9 October 2008 [latest update: #2279] on 8 September 2009 at 8:02:45 pm'! "Change Set: ProjectDAV2-yo Date: 8 September 2009 Author: Yoshiki Ohshima Remember a password forever."! DAVServerDirectory subclass: #DAVMultiUserServerDirectory instanceVariableNames: 'setupSelector useDefaultAccount loggedIn origDirectory ' classVariableNames: '' poolDictionaries: '' category: 'DAVServerDirectory'! !DAVServerDirectory methodsFor: 'property access' stamp: 'yo 9/8/2009 19:03'! privateEntriesFor: aUrl | ret | client := DAVClient openUrl: aUrl. ret := [client propFind: #('getlastmodified' 'getcontentlength' 'resourcetype' ) depth: 1 label: nil] on: Exception do: [:ex | client close. (ex isKindOf: LoginFailedException) ifTrue: [ex outer]]. client lastResponseCode first = $2 ifFalse: [(LoginFailedException protocolInstance: client) signal]. ^ self parseDirectoryEntries: ret readStream! ! !DAVMultiUserServerDirectory methodsFor: 'as yet unclassified' stamp: 'yo 9/8/2009 19:52'! origDirectory: aString origDirectory := aString ! ! !DAVMultiUserServerDirectory methodsFor: 'as yet unclassified' stamp: 'yo 9/8/2009 18:15'! password user ifNil: [passwordHolder := nil. (HTTPLoginFailedException protocolInstance: DAVClient new) signal. ^ self]. passwordHolder ifNil: [passwordHolder _ Password new]. passwordHolder isString ifTrue: [^ passwordHolder]. ^ passwordHolder passwordFor: self "may ask the user"! ! !DAVMultiUserServerDirectory methodsFor: 'as yet unclassified' stamp: 'yo 9/8/2009 19:55'! setupPersonalDirectory: aString aString ifNil: [^ self]. directory := origDirectory, '/', 'public/accounts/', aString. altURL := server, directory. ! ! !FileList2 methodsFor: 'private' stamp: 'yo 9/8/2009 19:56'! setSelectedDirectoryTo: aFileDirectoryWrapper currentDirectorySelected _ aFileDirectoryWrapper. [self directory: aFileDirectoryWrapper withoutListWrapper] on: LoginFailedException do: [:ex | self inform: 'Login failed'. aFileDirectoryWrapper withoutListWrapper user: nil]. brevityState := #FileList. "self addPath: path." self changed: #fileList. self changed: #contents. self changed: #currentDirectorySelected.! ! !ReleaseBuilderSqueakland methodsFor: 'squeakland' stamp: 'yo 9/8/2009 19:57'! prepareReleaseImageForSqueakland "ReleaseBuilderSqueakland new prepareReleaseImageForSqueakland" self cleanupForSqueakland. self setupUpdateStreamForSqueakland. self setupServerDirectoryForSqueakland.! ! !ReleaseBuilderSqueakland methodsFor: 'squeakland' stamp: 'yo 9/8/2009 19:57'! setupServerDirectoryForSqueakland | d | Utilities authorName: nil. d _ DAVMultiUserServerDirectory on: 'http://squeakland.org/webdav/'. d altUrl: 'http://squeakland.org/webdav/'. d moniker: 'My Squeakland'. d acceptsUploads: true. d origDirectory: '/webdav'. d setupSelector: #setupPersonalDirectory:. ServerDirectory inImageServers at: 'My Squeakland' put: d. d _ DAVMultiUserServerDirectory on: 'http://squeakland.org/webdav/'. d altUrl: 'http://squeakland.org/webdav/'. d moniker: 'Squeakland Showcase'. d user: 'etoys'. d useDefaultAccount: true. d acceptsUploads: false. d instVarNamed: 'passwordHolder' put: 'kaeuqs'. ServerDirectory inImageServers at: 'Squeakland Showcase' put: d. ! ! DAVMultiUserServerDirectory removeSelector: #setup:! DAVServerDirectory subclass: #DAVMultiUserServerDirectory instanceVariableNames: 'setupSelector useDefaultAccount loggedIn origDirectory' classVariableNames: '' poolDictionaries: '' category: 'DAVServerDirectory'! "Postscript: ." Utilities authorName: nil. d _ DAVMultiUserServerDirectory on: 'http://squeakland.org/webdav/'. d altUrl: 'http://squeakland.org/webdav/'. d moniker: 'My Squeakland'. d acceptsUploads: true. d origDirectory: '/webdav'. d setupSelector: #setupPersonalDirectory:. ServerDirectory inImageServers at: 'My Squeakland' put: d. d _ DAVMultiUserServerDirectory on: 'http://squeakland.org/webdav/'. d altUrl: 'http://squeakland.org/webdav/'. d moniker: 'Squeakland Showcase'. d user: 'etoys'. d useDefaultAccount: true. d acceptsUploads: false. d instVarNamed: 'passwordHolder' put: 'kaeuqs'. ServerDirectory inImageServers at: 'Squeakland Showcase' put: d. !