* Disable plugins that have errors
Disable plugin if a hook throws an error and set a notification
Move notification code to class, so we can access it
Clear notification when plugin is attempted to be enabled again
* fix style and lint fixes
* another lint fix and handle if property is missing
* Error reporting
* Move code to ErrorReportingProvider
Enable reporting of error (and warning) messages.
report module exceptions
* Restore flare key
Not needed to set late anymore. We set up filtering before it is initialized.
* Remove unnecessary and maybe double Flare report
* lint
* Cannot use typed properties yet, use phpdoc
* fix handleError return type
* Filter both exceptions and reports (so we don't miss any)
Consolidate the check if reporting should be enabled
* Cache reportingEnabled check for the runtime
* Split out middleware to improve readability
Logging of why reporting is disabled
Fix reportingEnabled cache
* Style
* Return some user data
* Change to class based middleware, it looks nicer
* Fix error page error id report, add url.
* also rewrite intended url
* remove link
* Move ignition to production and update flare-client
Co-authored-by: Tony Murray <murraytony@gmail.com>
* Implement OAuth and SAML2 support via Socialite
* Add socialite docs
* fixes
* Additional information added
* wip
* 22.3.0 targeted version
* Allow mysql auth as long as there is a password saved
Co-authored-by: laf <gh+n@laf.io>
Co-authored-by: Tony Murray <murraytony@gmail.com>
* Improve check_requirements script to dynamically read requirements.txt
* Don't dynamically load requirements for python2
* Make sure we check python3 dependencies with python3 binary
* Quote variable to fix SC2086
* Add dynamic_check_requirements.py
* Use dynamic_check_requirements.py for python3
* Revert "Don't dynamically load requirements for python2"
This reverts commit 4485c8fcf9e0075fcf212e4f8bbc59ed75e144b5.
* Revert "Improve check_requirements script to dynamically read requirements.txt"
This reverts commit a9c83350d9de6b1b3b0a313dca23af749a08300a.
* Add LIBRENMS_DIR variable to exec, check for permission errors
* Make sure we check for permission errors on pip install
* Fix shellcheck SC2046 missing quotations
* Make sure we install pip packages as librenms user for Python3
* revert daily.sh, update dependencies in composer
* And in the validation
* should be executable
Co-authored-by: Tony Murray <murraytony@gmail.com>
* PHP-Flasher for toast messages
Allows customized template
removes dependency on unmaintained package using dev stability
no solution for javascript toasts yet
Use DI in places it makes sense
allow html in flashes
Use "template.librenms" as a default notification style
merge toast containers
toastr needs to be second because it will find the containr made by flasher, but the inverse is not true
upgrade php-flasher to add custom options and persistent notifications
Add dark theme
* update composer.lock
* Update manifest and add service worker
cleanup icons a bit
* Push notifications WIP
* navigate working
* cleanup
* acknowledge wired up
* Set VAPID keys on composer install
* Component to control notification permissions.
* Allow all user option to validate
* Enable on browser load if transport exists.
* Check for transport before showing user permissions
translations
* Documentation
* style fixes
* access via the attribute model
* fix alerting test
* update schema
* cleanup subscription on disable
* non-configurable db and table for webpush subscriptions (respect system connection)
* revert AlertTransport change
hopefully phpstan can figure it out
* phpstan fixes
* Support custom details display
* Match transport names to brand's preferred display
* less duplicate id errors
* Tests are done in Laravel code now so
remove legacy function usage... could be better, but ok
* Style fixes
* Style fixes 2
* Fix alert test
* Doc updates requires HTTPS and GMP
* unregister subscription when permission is set to denied
* cleanup after user deletion
* delete the right thing
* fix whitespace
* update install docs to include php-gmp
* suggest ext-gmp
* update javascript
* Update functions.php
Co-authored-by: Jellyfrog <Jellyfrog@users.noreply.github.com>
* lnms config:set works for os settings
validate against os schema (gives us path and value validation)
fix unset in config:set
json formatted output in config:get to match input parsing
* inline errors
* Check that OS exists
* Fix lock file
* Set param type
* correct method name, it no longer returns a boolean
* rename --json to --dump
tests and fixes
* fix whitespace
* missed one whitespace
* typehints
* add connection typehint
* try again
* PHP8 support
looks like one upstream package needs to be updated also.
* Sync dependencies with laravel/laravel
* remove php 8 tests for now
Co-authored-by: Jellyfrog <Jellyfrog@users.noreply.github.com>
* Fix disabling of built-in commands when using ./lnms in production
It wasn't working correctly after Laravel upstream changes
* Use nunomaduro/laravel-console-summary
* fix command name
Co-authored-by: Tony Murray <murraytony@gmail.com>
* Update to Composer 2
No need to roll our own checks anymore since this is now built in.
Also limit the update check to once a week.
* update
* Make Composer wrapper report correct exit code
* Update composer_wrapper.php
* re-enable extension check
Co-authored-by: Tony Murray <murraytony@gmail.com>
* 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>
* Implement locks in the file cache
* Replace custom locks
* implement restore lock
Used when re-hydrating
* remove legacy use statements
* Add class descriptions
* Fix style
* Default to database cache driver
* missed cache_locks table
prevent chicken-egg issue
* style fixes
* Remove custom file lock implementation
* missed items from file cache
* Update schema definition
hmm, other schema noise must be from manual modification as this is generated from a freshly migrated db.
* require predis, it is pure python, so no harm in adding
* and set predis as the default client
* Shift bindings
PHP 5.5.9+ adds the new static `class` property which provides the fully qualified class name. This is preferred over using class name strings as these references are checked by the parser.
* Shift core files
* Shift to Throwable
* Shift Laravel dependencies
Add laravel/ui dependency
Use our fork of string-blade-compiler
* Shift config files
Default config files
In an effort to make upgrading the constantly changing config files
easier, Shift defaulted them so you can review the commit diff for
changes. Moving forward, you should use ENV variables or create a
separate config file to allow the core config files to remain
automatically upgradeable.
Restore config header comment
* Remove duplicate named routes
* add basic trust host middleware
* Trusted proxies should be default null
* Fix missed rename
* wip
* Rename routes
* Update trustedproxy.php
* Update Kernel.php
* revert trustedproxy.php
It only accepted '*' and not ['*']
* Fix tests
fake request was causing the error
Co-authored-by: Laravel Shift <shift@laravelshift.com>
Co-authored-by: Tony Murray <murraytony@gmail.com>
* Change CORS implementation
allows for upstream integration of Laravel 7
* migrate config
* skip implementing patterns for now
* Expose settings to the webui
* Make db settings apply
* Remove unused routes
Prevents route:cache from working also
* Run artisan optimize after composer install
Helps cleaning up issues with upgrades, and also makes laravel a bit
faster
* Update composer.json
Co-authored-by: Tony Murray <murraytony@gmail.com>