A new version of Monticello.impl was added to project Monticello Public: http://www.squeaksource.com/mc/Monticello.impl-kph.642.mcz
==================== Summary ====================
Name: Monticello.impl-kph.642 Author: kph Time: 22 March 2009, 9:23:46 pm UUID: 98cc7a71-ca89-4f02-82ef-1812b691aeb2 Ancestors: Monticello.impl-kph.639
System-PasswordManager is now a separate package
=============== Diff against Monticello.impl-kph.639 ===============
Item was changed: + ----- Method: MCRepository>>heldVersionInfosClearCache (in category 'versions') ----- - ----- Method: MCRepository>>heldVersionInfosClearCache (in category '') ----- heldVersionInfosClearCache!
Item was changed: ----- Method: MCSMReleaseRepository>>password (in category 'as yet unclassified') ----- password + ^(self systemPasswordManager queryPasswordAt: self squeakMapUrl user: user) ifNil:[^''].! - ^(MCPasswordManager default queryPasswordAt: self squeakMapUrl user: user) ifNil:[^''].!
Item was changed: ----- Method: MCFtpRepository>>flushPasswords (in category 'required') ----- flushPasswords + self systemPasswordManager passwordAt: 'ftp://',host user: user put: nil.! - MCPasswordManager default passwordAt: 'ftp://',host user: user put: nil.!
Item was changed: + ----- Method: MCMergeResolutionRequest>>defaultAction (in category 'as yet unclassified ') ----- - ----- Method: MCMergeResolutionRequest>>defaultAction (in category 'as yet unclassified') ----- defaultAction ^ (MCMergeBrowser new merger: merger; label: messageText) showModally!
Item was changed: ----- Method: MCFtpRepository>>password: (in category 'as yet unclassified') ----- password: passwordString | pwd | passwordString isEmpty ifTrue:[pwd := nil] ifFalse:[pwd := passwordString]. + self systemPasswordManager passwordAt: 'ftp://',host user: user put: pwd. - MCPasswordManager default passwordAt: 'ftp://',host user: user put: pwd. !
Item was changed: ----- Method: MCFtpRepository>>password (in category 'as yet unclassified') ----- password + ^(self systemPasswordManager queryPasswordAt: 'ftp://',host user: user) ifNil:[^''].! - ^(MCPasswordManager default queryPasswordAt: 'ftp://',host user: user) ifNil:[^''].!
Item was changed: + ----- Method: MCRepository>>allVersionNames (in category 'versions') ----- - ----- Method: MCRepository>>allVersionNames (in category '') ----- allVersionNames "method for comapibility with MCConfigurations" ^ self heldVersionNames!
Item was added: + ----- Method: MCRepository>>systemPasswordManager (in category 'interface') ----- + systemPasswordManager + + ^ PasswordManager default!
Item was changed: ----- Method: MCHttpRepository>>password: (in category 'as yet unclassified') ----- password: passwordString | pwd | passwordString isEmpty ifTrue:[pwd := nil] ifFalse:[pwd := passwordString]. + self systemPasswordManager passwordAt: self locationHost user: self user put: pwd.! - MCPasswordManager default passwordAt: self locationHost user: self user put: pwd.!
Item was changed: + ----- Method: MCVersionInspector>>changes (in category 'as yet unclassified ') ----- - ----- Method: MCVersionInspector>>changes (in category 'as yet unclassified') ----- changes
(MCPatchBrowser forPatch: self version changes) showLabelled: 'Changes from ', self version info name!
Item was changed: + ----- Method: MCRepository>>heldVersionNames (in category 'versions') ----- - ----- Method: MCRepository>>heldVersionNames (in category '') ----- heldVersionNames ^ self heldVersionInfos collect: [:v | v versionName ]!
Item was changed: ----- Method: MCHttpRepository>>asCreationTemplate (in category 'as yet unclassified') ----- asCreationTemplate ^self class creationTemplateLocation: location user: user password: ( + (self systemPasswordManager passwordAt: location user: user) ifNil:[''] - (MCPasswordManager default passwordAt: location user: user) ifNil:[''] )!
Item was changed: ----- Method: MCHttpRepository>>flushPasswords (in category 'required') ----- flushPasswords + self systemPasswordManager + passwordAt: self locationHost user: user put: nil.! - MCPasswordManager default passwordAt: self locationHost user: user put: nil.!
Item was changed: ----- Method: MCSMReleaseRepository>>flushPasswords (in category 'as yet unclassified') ----- flushPasswords + self systemPasswordManager passwordAt: self squeakMapUrl user: user put: nil! - MCPasswordManager default passwordAt: self squeakMapUrl user: user put: nil!
Item was changed: ----- Method: MCHttpRepository>>password (in category 'as yet unclassified') ----- password self user isEmpty ifTrue: [^'']. self user = 'squeak' ifTrue: [ ^ 'squeak' ]. + ^(self systemPasswordManager queryPasswordAt: self locationHost user: self user) ifNil:[^'']! - ^(MCPasswordManager default queryPasswordAt: self locationHost user: self user) ifNil:[^'']!
Item was changed: ----- Method: MCSMReleaseRepository>>password: (in category 'as yet unclassified') ----- password: passwordString | pwd | passwordString isEmpty ifTrue:[pwd := nil] ifFalse:[pwd := passwordString]. + self systemPasswordManager passwordAt: self squeakMapUrl user: user put: pwd.! - MCPasswordManager default passwordAt: self squeakMapUrl user: user put: pwd.!
Item was removed: - ----- Method: MCPasswordManager>>passwordAt:user:put: (in category 'queries') ----- - passwordAt: location user: user put: password - "Store the password under the given key" - | file tokens pwd in out done sz pwdFile | - user ifNil:[ ^ self ]. - (location indexOf: Character space) = 0 - ifFalse:[^self error: 'Key must not contain spaces']. - (user indexOf: Character space) = 0 - ifFalse:[^self error: 'Key must not contain spaces']. - password ifNotNil:[ - pwd := (Base64MimeConverter mimeEncode: password readStream) contents. - ]. - pwdFile := user,'.pwd'. - file := [self directory readOnlyFileNamed: pwdFile] on: Error do:[:ex| ex return: nil]. - file ifNotNil:[ - [in := file contents readStream] ensure:[file close]. - ] ifNil:[in := String new readStream]. - out := WriteStream on: (String new: 1000). - - done := pwd == nil. "if clearing passwords, we're done already" - [in atEnd] whileFalse:[ - tokens := in nextLine findTokens: ' '. - tokens size = 2 ifTrue:[ - (tokens first match: location) - ifTrue:[pwd ifNotNil:[out nextPutAll: location; space; nextPutAll: pwd; cr. done := true]] - ifFalse:[out nextPutAll: tokens first; space; nextPutAll: tokens last; cr]]]. - done ifFalse:[out nextPutAll: location; space; nextPutAll: pwd; cr]. - - file := [self directory forceNewFileNamed: pwdFile] on: Error do:[:ex| ex return: nil]. - file ifNil:[^nil]. - [file nextPutAll: out contents. - sz := file size] ensure:[file close]. - sz = 0 ifTrue:[self directory deleteFileNamed: pwdFile ifAbsent:[]]. - !
Item was removed: - Object subclass: #MCPasswordManager - instanceVariableNames: 'directory' - classVariableNames: 'Default' - poolDictionaries: '' - category: 'Monticello-Base-Repositories'! - - !MCPasswordManager commentStamp: '<historical>' prior: 0! - Simple password manager to avoid storing passwords in the image.!
Item was removed: - ----- Method: MCPasswordManager>>passwordAt:user: (in category 'queries') ----- - passwordAt: location user: user - "Answer the password stored under the given key, or nil if none can be found" - | file stream tokens pwdFile | - (location indexOf: Character space) = 0 - ifFalse:[^self error: 'Location must not contain spaces']. - (user indexOf: Character space) = 0 - ifFalse:[^self error: 'User name must not contain spaces']. - pwdFile := user,'.pwd'. - file := [self directory readOnlyFileNamed: pwdFile] on: Error do:[:ex| ex return: nil]. - file ifNil:[^nil]. - [stream := file contents readStream] ensure:[file close]. - [stream atEnd] whileFalse:[ - tokens := stream nextLine findTokens: ' '. - (tokens size = 2 and:[tokens first match: location]) ifTrue:[ - ^(Base64MimeConverter mimeDecode: tokens last as: String) - ]. - ]. - ^nil!
Item was removed: - ----- Method: MCPasswordManager>>queryPasswordAt:user: (in category 'queries') ----- - queryPasswordAt: location user: user - "Answer the password for the given user/location. - If the password is absent, query the user if interactive." - | pwd | - "search for existing password" - - pwd := self passwordAt: location user: user. - pwd ifNotNil:[^pwd]. - - pwd := FillInTheBlank requestPassword: 'Password for "', user, '" at ', location. - pwd isEmptyOrNil ifTrue:[^nil]. - (self confirm: 'Remember password for "', user, '" at ', location,'?') ifTrue:[ - self passwordAt: location user: user put: pwd. - ]. - ^pwd - - !
Item was removed: - ----- Method: MCPasswordManager class>>passwordAt:user:put: (in category 'accessing') ----- - passwordAt: location user: user put: password - ^self default passwordAt: location user: user put: password!
Item was removed: - ----- Method: MCPasswordManager>>directory (in category 'accessing') ----- - directory - "Answer the directory in which to find the passwords" - ^directory ifNil:[ExternalSettings assuredPreferenceDirectory]!
Item was removed: - ----- Method: MCPasswordManager>>editPasswords (in category 'editing') ----- - editPasswords - "Edit the passwords" - (self directory fileNamesMatching: '*.pwd') do:[:fName| - self editPasswordsIn: (self directory fullNameFor: fName). - ].!
Item was removed: - ----- Method: MCPasswordManager>>directory: (in category 'accessing') ----- - directory: aDirectory - "Indicate the directory in which to find the passwords" - directory := aDirectory!
Item was removed: - ----- Method: MCPasswordManager class>>queryPasswordAt:user: (in category 'accessing') ----- - queryPasswordAt: location user: user - ^self default queryPasswordAt: location user: user!
Item was removed: - ----- Method: MCPasswordManager class>>passwordAt:user: (in category 'accessing') ----- - passwordAt: location user: user - ^self default passwordAt: location user: user!
Item was removed: - ----- Method: MCPasswordManager class>>default (in category 'accessing') ----- - default - ^Default ifNil:[Default := self new]!
Item was removed: - ----- Method: MCPasswordManager class>>editPasswords (in category 'accessing') ----- - editPasswords - ^self default editPasswords!
Item was removed: - ----- Method: MCPasswordManager>>editPasswordsIn: (in category 'editing') ----- - editPasswordsIn: pwdFile - "Edit the passwords" - | file data | - file := FileStream readOnlyFileNamed: pwdFile. - data := file contents. - file close. - UIManager default edit: data label: pwdFile accept:[:text| - file := FileStream forceNewFileNamed: pwdFile. - file nextPutAll: text asString. - file close. - ]. - - !
packages@lists.squeakfoundation.org