Commit Graph

241 Commits

Author SHA1 Message Date
Tony Murray c2b09b8f80 Revert "Rewritten device groups (including static) (#10295)" (#10340)
This reverts commit cfc51d51f5.
2019-06-16 21:52:57 -05:00
Tony Murray cfc51d51f5 Rewritten device groups (including static) (#10295)
* Device Groups rewrite
Updated web ui
Static or dynamic groups allowed
Alert rule query builder
Translation support
Permissions support

* cleanup, make relationship save, and validate it

* builder WIP

* rules builder and rules saving/loading

* Parse query builder to Laravel Fluent query

* Upgrade existing groups when editing.
Properly update only dynamic groups when polling.

* remove unused old code
Update API and other places to use Eloquent

* debug output in poller restored

* Fix up some things
creating static
improved validation
fix js error on creation
Fix static groups in polling

* hide pattern for static group

* Implement authorization
Use in the menu too

* update schema

* fix rollback

* Don't abort on invalid queries

* fixes to query builder

* add test data, looks like macros aren't handled (omitted them because groups don't use them generally)

* Add macro support for QueryBuilderFluentParser

* add test for macro that accepts value

* More space in forms
Retain rules when converted to static
no duplicate names allowed

* Better error feedback
Update related devices on save

* Add button icon

* format

* update docs

* fix tests
2019-06-16 08:27:22 -05:00
Tony Murray 1ae77dfb70 Fix language select for new languages (#10323) 2019-06-07 21:07:49 -05:00
Vitali Kari 00b148dbd3 Add MPLS Support (#10263)
* WIP - Add MPLS Support
This introduce the generic MPLS support
- New database tables for MPLS LSPs
- actually discovery and polling on NOKIA SR OS (Timetra) devices
- new routing->MPLS HTML pages

- ToDo MPLS LSP paths table and views
Suggestions and improvements are welcome

* add db schema

* some fixes

* add path table, discovery and polling

* add path views

* add test data

* Convert MPLS module to new style
Implement a SyncsModels trait to simplify code a lot

* abs() for negative value from snmp (bug?), test data

* fix db schema

* Fix up test data, remove uneeded data in json

* fix whitespace
2019-06-06 16:12:13 -05:00
Tony Murray 6ba05cdbbb Enable menu translation (#10298)
And better translation support for sensors, not complete
2019-06-04 20:03:50 -05:00
Tony Murray 1c1b07fee5 Restore vminfo menu (#10303) 2019-06-03 19:15:13 -05:00
Tony Murray 41623f2894 User Management: use url helpers (#10288)
Small fix for success string
2019-05-31 20:04:01 -05:00
CirnoT 241b07756f Don't show warning when ignored device is online (pingable) (#10286)
* Don't show warning when ignored device is online (pingable)

* Update logic for header on device page too

* Make codeclimate happy
2019-05-30 14:46:33 -05:00
Tony Murray ea45fd9d42 Store language select name in translation files (#10272)
* Move language selection string to translation files
Falls back to locale name

* Reload page for locale changes
2019-05-29 13:36:07 -05:00
Tony Murray 54e4d0910a Sanitize report name in pdf.php (#10270)
Authentication users could include arbitrary file.
2019-05-29 09:39:17 -05:00
Tony Murray 90a67c2ece User configurable locale (language) (#10204)
* Support for system APP_LOCALE

* Start preferences re-write

* port 2fa form

* Working user preferences

* Language user preference

* Don't look up locale from the DB every request

* Device list working

* Deny demo user middleware

* Finish password changing

* remove used resource methods

* remove leftover use

* warn that translation is incomplete

* fix style
2019-05-23 10:05:45 -05:00
Tony Murray 0807add38c Fix device groups showing multiple times. (#10247)
Update hasAccess to not use a join.
Move into The Permissions facade so we only query the db once per page load for the permissions.
2019-05-23 10:03:00 -05:00
Tony Murray e9ae08d5db Use Laravel url helpers to improve functionality without dns name (#10227)
* Use Laravel url helpers to improve functionality without dns name
Not exhaustive...

* Fix Url generated urls

* Bump js version
2019-05-20 11:47:34 -05:00
Tony Murray d6bb9f0487 Try to make port counts match users expectations (#10230)
Fix disabled count
Consistent use of isNotDeleted
2019-05-18 23:19:34 -05:00
Tony Murray e7f88b2e2d Fix device types and locations order (#10220) 2019-05-13 14:26:52 -05:00
Chris Friesen de656dfb3b Update MenuComposer.php (#10216)
order the device groups by name
2019-05-13 12:03:47 -05:00
Tony Murray 32e5ef15e9 Fix device location menu links (#10214) 2019-05-13 09:45:54 -05:00
Tony Murray c097747d77 API Fix error when no fdb are found (#10125)
* Fix error when no fdb are found

* actually, it was totally broken...
fix untested

* missing device update

* cleanup

* Update api_functions.inc.php
2019-05-13 08:35:24 -05:00
CirnoT ef90da2a31 Better services graphing support (#10185)
* Move services graph code from device to service and remove unused code

* Add proper support for services to dashboard graph weidget

* Fix phpdoc in ServiceController still pointing to MuninPluginController
2019-05-12 23:40:27 -05:00
Tony Murray 9ede688d13 Replace legacy menu with new Blade generated one (#10173)
* Remove legacy index php file

* fix routing page missing data

* WIP

* fix $navbar global usage

* remove global use of $locations

* ObjectCache again...

* move vars.inc.php to init.php for legacy ajax

* navbar is more local than I thought before.  Fix it.

* Fix some sensors tables escaping

* restore custom menu functionality, but with blade
and docs

* cleanup

* tidy menu @if checks

* Fix up the rest of the global variables and remove print-menubar.php

* consolidate some counting in the menu

* filter out empty custom port descr types

* Fix up custom port groups

* Fix up apps menu

* Fix services menu when all are ok

* Limit cached data to the user it is for

* Fix style

* A few clean ups

* fix pseudowire bug
2019-05-10 11:02:39 -05:00
Tony Murray 178717eb57 Fixed debug message (#10189)
check was inverted
2019-05-05 12:22:28 +02:00
CirnoT 735a81c887 Support multiple params when rendering graph view (#10127) 2019-04-29 22:03:06 -05:00
Tony Murray 6e6e54cb98 New User Management (#9348)
* Rewrite user management.

Error management

Revert edituser legacy page

Connect user permissions button to legacy page for now.

Implement user creation
Refine form

Remove PingCheck.php accidental add :)

Fixes for redirection and deletion

More fixes: realname accidental validation setting, hide can modify for read-only auths

Use a panel to improve style

Add icon to panel-title

Not allowed to delete own user (at least via the click of a button)

Use request validation to reduce complexity of controller.
Improve protection against users doing things they should not.

Switch to horizontal form and not nearly as wide of layout :)

delete without refresh.
Fix for buttons

Include all users (not just from this auth)
Hide the auth column if there is only one auth type

Show username if real name isn't set

Don't allow creation of demo users via the webui

a fix to the lnms user:add command, it didn't set auth_id

update edituser.inc.php to current
just redirect to users page

* Remove TwoFactorTest for now

* Update edituser.inc.php

* Update .env.dusk.testing

* Enable 2fa for 2fa test...
2019-04-22 19:01:39 -05:00
CirnoT 141eab11ca fix call to shortDisplayName on null in MuninPluginController (#10126)
MuninPluginController did not ask for device_id in baseQuery, hence later it was impossible to construct valid Device model causing subsequent call to shortDisplayName in formatItem to be on NULL.
2019-04-19 08:12:33 -05:00
Tony Murray a01cd82e9c Updated json error message to show how to debug. (#9998)
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.
2019-04-09 14:57:33 +01:00
Tony Murray 373de957bc top ports widget (#10024)
work around bad data in the database
2019-03-27 07:19:19 -05:00
Tony Murray 960a75f19f auth fix error when user doesn't exist (#10023) 2019-03-27 07:18:28 -05:00
Tony Murray 00a1185980 New permissions code (#9986)
* Initial permissions

* initial tests

* updates

* finish tests, other tweaks

* update legacy permissions checks
remove global :D

* missed facade extend

* Update eloquent permissions to use the new facade and drop joins

* method descriptions

* more docs

* fix style
2019-03-19 08:14:01 -05:00
Tony Murray edd18b4f9f Fix world map when location has been deleted that a device still references (#9997) 2019-03-19 06:52:20 -05:00
Tony Murray bc24d39bf1 Fix device list down devices that have never been polled (#9994)
* Fix device list down devices that have never been polled

* Suggestion with 'Never' in case last_polled empty and down

* Improve handling of all cases

* fix doc comment
2019-03-19 06:52:06 -05:00
PipoCanaja a2d378e0be Display Up/Down time in Device List (#9951)
* First attempt of Up/Down time

* First attempt of Up/Down time

* Moved to Time::formatInterval()

* cleaning

* last polled in casts

* Cleaning the variants of formatUptime()

* Cleaning in ./html/includes/dev-overview-data.inc.php

* Cleaning in ./html/includes/dev-overview-data.inc.php

* Cleaning in ./html/includes/dev-overview-data.inc.php

* updated includes/polling/core.inc.php

* updated includes/alerts.inc.php

* clean accessors
2019-03-17 21:09:58 -05:00
Tony Murray 3825133602 Fix device missing from traps/new Log::event() (#9963)
* Fix device missing from traps/new Log::event()
2019-03-16 09:24:59 +01:00
PipoCanaja 787a8fc309 Corrected active_count for Alert icon color (#9933)
* Corrected active_count for Alert icon color

* Corrected active_count for Alert icon color

* Corrected active_count for Alert icon color

* Laravel version

* Laravel version check status worse and better for isActive

* cleanup
2019-03-13 21:01:30 -05:00
Tony Murray cb005210d2 Resubmit #9608 (#9941)
* Reorganize trap tests

* Testing db DRIVER to prevent .env from interfering

* New code to detect if Laravel is booted.  Hopefully more reliable.

* WIP external test process

* revert module test helper

* Use .env in Eloquent::boot()

* Fix test database settings loading

* fix undefined classes
(didn't find the one I needed)

* Fix incorrect Config usages
And RrdDefinition return type

* fix .env loading

* use the right DB

* slightly more accurate isConnected

* Move db_name to DBSetupTest specifically

* restore $_SERVER in AuthSSOTest

* missed item

* WIP

* tear down in the correct order.

* some testing cleanups

* remove check for duplicate event listener, it's not working right

* Don't need this change anymore

* Implement Log::event to replace legacy function log_event()

* fix port tests

* fix up tests

* remove pointless TrapTestCase class

* fix style

* Fix db config not being merged...

* skip env check for tests

* defer database operations until after Laravel is booted.

* don't include dbFaciale...

* redundant use
2019-03-12 23:59:03 -05:00
Tony Murray 17b5d7f0a3 fix misc models (#9935)
lnms ide-helper:models now works
2019-03-12 21:05:01 -05:00
Tony Murray eb648a1d6f Revert "Changes to improve testing (#9608)" (#9937)
This reverts commit d1a0ccda46.
2019-03-12 00:49:14 -05:00
Tony Murray d1a0ccda46 Changes to improve testing (#9608)
* Reorganize trap tests

* Testing db DRIVER to prevent .env from interfering

* New code to detect if Laravel is booted.  Hopefully more reliable.

* WIP external test process

* revert module test helper

* Use .env in Eloquent::boot()

* Fix test database settings loading

* fix undefined classes
(didn't find the one I needed)

* Fix incorrect Config usages
And RrdDefinition return type

* fix .env loading

* use the right DB

* slightly more accurate isConnected

* Move db_name to DBSetupTest specifically

* restore $_SERVER in AuthSSOTest

* missed item

* WIP

* tear down in the correct order.

* some testing cleanups

* remove check for duplicate event listener, it's not working right

* Don't need this change anymore

* Implement Log::event to replace legacy function log_event()

* fix port tests

* fix up tests

* remove pointless TrapTestCase class

* fix style
2019-03-11 22:59:39 -05:00
Tony Murray b65205b983 Graylog: Handle missing fields a little more gracefully (#9919) 2019-03-07 19:49:14 -06:00
tarik e3e3de1442 Printer paper tray status and error states (#9859)
* adding paper tray status and error states

* adding paper tray test data

* Create jetdirect_papertray.json

* Store printer supply type

* Update json data

* fix style
2019-03-06 18:58:14 -06:00
Tony Murray f4a33c1a34 Prevent credentials from being leaked in backtrace in some instances (#9817)
* Prevent credentials from being leak in backtrace in some instances
Particularly before the user is authenticated

* fix test
2019-03-05 00:24:14 -06:00
Tony Murray e677d4b63e Fix incorrect icon sometimes (#9887)
* Fix icon finding
Also fix os suggest not loading all OS.

* Fix os that would have missing icon under the new code (and one under the old code)

* forgot icon
2019-03-01 23:06:01 -06:00
Tony Murray b5714820de Improved Exception handling (#9844)
* Update LibreNMS exception output
Use built-in laravel exception rendering.
DuskUnsafeExcpetion is triggered before Blade(view) is booted, so, try to boot it

* Cleaner blade registration

* Change 500 error page to generic LibreNMS error page.

* Handle generic exceptions from laravel better.

* Custome LdapMissingException

* Cleanup, don't need to override convertExceptionToResponse anymore

* Update unauthenticated code to current upstream style

* UpgradableException interface

* LdapMissingException extend AuthenticationException

* Code climate cleanups

* Fix code style
2019-02-21 12:08:35 -06:00
Tony Murray fffd468c2d Email should be options in lnms user:add command (#9841) 2019-02-21 11:05:49 -06:00
PipoCanaja e2f835ad9d FDB table with history capabilities (#9804)
* Migration script and data feeding

* Adding the columns in the GUI

* build schema

* update FDB test data

* Use of timestamps()

* ignore created_at and updated_at in tests, and regenerate test impacted

* daily.sh does the cleaning

* space cleaning codeclimate

* Use carbon instead of str-val

* handle when $fdb_entry->updated_at and created at are null

* handle when $fdb_entry->updated_at and created at are null (force travis rerun)

* Doc update

* Doc update
2019-02-21 13:23:01 +01:00
TheGreatDoc b8a9e53b13 Merge pull request #9840 from murrant/remove-dd-ripe
Remove accidentally left in dd()
2019-02-18 19:26:21 +01:00
Tony Murray 478c1a6070 Remove accidentally left in dd() 2019-02-18 11:48:01 -06:00
Tony Murray a4b79d3339 lnms user:add command (#9830)
* Add lnms user:add command
Uses events to mark past notifications as read (even for non-manually added users)

* Filter out previous options from auto-completion

* use validation to check cli input

* Warn if using other auth

* abstract LnmsCommand

* Use setPassword helper for hashing instead of mutator

* Extract validation function
2019-02-15 09:00:07 -06:00
Tony Murray 63de34e295 php artisan serve and dusk testing (#9422)
* php artisan serve and dusk testing

* Fix style

* move if into, in case we need to have different configs

* fix travis yml

* Add missing folders files

* Try to fixup Travis-ci

* revert variable, change check

* skip browser tests for phpunit runs
set up env correctly

* maybe bg is needed

* attempt to fix env

* install Chrome

* Update tests
fix migrations

* Move pylint to python2

* use testing .env

* Running chrome on port 9515 conflicts with the instance started by the tests.  It is probably not needed.

* suppress some artisan serve output

* remove the unused updater
2019-02-14 09:06:10 -06:00
Tony Murray e18f4522d5 Update to Laravel 5.7 (PHP 7.3 support) (#9800)
* Move assets to 5.7 location

* Add 5.7 SVGs

* add cache data dir

* update QUEUE_DRIVER -> QUEUE_CONNECTION

* Update trusted proxy config

* update composer.json

* 5.5 command loading

* @php and @endphp can't be inline

* Laravel 5.6 logging, Nice!

* Update blade directives

* improved redirects

* remove unneeded service providers

* Improved debugbar loading

* no need to emulate renderable exceptions anymore

* merge updated 5.7 files (WIP)

* Enable CSRF

* database_path() call causes issue in init.php

* fix old testcase name

* generic phpunit 7 fixes

* add missed file_get_contents
Keep migrations table content

* fix duplicate key

* Drop old php versions from travis-ci

* remove hhvm

* fix code climate message

* remove use of deprecated function assertInternalType

* Disable CSRF, we'll enable it separately.
All forms need to be updated to work.

* Update document references
2019-02-12 17:45:04 -06:00
CoMMyz 2b4d8fc541 Port exists check in eventlog (#9778)
Check if port exists before getting the label as some ports may have events but then removed and this can break eventlog page.
2019-02-05 17:01:06 -06:00