Sorry, previously sent old version of patch that does not work.

Here is the right patch.
--- davical-0.9.9.4.orig/inc/HTTPAuthSession.php
+++ davical-0.9.9.4/inc/HTTPAuthSession.php
@@ -215,6 +215,14 @@
   function CheckPassword( $username, $password ) {
     global $c;
 
+    if ( $usr = getUserByName($username) &&
+	 ( !isset($c->authenticate_hook) || isset($c->authenticate_hook['optional']) && $c->authenticate_hook['optional'] ) )  {
+      dbg_error_log( "BasicAuth", ":CheckPassword: Name:%s, Pass:%s, File:%s, Active:%s", $username, $password, $usr->password, ($usr->active?'Yes':'No') );
+      if ( $usr->active && session_validate_password( $password, $usr->password ) ) {
+        return $usr;
+      }
+    }
+
     if ( isset($c->authenticate_hook) && isset($c->authenticate_hook['call']) && function_exists($c->authenticate_hook['call']) ) {
       /**
       * The authenticate hook needs to:
@@ -239,12 +247,6 @@
       }
     }
 
-    if ( $usr = getUserByName($username) ) {
-      dbg_error_log( "BasicAuth", ":CheckPassword: Name:%s, Pass:%s, File:%s, Active:%s", $username, $password, $usr->password, ($usr->active?'Yes':'No') );
-      if ( $usr->active && session_validate_password( $password, $usr->password ) ) {
-        return $usr;
-      }
-    }
     return false;
   }
 

Reply via email to