meta data for this page
  •  
Translations of this page:

As of version XX of phpList, authentication can be provided by a plugin.

You can check the phpListAdminAuthentication plugin in the admin directory to see the default one.

Below is a skeleton class. Not all methods need to be implemented, but defaulting them to something sensible will be useful.

class myCustomPhpListAdminAuthentication extends phplistPlugin {
  public $name = 'your plugin name';
  public $version = 0.1;
  public $authors = 'Your name';
  public $description = 'Provides authentication to phpList using .... ';
  public $authProvider = true;

  /**
   * 
   * validateLogin, verify that the login credentials are correct
   * 
   * @param string $login the login field
   * @param string $password the password
   * 
   * @return array 
   *    index 0 -> false if login failed, index of the administrator if successful
   *    index 1 -> error message when login fails
   * 
   * eg 
   *    return array(5,'OK'); // -> login successful for admin 5
   *    return array(0,'Incorrect login details'); // login failed
   * 
   */ 
  public function validateLogin($login,$password) 
  {

    return array(0,s("Login failed"));
  }

  /**
   * 
   * validateAccount, verify that the logged in admin is still valid
   * 
   * this allows verification that the admin still exists and is valid
   * 
   * @param int $id the ID of the admin as provided by validateLogin
   * 
   * @return array 
   *    index 0 -> false if failed, true if successful
   *    index 1 -> error message when validation fails
   * 
   * eg 
   *    return array(1,'OK'); // -> admin valid
   *    return array(0,'No such account'); // admin failed
   * 
   */ 
  public function validateAccount($id) 
  {
    return array(1,"OK");
  }



  /**
   * adminName
   * 
   * Name of the currently logged in administrator
   * Use for logging, eg "subscriber updated by XXXX"
   * and to display ownership of lists
   * 
   * @param int $id ID of the admin
   * 
   * @return string;
   */
  public function adminName($id) 
  {
  }
  
  /**
   * adminEmail
   * 
   * Email address of the currently logged in administrator
   * used to potentially pre-fill the "From" field in a campaign
   * 
   * @param int $id ID of the admin
   * 
   * @return string;
   */
  public function adminEmail($id) 
  {
  }    

  /**
   * adminIdForEmail
   * 
   * Return matching admin ID for an email address
   * used for verifying the admin email address on a Forgot Password request
   * 
   * @param string $email email address 
   * 
   * @return ID if found or false if not;
   */
  public function adminIdForEmail($email) 
  { 
  } 
  
  /**
   * isSuperUser
   * 
   * Return whether this admin is a super-admin or not
   * 
   * @param int $id admin ID
   * 
   * @return true if super-admin false if not
   */
  public function isSuperUser($id) 
  {
  }

  /**
   * listAdmins
   * 
   * Return array of admins in the system
   * Used in the list page to allow assigning ownership to lists
   * 
   * @param none
   * 
   * @return array of admins
   *    id => name
   */
  function listAdmins() 
  {
  }
   
  

  
}