X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2FPassword_Mixin.pm;h=23e1887dd53787cd905432ac4b70ba1d29fe7dde;hb=4d2467d2b8c2134f8cab6907c675a9c4f56472ed;hp=0f75960f7501d93e5866ff6c43e0ec31ca574acb;hpb=6bfd3e59317994ac1911988109fc6add0cf87f13;p=freeside.git diff --git a/FS/FS/Password_Mixin.pm b/FS/FS/Password_Mixin.pm index 0f75960f7..23e1887dd 100644 --- a/FS/FS/Password_Mixin.pm +++ b/FS/FS/Password_Mixin.pm @@ -35,7 +35,7 @@ message on failure, an empty string on success. This MUST NOT be called from check(). It should be called by the office UI, self-service ClientAPI, or other I code that processes a password change, and only if the user has taken some action with the intent -of changing the password. +of setting the password. =cut @@ -215,6 +215,26 @@ sub insert_password_history { } +=item delete_password_history; + +Removes all password history records attached to this object, in preparation +to delete the object. + +=cut + +sub delete_password_history { + my $self = shift; + my @records = qsearch('password_history', { + $self->password_history_key => $self->get($self->primary_key) + }); + my $error = ''; + foreach (@records) { + $error ||= $_->delete; + } + return $error . ' (clearing password history)' if $error; + ''; +} + =item _blowfishcrypt PASSWORD For internal use: takes PASSWORD and returns a new @@ -234,6 +254,29 @@ sub _blowfishcrypt { =back +=head1 CLASS METHODS + +=over 4 + +=item pw_set + +Returns the list of characters allowed in random passwords. This is now +hardcoded. + +=cut + +sub pw_set { + + # ASCII alphabet, minus easily confused stuff (l, o, O, 0, 1) + # and plus some "safe" punctuation + split('', + 'abcdefghijkmnpqrstuvwxyzABCDEFGHIJKLMNPQRSTUVWXYZ23456789#.,[]-_=+' + ); + +} + +=back + =head1 SEE ALSO L