. * * @link https://www.librenms.org * * @copyright 2017 Tony Murray * @author Tony Murray */ namespace LibreNMS\Authentication; use LibreNMS\Config; use LibreNMS\Interfaces\Authentication\Authorizer; abstract class AuthorizerBase implements Authorizer { protected static $HAS_AUTH_USERMANAGEMENT = false; protected static $CAN_UPDATE_USER = false; protected static $CAN_UPDATE_PASSWORDS = false; protected static $AUTH_IS_EXTERNAL = false; public function canUpdatePasswords($username = '') { return static::$CAN_UPDATE_PASSWORDS; } public function canManageUsers() { return static::$HAS_AUTH_USERMANAGEMENT; } public function addUser($username, $password, $level = 0, $email = '', $realname = '', $can_modify_passwd = 0, $description = '') { //not supported by default return false; } public function deleteUser($user_id) { //not supported by default return false; } public function canUpdateUsers() { return static::$CAN_UPDATE_USER; } public function updateUser($user_id, $realname, $level, $can_modify_passwd, $email) { //not supported by default return false; } public function authIsExternal() { return static::$AUTH_IS_EXTERNAL; } public function getExternalUsername() { return $_SERVER[Config::get('http_auth_header')] ?? $_SERVER['PHP_AUTH_USER'] ?? null; } }