Sympa is an open-source mailling list software available at https://www.sympa.org/.
The module allow to delegate the authentication of the user by the Sympa server, in a specific mailling list.
$auth = new authsympa (); $auth->wsdl = "https://lists.domain.tld/sympa/wsdl"; $auth->list = "email@example.com"; $auth->connect (); var_dump ($auth->authentication ("firstname.lastname@example.org", "Pa$$word!"));
User authentication against SYMPA server Sympa is a mailling list server. It can handle authentication with - a username (a email adress) - a password - a list to check if the user is recorded in - a Sympa SOAP server WSDL - the part of list which should be test : subscriber, owner, editor It use the SOAP protocol. So the PHP SOAP library is needed and the network must be open between the Web server and the Sympa server. POC : $auth = new authsympa (); $auth->wsdl = "https://lists.domain.tld/sympa/wsdl"; $auth->list = "email@example.com"; $auth->connect (); var_dump ($auth->authentication ("firstname.lastname@example.org", "Pa$$word!"));
The application name
Function of the user in the mailling list can be subscriber, owner, editor
Mailling list to be checked if user is present
URL of the WSDL Sympa server
Check if the SOAP module is available in PHP
Try to authenticate the email/password of the user @param string $email Email to authenticate @param string $password Password to authenticate
Method to change the password @param string $oldpassword The old password (to check if the user have the rights to change the password) @param string $newpassword The new password to be recorded
Connect to the Sympa server
Return all the parameters recorded for the authenticate user
List all the users available in the database Return firstname, lastname, mail, with mail is an array
Method to disconnect the authenticated user
Method to overwrite the password (without oldpassword check) Must be reserved to the administrators. For the users, use changepassword method @param string $email the user identifier to select @param string $newpassword The new password to be recorded
Display the authentication page The message is displayed to the user in case of error The url is the caller url to go back if authentication is correct
@param string $baseURLThe URL base to use for the links
@param string|null $messageMessage to display to the user
@param string|null $urlURL to go back after successful authentication
@param mixed $alreadyAuthIf the user is already authenticated, the value will be displayed if the user is coming on the page.