Commit Graph

769 Commits

Author SHA1 Message Date
Tony Murray
e53436b6a3 Calculate downtime from device_outages table (#15397)
* Calculate downtime from device_outages table

* refactor
2023-10-06 20:37:23 -05:00
Tony Murray
d8c372bbf4 Refactor MAC utilities into a single class (#15379)
* Refactor MAC utils to a new utility class

* Apply fixes from StyleCI

* Inline functions
Add tests
Handle bridgeid format

* Apply fixes from StyleCI

* Dedicated code path for stp bridge parsing, and improve STP output a bit

* Correctly parse dot1dBaseBridgeAddress and don't store int in bool field

* trim any unexpected character from bridge addresses, add extra test data.

* better comment

* barsBridge can handle dot1dBaseBridgeAddress correctly now

* parseBridge, check for properly formatted mac first.

* update test data, empty data = empty mac

* Fix new usage after rebase

* import

---------

Co-authored-by: StyleCI Bot <bot@styleci.io>
2023-10-06 07:34:14 -05:00
AdamB
91bc3bf479 Show which host marked a device as down. (#15209)
* Show which host marked a device as down.
One of my pollers can't reach a device, it'd be nice to know which one is causing the issue.

* Only show the actor in a distributed setup

* Use distributed poller name as its now ensured

* Use node_id

* Change to avoid extra dns lookups

* Update DeviceObserver.php

* Update DeviceObserver.php

---------

Co-authored-by: Tony Murray <murraytony@gmail.com>
2023-10-05 19:53:38 -05:00
Tony Murray
087d588102 Vmware vminfo modernize (#15008)
* Vmware vminfo
Remove legacy file and migrate to OS discovery

* tighter

* ios_stp-vlans working correctly now

* Make vmwVmGuestOS nullable

* Discover os info too

* VM Info module

* Apply fixes from StyleCI

* Fix log severity

* Fix log severity (more)

* VM Info module

* Poll with ESXi too because it is lightweight
add test data

* poller data now too

---------

Co-authored-by: StyleCI Bot <bot@styleci.io>
2023-10-05 19:49:26 -05:00
Tony Murray
bec7a9f449 Throttle error reporting (#15391)
* Throttle error reporting
Sets how frequently errors can be reported (across all pollers)
Also has the side effect of at most 1 error reported per run
To disable, set reporting.throttle to 0 (for development and testing purposes)

* Don't crash if Cache provider is unavailable, refactor
2023-10-05 17:24:28 -05:00
Tony Murray
9fca01830c Update Tnmsne table backend (#15384)
remove ridiculous sql injection vulnerability
2023-10-05 10:32:21 +02:00
Tony Murray
e0444bffcf Deprecate poller.php (#15370)
* Deprecate poller.php

* Apply fixes from StyleCI

* Remove references to poller.php
Leave wrapper...

* fix python style

* update wraper to call lnms device:poll

* Quiet output too

* make pb happy

---------

Co-authored-by: StyleCI Bot <bot@styleci.io>
2023-10-04 16:32:02 -05:00
Tony Murray
c1258320f8 Availability module fixes (#15369)
* Refactor poller to allow modules to run even if the device is down
Include core in config (but not webui) to avoid silly shenanigans
Inject datastore into polling

* Needed to split datastore interface

* Cleanup some data_udpate() references

* Apply fixes from StyleCI

* Fix legacy poller :D

* Output to the correct stream

* Fix lint issues

* Apply fixes from StyleCI

* Fix discovery not including core and submodule handling

* Use whereRaw

---------

Co-authored-by: StyleCI Bot <bot@styleci.io>
2023-10-04 10:32:59 -05:00
Tony Murray
6f329a7595 Fix alerting find owner contacts on old SQL server versions (#15355)
* Fix alerting find owner contacts on old SQL server versions
Older SQL server versions had a bug where they didn't accept parenthesis around the first query of a union statement.
It was difficult to remove these parenthesis, so use whereHas instead.

* Fix style
2023-09-28 09:49:29 -05:00
Tony Murray
c8041b6699 FDB Tables improve performance (#15333)
* FDB Tables improve performance
Reduce unnecessary sql queries, by using a relationship
Cache vendor oui lookups

* Oui already "clean"

* Fix typo
2023-09-25 19:49:22 -05:00
SourceDoctor
c0a233700c show never polled information (#15341) 2023-09-24 18:10:11 +02:00
Tony Murray
35406b4b32 Fix some issues with admin self settings (#15332)
Don't require old password when not settings password
Show old password field for user's own user
2023-09-18 14:35:12 -05:00
Tony Murray
c4852a01e9 Fix device display name in top interfaces widget (#15319)
fixes: #15317
2023-09-14 08:15:29 -05:00
Tony Murray
4dc2ae9d44 Timezone, fix user set no timezone (#15296)
fixes #15277
2023-09-08 07:48:16 -05:00
Zane C. Bowers-Hadley
2618a99be5 Application Soft Delete (#15270)
* add the softdeletes migrations for applications

* add working migration file

* add deleted_at to db schema.yaml for applications

* update includes/html/forms/application-update.inc.php to work with softdeletes

* update includes/html/pages/device/edit/apps.inc.php for softdelete

* update includes/discovery/applications.inc.php to work with softdelete

* minor updates to application-update.inc.php for disabling

* style cleanup

* set discovered when running discovery

* update application tests to include deleted_at

* add deleted_at to a missed test

* a few more tweaks for opensips

* add a missing deleted_at for linux_suricata_extract-v1

* fix fillable for Application model

* massive cleanup of the application update widget thingy

* improve the code for discovery and using Laravel

* add a missing line to app/Models/Application

* add a missing include to app/Models/Application.php

* record includes for Application model

* remove apps from the applications table when a device is deleted

* revert to using upcert and where for discovery to fix CI

* make discovered fillable and set it when running discovery... convert back to firstOrNew

* clean up application discovery a bit and use observer

* style fix

* spelling fix... disablaed -> disabled

* rever removal to just use where

* cleanup app removal on delete

* add restored to ModuleModelObserver

* delete -> forcedelete fix

* apply the suggested changes

* use murrants other suggestion

* style fix
2023-09-06 16:34:39 -05:00
SourceDoctor
013096c092 readd missing key (#15291)
* readd missing key

* .
2023-09-06 16:08:07 -05:00
SourceDoctor
d991a4b505 fix missing keys for new status (#15284) 2023-09-05 16:08:15 -05:00
SourceDoctor
35ff23b39f show ignored device up when up (#15283)
* show ignored device up when up

* change status string
2023-09-05 11:04:16 -05:00
Wheel
a6ccb596df Custom ssh,telnet port with oxidized (#15255)
* Custom ssh,telnet,http port with oxidized

* Lint fixes

* copy paste minors
2023-09-03 20:15:51 -05:00
PipoCanaja
8eeb83928f Add global NAC page and refactor the per-device one (#15228)
* Adding a NAC global port page

* style

* filter_menu_entry

* typo

* ->when()

* device_id always returned

* use request

* laravel conversion, let see how it goes

* styleci

* ->with('device') to avoid 1 query per item processed

* and rewrote on @murrant advice

* any -> get

Suggested by @murrant

Co-authored-by: Tony Murray <murraytony@gmail.com>

* @push('scripts')

* style

* @endpush

---------

Co-authored-by: Tony Murray <murraytony@gmail.com>
2023-08-31 20:25:24 -05:00
Tony Murray
bbe835b5f9 Radius update roles correctly (#15261)
Needs a re-write so semantics line up with Laravel auth better, but this is the quick/safe fix.
2023-08-28 23:38:09 -05:00
Tony Murray
f622a96c70 Fix mysql auth removing roles upon login (#15258) 2023-08-28 11:00:18 -05:00
Tony Murray
c737788727 Roles user add fix (#15257)
* Fix user add command doesn't allow roles

* update baseline
2023-08-28 10:27:56 -05:00
Tony Murray
2cd207028a Implement RBAC (only built in roles) (#15212)
* Install bouncer

* Seeder and level migration

* Display and edit roles

* remove unused deluser page

* Update Radius and SSO to assign roles

* update AlertUtil direct level check to use roles instead

* rewrite ircbot auth handling

* Remove legacy auth getUserlist and getUserlevel methods, add getRoles
Set roles in LegacyUserProvider

* Small cleanups

* centralize role sync code
show roles on user preferences page

* VueSelect component WIP and a little docs

* WIP

* SelectControllers id and text fields.

* LibrenmsSelect component extracted from SettingSelectDynamic

* Handle multiple selections

* allow type coercion

* full width settings

* final style adjustments

* Final compiled assets update

* Style fixes

* Fix SSO tests

* Lint cleanups

* small style fix

* don't use json yet

* Update baseline for usptream package issues

* Change schema, not 100% sure it is correct
not sure why xor doesn't work
2023-08-28 00:13:40 -05:00
Hans Erasmus
4fc27d98e9 Another OR statement in GrayLog API (#15246)
* Another OR statement in GL-api

* try again to fix linting issue

* yet more linting issues

* Cannot fix me being an idiot
2023-08-25 07:56:29 -05:00
Tony Murray
cfc9aca6a4 Revert "Added empty string check (#15235)" (#15249)
This reverts commit cbe2ba55ce.
2023-08-24 10:09:50 -05:00
eskyuu
7d950825a1 Make the service template controller re-evaluate dynamic membership when apply all button is pushed (#15214) 2023-08-21 18:27:54 -05:00
PipoCanaja
99cfbf1d63 Use full name for vendor_oui (#15234)
* Use full name for vendor_oui

* trimmed

* typo

* more spaces to remove

* don't set $short_vendor

* keep line return

---------

Co-authored-by: Tony Murray <murraytony@gmail.com>
2023-08-21 16:13:28 -05:00
Fehler12
cbe2ba55ce Added empty string check (#15235)
* Added empty string check

* replaced tabs with spaces

replaced tabs with spaces

* Removed '(', ')' and enlarged if clause

* Added one space and removed an empty row

* removed is_null

Removed is_null check as static code analysis says that this variable cannot be null at this time

* compact form

* handle spaces

In case the sysName is " " (one space). Good to trim anyway.

---------

Co-authored-by: PipoCanaja <38363551+PipoCanaja@users.noreply.github.com>
2023-08-21 00:17:25 +02:00
Jellyfrog
7c85763ff5 Make the installer use the schema dump (#15211) 2023-08-11 17:16:22 -05:00
Tony Murray
d1b7004fef Severity Enum (#14620)
* Severity Enum
Replace old Alert constants

* Fix whitespace

* Additional uses

* style fixes

* Fix test too

* More missed locations

* More
2023-08-05 12:12:36 -05:00
eskyuu
6fb784a321 Apply service templates on a per-device basis (#15024)
* Created and use a function to apply service templates on a per-device basis

* formatting fix
2023-08-04 19:05:07 -05:00
Tony Murray
fe1b280a99 Fix timezone controller bad return (#15191)
was returning null when preferences.timezone was not set (not sure how to get to that case)
2023-08-03 19:31:28 -05:00
Tony Murray
12f8bb2040 MAC Vendor OUI use scheduler (#15187)
* MAC Vendor OUI use scheduler
Add command to update `lnms maintenance:fetch-ouis`
Show vendor column in tables if mac_oui.enabled is set to true
Improve scheduler validation handle non-standard install directories and systems without systemd
Add index to table to improve speed and improve mac->vendor lookup speed
Scheduled weekly with random wait to prevent stampeding herd issues for upstream
drop oui update from daily

* MAC Vendor OUI use scheduler
Add command to update `lnms maintenance:fetch-ouis`
Show vendor column in tables if mac_oui.enabled is set to true

* Lint fixes and better prefix detection

* update schema file
2023-08-03 19:29:30 -05:00
Tony Murray
e0a20fced0 Fix security fix breaking display (#15192)
Escaped a <br />
2023-08-03 11:02:55 -05:00
Tony Murray
77fc6a34df Graylog API properly throw errors (#15188)
* Graylog API properly throw errors
remove unused legacy graylog code

* Add type casts
2023-08-02 19:59:53 -05:00
Tony Murray
3252ea37af Fix some xss injection for sysLocation and some other fields (#15183)
Reported by [Zluudg](https://huntr.dev/users/zluudg/)
2023-08-02 09:51:31 -05:00
Tony Murray
1723f96b40 remove pingcheck debug statements (#15173) 2023-07-31 12:26:25 -05:00
Tony Murray
3908bddb49 Miscellaneous fixes (#15162) 2023-07-26 01:08:10 +02:00
Tony Murray
9b077df610 AlertLog model cast details (#15143)
* AlertLog model cast details

* Style fix
2023-07-24 17:01:07 +02:00
Andy Norwood
64c4650801 Add FDB table vendor search drop down (#15072)
* Add vendor search and related functions

* Add OUIDB cache for vendor lookup

* Add vendor drop down

* appy style CI changes

* Apply style CI and lint changes

* more styleCI changes

* update type hinting

* Edit mac_oui cache lock name and function

* Update MAC OUI message during daily

* Use DB for vendor lookup

* New vendor_oui table migration

* New MAC OUI to database function

* Update readbleOUI to use DB rather than cache

* Make StyleCI changes

* styleCI tweak

* Remove lock release to allow refresh timer

* change migration name to match table

* add schema dump

* update schema

* styleCI tweak
2023-07-21 11:30:13 -05:00
Neil Lathwood
798ad4dc57 Skip hostnames which are blank when generating the smokeping config (#15144) 2023-07-14 16:50:37 -05:00
Peter Childs
b655eb7feb change chunk to chunkById (#15139) 2023-07-07 11:53:15 -05:00
Nick Peelman
e486ef4c22 Fix MPLS Tab Display for Nokia devices using LDP and not RSVP (#15128) 2023-07-03 13:08:58 +03:00
Albert Siersema
f4c739c179 Fixes #14975 (Widget part) (#15076) 2023-06-18 22:22:41 -05:00
Jellyfrog
b14e2d4609 Apply fixes from StyleCI (#15101)
Co-authored-by: StyleCI Bot <bot@styleci.io>
2023-06-13 13:35:00 +02:00
Jellyfrog
2b3575a5e9 Laravel 10.x Shift (#14995)
* Apply code style

* Remove explicit call to register policies

* Shift core files

* Shift config files

* Default config files

In an effort to make upgrading the constantly changing config files
easier, Shift defaulted them and merged your true customizations -
where ENV variables may not be used.

* Bump Laravel dependencies

* Add type hints for Laravel 10

* Shift cleanup

* wip

* wip

* sync translation

* Sync back config

* Public Path Binding

* QueryException

* monolog

* db::raw

* monolog

* db::raw

* fix larastan collections

* fix phpstan bug looping forever

* larastan errors

* larastan: fix column type

* styleci

* initialize array

* fixes

* fixes

---------

Co-authored-by: Shift <shift@laravelshift.com>
2023-05-24 22:21:54 +02:00
Jellyfrog
153be4d583 Tests: Fix Dusk tests after 13626 (#15057) 2023-05-23 19:23:15 +02:00
Tony Murray
04bb75f5f3 Alert transport cleanup, no_proxy support and other proxy cleanups (#14763)
* Add no_proxy and other proxy related settings
Set user agent on all http client requests
Unify http client usage

* Style fixes

* Remove useless use statements

* Correct variable, good job phpstan

* Add tests
fix https_proxy bug
add tcp:// to the config settings format

* style and lint fixes

* Remove guzzle from the direct dependencies

* Use built in Laravel testing functionality

* update baseline
2023-05-23 09:25:17 -05:00
Etienne Wan
9af97a0395 Add a global setting for Ctrl-F focus (improve #14947) (#15023)
* Add a global setting for Ctrl-F focus (improve #14947)

* Move this new global setting to user setting (improve #14947)

* Update preferences.blade.php

Cleaner wording, and Copy & Paste bled through.

* Fix indents and @endif position in menu.blade.php

---------

Co-authored-by: Justin Lentz <monkeybrains7@gmail.com>
2023-05-14 20:34:37 -05:00