* Use Laravel for authentication
Support legacy auth methods
Always create DB entry for users (segregate by auth method)
Port api auth to Laravel
restrict poller errors to devices the user has access to
Run checks on every page load. But set a 5 minute (configurable) timer.
Only run some checks if the user is an admin
Move toastr down a few pixels so it isn't as annoying.
Fix menu not loaded on laravel pages when twofactor is enabled for the system, but disabled for the user.
Add two missing menu entries in the laravel menu
Rewrite 2FA code
Simplify some and verify code before applying
Get http-auth working
Handle legacy $_SESSION differently. Allows Auth::once(), etc to work.
* Fix tests and mysqli extension check
* remove duplicate Toastr messages
* Fix new items
* Rename 266.sql to 267.sql
We have noticed that some Firefox password managers try to autocomplete AuthUser, AuthPass and CryptoPass with user credentials. This can lead to a security issue as the credentials of users are stored in plaintext inside the LibreNMS database.
The autocomplete="off" should disable this behaviour.
DO NOT DELETE THIS TEXT
#### Please note
> Please read this information carefully. You can run `./scripts/pre-commit.php` to check your code before submitting.
- [ ] Have you followed our [code guidelines?](http://docs.librenms.org/Developing/Code-Guidelines/)
#### Testers
If you would like to test this pull request then please run: `./scripts/github-apply <pr_id>`, i.e `./scripts/github-apply 5926`
* Better sanity check of hostname when adding device.
* Style fix.
* clean() before hostname validity check. IP::isValid to support IPv6 addresses.
* Even more checks to catch invalid input.
* Long if-else, better error message.
* Code re-arranging
* Added support for ping only devices.
* Renamed sql-schema/206 to 207.
* Discovery tried to detect the OS when it shouldn't.
* Updated db_schema.yaml
* Added ping icon.
* Don't show unused graphs and tabs when SNMP is disabled.
* Allow the user to specify OS of ping only devices.
* Removing custom OS now changes it to 'ping'.
* Removed unnecessary use of mres().
* UI select box for SNMP enable/disable.
* Hide device_ping_perf if ping is disable on device.
* Fixed SNMP settings update status messages.
* Added functionality to add ping only devices via the web ui.
* Added ping only option to addhost.php
* Added ping only support to snmp-scan.py
* Moved sql 208 to 211
* Fixed scrutinizer issues.
* Fixed broken ossearch.
* Added ping only support to the API.
* Updated API doc.
* Added (optional) to OS and hardware description. Hid Port Settings, Applications, Modules, Storage, Processors, Memory and Components from the edit menu
* Style fix.
* Updated ping icon.
* clean() instead of mres(). More escaping. Better help in snmp-scan.py and addhost.php
* Fixed scrutinizer issue.
* Always try SNMP in snmp-scan.py, new option for it in addhost.php. Slice instead of chunk in ajax_ossuggest.php. Other minor style changes.
* Updated sql modifications to insert the new column in the same place as in db_schema.yaml.
* Implement an autoloader
When cleaning up classes for psr2, things got a bit unwieldy, so I implemented a class autoloader.
I created a PSR-0 compliant LibreNMS directory and moved all classes there that made sense.
Implemented LibreNMS\ClassLoader which supports adding manual class mappings
This reduces the file includes needed and only loads classes when needed.
* Add teh autoloader to graph.php
* Add a small bit of docs
Fix incomplete class in includes/discovery/functions.inc.php
Use exceptions for addHost()
Gets rid of silly mixed return and only returns the device_id. Throwing an exception if we run into any issues.
Slightly modifies api add host output again to include device_id
Update addHost() to return either device_id or a string
modify print_error(), print_message() to allow for $quiet variable
Only call addHost() once in addhost.php, if the snmp version isn't set, addHost will cope
Fix up snmp-scan.php and discovery-protocols.inc.php to detect when a device already exists
change in ip_exists() to make it more readable
This adds a '-p' switch to addhost.php and a select box to the WebUI to
set the port association mode for newly added devices.
Signed-off-by: Maximilian Wilhelm <max@rfc2324.org>