Commit Graph

44 Commits

Author SHA1 Message Date
Tony Murray 00cd32f725 Device management fall back to http if https isn't available.
Adds a slight delay on management clicking, may be blocked by popup blocker...
2018-12-05 13:52:07 -06:00
Tony Murray 3e35ee0e7d Refactored and update Location Geocoding (#9359)
- Fix location so it is a regular database relation (this allows multiple devices to be accurately linked to one location and saves api calls)
- Parse coordinates from the location more consistently
- Add settings to webui
- ~~Used [PHP Geocoder](http://geocoder-php.org/), which has lots of backends and is well tested. (also includes reverse and geoip)~~
- Google Maps, Bing, Mapquest, and OpenStreetMap supported initially.
- Default to OpenStreetMap, which doesn't require a key.  They will liberally hand out bans if you exceed 1 query per second though.
- All other Geocoding APIs require an API key. (Google requires a credit card on file, but seems to be the most accurate)
- Update all (I think) sql queries to handle the new structure
- Remove final vestiges of override_sysLocation as a device attribute
- Update existing device groups and rules in DB
- Tested all APIs with good/bad location, no/bad/good key, and no connection.
- Cannot fix advanced queries that use location

This blocks #8868

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.

- [x] 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`
After you are done testing, you can remove the changes with `./scripts/github-remove`.  If there are schema changes, you can ask on discord how to revert.
2018-11-28 22:49:18 +00:00
Jellyfrog a31f477290 Show device "features" in correct column (#9366) 2018-10-25 05:58:04 -05:00
Tony Murray 71e5aac527 Fixed devices state filter when state = 0 (#9277)
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.

- [x] 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`
After you are done testing, you can remove the changes with `./scripts/github-remove`.  If there are schema changes, you can ask on discord how to revert.
2018-10-03 21:45:42 +01:00
Tony Murray 32a7c50189 Use Laravel authentication (#8702)
* 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
2018-09-11 07:51:35 -05:00
Tony Murray 7250376104 refactor: Don't access $_SESSION directly for Auth (#8513)
* Don't access $_SESSION directly for Auth

* fix style

* add property annotations
2018-04-07 21:55:28 +01:00
Maurice den Braber 9f5b42b028 webui: Allow full search on devices page (#8364)
* Update devices.inc.php

* Update devices.inc.php

* Replace $_POST with $vars

Better protection for SQL injection attempts; Need to verify other files for same issue.

* Fixed whitespace.

*sigh*

* More search options & sql injection fixes.

+Allow full search on devices page;
+Allow sysName search on alertlog page;
+Allow sysName search on alerts page;
+Allow sysName search on eventlog page;
+Allow sysName search on poll-log page;
+Allow sysName search on ports page;

*Replaced all occurrences of $_POST with $vars in librenms/html/includes/table. ($vars are sanity-checked).

* Whitespace fix

* Fixed $where & $param

* Add files via upload

* Whitespaces....

Sometimes you want'em, sometimes you hate'em.
2018-03-25 21:50:09 +01:00
Tony Murray 561846a44b fix: Fiedx issues with new config init (#8242)
* Fix non-config defaults

* update processConfig and remove file
2018-02-12 09:15:44 +00:00
Tom Sealey 2f6f99a330 feature: Added gateone link SSH support (#8189)
* adding gateone link

* Added gateone support, now checks config.php for settings

* adding gateone link

* Added gateone support, now checks config.php for settings

* fixed an incorrect url

* fixed syntax errors

* added new option to config.php, $config[gateone][use_librenms_user] is a boolean that inserts the logged in Librenms user to the SSH link if set to true

* removed code duplication

* removed hostbox-menu.inc.php
2018-02-10 20:51:26 +00:00
Aldemir Akpinar 5880f06780 webui: Added sysNames to pulldowns and the main page (#8137)
* Add dependency info for api

* webui: made dev dependency list more like devices page. Also added sysNames to pulldowns and the manin page

* Create common function for sysname display

* A better function name
2018-02-10 13:18:53 +00:00
crcro e81413ac61 webui: Added back devices sort by status (#8103)
* added back sort by status

* removed useless html style tags
2018-01-17 16:22:59 +00:00
crcro 7a0f8c02b6 webui: Devices table refresh (#7809)
* initial release

* added missing copyright

* update to match latest style

* removed status text column

* removed status text column

* fix overflow of options bar
2017-12-24 19:58:32 +00:00
Tony Murray 1cc0e7cd6d fix: Fixed empty group query for devices (#7760)
* fix: empty device group query

* fix: empty device group query
Optimize it a bit to use the relationship.
2017-11-19 21:54:09 +00:00
Neil Lathwood 34c35f3627 webui: Updated remaining display options where we do not show sysName if hostname is IP (#6585)
* webui: Updated remaining display options where we do not show sysName if hostname is IP

* renamed function + simplified
2017-05-05 06:25:58 -05:00
Tony Murray 4c0412b14d feature: Wireless Sensors Overhaul (#6471)
* feature: Wireless Sensors
Includes client counts for ios and unifi
Graphing could use some improvement.
Alerting and threshold ui not implemented

WIP: starting OO based wireless sensors.

Class based functionality working
remove old functional files
add schema file

discovery needs to be enabled, not polling

fix up schema

fix Unifi discovery not returning an array

Add some debug when discovering a sensor.
Fix style.

Add missing semicolin

Add a null object (Generic) for OS.
Fill out some phpdocs

Re-organized code
Each sensor type now has it's own discovery and polling interface
Custom polling tested with Unifi CCQ

Left to do:
Implement UI (Graphs and Custom thresholds)
Alerting
Testing

Fix event message text

Remove runDiscovery and runPolling from OS, they are unused and don't belong there.

Cleanups/docs

Missed this file.

Remove the requirement to fetch the current value to check validity.
Do that automatically if current is not specified
A few cleanups here and there

First pass at graphing.
device_ and wireless_ graphs added.

Add RouterOS support

Singleton OS instance isn't required right now.
Remove that to allow some memory to be freed.

Add wireless to the device list metrics.
Make all metrics clickable

Tweak graphs a bit

Implement limit configuration page.
Use sensors page as common code instead of duplicating.
Clean up some javascript interactions:  Allow enter on values to save. Cancel if update is not needed. Enable the clear custom button after setting a custom value.
Add some wireless alert rules to the library.

Add documentation.

Add unifi client counts by ssid in addition to radio.
Optimize Sensor polling a bit.

Add HP MSM clients support (for full controller)
Fix function accessibility

Formalize the discovery and poller interfaces.

Add Xirrus clients and noise floor
move module interfaces to a more appropriate place.
push caching code up to os, unsure about this do to the limitations

No point in selectively enabling wireless discovery.  We only discover if the device supports something.

Add RSSI, Power, and Rate.
Add these sensors for Ubnt Airos.
Clean up some copyrights.

Reduce the amount of files need to add new types.
Leave graph files for consistency and to allow customization.

Remove the old wifi clients graph completely.
ciscowlc should have improved counts (total and per-ssid)

Schema didn't get added.

Impelement the rest of the AirOS sensors
Reformat and re-organize the Airos.php class.

Add several UBNT AirFiber sensors

A few fixes add links to the section headers

Add HP MSM mibs.

* Schema file got dropped in rebase.

* Add wireless menu to view sensors across all devices.
Icons in the menu need help :/

* Add HeliOS, Mimosa, and Siklu support
Sensors added SNR + Noise

* Add power and utilization to Unifi

* Update polling to prefetch all sensor data in a few snmp requests as possible

* Add Extendair: tx+rx power, aggregate rate, frequency

* Add a check for duplicate sensors in discovery.  Just print an error for now.

* Add Bit Error Ratio (named error-ratio to allow for bit error rate to be added if needed)
Fix an incorrect link in the wireless sensors table

* Add error rate and change all bps and Hz to use si units

* Fixes to limits and frequency display

* Fix overview graph frequency display
A few decimal place tweaks

* Don't allow switching sensor and wireless-sensor graphs, it doesn't work.
Change individual distance graphs to use si units

* Go through the OS and make sure I got all the sensors I can (probably missed some still)
Because pollWirelessChannelAsFrequency() is generic and a little complex, so pull it up to OS.
Message to help developers adding supports that don't return an array from discover functions.

* Fix some issues

* Remove noise and signal for now at least
A couple more fixes
Add a notification

* Oopsie

* Bonus AirFiber sensors
2017-05-01 23:49:11 -05:00
Neil Lathwood 268d291c26 webui: Only show sysName once if force_ip_to_sysname is enabled #5600 (#5656)
* webui: Only show sysName once if force_ip_to_sysname is enabled #5600

* now also display IP (again) if sysName is used
2017-02-01 20:15:28 +00:00
Tony Murray da2c6c5d3c feature: support large vendor logos (#5573)
These are often wider than icons, with a fallback to icons if the logo is not present
Logos are stored in /html/images/logos
SVG is preferred for HiDPI
2017-01-24 22:16:01 +00:00
Richard Mayhew 47397d0083 webui: Updated icons to use Font Awesome (#5468) 2017-01-21 11:24:05 +00:00
Søren Rosiak cdef7885aa webui: Small Best Practice Fixes 2017-01-02 00:03:23 +00:00
Tony Murray a83e126b40 refactor: Remove inappropriate usages of truncate() (#5028)
Where truncate() is used as substr(), replace with substr()
2016-11-20 11:12:25 +00:00
crcro 5569884f7f webui: Updated devices view (#4700) 2016-10-16 15:58:48 +01:00
Tony Murray 8c639aa5a4 PSR2 Cleanup: /html edition
Travis tests for code conformance. Ignore warnings for now.
Fixed all errors, left most warnings.
2016-08-18 21:29:30 -05:00
Tony Murray 009840bf8a Store device group relationships in a pivot table. 2016-06-02 13:25:01 -05:00
Michael Nguyen 699c407072 Fix javascript bug with repeating sensors icon on devices page 2016-04-11 13:45:58 -07:00
Michael Nguyen 2c8ba538b8 Fix javascript bug with repeating sensors icon on devices page 2016-04-11 13:36:55 -07:00
Rosiak 3c8b9e5edf patch login & device pages 2015-10-11 15:52:18 +02:00
laf 11b708c102 Fixes issues with addresses having ' in 2015-08-09 21:17:54 +00:00
laf 3188a86eee Initialises $port_count if empty 2015-08-07 08:24:53 +00:00
laf 031a818c77 Removed references to location override 2015-07-20 16:52:33 +01:00
Job Snijders d8693f05ae Fix coding style part 2 2015-07-15 11:04:22 +02:00
laf 820afa6dbb Added logging of reason device was detected as down (icmp/snmp) 2015-06-22 22:11:02 +01:00
Mike Rostermund f8331ce8dd Fixed issue when truncating UTF-8 strings, fallback to old way if extension is not loaded. 2015-05-30 16:39:39 +02:00
Neil Lathwood 94f66c44bb Revert "Fixed issue when truncating UTF-8 strings." 2015-05-30 03:43:00 +01:00
Mike Rostermund 134ef3090b Fixed issue when truncating UTF-8 strings. 2015-05-29 15:33:11 +02:00
f0o fa170aa37b Fix bug with worded states in device-table 2015-05-27 16:07:09 +00:00
Freddie Cash 620a97b2c9 Search field parsing is slightly broken
Fix to allow searching based on Location and Device Type.  Without this fix, you can only search on one or the other, but not both.

See Issue 1098 for more info.
https://github.com/librenms/librenms/issues/1098
2015-05-21 08:40:31 -07:00
laf 189391d7bb Removed duplicated query 2015-05-13 18:58:15 +01:00
laf 3f4a010125 Fixed query which caused issues when no devices_perms existed 2015-05-13 18:42:51 +01:00
laf 902e61d132 Fixed SQL query to limit normal users view 2015-05-13 15:49:50 +01:00
laf 9d6f20ccf1 Another tweak to SQL query for devices 2015-05-05 23:54:36 +01:00
laf 1fdf271470 Added missing devices. for column reference 2015-05-05 12:54:25 +01:00
laf fa83e1ecea Fixed devices location filtering 2015-05-05 11:29:59 +01:00
laf 71f5f22387 Fixed loading.... issue when no data returned 2015-04-12 11:47:21 +01:00
laf b79b0b0d8f Updated devices table to use bootgrid 2015-04-08 21:17:48 +01:00