38 Commits

Author SHA1 Message Date
Tony Murray
c572448ca0 Update PHP dependencies (#16263)
* Update PHP dependencies:

php-http/discovery (1.19.2 => 1.19.4)
symfony/finder (v6.4.8 => v6.4.10)
symfony/polyfill-mbstring (v1.29.0 => v1.30.0)
symfony/var-dumper (v6.4.4 => v6.4.10)
maximebf/debugbar (v1.20.2 => v1.22.3)
symfony/polyfill-php80 (v1.29.0 => v1.30.0)
symfony/polyfill-ctype (v1.29.0 => v1.30.0)
phpoption/phpoption (1.9.2 => 1.9.3)
graham-campbell/result-type (v1.1.2 => v1.1.3)
vlucas/phpdotenv (v5.6.0 => v5.6.1)
symfony/css-selector (v6.4.3 => v6.4.8)
symfony/polyfill-uuid (v1.29.0 => v1.30.0)
symfony/uid (v6.4.3 => v6.4.8)
symfony/routing (v6.4.3 => v6.4.10)
symfony/polyfill-php72 (v1.29.0 => v1.30.0)
symfony/polyfill-intl-normalizer (v1.29.0 => v1.30.0)
symfony/polyfill-intl-idn (v1.29.0 => v1.30.0)
symfony/mime (v6.4.3 => v6.4.9)
symfony/event-dispatcher (v6.4.3 => v6.4.8)
symfony/mailer (v6.4.4 => v6.4.9)
symfony/polyfill-php83 (v1.29.0 => v1.30.0)
symfony/http-foundation (v6.4.4 => v6.4.10)
symfony/error-handler (v6.4.4 => v6.4.10)
symfony/http-kernel (v6.4.4 => v6.4.10)
symfony/polyfill-intl-grapheme (v1.29.0 => v1.30.0)
symfony/string (v6.4.8 => v6.4.10)
symfony/console (v6.4.8 => v6.4.10)
brick/math (0.11.0 => 0.12.1)
ramsey/uuid (4.7.5 => 4.7.6)
symfony/translation (v6.4.4 => v6.4.10)
nesbot/carbon (2.72.3 => 2.72.5)
monolog/monolog (3.5.0 => 3.7.0)
league/flysystem (3.24.0 => 3.28.0)
league/flysystem-local (3.23.1 => 3.28.0)
dflydev/dot-access-data (v3.0.2 => v3.0.3)
league/commonmark (2.4.2 => 2.5.1)
laravel/framework (v10.46.0 => v10.48.18)
laravel/prompts (v0.1.16 => v0.1.24)
barryvdh/laravel-debugbar (v3.10.5 => v3.13.5)
phpstan/phpdoc-parser (1.26.0 => 1.29.1)
nikic/php-parser (v5.0.1 => v5.1.0)
doctrine/event-manager (2.0.0 => 2.0.1)
doctrine/dbal (3.8.2 => 3.8.6)
composer/pcre (3.1.4 => 3.2.0)
composer/class-map-generator (1.3.3 => 1.3.4)
symfony/polyfill-php81 (v1.29.0 => v1.30.0)
symfony/polyfill-php73 (v1.29.0 => v1.30.0)
symfony/filesystem (v6.4.8 => v6.4.9)
seld/jsonlint (1.10.2 => 1.11.0)
justinrainbow/json-schema (v5.2.13 => 5.3.0)
composer/semver (3.4.0 => 3.4.2)
composer/ca-bundle (1.5.0 => 1.5.1)
fico7489/laravel-pivot (3.0.11 => 3.0.12)
firebase/php-jwt (v6.10.1)
symfony/stopwatch (v6.4.3 => v6.4.8)
symfony/options-resolver (v6.4.0 => v6.4.8)
sebastian/diff (4.0.5 => 4.0.6)
react/event-loop (v1.5.0)
evenement/evenement (v3.0.2)
react/stream (v1.4.0)
react/cache (v1.2.0)
react/dns (v1.13.0)
react/socket (v1.16.0)
react/child-process (v0.6.5)
fidry/cpu-core-counter (1.1.0)
clue/ndjson-react (v1.3.0)
friendsofphp/php-cs-fixer (v3.51.0 => v3.61.1)
guzzlehttp/promises (2.0.2 => 2.0.3)
psr/http-factory (1.0.2 => 1.1.0)
php-http/message (1.16.0 => 1.16.1)
php-http/promise (1.3.0 => 1.3.1)
influxdata/influxdb-client-php (3.4.0 => 3.6.0)
guzzlehttp/psr7 (2.6.2 => 2.7.0)
guzzlehttp/guzzle (7.8.1 => 7.9.2)
phpstan/phpstan (1.10.59 => 1.11.9)
larastan/larastan (v2.9.2 => v2.9.8)
symfony/http-client (v6.4.4 => v6.4.10)
spomky-labs/pki-framework (1.1.1 => 1.2.1)
paragonie/sodium_compat (v1.20.0 => v2.0.1)
paragonie/constant_time_encoding (v2.6.3 => v3.0.0)
web-token/jwt-library (3.3.1 => 3.4.6)
web-token/jwt-util-ecc (3.3.0 => 3.4.6)
web-token/jwt-signature-algorithm-ecdsa (3.3.0 => 3.4.6)
web-token/jwt-signature (3.3.0 => 3.4.6)
web-token/jwt-key-mgmt (3.3.0 => 3.4.6)
psy/psysh (v0.12.0 => v0.12.4)
laravel/ui (v4.4.0 => v4.5.2)
librenms/laravel-vue-i18n-generator (dev-master c662202 => dev-master 8c8bb89)
mews/purifier (3.4.1 => 3.4.2)
mockery/mockery (1.6.7 => 1.6.12)
nunomaduro/laravel-console-summary (v1.10.0 => v1.11.1)
phpseclib/phpseclib (3.0.36 => 3.0.39)
php-amqplib/php-amqplib (v3.6.1 => v3.7.0)
php-parallel-lint/php-parallel-lint (v1.3.2 => v1.4.0)
phpstan/phpstan-deprecation-rules (1.1.4 => 1.2.0)
sebastian/resource-operations (3.0.3 => 3.0.4)
sebastian/global-state (5.0.6 => 5.0.7)
sebastian/exporter (4.0.5 => 4.0.6)
sebastian/cli-parser (1.0.1 => 1.0.2)
theseer/tokenizer (1.2.2 => 1.2.3)
phpunit/php-code-coverage (9.2.30 => 9.2.31)
phar-io/manifest (2.0.3 => 2.0.4)
myclabs/deep-copy (1.11.1 => 1.12.0)
phpunit/phpunit (9.6.17 => 9.6.20)
laravel/socialite (v5.12.1 => v5.15.1)
socialiteproviders/manager (v4.5.1 => v4.6.0)
spatie/error-solutions (1.1.1)
spatie/backtrace (1.5.3 => 1.6.2)
spatie/flare-client-php (1.4.4 => 1.8.0)
spatie/ignition (1.12.0 => 1.15.0)
spatie/laravel-ignition (2.4.2 => 2.8.0)
symfony/yaml (v6.4.3 => v6.4.8)

* Update dusk version to fix bug

* Update base DuskTestCase to match upstream

* Minor phpstan type changes

* add more types
2024-08-02 22:23:31 -05:00
Jellyfrog
071ca9bc2a Apply fixes from StyleCI (#15698)
Co-authored-by: StyleCI Bot <bot@styleci.io>
2024-01-04 22:39:12 -06: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
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
0a351b49fd Laravel 9.x Shift (#14504)
* Move `resources/lang` folder

* Shift registered middleware

* Remove `fruitcake/laravel-cors` dependency

* Streamline `$commands` property

* Upgrade to Flysystem 3.0

* Shift core files

* Convert `optional()` to nullsafe operator

* Remove unnecessary `$model` property

* Convert route options to fluent methods

Laravel 8 adopts the tuple syntax for controller actions. Since the old options array is incompatible with this syntax, Shift converted them to use modern, fluent methods.

* Convert deprecated `$dates` property to `$casts`

* 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

* Use `<env>` tags for configuration

`<env>` tags have a lower precedence than system environment variables making it easier to overwrite PHPUnit configuration values in additional environments, such a CI.

Review this blog post for more details on configuration precedence when testing Laravel: https://jasonmccreary.me/articles/laravel-testing-configuration-precedence/

* Fix error provider

* Match new symfony syntax

* Match upstream syntax

* Fix route syntax

* generate composer.lock

* Sync back configs

* routes

* composer

* Fix more flare

* fix cors

* sync lang

* Apply fixes from StyleCI (#14517)

Co-authored-by: StyleCI Bot <bot@styleci.io>

* bump larastan

* update packages

* wip

* Temporarily lower phpstan level

* Update phpstan.neon

* wip

* wip

* wip

* Apply fixes from StyleCI (#14592)

Co-authored-by: StyleCI Bot <bot@styleci.io>

* test

* Update CiHelper.php

* Update test.yml

* Update CiHelper.php

* Update CiHelper.php

* Apply fixes from StyleCI (#14616)

Co-authored-by: StyleCI Bot <bot@styleci.io>

* test?

* fix phpstan problems

* dont run snmpsim on github ci

* Fix whitespace

* More whitespace

* More whitespace ???

* I think the space broke it

* fix the reset of the whitespace

* hard code auth guard

---------

Co-authored-by: Shift <shift@laravelshift.com>
Co-authored-by: StyleCI Bot <bot@styleci.io>
Co-authored-by: Tony Murray <murraytony@gmail.com>
2023-04-17 06:51:35 -05:00
Tony Murray
26318dc4b3 Improve trap testing (#14546)
* Improve trap testing
Add helper log() to Trap
Avoid saving to the database at all

* style

* Move all traps to $trap->log()

* Update tests

* Lint and style fixes

* Use correct partial mock call

* more style

* Add docs

* debug in ci

* use the correct log function....................

* all, I guess

* not the first??

* 3rd?

* use event_id to order
2022-11-05 14:43:54 -05:00
Jellyfrog
127776e28c Fix a bunch of "Since fakerphp/faker 1.14: Accessing property.." (#14267) 2022-09-01 12:31:25 -05:00
Tony Murray
0862496e26 Fix api transport mult-line parsing (#13469)
* API transport fix parsing
parse templates after parsing user options, not before

* API transport tests

* fix style and lint

* remove accidental item

* fix more type issues
2021-11-03 13:37:57 -05:00
Tony Murray
38773598e0 Fix syslog widget priority filtering (#13411)
* Fix widget filtering
syslog stores priority as a string
filter strings, not numbers

* Add enums for SyslogSeverity and CheckStatus
2021-10-29 10:32:36 +02:00
Tony Murray
66d0a34f40 Dusk: improve speed and safety (#13370)
* Dusk: improve speed
Instead of refreshing the database between tests, just cleanup all side effects.
Update UserFactory to upstream so hash never has to be generated for default

* Actually, migrate, but not fresh
2021-10-18 10:01:07 +02:00
Jellyfrog
9ef94323f5 Update dependencies (#13310)
* Bump composer dependencies

  - Upgrading brick/math (0.9.2 => 0.9.3)
  - Upgrading composer/ca-bundle (1.2.10 => 1.2.11)
  - Upgrading composer/composer (2.1.3 => 2.1.8)
  - Upgrading composer/xdebug-handler (2.0.1 => 2.0.2)
  - Upgrading dapphp/radius (2.5.5 => 2.5.6)
  - Upgrading doctrine/annotations (1.13.1 => 1.13.2)
  - Upgrading doctrine/cache (2.0.3 => 2.1.1)
  - Upgrading doctrine/dbal (2.13.2 => 2.13.3)
  - Upgrading facade/flare-client-php (1.8.1 => 1.9.1)
  - Upgrading facade/ignition (2.11.0 => 2.14.0)
  - Upgrading fakerphp/faker (v1.15.0 => v1.16.0)
  - Upgrading filp/whoops (2.13.0 => 2.14.3)
  - Upgrading friendsofphp/php-cs-fixer (v2.19.0 => v2.19.2)
  - Upgrading graham-campbell/result-type (v1.0.1 => v1.0.2)
  - Upgrading laravel/dusk (v6.15.1 => v6.18.1)
  - Upgrading laravel/framework (v8.49.2 => v8.62.0)
  - Locking laravel/serializable-closure (v1.0.2)
  - Upgrading laravel/tinker (v2.6.1 => v2.6.2)
  - Upgrading league/commonmark (1.6.5 => 1.6.6)
  - Upgrading league/flysystem (1.1.4 => 1.1.5)
  - Upgrading league/mime-type-detection (1.7.0 => 1.8.0)
  - Upgrading maximebf/debugbar (v1.16.5 => v1.17.1)
  - Upgrading mockery/mockery (1.4.3 => 1.4.4)
  - Upgrading monolog/monolog (2.3.0 => 2.3.4)
  - Upgrading nesbot/carbon (2.50.0 => 2.53.1)
  - Upgrading nikic/php-parser (v4.11.0 => v4.13.0)
  - Upgrading nunomaduro/collision (v5.5.0 => v5.10.0)
  - Upgrading phar-io/manifest (2.0.1 => 2.0.3)
  - Upgrading php-parallel-lint/php-parallel-lint (v1.3.0 => v1.3.1)
  - Upgrading phpdocumentor/type-resolver (1.4.0 => 1.5.0)
  - Upgrading phpmailer/phpmailer (v6.5.0 => v6.5.1)
  - Upgrading phpoption/phpoption (1.7.5 => 1.8.0)
  - Upgrading phpseclib/phpseclib (3.0.9 => 3.0.10)
  - Upgrading phpspec/prophecy (1.13.0 => 1.14.0)
  - Upgrading phpstan/phpstan (0.12.92 => 0.12.99)
  - Upgrading phpunit/php-code-coverage (9.2.6 => 9.2.7)
  - Upgrading phpunit/phpunit (9.5.6 => 9.5.10)
  - Upgrading predis/predis (v1.1.7 => v1.1.8)
  - Upgrading ramsey/collection (1.1.3 => 1.2.1)
  - Upgrading ramsey/uuid (4.1.1 => 4.2.3)
  - Upgrading seld/phar-utils (1.1.1 => 1.1.2)
  - Upgrading symfony/console (v5.3.2 => v5.3.7)
  - Upgrading symfony/css-selector (v5.3.0 => v5.3.4)
  - Upgrading symfony/debug (v4.4.25 => v4.4.31)
  - Upgrading symfony/error-handler (v5.3.3 => v5.3.7)
  - Upgrading symfony/event-dispatcher (v5.3.0 => v5.3.7)
  - Upgrading symfony/filesystem (v5.3.3 => v5.3.4)
  - Upgrading symfony/finder (v5.3.0 => v5.3.7)
  - Upgrading symfony/http-foundation (v5.3.3 => v5.3.7)
  - Upgrading symfony/http-kernel (v5.3.3 => v5.3.9)
  - Upgrading symfony/mime (v5.3.2 => v5.3.8)
  - Upgrading symfony/options-resolver (v5.3.0 => v5.3.7)
  - Upgrading symfony/polyfill-intl-grapheme (v1.23.0 => v1.23.1)
  - Upgrading symfony/polyfill-mbstring (v1.23.0 => v1.23.1)
  - Upgrading symfony/polyfill-php80 (v1.23.0 => v1.23.1)
  - Locking symfony/polyfill-php81 (v1.23.0)
  - Upgrading symfony/process (v5.3.2 => v5.3.7)
  - Upgrading symfony/routing (v5.3.0 => v5.3.7)
  - Upgrading symfony/stopwatch (v5.3.0 => v5.3.4)
  - Upgrading symfony/string (v5.3.3 => v5.3.7)
  - Upgrading symfony/translation (v5.3.3 => v5.3.9)
  - Upgrading symfony/var-dumper (v5.3.3 => v5.3.8)
  - Upgrading symfony/yaml (v4.4.26 => v4.4.29)
  - Upgrading tecnickcom/tcpdf (6.4.1 => 6.4.2)
  - Upgrading theseer/tokenizer (1.2.0 => 1.2.1)

* Update npm dependecies

* Update phpstan ignores after laravel upgrades

* Merge laravel/laravel repo changes
2021-10-02 18:04:59 -05:00
Jellyfrog
e873768845 Bump larastan (#13071)
* Bump larastan

* Use php7.4 for lint test
2021-07-26 09:00:34 -05:00
Tony Murray
4f7c7b3f2a PHP dependencies update (#13034)
* Removing dnoegel/php-xdg-base-dir (v0.1.1)

barryvdh/laravel-debugbar (v3.5.2 => v3.6.2)
barryvdh/laravel-ide-helper (v2.9.1 => v2.10.0)
composer/ca-bundle (1.2.9 => 1.2.10)
composer/composer (2.0.13 => 2.1.3)
composer/semver (3.2.4 => 3.2.5)
composer/xdebug-handler (1.4.6 => 2.0.1)
dapphp/radius (2.5.4 => 2.5.5)
doctrine/annotations (1.12.1 => 1.13.1)
doctrine/cache (1.10.2 => 2.0.3)
doctrine/dbal (2.13.0 => 2.13.2)
facade/flare-client-php (1.5.0 => 1.8.1)
facade/ignition (2.7.0 => 2.10.2)
fakerphp/faker (v1.14.1 => v1.15.0)
filp/whoops (2.12.0 => 2.13.0)
friendsofphp/php-cs-fixer (v2.18.4 => v2.19.0)
fruitcake/laravel-cors (v2.0.3 => v2.0.4)
guzzlehttp/psr7 (1.8.1 => 2.0.0)
laravel/dusk (v6.15.0 => v6.15.1)
laravel/framework (v8.40.0 => v8.49.2)
laravel/ui (v3.2.0 => v3.3.0)
league/commonmark (1.5.8 => 1.6.5)
league/flysystem (1.1.3 => 1.1.4)
monolog/monolog (2.2.0 => 2.3.0)
nesbot/carbon (2.46.0 => 2.50.0)
nikic/php-parser (v4.10.4 => v4.11.0)
nunomaduro/collision (v5.3.0 => v5.5.0)
nunomaduro/larastan (v0.7.4 => v0.7.10)
php-parallel-lint/php-parallel-lint (v1.2.0 => v1.3.0)
php-webdriver/webdriver (1.10.0 => 1.11.1)
phpseclib/phpseclib (3.0.7 => 3.0.9)
phpstan/phpstan (0.12.83 => 0.12.92)
phpstan/phpstan-mockery (0.12.13 => 0.12.14)
phpunit/phpunit (9.5.4 => 9.5.6)
predis/predis (v1.1.6 => v1.1.7)
psr/cache (1.0.1)
psr/http-factory (1.0.1)
psr/log (1.1.3 => 1.1.4)
psy/psysh (v0.10.7 => v0.10.8)
rmccue/requests (v1.8.0 => v1.8.1)
sebastian/global-state (5.0.2 => 5.0.3)
sebastian/type (2.3.1 => 2.3.4)
symfony/console (v5.2.6 => v5.3.2)
symfony/css-selector (v5.2.4 => v5.3.0)
symfony/debug (v4.4.20 => v4.4.25)
symfony/error-handler (v5.2.6 => v5.3.3)
symfony/event-dispatcher (v5.2.4 => v5.3.0)
symfony/filesystem (v5.2.6 => v5.3.3)
symfony/finder (v5.2.4 => v5.3.0)
symfony/http-foundation (v5.2.4 => v5.3.3)
symfony/http-kernel (v5.2.6 => v5.3.3)
symfony/mime (v5.2.6 => v5.3.2)
symfony/options-resolver (v5.2.4 => v5.3.0)
symfony/polyfill-ctype (v1.22.1 => v1.23.0)
symfony/polyfill-iconv (v1.22.1 => v1.23.0)
symfony/polyfill-intl-grapheme (v1.22.1 => v1.23.0)
symfony/polyfill-intl-idn (v1.22.1 => v1.23.0)
symfony/polyfill-intl-normalizer (v1.22.1 => v1.23.0)
symfony/polyfill-mbstring (v1.22.1 => v1.23.0)
symfony/polyfill-php72 (v1.22.1 => v1.23.0)
symfony/polyfill-php73 (v1.22.1 => v1.23.0)
symfony/polyfill-php80 (v1.22.1 => v1.23.0)
symfony/process (v5.2.4 => v5.3.2)
symfony/routing (v5.2.6 => v5.3.0)
symfony/stopwatch (v5.2.4 => v5.3.0)
symfony/string (v5.2.6 => v5.3.3)
symfony/translation (v5.2.6 => v5.3.3)
symfony/var-dumper (v5.2.6 => v5.3.3)
symfony/yaml (v4.4.21 => v4.4.26)

* add ignores
2021-07-13 17:41:04 -05:00
Tony Murray
58ca5994a1 PHPStan fixes (#13038)
* PHPStan fixes
mostly type fixes
semi-risky changes in availability map widget, tested a bit

* fix style

* Style fix

* restore spaces stupid editor removed

* fix the rest

* device model back

* remove ignores

* introduce variable
2021-07-13 16:35:43 -05:00
SourceDoctor
75a0a5e374 Use DNS Location Record for Location (#12409)
* Use DNS Location Record for Location

* .

* .

* .

* grammar fix

* dns class

* code changes

* composer update

* add missing composer.lock update

* reposition Location record parsing

* composer update

* default yes ; change lookup order

* merge master

* .

* move Location Record Parser to Model Level

* .

* fix location record code

* Location precedence with tests
Setting from UI disables all lookups

* update composer.lock and mix-manifest.json

* Style fixes

Co-authored-by: Tony Murray <murraytony@gmail.com>
2021-02-22 11:17:40 +01:00
Jellyfrog
cfd9dce620 Convert Virtual Machine pages to Laravel (#12287)
* Convert Virtual Machine pages to Laravel

* wip

* wip

* wip

* wip

* wip

* wip

* delete

* wip

* wip

* move powerStateLabel
2020-11-11 01:15:20 +01:00
Jellyfrog
50c8033099 Laravel 8.x Shift (#12235)
* Shift HTTP kernel and middleware

* Shift service providers

* Shift console routes

* Shift to class based factories

* Namespace seeders

* Shift PSR-4 autoloading

* Default config files

In an effort to make upgrading the constantly changing config files
easier, Shift defaulted them. This allows you to review the commit
diff for once for customizations when you are done Shifting.

Moving forward, consider using ENV variables or create a separate
config file to allow the core config files to remain as default
as possible.

* Shift Laravel dependencies

* Shift return type of base TestCase methods

From the [PHPUnit 8 release notes][1], the `TestCase` methods below now declare a `void` return type:

- `setUpBeforeClass()`
- `setUp()`
- `assertPreConditions()`
- `assertPostConditions()`
- `tearDown()`
- `tearDownAfterClass()`
- `onNotSuccessfulTest()`

[1]: https://phpunit.de/announcements/phpunit-8.html

* Shift cleanup

* console routes

* composer update

* factories

* phpunit

* bootstrap pagination

* model factory

* wip

* Apply fixes from StyleCI (#12236)

* wip

* Apply fixes from StyleCI (#12238)

* wip

* wip

* wip

* wip

* Apply fixes from StyleCI (#12240)

* wip

* Apply fixes from StyleCI (#12242)

* composer update

* Bump to PHP 7.3 minimum

Co-authored-by: Laravel Shift <shift@laravelshift.com>
2020-11-03 10:18:31 -06:00
Tony Murray
863fb96205 Scheduled maintenance test (#12171)
* alert schedule test

* Fix style

* Skip broken tests for now
2020-10-01 03:00:42 -05:00
Jellyfrog
29f45ca352 Apply fixes from StyleCI (#12124) 2020-09-21 15:59:34 +02:00
Jellyfrog
77c531527c Apply fixes from StyleCI (#12117)
* Apply fixes from StyleCI

* Disable style check
2020-09-21 14:54:51 +02:00
Adam Bishop
bbdb1a2a5d Rewrite smokeping script to be an lnms command (#11585)
* Rewrite smokeping script to be an lnms command

* Add a default number of probes for smokeping

* Formatting fixes

* Refactor to simplify a couple of methods

* Fix a name collision when using more than 60 threads

* Simplify

* First pass at documentation

A few climate fixes too.

I'm a little dubious about the + LibreNMS fix - it could be included
in /etc/smokeping/config if it is really needed, but it sounds like
(looking at git blame) it's needed for if the script generates a broken
configuration file.

I'm thinking we should just not generate broken config.

* Improve testability and add some tests

* Load laravel to make translations available

* Second pass at documentation

* Fix brace

* Extend the device factory to include the type

Also adds a device group fake I created before I realised I didn't need it

* Mimic gen_smokeping.php a little more closely

* Update tests to properly verify old and new behaviour against each other

* Replace gen_smokeping with a wrapper

* Don't double whitespace

Render does this automatically.
Explicitly order by hostname too.

* Make faker less likely to generate duplicates

I tried adding a unique constraint here, but it didn't have the
intended effect.

Extending the hostname like this seems to work fine - I tried
generating 10 million hosts and got no duplicates, compared to
duplicates appearing with as few as 100 hosts without this
 change.

A true fix would be to add an 'fqdn' fake upstream.

* Make the tests more robust

* Assorted bug fixes

* Style corrections

* Handle 'generic' devices

* Fix an issue that came up during rebase

Co-authored-by: Tony Murray <murraytony@gmail.com>
2020-09-18 00:04:54 -05:00
TheGreatDoc
2f245c0e82 Removed sensor_id from factory()->Sensor:class 2020-06-08 06:30:13 +02:00
TheGreatDoc
e1d5b8ca5f Added sensor_oid to factory->sensor 2020-06-07 12:49:30 +02:00
TheGreatDoc
95ffe2a8b4 Fix correct field 2020-06-07 11:55:54 +02:00
TheGreatDoc
6f91e9e287 Create factory->Sensor model. Fix some format issues in UpsTrapsOnBattery.php and more UpsTrapsOnBatteryTests 2020-06-07 11:21:14 +02:00
Heath Barnhart
e414352356 OSPF SNMP Trap Handlers (#11647)
* Intitial push working tests

* Adding unit tests

* created interface state unit tests

* started ospf nbr unit tests

* finished nbr change unit tests

* precommit checks pass

* removed uneccsarry relationship
2020-05-21 15:15:39 -05:00
Tony Murray
73ac93d729 Fix errors for some devices loading components (#11527)
* Test WIP

* WIP

* port getComponents to Eloquent

* port more

* simpler creation

* change to explicit arrays

* add missed file

* restore commented code

* fix inserting null value for component prefs

* Fix some bugs in setCompenentPrefs
Can't create tests without fixing bugs first :D

* another test

* another test

* Modernize setComponentPrefs

* Test for event log entries

* Fix delete event

* fix invalid values for component toggles

* status log too

* Use Setters to work around bad data, $casts doesn't do what we want.
2020-05-08 00:30:56 -05:00
Heath Barnhart
a342a45b74 VMWare Guest State Traps and UI (#11035)
* Initial push

* power trap tests

* vmware heartbeat trap tests

* heartbeat trap test

* created utilclass for common functions

* Changed util class name to better reflect its use

* make vm power state changes to db

* Traps will modify DB

* Removed unecesarry relationship

* Added vminfo modelfactory, tests, and fixed format

* Added suspended state to ui
2020-01-17 18:16:14 +01: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
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
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
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
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
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
Tony Murray
4c6f917d9e Updates to snmptrap handling (#9010)
* Updates to snmptrap handling
fix a bug in findDeviceByIP.  Add more tests for that.
Move handle outside of the Trap class, it doesn't fit.
Add developer docs.

* fix tests copy paste issue.

* Fix findByIp when port may not exist.

* Logging: Output context (and extra) if they exist

* Generic trap event logging and new config setting.
2018-08-14 07:56:16 +01:00
TheGreatDoc
9940c884f5 Fixed snmptraps. (#8898)
* Fixed snmptraps.

* Fixed space

* Added bgp down/up and authentication failure

* Fixed typo

* Fixed some typos, arrays, astext and format_hostname

* Updated documentation

* Moved code to a function

* Some refactor

* Minor fixes

* Minor fixes 2

* More minor fixes

* Changes requested by Tony

* Minor fixes

* Moved include to snmptrap.php

* Refactor traps to use object oriented code.

Should trigger events too/instead, but we'll leave that.
Testing todo

* Add tests and fix things so they actually work
Not checking events yet.

* Fixed typo and severity level

* Update composer deps, I think the lock file wasn't right.
add json and mbstring extension deps while I'm at it.

* Fix several issues with phpunit fixtures
2018-08-11 16:37:44 -05:00
Tony Murray
1ad7f3138b Add Laravel to LibreNMS (#8318)
* Add Laravel to LibreNMS.

* Try to set permissions during initial install and first composer update to Laravel.

* Fix composer.lock
Fix missing db config keys

* Start building v1 layout
Port ajax_setresolution, inject csrf into jquery ajax calls
Layout works, building menu
Partially done.

* Fix device group list
remove stupid count relationships

* Print messages for common boot errors.
Don't log to laravel.log file.
Log to error_log until booted, then librenms.log

* Fix up some issues with Config loading
Start of custom directives

* Custom blade directives: config, notconfig, admin

* Preflight checks
Only load config files once.

* Update the composer.lock for php 5.6

* Menu through routing

* Start of alert menu

* Better alert scopes

* reduce cruft in models

* Alerting menu more or less working :D

* Fix style

* Improved preflight

* Fix chicken-eggs!

* Remove examples

* Better alert_rule status queries
Debugbar

* fix app.env check

* User Menu

* Settings bar (dropped refresh)
Search JS

* Toastr messages

* Rename preflight

* Use hasAccess(User) on most models.
Add port counts

* Missed a Preflight -> Checks rename

* Fix some formatting

* Boot Eloquent outside of Laravel
Use Eloquent for Config and Plugins so we don't have to connect with dbFacile inside Laravel.
Move locate_binary() into Config class

* Config WIP

* Try to fix a lot of config loading issues.

* Improve menu for non-admins removing unneeded menus
url() for all in menu

* Only use eloquent if it exists

* Include APP_URL in initial .env settings

* Implement Legacy User Provider

* Helper class for using Eloquent outside of Laravel.
Allows access to DB style queries too and checking the connection status.

* Fix up tests

* Fix device groups query

* Checking Travis

* copy config.test.php earlier

* dbFacile check config before connecting
Don't use exception to check if eloquent is connected, it gets grabbed by the exception handler.
Ignore missing config.php error.

* Fix config load with database is not migrated yet.

* Remove Config::load() from early boot.

* Use laravel config settings to init db (this prefers .env settings)
Fix bgp vars not set in menu
add _ide_helper.php to .gitignore

* Restrict dependencies to versions that support php 5.6

* Update ConfigTest

* Fix a couple of installation issues

* Add unique NODE_ID to .env

* Correct handling of title image

* Fix database config not loading. Thanks @laf

* Don't prepend /

* add class_exists checks for development service providers

* Fix config value casting

* Don't use functions that may not exist

* Update dbFacile.php

* d_echo may not be defined when Config used called.

* Add SELinux configuration steps
More detailed permissions check.
Check all and give complete corrective commands in one step.

* Ignore node_modules directory

* Re-add accidetal removal
2018-05-09 08:05:17 -05:00