287 Commits

Author SHA1 Message Date
957ecc2441 Locations UI and editing (#9480)
* Better handling of errors
Mapquest seems to return the center of the US on error.......

* Editable locations WIP

* Change to bootgrid ajax table WIP

* Graphs working, using handlebars
update js libs
add current location button

* remove sql query, change icon

* Add the map to the device view, only when gps is expanded.
Allow edit on device page, share js code

* fix chevron rotation, improve click area

* extra warning

* fix overview layout (remove containers)

* fix style

* fix html divs, change collapse ui a bit
move css, update css/js versions

* start zoomed out on new locations

* don't double load scripts, zoom to 17

* fix php-md errors, remove unused use statement

* improve non-admin experience

* Move locations page to Laravel
More functions in Url and Html util classes
reduce code duplication

* translation buttons too

* fix whitespace

* move formatters to the frontend

* small changes

* disable traffic for locations with no devices

* change down 0 to green from gray

* missing "

* Fix paginate all

* working fix for paginate all

* allow sort by counts

* fix down sort

* a little safety

* Don't call the function twice

* btn-xs
2018-11-29 19:23:40 -06:00
db1fa8c33e Added Aprisa support (#9435)
* Created 4RF Aprisa XE support

* Made requesed change by @laf

* cleanup

* Fix sensor index and add test data
2018-11-28 23:09:02 +00:00
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
f10e06def2 Added more sensors for IRD (PBI Digital Decoder) (#9339)
* added over bitrate graph

* added bitrate

* added more state sensors

* Update ird.snmprec

* Update ird.json

* Update Ird.php

* Update Ird.php

* Update Ird.php

* Update ird.json

* Updated json test data

* Update ird.snmprec

* Updated json data

* fix test value

* fix num_oid
2018-11-20 16:54:42 -06:00
ceea9d4981 Added ability to record traceroutes for devices down due to ICMP (#9457)
* Added ability to record traceroutes for devices down due to ICMP

* Update Templates.md

* Updated schema

* Update dev-overview-data.inc.php
2018-11-19 09:58:59 -06:00
b93e66efbe Show visually in webui + cli when using deprecated templates or transports (#9413)
* Show visually in webui + cli when using deprecated templates or transports

* Fixed query
2018-11-10 21:06:51 +00:00
518e5f06d3 Added format field to Telegram Messages (#9404)
* Add format field to Telegram Messages

Added Telegram field to send formatted messages as Mardown or HTML

* Update Telegram.php

* Correct Mistypo.

* Correct mistypo

* Correct Mistypo

* Correct mistypo

* Update Transports.md

* Add Format field on Telegram Examples

* Change Telegram Format field to type select

* Add "blank" option to Format field

* Update Telegram.php

* Update Telegram.php

* Update Telegram.php
2018-11-08 22:26:29 +00:00
01666e5ca7 Fixed AlertUtil - again (#9429) 2018-11-07 17:04:45 +00:00
42bd9a3c83 Fixed alert util (#9428)
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-07 15:17:23 +00:00
38e3250528 Added support for using Transport name in templates (#9411) 2018-11-05 07:56:16 +00:00
356357ad8d RouterOS wireless sensors update (#9401)
* bug-fix and new features

Fixed incorrect OID for rate, renamed rate to TX-Rate as per update from mikrotik.

Added support for link distance

* Fixed indent issue
2018-11-05 07:51:32 +00:00
0ec8f18459 Graph of overall poller performance (#9381)
* Graph definitions

* Stacked.

* Add display

* remove old poll-log, add redirect

* Handle undefined data in graphs

* Standard pollers

* Change doc to send to the global poller module page.

* remove test code :)

* Link parent menu
2018-10-26 21:04:30 +01:00
fd6310a405 fixed Rate sensor description (Racom RAy) (#9374)
* fixed Rate sensor description

* Update ray.json

* Update ray.json
2018-10-25 15:35:18 -05:00
73d27ebe1f Merge pull request #9380 from murrant/proc-warn
Don't overwrite processor warn percentage
2018-10-25 07:58:56 +02:00
4a49de1d35 Put it in the right place. 2018-10-24 15:15:58 -05:00
1a240f0c01 Don't overwrite processor warn percentage 2018-10-24 15:05:47 -05:00
a243a5c25b Validate Database and PHP time match 2018-10-23 15:56:09 -05:00
d111bd95f9 Improved support for Racom Ray radios (#9279)
* update os polling for ray

I changed hardware detection, because in old format i got a hostname instead of hardware. I added features tab also.

* Added wireless rate sensors

I added sensors for Netbitrate and Maxbirate

* deleted old ray.png

* added better resolution logo for ray

* Update Ray.php

* Delete ray.png

* Add files via upload

* Delete ray.svg

* added ray.svg logo

* update ray.snmprec

* Update Ray.php

* Updated json test data

* added state support for RAy Radios

* Update ray.snmprec
2018-10-22 17:26:19 -05:00
0874dce8a5 Fixed field type for processor_usage and _perc_warn (#9357)
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-21 20:02:06 +01:00
e5f7969dc6 Added support for Mirkrotik Wireless Wire (wAP 60G) (#9318)
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.

Fixes: #8933
2018-10-20 20:42:29 +01:00
607a567090 Don't check file permissions on every request, handle failures (#9264)
* Don't check file permissions on every request, handle failures
Improve error page visually

* only print minimal mkdir

* invert file_exists check, whoops

* docblock

* revert accidental changes

* rename variable

* Change database errors to use the new layout

* Add support url to the default layout

* Replaced \n for && in fix for user perms

* fix web output
2018-10-18 21:08:46 -05:00
4e5a0fa4d7 Added Twilio SMS as an Alerting Transport (#9305)
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-17 17:19:28 +01:00
2125c8640b Updated MGE UPS sensors and added traps (#9301)
* MGE: Improve support for Galaxy devices

* MGE: Improve support for Galaxy devices

* MGE: Improve support for Galaxy devices

* rfc1628 adaptations for Eaton MGE Galaxy 7000

* eaton-mge: test data on a Galaxy 7000

* rfc1628 adaptations for Eaton MGE Galaxy 7000

* rfc1628 adaptations for Eaton MGE Galaxy 7000

* eaton-mgeups: test data on a Galaxy 7000

* Add upsmgUtilityFailure and upsmgUtilityRestored trap support for eaton-mgeups

* dev: eaton-mgeups: OID in the dynamic definition for discovery

* dev: eaton-mgeups: cleaning

* add contributor

* add contributor
2018-10-17 17:03:51 +01:00
3fc9e334b8 Use correct ID for incident resolution (#9321)
* Use correct ID for incident resolution

* Update Pagerduty.php
2018-10-16 16:38:35 -05:00
44747fda25 Bind user before fetching (#9312)
* Bind user before fetching

* fix style
2018-10-11 21:29:57 +02:00
7c45cd5f69 Check and report the correct directories (#9310)
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-09 12:21:34 +01:00
1f4be31120 Release script updates to perform tag on github (#9283)
Full GH release creation.  Not much error handling.

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:44:03 +01:00
c9bbaf5a9f Added support for PBI Digital Decoder (#9223)
* added PBI MIB

I finally found a MIB for PBI device

* added PBI-MAIN-MIB

* added another PBI MIB

* added PBI MGSYSTEM-MIB

* added ird.yaml to definition

* added senors discovery for PBI devices

* added ird.inc.php for polling

* added logo for PBI

* added ird.json

* Rename PB-MAIN-MIB to PBI-MAIN-MIB

* Update ird.json

* Update PBI-4000P-5000P-MIB

* Update PBI-MAIN-MIB

* Update PBI-MGSIGNALCHARACTERISTICS-MIB

* Update PBI-MGSYSTEM-MIB

* Create ird.snmprec

* Updated json test file

* deleted frequency from yaml

I think that better will be see values from frequency in wirelles frequency, where it is in MHz

* Create Ird.php

* Update Ird.php

* Update Ird.php

* Update ird.json

* Update Ird.php
2018-09-30 21:28:33 -05:00
14a168b2a9 Keeps the dashboard sessions from expiring. (#9263)
* Keeps the dashboard sessions from expiring.
Route dashboard ajax calls through Laravel.
Boots minimal cookies and sessions.
Does not fix other pages for now, real fix is to fully port.

* Check Laravel auth for the legacy calls.
Display Laravel errors in the dashboard.
legacy auth checks are mostly extraneous now.
2018-09-30 21:23:00 -05:00
6242f941f6 Update Eventlog WebUI/backend to use ajax (#9252)
* WIP Eventlog table

* Initial Eventlog rework

* fromdevice is not a request parameter

* updates

* remove unneeded field

* Cleanups
2018-09-24 08:07:00 +01:00
602d8f531c List files for new permission check. (#9255) 2018-09-24 07:53:34 +01:00
21ca8bf0b0 Update syslog display and backend (#9228)
* Update syslog display backend
select boxes now dynamically load instead of loading all on pageload
select and table ajax backends completely redone with Laravel (just syslog for now)
duplicate url creation to Url utility class for now (uses Device model instead of array)
build short hostname functionality into Device->displayName() helper

* Fix whitespace

* Some tidying up. Split out displayName() and shortDisplayName()

* Enable auto-sizing.
Fix small error in Url

* Eager load device
Use bootstrap theme for select2
2018-09-20 21:33:03 +01:00
466b5a35a8 Added ability to set a custom SQL query for alert rules. (#9094)
* Added support for AVG in rules

* More updates

* Final work to have advanced sql queries

* Added missing use

* Fix exception when invalid json is passed

* Fixed api for alert rules

* updated docs
2018-09-19 07:47:45 -05:00
53a1730fc7 Fixed PagerDuty alert to show rule name + device as summary (#9213)
* Fixed PagerDuty alert to show rule name + device as summary

* Update Pagerduty.php
2018-09-19 02:28:50 -05:00
e81a1fc79d Updated file permissions check for validate (#9218)
Always post generic full fix commands.  Use chmod instead of setfacl in case the filesystem doesn't support acls.

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-09-18 20:58:47 +01:00
87ed73ec5c More specific test filtering (#9226)
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-09-18 20:54:22 +01:00
1fc6a031b3 AD Authorization fixes (#9216)
* AD Authorization fixes
Remove mres() and $_SESSION usage.
Remove broken addUser function and use Mysql addUser.

* AD Authorization fixes
Remove mres() and $_SESSION usage.
Remove broken addUser function and use Mysql addUser.
Extract common AD auth code to ADUtils

* AD Authorization fixes
Remove mres() and $_SESSION usage.
Remove broken addUser function and use Mysql addUser.
Extract common AD auth code to ADUtils

* Send no user info to log instead of toast.

* Remove commented code

* add abstract getConnection() method that is required.

* Actually return the value
2018-09-18 07:57:23 -05:00
8bde5a93b9 Merge pull request #9202 from murrant/components_errors
Work around for annoying Components errors
2018-09-16 12:49:56 +02:00
e0e08e9b52 Fix AD auth with large SID components (#9207)
* Fix AD auth with large SID components
Per http://php.net/manual/en/function.unpack.php unpack on 32bit will convert large unsigned long values into signed long values, so we check for PHP_INT_SIZE and fix them up if necessary.

* Fix indentation
2018-09-15 13:30:32 -05:00
ee85264772 Switch IRC to Discord link in database validation (#9209) 2018-09-15 10:16:45 +01:00
9189928b76 use is_array() to guard against more garbage. 2018-09-13 08:19:33 -05:00
867586c416 Work around for annoying Components errors. 2018-09-13 08:18:04 -05:00
79333c45f6 Allow trusted proxy via APP_TRUSTED_PROXIES (#9196)
* Allow trusted proxy via APP_TRUSTED_PROXIES
Set to '*' by default to emulate legacy behavior.
Set up doc describing environment variables

* Create helper to parse environment variables into arrays properly.

* Update doc blocks
2018-09-13 07:26:42 -05:00
588b115d66 Fix up ldap-authorizer, create non-existent users (#9192)
* First attempt at ldap-auth fixes

* no, guest, so it is not allowed.

* cast to int

* don't count on Session

* return full user

* Specific error for guest not allowed.

* fix up external auth user creation

* fix check

* Fix user level missing
Simplify middleware

* use guard if configured
2018-09-12 12:51:24 -05:00
46d5333d1b Init and refresh the php session each page load (#9186) 2018-09-12 08:12:19 -05:00
e8cf6bb385 Fix API auth issues (#9185)
* Fix API auth issues
Api access page now creates tokens with the correct ID.
Correctly creates users for legacy user tokens.
Fix Ldap comparison
Laravel Util class to make code easier to access/read

* More api access page fixes

* fix style
2018-09-11 22:36:52 -05:00
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
5dae25b48b Feature: Collect VRP Entity details in the Huawei MIB (#8888)
* Feature: Collect VRP Entity details in the Huawei MIB

* Feature: Collect VRP Entity details in the Huawei MIB - Add Test Data

* Renaming of the test file vrp_5720_vrf.snmprec

* Added json test files

* Update vrp_5720_vrf.snmprec

* Update vrp_5720_vrf.snmprec

* Update vrp_5720_vrf.json

* Updated processor and mempool discovery to limit descr field

* Updated test

* Updated tests again

* Updated json test data

* Update vrp_ce12804-entity.json

* Update vrp_ce12804-entity.json

* Update vrp_5720_vrf.json
2018-09-10 23:07:45 -05:00
6ac9980c20 Squelch PBN processor warnings (#9153)
Don't use NMS-PROCESS-MIB for pbn processors.  This keeps tests from spitting out warnings about the broken mib.

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`
2018-09-06 23:05:44 +01:00
06a7cb2412 Fix a couple of validation items (#9154)
- Ignore .pki/nssdb. This happens when /opt/librenms is set as the home directory of the librenms users, personally, I would suggest adding cd /opt/librenms in ./bashrc (or equivalent) instead.
- fix validate when db connection fails.

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`
2018-09-05 19:29:27 +01:00