. * * @link https://www.librenms.org * @copyright 2017 Tony Murray * @author Tony Murray */ namespace LibreNMS\Authentication; use LibreNMS\Interfaces\Authentication\Authorizer; abstract class AuthorizerBase implements Authorizer { protected static $HAS_AUTH_USERMANAGEMENT = 0; protected static $CAN_UPDATE_USER = 0; protected static $CAN_UPDATE_PASSWORDS = 0; protected static $AUTH_IS_EXTERNAL = 0; public function canUpdatePasswords($username = '') { return static::$CAN_UPDATE_PASSWORDS; } public function changePassword($username, $newpassword) { //not supported by default return 0; } 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 0; } public function deleteUser($user_id) { //not supported by default return 0; } public function canUpdateUsers() { return static::$CAN_UPDATE_USER; } public function updateUser($user_id, $realname, $level, $can_modify_passwd, $email) { //not supported by default return 0; } public function authIsExternal() { return static::$AUTH_IS_EXTERNAL; } public function getExternalUsername() { if (isset($_SERVER['REMOTE_USER'])) { return $_SERVER['REMOTE_USER']; } elseif (isset($_SERVER['PHP_AUTH_USER'])) { return $_SERVER['PHP_AUTH_USER']; } return null; } }