Blob Blame History Raw
diff --git a/classes/class_auth.php b/classes/class_auth.php
index 4ca4335..72ad9a9 100644
--- a/classes/class_auth.php
+++ b/classes/class_auth.php
@@ -46,22 +46,14 @@ function login($username, $password)
     {
         global $config, $db;
 
-        // Get authentication method
-        $method = $config->auth_method;
+        // Get authentication method callback
+        $callback = array($this, "authenticate_{$config->auth_method}");
 
-        // Check if the auth method is implemented
-        if (method_exists($this, "authenticate_{$method}"))
+        // Execute the method if it exists
+        if (is_callable($callback))
         {
-            // Create a new session
             $this->create_session();
-
-            // Generate the delegate and execute the method
-            $delegate = '$auth_status = $this->authenticate_' . $method .
-                        '("' . $username . '", "' . $password . '");';
-            eval($delegate);
-
-            // Return the authentication status returned by the delegate
-            return $auth_status;
+            return call_user_func($callback, $username, $password);
         }
 
         // Method not implemented, invalidate user