Commit Graph

43 Commits

Author SHA1 Message Date
Tony Murray
cf7b025fb1 Custom Maps configurable new map defaults (#16212) 2024-07-17 16:05:44 -05:00
Tony Murray
43e6846cbc Custom Map: Show crosshairs when adding (#15978)
* Custom Map: Show crosshairs when adding
When adding a node or edge, give cursor feedback.
Updates js deps

* Missed package-lock.json
2024-04-25 15:36:16 -05:00
Justin Lentz
ee114218d4 Add PollerGroup as an option for OxidizedMap (#15696)
* Update SettingOxidizedMaps.vue

* Update api_functions.inc.php

* Update app.js

* Update app.js

* Style

* Update mix-manifest.json
2024-01-15 22:55:20 +00:00
Tony Murray
6a32fcec2d Update javascript dependencies (#15651) 2023-12-15 11:42:09 -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
Tony Murray
806e10ace1 Fix snmp.timeout setting via Web UI (#13937)
Add Float type for global settings
2022-04-23 08:35:24 -05:00
Tony Murray
0a84098211 Port Validation Page to Laravel (#13921)
* Revamp validate web page
 to load page then validate, instead of validate then load page

* style fixes

* lint cleanups

* fixes

* translations and a couple fixes

* style fixes

* move result serialization into the class.
2022-04-14 11:22:40 -05:00
Jellyfrog
09929bd686 Implement OAuth and SAML2 support (#13764)
* 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>
2022-02-20 22:05:51 +01:00
Jellyfrog
f4f297fd48 Update JS deps (#13694) 2022-01-23 19:45:44 +01:00
Tony Murray
edd645264c Regenerate app.js (#13613) 2021-12-10 22:28:20 -06:00
martinberg
9e6590104b Add more device fields to oxidized map configuration (#13604)
* fixed typo and added sources

* Updated app.js

* Add mix-manifest.json
2021-12-09 13:45:00 -06:00
Tony Murray
5900edbf16 PHP-Flasher for toast messages (#13401)
* 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
2021-10-29 09:13:56 -05:00
Tony Murray
0b8b97bb68 Push Notifications (Mobile and PC) (#13277)
* 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>
2021-10-06 07:29:47 -05:00
Tony Murray
66dddbaa66 SNMP Capabilities (#13289)
* SNMP Capabilities
Allow all available auth algorithms to be set in global settings
cleanup other usages

* fix style
2021-09-28 18:35:59 -05:00
Negatifff
962e05ea6b Add sysobjectid and hardware fields into oxidized maps (#13221)
* add sysobjectid and hostname field into oxidized maps

* add app.js
2021-09-16 19:00:06 -05:00
Tony Murray
c5b63bde86 New Blade Components: x-device-link, x-port-link, x-graph-row, x-popup (#13197)
* working popover

* popup component

* cleanup

* finalize device-link component

* attributes WIP

* working graph component

* widgets WIP

* More dynamic configs

* Graph row component

* Build CSS so we can use a dark theme

* graph row set columns

* only one popup visible at a time.

* Just set graph row width statically

* responsive WIP

* rsponsive option for graph-row "working"

* remove @deviceLink and @portLink

* fix non-responsive graph row

* update js/css

* fix style

* bad type?

* types

* types

* types #3

* remove testing code

* full rebel, no closing tags for meta and link

* match previous formatting

* fix vlans display

* restore newline

* remove silly comment

* remove unused line

* style I guess
2021-09-10 08:07:08 -05:00
Jellyfrog
57cedd5158 Add support for description texts in Settings page (#13104) 2021-09-01 18:58:51 -05:00
Tony Murray
79de1ca28e Select dynamic fixes (#13187)
* Fix select-dynamic changes
require validation for select-dynamic
allow 0 in config:set

* fix zero_or_exists

* validate, not validation :D
2021-08-31 20:43:02 +02:00
Tony Murray
d646562e4e Dynamic Select setting (#13179)
* Dynamic Select setting
embeds select2 and uses ajax to call to backend for options
poller-group included

* fix validation a bit

* fix typehint

* move minProperties into the select schema

* Change dashboard-select to select-dynamic
Love deleting code

* Change dashboard-select to select-dynamic
Love deleting code
wire up a few select2 options

* fix whitespace

* Not a model, just an object

* Suggestion from @SourceDoctor autocomplete values of select and select-dynamic

Got a little creative with InternalHttpRequest...
2021-08-28 06:46:53 -05:00
Tony Murray
50dd6c1685 Fix ldap/ad group webui settings (#12967)
* Fix LDAP groups UI WIP

* fix up ldap and ad group settings

* production compiled assets
2021-06-19 16:16:02 +02:00
Tony Murray
2d752925b0 Oxidized improvements (#12773)
* Oxidized API cleanup
Import more settings to the UI
use lnms config:set

* validate os and type exist

* map settings WIP

* oops

* editing working.  Needed to add new property to pass update state to child

* implement deleting and handle text overflow a little better.

* Update app/Models/Device.php

Co-authored-by: Jellyfrog <Jellyfrog@users.noreply.github.com>

* Update app/Models/Device.php

Co-authored-by: Jellyfrog <Jellyfrog@users.noreply.github.com>

* revert change

* fix style

* add return

Co-authored-by: Jellyfrog <Jellyfrog@users.noreply.github.com>
2021-05-11 08:08:59 -05:00
Jellyfrog
d7e88bf311 Upgrade to Laravel Mix 6 (#12421) 2021-01-06 20:18:43 -06:00
Tony Murray
e8d0548317 Fix nets can't add (#12341)
fix some issues with the list settings widget
update Laravel Mix
update javascript
2020-11-24 19:47:40 -06:00
Jellyfrog
86220eed9e Add more types to settings page (#11918)
* Add a executable type to settings page

This allow us to validate the value is a valid executable

* Add a directory type to settings page

This allow us to validate the value is a valid directory

* fixes
2020-07-21 20:51:23 -05:00
Tony Murray
300645388f Dispatcher Service settings (#11760)
* Poller settings WIP

* Poller settings WIP2

* working on SettingMultiple

* setting multiple working

* settings sent with all required info

* fix translation

* Fix keys

* fix groups setting

* Apply settings to service
fixes and validations for setting

* don't error when no poller_cluster entry exists

* hid tab when no poller cluster entries

* Authorization

* make prod

* daily maintenance toggle should be advanced

* Update schema def
2020-06-08 08:27:03 -05:00
Tony Murray
425ac28bab Fix js warning in settings, update js deps (#11324) 2020-03-22 19:30:58 +01:00
dGs-
7020de0b7f replace AES by SHA for authalgo (#11314) 2020-03-20 17:30:16 +01:00
Tony Murray
fd8de950be Wrong translation key for sorting (#11281) 2020-03-12 20:39:25 -05:00
Tony Murray
82eddfcf27 Sort Settings by translated names (#11280)
If browser language is different from the language set in LibreNMS, it might sort slightly incorrectly.
2020-03-12 11:39:06 -05:00
Tony Murray
3aa594bed1 Fix some IE issues with settings page (#10819) 2019-11-17 05:14:16 +00:00
Tony Murray
8bc0af7b85 Translation generation command (#10794)
additional translatable strings: Filter Settings in settings page and Global Search on all pages.
remove duplicate fr key
also, language file signatures were wrong as I had a testing version of the vue generator
2019-11-09 13:01:41 +00:00
Tony Murray
90bd2275cf Unbundle javascript language files (#10788)
* Unbundle javascript language files
automatically generated for each install

* update docs

* update laravel-vue-i18n-generator
a newer (unreleased) verison is need for English fallback to work
2019-11-08 15:18:41 +00:00
Tony Murray
552d487ae1 Fix email_auto_tls toggle (#10785)
* Fix email_auto_tls toggle

* Clean up smtp settings a bit
user/pw depend on auth setting
2019-11-08 06:27:40 +00:00
PipoCanaja
437616c32b French translation + JS files (#10763) 2019-11-06 09:10:56 +01:00
SourceDoctor
784b95a311 German translation for settings page (#10764)
* german language support for redesigned settings area

* language fixes

* fix key port_purge -> ports_purge

* compiled js files for german language
2019-11-05 20:01:31 +01:00
Tony Murray
55750cebb4 Fix settings search (#10777)
restore dynamic menu building... data manipulation in js is yuck
2019-11-04 21:16:06 -06:00
SourceDoctor
d90b0212b9 settings.php 'ports_purge' key fix (#10774)
* fix key port_purge -> ports_purge

* add missing compiled js language files
2019-11-04 01:01:08 +01:00
Tony Murray
9b4406ec9e Add Graylog settings (#10740)
* Add Graylog settings
Fix order of settings
Don't clobber text input when validation fails
fixed spacing for setting reset/undo buttons and help

* fix style
2019-10-26 00:29:47 +00:00
Jellyfrog
debec7032a Use Mix built in cache busting (#10733) 2019-10-22 10:01:40 +01:00
Tony Murray
1d7347dd62 Validate config schema, add types to all (#10723)
* Vaildate config_definitions.json schema

* finish adding types and other cleanups
2019-10-20 23:08:40 +00:00
Tony Murray
f9b704cb29 Add distributed polling config settings (#10711)
Show error on cli when type or validation is not set
2019-10-17 18:32:27 +00:00
Tony Murray
699aa8a042 Consolidate configuration settings and implement dynamic webui settings (#9809)
* initial db/defaults dump

* numeric values

* Remove $config['time']

* Use config_definitions.json

* try setting definition as a complete array

* a little more

* fix format

* WIP converting dynamic setting pages

* rewriting the webui

* remove legacy and add translations

* finish email section

* improve navigation
update js a bit

* Import the remaining existing settings

* Update backend still some wip
migration

* fix config loading (db not overriding defaults)

* some cleanup

* more array collapsing

* update settings

* Settings search

* add purge settings to ui, order groups and sections

* collapse more arrays

* Auth definitions WIP

* remove needless slash escapes

* add warning to json

* moving settings from defaults.inc

* remove slow_statistics

* Move rrdtool settings to the poller section

* Use translations more consistently

* removing more settings from defaults.inc.php

* show setting name in tooltip

* allow help text to be shown on mobile

* disable settings that are set in config.php

* Implement undo and reset to default.

* Vue.js functional

* Vue.js WIP

* Implement tabs component

* accordion WIP

* lodash ver update

* two items

* Accordion somewhat working

* hash navigation

* Refine Accordion

* Fix up tab styling a bit

* Cleaner tab selected property
Hide html while loading

* spinner?

* Icon support
property for accordion to active

* WIP

* Tabs/Sections from ajax

* Setting Component skeletons

* Dynamic Component resolution

* Basic functionality

* toggle class

* Refactor components

* translate tabs and accordions

* simple array attempt

* improve readonly tooltip

* array styling

* array value editing

* organize snmp info

* Handle initial tab/section in url

* Use Laravel to parse tab/section, dump old

* Draggable array entries

* v-tooltip, for clickable (and touch) help tooltips
disable draggable

* Navigation WIP

* Navigation WIP

* groups computed

* filter settings

* fix event reference

* vue.js i18n initial

* missing description = just setting name

* en fallback

* tidy up the language support and js generation

* persist value to db

* fix issue with 0

* Delete settings from DB instead of setting them to default

* ldap-groups
fixup style

* Default dashboard selection

* fix array of options instead of object

* allow custom validation for settings

* translate options in SettingSelect

* SNMP v3 WIP

* fix setting arrays

* Split persist out of set

* Hook up events for SNMP v3 Auth
correct Config::persist behaviour with arrays

* dependent settings (primitive for now)
actually update the settings values in the LibrenmsSettings component

* more complex "when" behaviour

* remove un-needed seeder

* add poller_modules.cisco-qfp

* remove en.json (disable warning)

* don't set default for log_dir or log_file, otherwise it won't be processed correctly

* Fix module order
add some missing settings

* more config corrections

* correct graphs
correct loading values set to null (although it should have no difference)
remove project_name_version

* Add nfsen settings.  Docs are very confusing, so might have flubbed something
remove option for array definition of select option as numeric indexes messes it up

* Correct more upstream config differences

* Config cleanup after a bunch of merges.

* Fixes

* add version tags to js/css files
remove old js

* Print out full settings list read-only

* Add http_proxy setting
fix indents in config_definitions.json

* repeaters default is 0 (aka 20)

* cleanups

* rewrite the dynamic config docs

* add language docs

* Don't show snmp v3 auth add/remove if disabled by config.php
2019-10-16 21:22:05 +00: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