* Refactor authentication to allow for OpenID Connect
The authentication class has been refactored to separate the `validate` function for the method `create_user_session`. This is needed for the OpenID Connect module to authenticate a user without going through the process of all authentication plugins. Only the function `check_user_cidr` has been rewritten to use a single loop instead of a double-loop.
Due to the fact that create_user_function is public, the $result associative array is checked to ensure the required fields are present and the UUID fields are valid UUIDs. Further checking could be done against the database to ensure the UUIDs exist but this has been suppressed at this time because database queries would be required.
* Database class modified to allow for login banners for OpenID Connect
The database class is responsible for creating the view for login. The OpenID application required banners to be present so that any OpenID Connect authentication mechanism could be used. Each banner displayed has the properties of: name, image, alt, and url. The name is the class name of the authentication plugin. This will match the action in the URL. The image is the image banner used for the login. The alt is the alternate text used for screen readers. Each authenticator is responsible for providing each of the field values.
* Added PHPDocs for the check_cidr function
* Add backwards compatibility for PHP versions below 8
* Remove get_banner_alt
* Update check_cidr to allow cidr array
* Update authentication.php
* Update functions.php
* Update authentication.php
* Add a deleted messages option to voicemail.
Messages are only deleted after a certain amount of time instead of immediately.
The queue can be turned off or on with default setting "use_deletion_queue" in the "voicemail" category.
Changed deleted phrase and add a deleted messages count phrase
Added a program to delete messages that are due for deletion. Also small changes to phrases.
* Added a remove_deleted_messages function that runs on voicemail main menu login. With this method the deletion queue is handled per mailbox vs system wide as in the cron triggered script. It also allows to adjust the retention hours on a per domain basis.
* Fix bug in remove_deleted_messages SQL that caused it too fail.
* Update app_config.php
* Update remove_deleted_messages.lua
* Fix a bug that hangs the call on vm login if there is a deleted message to remove.
When a setting is modified, the settings cache can be reloaded allowing the setting that was modified or added to take immediate effect. The call to allow any other clear cache methods to be called will allow any new features to have their settings also take effect. The settings are first cleared though so that any of the other classes that may require updated settings to work with, ensure that they have the newest default setting values.
* Fix plugin class name mismatch in auto loader
When matching the file name of the plugins in the authentication plugin folder they do not match. This causes auto loader not to find and load the class.
* Update auto_loader.php
---------
Co-authored-by: FusionPBX <markjcrane@gmail.com>