]> wagnertech.de Git - mfinanz.git/blobdiff - SL/Auth.pm
Form::init_template gibt immer das Template-Objekt zurück
[mfinanz.git] / SL / Auth.pm
index 76414e877ba01980d8ccedbc95fce8036535323b..365ee2323bf2b55e15ed095e4dc89e8f72398316 100644 (file)
@@ -165,8 +165,12 @@ sub authenticate {
 sub store_credentials_in_session {
   my ($self, %params) = @_;
 
-  $params{password} = SL::Auth::Password->hash_if_unhashed(login => $params{login}, password => $params{password})
-    unless $self->{authenticator}->requires_cleartext_password;
+  if (!$self->{authenticator}->requires_cleartext_password) {
+    $params{password} = SL::Auth::Password->hash_if_unhashed(login             => $params{login},
+                                                             password          => $params{password},
+                                                             look_up_algorithm => 1,
+                                                             auth              => $self);
+  }
 
   $self->set_session_value(login => $params{login}, password => $params{password});
 }
@@ -177,6 +181,19 @@ sub store_root_credentials_in_session {
   $self->set_session_value(rpw => SL::Auth::Password->hash_if_unhashed(login => 'root', password => $rpw));
 }
 
+sub get_stored_password {
+  my ($self, $login) = @_;
+
+  my $dbh            = $self->dbconnect;
+
+  return undef unless $dbh;
+
+  my $query             = qq|SELECT password FROM auth."user" WHERE login = ?|;
+  my ($stored_password) = $dbh->selectrow_array($query, undef, $login);
+
+  return $stored_password;
+}
+
 sub dbconnect {
   $main::lxdebug->enter_sub(2);
 
@@ -376,8 +393,14 @@ sub can_change_password {
 sub change_password {
   $main::lxdebug->enter_sub();
 
-  my $self   = shift;
-  my $result = $self->{authenticator}->change_password(@_);
+  my ($self, $login, $new_password) = @_;
+
+  my $result = $self->{authenticator}->change_password($login, $new_password);
+
+  $self->store_credentials_in_session(login             => $login,
+                                      password          => $new_password,
+                                      look_up_algorithm => 1,
+                                      auth              => $self);
 
   $main::lxdebug->leave_sub();