Compare commits

..

6886 Commits

Author SHA1 Message Date
snipe f697ef1d03 Pint 2026-05-09 12:20:45 +01:00
snipe 256003b675 Added password reset prompt 2026-05-09 12:20:40 +01:00
snipe 464db7f473 Last one (I hope) 2026-05-08 15:59:37 +01:00
snipe a56426e6f4 And still more 2026-05-08 15:59:00 +01:00
snipe 19e58a8640 Still more localization 2026-05-08 15:56:03 +01:00
snipe d83b64ff32 Added tests 2026-05-08 15:55:48 +01:00
snipe e839d989ec Still more localizations 2026-05-08 15:53:01 +01:00
snipe b8d2be6c3a Added test 2026-05-08 15:52:45 +01:00
snipe b264e07327 More localizations 2026-05-08 15:52:05 +01:00
snipe 25a08faa6d Updated readme 2026-05-08 15:51:45 +01:00
snipe 926afa6c28 Added throttle 2026-05-08 15:43:26 +01:00
snipe e3a042f334 More translations 2026-05-08 15:39:23 +01:00
snipe 082ebeb27f Localize prompts and tools 2026-05-08 15:39:09 +01:00
snipe aed11dfce7 Added readme 2026-05-08 15:18:54 +01:00
snipe 4090e05536 Pint 2026-05-08 15:18:46 +01:00
snipe 49818175cd Split name into two pieces 2026-05-08 15:17:55 +01:00
snipe ef4b2349eb Added common prompts 2026-05-08 15:14:27 +01:00
snipe 926f7dd5f7 Added profile update tool 2026-05-08 15:03:49 +01:00
snipe 8ccc705473 Add a tool to update your own profile 2026-05-08 14:58:08 +01:00
snipe c75d0effe2 Pint :( 2026-05-08 13:10:06 +01:00
snipe 96a3a11f00 This doesn’t actually work yet 2026-05-08 13:09:54 +01:00
snipe 9c97a06c7e Additional tools 2026-05-08 11:45:30 +01:00
snipe 2542221fc9 Added tests 2026-05-08 11:45:16 +01:00
snipe 664a1906c1 Dept tooling 2026-05-08 10:59:06 +01:00
snipe 08b2d0c85d Licenses MCP stuff 2026-05-08 10:37:25 +01:00
snipe dc9f0104f6 Gate checks and accessory scoping 2026-05-07 22:40:23 +01:00
snipe 6b2f2d68b7 Add/delete/checkout/checkin/edit MCP tools for Components 2026-05-07 17:45:29 +01:00
snipe 9aa5ba5cd0 MCP for accessories management 2026-05-07 17:38:03 +01:00
snipe b74e79b814 Added user create, show, list, delete 2026-05-07 17:27:20 +01:00
snipe 7636c2436c TEMPORARILY remove api auth from MCP routes - this is breaking the inspector for me 2026-05-07 16:36:39 +01:00
snipe 0eec6e3688 Fixed tests 2026-05-07 16:36:07 +01:00
snipe d961714358 Updated response 2026-05-07 16:34:38 +01:00
snipe 51bdc3b020 Added audit, delete and update tools 2026-05-07 16:23:34 +01:00
snipe 6a47b4e6a7 More tests 2026-05-07 16:23:08 +01:00
snipe 656dae04a7 Added views 2026-05-07 16:09:21 +01:00
snipe 2f3df9a085 Allow lookup by serial number 2026-05-07 16:01:46 +01:00
snipe 0514901cbc Updated docs for laravel 12 2026-05-07 16:01:27 +01:00
snipe cc0169d2f7 Use auth:api on routes 2026-05-07 16:01:13 +01:00
snipe 490ce6fa5d Added passport oauth for mcp 2026-05-07 16:00:46 +01:00
snipe b731ec6dd6 Added oauth routes to MCP 2026-05-07 15:58:36 +01:00
snipe 91bd2064fd Added tests 2026-05-07 15:54:37 +01:00
snipe deb56f250f Added routes file 2026-05-07 15:54:30 +01:00
snipe 7d57ce4679 Added basic asset tools 2026-05-07 15:54:23 +01:00
snipe 84fea96949 Added AssetBuilder to sequester scopes better
This isn’t fully baked yet - it would touch way too much main code to flip it over just yet
2026-05-07 15:41:01 +01:00
snipe eada5f503c Install laravel MCP 2026-05-07 14:41:02 +01:00
snipe 575e825579 Typo 2026-05-07 12:42:04 +01:00
snipe dc8cbf4786 Stricter FMCS enforcement in API 2026-05-07 12:41:46 +01:00
snipe 5f81a48d8b Merge pull request #18986 from grokability/#18905-asset-location-on-checkin
Fixed #18905 - update location of child assets if parent asset is checked in
2026-05-07 12:32:44 +01:00
snipe c22e4c00a5 Fixed #18905 - update location of child assets if parent asset is checked in 2026-05-07 12:20:25 +01:00
snipe 9b5ead39d3 Merge pull request #18985 from grokability/#18959-slack-notification-location
Fixed #18959 - refresh data on checkout notification
2026-05-07 12:06:19 +01:00
snipe 158e66f9c6 Fixed #18959 - refresh data on checkout notification 2026-05-07 11:59:01 +01:00
snipe bd8e944e2f Merge pull request #18967 from marcusmoore/fixes/test-namespace
Fixed namespace for test class
2026-05-07 11:13:31 +01:00
snipe 06d95b679b Merge pull request #18983 from grokability/add-option-to-export-only-assigned-or-unassigned
Allow custom report to filter on assigned/unassigned
2026-05-07 11:11:01 +01:00
snipe ff75b9eed8 Merge pull request #18982 from marcusmoore/consolidate-test-macros
Improved test macros for streamed content
2026-05-07 11:02:28 +01:00
snipe 17a88fcb80 Allow custom report to filter on assigned/unassigned 2026-05-07 11:00:43 +01:00
snipe eca34de593 Added null-safe operator for components and consumables 2026-05-07 10:39:57 +01:00
snipe 40e89756bf Extend new operators to custom fields 2026-05-07 10:36:59 +01:00
Marcus Moore 55e46b2d15 Improve macro 2026-05-06 12:08:18 -07:00
Marcus Moore 02383aad7b Fix assertSeeTextInStreamedResponse and assertDontSeeTextInStreamedResponse macros
These were previously only checking the first column and not all of the data.
2026-05-06 11:46:28 -07:00
Marcus Moore e75f54cc1c Move helper macros to CustomTestMacros 2026-05-06 11:40:37 -07:00
snipe 3668c24d02 Pint again 2026-05-06 17:50:45 +01:00
snipe a84533b4f4 Quick tweak to advanced search aliases 2026-05-06 17:50:33 +01:00
snipe cbe750cc9e Merge pull request #18980 from uberbrady/reduce_scim_error_level
Throw 4xx SCIMExceptions when SCIM clients send bad data
2026-05-06 16:09:53 +01:00
snipe a77dedf3d7 Merge pull request #18979 from uberbrady/improve_saml_nonces
Add new unique constraint and improved nonce-checking logic for SAML
2026-05-06 15:26:39 +01:00
Brady Wetherington b6ce823cc2 Make sure to throw 400-series SCIMExceptions when SCIM clients send bad data 2026-05-06 15:24:58 +01:00
snipe f7e8ce2ade Merge pull request #18969 from grokability/advanced-search-improvements
🎥 Advanced search improvements
2026-05-06 13:02:07 +01:00
snipe 62e5b71dc1 Added loads of comments - this is gnarly stuff 2026-05-06 12:40:40 +01:00
snipe 3d04324595 Added searchableRelationAliases to user model 2026-05-06 12:39:31 +01:00
snipe 468cf73b97 Updated help text 2026-05-06 12:38:15 +01:00
snipe 5b90f9fb87 Switched to templates for readability (still gross, but whatever) 2026-05-06 12:37:57 +01:00
snipe 9131dbf09b Added more filter options 2026-05-06 12:03:55 +01:00
snipe a425234365 Fixed typo, added context (“worm”? Really?) 2026-05-05 22:00:02 +01:00
snipe cd4e268c72 Added/updated tests 2026-05-05 20:36:39 +01:00
snipe b94945a461 Fixed RB-4121 2026-05-05 20:36:31 +01:00
Brady Wetherington 5b0a779c07 Add new unique constraint and improved nonce-checking logic 2026-05-05 15:23:07 +01:00
snipe d099bf2983 Merge pull request #18970 from uberbrady/fix_case_sensitive_classname
Change capitalization on SCIMUser; Linux filenames are case-sensitive
2026-05-05 13:22:28 +01:00
Brady Wetherington f7add0e4dd Change capitalization on SCIMUser; Linux filenames are case-sensitive 2026-05-05 13:19:59 +01:00
snipe 1e1cc897ad Added search help 2026-05-05 12:53:30 +01:00
snipe 04e2c59aa9 Typo 2026-05-05 12:40:56 +01:00
snipe 03bd3517be Added ablity to use “not:” or “!” to exclude results 2026-05-05 12:40:42 +01:00
snipe eeba5bc8fd Cleanup 2026-05-05 12:30:25 +01:00
snipe 1f54180c9c Removed highlighting in advanced search 2026-05-05 12:20:36 +01:00
snipe 8497a27c81 Added tags 2026-05-05 11:45:43 +01:00
snipe 80afa470ee Fixed issue where the button classes would get overwritten when closed and the modal re-opened 2026-05-05 11:39:45 +01:00
snipe 10c750e1a2 Added localstorage to handle remembering and/or 2026-05-05 11:33:56 +01:00
snipe 3aa175b36d Added and/or operator 2026-05-05 11:32:08 +01:00
snipe e76036965b Same for assets 2026-05-05 10:58:43 +01:00
snipe 2bb86a2ec1 Fixed RB-20854 - only allow scalars for users/hardware query strings 2026-05-05 10:52:51 +01:00
Marcus Moore a89c8c6e5b Fix namespace 2026-05-04 13:47:58 -07:00
Marcus Moore 1bdf205ca6 Run pint on test 2026-05-04 13:47:47 -07:00
snipe ccf801137a Fixed typo 2026-05-04 21:46:47 +01:00
snipe ef746a173e Fixed RB-4120 - Column 'location_id' in where clause is ambiguous 2026-05-04 21:46:40 +01:00
snipe e3552f4e36 Merge pull request #18966 from uberbrady/scim_php_82_fixes
Switch to PHPv8.2-compatible way of invoking a constructor and a method
2026-05-04 20:41:34 +01:00
snipe 75d9357488 Removed files notes field - confusing and kinda redundant 2026-05-04 20:34:12 +01:00
Brady Wetherington 26c028cf37 Switch to PHPv8.2-compatible way of invoking a constructor and a method 2026-05-04 20:34:01 +01:00
snipe 10c483967f Merge pull request #18965 from grokability/#18952-upload-files-directly-from-create/edit-screen-for-maintenances
🎥 Fixed #18952 - allow non-image files to be uploaded on create/edit maintenances
2026-05-04 20:33:16 +01:00
snipe 07b33e8189 Fixed #18952 - allow non-image files to be uploaded on create/edit maintenances 2026-05-04 20:15:56 +01:00
snipe fc3ea78005 Fixed #18780 - limit height for tall images in info-panel 2026-05-04 19:58:37 +01:00
snipe bd4150af5a Merge pull request #18964 from grokability/fixes-for-maintenance-permissions
Fixed #18951 - maintenance permissions
2026-05-04 19:47:15 +01:00
snipe 1c6c93da35 Fixed typo 2026-05-04 19:30:21 +01:00
snipe 0daec32ddd Added dedicated maintenance permission (related right now just to assets) 2026-05-04 19:30:11 +01:00
snipe e466ed9e06 Merge pull request #18184 from uberbrady/use_new_laravel_scim_server
Use new laravel SCIM server
2026-05-04 18:49:44 +01:00
Brady Wetherington 4445b0317f Re-generated lockfile hash with minimal changes 2026-05-04 18:43:20 +01:00
Brady Wetherington beaea6c3bf Merge branch 'develop' into use_new_laravel_scim_server 2026-05-04 18:39:48 +01:00
snipe a279c44aa5 Pint 2026-05-04 13:23:49 +01:00
snipe f1f96e574c Bumped hash 2026-05-04 13:23:14 +01:00
snipe 1879001ef3 Merge remote-tracking branch 'origin/master' into develop 2026-05-04 13:21:34 +01:00
snipe 5014b1c459 Fixed #18955 - added manufacturer to view-assigned view 2026-05-04 13:21:12 +01:00
snipe 903459cf7e Merge remote-tracking branch 'origin/master' into develop 2026-05-04 13:12:54 +01:00
snipe 7c04661cfa Merge pull request #18963 from grokability/_add-custom-fields-to-eula-pdf
Add custom fields to eula pdf
2026-05-04 13:07:56 +01:00
snipe 76d3194c96 Shifted layout 2026-05-04 12:57:26 +01:00
snipe b63aee2851 Added custom fields to EULA PDFs 2026-05-04 12:51:43 +01:00
snipe f57d2608c5 Fixed #18956 - hide well if no matching graphs are present 2026-05-04 12:20:25 +01:00
snipe 34331525b1 Merge remote-tracking branch 'origin/master' into develop 2026-05-04 12:17:28 +01:00
snipe 8d1f4427ae Merge pull request #18910 from grokability/audit-visibility-fix
Fixed #18896 - Audit visibility fix
2026-05-04 12:14:05 +01:00
snipe 7f89f8284f Merge pull request #18961 from grokability/add-visibility-icons
🖼️ Added visibility icons in custom fields forms
2026-05-04 12:12:56 +01:00
snipe 3b2ac2bc3c Fixed classname 2026-05-04 12:06:42 +01:00
snipe 73e88be8f3 Small cleanup 2026-05-04 12:05:48 +01:00
snipe f5d092f497 Added aria label for accessibility 2026-05-04 11:56:53 +01:00
snipe 8edbad92cb Added visual icons to show where the custom fields will be visible 2026-05-04 11:55:55 +01:00
snipe b0e13a1352 Merge pull request #18946 from marcusmoore/8.5-actions
Added PHP 8.5 to Action tests
2026-04-30 10:03:48 +01:00
snipe 5c75648cd7 Merge remote-tracking branch 'origin/master' into develop 2026-04-28 19:38:44 +01:00
snipe 1872c6eed9 Merge pull request #18950 from grokability/show-hide-password
🎥 Added password toggle JS/HTML
2026-04-28 10:42:21 +01:00
snipe 53199b9737 Added password toggle JS/HTML 2026-04-28 10:35:36 +01:00
snipe 73861c6a04 Merge pull request #18948 from marcusmoore/fixes/index-history-test
Fixed test name
2026-04-27 22:58:34 +01:00
Marcus Moore e2969dd3e2 Fix filename 2026-04-27 13:59:40 -07:00
snipe 0b1b99697e Merge pull request #18947 from spencerrlongg/mobile-client-endpoint
Mobile OAuth Client Endpoint
2026-04-27 20:05:47 +01:00
snipe 07202a8061 Merge pull request #18937 from uberbrady/fix_saml_intended_url
Fix redirecting users to their intended URL's when logging in via SAML
2026-04-27 19:54:09 +01:00
spencerrlongg 189454096b route for mobile client authentication 2026-04-27 13:52:55 -05:00
Marcus Moore 55ee5df852 Merge branch 'develop' into 8.5-actions 2026-04-27 11:52:29 -07:00
snipe f6466b9154 Merge pull request #18945 from marcusmoore/deps/phpspec/prophecy
Bumped phpspec/prophecy to allow installing on PHP 8.5
2026-04-27 19:51:24 +01:00
Marcus Moore 8e5a64dca9 Add php 8.5 to testing workflows 2026-04-27 11:48:26 -07:00
Marcus Moore b894147514 Bump phpspec/prophecy to v1.26.1 2026-04-27 11:27:41 -07:00
snipe d55c2c269f Merge remote-tracking branch 'origin/master' into develop 2026-04-27 19:05:50 +01:00
Brady Wetherington c7afcf0bef Fix returning to intended URL on 2-factor success (or enrollment success) 2026-04-27 14:59:32 +01:00
Brady Wetherington c79f5b8b74 Merge branch 'develop' into use_new_laravel_scim_server 2026-04-27 14:15:27 +01:00
snipe c5296fd76d Fixed selected attribute on multiselect (normal, not select2) for groups 2026-04-27 13:49:11 +01:00
snipe 3cb3284b26 Merge pull request #18942 from grokability/#18939-blank-tag-after-submit
Fixed #18939 - blank audit field in scanner audit screen
2026-04-27 13:22:12 +01:00
snipe d5d0d00ecc Fixed #18939 - blank audit field in scanner audit screen 2026-04-27 13:20:08 +01:00
Brady Wetherington dc6b45cbcb Fix redirecting users to their intended URL's when logging in via SAML 2026-04-23 15:29:28 +01:00
snipe 5db9d67e65 Merge pull request #18936 from grokability/info-panel-button-blade
Refactor show/hide info button into blade component
2026-04-23 14:26:19 +01:00
snipe f64dfa7f92 Refactor show/hide info button into blade component 2026-04-23 14:18:19 +01:00
snipe 06584d17a6 Merge pull request #18874 from marcusmoore/fixes/fd-54740-user-avatar-via-api-master
[FD-54740] Fixed managing user avatar via API
2026-04-23 13:02:36 +01:00
snipe 73bbe5062d Merge remote-tracking branch 'origin/master' into develop 2026-04-22 17:37:29 +01:00
snipe 75cb1041ec Merge pull request #18932 from grokability/small-tweak-to-info-element-status
🎥 Small tweak to info element status
2026-04-22 17:37:15 +01:00
snipe b61ed66d9d Updated logic 2026-04-22 17:25:48 +01:00
snipe 48ebd7faf5 Refine checkin checkout button display 2026-04-22 17:25:26 +01:00
snipe d6de3baa6e Hide button if orphaned 2026-04-22 17:21:33 +01:00
snipe 1be44a4c05 Pint 2026-04-22 17:18:07 +01:00
snipe f17f34f730 Added routes and logging 2026-04-22 17:17:58 +01:00
snipe da5bb6126a Add a warning well if the asset’s checkout is bonked 2026-04-22 17:09:58 +01:00
snipe a5d04d2e65 Added tests 2026-04-22 17:09:34 +01:00
snipe 22d07214fe Sort of fixed #18918 - prevent showing more permissions if user is admin or superadmin 2026-04-22 15:50:27 +01:00
snipe 8d4523d250 Merge pull request #18930 from grokability/#18920-sort-by-eula-in-categories
Added #18920 - sort by EULA in categories
2026-04-22 15:30:55 +01:00
snipe 37a3d694d4 Pint 2026-04-22 15:24:52 +01:00
snipe d21ccdfcbf Added #18920 - sorting by EULA in category view 2026-04-22 15:24:45 +01:00
snipe 11eaf7ce7b Merge remote-tracking branch 'origin/master' into develop 2026-04-22 15:01:22 +01:00
snipe 4eba97d388 Added Armenian as a possible language 2026-04-22 15:01:11 +01:00
snipe 590e97a99f Merge remote-tracking branch 'origin/master' into develop 2026-04-22 14:58:25 +01:00
snipe 613137551a Pint 2026-04-22 14:58:03 +01:00
snipe 23f941c810 Updated language strings 2026-04-22 14:57:16 +01:00
snipe 4c09f3a229 Merge remote-tracking branch 'origin/master' into develop 2026-04-22 14:38:39 +01:00
snipe e7312801ac Fixed division by zero in new label engine 2026-04-22 14:24:11 +01:00
snipe cd69a7ea53 Merge pull request #18927 from grokability/enforce-basenames-on-filenames
Enforce basenames on filenames
2026-04-22 13:42:09 +01:00
snipe 13ffdda12e Piiiint 2026-04-22 13:35:24 +01:00
snipe 372e74aad3 Adds basename to places where we pass a filename 2026-04-22 13:35:16 +01:00
snipe 2a32f7d372 Merge pull request #18926 from grokability/#18172-correctly-decrypt-encrypted-custom-fields-in-custom-asset-report
Fixed #18172 - Encrypted custom fields not correctly decrypted in custom asset report
2026-04-22 12:56:11 +01:00
snipe a2d34cca76 Pint 2026-04-22 12:49:55 +01:00
snipe c513ed5fc3 Fixed #18172 - correctly dencrypt custom fields in custom asset report 2026-04-22 12:49:48 +01:00
snipe 34cd5dcf7c Add @Husky-Devel as a contributor 2026-04-22 12:24:19 +01:00
snipe 260ca085bb Merge pull request #18908 from Husky-Devel/patch-1
Update snipeit.sh script to add support for CentOS/Alma/Redhat 10.x
2026-04-22 12:22:59 +01:00
snipe 7b00074b9e Merge pull request #18915 from Godmartinz/fix-api-label-with-old-engine
Adds translation and better error messaging for API labels
2026-04-22 12:22:33 +01:00
snipe 16e981d99d Merge pull request #18916 from marcusmoore/fixes/fd-54943-acceptance-email
Fixed display of email setting on category show page
2026-04-22 12:21:47 +01:00
snipe 16eb899ba7 Merge pull request #18924 from grokability/#18367-add-option-to-audit-by-serial-in-quickscan
Fixed #18367 - Added option to audit by serial in quickscan audit
2026-04-22 12:21:13 +01:00
snipe 3367f8e5c7 Edited audit method to allow searching by serial 2026-04-22 12:04:27 +01:00
snipe ad635ab95c Updated text 2026-04-22 12:04:11 +01:00
snipe b94e7fd8a0 Added select2 2026-04-22 12:04:04 +01:00
snipe 683fbd7953 Moved nav option 2026-04-22 12:00:41 +01:00
snipe 246ec9e20b Added tests 2026-04-22 11:57:58 +01:00
snipe 81d669d62a Pint 2026-04-22 09:05:01 +01:00
snipe 9ff951d379 Added redundent migration for delete_at 2026-04-22 09:04:53 +01:00
Marcus Moore e327303b3c Fix display of alert_on_response 2026-04-20 16:18:23 -07:00
snipe 21d030db26 Merge pull request #18914 from Godmartinz/rb20958
Fix RB-20958 company display name in custom reports
2026-04-20 20:31:57 +01:00
Godfrey M 444b58504c rename translation 2026-04-20 11:27:56 -07:00
Godfrey M c1e2f4ad75 update api label exception messages to translations 2026-04-20 11:10:41 -07:00
Godfrey M ec6778e770 adds ternary to user company display in custom reports 2026-04-20 10:09:44 -07:00
snipe 1c5d81cb04 Parse through carbon to make suyre the dates match properly 2026-04-20 15:54:45 +01:00
snipe 10e6c93a95 Merge remote-tracking branch 'origin/master' into develop 2026-04-20 15:40:55 +01:00
snipe d37f43daba Merge pull request #18912 from grokability/small-info-panel-tweaks
Small info panel tweaks
2026-04-20 15:40:39 +01:00
snipe dbabd1bab3 Removed stupid space from phpstorm 2026-04-20 15:34:25 +01:00
snipe 6b5398139a Pull date out of the progress bar
This was squishing weird on smaller screens
2026-04-20 15:32:24 +01:00
snipe 0ec45a4fd0 Add text to dates, added class if almost depreciated 2026-04-20 15:31:16 +01:00
snipe b99fd237f3 Use refactored methods 2026-04-20 15:30:55 +01:00
snipe 5d7123eb05 Added tests 2026-04-20 15:30:25 +01:00
snipe 7eb6ebb60d Refactor the percent logic out of the blade 2026-04-20 15:30:16 +01:00
snipe 0060207816 Merge remote-tracking branch 'origin/master' into develop 2026-04-20 14:19:38 +01:00
snipe 5bc273686e Use support_url in manufacturer blade component 2026-04-20 14:18:58 +01:00
snipe 2f6420e05f Pint 2026-04-20 13:57:50 +01:00
snipe c01699b6e4 Skip checking for company_id on models table 2026-04-20 13:57:45 +01:00
snipe 6c6199add8 Narrowed test 2026-04-20 13:40:49 +01:00
snipe 42cd5e0017 Pint :( 2026-04-20 13:30:22 +01:00
snipe baee6a37ea Backfill audit company ID (if one is present) 2026-04-20 13:30:15 +01:00
Peter Gallwas 90b3685808 Add support for CentOS/Alma/Redhat 10.x
Based off the 9.x code add 10.x support, tested on Rocky 10.1
2026-04-20 18:47:03 +12:00
snipe 37a37318aa Merge pull request #18901 from grokability/display-effective-permissions
Display effective permissions
2026-04-17 12:50:58 +01:00
snipe 74e831c4f0 Oh, Pint 2026-04-17 12:36:56 +01:00
snipe be36390b0f Display effective permissions on user view 2026-04-17 12:36:43 +01:00
snipe e9a628066f Merge pull request #18889 from fvollmer/ldap-deletion
Added #14662: Allow (soft) deletion via ldap sync
2026-04-17 12:14:29 +01:00
ArturoSirvent 8f46b5254e Fix backup disk driver configuration for S3 support
- Fix the backup disk in config/filesystems.php to use a dedicated BACKUP_FILESYSTEM_DRIVER env var instead of PRIVATE_FILESYSTEM_DISK
- Add AWS credential fields to the backup disk config so S3 backups work
- Use BACKUP_FILESYSTEM_ROOT with safe default (storage_path('app')) for local driver
- Document BACKUP_FILESYSTEM_DRIVER and BACKUP_FILESYSTEM_ROOT in .env.example

Fixes #14057
2026-04-17 12:10:03 +01:00
snipe cf44119bc6 Merge pull request #18710 from ArturoSirvent/fix/backup-disk-s3-driver
Fix backup disk driver configuration for S3 support
2026-04-17 12:09:34 +01:00
snipe a15e9d737c Merge pull request #18882 from Godmartinz/purge-old-eula-option-for-deleted-users
adds #18868 options to Eula Purge Command
2026-04-17 12:08:20 +01:00
snipe 08f6f5cf71 Merge remote-tracking branch 'origin/master' into develop 2026-04-17 12:04:50 +01:00
snipe faa2adbde2 Pint 2026-04-17 12:04:31 +01:00
snipe 7fae60d5c3 Log requestable check on checkin/checkout 2026-04-17 12:04:21 +01:00
snipe 4f9ce07304 Merge remote-tracking branch 'origin/master' into develop 2026-04-17 11:58:04 +01:00
snipe 3cad34821e Merge pull request #18900 from grokability/#7418-toggle-requestable
Fixed #7418 - Ability to toggle requestable on checkin/checkout
2026-04-17 11:57:46 +01:00
snipe 1e4353f0db Added controller logic and form request constraints 2026-04-17 11:40:37 +01:00
snipe 7520a1b2a3 Allow the user to leave the requestability unchanged in bulk checkout 2026-04-17 11:38:45 +01:00
snipe cdd91e498a Updated test 2026-04-17 11:37:58 +01:00
snipe 2daf0458a7 Added checkboxes and JS to checkin/checkout blades 2026-04-17 11:35:10 +01:00
snipe 6299fc09bf Added tests 2026-04-17 11:33:12 +01:00
snipe 2327cc6866 Merge pull request #18895 from grokability/resend-acceptance-on-user-page
Resend acceptance on user page
2026-04-16 20:01:50 +01:00
snipe b235df0bbf Fixed div 2026-04-16 19:57:25 +01:00
snipe 6d56ab9b63 Re-added import 2026-04-16 19:51:50 +01:00
snipe ce5de8fe06 Allow admin to resend unaccepted assets 2026-04-16 15:50:11 +01:00
snipe ce3f80246e Pint 2026-04-16 15:49:32 +01:00
snipe 046ef82c65 Added gates for 2FA reset API endpoint 2026-04-16 15:49:25 +01:00
snipe 0f347e8453 Use translation for unauthorized 2026-04-16 15:28:36 +01:00
snipe 1cb0ca84ab Add wrapping for address 2026-04-16 14:52:03 +01:00
snipe 7625646c11 Remove wrapping from wells 2026-04-16 14:51:42 +01:00
snipe 743c598b83 Merge remote-tracking branch 'origin/master' into develop
# Conflicts:
#	public/js/dist/all.js
#	public/js/dist/all.js.map
#	public/mix-manifest.json
2026-04-16 14:13:02 +01:00
snipe 324530fb8c Updated language 2026-04-16 14:12:07 +01:00
snipe 68acf7b90a Merge pull request #18884 from grokability/#8414-sign-in-place
Added #8414 - acceptance sign in place
2026-04-16 14:11:11 +01:00
snipe 9c610f51af Updated language, nicer form 2026-04-16 13:37:31 +01:00
snipe 40ec0627c4 Check for global acceptance requirement as well 2026-04-16 13:14:21 +01:00
snipe 645e66b30c Updated language 2026-04-16 13:07:32 +01:00
snipe 2311d56836 Only show the sign-in-place box if the category requires it 2026-04-16 13:06:18 +01:00
snipe 1f3481c54b Use breadcrumb action in route 2026-04-16 12:51:57 +01:00
snipe 07fa51aa4c Lots of tests 2026-04-16 12:51:38 +01:00
snipe 0866469cc0 Added checkout date and admin to acceptance form 2026-04-16 12:51:22 +01:00
snipe 3d9bb29b1b Updated string 2026-04-16 12:50:59 +01:00
snipe 5a67bcaf17 Pint doing pint things 2026-04-16 12:50:52 +01:00
snipe 01b18513f1 Safe redirect if request is weird 2026-04-16 12:49:02 +01:00
snipe d92ec582fa Check for “stale” acceptance 2026-04-16 12:47:30 +01:00
snipe 205eb7fd37 Moved breadcrumbs into action to get the logic out of the route 2026-04-16 12:35:31 +01:00
snipe 0798e62417 Normalize the box header - it looked kinda weird before 2026-04-16 11:31:12 +01:00
snipe 83adcc61bc More cleanup 2026-04-16 11:22:39 +01:00
snipe 788e07947f Nicer styling 2026-04-16 11:14:35 +01:00
snipe f7717571ea Merge remote-tracking branch 'origin/master' into develop 2026-04-16 10:01:04 +01:00
snipe 83fec75bc8 Avoid crashing if assignedto isn’t valid 2026-04-16 10:00:45 +01:00
snipe 53c240f13f Pint 2026-04-15 21:29:32 +01:00
snipe f142eb7a44 Moved back in time migration 2026-04-15 21:29:26 +01:00
Felix Vollmer fe84d35ce4 Added #14662: Allow (soft) deletion via ldap sync 2026-04-15 17:14:53 +02:00
Godfrey M 5c5414c960 remove comments, reorder command options 2026-04-14 17:57:06 -07:00
Godfrey M 2eeb1f588a rename tests 2026-04-14 16:13:18 -07:00
Godfrey M 9f69eacf71 tweak to acceptance factory, adds purge eula command tests 2026-04-14 16:11:32 -07:00
snipe 495382c42f Merge pull request #18885 from grokability/fix-soft-deleted-companies-in-migrations
Fix soft deleted companies in migrations
2026-04-14 23:19:33 +01:00
snipe 029634707b Oh, Pint 2026-04-14 22:50:32 +01:00
snipe fd5736fac4 Belt and suspenders 2026-04-14 22:50:21 +01:00
snipe f3ed2d9dd8 Derp. Run if the column DOES exist 2026-04-14 22:38:44 +01:00
snipe 676cd66e4b Make the temp datetime nullable 2026-04-14 22:31:00 +01:00
snipe 17c73c4017 Pint :( 2026-04-14 22:30:26 +01:00
snipe 5983a4530f Fix back in time migrations for very old restores or upgrades 2026-04-14 22:30:05 +01:00
snipe 1cd8395b23 Piiiint 2026-04-14 21:44:08 +01:00
snipe ea4374a855 Oops. Forgot to commit accessories :D 2026-04-14 21:44:00 +01:00
snipe 061b913413 Better naming for session variable 2026-04-14 20:54:42 +01:00
Godfrey M b2fda13ac3 adds option for only deleted users and company id for eula purging 2026-04-14 11:58:54 -07:00
snipe e79af0163a Oh, Pint 2026-04-14 19:49:18 +01:00
snipe 91e41049bd Skip the initial checkout email to the recipient if sign_in_place was checked 2026-04-14 19:49:05 +01:00
snipe 18f67bcce5 Store the sign in place in the session so it’s remembered 2026-04-14 12:20:51 +01:00
snipe 264347e323 Added redirects 2026-04-14 12:16:46 +01:00
snipe 18d9f7dbf1 Updated JS assets 2026-04-14 12:13:59 +01:00
snipe 702af91c84 Added tests 2026-04-14 12:13:02 +01:00
snipe e9db3b3861 Added sign-in-place language keys 2026-04-14 12:12:54 +01:00
snipe 896922fde5 Added acceptance checkbox to checkout blades 2026-04-14 12:09:42 +01:00
snipe 7c2bb69bc9 Nicer width for field 2026-04-14 12:02:43 +01:00
snipe d2921346a2 Fixed datepicker width 2026-04-14 11:07:59 +01:00
snipe cc06b2f0eb Merge pull request #18878 from grokability/fixes-n+1-on-history
Fixes n+1 on history
2026-04-14 11:06:44 +01:00
snipe d98c7bddba Added test to prevent n+1 regression 2026-04-14 10:25:55 +01:00
snipe fe308ef2e4 Use query clone to prevent n+1 2026-04-14 10:25:37 +01:00
snipe 9b43835e2d Added forHistory scope in ActionLog, use it in Loggable 2026-04-14 10:23:36 +01:00
snipe 88d34a5b92 Merge remote-tracking branch 'origin/master' into develop 2026-04-14 09:27:28 +01:00
snipe 019f0af282 Fixed typo 2026-04-14 09:13:45 +01:00
Marcus Moore c6619a621c Move comment 2026-04-13 16:42:47 -07:00
Marcus Moore 565e3de183 Allow updating user avatar via API 2026-04-13 16:41:21 -07:00
snipe b91dd15f96 Merge remote-tracking branch 'origin/master' into develop 2026-04-13 16:19:51 +01:00
snipe 1a852cdacf Merge pull request #18872 from grokability/location-breadcrumbs
Fixes #9037 - Added breadcrumbs to top breadcrumb trail
2026-04-13 16:19:34 +01:00
snipe 4ea527d980 Added breadcrumb to info-panel 2026-04-13 16:16:33 +01:00
snipe 392af4f127 Fixes #9037 - Added breadcrumbs to top breadcrumb trail 2026-04-13 16:09:10 +01:00
snipe 6e8e72f281 Merge remote-tracking branch 'origin/master' into develop 2026-04-13 15:52:11 +01:00
snipe 1c198500c6 Merge pull request #18871 from grokability/#18869-throw-error-if-no-MAIL_REPLYTO_ADDR-is-set
Fixed #18869 - skip mail test if no `MAIL_REPLYTO_ADDR` is given
2026-04-13 15:20:45 +01:00
snipe 8620f25c0e Fixed #18869 - skip mail test if no MAIL_REPLYTO_ADDR is given 2026-04-13 15:17:23 +01:00
snipe 1311ce48d3 Merge remote-tracking branch 'origin/master' into develop 2026-04-13 15:01:01 +01:00
snipe 8a59809937 Merge pull request #18870 from grokability/#18736-add-cumulative-cost-of-an-asset-with-maintenances
#18736 add cumulative cost of an asset with maintenances
2026-04-13 15:00:38 +01:00
snipe bac8299ea6 Added accessor for component qty 2026-04-13 14:51:48 +01:00
snipe 500dcdd582 Re-jigger the order 2026-04-13 14:51:24 +01:00
snipe cbae494c54 Fixed totals 2026-04-13 14:08:23 +01:00
snipe 09bec66406 Meh 2026-04-13 13:55:05 +01:00
snipe 2b2291dc7e Pint 2026-04-13 13:48:21 +01:00
snipe 1357b45e24 Added content to blade, refactoring some relationships 2026-04-13 13:48:14 +01:00
snipe 4a0dbba3ec Dev assets 2026-04-13 11:59:47 +01:00
snipe fcd0360135 Merge remote-tracking branch 'origin/master' into develop 2026-04-13 11:57:54 +01:00
snipe 6935cf1dde Merge pull request #18867 from grokability/fixed-#18856-duplicate-icons
Fixed #18856 - clicking and canceling would result in multiple icons in modal
2026-04-13 11:57:36 +01:00
snipe cf384373df Fixed #18856 - clicking and canceling would result in multiple icons in modal 2026-04-13 11:50:41 +01:00
snipe 48c4f34af3 Fixed #18863 - backfill status vs status_type for older integrations 2026-04-13 11:08:14 +01:00
snipe 7b800152ee Merge pull request #18866 from grokability/adds-validation-check-console-command
Adds validation check console command - helps with #18851
2026-04-13 10:45:49 +01:00
snipe f289691e22 Merge pull request #18865 from Joly0/patch-1
Add artisan command to clear compiled views (for docker startup.sh)
2026-04-13 10:45:25 +01:00
snipe 50421494c5 Pint 2026-04-13 10:33:55 +01:00
snipe 33b8861ae3 Adds conosole command for listing invalid assets 2026-04-13 10:33:49 +01:00
Joly0 31f90d20f8 Add artisan command to clear compiled views
After the recent update to 8.4.1 this command was mandatory, but wasnt applied to docker environment, therefore (atleast for my company) views were broken (empty licenses for example). Had to manually exec into the container and execute this command.

Adding it to the startup script should bring no real downsides, but should fix this for all others and all future version of snipe-it that have the same requirement for clearing compiled views
2026-04-13 09:49:51 +02:00
snipe a94ba474f3 Updated version in confog for develop 2026-04-11 11:05:10 +01:00
snipe a81ab0ea0f Merge remote-tracking branch 'origin/master' into develop 2026-04-11 11:04:29 +01:00
snipe 87e65893d3 Updated tests with new text 2026-04-11 10:48:37 +01:00
snipe 405540aea2 Clarified text 2026-04-11 10:38:42 +01:00
snipe ccfebee5f1 Not sure why the timestamps wouldn’t handle this for us, but… 2026-04-11 10:34:03 +01:00
snipe 1d9469a3df Fix action_date on action_logs on bulk checkin and delete 2026-04-11 10:32:04 +01:00
snipe 5417bf3445 Merge pull request #18860 from uberbrady/fix_migrations
Move migration to fire after deleted_at column added to companies
2026-04-09 21:22:58 +01:00
snipe 51ea1327cf Merge pull request #18861 from grokability/log-authed-user-header
Log authed user ID header
2026-04-09 20:16:12 +01:00
Brady Wetherington 8113ddb2d5 Re-Add the old migration as an 'empty migration' just for safety 2026-04-09 20:10:02 +01:00
snipe a88ad35b68 Added token name and ID 2026-04-09 19:35:09 +01:00
snipe 6e60f59265 Changed the name because reasons 2026-04-09 19:24:11 +01:00
snipe a866bfafcd Oh ffs pint 2026-04-09 19:23:29 +01:00
snipe 97d1677568 Check for bearer token in header 2026-04-09 19:23:21 +01:00
snipe f4562db0c0 Pint 2026-04-09 19:19:56 +01:00
snipe a616da3e5c Moved to an API-only header 2026-04-09 19:19:50 +01:00
snipe a895566b02 Pint fixes 2026-04-09 19:09:32 +01:00
snipe 5d75765aae Optionally log the user’s ID in the header 2026-04-09 19:09:21 +01:00
snipe 3bc34fcd5e Added nice icons for revoked/not revoked status 2026-04-09 18:46:18 +01:00
snipe 99c3ac56e9 Fixed typo 2026-04-09 18:32:50 +01:00
Brady Wetherington 95c7d5eeff Move migration to fire _after_ the deleted_at column is added to companies 2026-04-09 18:19:28 +01:00
snipe 371f0b82f6 This is superadmin, do not scope to just the authed user 2026-04-09 18:06:27 +01:00
snipe 114b5d3db0 Updated text 2026-04-09 18:01:44 +01:00
snipe 9ab0f60b41 Merge pull request #18858 from grokability/_api-token-rework
Api token rework
2026-04-09 17:42:09 +01:00
snipe 33b8226ebe A little more cleanup 2026-04-09 17:36:32 +01:00
snipe e062062cb3 Added livewire component for persoinal access tokens for admin 2026-04-09 17:24:51 +01:00
snipe 5f713862fb Updated tests 2026-04-09 17:24:20 +01:00
snipe fe013b5ea0 A bit more polish 2026-04-09 17:20:16 +01:00
snipe 57df2dc2cf Removed extra column 2026-04-09 16:21:39 +01:00
snipe c86fa4c521 Moved tabs 2026-04-09 16:00:49 +01:00
snipe c90acf53d5 One more quick fix for consumables qty percent 2026-04-09 15:14:10 +01:00
snipe fece4d2fdc Handle 0 qty for consumables 2026-04-09 15:10:58 +01:00
snipe f49837e5fe Fix division by zero? 2026-04-09 15:08:46 +01:00
snipe e6ead7c6fa Added tests 2026-04-09 14:52:30 +01:00
snipe 3e84af83d8 Added translations to OAuthClients livewire 2026-04-09 14:52:22 +01:00
snipe aff375c799 Added OAuth table button - I don’t know if this really works properly? 2026-04-09 14:52:01 +01:00
snipe 6ada1a646f Tabbed UI 2026-04-09 14:51:33 +01:00
snipe 42bfd24a8f Expanded OAuth language 2026-04-09 14:49:33 +01:00
snipe c7c6b41dab Added revoke to user model 2026-04-09 14:49:12 +01:00
snipe 449e6b5f5c Added revoke controllers 2026-04-09 14:48:50 +01:00
snipe bbe0c7409f Added TokenRevoked action 2026-04-09 14:48:22 +01:00
snipe 41bb9c378b Added keywords for translation 2026-04-09 14:48:03 +01:00
snipe 9a82b890d4 Translation 2026-04-09 14:47:52 +01:00
snipe 2d2180c9e8 Added revoke/unrevoke routes 2026-04-09 14:26:11 +01:00
snipe 798a590c2a Pint gonna pint 2026-04-09 14:03:37 +01:00
snipe 8a08878062 Added language strings 2026-04-09 14:03:18 +01:00
snipe fde6ff1571 Pint 2026-04-09 12:16:46 +01:00
snipe 8c9a48b38a Fixed custom field search nesting 2026-04-09 12:16:40 +01:00
snipe fff89ee94c Merge pull request #18852 from marcusmoore/fixes/rb-20840-bulk-asset-checkout
Fixed potential exception in bulk asset checkout
2026-04-09 11:28:42 +01:00
Marcus Moore 2745552915 Update asset factory 2026-04-08 14:05:26 -07:00
Marcus Moore 2f400a2b17 Handle target being assigned to a non-user model 2026-04-08 13:40:37 -07:00
Marcus Moore de5256b8f5 Use correct relationship 2026-04-08 13:36:22 -07:00
Marcus Moore 344ae053cf Add failing test 2026-04-08 13:35:11 -07:00
snipe 45fffd74b7 Merge pull request #18846 from grokability/strikethroug-if-component-is-deleted
Strikethrough if component is deleted
2026-04-08 12:47:49 +01:00
snipe a0cf0751de Pint 2026-04-08 12:39:38 +01:00
snipe 7485cb81aa Show strikethrough and unlink if item is deleted 2026-04-08 12:39:29 +01:00
snipe 7faa9a6fdf Fixed #18816 - updated language in acceptance email 2026-04-08 11:24:54 +01:00
snipe f6f7063419 Fixed #18844 - use correct component for bulk editing models on category detail view 2026-04-08 11:17:48 +01:00
snipe 1300fff94c Null safe operator for assets transformer 2026-04-08 11:11:55 +01:00
snipe 5ef9798c68 Pint 2026-04-08 10:09:56 +01:00
snipe db48c18766 Fixed #18840 - added print inventory button back to locations 2026-04-08 10:09:49 +01:00
snipe 880261500b Piiiiiint 2026-04-07 19:14:08 +01:00
snipe e02c257df6 Bumper version 2026-04-07 19:13:58 +01:00
snipe d6b48a2818 Merge pull request #18835 from uberbrady/improve_restore_port_numbers
Fixed #18786 - add port number option to the restore command
2026-04-07 15:48:20 +01:00
Brady Wetherington f8c7eee17b Add port number option to the restore command 2026-04-07 15:40:44 +01:00
snipe 5898205480 Merge pull request #18834 from grokability/asset-components-display-fix
Asset components display fix
2026-04-07 15:32:16 +01:00
snipe c8d2118c74 Merge pull request #18833 from uberbrady/new_indices_for_locations_query
Add new indexes to improve some Location queries
2026-04-07 15:31:32 +01:00
snipe 50676288a1 Pint 2026-04-07 15:29:15 +01:00
snipe db2269092a Moved limit 2026-04-07 15:29:06 +01:00
Brady Wetherington ddaa75a6dd Add new indexes to improve some Location queries 2026-04-07 15:23:31 +01:00
snipe b3f56900e5 Added created_by to sortable fields 2026-04-07 14:46:23 +01:00
snipe f1820b739f Use sum 2026-04-07 14:45:52 +01:00
snipe 56957e28f9 Standardized transformer 2026-04-07 14:45:42 +01:00
snipe 3c32721791 Use ComponentsAssignment model 2026-04-07 14:44:56 +01:00
snipe 2632433cc6 Load location and company on asset load 2026-04-07 14:44:09 +01:00
snipe 16ea577099 Include created_by in pivot 2026-04-07 12:20:25 +01:00
snipe 182e06173d Merge pull request #18730 from marcusmoore/laravel-12-take-2
Upgraded to Laravel 12
2026-04-06 13:03:39 +01:00
snipe f6b4600f8a Added checkout_class alias 2026-04-06 11:24:01 +01:00
snipe 7456c9dce5 Check that $image is not empty 2026-04-06 10:58:12 +01:00
snipe f9e16e16d1 Avoid searching by human readable custom field name to avoid collisions with normal attributes 2026-04-06 10:45:10 +01:00
snipe b42094a1be Merge remote-tracking branch 'origin/develop' 2026-04-06 10:17:38 +01:00
snipe 4c343afec7 Pint 2026-04-06 10:17:29 +01:00
snipe 40b3007676 Removed duplicated custom field search 2026-04-06 10:17:23 +01:00
snipe 48395d162a Merge remote-tracking branch 'origin/develop' 2026-04-06 09:54:45 +01:00
snipe 50aaa54c27 Check status_type for list_all 2026-04-06 09:52:43 +01:00
snipe 47737b082b Missed one in the nav 2026-04-06 09:51:50 +01:00
snipe c4a3c71448 Merge remote-tracking branch 'origin/develop' 2026-04-06 09:49:41 +01:00
snipe 9939849e40 pint 2026-04-06 09:49:33 +01:00
snipe d690989b58 Use status_type instead of status for filtering 2026-04-06 09:49:24 +01:00
snipe d9deb0f30c Merge remote-tracking branch 'origin/develop' 2026-04-06 08:49:05 +01:00
snipe 53ce14dddf Switched to AND operator 2026-04-06 08:48:56 +01:00
snipe 1d0be6261b Merge pull request #18823 from grokability/small-permission-tweaks
Added actions for normalizing permissions input
2026-04-06 08:46:03 +01:00
snipe 108c6eda1d Oh, pint 2026-04-06 08:06:28 +01:00
snipe 6e33bfaf8f Don’t check for filled on groups in user save 2026-04-06 08:06:20 +01:00
snipe a7bc9f0ae9 Use fill() for more compact code 2026-04-05 13:03:37 +01:00
snipe 927e0a4e7b Just set the field directly, since it’s a UI edit 2026-04-05 13:03:02 +01:00
snipe 75b2ac9d33 Aaaaand pint 2026-04-05 13:02:22 +01:00
snipe b0d7ae6f04 Removed redundent display_name setting, since it’s already fillable 2026-04-05 13:02:13 +01:00
snipe c764605d07 Implement the new actions in the controllers 2026-04-05 12:40:34 +01:00
snipe 205cf3cf28 MOAR tests 2026-04-05 12:38:02 +01:00
snipe ea274f0df0 Added tests 2026-04-05 12:37:53 +01:00
snipe 31541c4a56 Sigh. Pint 2026-04-05 12:35:19 +01:00
snipe 2a601ae483 Switched to use actions for normalizing payload 2026-04-05 12:35:09 +01:00
snipe 3fe8600a70 Normalize permissions array 2026-04-05 11:55:08 +01:00
snipe dbd7df2b85 Merge remote-tracking branch 'origin/develop' 2026-04-04 17:09:05 +01:00
snipe 717deb544e Merge pull request #18822 from grokability/fixed-history-api-pagination
Fixed #18821- history api pagination
2026-04-04 17:08:26 +01:00
snipe 51446a5fe0 Pint 2026-04-04 16:59:30 +01:00
snipe 4c4ec3eacc Fixed #18821 - pagination on history 2026-04-04 16:59:23 +01:00
snipe 71b72eae10 Merge remote-tracking branch 'origin/develop' 2026-04-03 15:40:30 +01:00
snipe 01eb585e59 Fixed light-dark button in nav dropdown 2026-04-03 15:40:16 +01:00
snipe 2343841aa1 Merge remote-tracking branch 'origin/develop' 2026-04-03 13:57:31 +01:00
snipe b2790d98d0 Removed codacy badge (for now) 2026-04-03 13:57:20 +01:00
snipe b14e925158 Merge remote-tracking branch 'origin/develop' 2026-04-03 13:46:03 +01:00
snipe 18ef770a85 Fixed RB, added withTrashed() 2026-04-03 13:45:53 +01:00
snipe ee831c9361 Merge remote-tracking branch 'origin/develop' 2026-04-03 13:07:47 +01:00
snipe e446dc1cba Fixed [RB-4105] - check for item’s existance before applying withTrashed() 2026-04-03 13:07:37 +01:00
snipe af283c7e01 Merge remote-tracking branch 'origin/develop'
# Conflicts:
#	config/version.php
2026-04-03 12:28:30 +01:00
snipe 4703a8b021 Pint 2026-04-03 12:28:00 +01:00
snipe eb3a608e80 Bumped to pre version 2026-04-03 12:27:50 +01:00
snipe 6fbd189553 Pint 2026-04-03 12:26:49 +01:00
snipe 753e2790ac Merge remote-tracking branch 'origin/develop'
# Conflicts:
#	public/js/dist/all.js
#	public/js/dist/all.js.map
#	public/mix-manifest.json
2026-04-03 12:26:28 +01:00
snipe 2c2de8719b Exclude encrypted custom fields in search 2026-04-03 12:25:09 +01:00
snipe 1e884bf627 Update the alias 2026-04-03 12:19:49 +01:00
snipe 7a001c81ea Merge pull request #18809 from grokability/rename-assetstatus
Rename assetstatus to status (variation of #18808)
2026-04-03 11:38:45 +01:00
snipe 9e82f3ffd9 Merge pull request #18814 from Godmartinz/add-example-logo-to-label-preview
Adds #18663 generic example logo for label preview
2026-04-03 11:37:06 +01:00
snipe e1dc605657 Merge pull request #18820 from grokability/search-one-more-stab
Adds to #18778, fixes for advanced search
2026-04-03 11:36:26 +01:00
snipe bca93b57ec Pint fixes 2026-04-03 11:08:35 +01:00
snipe d929c87bbd Final fixes, tests 2026-04-03 11:08:16 +01:00
snipe 72eb4d6d4d Merge remote-tracking branch 'origin/develop' 2026-04-03 09:52:19 +01:00
snipe 0ccdeed318 Merge pull request #18817 from Godmartinz/notification-language-fix
Fixes #18811  locale for Requestable notifications
2026-04-03 09:41:06 +01:00
snipe 5d6fc9f516 Merge pull request #18818 from marcusmoore/fixes/18798-create-asset-with-scoped-locations
Fixed #18798: creating assets with location for non-super-admins with FMCS
2026-04-03 09:40:31 +01:00
snipe 7f0435e3d6 Merge pull request #18815 from marcusmoore/fixes/18810-acceptance-url-in-mail
Fixed #18810: Display acceptance url in checkout asset email
2026-04-03 09:36:40 +01:00
Marcus Moore 85d7ba73aa Set company_id in request for non-super-admins when fmcs enabled 2026-04-02 15:50:13 -07:00
Godfrey M c6a3afa555 revert change, but still add locale 2026-04-02 15:31:25 -07:00
Godfrey M 6cc8ec63be Correct way to append locale 2026-04-02 15:29:57 -07:00
Godfrey M cf7cb8069b get locale from settings before sending requestable message 2026-04-02 15:22:59 -07:00
Marcus Moore e70519c9c2 Fix test assertion 2026-04-02 13:40:16 -07:00
Marcus Moore 6617cc3e7e Add missing endif 2026-04-02 11:47:27 -07:00
Marcus Moore 3426a427d8 Add more details to failure 2026-04-02 11:30:02 -07:00
Marcus Moore 2e67787d75 Add failing test 2026-04-02 11:28:42 -07:00
snipe 70a30a96fa Try to resolve polymorism for checkout 2026-04-02 19:23:45 +01:00
Godfrey M 8832596aa0 Merge branch 'develop' into add-example-logo-to-label-preview 2026-04-02 11:08:11 -07:00
snipe 0cd013191a Merge pull request #18805 from Godmartinz/fix-company-disabled-css-bug
Fixes #18715 Fixes disabled CSS rules for select2
2026-04-02 19:07:00 +01:00
Marcus Moore 8f70b299cf Merge branch 'develop' into fixes/18798-create-asset-with-scoped-locations 2026-04-02 11:06:42 -07:00
Godfrey M 2c87a469e3 adds generic example logo if no logo present" 2026-04-02 10:55:56 -07:00
snipe 5ca2ec5534 Merge remote-tracking branch 'origin/develop' 2026-04-02 18:12:10 +01:00
snipe 46caf9d9ec Removed phpmd.xml 2026-04-02 18:11:58 +01:00
snipe 7ac0842bc2 Merge remote-tracking branch 'origin/develop' 2026-04-02 17:45:59 +01:00
snipe de1674d001 Removed the display none from bulk asset checkout 2026-04-02 17:45:48 +01:00
Godfrey M 37c30a3079 remove unnecessary css 2026-04-02 09:41:45 -07:00
snipe ce825d1df2 Merge remote-tracking branch 'origin/develop' 2026-04-02 17:39:24 +01:00
snipe b5c01ab820 Fixed #18812 - light/dark on signature page 2026-04-02 17:39:15 +01:00
snipe 8de674c837 Merge remote-tracking branch 'origin/develop' 2026-04-02 17:21:06 +01:00
snipe d289ac7f05 Pint 2026-04-02 11:26:33 +01:00
snipe 7ec60bc6f2 Same as #18808 but renamed assetstatus to status 2026-04-02 11:26:23 +01:00
snipe eb78474d1e Make order number clickable if asset 2026-04-02 10:32:21 +01:00
snipe 6dc5a4a27e Merge remote-tracking branch 'origin/develop' 2026-04-02 09:59:56 +01:00
snipe 10c8045351 Check for file view permissions 2026-04-02 09:59:46 +01:00
snipe 03b6a54fe8 Merge remote-tracking branch 'origin/develop' 2026-04-02 09:36:35 +01:00
snipe 1140795ab8 Fixed #18734 - open markdown link in new window 2026-04-02 09:36:24 +01:00
snipe 0441c07266 Merge remote-tracking branch 'origin/develop' 2026-04-02 09:17:11 +01:00
snipe 64f346a5f0 Aaaand pint 2026-04-02 09:12:03 +01:00
snipe 0ac63a8ac6 Codacy tweaks 2026-04-02 09:11:50 +01:00
snipe f5a3d751da Merge remote-tracking branch 'origin/develop' 2026-04-01 23:32:56 +01:00
snipe 985e7d0c7c Merge pull request #18806 from marcusmoore/fixes/rb-4103manufacturer-url
Fixed RB-4103: Allow more models to access dynamic url presenter method
2026-04-01 23:32:09 +01:00
snipe 97a024b3ec Merge remote-tracking branch 'origin/develop' 2026-04-01 23:29:09 +01:00
snipe c501999676 Merge pull request #18807 from grokability/adds-model-number-to-info-panel-if-asset
Added model number on info-panel if the object is an asset
2026-04-01 23:28:22 +01:00
snipe 80e7cf0b46 Added model number on info-panel if the object is an asset 2026-04-01 23:21:30 +01:00
Marcus Moore b7d2bea3ea Fix dynamic url 2026-04-01 15:15:31 -07:00
Marcus Moore 2acb38a6a5 Move dynamic method to base presenter and adjust for other model types 2026-04-01 15:05:42 -07:00
Godfrey M 8ea7242c38 remove input[type=*]:disabled 2026-04-01 14:45:23 -07:00
Godfrey M 616a93cb52 removed override changes 2026-04-01 14:33:28 -07:00
Godfrey M 7170ea0303 adjust disabled look for select 2 2026-04-01 14:28:32 -07:00
snipe 10eb14776b Merge remote-tracking branch 'origin/develop' 2026-04-01 22:09:03 +01:00
snipe a7b43d1879 Merge pull request #18800 from Godmartinz/acceptance-double-send-bug
Fix #18595 checkout acceptance url bug
2026-04-01 22:08:03 +01:00
snipe 439f3c9c91 Merge remote-tracking branch 'origin/develop' 2026-04-01 21:49:49 +01:00
snipe e2b8368f40 Removed dupe category in info panel 2026-04-01 21:49:38 +01:00
Godfrey M 1243f690c4 changed disabled=true to disabled, adjust css" 2026-04-01 13:48:56 -07:00
snipe e2c8d41a58 Merge pull request #18803 from marcusmoore/fixes/18802-support-url
Fixed #18802: Display dynamic support url for manufacturers properly
2026-04-01 21:46:34 +01:00
snipe 591bba71d5 Pint 2026-04-01 21:46:23 +01:00
snipe 7aef0f78b0 Fixed weird component linking 2026-04-01 21:46:13 +01:00
Marcus Moore b6dc0e2a08 Display dynamic support url properly 2026-04-01 13:37:06 -07:00
Godfrey M 1ed7dd0e1e fix markdown to send messages with Eulas 2026-04-01 13:17:02 -07:00
snipe 5ecfa0b8d8 Merge remote-tracking branch 'origin/develop' 2026-04-01 20:41:09 +01:00
snipe 3578580956 Fix variable 2026-04-01 20:41:00 +01:00
snipe 67457d324c Merge remote-tracking branch 'origin/develop' 2026-04-01 16:25:54 +01:00
snipe 8b4e4aff27 Merge pull request #18801 from grokability/small-improvements-to-activity-report
Small improvements to activity report
2026-04-01 16:25:40 +01:00
snipe eb11c4640b Pint :-/ 2026-04-01 16:16:36 +01:00
snipe 5806fced78 Add optional hide for history 2026-04-01 16:16:25 +01:00
snipe ee0e036354 Removed unused routes 2026-04-01 15:00:16 +01:00
snipe af0ec10e78 Addd notes tab 2026-04-01 15:00:01 +01:00
snipe ccbd73259b Fixed license tabs 2026-04-01 14:58:33 +01:00
snipe 1a44a11b62 Added journal permission 2026-04-01 14:51:57 +01:00
snipe 8502a2291b Allow non-report users to view assets, etc if they have permission 2026-04-01 14:51:42 +01:00
snipe 67ccb5e6d9 Make a generic formatter for class names 2026-04-01 14:51:10 +01:00
snipe 520a70d2ea Added tests 2026-04-01 14:50:56 +01:00
snipe 3dee30c48e Changed button color 2026-04-01 14:50:47 +01:00
snipe f314e12685 Merge remote-tracking branch 'origin/develop' 2026-04-01 10:13:50 +01:00
snipe e3b53c8fa2 Use newer files permission 2026-04-01 10:13:39 +01:00
snipe 4bb5020e0a Added assets obj to asset tab check 2026-04-01 10:13:32 +01:00
snipe 4f1fa95cf9 Check for valid category beofre chekcing for tag color 2026-04-01 10:01:17 +01:00
snipe baeeb8e609 Use shorter auth check 2026-04-01 09:56:41 +01:00
snipe f109ca6f1f Merge remote-tracking branch 'origin/develop' 2026-04-01 09:14:20 +01:00
Marcus Moore 1714d62762 Add failing test 2026-03-31 17:20:40 -07:00
Godfrey M f19ac4d5bb send checkout mail without link or acceptance reference 2026-03-31 16:38:35 -07:00
snipe c6dbccb463 Merge pull request #18799 from marcusmoore/fixes/54576-component-link
Fixed #18797: Fix link to components in asset view
2026-03-31 23:42:24 +01:00
Marcus Moore 80ca2a6d21 Fix link to component 2026-03-31 15:36:24 -07:00
snipe 90c1c8cddd Merge remote-tracking branch 'origin/develop' 2026-03-31 15:28:14 +01:00
snipe 0b6593bdc8 Merge pull request #18783 from ubc-cpsc/fix/aws-sdk-php-PKSA-4t1p-xpk2-nsss
Fixes PKSA-4t1p-xpk2-nsss for aws/aws-sdk-php
2026-03-31 15:26:24 +01:00
snipe 6e8c0e5a14 Merge pull request #18758 from Godmartinz/extends-field-value-if-no-label
Fixes FD-54467 TZe_24mm_E Field value to extend full width
2026-03-31 15:25:53 +01:00
snipe 78c300ea1b Merge pull request #18788 from Godmartinz/fix-bulk-edit-breadcrumb
Fixes bulk edit breadcrumb translation
2026-03-31 15:25:28 +01:00
snipe a3fb492e37 Merge pull request #18790 from spencerrlongg/bug/rm-dead-license-route-rb
Removes Unused License Route
2026-03-31 15:24:21 +01:00
snipe 667f50497c Merge pull request #18791 from spencerrlongg/bug/better-error-reporting-in-custom-rules
Better Error Reporting in Custom Rules
2026-03-31 15:23:53 +01:00
snipe cb93eda4e2 Merge pull request #18792 from spencerrlongg/bug/nest-error-callback-errors-properly
Wrap importer errors in array properly
2026-03-31 15:23:15 +01:00
snipe 613b536f97 Merge remote-tracking branch 'origin/develop' 2026-03-31 13:58:59 +01:00
snipe 1ffaa077e6 Use maintenance buttons on asset view 2026-03-31 13:58:49 +01:00
snipe dbc850550f Merge remote-tracking branch 'origin/develop' 2026-03-31 13:14:30 +01:00
snipe 1efe65e6ba Pint :( 2026-03-31 13:13:43 +01:00
snipe 6a39db7e47 Fixed history return 2026-03-31 13:13:35 +01:00
snipe 43841b8b3c Fixed return type 2026-03-31 10:12:24 +01:00
spencerrlongg c33ab9c924 wrap in array properly 2026-03-30 20:13:52 -05:00
spencerrlongg 135118de65 rm ->getMessage(), report full exception 2026-03-30 19:53:26 -05:00
spencerrlongg b42b9e354f rm dead route for freecheckout endpoint 2026-03-30 19:28:47 -05:00
snipe b59b51b2aa Merge remote-tracking branch 'origin/develop' 2026-03-30 20:17:53 +01:00
snipe 7677b3916d Removed parens 2026-03-30 20:17:43 +01:00
snipe b4debacd1a Merge remote-tracking branch 'origin/develop' 2026-03-30 20:06:48 +01:00
Godfrey M d91c26e718 fix bulk edit breadcrumb translation 2026-03-30 10:38:30 -07:00
snipe 8e64083f06 Removed “in active” class 2026-03-30 14:52:57 +01:00
snipe 56580f117a Fixed audit view tab on assets 2026-03-30 14:52:43 +01:00
snipe 29e994dfd0 Added manufacturer and category relationships 2026-03-30 13:05:57 +01:00
snipe b833daf943 Merge remote-tracking branch 'origin/develop' 2026-03-30 12:15:35 +01:00
snipe 537e09a0a6 Fixed #18779 - added audits tab back in 2026-03-30 12:13:56 +01:00
Joël Pittet f53f55b283 Fixes PKSA-4t1p-xpk2-nsss for aws/aws-sdk-php 2026-03-29 10:03:02 -07:00
snipe 943903d8d6 Merge remote-tracking branch 'origin/develop' 2026-03-28 10:36:48 +00:00
snipe 523920d6d6 Pint 2026-03-28 10:36:37 +00:00
snipe e39a242a76 Ignnore counts 2026-03-28 10:36:29 +00:00
snipe e3b57b0c2f Merge remote-tracking branch 'origin/develop' 2026-03-27 21:10:15 +00:00
snipe 125a9e4031 Merge pull request #18778 from grokability/advanced-search-for-licenses
Advanced search for licenses
2026-03-27 21:09:59 +00:00
snipe 9576871ff9 Pint. Sigh. 2026-03-27 21:02:37 +00:00
snipe 968724f369 Mark test as incomplete in SQLite 2026-03-27 21:02:26 +00:00
snipe 4444a63b92 Added created_at and searchableCounts 2026-03-27 20:39:27 +00:00
snipe 9924112d08 Use Filter request on categories API 2026-03-27 20:38:16 +00:00
snipe 368796c40e Added created_at to category search 2026-03-27 20:37:48 +00:00
snipe b9f6b2bbb8 Made user counts searchable 2026-03-27 20:36:45 +00:00
snipe 86afa9d201 Added advanced search to categories 2026-03-27 20:36:27 +00:00
snipe 294d320aa0 Added test 2026-03-27 20:18:13 +00:00
snipe bdd44061f3 Added ability to support aliased count/sum fields in search 2026-03-27 20:18:05 +00:00
snipe 8545d2d703 Made % remaining sortable 2026-03-27 19:21:55 +00:00
snipe 61f3180d74 Small fixes to Searchable trait 2026-03-27 19:21:41 +00:00
snipe 9efcb09836 Moved adminuser into SnipeModel 2026-03-27 19:21:27 +00:00
snipe 80b7ebd508 Moved adminuser method to the SnipeModel 2026-03-27 19:20:54 +00:00
snipe 4545cf8989 Removed broken(?) use statement 2026-03-27 19:20:11 +00:00
snipe 4dc5e8bbdb Use filter check 2026-03-27 19:19:48 +00:00
snipe 0261776778 Added FilterRequest and added refactorerd search check 2026-03-27 19:19:25 +00:00
snipe 1dfce30a32 Broke out the use statements for readaibility 2026-03-27 19:17:55 +00:00
snipe d7f44fdda4 Added license filter tests 2026-03-27 18:34:54 +00:00
snipe 8facdcd55c Added advanced search back to licenses 2026-03-27 18:34:36 +00:00
snipe 582b8858bc Pint 2026-03-27 18:34:15 +00:00
snipe 6d4264bc58 Refactor Searchable Trait to allow for filters 2026-03-27 18:34:05 +00:00
snipe 340433f418 Merge remote-tracking branch 'origin/develop' 2026-03-27 16:14:39 +00:00
snipe 107576eb01 Merge pull request #18777 from grokability/small-s3-fixes
Fixed #18573 - download URLs for S3, actually force the download
2026-03-27 15:53:48 +00:00
snipe ede406c904 Fixed #18573 - Removed extra slash in files controllers 2026-03-27 15:44:27 +00:00
snipe 3b875ce6ec Actually force the download in S3 2026-03-27 15:43:28 +00:00
snipe c89e14ae52 Removed unused showOrDownloadFile() method 2026-03-27 15:21:49 +00:00
snipe cff2fc0f16 Fixed typo 2026-03-27 13:39:39 +00:00
snipe e8b637b900 Allow qty parameter in partial 2026-03-27 12:59:24 +00:00
snipe 84bb484761 Merge remote-tracking branch 'origin/develop' 2026-03-26 17:50:06 +00:00
snipe 25c8fdd5d6 Fixed typo 2026-03-26 17:49:27 +00:00
snipe 6beaea8be9 Merge remote-tracking branch 'origin/develop' 2026-03-26 17:41:14 +00:00
snipe 7952bdefa8 Pint formatting 2026-03-26 17:40:56 +00:00
snipe 280d16637a Added file-specific policies 2026-03-26 17:40:49 +00:00
snipe cc397f6846 Merge remote-tracking branch 'origin/develop' 2026-03-26 16:27:40 +00:00
snipe bec443ce97 Tweaked checkin/checkout button statuses 2026-03-26 16:27:04 +00:00
snipe 8417007eb8 Fixed #18725 - scope by assetsForShow() 2026-03-26 16:26:33 +00:00
snipe 3db77f05e9 Merge remote-tracking branch 'origin/develop' 2026-03-26 16:05:51 +00:00
snipe 3c1eb27ce1 Merge pull request #18770 from grokability/#18767-added-uploads-for-companies
#18767 added uploads for companies
2026-03-26 16:05:20 +00:00
snipe 614a2cd5de Pint cleanup 2026-03-26 16:02:24 +00:00
snipe 616d0f00f9 Added #18767 - uploads for companies and departments 2026-03-26 16:02:07 +00:00
snipe ef22fb256b Fixed #18768 - people tab on locations 2026-03-26 14:52:43 +00:00
snipe 6e0dbc94d7 Merge remote-tracking branch 'origin/develop' 2026-03-26 13:01:33 +00:00
snipe 328a724920 Fixed #18764 - check for model category in info-panel 2026-03-26 13:01:23 +00:00
snipe f9e620a77f Merge remote-tracking branch 'origin/develop' 2026-03-26 12:57:18 +00:00
snipe 334f27424e Fixed #18765 - viewKeys hiding serial for non-licenses 2026-03-26 12:57:06 +00:00
snipe 45b7df15c3 Merge remote-tracking branch 'origin/develop' 2026-03-26 12:14:34 +00:00
snipe 316f1be3d0 Fixed typo and spacing 2026-03-26 12:14:20 +00:00
snipe a500dd4e9e Add generic history method and component blade for loggables 2026-03-26 12:13:59 +00:00
snipe 4fc35e30c4 Change permissions for maintenances tab 2026-03-26 11:21:31 +00:00
snipe 920676fbd7 Merge remote-tracking branch 'origin/develop' 2026-03-25 14:46:12 +00:00
snipe c2c90dd614 Fixed history count 2026-03-25 14:45:53 +00:00
snipe c69b83da3f Make user tab more flexible 2026-03-25 14:45:53 +00:00
snipe 3d43de0763 Added icons 2026-03-25 14:45:53 +00:00
snipe 413b571ce8 Merge pull request #18737 from guyguy333/public-s3-proxy
Add S3 proxy option
2026-03-25 14:35:56 +00:00
snipe e777d3a54c Merge pull request #18762 from vmikhnevych/debian13installer
Added #18761: Debian 13 support in snipeit.sh installer script
2026-03-25 14:32:17 +00:00
snipe 1981c7daef Merge remote-tracking branch 'origin/develop' 2026-03-25 14:10:22 +00:00
snipe 6a802f9c3c Added padding to pane 2026-03-25 14:09:19 +00:00
snipe f64912e461 Nicer padding in infopanel 2026-03-25 13:57:35 +00:00
snipe 6e3567f0bf Fixed weird BS tables search text local storage issue 2026-03-25 13:56:57 +00:00
snipe 9406b600f9 Formatting 2026-03-25 12:10:07 +00:00
snipe 1398b4cbd6 Small cleanup on the views, added comments to detail view blades 2026-03-25 12:09:56 +00:00
snipe bde097a827 Merge remote-tracking branch 'origin/develop' 2026-03-25 10:39:28 +00:00
snipe a4ad7a0baf Small tweaks to locations API 2026-03-25 10:39:12 +00:00
snipe a3927f25ce Use shorter buttons for opening in maps 2026-03-25 09:52:32 +00:00
snipe d5d8084f95 Remove unused translations 2026-03-25 09:52:19 +00:00
snipe b48fe19617 Added apple and google icon types 2026-03-25 09:51:56 +00:00
snipe f802ea4d38 Fixed tests 2026-03-25 09:20:51 +00:00
vmikhnevych 8107588576 Added #18761: Debian 13 support in snipeit.sh installer script 2026-03-25 10:01:08 +02:00
snipe 531dce4305 Merge remote-tracking branch 'origin/develop' 2026-03-24 23:12:13 +00:00
snipe 44e81dfb8a Fixed typo 2026-03-24 23:11:58 +00:00
snipe b4753e369c Fixed #18732 - use newer datepicker and wire up the today button for today’s date 2026-03-24 23:10:11 +00:00
snipe 7a5842712b Merge remote-tracking branch 'origin/develop'
# Conflicts:
#	public/css/build/app.css
#	public/css/build/app.css.map
#	public/css/build/overrides.css
#	public/css/build/overrides.css.map
#	public/css/dist/all.css
#	public/mix-manifest.json
2026-03-24 21:41:59 +00:00
snipe b479cdf358 Allow zero or null for accessory qty 2026-03-24 21:40:27 +00:00
snipe 222277de9a Used correct phone string for mobile 2026-03-24 21:38:10 +00:00
snipe e285ee2931 Small fixes in formatting 2026-03-24 21:33:46 +00:00
Godfrey M c4b20a16ce use full width if no field label present on TZe_24mm_E 2026-03-24 10:30:58 -07:00
snipe ae7d967227 Merge pull request #18754 from grokability/modernize-user-view
Modernize user view
2026-03-24 13:30:39 +00:00
snipe 2135efe8a9 Small fixes 2026-03-24 13:25:47 +00:00
snipe 00c617b2b8 Fixed typo 2026-03-24 13:06:09 +00:00
snipe 8dd105a31a Added missing path info 2026-03-24 12:51:18 +00:00
snipe 66aeaaefdb More tab tweaks 2026-03-24 12:48:23 +00:00
snipe eb68789327 Added cost well 2026-03-24 12:41:56 +00:00
snipe d73ab0daa0 Tweaked styles 2026-03-24 12:41:43 +00:00
snipe bce9a91408 Responsive tabs 2026-03-24 12:41:32 +00:00
snipe 43808b00ad Tweaked styles 2026-03-24 12:41:16 +00:00
snipe 17e8ef8e30 Added role to tab nav 2026-03-24 12:40:19 +00:00
snipe d02278930d Pass an alignment to the dl 2026-03-24 12:39:16 +00:00
snipe c2597a788b Hide the info panel toggle on smaller devices 2026-03-24 12:38:59 +00:00
snipe 227afd3965 Changed icon 2026-03-24 12:36:19 +00:00
snipe fc97b68503 Added API key count 2026-03-24 10:41:11 +00:00
snipe d83ec4ea05 Merge pull request #18755 from marcusmoore/fixes/18495-bulk-audit-date
Fixed #18495: properly handle null audit date during bulk audit
2026-03-23 23:13:27 +00:00
Marcus Moore 420bf9162d Populate test cases 2026-03-23 15:54:45 -07:00
Marcus Moore 8b1ec3d54b Improve test names 2026-03-23 15:39:56 -07:00
Marcus Moore ea3d970743 Add a couple sanity tests 2026-03-23 15:39:43 -07:00
Marcus Moore a0c905de33 Handle null next_audit_date 2026-03-23 15:38:57 -07:00
Marcus Moore 3517e040c4 Organization 2026-03-23 14:22:17 -07:00
Marcus Moore cf1fb87b63 Improve assertions 2026-03-23 14:16:59 -07:00
Marcus Moore b2389fb67c Scaffold test cases 2026-03-23 14:16:55 -07:00
Marcus Moore f9f57fb161 Merge branch 'develop' into fixes/18495-bulk-audit-date
# Conflicts:
#	tests/Feature/Assets/Api/AuditAssetTest.php
#	tests/Feature/Assets/Ui/AuditAssetTest.php
#	tests/Feature/Assets/Ui/CloneAssetTest.php
#	tests/Support/Settings.php
2026-03-23 11:49:34 -07:00
Marcus Moore a9f7d42d77 Formatting 2026-03-23 10:51:54 -07:00
Marcus Moore 537861c232 Add auditing group tag to tests 2026-03-23 10:50:12 -07:00
Marcus Moore 6eaea0b73f Merge branch 'develop' into laravel-12-take-2 2026-03-23 10:29:49 -07:00
Marcus Moore ee7dddf836 Update league/commonmark 2026-03-23 10:29:44 -07:00
snipe 4c493efb24 Bulk edit not working on locations now? 2026-03-23 15:00:03 +00:00
snipe 323d308c73 Overhaul user view 2026-03-23 14:59:52 +00:00
snipe 07ddc0e574 Fixed typo 2026-03-23 14:59:41 +00:00
snipe d159f6a3db More copy to clipboard 2026-03-23 14:59:15 +00:00
snipe 1bcfe94818 More icon stuff 2026-03-23 14:58:57 +00:00
snipe f7db8ef03d Fixed typo 2026-03-23 14:58:51 +00:00
snipe 1b2a46d7a0 Made name optional 2026-03-23 14:58:42 +00:00
snipe 0ff2a971a4 Moved new styles into default layout 2026-03-23 14:05:08 +00:00
snipe dce076157b Added new tabs 2026-03-23 14:04:44 +00:00
snipe 7cc0aa336b Added more copy links 2026-03-23 14:04:37 +00:00
snipe 5b193f7a7a Added helper function 2026-03-23 14:04:06 +00:00
snipe e290c70732 Added helper function 2026-03-23 14:03:54 +00:00
snipe a73e68fa1a Added icons 2026-03-23 14:03:45 +00:00
snipe b0578757d2 Merge pull request #18749 from grokability/added-percent-bars
Added percent bars to accessories, etc list views
2026-03-23 10:57:17 +00:00
snipe bf8082f0b9 Formatted tests via pint 2026-03-23 10:48:53 +00:00
snipe 04bebca323 Added unit tests 2026-03-23 10:47:16 +00:00
snipe 0fe753b7da Added % bars to accessories, licenses, etc 2026-03-23 10:41:48 +00:00
snipe 24c3c01851 Merge remote-tracking branch 'origin/develop' 2026-03-23 09:46:13 +00:00
snipe a6a211f386 Check for manufacturer model 2026-03-23 09:46:04 +00:00
snipe 603aa39e3f Merge remote-tracking branch 'origin/develop' 2026-03-23 09:41:07 +00:00
snipe 66607069fe Merge pull request #18740 from grokability/modern-ui-for-assets-view
Modern UI for assets view
2026-03-23 09:40:46 +00:00
snipe 54badc5545 Merge pull request #18748 from grokability/copilot/sub-pr-18740-another-one
[WIP] [WIP] Address feedback on Modern UI for assets view PR
2026-03-23 09:37:05 +00:00
snipe 64c07aa7b6 Merge pull request #18747 from grokability/copilot/sub-pr-18740-again
[WIP] [WIP] Address feedback on Modern UI for assets view PR
2026-03-23 09:36:34 +00:00
copilot-swe-agent[bot] 9d40df179d Guard last_checkout against null before calling diffForHumans
Co-authored-by: snipe <197404+snipe@users.noreply.github.com>
Agent-Logs-Url: https://github.com/grokability/snipe-it/sessions/dfb459ae-6819-47c9-8db5-67d70a8e9e2d
2026-03-23 09:35:35 +00:00
copilot-swe-agent[bot] af5e87970e fix: remove duplicate @elseif condition in currency prefix display
Co-authored-by: snipe <197404+snipe@users.noreply.github.com>
Agent-Logs-Url: https://github.com/grokability/snipe-it/sessions/191de9a3-2211-4805-b0f8-27dc485af039
2026-03-23 09:35:35 +00:00
copilot-swe-agent[bot] e9d7189e16 Initial plan 2026-03-23 09:34:43 +00:00
copilot-swe-agent[bot] 1cc15c3931 Initial plan 2026-03-23 09:34:35 +00:00
snipe dfb4cae5ed Merge pull request #18746 from grokability/copilot/sub-pr-18740-again
[WIP] [WIP] Address feedback on Modern UI for assets view PR
2026-03-23 09:32:21 +00:00
copilot-swe-agent[bot] c4c8750b26 Fix showCheckoutButton/showCheckinButton to call availability methods
Co-authored-by: snipe <197404+snipe@users.noreply.github.com>
Agent-Logs-Url: https://github.com/grokability/snipe-it/sessions/2cd4613d-eb6f-499d-8df3-4463e731a501
2026-03-23 09:31:07 +00:00
copilot-swe-agent[bot] aa25a68af8 Initial plan 2026-03-23 09:29:20 +00:00
snipe ad5c5e27bd Merge pull request #18745 from grokability/copilot/sub-pr-18740
Fix progress bar percentages: real 0–100 values with null guards
2026-03-23 09:27:27 +00:00
snipe 141e28d627 Deleted example blade component 2026-03-23 09:25:31 +00:00
snipe d0b28b6e65 Fixed ternary 2026-03-23 09:24:48 +00:00
copilot-swe-agent[bot] 068e6c0e92 Fix progress bar percentages: compute real 0-100 values with null guards and clamping
Co-authored-by: snipe <197404+snipe@users.noreply.github.com>
Agent-Logs-Url: https://github.com/grokability/snipe-it/sessions/bb7b5cc7-2a85-425c-be61-555bbaddc99c
2026-03-23 09:23:20 +00:00
copilot-swe-agent[bot] 95a342fc25 Initial plan 2026-03-23 09:19:49 +00:00
snipe b21efb91b5 Update app/Models/SnipeModel.php
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-03-23 09:15:30 +00:00
snipe d363793c56 Update resources/lang/en-US/general.php
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-03-23 09:15:11 +00:00
snipe 7e687e91c2 Update resources/views/blade/button/label.blade.php
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-03-23 09:13:41 +00:00
snipe 255c7e323f Update resources/views/blade/button/note.blade.php
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-03-23 09:13:25 +00:00
snipe d3fd535605 Merge remote-tracking branch 'origin/develop' 2026-03-23 08:59:36 +00:00
snipe 5992525d8e Merge pull request #18744 from grokability/added-percent-remaining-and-add-asset-button
Added % remaining and create asset button to models view and list
2026-03-23 08:59:23 +00:00
snipe 03b0e24289 Added % remaining and create asset button to models view and list 2026-03-23 08:54:13 +00:00
snipe f7f58ba12d Merge remote-tracking branch 'origin/develop' 2026-03-21 10:59:37 +00:00
snipe 595b5c865f Merge pull request #18742 from grokability/added-armenian-updated-languages
Added Armenian updated languages
2026-03-21 10:59:20 +00:00
snipe 2b2a015f51 Updated language strings 2026-03-21 10:57:56 +00:00
snipe 8160ebf854 Added Amenian 2026-03-21 10:57:28 +00:00
snipe dc27169129 Added Armenian as a language option 2026-03-21 10:47:03 +00:00
snipe 8d7cf50089 Merge remote-tracking branch 'origin/develop' 2026-03-21 10:20:26 +00:00
snipe 8498b9b6bd Use route model binding for department 2026-03-21 10:20:18 +00:00
snipe aead8f6c56 Merge remote-tracking branch 'origin/develop' 2026-03-21 10:03:19 +00:00
snipe d58fda626e Import company model 2026-03-21 10:02:18 +00:00
snipe 0f753ae5b5 Merge pull request #18739 from ubc-cpsc/fix/commonmark-PKSA-21fb-n1x5-5nf7
Fix CVE-2026-33347 and CVE-2026-30838 in league/commonmark
2026-03-21 09:51:01 +00:00
snipe 3371ac9552 Use calendar icon 2026-03-20 19:18:08 +00:00
snipe 1351df90f9 Link to manager in user profile if they have one and can see the user’s profile 2026-03-20 19:17:52 +00:00
snipe 02b6a928b4 Moved calendar stuff together in icon helper 2026-03-20 19:16:58 +00:00
snipe a1c72d8972 Added presenter 2026-03-20 18:23:17 +00:00
snipe 62596c875e New strings 2026-03-20 18:23:10 +00:00
snipe 282388fb33 New transformers 2026-03-20 18:23:04 +00:00
snipe afbd31ca01 Only allow audit if not deleted 2026-03-20 18:22:53 +00:00
snipe f1d32b8cae Show the field but with no data if no value 2026-03-20 18:22:39 +00:00
snipe fa7033f4e3 Hide buttons on print 2026-03-20 18:22:21 +00:00
snipe 46bcc7ede8 Added manufacturer to side panel 2026-03-20 18:22:13 +00:00
snipe 2adc10ed6e Make sure the object exists (only needed when models are invalid/broken 2026-03-20 18:22:01 +00:00
snipe ab8a88350f Added additional parameters for licenses table 2026-03-20 18:21:36 +00:00
snipe e1809f1c19 Only allow notes, labels if not deleted 2026-03-20 18:21:05 +00:00
snipe b8cc9ac788 Added checkin button 2026-03-20 18:20:46 +00:00
snipe 40c2a49e98 Progressbar and other work 2026-03-20 18:20:36 +00:00
snipe 1894f55474 Commented out a weird test 2026-03-20 18:19:52 +00:00
snipe 18a4c88ead RMB on licenses for assets API call 2026-03-20 18:19:42 +00:00
snipe 210fd6399a Helper methods to determine if the asset or thing can be checked in 2026-03-20 18:19:17 +00:00
Joël Pittet b91882f5dd Fix commonmark security update 2026-03-20 10:26:26 -07:00
snipe 6af827f595 Fixed weird copy icon on layout 2026-03-20 15:48:30 +00:00
snipe 200d92186c More updates to hardware view 2026-03-20 13:27:12 +00:00
snipe cc971dba4c Added info-panel components 2026-03-20 13:27:04 +00:00
snipe 35c0b3b8b1 Changed location for info-panel 2026-03-20 13:26:39 +00:00
snipe cf637f8f65 Added last note to language 2026-03-20 10:28:23 +00:00
snipe c86226c13b Made status component a bit more generic 2026-03-20 10:28:13 +00:00
snipe eaed40966a Added model to info-panel 2026-03-20 10:27:59 +00:00
snipe 5083207477 Updated model files tab component with correct hash 2026-03-20 10:27:50 +00:00
snipe 5f57402903 Added progressbar component 2026-03-20 10:27:29 +00:00
snipe 4c9ffe4eb9 Fixed suppliers tab component 2026-03-20 10:27:06 +00:00
snipe f705a2e24d Made (very messy) custom fields component 2026-03-20 10:25:47 +00:00
snipe 61a8567cc3 Updated copy to clipboard component 2026-03-20 10:25:30 +00:00
snipe 8e33a644cf Removed unused code 2026-03-20 10:25:01 +00:00
Marcus Moore e2e4743994 Attempt to handle docker build fail 2026-03-19 13:56:44 -07:00
Marcus Moore 7b1a5aea19 Revert "Allow installation when MAIL_FROM_ADDR is not set"
This reverts commit 602e13dab7.
2026-03-19 13:37:44 -07:00
Marcus Moore 602e13dab7 Allow installation when MAIL_FROM_ADDR is not set 2026-03-19 13:31:38 -07:00
Marcus Moore 64117b92b0 Revert "Add default address for docker"
This reverts commit 17c89a3f2b.
2026-03-19 13:19:23 -07:00
Marcus Moore 17c89a3f2b Add default address for docker 2026-03-19 12:07:24 -07:00
Guillaume Delbergue 1482abc8b9 feat: add PUBLIC_S3_PROXY option to serve public uploads through the app
When PUBLIC_S3_PROXY=true, public uploads (images, logos, avatars) are
served through a proxy controller instead of directly from S3. This
allows using a single fully private S3 bucket for all storage, with no
public ACLs or direct S3 URLs exposed to the browser.

The proxy streams files from the configured public disk with proper
cache headers (ETag, Last-Modified, Cache-Control). Disabled by default
for full backward compatibility.
2026-03-19 19:41:05 +01:00
Brady Wetherington 9d33a2c524 Merge branch 'develop' into use_new_laravel_scim_server 2026-03-19 17:41:18 +00:00
snipe af31dfd19c Formatting 2026-03-19 17:13:47 +00:00
snipe 53c090fd6c First stab 2026-03-19 17:13:24 +00:00
snipe 1aef412b13 Merge pull request #18735 from marcusmoore/fixes/54250-assigned-to-in-expiring-assets
Fixed FD-54250: Display assigned entity in expiring assets mail
2026-03-19 16:55:09 +00:00
Marcus Moore f9956cf617 Display assigned to in expiring assets mail 2026-03-19 09:30:47 -07:00
Guillaume Delbergue bc7473d863 feat: use Storage::disk('public')->url() instead of hardcoded upload URLs
Several presenters, models, transformers, and Blade views were building
upload URLs by concatenating config('app.url') with hardcoded '/uploads/'
paths. This only works with local storage and breaks when using S3 or
any non-local public disk. Replaced with Storage::disk('public')->url()
which respects the configured filesystem driver.

Made-with: Cursor
2026-03-19 13:52:36 +01:00
Marcus Moore a470ba76df Remove assertion
Log::setEventDispatcher(Event::fake()) no longer works...
2026-03-18 14:04:17 -07:00
snipe 84c42999e4 Merge remote-tracking branch 'origin/develop' 2026-03-18 20:04:59 +00:00
snipe 5f1566d6ab Fixed path for translations 2026-03-18 19:59:25 +00:00
snipe 87c5e3e01e Fixed path for non-deletable path info 2026-03-18 19:59:10 +00:00
snipe 27a554bebd Merge pull request #18728 from grokability/modernize-views
Modernize views
2026-03-18 19:57:36 +00:00
Marcus Moore 3ce017fa68 Upgrade to Laravel 12
Co-authored-by: Brady Wetherington <bwetherington@grokability.com>
2026-03-18 12:36:16 -07:00
Marcus Moore d446da2243 Update telescope 2026-03-18 12:23:46 -07:00
Marcus Moore cdb4416421 Update collision 2026-03-18 12:21:38 -07:00
Marcus Moore a1de8aa20c Bump phpunit to v11 2026-03-18 12:20:57 -07:00
Marcus Moore adfad90f7c Bump laravel-backup to v9
Co-authored-by: Brady Wetherington <bwetherington@grokability.com>
2026-03-18 12:17:46 -07:00
Marcus Moore 22703806cd Bump larastan to v3 2026-03-18 12:11:20 -07:00
Marcus Moore 22a63fc2ee Bump scim server 2026-03-18 12:10:33 -07:00
snipe eec2773c88 Changed history icon 2026-03-18 17:01:10 +00:00
snipe c1c3c6724f Use history tab icon 2026-03-18 17:00:59 +00:00
snipe 0223304ec7 Moved files table header into component 2026-03-18 16:35:47 +00:00
snipe 08f9879ada Added details and models tab nav 2026-03-18 16:31:59 +00:00
snipe 29559485e2 Removed erroneous content slot 2026-03-18 16:17:52 +00:00
snipe 6e100177da Nicer UI for groups 2026-03-18 15:57:18 +00:00
snipe d36e17eaae Check for deletability in groups 2026-03-18 15:57:11 +00:00
snipe 51e60d2d6b Fixed name in companies 2026-03-18 15:28:32 +00:00
snipe 995276643c Updated suppliers view to use more specific components 2026-03-18 15:20:02 +00:00
snipe a3c792619d Updated company to use specific blade components 2026-03-18 15:19:29 +00:00
snipe 946161a514 Updated icon 2026-03-18 15:18:51 +00:00
snipe 075be02f96 Added maintenance tab element 2026-03-18 15:18:46 +00:00
snipe 3664bbf423 Changed to use table_header slot 2026-03-18 15:17:19 +00:00
snipe 820b41927d Updated icon 2026-03-18 15:16:31 +00:00
snipe 7ff5927409 Removed active class - this is handled via JS now 2026-03-18 15:15:47 +00:00
snipe f93b40f402 Smaller header for tables 2026-03-18 14:40:16 +00:00
snipe 7d226a6dca Set default API routes in table components 2026-03-18 14:16:29 +00:00
snipe 7b2edd0762 Use table components 2026-03-18 13:20:36 +00:00
snipe 5dc0401f23 Use correct bulk edit component 2026-03-18 13:18:19 +00:00
snipe b5164e4c92 Remove sticky header from maintenance report 2026-03-18 13:17:15 +00:00
snipe e1a06fa188 Switch to users table component 2026-03-18 13:16:57 +00:00
snipe b2ec69ce7f Make table blades more flexible 2026-03-18 13:16:15 +00:00
snipe a9706f6d5e Added users table component 2026-03-18 12:48:54 +00:00
snipe cee2b77fbc Moved filestable into table component directory 2026-03-18 12:48:34 +00:00
snipe 3425599461 Moved filestable into table blade directory 2026-03-18 12:47:46 +00:00
snipe 104123495d Use generic name translation 2026-03-18 12:44:32 +00:00
snipe c2735fce90 Added sumformatter 2026-03-18 12:44:22 +00:00
snipe d4ff9dce24 Added sumformatter 2026-03-18 12:44:11 +00:00
snipe 5c8a62d9b7 Added wrap-prevention on tag colors 2026-03-18 12:21:20 +00:00
snipe 87fa71c599 Use table component for maintenance index 2026-03-18 08:11:02 +00:00
snipe 0b08b8007b Use table component for maintenances 2026-03-18 08:10:40 +00:00
snipe 3e93684451 Added sumformatter to maintenances 2026-03-18 08:09:59 +00:00
snipe 218190d989 Merge remote-tracking branch 'origin/develop' 2026-03-17 14:01:35 +00:00
snipe 0a4ec84875 Use has instead of filled for email, username, etc 2026-03-17 13:58:59 +00:00
snipe 33402f5e0c Merge remote-tracking branch 'origin/develop' 2026-03-17 13:29:13 +00:00
snipe d0e57cfab6 Added null operator in the case of a bad status label on asset audit 2026-03-17 13:27:46 +00:00
snipe 0ebd103e21 Merge remote-tracking branch 'origin/develop' 2026-03-17 13:11:20 +00:00
snipe 95ba562021 Remove int from asset_maintenance_time 2026-03-17 13:11:10 +00:00
snipe 67f5fb72c3 Merge remote-tracking branch 'origin/develop' 2026-03-17 12:22:34 +00:00
snipe 62cadfdc8c Removed permissions on report view 2026-03-17 12:22:26 +00:00
snipe 27e8995cce Merge pull request #18722 from grokability/improve-maintenance-report
Improved asset maintenance report
2026-03-17 12:21:24 +00:00
snipe e2406e33d8 Improved asset maintenance report 2026-03-17 12:16:31 +00:00
snipe da2dd79765 Merge pull request #18720 from marcusmoore/pint-tests
Apply pint to tests directory
2026-03-17 10:32:40 +00:00
snipe 4568180e85 Merge remote-tracking branch 'origin/develop' 2026-03-17 09:07:00 +00:00
Marcus Moore cc8f59d9e0 Add pint commits 2026-03-16 17:41:25 -07:00
Marcus Moore 446f5f3cef Run pint on tests 2026-03-16 17:40:57 -07:00
Marcus Moore d84eb43278 Snake case FMCS and permission methods in tests 2026-03-16 17:36:35 -07:00
snipe bb72dab877 Merge pull request #18719 from marcusmoore/ignore-revs
Add .git-blame-ignore-revs file
2026-03-16 23:41:08 +00:00
Marcus Moore b06762ea4f Fix commits 2026-03-16 15:31:41 -07:00
Marcus Moore 33d75cdd2d Fix commit 2026-03-16 15:25:52 -07:00
Marcus Moore 3372b7a647 Fix comments 2026-03-16 15:25:03 -07:00
Marcus Moore 4e0d34b826 Create and add styling commits to .git-blame-ignore-revs 2026-03-16 15:24:16 -07:00
snipe 324c937cc4 Merge remote-tracking branch 'origin/develop' 2026-03-16 21:06:38 +00:00
snipe 908d04e98a Merge pull request #18718 from grokability/added-blade-component-for-status
Added status component box
2026-03-16 21:06:24 +00:00
snipe 79fd541498 Removed if/else 2026-03-16 20:57:18 +00:00
snipe 8c360a26e5 Added status component box 2026-03-16 20:49:15 +00:00
snipe 93ae07cc89 Merge remote-tracking branch 'origin/develop' 2026-03-16 20:08:56 +00:00
snipe 713a726bde Merge pull request #18717 from grokability/#18574-add-checked-out-to-to-maintenances
Fixed #18574 - adds checked out field to maintenances
2026-03-16 20:05:26 +00:00
snipe 100f1683be Added checkout info to view 2026-03-16 19:59:09 +00:00
snipe ed201b24d6 Fixed #18574 - adds checked out field to maintenances 2026-03-16 19:54:04 +00:00
snipe 0b7ebcaeb0 Merge pull request #18543 from Godmartinz/changing-recipient-header-to-cc
Fix CC Mail header for checkouts and check-ins
2026-03-16 10:41:28 +00:00
snipe 52a9993b0d Merge remote-tracking branch 'origin/develop' 2026-03-16 10:36:13 +00:00
snipe 4e733fab02 Merge pull request #18714 from grokability/#17348-show-deleted-assets-for-deleted-models
Fixed #17348 - show deleted assets for deleted models
2026-03-16 10:35:59 +00:00
snipe 3257c6e709 Updated restore button to be inline 2026-03-16 10:30:48 +00:00
snipe ece4ed4caf Added optional deleted_at constraint 2026-03-16 10:30:36 +00:00
snipe fa04891ddb Added tooltip for clone and edit 2026-03-16 10:24:25 +00:00
ArturoSirvent 6145c6cc5a Fix backup disk driver configuration for S3 support
- Fix the backup disk in config/filesystems.php to use a dedicated BACKUP_FILESYSTEM_DRIVER env var instead of PRIVATE_FILESYSTEM_DISK
- Add AWS credential fields to the backup disk config so S3 backups work
- Use BACKUP_FILESYSTEM_ROOT with safe default (storage_path('app')) for local driver
- Document BACKUP_FILESYSTEM_DRIVER and BACKUP_FILESYSTEM_ROOT in .env.example

Fixes #14057
2026-03-14 23:24:58 +01:00
snipe dffff07436 Removed codacy config 2026-03-13 18:29:21 +00:00
snipe 97854ad02d Bumped hash 2026-03-13 18:27:23 +00:00
snipe 500d6e1f2d Merge remote-tracking branch 'origin/develop'
# Conflicts:
#	config/version.php
2026-03-13 18:25:48 +00:00
snipe f69e2c671b Merge pull request #18709 from grokability/pint-resources
Applied pint to languages and resources
2026-03-13 18:22:55 +00:00
snipe 84fdb5d6c1 Applied pint to languages and resources 2026-03-13 18:17:51 +00:00
snipe dc58ddce59 Merge pull request #18708 from grokability/pint-database
Apply pint to database directory
2026-03-13 18:14:02 +00:00
snipe b5a46a370f Apply pint to database directory 2026-03-13 18:12:37 +00:00
snipe 199bdb219f Merge pull request #18707 from grokability/pint-config
Apply pint to config directory
2026-03-13 18:11:02 +00:00
snipe c1a93e3ac8 Apply pint to config directory 2026-03-13 18:08:12 +00:00
snipe f334b8caa3 Merge pull request #18706 from grokability/pint-providers
Apply pint to Providers directory
2026-03-13 18:03:57 +00:00
snipe 8b658a19b9 Apply pint to Providers directory 2026-03-13 17:56:51 +00:00
snipe 59dd9970d0 Merge pull request #18705 from grokability/pint-presenters
Apply pint to Presenters directory
2026-03-13 17:53:04 +00:00
snipe 55d46cbefe Apply pint to Presenters directory 2026-03-13 17:43:54 +00:00
snipe e37ce27773 Merge pull request #18704 from grokability/pint-policies-and-observers
Apply pint to Observers and Policy directories
2026-03-13 17:42:57 +00:00
snipe b2c0a21230 Apply pint to Observers and Policy directories 2026-03-13 17:41:08 +00:00
snipe 00704aea73 Merge pull request #18703 from grokability/pint-notifications
Apply pint to Notifications directory
2026-03-13 17:39:24 +00:00
snipe 31043d1f5c Apply pint to Notifications directory 2026-03-13 17:37:47 +00:00
snipe 33b68c11db Merge pull request #18702 from grokability/pint-mail
Apply pint to Mail directory
2026-03-13 17:32:33 +00:00
snipe de607e7d83 Apply pint to Mail directory 2026-03-13 17:26:56 +00:00
snipe ab7ff30a73 Merge pull request #18701 from grokability/pint-livewire
Applied pint to Livewire directory
2026-03-13 17:25:21 +00:00
snipe 53f2ef2ca1 Applied pint to Livewire directory 2026-03-13 17:19:19 +00:00
snipe 25f2e560f1 Merge pull request #18700 from grokability/pint-jobs-listeners
Apply pint to Jobs and Listeners directory
2026-03-13 17:18:21 +00:00
snipe 317b1a462e Apply pint to Jobs and Listeners directory 2026-03-13 17:13:08 +00:00
snipe bf97734533 Merge pull request #18699 from grokability/pint-importer
Apply pint to Importer directory
2026-03-13 17:11:35 +00:00
snipe 3e831bf9b3 Apply pint to Importer directory 2026-03-13 17:10:06 +00:00
snipe b4400b38a9 Merge pull request #18698 from grokability/pint-traits-and-transformers
Applied pint to Traits and Transformers
2026-03-13 17:07:54 +00:00
snipe a613380811 Applied pint to Traits and Transformers 2026-03-13 17:02:28 +00:00
snipe 7f30fe1a95 Merge pull request #18697 from grokability/pint-requests
Apply pint to Requests directory
2026-03-13 17:00:47 +00:00
snipe 93168326da Apply pint to Requests directory 2026-03-13 16:56:26 +00:00
snipe 70c672eb52 Merge pull request #18696 from grokability/pint-middleware
Apply pint to Middleware directory
2026-03-13 16:54:17 +00:00
snipe ec6caf9b59 Apply pint to Middleware directory 2026-03-13 16:53:11 +00:00
snipe 1f1d41ecfd Merge pull request #18695 from grokability/pint-controllers
Apply pint to non-API controllers
2026-03-13 16:50:28 +00:00
snipe 9bc92f57c8 Apply pint to non-API controllers 2026-03-13 16:45:30 +00:00
snipe bbe6475eb2 Merge pull request #18694 from grokability/pint-api-controllers
Apply pint to API controllers
2026-03-13 16:43:33 +00:00
snipe 1e5d426e70 Apply pint to API controllers 2026-03-13 16:38:23 +00:00
snipe ccf6856143 Apply pint to Helpers 2026-03-13 16:37:19 +00:00
snipe 175d8306b8 Merge pull request #18693 from grokability/pint-exceptions
Apply pint to Exceptions directory
2026-03-13 16:35:43 +00:00
snipe 2e7046a810 Apply pint to Exceptions directory 2026-03-13 16:32:11 +00:00
snipe c03c913ce7 Merge pull request #18692 from grokability/pint-enums
Apply pint to enums and events
2026-03-13 16:30:52 +00:00
snipe f7b82ad1ff Apply pint to enums and events 2026-03-13 16:25:59 +00:00
snipe 118ddfce94 Merge pull request #18691 from grokability/pint-console
Apply pint to Console directory
2026-03-13 16:24:39 +00:00
snipe 8bce38b918 Apply pint to Console directory 2026-03-13 16:20:24 +00:00
snipe d31ba20dd5 Merge pull request #18690 from grokability/pint-actions
Use pint on actions directory
2026-03-13 16:19:11 +00:00
snipe a3c7410c35 Apply pint to actions directory 2026-03-13 16:04:34 +00:00
snipe 624e6839c3 Merge pull request #18689 from grokability/pint-models
Use pint on models directory
2026-03-13 16:02:51 +00:00
snipe 9623fa4d87 Use pint on models directory 2026-03-13 15:55:28 +00:00
snipe c196637922 Install pint dev dependency 2026-03-13 14:52:13 +00:00
snipe 67284e2e6d Updated badge in readme 2026-03-13 11:17:36 +00:00
snipe f6ee500e6c Merge pull request #18684 from marcusmoore/copilot-updates
Updated copilot instructions
2026-03-13 11:16:41 +00:00
snipe b76d909619 Merge pull request #18685 from marcusmoore/test-improvements
Improved asset tests
2026-03-13 11:16:29 +00:00
snipe faf9cecc10 Merge pull request #18688 from grokability/normalize-requests-with-class-reference
Use Blah::class instead of new Blah in form requests
2026-03-13 11:09:42 +00:00
snipe 1246de2644 Use Blah::class instead of new Blah in form requests 2026-03-13 11:02:05 +00:00
snipe 0c72109ad8 Revert RMB for more consistent UX 2026-03-13 09:34:26 +00:00
Marcus Moore 5aad15256c Improve tests around assets 2026-03-12 16:15:27 -07:00
Marcus Moore 69f7778067 Revise copilot instructions 2026-03-12 15:56:37 -07:00
snipe 5d6b9890ca Import eloquent model 2026-03-12 18:44:45 +00:00
snipe 20382ea5bf Merge remote-tracking branch 'origin/develop' 2026-03-12 14:54:28 +00:00
snipe 0d257d956f Undo json encode 2026-03-12 14:54:18 +00:00
snipe f853d25d4f Merge remote-tracking branch 'origin/develop' 2026-03-12 14:46:48 +00:00
snipe 4c05f26940 Merge pull request #18681 from grokability/redirect-fixes
Use intended() for redirect options
2026-03-12 14:44:38 +00:00
snipe ce18ff669c Added admin check 2026-03-12 14:42:36 +00:00
snipe a3b5346773 Ignore the sqlite database in git 2026-03-12 14:24:59 +00:00
snipe 3c96491295 Remove unused route 2026-03-12 14:24:46 +00:00
snipe 53abf8cdcc Load count with RMB controller 2026-03-12 14:10:43 +00:00
snipe e376492128 Use intended() for redirect options 2026-03-12 13:57:50 +00:00
snipe 2658b9b064 Fixed variable in trans_choice for deployable check 2026-03-12 13:47:23 +00:00
snipe 46e7e12cb2 Merge remote-tracking branch 'origin/develop' 2026-03-12 13:41:06 +00:00
snipe f412b56caa Fixed #18678 - small UI tweaks 2026-03-12 13:40:47 +00:00
snipe 9c63b40a5a Merge pull request #18680 from grokability/copilot
Added copilot instructions file
2026-03-12 13:21:38 +00:00
snipe 40843f93dc Added copilot instructions file 2026-03-12 13:20:37 +00:00
snipe 9165f59dcc Normalized requiered colors 2026-03-12 12:23:20 +00:00
snipe 92ff333778 Force foreground color for label form-control 2026-03-12 12:13:59 +00:00
snipe 63e62cde1b Moved gates higher, switch to RMB for accessories 2026-03-12 12:13:38 +00:00
snipe c5081ce3e5 Added colors to setting seeder 2026-03-12 11:47:04 +00:00
snipe 67d2a5d094 Use better maintenance name 2026-03-12 11:44:40 +00:00
snipe a170da5c01 Merge pull request #18679 from grokability/normalize-breadcrumb-text
Normalize breadcrumb text
2026-03-12 11:42:27 +00:00
snipe 9652cb312a Normalize breadcrumb text 2026-03-12 11:34:38 +00:00
snipe e4d7e08902 Merge pull request #18672 from marcusmoore/remove-laravel-collective-dep
Fixed #17199: Remove Laravel Collective HTML dependency
2026-03-11 19:53:25 +00:00
snipe ce3a7bb687 Merge remote-tracking branch 'origin/develop' 2026-03-11 17:57:10 +00:00
snipe 428095b71b Fixed #18670 - set nav link color override in ResetDemo console command 2026-03-11 17:56:58 +00:00
Marcus Moore 411ffb12ca Merge branch 'develop' into remove-laravel-collective-dep 2026-03-11 10:41:06 -07:00
snipe 3b93193da1 Merge pull request #18667 from marcusmoore/migrate-link-methods
Fixed #18666: Migrate Laravel Collective helper methods
2026-03-11 10:14:31 +00:00
snipe 17584e4799 Merge remote-tracking branch 'origin/develop' 2026-03-11 09:33:14 +00:00
snipe 224a813f25 Fixed #18668 - changed button type 2026-03-11 09:33:03 +00:00
Marcus Moore 7d079f74a1 Uninstall laravelcollective/html 2026-03-10 16:52:42 -07:00
Marcus Moore 4ca53e6f70 Remove Collective provider and aliases 2026-03-10 16:45:48 -07:00
Marcus Moore 70d1ffe294 Remove MacroServiceProvider and macros.php 2026-03-10 16:39:30 -07:00
Marcus Moore 335e1a7e18 Merge branch 'develop' into migrate-link-methods 2026-03-10 16:35:23 -07:00
Marcus Moore 287481a44e Fix model reference 2026-03-10 13:38:14 -07:00
Marcus Moore 2dd09f9702 Remove unused method 2026-03-10 13:35:25 -07:00
snipe 1503f90394 Merge remote-tracking branch 'origin/develop' 2026-03-10 20:26:06 +00:00
snipe 9317d6551d Fixed #18653 - “select company” to “company” in user edit 🙄 2026-03-10 20:25:53 +00:00
snipe d2834fcdb9 Merge remote-tracking branch 'origin/develop' 2026-03-10 20:13:10 +00:00
snipe ed3d30e343 Merge pull request #18657 from marcusmoore/form-macros
Fixed #17200 and #17201: Remove alt_barcode_types and barcode_types macros
2026-03-10 20:11:01 +00:00
Marcus Moore ca5a25f703 Replace remaining calls to link_to_route in Presenters 2026-03-10 13:06:46 -07:00
Marcus Moore 692a9ebebf Replace call to link_to_route 2026-03-10 11:58:27 -07:00
Marcus Moore bf314a0f84 Replace call to link_to_route 2026-03-10 11:54:29 -07:00
Marcus Moore c8c2bb6709 Remove unused serialUrl method from LicensePresenter 2026-03-10 11:31:07 -07:00
Marcus Moore 3fc8b976fc Merge branch 'develop' into form-macros
# Conflicts:
#	resources/macros/macros.php
2026-03-10 10:12:31 -07:00
snipe 6b9dc97fa1 Merge pull request #18665 from grokability/#18662-fix-seat-search
Fixed #18662 wire up search box in assigned license seats
2026-03-10 16:10:37 +00:00
snipe 69d7d6aae2 Fixed #18661 - return true/false in JSON 2026-03-10 15:43:13 +00:00
snipe 4f3a30261e Fixed #18661 - return true/false in JSON 2026-03-10 15:42:35 +00:00
snipe e7c478318c Fixed donked route 2026-03-10 15:39:29 +00:00
snipe e75860c6ee Fixed #18662 wire up search box in assigned license seats 2026-03-10 15:31:54 +00:00
snipe 982766dd77 Merge remote-tracking branch 'origin/develop' 2026-03-10 11:40:14 +00:00
snipe d0dbd1e561 Link parent company 2026-03-10 11:40:03 +00:00
snipe 81cbad52f7 Merge remote-tracking branch 'origin/develop' 2026-03-10 10:25:21 +00:00
snipe e7eb4f0e80 More display_name 2026-03-10 10:25:01 +00:00
snipe f1ef1bc38a Merge remote-tracking branch 'origin/develop' 2026-03-10 10:22:57 +00:00
snipe 676a995889 Use update check for files controller api 2026-03-10 10:22:39 +00:00
snipe b696642993 Merge remote-tracking branch 'origin/develop' 2026-03-10 10:14:47 +00:00
snipe a44fe14de1 Use display_name in more places 2026-03-10 10:14:27 +00:00
snipe e7bb7d3656 Merge remote-tracking branch 'origin/develop' 2026-03-10 09:54:08 +00:00
snipe 0015dbcd1d Merge pull request #18656 from marcusmoore/form-macro-username-select
Fixed #17208: Replace username_format macro
2026-03-10 09:42:15 +00:00
snipe fc5e7cccbc Merge pull request #18652 from grokability/dependabot/github_actions/develop/docker/login-action-4
Bump docker/login-action from 3 to 4
2026-03-10 09:41:54 +00:00
dependabot[bot] 8987f3f951 Bump docker/login-action from 3 to 4
Bumps [docker/login-action](https://github.com/docker/login-action) from 3 to 4.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](https://github.com/docker/login-action/compare/v3...v4)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-version: '4'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-10 09:30:14 +00:00
snipe ba671a8f1f Merge pull request #18651 from grokability/dependabot/github_actions/develop/docker/build-push-action-7
Bump docker/build-push-action from 6 to 7
2026-03-10 09:29:32 +00:00
snipe fbe871f8d1 Merge pull request #18650 from grokability/dependabot/github_actions/develop/docker/metadata-action-6
Bump docker/metadata-action from 5 to 6
2026-03-10 09:29:10 +00:00
snipe 116b2d1229 Merge pull request #18649 from grokability/dependabot/github_actions/develop/docker/setup-buildx-action-4
Bump docker/setup-buildx-action from 3 to 4
2026-03-10 09:28:03 +00:00
snipe 20fd870b59 Merge pull request #18658 from marcusmoore/form-macro-countries
Fixed #17202: Replaced countries form macro
2026-03-10 09:27:05 +00:00
snipe 5c46990195 Check for user on enable_sounds 2026-03-10 09:20:35 +00:00
snipe fab57020f2 Prevent browser errors since input field is display none 2026-03-10 09:16:24 +00:00
snipe b37074f473 Null check on status (RB-4087) 2026-03-10 09:03:57 +00:00
snipe 24e2e81a28 Use component table in suppliers 2026-03-10 09:00:29 +00:00
Marcus Moore ccabc1fbcc Remove countries macro 2026-03-09 17:37:58 -07:00
Marcus Moore f847f83cb8 Replace macro in location modal 2026-03-09 17:36:26 -07:00
Marcus Moore e0771827aa Replace country in address partial 2026-03-09 17:34:57 -07:00
Marcus Moore fa6adaa155 Migrate countries macro on user page 2026-03-09 17:22:43 -07:00
Marcus Moore f3504ce6fc Remove barcode_types macro 2026-03-09 16:36:54 -07:00
Marcus Moore a075ca904b Remove alt_barcode_types macro 2026-03-09 16:36:26 -07:00
Marcus Moore e3fb6fabf8 Remove username_format maco 2026-03-09 16:30:12 -07:00
Marcus Moore 6f89af790e Migrate username format to blade component 2026-03-09 16:29:55 -07:00
snipe 28f493d84d Escape pivot notes 2026-03-09 09:06:58 +00:00
dependabot[bot] a87e862148 Bump docker/build-push-action from 6 to 7
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6 to 7.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v6...v7)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-09 08:42:34 +00:00
dependabot[bot] 6e264bfee0 Bump docker/metadata-action from 5 to 6
Bumps [docker/metadata-action](https://github.com/docker/metadata-action) from 5 to 6.
- [Release notes](https://github.com/docker/metadata-action/releases)
- [Commits](https://github.com/docker/metadata-action/compare/v5...v6)

---
updated-dependencies:
- dependency-name: docker/metadata-action
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-09 08:42:27 +00:00
dependabot[bot] 1ecf862f2d Bump docker/setup-buildx-action from 3 to 4
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 3 to 4.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](https://github.com/docker/setup-buildx-action/compare/v3...v4)

---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  dependency-version: '4'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-09 08:42:22 +00:00
snipe 338fc88095 Merge pull request #18647 from grokability/revert-18601-chore/security-upgrade-passport13-socialite-jwt7
Revert "Upgrade Passport to v13 and move php-jwt to v7 to remediate JWT advisory"
2026-03-08 12:32:31 +00:00
snipe 0a724cc49a Revert "Upgrade Passport to v13 and move php-jwt to v7 to remediate JWT advisory" 2026-03-08 12:29:56 +00:00
snipe a2efcf1ca9 Merge pull request #18601 from ubc-cpsc/chore/security-upgrade-passport13-socialite-jwt7
Upgrade Passport to v13 and move php-jwt to v7 to remediate JWT advisory
2026-03-08 11:51:15 +00:00
snipe ffc9e882d7 Merge remote-tracking branch 'origin/develop' 2026-03-08 11:37:38 +00:00
snipe c9d73e85e1 Fixed RB-4083 2026-03-08 11:37:19 +00:00
Joël Pittet a956676745 Move Passport 13 key permission normalization to upgrade.php to cover existing installs with incorrect permissions 2026-03-07 22:22:46 -08:00
Joël Pittet 5800d08202 normalize key permissions 2026-03-07 21:59:07 -08:00
Joël Pittet b8958bad72 Test failure fixes from 'Key Files Permissions Validation' from https://github.com/laravel/passport/blob/13.x/UPGRADE.md#key-files-permissions-validation 2026-03-07 21:59:00 -08:00
Joël Pittet 0508d7558e OAuth Client Table Changes (Optional) from https://github.com/laravel/passport/blob/13.x/UPGRADE.md#oauth-client-table-changes-optional 2026-03-07 21:59:00 -08:00
Joël Pittet 98c3192a13 Bump laravel/socialite to latest patch release, upgrade laravel/passport to 13 which is compatible with Laravel 11, and security release for firebase/php-jwt 2026-03-07 21:59:00 -08:00
snipe 6e7ff15e78 Merge remote-tracking branch 'origin/develop' 2026-03-07 20:50:31 +00:00
snipe b886e11670 Fixed user API tests 2026-03-07 20:50:18 +00:00
snipe b0c45c7179 Merge remote-tracking branch 'origin/develop' 2026-03-07 11:05:48 +00:00
snipe 92bb1df82e Removed error log in test 2026-03-07 11:05:33 +00:00
snipe 1c4549dd8e Added word break on history 2026-03-07 11:04:25 +00:00
snipe 83e61ec8cd Unset admin if auth user is not admin 2026-03-07 10:45:57 +00:00
snipe 7ea549df4a Added .journal to gitignore 2026-03-06 21:57:23 +00:00
snipe 0fabc5d88d Merge remote-tracking branch 'origin/develop' 2026-03-06 21:55:59 +00:00
snipe af1c55cd7e Small code re-org for clarity 2026-03-06 21:55:46 +00:00
snipe 7822c0bc3e Merge pull request #18644 from uberbrady/fix_location_observer
Re-add Location Observer with null-safe companyable check
2026-03-06 21:47:58 +00:00
Brady Wetherington 2b7ed1f7fa Re-add Location Observer with null-safe companyable check 2026-03-06 21:43:19 +00:00
snipe 33ae9f1d5b Merge remote-tracking branch 'origin/develop' 2026-03-06 20:15:11 +00:00
snipe 45ddaf1b72 Temp comment out location observer 2026-03-06 20:14:56 +00:00
snipe f27aae5e31 Merge remote-tracking branch 'origin/develop' 2026-03-06 14:03:50 +00:00
snipe 7595c922fa Fixed #18043 - added location logging 2026-03-06 14:03:37 +00:00
snipe ff6a6407f5 Merge remote-tracking branch 'origin/develop' 2026-03-06 13:40:16 +00:00
snipe 4d4513d936 Fixed #18642 - view-assets mobile 2026-03-06 13:40:01 +00:00
snipe e378c99923 Layout tweakas 2026-03-06 13:29:38 +00:00
snipe 32a6c8edbe Merge remote-tracking branch 'origin/develop'
# Conflicts:
#	public/js/dist/all.js
#	public/js/dist/all.js.map
#	public/mix-manifest.json
2026-03-06 10:48:34 +00:00
snipe 078c870970 Merge pull request #18162 from Godmartinz/status_bulk_select_fix
Adds #17685 better warning for bulk status change to undeployable type
2026-03-06 09:58:41 +01:00
snipe 4a91d37423 Merge pull request #17666 from akemidx/xxdays-since-last-update
Feature: Added xx days since last update to Custom Report
2026-03-06 09:54:32 +01:00
snipe 96befb2aef Merge branch 'develop' into xxdays-since-last-update 2026-03-06 09:54:01 +01:00
snipe 925452e106 Merge pull request #18248 from iryadifarhan/fix/depreciation-report-displays-incorrect-monthly-depreciation-value
Fixes inaccurate monthly depreciation value displayed at depreciation report when using a floor value
2026-03-06 09:40:39 +01:00
snipe 1678330f0c Merge pull request #18426 from akemidx/global-report-templates
Fixed: Added global report templates
2026-03-06 09:30:15 +01:00
snipe 58cf3fc2ea Dev assets 2026-03-06 08:17:48 +00:00
snipe 13ce17ffc6 Merge pull request #18494 from marcusmoore/livewire4
Upgraded Livewire to v4
2026-03-06 09:16:25 +01:00
snipe 70e020ee0c Merge pull request #18637 from marcusmoore/test-updates
Fixed some minor issues in tests
2026-03-06 09:16:00 +01:00
snipe c6a167ef40 Removed min-height (this might go badly) 2026-03-06 07:42:28 +00:00
snipe f0d1697108 Merge remote-tracking branch 'origin/develop' 2026-03-06 06:46:08 +00:00
snipe 420ba5f261 Fixed #18341 - remove action button from user profile view 2026-03-06 06:45:46 +00:00
snipe 90cb53566c Merge remote-tracking branch 'origin/develop' 2026-03-06 06:24:38 +00:00
snipe 7aa1f3ae1d Merge pull request #18639 from grokability/#18282-add-user-notes-to-custom-export
Fixed #18282 - added original notes to checkout target in custom report
2026-03-06 07:23:58 +01:00
snipe 556d638136 Fixed #18282 - added original notes to checkout target in custom report 2026-03-06 06:19:16 +00:00
snipe 64982d01cf Merge remote-tracking branch 'origin/develop' 2026-03-06 05:59:23 +00:00
snipe c4aa10baf8 Added user company to custom asset report 2026-03-06 05:59:11 +00:00
snipe b6cad58917 Merge remote-tracking branch 'origin/develop' 2026-03-06 05:39:20 +00:00
snipe 86f647e714 Improved bulk audit bg 2026-03-06 05:39:09 +00:00
snipe 4f9c952dbe Merge remote-tracking branch 'origin/develop' 2026-03-06 05:22:09 +00:00
snipe 64f5d40fd9 Removed duplicate code 2026-03-06 05:21:59 +00:00
snipe b9c3c8954f Merge remote-tracking branch 'origin/develop' 2026-03-06 05:17:51 +00:00
snipe 1a0869c2ca Merge pull request #18628 from marcusmoore/fixes/fd-54108-checkin-all-button
Fixed Checkin All Seats button
2026-03-06 06:17:12 +01:00
snipe 82b6159475 Merge remote-tracking branch 'origin/develop' 2026-03-06 04:46:33 +00:00
snipe 1fb32ee461 Merge pull request #18638 from grokability/experiments/compact-nav
Compacted nav UI, components for buttons
2026-03-06 05:45:02 +01:00
snipe 68a863e63e Updated test, fixed route 2026-03-06 04:38:48 +00:00
snipe a1e62ccd46 Fixed (shimmed) #18636 - added shim roite for fieldsets 2026-03-06 03:54:33 +00:00
snipe dae66c0fa4 Fixed audit background 2026-03-06 03:48:45 +00:00
snipe 1d6b21e1c7 Switched to newer button model 2026-03-06 03:33:04 +00:00
snipe 455be12058 Gate fix for admin 2026-03-06 03:05:40 +00:00
snipe 2ebb3ecb96 Update views with new button blades 2026-03-06 01:17:00 +00:00
Marcus Moore b29056dddf Delete duplicate test 2026-03-05 16:35:15 -08:00
Marcus Moore 3ed09f304c Fix method name 2026-03-05 16:30:05 -08:00
Marcus Moore 4875283ed1 Fix test route 2026-03-05 16:20:27 -08:00
Marcus Moore 261231c09e Fix method and variable names 2026-03-05 15:55:59 -08:00
snipe 180dad6ee6 Use updated infobox 2026-03-05 14:36:12 +00:00
snipe d7121ad82f Removed class active (this is handled in jquery) 2026-03-05 11:46:55 +00:00
snipe f121c61524 Added hidden-print class to action buttons column 2026-03-05 11:45:21 +00:00
Marcus Moore 93bf91869b Fix checkin all seats button 2026-03-03 14:57:43 -08:00
Marcus Moore a026ca92ff Populate tests 2026-03-03 14:46:10 -08:00
Marcus Moore 1b7fe4f728 Scaffold test cases 2026-03-03 11:07:28 -08:00
Marcus Moore 2bf2d55c6e Fix test case 2026-03-03 11:07:18 -08:00
snipe dbe998d9cf Merge remote-tracking branch 'origin/develop' 2026-03-02 18:36:13 +01:00
snipe 2ed32612b9 Fixed typo in comments 2026-03-02 18:35:57 +01:00
snipe 314bcbe208 Added assets upload url singleton 2026-03-02 18:35:57 +01:00
snipe 6290e34623 Exclude show route for settings API [RB-17718] 2026-03-02 18:35:57 +01:00
snipe 5e5521a128 Merge pull request #18623 from grokability/dependabot/github_actions/develop/actions/upload-artifact-7
Bump actions/upload-artifact from 6 to 7
2026-03-02 12:51:02 +00:00
dependabot[bot] 1e8bed86d3 Bump actions/upload-artifact from 6 to 7
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 6 to 7.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v6...v7)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-02 08:43:13 +00:00
Brady Wetherington 7cbc0fa671 Merge branch 'develop' into use_new_laravel_scim_server 2026-02-26 19:53:05 +00:00
snipe 79907a2770 Merge remote-tracking branch 'origin/develop' 2026-02-26 16:04:07 +00:00
snipe 8bc7d50e35 Updated to check gate on object 2026-02-26 16:03:57 +00:00
Marcus Moore aa420e5006 Bump Livewire to v4.1.4 2026-02-25 13:30:30 -08:00
Marcus Moore 4babaa85fc Merge branch 'develop' into livewire4
# Conflicts:
#	composer.lock
2026-02-25 13:29:07 -08:00
snipe 6f60ef9ec2 Merge remote-tracking branch 'origin/develop' 2026-02-25 19:46:20 +00:00
snipe 378d9e008e Removed truncate that ran after maintenance seeder 2026-02-25 19:46:09 +00:00
snipe 581867eefc Merge remote-tracking branch 'origin/develop' 2026-02-25 19:05:48 +00:00
snipe 340fabe4f6 Merge pull request #18614 from spencerrlongg/eof-rollbar
Fixes (hopefully) RB #19772 Unexpected EOF
2026-02-25 19:05:30 +00:00
spencerrlongg 29331b8b06 missing semicolon - kind of a shot in the dark 2026-02-25 12:54:43 -06:00
snipe 234855f225 Merge remote-tracking branch 'origin/develop' 2026-02-25 18:42:04 +00:00
snipe 6fbcaa0959 Make sure manager_id is an integer 2026-02-25 18:41:53 +00:00
snipe 52e10205c5 Add license ID to tabke cookie 2026-02-25 18:40:29 +00:00
snipe 0b8176a730 Merge remote-tracking branch 'origin/develop' 2026-02-25 17:41:38 +00:00
snipe f419ae3f4a Fixed license history target 2026-02-25 17:41:26 +00:00
snipe 84a6b8e012 Add display_name to asset advanced search filter 2026-02-25 16:54:54 +00:00
snipe d1be571d4d Merge remote-tracking branch 'origin/develop' 2026-02-25 16:41:47 +00:00
snipe f234aee691 Use display_name in transformUserCompact() 2026-02-25 16:41:30 +00:00
snipe 623d516595 Merge pull request #18095 from marcusmoore/5947-bulk-checkout-rollup
#5947 - roll up bulk asset checkout email
2026-02-25 15:36:58 +00:00
snipe 156eaf53d5 Fix for #18408 2026-02-25 15:30:37 +00:00
snipe 678a7c1437 Removed BS class 2026-02-25 15:04:24 +00:00
snipe ce2a760093 Merge pull request #17964 from Godmartinz/add-License-checkedout-to-user
Adds #11741 currently assigned license table to license checkout
2026-02-25 14:50:39 +00:00
snipe 34b02d8534 Merge pull request #18485 from marcusmoore/debugbar
Bumped Debugbar to v4
2026-02-25 14:43:03 +00:00
snipe 42e0e691dd Merge pull request #18609 from ubc-cpsc/bugfix/php-deprecated-string-interpolation
Fix deprecated string interpolation in controllers
2026-02-25 14:41:24 +00:00
snipe d392439f82 Merge remote-tracking branch 'origin/develop' 2026-02-25 14:23:13 +00:00
snipe ccfda99060 Merge pull request #18613 from grokability/add-sorting-on-model-name-and-number-for-maintenances
Added model number as a separate field, added sorting
2026-02-25 14:22:48 +00:00
snipe 57f02bdc57 Fixed typo 2026-02-25 14:22:27 +00:00
snipe 7056656eab Added model number as a separate field, added sorting 2026-02-25 14:19:01 +00:00
snipe 2d899fc772 Merge pull request #18612 from grokability/added-maintenances-seeder
Added maintenances seeder
2026-02-25 14:16:44 +00:00
snipe 80ee0835aa Added maintenances seeder 2026-02-25 14:12:13 +00:00
snipe f423b88b16 Merge remote-tracking branch 'origin/develop' 2026-02-25 12:39:39 +00:00
snipe 7b7e6c7971 Fixed maintence image display 2026-02-25 12:39:29 +00:00
snipe 853aed5954 Merge remote-tracking branch 'origin/develop' 2026-02-25 12:03:32 +00:00
snipe 025fb30335 Added user email to exportable field in custom report 2026-02-25 12:03:23 +00:00
snipe 947a149d08 Merge remote-tracking branch 'origin/develop' 2026-02-25 11:51:03 +00:00
snipe fcace4a192 Override the table search with the asset tag search if one is passed 2026-02-25 11:50:52 +00:00
snipe 619e1c70ea Fixed #18603 - set unique cookie ID on asset history table 2026-02-25 11:48:42 +00:00
Joël Pittet 7a95bdfba6 Fix deprecated string interpolation in controllers 2026-02-24 14:57:29 -08:00
Marcus Moore 89962de161 Move to Traits directory 2026-02-24 11:37:07 -08:00
Marcus Moore d9328bd0ce Merge branch 'develop' into debugbar 2026-02-24 11:27:04 -08:00
snipe 81306df06a Merge pull request #18606 from grokability/#18600-check-filesystem-on-healthcheck
Fixed #18600 - add filesystem check on health checker
2026-02-24 14:00:14 +00:00
snipe 75abe9eb3e Re-add try/catch for DB for cleaner output 2026-02-24 13:23:12 +00:00
snipe 1f26bf1125 Fixed #18600 - add filesystem check on health checker 2026-02-24 13:17:15 +00:00
snipe 3aec52eab0 Merge remote-tracking branch 'origin/develop' 2026-02-24 12:00:15 +00:00
snipe 14b9c06d77 Remove optional qualifier 2026-02-24 12:00:06 +00:00
snipe 4f3d23d1ef Merge pull request #18576 from marcusmoore/fixes/rb-20713-license-seat-assigned-to
Fixed RB-20713: Improved validation of license seat update api endpoint
2026-02-24 07:29:41 +00:00
Marcus Moore cada43f34d Allow checking in from unfound targets 2026-02-23 17:23:42 -08:00
snipe 8d0fda88b7 Tagged 8.4.0 release
# Conflicts:
#	config/version.php
2026-02-23 20:41:11 +00:00
snipe 9188f89a2a Tagged v8.4.0 2026-02-23 20:40:40 +00:00
Marcus Moore 1cc7ef0543 Organization 2026-02-23 10:51:34 -08:00
snipe 91a95dbc66 Merge remote-tracking branch 'origin/develop' 2026-02-23 14:44:08 +00:00
snipe a86ffc29d1 Added display name to search term in advanced search 2026-02-23 14:43:55 +00:00
snipe a15adc806b Merge remote-tracking branch 'origin/develop' 2026-02-23 14:30:54 +00:00
snipe 9ed5540c49 Merge pull request #18597 from uberbrady/improve_ldap_binding
Improve LDAP escaping to better reflect modern PHP standards
2026-02-23 13:38:28 +00:00
Brady Wetherington 3a7e00ccc3 Improve LDAP escaping to better reflect modern PHP standards 2026-02-23 13:01:00 +00:00
snipe f328da37bc Merge remote-tracking branch 'origin/develop' 2026-02-23 11:41:54 +00:00
snipe f82cdabccd More info anel refinements 2026-02-23 11:41:45 +00:00
Brady Wetherington 15346eec22 WIP: cleaning up new SCIM config 2026-02-23 11:34:41 +00:00
snipe b9c9cc0046 Merge pull request #18596 from grokability/add-with-trashed-to-formattednamelink
Adds withTrashed() to `adminuser` and updates presenter to show strikethrough
2026-02-23 11:00:43 +00:00
snipe 27ece84d52 Adds withTrashed() to adminuser and updates presenter to show strikethrough 2026-02-23 10:49:44 +00:00
snipe 3adc8f279b Merge remote-tracking branch 'origin/develop' 2026-02-21 13:17:52 +00:00
snipe 1299186fb8 Merge pull request #18591 from grokability/#18017-show-more-info-in-bulk-audit
Fixed #18017 - show status on bulk audit
2026-02-21 13:17:31 +00:00
snipe d837e4845b Show note 2026-02-21 13:16:58 +00:00
snipe 39be0c5590 Fixed #18017 - show status on bulk audit 2026-02-21 13:08:23 +00:00
snipe 41c75022a9 Merge remote-tracking branch 'origin/develop' 2026-02-21 12:53:42 +00:00
snipe d2bb10e96d Merge pull request #18590 from grokability/optionally-update-audit-dates
Added checkbox to determine if existing audit dates should be changed
2026-02-21 12:53:12 +00:00
snipe f139a616c7 Added checkbox to determine if existing audit dates should be changed 2026-02-21 12:49:36 +00:00
snipe 84924a68b7 Merge remote-tracking branch 'origin/develop' 2026-02-20 15:01:15 +00:00
snipe d5099d973b Move copy icon to right side 2026-02-20 15:00:04 +00:00
snipe 82b18a3207 Updated requestable icon 2026-02-20 14:15:50 +00:00
snipe 5a3a63e0a4 Merge remote-tracking branch 'origin/develop' 2026-02-20 13:10:55 +00:00
snipe 10aee6bb5f Fixed tab pane name 2026-02-20 13:10:14 +00:00
snipe 980cc5704f Switched branch name to master 2026-02-20 13:08:23 +00:00
snipe 28054a9112 Merge remote-tracking branch 'origin/develop' 2026-02-20 13:07:33 +00:00
snipe c1b11ab9bf Small fixes for accessories/checkedout tab 2026-02-20 13:05:31 +00:00
snipe c226a061f5 Tagged pre-release 2026-02-20 12:42:09 +00:00
snipe c0be738aef Removed unneeded return check 2026-02-20 12:13:01 +00:00
snipe 7a312f5868 Merge remote-tracking branch 'origin/develop' 2026-02-20 12:12:04 +00:00
snipe e6987ec148 Early return on non-existent acceptance 2026-02-20 12:11:49 +00:00
snipe 973fa7a58b Merge pull request #18575 from spencerrlongg/encrypted-custom-fields-api
Adds field_encrypted To Fields API Response
2026-02-20 12:11:00 +00:00
snipe 5ce493180d Merge remote-tracking branch 'origin/develop' 2026-02-20 11:56:33 +00:00
snipe b6195ba3ae Default active tab fix 2026-02-20 11:56:23 +00:00
snipe d3bd213f29 Fixed typo in tooltip text 2026-02-20 09:49:06 +00:00
snipe bbdc78a13c Merge remote-tracking branch 'origin/develop' 2026-02-20 09:36:48 +00:00
snipe 9502dd8bd7 Back out :class 2026-02-20 09:36:38 +00:00
Marcus Moore e81ccf4280 Add more failing assertions 2026-02-19 16:53:22 -08:00
Marcus Moore 9730f2c0f3 Add some failing assertions 2026-02-19 16:40:45 -08:00
Marcus Moore 1de34c0656 Some controller clean up 2026-02-19 16:40:34 -08:00
Marcus Moore bdce6b1387 Add test case 2026-02-19 13:51:20 -08:00
Marcus Moore ce0c2ecd8f Populate new tests 2026-02-19 13:47:52 -08:00
Marcus Moore 40f07e3d72 Scaffold addition test cases 2026-02-19 11:50:04 -08:00
snipe 43971b9625 Merge remote-tracking branch 'origin/develop' 2026-02-19 19:15:59 +00:00
snipe 3c3ccae7c9 Allow context overwrites in FCO specific tables 2026-02-19 19:14:26 +00:00
Godfrey M be211f6f86 fix apostophes 2026-02-19 09:57:29 -08:00
snipe f27a3a2c61 Build prod JS assets 2026-02-19 15:13:19 +00:00
snipe b96d0d55c9 Merge remote-tracking branch 'origin/develop' 2026-02-19 15:12:52 +00:00
snipe 9789ca42f8 Highlight inventory in red if below min 2026-02-19 15:11:27 +00:00
snipe da26bc5165 Updated JS assets 2026-02-19 14:55:45 +00:00
snipe 0b67626961 Merge pull request #18580 from grokability/fixes-for-alert-menu
Quick fix for alert menu 1001 queries
2026-02-19 14:54:50 +00:00
snipe 546c8ce7d5 Quick fix for alert menu 1001 queries 2026-02-19 14:52:01 +00:00
Brady Wetherington c48e0c7377 Clean out fixme's, standardize on UpdatableComplex 2026-02-19 14:50:02 +00:00
snipe c76a888d11 Merge pull request #18579 from uberbrady/fix_npm_install_jspdf
Careful upgrade to minimize too many version changes
2026-02-19 14:25:34 +00:00
Brady Wetherington 38c495a4ac Careful upgrade to minimize too many version changes 2026-02-19 14:11:15 +00:00
Brady Wetherington 95fdfa6396 Merge branch 'develop' into use_new_laravel_scim_server 2026-02-19 12:41:43 +00:00
snipe f699935f5f Merge remote-tracking branch 'origin/develop' 2026-02-19 12:05:17 +00:00
snipe d0ce5e0c57 Merge pull request #18578 from grokability/#18435-fixed-currency-selection-selectbox
Fixed #18435 - correct option value for currency format selector
2026-02-19 12:05:01 +00:00
snipe 7a0e5b57db Fixed currency selector 2026-02-19 12:01:56 +00:00
snipe 8336cf5baa Merge remote-tracking branch 'origin/develop' 2026-02-19 11:42:54 +00:00
snipe c31f1d2cce Nicer row selected color 2026-02-19 11:42:45 +00:00
snipe d3d90abba7 Merge remote-tracking branch 'origin/develop' 2026-02-19 11:31:05 +00:00
snipe ea98ee07e5 Fixed #18577 - set url back parameter as default in form component 2026-02-19 11:30:53 +00:00
snipe a38bfada57 Merge pull request #18572 from uberbrady/fix_cross_company_created_by_in_asset_acceptance
Fixed #18571 - fix cross-company created_by in asset acceptance
2026-02-19 11:24:28 +00:00
snipe bdaf13da4c Merge remote-tracking branch 'origin/develop'
# Conflicts:
#	resources/views/maintenances/view.blade.php
2026-02-19 11:11:18 +00:00
snipe e5ff19aec4 Fixd required field color 2026-02-19 11:02:12 +00:00
Marcus Moore 504f63066f Add note 2026-02-18 16:34:22 -08:00
Marcus Moore 41b327529b Reference rollbar 2026-02-18 16:31:55 -08:00
Marcus Moore e84279c402 Implement remaining tests 2026-02-18 16:17:34 -08:00
spencerrlongg 65e6519f97 adds field_encrypted to fields api response 2026-02-18 17:53:04 -06:00
Marcus Moore dbbb3beacc Clean up 2026-02-18 15:35:57 -08:00
Marcus Moore e8a73a8de6 Organization 2026-02-18 15:29:44 -08:00
Marcus Moore 411cbc0962 Avoid overwriting created_by and timestamps 2026-02-18 15:20:28 -08:00
Marcus Moore b487c0e3e9 Scaffold additional tests 2026-02-18 15:20:18 -08:00
Marcus Moore fa0e8f6e01 Improve validation 2026-02-18 15:11:52 -08:00
Marcus Moore e25e405f74 Scaffold additional test cases and organize 2026-02-18 14:52:43 -08:00
Marcus Moore 302c4a6414 Organize test 2026-02-18 14:35:06 -08:00
Marcus Moore d1e7f6e55e Inline 2026-02-18 14:03:28 -08:00
Marcus Moore d12f0974df Add test for permission 2026-02-18 14:01:53 -08:00
snipe e92e550e9c Null operator for maintenances 2026-02-18 16:32:40 +00:00
snipe b751fe7903 Fixed incorrect translation string 2026-02-18 16:30:37 +00:00
snipe a6e34522eb Partially convert maintenances into new blade components 2026-02-18 16:26:13 +00:00
snipe 735e6f3471 Merge pull request #18570 from grokability/convert-consumables-to-new-blade-components
Converted consumables to new blade component
2026-02-18 16:02:32 +00:00
snipe c9f41c950a Added copy+paste, added additional fields 2026-02-18 15:57:40 +00:00
Brady Wetherington 091c710940 Make User parameter nullable 2026-02-18 15:25:05 +00:00
snipe 276f412a3c Small tweaks to info panel 2026-02-18 15:22:46 +00:00
snipe 6f6e5c847a Converted consumables to new blade component 2026-02-18 14:44:08 +00:00
snipe 6ef0274bb3 Merge pull request #18569 from grokability/updated-csvs
Small importer improvements, added larger CSV samples
2026-02-18 14:22:23 +00:00
snipe 7ef6a72ec4 Updated CSVs 2026-02-18 14:06:33 +00:00
snipe e2b8c69cf6 Use iconhelper for dynamic icon 2026-02-18 14:06:24 +00:00
snipe 1254d12d83 Tweaks to info panel 2026-02-18 14:06:14 +00:00
snipe b68642a827 Added alias strings 2026-02-18 14:04:51 +00:00
snipe c5214b976b Added string 2026-02-18 14:04:44 +00:00
snipe e611121244 Added tag color to main importer, added aliases 2026-02-18 14:04:38 +00:00
snipe 3aa7f0b7fe Added tag_color to importer 2026-02-18 14:04:19 +00:00
snipe 3d38eee71d Added/updated icons 2026-02-18 14:04:00 +00:00
snipe 90e6e309f9 Removed redundant icon helper 2026-02-18 14:03:53 +00:00
snipe 885314b87a Added large components sample CSV 2026-02-18 12:01:59 +00:00
snipe ef013a7026 Updated components sample 2026-02-18 12:01:48 +00:00
snipe 0353ade90e Trim off whitespace for headers 2026-02-18 12:01:34 +00:00
snipe d90c9282ac Updated strings 2026-02-18 11:13:52 +00:00
Marcus Moore 5055aafe1d Scaffold tests 2026-02-17 17:37:24 -08:00
Marcus Moore e68b9ea267 Validate assigned_to is integer 2026-02-17 16:51:31 -08:00
Marcus Moore 1d8ba2ec61 Add failing test 2026-02-17 16:49:32 -08:00
snipe d56970eaa3 Merge pull request #18566 from grokability/fixed-new-vs-update-on-custom-fieldset-creation
Fixed new vs update button label on custom fieldset creation, fixed breadcrumbs on new custom fieldset creation screen
2026-02-17 22:23:06 +00:00
snipe 8b3f18ec59 Better breadcrumbs for fieldset creation 2026-02-17 22:17:38 +00:00
snipe 170d20ddb5 Fixed new vs update button on custom fieldset create vs edit 2026-02-17 22:17:27 +00:00
snipe 70407dac85 Merge pull request #18565 from grokability/#18555-component-clone
Added #18555 - ability to clone components
2026-02-17 16:22:02 +00:00
snipe c2334d87de Merge pull request #18564 from uberbrady/fix_component_counts
Fixed #18557 - Tweak numRemaining to not re-query for un-checked-out components
2026-02-17 15:44:00 +00:00
snipe 0662e3351e Added #18555 - ability to clone components 2026-02-17 15:43:43 +00:00
Brady Wetherington 6b90b3743e Tweak numRemaining to not re-query for un-checked-out components 2026-02-17 15:27:04 +00:00
snipe dd1d456106 Alphabetize dictionary 2026-02-17 15:21:24 +00:00
snipe dceead8302 Show footer by default if the transformer asks for it 2026-02-17 15:09:29 +00:00
snipe 832f449868 Merge pull request #18561 from grokability/#18512-comment-out-first-checkout
Fixes #18512 (first checkout) temporarily
2026-02-17 14:18:05 +00:00
snipe 33a104f142 Fixes #18512 temporarily 2026-02-17 14:11:14 +00:00
snipe 28f19689ec Fixed focus color for input fields 2026-02-17 13:38:43 +00:00
snipe ce6ee32e89 Made seats a numeric field 2026-02-17 13:38:29 +00:00
snipe fdf42ba321 Add class to checkedout blade 2026-02-17 13:18:27 +00:00
snipe aadd158108 Added active class to accessory tab 2026-02-17 13:18:14 +00:00
snipe d6592819e8 Show only active licenses 2026-02-17 13:17:49 +00:00
snipe 8f34c06196 Added order_number to API for accessories, consumables, components 2026-02-17 13:08:09 +00:00
snipe 9cdc73917b Merge pull request #18537 from grokability/more-refactoring-tables-and-tabs
WIP - More refactoring of tabs, tab panes, and tables
2026-02-17 12:39:31 +00:00
snipe 2976159499 Check for parent (only really matters in locations) 2026-02-17 12:32:07 +00:00
snipe e302ccf985 Added plain clone translation 2026-02-17 12:31:35 +00:00
snipe 08915e8607 Use isDeletable in transformers 2026-02-17 12:31:26 +00:00
snipe 32b2131bff Fixed asset model deletable check 2026-02-17 12:31:12 +00:00
snipe 50cf15fb71 Added isDeletable() method 2026-02-17 12:31:01 +00:00
snipe f07ef6d7c5 Added restore and clone blade 2026-02-17 12:28:48 +00:00
snipe 666025d7f6 Use more generic text 2026-02-17 12:28:27 +00:00
snipe 671601365c Use new button blade components 2026-02-17 12:28:16 +00:00
snipe 263b04cd69 Merge pull request #13506 from matmair/develop-1
Fixed: wrong index reference in MoveUploadsToNewDisk.php
2026-02-17 11:08:24 +00:00
snipe 57b98ca782 Fixed copypasta 2026-02-13 19:03:44 +00:00
snipe 46df19d7cd Don’t use fixed columns on unaccepted asset report 2026-02-13 18:27:18 +00:00
snipe fa18524223 Fixed unaccepted report to account for much older items that might not exist 2026-02-13 18:23:59 +00:00
snipe 3ebc0532ca Added isDeleteable to Accessories 2026-02-13 18:07:22 +00:00
snipe 4f59752b8b Added rtd tab icon 2026-02-13 17:30:11 +00:00
snipe 668ab221cc Removed uploads for manufacturers since we don’t have them? 2026-02-13 17:29:56 +00:00
snipe ad90e005c4 Added history tabs 2026-02-13 17:28:07 +00:00
snipe 952b3d6884 Converted components view to blade component
This effing sucked
2026-02-13 17:27:45 +00:00
snipe 19ca1f7578 Converted to object-specific elements in indexes 2026-02-13 17:27:14 +00:00
snipe ef02fab94b Added checkout blade 2026-02-13 17:22:35 +00:00
snipe 144b5e7558 Switch to accessory table on accessory view 2026-02-13 17:22:22 +00:00
snipe aff0a60138 Added presenter for component history 2026-02-13 17:22:07 +00:00
snipe 92a641f01a Added snipe_component because wtf laravel 2026-02-13 17:21:59 +00:00
snipe 929132ba07 Merge pull request #18544 from uberbrady/fix_1001_query_on_available_models_for_notification
Added some withCount() params to tweak the 'minimum number of assets' notification
2026-02-12 21:37:10 +00:00
Brady Wetherington 2a1a4a1c72 Added some withCount() params to tweak the 'minimum number of assets' notification 2026-02-12 21:32:30 +00:00
snipe 4d73894cd2 Merge pull request #18542 from marcusmoore/fixes/fd-53577-reminder-subject-2
Updated subject line of acceptance reminder emails
2026-02-12 21:22:55 +00:00
Godfrey M 4d9bc04d58 fix test: change hasTo to hasCc pt2 2026-02-12 13:09:38 -08:00
Godfrey M 3527b86b6d fix test: change hasTo to hasCc 2026-02-12 13:05:51 -08:00
snipe e49e805b2b Merge pull request #18539 from Godmartinz/L7163_title_adjustment
Fixes title alignment to fit label L7163_A
2026-02-12 20:43:52 +00:00
Godfrey M 30f4e1eb08 remove class usage 2026-02-12 12:22:26 -08:00
snipe 05f3bf633e Fixed typeError for isManagerOf in manager view of EULAs 2026-02-12 20:21:15 +00:00
Godfrey M 8142ab64f6 change to() to cc() 2026-02-12 12:21:11 -08:00
Brady Wetherington f8ecbf8f0b removing Log::error lines 2026-02-12 16:03:40 +00:00
Marcus Moore 4d5b3548d6 Update introduction line 2026-02-11 16:28:17 -08:00
Marcus Moore 00408f0103 Revert "Put checkout_qty on checkoutable so accessory and consumable emails are formatted correctly"
This reverts commit 548cceee18.
2026-02-11 16:06:27 -08:00
Marcus Moore 548cceee18 Put checkout_qty on checkoutable so accessory and consumable emails are formatted correctly 2026-02-11 13:39:37 -08:00
Marcus Moore 7eb536f80e Bump debugbar to v4.0.7 2026-02-11 11:37:57 -08:00
Marcus Moore d91ce88e9a Merge branch 'develop' into debugbar 2026-02-11 11:37:02 -08:00
Godfrey M 76d1a20e21 adjust label L7163_A to fit title properly 2026-02-11 11:02:49 -08:00
snipe 5b6951b88d Tightened up licenses index list 2026-02-11 15:22:58 +00:00
snipe 56313e4436 Covert assets table 2026-02-11 14:54:30 +00:00
snipe 7810ae74d1 Fixed translation string 2026-02-11 14:30:42 +00:00
snipe 3ac1012757 Set fixed number for assets 2026-02-11 14:30:32 +00:00
snipe 91aec08ce0 More refactoring of tabs, tab panes, and tables 2026-02-11 13:18:32 +00:00
Brady Wetherington c5ffbf6ed9 Merge branch 'develop' into use_new_laravel_scim_server 2026-02-11 12:53:42 +00:00
snipe 30970cc7f2 A few more disabled/readonly state color fixes 2026-02-11 11:21:53 +00:00
snipe 985c027b04 Fixed disabled select2 color 2026-02-11 11:12:33 +00:00
snipe d1c4b055a9 Merge pull request #18535 from grokability/rename-field-in-infobox
Update the name of the object within the side panel
2026-02-11 10:20:23 +00:00
snipe 3f2f508e49 Fixed failing test 2026-02-11 10:16:44 +00:00
snipe 07513cb559 Update the name of the object within the side panel
It’s not always a contact/person, so…
2026-02-11 10:02:20 +00:00
snipe 66022902b7 Small style tweaks to info-box 2026-02-11 09:57:43 +00:00
snipe 613efe963a Use consistent box icon 2026-02-11 09:48:44 +00:00
snipe 5a0affcd8e Updated categories view 2026-02-11 09:47:38 +00:00
snipe 79150edb92 Fixed variable name 2026-02-11 07:41:13 +00:00
snipe 6cca24be8e Fixed typo 2026-02-11 07:27:16 +00:00
snipe c2ca51e8ef Added edit buttons to supplier view 2026-02-11 07:27:08 +00:00
snipe b9908d5665 Cast the DB_PORT to integer 2026-02-11 07:01:03 +00:00
snipe cbca420217 Added tooltips 2026-02-11 06:42:15 +00:00
snipe 017183e3fe Merge pull request #18529 from grokability/consolidate-customfieldset-edit
Consolidated custom fieldset edit/show
2026-02-11 05:25:27 +00:00
snipe 0236527f05 Use correct seeding color for links 2026-02-10 15:27:05 +00:00
snipe e946c4bf8c Consolidated custom fieldset edit/show 2026-02-10 15:20:57 +00:00
snipe 8a0414cef6 Merge remote-tracking branch 'origin/master' into develop 2026-02-10 14:16:42 +00:00
snipe ee1ad692a4 Tweaked disabled button color 2026-02-10 13:40:14 +00:00
snipe fdd5f6b0e1 Fixed #18497 - Added model name to aliases 2026-02-10 13:07:41 +00:00
snipe dca6df3244 Fixed #18527 - disable sticky column on dashboard tables 2026-02-10 11:31:25 +00:00
snipe 0874b853a0 Fixed #18520 - use plain_text_company 2026-02-10 11:10:48 +00:00
snipe 3393916b5e Merge pull request #18524 from ubc-cpsc/fix/subpath-livewire-prefix
Fix Livewire and Passport routes for subpath hosting
2026-02-10 08:34:18 +00:00
Joël Pittet b2728b4eb1 Fix Livewire routes for subpath hosting 2026-02-10 00:22:13 -08:00
snipe f3cc3ed682 Merge pull request #18470 from bilias/pr-clean
Do not delete asset name if update request does not have a name
2026-02-09 20:57:07 +00:00
snipe f8cfb8833f Merge pull request #18514 from grokability/update-models-with-new-components
Update models with new components
2026-02-09 19:53:40 +00:00
snipe c2c2332e83 Removed erroneous icon 2026-02-09 13:05:22 +00:00
snipe 9f69c36426 Added depreciations and departments 2026-02-09 13:03:07 +00:00
snipe ea9de35a3b Show/hide on companies and depts 2026-02-07 18:44:37 +00:00
snipe a50a16fb01 Nicer toggle, nicer show/hide info button 2026-02-07 18:39:42 +00:00
snipe f27c0206de Expand/contract info tab (still looks a little junky) 2026-02-07 17:52:22 +00:00
snipe 6791ddd911 Merge remote-tracking branch 'origin/develop' 2026-02-07 15:55:20 +00:00
snipe ce95060d60 Fixed #18516 - added kits for sticky columns 2026-02-07 15:55:11 +00:00
snipe 6d9bbe1ddf Small tweaks to EULA API 2026-02-07 15:41:51 +00:00
snipe 5b1507f4b7 Updated license presenter 2026-02-07 15:16:32 +00:00
snipe 53e985aaab Tweaked color for alt striping again 2026-02-07 15:08:51 +00:00
snipe f5c2119122 Merge remote-tracking branch 'origin/develop' 2026-02-07 15:03:58 +00:00
snipe 5fd6918948 Fixed text color in light mode on alt striping 2026-02-07 15:03:50 +00:00
Marcus Moore 7423d13bdd Accept $firstTimeSending in mails 2026-02-05 17:06:36 -08:00
Marcus Moore fb8586f186 Properly pass parameter for asset emails 2026-02-05 16:59:49 -08:00
Marcus Moore 8b9ebf736b Add assertions for subject line 2026-02-05 16:59:36 -08:00
Marcus Moore 5abcdb8c5a Fix relationships in AccessoryCheckout model 2026-02-05 16:46:51 -08:00
Marcus Moore e549f67fcc Create AccessoryCheckout factory 2026-02-05 16:45:25 -08:00
Marcus Moore d68576c2fa Make test name more accurate 2026-02-05 13:57:51 -08:00
Marcus Moore a6042b6a03 Clean up 2026-02-05 13:52:15 -08:00
Marcus Moore d1a3afd992 More test clean up 2026-02-05 13:39:47 -08:00
Marcus Moore 34b00f7dba More test clean up 2026-02-05 13:38:05 -08:00
Marcus Moore 14b6c6861f Test clean up 2026-02-05 13:34:09 -08:00
Marcus Moore fe4bb4209c Split out tests 2026-02-05 13:07:41 -08:00
Marcus Moore e997eb2012 Inline method 2026-02-05 12:57:42 -08:00
snipe 8337473f5a Added box arrows 2026-02-05 19:27:36 +00:00
Marcus Moore 7ada7fb327 Merge branch 'develop' into livewire4 2026-02-05 10:39:56 -08:00
Marcus Moore 9d632e39bf Merge branch 'develop' into debugbar 2026-02-05 10:33:13 -08:00
snipe 1f50eada6d Added bulk edit to department user listing 2026-02-05 14:38:46 +00:00
snipe 38e1114dad Convert manufacturers and departments 2026-02-05 14:35:01 +00:00
snipe 11be73a578 Removed stray closing div 2026-02-05 14:14:25 +00:00
snipe 13a00df73c Use new components for company view 2026-02-05 14:13:51 +00:00
snipe 7739690bf5 Extend SnipeModel for custom fieldsets 2026-02-05 13:41:26 +00:00
snipe 389eb9e05d Bumped hash 2026-02-05 13:25:53 +00:00
snipe 98fe94aa24 Bumped hash 2026-02-05 13:25:21 +00:00
snipe 4ee378bf8e Merge remote-tracking branch 'origin/master' into develop
# Conflicts:
#	public/css/dist/bootstrap-table.css
#	public/js/dist/bootstrap-table.js
#	resources/views/blade/table/index.blade.php
#	resources/views/models/custom_fields_form.blade.php
2026-02-05 13:24:27 +00:00
snipe a8c268760b Fixed #18500 - skip encoding on API url for table component 2026-02-05 13:19:16 +00:00
snipe c684b8ab1e Fixed #18502 - custom fields disappearing on smaller resolution breakpoints 2026-02-05 12:25:49 +00:00
snipe 333d0e2391 Fixed #18510 - use correct GH link in social footer 2026-02-05 11:28:29 +00:00
snipe c22c5993fc Fixed #18503 - alt row colors on striped tables 2026-02-05 11:27:10 +00:00
snipe 1c239cc7cf Fixed typo in icon name 2026-02-05 10:16:24 +00:00
snipe 6ee5aa3e12 Fixed checkout to all modal 2026-02-04 20:55:38 +00:00
snipe 0d5ceb1e90 Merge pull request #18492 from marcusmoore/bump-phpunit
Bumped PHPUnit version
2026-02-04 20:48:06 +00:00
snipe 166a241761 Merge pull request #18484 from spencerrlongg/undefined_var_files
Fixes `Undefined variable $files` Exception
2026-02-04 20:47:02 +00:00
snipe f6f5e806e4 More flexibility in blade components for labels vs icons vs icon types 2026-02-04 20:31:11 +00:00
snipe f0f42240f3 Still more icons 2026-02-04 20:30:20 +00:00
snipe 686afc0974 Gate check linking in presenters 2026-02-04 20:30:12 +00:00
Marcus Moore 5d085469ec Bump debugbar to v4.0.6 2026-02-04 10:46:34 -08:00
Marcus Moore 7c54429c13 Bump Livewire to v4.1.2 2026-02-03 09:14:41 -08:00
Marcus Moore 8dfd04573e Bump debugbar to v4.0.5 2026-02-02 09:53:17 -08:00
snipe 7e5fb3c9ae Added more icons 2026-02-02 15:20:21 +00:00
Brady Wetherington 2115de9926 WIP: move towards UpdatableComplex class for SCIM 2026-02-02 14:55:03 +00:00
snipe 65e4c0b8d1 Renamed contact box to info-panel 2026-02-02 12:22:20 +00:00
snipe b1301237f1 Removed double lines in table 2026-02-02 11:35:09 +00:00
snipe cf82c12708 Fixed custom fieldset table colors 2026-02-02 11:27:18 +00:00
snipe 52f8697d91 Added icons, more additions to sidebar 2026-02-02 11:16:53 +00:00
Marcus Moore 1aee8679d2 Fix updating bug in oauth clients 2026-01-28 12:46:57 -08:00
Marcus Moore 3169c5b503 Bump phpunit 2026-01-28 10:15:11 -08:00
snipe 741f0d69ab Merge pull request #18490 from Godmartinz/add-label-preview-translation
Add translation and template name for Label Preview
2026-01-28 13:14:54 +00:00
Marcus Moore 8829ea9b29 Update category edit form 2026-01-27 17:08:21 -08:00
Godfrey M 53b283eac5 add seperate brackets for template name 2026-01-27 16:21:06 -08:00
Godfrey M 1234b6297e add Label preview translation, also which label is previewed 2026-01-27 14:59:44 -08:00
Marcus Moore 6ba99e8199 Bump livewire to v4.1.0 2026-01-27 14:03:52 -08:00
Marcus Moore b4eb603f22 Switch blur to change 2026-01-27 13:58:42 -08:00
Marcus Moore 62f9ce979d Fix js 2026-01-27 13:41:57 -08:00
Marcus Moore f5928fc707 Fix tags in importer 2026-01-27 12:33:46 -08:00
Marcus Moore f7040e3616 Remove console.log 2026-01-26 17:43:47 -08:00
Marcus Moore a70f1cc1ef Migrate request hook 2026-01-26 17:38:01 -08:00
Marcus Moore a86b738231 Update route 2026-01-26 17:13:56 -08:00
Marcus Moore 8a9ddba208 Use traditional component naming 2026-01-26 17:02:32 -08:00
Marcus Moore 4c727966e7 Migrate config 2026-01-26 16:59:08 -08:00
Marcus Moore c2ac53029a Update to v4 2026-01-26 16:58:58 -08:00
Marcus Moore 5d300d85bd Update content-type assertion 2026-01-26 14:52:53 -08:00
Marcus Moore 1dc181797b Move trait to base controller 2026-01-26 14:39:48 -08:00
Marcus Moore 30d932e2e0 Re-enable exception collector 2026-01-26 14:30:03 -08:00
Marcus Moore 9fb32d33af Migrate to v4 config 2026-01-26 14:28:18 -08:00
Marcus Moore 70baa60521 Install v4 of laravel debugbar 2026-01-26 14:02:01 -08:00
Marcus Moore 8ea2784d44 Uninstall debugbar 2026-01-26 14:01:29 -08:00
Marcus Moore 2b56d82577 Move disabling debugbar to trait 2026-01-26 14:01:21 -08:00
spencerrlongg 8ff34baafa wrap $files in isset to avoid null errors 2026-01-26 15:44:23 -06:00
snipe eeae534a37 Added a few more helpers 2026-01-25 14:33:54 +00:00
snipe 8b71049a3d Merge pull request #18482 from grokability/move-form-components
Move form components into their own directory
2026-01-24 21:13:07 +00:00
snipe 373361dab0 Move form components into their own directory 2026-01-24 21:06:02 +00:00
snipe 60a1141b9d Merge pull request #18480 from grokability/#more-table-components
Moves more indexes to blade components
2026-01-24 20:55:51 +00:00
snipe a38c8a0235 Merge more into contact card 2026-01-24 20:37:08 +00:00
snipe c39d165a3d Added space 2026-01-24 20:36:50 +00:00
snipe 2238f8e8ad More icons 2026-01-24 20:36:43 +00:00
snipe e0c53c3ead Merge classes 2026-01-24 18:32:13 +00:00
snipe 1074bc2d3b More conversions 2026-01-24 18:27:06 +00:00
snipe 4b22b1c115 Better defaults in nav-item component 2026-01-24 17:41:02 +00:00
snipe 141794caf7 Use new contact panel in suppliers view 2026-01-24 17:40:41 +00:00
snipe d5997e2394 Added new classes 2026-01-24 17:40:29 +00:00
snipe 429ca8dd34 Added info components 2026-01-24 17:40:18 +00:00
snipe c2ad0defe0 Added contact component 2026-01-24 17:39:53 +00:00
snipe b4658f2696 Added address presenter 2026-01-24 17:39:44 +00:00
snipe 11b7dfc9b0 Added icons 2026-01-24 17:39:33 +00:00
snipe f7b7ef850d Updated suppliers view 2026-01-24 12:10:58 +00:00
snipe bb9b145519 Updated helper icon 2026-01-24 12:10:50 +00:00
snipe d75f5b8fd3 Fixed label 2026-01-23 19:14:29 +00:00
snipe 34fe64b27c Fixed spacing 2026-01-23 19:09:48 +00:00
snipe 2151595b45 Fixed a few typos 2026-01-23 18:28:49 +00:00
snipe b2c94386b3 Switched from stupid layouts/edit-form to new form component 2026-01-23 18:26:09 +00:00
snipe b99ae9be88 Form component (will move the other things later) 2026-01-23 18:25:49 +00:00
snipe ffbc831071 Include the box footer if there is a route passed 2026-01-23 18:25:34 +00:00
snipe 302a60fbe7 Better breadcrumb 2026-01-23 18:25:06 +00:00
snipe 3ec8ba01d0 Updated manufacturer with new tabs 2026-01-23 18:24:50 +00:00
snipe 2048eb7d5a Removed unneeded presenter methods 2026-01-23 17:08:25 +00:00
snipe 4d605927f3 Fixed typos 2026-01-23 17:07:38 +00:00
snipe b7ee3a2f1d Updated groups index to use new components 2026-01-23 17:05:28 +00:00
snipe 44fa9e2d1e Handle status label index 2026-01-23 16:58:42 +00:00
snipe a5e818f970 More moved to new box+table method 2026-01-23 16:47:27 +00:00
snipe 066cf81233 Added model bulk component 2026-01-23 16:46:52 +00:00
snipe 1b4552cf30 Refactorered bulk action component 2026-01-23 16:46:42 +00:00
snipe 0ba8ee1c5f Added bulkactions named slot in box index 2026-01-23 16:45:48 +00:00
snipe 5c4f3a5aec Removed unneeded body blade 2026-01-23 16:45:30 +00:00
snipe c963c0b25b Updated path for new table component location 2026-01-23 15:45:36 +00:00
snipe b3a4fb2676 Use new user bulk edit blade 2026-01-23 15:45:19 +00:00
snipe 0b82902248 Fixed background loading color 2026-01-23 15:45:06 +00:00
snipe e7f70ccd1f Moved to new component structure 2026-01-23 15:44:52 +00:00
snipe 683395599f Moved files into table directory 2026-01-23 15:44:12 +00:00
snipe 755d7c2351 Added printIgnore, reordered fields 2026-01-23 15:43:35 +00:00
snipe 17d91bcd8e Merge pull request #18479 from grokability/improved-tab-components
Removed font-size override on tabs
2026-01-23 13:53:33 +00:00
snipe 2633ec10dc Removed font-size override on tabs 2026-01-23 13:52:00 +00:00
snipe c4f772c8d9 Merge pull request #18478 from grokability/refined-sticky-columns
Added sticky column
2026-01-23 13:50:49 +00:00
snipe 18addf2a87 Added sticky column 2026-01-23 13:49:09 +00:00
snipe eee826248d Merge pull request #18476 from marcusmoore/fixes/18475-action-log-checkin-during-import
Fixed #18475 - reference the correct model when checking in an asset via import
2026-01-23 09:37:50 +00:00
Marcus Moore 96a817753c Pass the assigned model to the event instead of always passing a User 2026-01-22 14:24:37 -08:00
snipe 600b06e66b Merge pull request #18474 from grokability/move-box-index
Renamed box blade component wrapper to index
2026-01-22 21:10:53 +00:00
snipe cd680daa4c Merge remote-tracking branch 'origin/develop' 2026-01-22 20:58:42 +00:00
snipe 315b716e87 Removed advanced search from files table
It’s not wired up on the backend, so…
2026-01-22 20:50:24 +00:00
snipe b2f1966a78 Renamed box blade component wrapper to index 2026-01-22 20:41:25 +00:00
snipe 6305f87037 Merge pull request #18473 from grokability/added-tab-component
Added tab components
2026-01-22 20:37:11 +00:00
snipe ab02b67d3c Merge remote-tracking branch 'origin/develop' 2026-01-22 20:34:51 +00:00
snipe 0f4086eaf0 Added gates to the tab panes as well 2026-01-22 20:32:33 +00:00
snipe e7c5329e57 Merge pull request #18472 from Godmartinz/fix-n+1-issue
Moved helper query, to eager load through Asset API index
2026-01-22 20:27:44 +00:00
snipe ad82ea86c8 Added tab components 2026-01-22 20:25:33 +00:00
Godfrey M c310e1e3b7 update blade 2026-01-22 11:37:24 -08:00
Brady Wetherington 53149666ad Merge branch 'develop' into use_new_laravel_scim_server 2026-01-22 19:26:41 +00:00
Brady Wetherington 5d55c5021b Fix last of groups, phone numbers, etc. 2026-01-22 19:16:22 +00:00
Godfrey M aaf9372474 move helper query to eager load in the asset api 2026-01-22 11:12:49 -08:00
snipe 2cf169359e Missed updating the closing tags 2026-01-22 15:45:53 +00:00
snipe 7f67f8c20d Merge pull request #18471 from grokability/move-box-blades-into-own-directory
Moved anonymous box blade components into their own directory
2026-01-22 15:44:10 +00:00
snipe 5607dfcecb Moved anonymous box blade components into their own dir 2026-01-22 15:38:20 +00:00
Giannis Kapetanakis ca99f525c9 Do not delete asset name if update request does not have a name 2026-01-22 12:40:59 +02:00
snipe 7e92517d13 Merge remote-tracking branch 'origin/develop' 2026-01-22 08:46:46 +00:00
snipe 1ebb67b2e7 Nicer route formatting for maintenances 2026-01-22 08:45:38 +00:00
snipe d9ef7b43b0 Merge remote-tracking branch 'origin/develop' 2026-01-21 19:59:59 +00:00
snipe c074fae885 Merge pull request #18459 from Godmartinz/moar_label_fixes
Fixes #18353 Label title scales with label fields. adjusted label row allotment.
2026-01-21 19:58:32 +00:00
snipe c5ada0fc2f Merge pull request #18466 from marcusmoore/eager-load-expiring-alerts-command
Added eager load to Expiring Alerts command
2026-01-21 19:57:44 +00:00
snipe 5268b0f67f Merge pull request #18456 from grokability/container-component-phase-2
Next step in container+box component
2026-01-21 19:57:32 +00:00
Marcus Moore 7e10089c13 Eager load assignedTo and supplier 2026-01-21 11:49:02 -08:00
Godfrey M 1dab36da2d replaced extracted variables with array 2026-01-21 10:32:26 -08:00
snipe fab50e53b8 Merge pull request #18458 from marcusmoore/fixes/17309-asset-eol-in-custom-report
Fixed #17309 - include EOL date in custom asset report
2026-01-21 11:45:08 +00:00
Godfrey M 10cfe6d37a remove duplicate parameter 2026-01-20 16:23:36 -08:00
Godfrey M 3718ce9749 if label is null make room for value 2026-01-20 16:18:13 -08:00
Godfrey M fd39c8bf11 update title help text 2026-01-20 16:09:04 -08:00
Godfrey M 2e122fa8d8 update LW 11354 2026-01-20 16:00:56 -08:00
Godfrey M 66d85d17d9 update LW 1933081 2026-01-20 16:00:24 -08:00
Godfrey M 61bc570d59 add title to layout helper, update lw2112283 2026-01-20 15:59:40 -08:00
Marcus Moore 62dbd400a4 Use asset_eol_date in custom asset report 2026-01-20 15:07:19 -08:00
snipe 74af52d29d Merge pull request #18457 from marcusmoore/fixes/api-image-upload
Fixed storing image for accessory and consumable creation via api
2026-01-20 22:28:04 +00:00
Marcus Moore 59f377b058 Prepare images prior to validation in accessory and asset creation requests 2026-01-20 13:38:01 -08:00
snipe 949f65b210 Merge pull request #18356 from Godmartinz/add-first-checkout-to-asset
Adds #17210 1st checkout to asset view and index
2026-01-20 20:36:21 +00:00
snipe 4046fbae89 Merge pull request #18256 from iryadifarhan/fix/audit-log-displays-negative-number-incorrectly-when-next-audit-date-filled-with-current-date
Fixes inconsistent negative symbol at Audit Log Report when Next Audit Date is set to the current date
2026-01-20 20:35:16 +00:00
snipe da8776c2f1 Larger group select box 2026-01-20 20:20:39 +00:00
snipe 4043df1d02 Sort groups by name, asc 2026-01-20 20:13:22 +00:00
snipe 3bc5ab593a Next step in container+box component 2026-01-20 14:49:09 +00:00
snipe 6dad0d669f Merge pull request #18454 from grokability/container-components
Use basic container+box for primary index pages with one column
2026-01-19 16:54:45 +00:00
snipe 39f581a826 Use basic container+box for primary index pages with one column 2026-01-19 16:47:55 +00:00
snipe 2034b25b25 Set footer to default false 2026-01-19 16:20:48 +00:00
snipe 468a7aa911 Added button component 2026-01-19 16:19:07 +00:00
snipe ec50643d96 Basic container+box components 2026-01-19 16:17:47 +00:00
snipe 3b98fb666f Added tel as form type to make look right 2026-01-19 16:15:14 +00:00
snipe f17eeed579 Added fax icon 2026-01-19 15:09:28 +00:00
snipe 452d0b6f6e Merge remote-tracking branch 'origin/develop' 2026-01-19 11:44:04 +00:00
snipe 41450b6e1b Merge pull request #18368 from marcusmoore/feature/group-create-edit-load-improvement
Improved loading speeds on group create and edit page
2026-01-19 11:38:00 +00:00
snipe 30029462b1 Merge remote-tracking branch 'origin/develop' 2026-01-17 11:40:22 +00:00
snipe e109879cac Small autolabeler improvements 2026-01-17 11:40:08 +00:00
snipe 90ad4e9abf Merge remote-tracking branch 'origin/develop' 2026-01-17 11:27:43 +00:00
snipe fd0e2b1a96 Fixed indenting and page footer 2026-01-17 11:27:34 +00:00
snipe 19d637efea Merge remote-tracking branch 'origin/develop' 2026-01-16 13:03:26 +00:00
snipe 6c18b35276 Added barcode class 2026-01-16 13:03:17 +00:00
snipe 184eddb5cf Merge remote-tracking branch 'origin/develop' 2026-01-16 12:52:43 +00:00
snipe 1d577b0171 Merge pull request #18450 from grokability/#18449-small-sidenav-fixes
Fixed #18449 - small sidenav improvements for selected contexts
2026-01-16 12:51:52 +00:00
snipe 05c998227a Fixed #18449 - small sidenav improvements for selected contexts 2026-01-16 12:48:28 +00:00
snipe 53ed810d86 Merge remote-tracking branch 'origin/develop' 2026-01-16 11:38:09 +00:00
snipe 7c136b6f57 Use fa-fw in footer icons 2026-01-16 11:37:57 +00:00
snipe 4e510d9d8c Merge remote-tracking branch 'origin/develop'
# Conflicts:
#	resources/views/models/index.blade.php
2026-01-16 11:36:35 +00:00
snipe e1f30f96c9 Remove stray closing divs 2026-01-16 11:36:10 +00:00
snipe 146d0cefc0 Removed extra closing divs 2026-01-16 11:35:18 +00:00
snipe 0103bd58e1 Merge pull request #18434 from Godmartinz/label_lay_fix
Fixes Label text scaling
2026-01-15 21:13:01 +00:00
Godfrey M dbc1e7d6ab remove scaling from label title 2026-01-15 12:03:45 -08:00
snipe ea706863b5 Merge remote-tracking branch 'origin/develop' 2026-01-15 11:42:18 +00:00
snipe 04f4f5b57c Merge pull request #18439 from grokability/#18135-better-handle-cli-importer-permissions
Fixed #18135 - only unset sensitive variables in the web UI importer
2026-01-15 11:39:03 +00:00
snipe 98b9246c10 Merge pull request #18442 from uberbrady/fewer_scim_exceptions
Fixed - throw fewer exceptions on SCIM misconfigurations
2026-01-15 11:38:49 +00:00
snipe 1e158721ee Merge remote-tracking branch 'origin/develop' 2026-01-15 11:10:09 +00:00
snipe ab4eefcac2 Added links to snipeit-mcp (by @jameshgordy) and SnipeScheduler (by @JSY-Ben) 2026-01-15 11:09:50 +00:00
snipe cf3b36f124 Merge remote-tracking branch 'origin/develop' 2026-01-15 09:45:40 +00:00
snipe 8da01b8569 Check for ID in ldap sync UI screen 2026-01-15 09:45:29 +00:00
snipe c90afaa312 Fixed quotes in cli purge eula command 2026-01-15 09:10:31 +00:00
snipe 9f20bb89c1 Merge remote-tracking branch 'origin/develop' 2026-01-14 21:37:54 +00:00
snipe dfe664b779 Merge pull request #18437 from grokability/#18409-purge-signature-pdfs
Fixed #18409 - command line option to purge signatures
2026-01-14 21:37:35 +00:00
snipe 88bd1fd6ef Merge pull request #18387 from vasiliyplotnikov/mysql_rds_ssl_support_18312
Fixed #18312: support aws rds mysql with force tls
2026-01-14 21:23:18 +00:00
snipe 33f8823edb Merge remote-tracking branch 'origin/develop' 2026-01-14 21:17:28 +00:00
snipe 06d5c0a86c Merge pull request #18440 from ManiacTwister/fix-importer-logfile
Fixed #8740: Use log instance with configured log path
2026-01-14 21:17:09 +00:00
snipe e12a5eda01 Merge remote-tracking branch 'origin/develop' 2026-01-14 20:56:44 +00:00
snipe b3c59b2cc3 Use readonly style with light/dark on LDAP settings 2026-01-14 20:56:35 +00:00
Brady Wetherington 778da511a5 Merge branch 'develop' into use_new_laravel_scim_server 2026-01-14 15:38:34 +00:00
Brady Wetherington 24d5969ce8 Bump versions of our branch of laravel-scim-server to reduce reollbar usage 2026-01-14 14:37:47 +00:00
Brady Wetherington 84940f12c5 add fix to handling blank emails, add notes on things that look weird 2026-01-14 14:31:16 +00:00
snipe 6ad42a02ad Merge remote-tracking branch 'origin/develop' 2026-01-14 14:21:50 +00:00
snipe 90b1ee4805 Check that signature exists on the server before trying to display 2026-01-14 14:21:41 +00:00
snipe 0c9d5ca9da Merge remote-tracking branch 'origin/develop' 2026-01-14 14:13:53 +00:00
snipe e05ecd0c3e Add created_by on acceptance logging to action_log 2026-01-14 14:13:43 +00:00
snipe 441657cbfb Merge remote-tracking branch 'origin/develop' 2026-01-14 13:48:54 +00:00
snipe 0fb6b02fc4 Merge pull request #18418 from Godmartinz/rb20479
Fix [RB-20479] Checkin/Checkout notifications from logging as errors
2026-01-14 13:37:48 +00:00
snipe f83df0d651 Merge remote-tracking branch 'origin/develop' 2026-01-14 13:34:29 +00:00
snipe e667cd20a8 Set require_signature to default to 0 2026-01-14 13:30:54 +00:00
ManiacTwister d06c56367f Fixed #8740: Use log instance with configured log path 2026-01-14 14:23:42 +01:00
snipe 039b4cf19f Fixed #18135 - only unset variables if the user is authenticated (Web UI) 2026-01-14 13:10:46 +00:00
snipe ca0961bd49 Clarified text 2026-01-14 12:50:57 +00:00
snipe 79528fa87b Fixed #18409 - command line option to purge signatures 2026-01-14 12:45:18 +00:00
Godfrey M d96d0b1bcb applied to LabelWriter_11354 2026-01-13 12:11:30 -08:00
Godfrey M 02c237404e applied to TZe_24mm_E 2026-01-13 12:07:39 -08:00
Godfrey M c56f5282ff applied to TZe_241 2026-01-13 12:02:05 -08:00
Godfrey M d62f10cb46 apply helper to L4736_A 2026-01-13 11:57:53 -08:00
Godfrey M 4c6f123cda apply helper to L6009_A 2026-01-13 11:55:10 -08:00
Godfrey M b0b1829426 add Helper function for label layout, applied to 1933081 2112283" 2026-01-13 11:50:14 -08:00
snipe 68b590c263 Merge pull request #18419 from Godmartinz/rb20638
Refactor the exceptions for Audit log (again)
2026-01-13 18:20:20 +00:00
Godfrey M b45efddd9a readd connection and throwable 2026-01-13 08:56:12 -08:00
snipe d8f5d8c6ec Merge remote-tracking branch 'origin/develop' 2026-01-13 13:34:18 +00:00
snipe 56baa8ac9f Fixed manager view label alignment 2026-01-13 13:34:09 +00:00
Brady Wetherington 0f45ecc00f Merge branch 'develop' into use_new_laravel_scim_server 2026-01-13 13:31:15 +00:00
snipe 15aa64ed28 Merge remote-tracking branch 'origin/develop' 2026-01-13 13:30:52 +00:00
snipe 6d0bfeb420 Fixed #18422 - Hide edit buttons if the manager is looking at a different profile 2026-01-13 13:30:42 +00:00
snipe ceff334420 Merge remote-tracking branch 'origin/develop' 2026-01-13 12:43:25 +00:00
snipe 4ee2db68fc Fixed #18429 - corrected string for requestable vs requested items 2026-01-13 12:43:07 +00:00
snipe 1f04d0023b Merge remote-tracking branch 'origin/develop' 2026-01-13 12:38:43 +00:00
snipe 4427fdcaec Use theme button for LDAP sync 2026-01-13 12:38:33 +00:00
snipe 4de642c6a4 Merge pull request #18430 from grokability/#18415-null-ldap-display-name
Fixed #18415 - LDAP sync improvements to allow null display_name and bulk editing display_name
2026-01-13 12:37:48 +00:00
snipe d3eb89a97c Fixed display name in user table 2026-01-13 12:01:34 +00:00
snipe d7362a3785 Nicer light/dark for ldap sync page 2026-01-13 12:01:12 +00:00
snipe 26347ac41e Add display name to bulk user edit 2026-01-13 12:00:46 +00:00
snipe b396da3f33 Use null instead of blank if value is empty 2026-01-13 12:00:27 +00:00
snipe 306a0bf6de Merge remote-tracking branch 'origin/develop' 2026-01-13 10:22:38 +00:00
snipe 8000e274c6 Fixed #18424 - adds BYOD to view-assets page 2026-01-13 10:22:19 +00:00
akemidx 5d91e0fa0a name box alignment/icons for shared or not 2026-01-12 07:48:53 -05:00
akemidx eb41247f2d changing 'shared_report_template' to 'is_shared' in DB part 2, also last commit deleted an unused request file 2026-01-08 18:54:44 -07:00
akemidx d53eafe87a changing 'shared_report_template' to 'is_shared' in DB 2026-01-08 18:52:36 -07:00
Godfrey M e48c40e5af remove use statements 2026-01-08 15:58:15 -08:00
Godfrey M df51318fb9 remove throwable exception..too vague 2026-01-08 15:55:30 -08:00
Marcus Moore 065c17002e Remove unused test cases 2026-01-08 15:18:16 -08:00
Marcus Moore 0e46a54013 Improve input alignment 2026-01-08 15:08:56 -08:00
Marcus Moore 0e35fb941b Improve assertions 2026-01-08 14:17:10 -08:00
Marcus Moore 71c9b927c6 Allow using same template name 2026-01-08 14:17:00 -08:00
Godfrey M 0327d01287 typo fixes" 2026-01-08 10:52:27 -08:00
Godfrey M 0ab206ca13 log warnings instead of errors for 4xx status codes 2026-01-08 09:47:35 -08:00
akemidx e42960ea15 sharing a report template test 2026-01-07 18:49:34 -07:00
Marcus Moore 636d42a52e Make test more explicit 2026-01-07 16:42:47 -08:00
Marcus Moore 1451843f84 Implement test for viewing shared template 2026-01-07 16:39:10 -08:00
Marcus Moore f8af21306a Handle attempting to delete another user's template 2026-01-07 16:37:34 -08:00
Marcus Moore 4e874cdb1b Fix update logic 2026-01-07 16:13:22 -08:00
akemidx dbd9a844dc scaffold test cases around sharing templates 2026-01-07 16:29:32 -07:00
snipe 542cdef0bd Merge remote-tracking branch 'origin/develop' 2026-01-07 15:55:44 +00:00
snipe f5955e14ff Merge pull request #18410 from grokability/#18402-saml-fields-readonly-display
Fixed #18402 - Clean up SAML readonly display
2026-01-07 15:55:25 +00:00
snipe a0df7adbd1 Override readonly styles on user edit page 2026-01-07 15:50:01 +00:00
snipe 82a4398ef6 Removed @disabled on textarea 2026-01-07 15:37:05 +00:00
snipe 9271930ba8 Clean up SAML readonly display 2026-01-07 15:27:33 +00:00
snipe f149f0d994 Merge remote-tracking branch 'origin/develop' 2026-01-07 13:36:31 +00:00
snipe 14ff325608 Merge pull request #18404 from kenchan0130/patch-displayname
fixed: Prefer display name of user on UI
2026-01-07 13:29:56 +00:00
Tadayuki Onishi 8e37fcc71e Since displayname should be referenced in the UI, we've changed it to use displayname 2026-01-07 21:59:27 +09:00
snipe bf910bc708 Merge pull request #18406 from dbakan/patch-1
Fixed #18405: Clean up closing divs to fix footer position
2026-01-07 12:55:54 +00:00
Daniel Albertsen 1136ea0779 Clean up stray closing div tags
Removed redundant closing div tags in the edit view.
2026-01-07 12:43:03 +01:00
Daniel Albertsen 9ad94b6562 Fix white space indention 2026-01-07 12:43:03 +01:00
akemidx c5284ed195 works fully, just needs to restrict editing for non template creator 2026-01-06 17:21:22 -07:00
Marcus Moore 5cd92dd794 Remove redundant display of "Category" 2026-01-05 15:13:27 -08:00
snipe 5ddb0b4a55 Merge remote-tracking branch 'origin/develop' 2026-01-05 22:29:17 +00:00
snipe 990858ba41 Merge pull request #18398 from grokability/fixes-rb-#20282-set-files-variable
Set `$files` in UploadedFilesController API POST endpoint only if there are results
2026-01-05 22:28:48 +00:00
snipe 406951fc84 Set $files only if there are results 2026-01-05 22:17:06 +00:00
snipe 41c7bf4aaa Merge pull request #18397 from Godmartinz/rb-20474-fix
Adds [RB-20474] a try/catch to ms teams audit notification
2026-01-05 20:39:42 +00:00
Godfrey M 1543634cb0 remove line break 2026-01-05 12:39:28 -08:00
Godfrey M b935752ec0 reference endpoint appropriately" 2026-01-05 12:35:20 -08:00
Godfrey M 2a60b7b7b2 move endpoint 2026-01-05 12:31:00 -08:00
snipe cef78687b3 Merge remote-tracking branch 'origin/develop' 2026-01-05 20:27:37 +00:00
snipe 2f29edc01f Changed “reset to default” button to theme button style 2026-01-05 20:27:25 +00:00
snipe 134491b59e Merge remote-tracking branch 'origin/develop'
# Conflicts:
#	public/js/dist/all.js
#	public/js/dist/all.js.map
#	public/mix-manifest.json
2026-01-05 20:20:51 +00:00
snipe 812ff0bfd2 Bumped jspdf to >=4.0.0 2026-01-05 20:20:09 +00:00
Godfrey M 201c4fa0d9 remove use path 2026-01-05 12:15:37 -08:00
Godfrey M ced83b9bfc add a try catch to ms teams audit notification 2026-01-05 12:14:42 -08:00
akemidx bd98ee62e1 something something prebreak 2026-01-05 12:16:16 -07:00
snipe e67c5273d7 Merge remote-tracking branch 'origin/develop' 2026-01-05 17:22:50 +00:00
snipe b4b9339065 Merge pull request #18396 from uberbrady/fix_select2_break_on_modal
Fixed #17652 - don't break company drop-down with modals
2026-01-05 17:22:29 +00:00
snipe f3cd68eb3f Merge remote-tracking branch 'origin/develop' 2026-01-05 17:21:44 +00:00
snipe ad57dea0e5 Suppress refresh button on client-side tables
Refresh only works on server-side tables
2026-01-05 17:21:32 +00:00
snipe 1e0a348b8e Merge remote-tracking branch 'origin/develop' 2026-01-05 17:19:56 +00:00
snipe 9c06a2126d Update sha.js to 2.4.12 2026-01-05 17:19:43 +00:00
snipe dab030e95d Merge remote-tracking branch 'origin/develop' 2026-01-05 16:56:02 +00:00
snipe 4995bc0d0d Small tweaks to select2 values 2026-01-05 16:55:53 +00:00
Brady Wetherington d2369893c8 Remove ID from company select in partial 2026-01-05 16:30:47 +00:00
snipe e48adf6443 Merge remote-tracking branch 'origin/develop' 2026-01-05 16:06:08 +00:00
snipe 505bca8386 Fixed :focus on theme buttons 2026-01-05 16:05:59 +00:00
snipe 31ca93a259 Merge remote-tracking branch 'origin/develop' 2026-01-05 15:40:59 +00:00
snipe 71523b7038 Merge pull request #18393 from grokability/#18291-bump-alpine
Attempted fix of #18291 - update PHP versions and alpine versions
2026-01-05 15:36:40 +00:00
snipe 9885dc9c8a Merge remote-tracking branch 'origin/develop' 2026-01-05 15:34:19 +00:00
snipe 00d9d9f132 Merge pull request #18395 from grokability/#18394-ldap-text-dark-mode
Fixed #18394 - LDAP sync test table background in dark mode
2026-01-05 15:34:00 +00:00
snipe 320dc3fac6 Fixed LDAP sync test table background in dark mode 2026-01-05 15:29:50 +00:00
Brady Wetherington 6e68e43a25 In this version of Alpine, php84 is default, so it's easier. 2026-01-05 15:11:08 +00:00
snipe a19c391aa1 Check can edit on demo in bulk user edit 2026-01-05 14:58:14 +00:00
snipe 32f0101c1b Attempted fix of #18291 - update PHP versions and alpine versions 2026-01-05 14:05:47 +00:00
snipe 12b9fdced5 Merge remote-tracking branch 'origin/develop' 2026-01-05 13:39:48 +00:00
snipe 0af45a53a9 Merge pull request #18359 from marcusmoore/17816-qty-in-activity-report
Fixed #17816 - added quantity to activity reports
2026-01-05 13:03:56 +00:00
snipe 37773d35f2 Merge pull request #18391 from ubc-cpsc/fix/PKSA-8x19-j2j3-bn67-sodium_compat
fix: paragonie/sodium_compat - Missing check that a point is on the prime subgroup for Edwards25519
2026-01-05 12:58:24 +00:00
snipe fca3eb4b7b Merge pull request #18392 from grokability/#18377-min-value-for-name
Fixes #18377 - make min value for names consistent
2026-01-05 12:56:29 +00:00
snipe 5e9e0b70db Fixes #18377 - make min value for names consistent 2026-01-05 12:51:49 +00:00
Joël Pittet 5242ffc04b fix: Missing check that a point is on the prime subgroup for Edwards25519 2026-01-02 13:55:18 -08:00
snipe f0c9a5b2dc Merge remote-tracking branch 'origin/develop' 2025-12-31 05:31:06 +00:00
snipe b3902e82fc Merge pull request #18388 from dylang3/fix/unintended-shell-exec-call
Fixed #18384: Remove backticks in bulk-actions.blade.php to avoid unintentional shell_exec() call
2025-12-31 05:30:06 +00:00
Dylan Guthrie d70eff6fc4 Fix: Remove backticks in bulk-actions.blade.php to avoid unintentional shell_exec() call 2025-12-30 22:37:49 -06:00
Vasily Plotnikov 5b5695ffe1 Fixed #18312: support aws rds mysql with force tls 2025-12-30 11:59:31 +00:00
snipe deb44cad30 Merge remote-tracking branch 'origin/develop' 2025-12-23 13:34:36 +00:00
snipe 35fdca3607 Added logo hover color 2025-12-23 13:33:53 +00:00
snipe 93080523d0 Merge remote-tracking branch 'origin/develop' 2025-12-21 08:34:42 +00:00
snipe b7b8f5a7e7 Merge pull request #18348 from grokability/dependabot/github_actions/develop/actions/cache-5
Bump actions/cache from 4 to 5
2025-12-21 08:16:48 +00:00
snipe 59ee55a6b2 Merge pull request #18349 from grokability/dependabot/github_actions/develop/actions/upload-artifact-6
Bump actions/upload-artifact from 5 to 6
2025-12-21 08:16:29 +00:00
snipe d85b25d683 Merge pull request #18363 from ubc-cpsc/task/request-get
fix: replace deprecated Symfony Request::get() usage
2025-12-21 08:09:50 +00:00
snipe 0108006fab Merge remote-tracking branch 'origin/develop' 2025-12-19 06:32:09 +00:00
snipe 755bb8f189 Merge pull request #18326 from dylang3/fix/users-groups-sync
Fixes #18325: Ensure existing permission group users are maintained when editing a group
2025-12-19 06:26:44 +00:00
Marcus Moore f53dcbc64f Only pull needed fields from database 2025-12-18 13:37:56 -08:00
Joël Pittet 0f215bbcf8 fix: replace deprecated Symfony Request::get() usage 2025-12-17 18:44:04 -08:00
snipe 9770775770 Merge remote-tracking branch 'origin/develop' 2025-12-17 16:27:42 +00:00
snipe 0b63bcc056 Derp. Copypasta 2025-12-17 16:25:03 +00:00
snipe 03116f5ece Fixed tests 2025-12-17 16:16:58 +00:00
snipe 5c091d8690 DIsable delete button if user cannot delete the user 2025-12-17 15:31:57 +00:00
snipe da1ca24190 Remove avatar delete - should be done in purge 2025-12-17 15:29:07 +00:00
akemidx 33f7a8d356 save copy 2025-12-16 21:38:13 -05:00
akemidx 64c3fe9099 notes and new direction? 2025-12-16 21:27:51 -05:00
Marcus Moore fa7382851f Use enum 2025-12-16 15:00:07 -08:00
Marcus Moore ab363596fd Replace qty with quantity 2025-12-16 14:55:00 -08:00
Marcus Moore b05970acf4 Add command to migrate license seat quantities in action log table 2025-12-16 13:48:23 -08:00
snipe aa6b70c296 Merge remote-tracking branch 'origin/develop' 2025-12-16 20:31:58 +00:00
snipe 00171e6d16 Fixed api docs url 2025-12-16 20:31:50 +00:00
snipe 061e0ded72 Merge remote-tracking branch 'origin/develop' 2025-12-16 20:26:18 +00:00
snipe 81bdd86fb7 Merge pull request #18358 from grokability/add-scim-url
Add SCIM url to admin settings
2025-12-16 20:06:50 +00:00
snipe 60ff06bcf0 Fixed nav footer label color 2025-12-16 20:02:20 +00:00
snipe a3e3f48d47 Added scim and API links to admin page 2025-12-16 19:59:52 +00:00
Godfrey M a3a79a696f adds first checkout to asset view and index 2025-12-16 08:48:08 -08:00
Marcus Moore 6947672046 Add seats to transformer 2025-12-15 17:31:56 -08:00
Marcus Moore 6f77e96998 Log quantity when adding or removing seats from license 2025-12-15 17:26:05 -08:00
Marcus Moore 8a595aa269 Display qty in history 2025-12-15 15:12:34 -08:00
Marcus Moore 1ccf38221f Set qty when accepting or declining checkout 2025-12-15 14:45:05 -08:00
Marcus Moore 18c639e6c0 WIP - adding qty to more event calls 2025-12-15 14:38:13 -08:00
Marcus Moore 06224371b3 Begin passing qty in CheckoutableCheckedOut event 2025-12-15 12:47:36 -08:00
dependabot[bot] d06105f410 Bump actions/upload-artifact from 5 to 6
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 5 to 6.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v5...v6)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-15 08:02:41 +00:00
dependabot[bot] 3226340b08 Bump actions/cache from 4 to 5
Bumps [actions/cache](https://github.com/actions/cache) from 4 to 5.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-15 08:02:30 +00:00
snipe 25ef5d64b4 Merge remote-tracking branch 'origin/develop' 2025-12-13 13:44:34 +00:00
snipe f286558065 Fixed #18344 2025-12-13 13:44:23 +00:00
snipe 9586c50cb5 Merge pull request #18347 from grokability/added-reset-for-theme
Added reset for theme, preview for effects in profile
2025-12-13 13:43:23 +00:00
snipe 4658bf38c5 Removed user migration for colors 2025-12-13 13:34:10 +00:00
snipe 951a4e37f3 New strings 2025-12-13 13:33:59 +00:00
snipe 6ad3154035 Added confetti, sounds test on checkboxes 2025-12-13 13:33:49 +00:00
snipe d7fa4a0df2 Tweaked colors 2025-12-13 13:33:13 +00:00
snipe 1112a40f0f Added reset button 2025-12-13 13:33:06 +00:00
snipe 78d1256b74 Merge remote-tracking branch 'origin/develop'
# Conflicts:
#	config/version.php
2025-12-12 08:47:16 +00:00
snipe a3f9aad418 Bumped version 2025-12-12 08:46:25 +00:00
snipe dba8cb83bf Merge remote-tracking branch 'origin/develop' 2025-12-12 07:49:53 +00:00
snipe 1954c607cd #18339 - removed heroku support 2025-12-12 07:49:01 +00:00
snipe 744124f407 Merge remote-tracking branch 'origin/develop' 2025-12-12 07:14:51 +00:00
snipe 3c14921a8c #18340 - jfc swift 2025-12-12 07:14:36 +00:00
snipe b595fe7488 Merge remote-tracking branch 'origin/develop' 2025-12-12 06:41:18 +00:00
snipe b0b194cef7 Fixed missing comma 2025-12-12 06:41:06 +00:00
snipe eb0a3a27d3 Merge remote-tracking branch 'origin/develop' 2025-12-12 05:03:09 +00:00
snipe 72fbcd72e0 Fix for fullscreen with dark/light 2025-12-12 05:02:56 +00:00
snipe 09e660a38c Merge remote-tracking branch 'origin/develop'
# Conflicts:
#	public/js/dist/all.js
#	public/js/dist/all.js.map
#	public/mix-manifest.json
2025-12-12 04:26:35 +00:00
snipe add1810fcc Added more options and validation to suppliers “new” modal 2025-12-12 04:18:42 +00:00
snipe eead2ce93e Adds cursor pointer to checkboxes and radios and their labels 2025-12-12 03:51:20 +00:00
akemidx 193fba71f3 fixing validation 2025-12-11 17:21:48 -05:00
snipe 5e60d96614 Simpler footer link color 2025-12-11 20:15:57 +00:00
snipe 85c721da99 Better alert color on dark 2025-12-11 20:14:33 +00:00
snipe f3f09dd9a5 Upgraded jquery to 3.7.1 2025-12-11 20:12:23 +00:00
snipe 29ad804ca8 Merge pull request #18332 from Godmartinz/add-category-to-account-accept-table
Fixed #18316 - Adds #18316 category to pending acceptance index table
2025-12-11 19:12:15 +00:00
Godfrey M a8c77d6e26 update accessor to laravel 11.x standards 2025-12-11 11:07:36 -08:00
snipe b949380db8 Fixed highlighted button in license toolbar 2025-12-11 18:38:40 +00:00
Godfrey M b7f6137a63 add accessor for category name on checkout acceptance model 2025-12-11 10:08:00 -08:00
snipe 181cd7f0dc Merge remote-tracking branch 'origin/develop' 2025-12-11 18:03:12 +00:00
snipe 10692dc587 Removed back button on history importer, themed upload button 2025-12-11 17:49:56 +00:00
snipe 8d0793e004 Merge remote-tracking branch 'origin/develop' 2025-12-11 17:45:23 +00:00
snipe 02da163ee0 Fixed modal header color in light mode 2025-12-11 17:45:14 +00:00
snipe 3199e94b3c Made icons fixed width via fa-fw 2025-12-11 16:49:02 +00:00
snipe ac2a1503e2 Merge remote-tracking branch 'origin/develop' 2025-12-11 16:45:48 +00:00
snipe ea10167607 Merge pull request #18333 from Godmartinz/fix-checkin-notification
Fixes [FD-52267] Expected Checkin Notification Shows Overdue instead of Reminder
2025-12-11 16:44:45 +00:00
snipe e617b913cd Merge remote-tracking branch 'origin/develop' 2025-12-11 16:44:01 +00:00
snipe 8f6208a3c9 Removed text-blue in bootstrap-tables 2025-12-11 16:42:56 +00:00
snipe 39c71481c9 Added breaks 2025-12-11 16:34:55 +00:00
snipe a38e49290e Added external link indicator to help text 2025-12-11 16:31:12 +00:00
snipe f974427964 Merge remote-tracking branch 'origin/develop' 2025-12-11 16:05:41 +00:00
snipe 1f311c8657 One more nullsafe 2025-12-11 16:05:31 +00:00
snipe c0406734bc Merge remote-tracking branch 'origin/develop' 2025-12-11 16:01:15 +00:00
snipe 66e80628f6 Account for no created_by value 2025-12-11 16:01:06 +00:00
akemidx 8a14800ef2 fixes/beginning validation 2025-12-11 03:42:10 -05:00
akemidx a46d73f562 spacing/hiding when no template loaded 2025-12-11 03:21:34 -05:00
Marcus Moore e908838376 Add failing tests 2025-12-10 15:44:51 -08:00
Marcus Moore 4b1339a11c Add qty to action_logs table 2025-12-10 13:30:34 -08:00
Godfrey M 620c43fd6d fixes expected checkin Notification 2025-12-10 11:33:08 -08:00
Godfrey M dfb9d5622a adds category to account accept index table 2025-12-10 10:43:59 -08:00
snipe af0aa7da4e Merge remote-tracking branch 'origin/develop' 2025-12-10 10:27:49 +00:00
snipe 75ddb50738 Use theme color for logo uploads 2025-12-10 10:27:40 +00:00
snipe 600238dd9b Merge remote-tracking branch 'origin/develop' 2025-12-10 09:38:51 +00:00
snipe 5a88e98ad9 Merge pull request #18330 from grokability/bigger-double-scrollbar-issue
Fixed #18317 - Longer double scrollbar issue
2025-12-10 09:38:37 +00:00
snipe 84a0544621 Removed <div class="table-responsive"> 2025-12-10 09:33:08 +00:00
snipe 8a1c7ee448 Remove <div class="table table-responsive"> 2025-12-10 09:09:12 +00:00
Dylan Guthrie c978be5cab send associated_users to view as collection 2025-12-09 19:47:42 -06:00
snipe 2fb29dad0a Merge remote-tracking branch 'origin/develop' 2025-12-10 00:09:17 +00:00
snipe 7d160abdaf Merge pull request #18323 from grokability/#18317-removed-responsive-table-divs
Fixed #18317 - Double scrollbars on some screens
2025-12-10 00:08:55 +00:00
snipe 6c5d2c6716 Merge pull request #18328 from grokability/#17197-download-importer-files
Added #17197: Ability to download uploaded import CSVs
2025-12-10 00:07:01 +00:00
snipe f3feff7988 Disable delete button if not owner of super admin 2025-12-09 23:59:22 +00:00
snipe 7d24f50cdc Removed extra whitespace 2025-12-09 23:49:21 +00:00
snipe 7c7375ed43 Undo temp delete commented out 2025-12-09 23:48:34 +00:00
snipe e2e4adca4e Generic message if the user tries to delete a file they don’t have access to 2025-12-09 23:46:53 +00:00
snipe a350b9bc3d Handle redirect if the user does not have permission to view results 2025-12-09 23:46:33 +00:00
snipe 7854543122 Added import-download controller 2025-12-09 23:46:13 +00:00
snipe 8b5636c0ab Override progress bar text color 2025-12-09 23:45:58 +00:00
snipe 9f948fd2ba Link to download and user 2025-12-09 23:45:49 +00:00
snipe 60fb67461a Added downnload route 2025-12-09 23:45:38 +00:00
snipe 5c896fc965 Merge pull request #18314 from Godmartinz/adjust-fonts-on-labelwriter-211xxx
Fixes [FD-52064] LabelWriter label font choice for fields, adds scaling to all labels.
2025-12-09 22:08:35 +00:00
Dylan Guthrie 242201ca91 Fix: Ensure existing permission group users are maintained when editing group 2025-12-09 16:06:49 -06:00
akemidx 865392d1f7 margin 2025-12-09 14:10:32 -05:00
akemidx b880ed2371 front end clarity 2025-12-09 13:14:09 -05:00
snipe c779988771 Fixed gallery cards in dark mode 2025-12-09 16:53:02 +00:00
snipe e6eb15d053 Removed the duplicate table-responsive in BS tables 2025-12-09 16:52:51 +00:00
snipe 05b957df19 Merge pull request #18322 from grokability/bulk-checkin-delete-UI-fixes-dark-mode
Bulk checkin delete UI fixes dark mode
2025-12-09 15:38:25 +00:00
snipe 96da8a5fab Updated route 2025-12-09 15:28:22 +00:00
snipe 62bf61402e Updated strings 2025-12-09 15:24:16 +00:00
snipe 227be798f6 Visual tweaks to bulk 2025-12-09 15:24:10 +00:00
snipe 53f304d137 Updated view with tooltip on disabled 2025-12-09 15:23:59 +00:00
snipe 137d362369 Added breadcrumbs 2025-12-09 15:21:50 +00:00
snipe 5b2cf54f50 Fixed accessory buttons on mobile 2025-12-09 14:06:53 +00:00
snipe b4bc785f7c Merge remote-tracking branch 'origin/develop' 2025-12-09 13:13:59 +00:00
snipe 98a8e4c2ec Merge pull request #18319 from uberbrady/fix_component_edit
Fixed [RB-4066], #18308 - Fix error on saving component after create
2025-12-09 13:13:45 +00:00
Brady Wetherington bed6b04c3d Unset the 'sum_unconstrained_assets' attribute before saving 2025-12-09 13:00:41 +00:00
Marcus Moore def04017e0 Improve readability in tests 2025-12-08 14:10:44 -08:00
Marcus Moore 9eeb916796 Improve clarity in test 2025-12-08 14:04:18 -08:00
Marcus Moore b06a0c5d83 Use value already computed 2025-12-08 13:59:07 -08:00
Marcus Moore 90541ba349 Use foreach instead of reduce 2025-12-08 13:57:38 -08:00
Marcus Moore 0cc346259b Use foreach instead of reduce 2025-12-08 13:51:30 -08:00
Marcus Moore 98c343b438 Improve method ordering 2025-12-08 13:48:22 -08:00
akemidx 7ee0cdc6c7 hide edit and delete for non report creators 2025-12-08 16:42:38 -05:00
akemidx 6a770832ba only creator can see share checkbox 2025-12-08 16:32:11 -05:00
akemidx ef0ff65162 scoping shared templates 2025-12-08 16:29:14 -05:00
akemidx 8c0e7e1bb3 share option saved in db column 2025-12-08 15:55:26 -05:00
snipe babb3ffb9c Merge remote-tracking branch 'origin/develop' 2025-12-08 20:24:31 +00:00
snipe 15c96f753c Revert hasMany “fix” 2025-12-08 20:22:55 +00:00
snipe 354bdeffbf Merge remote-tracking branch 'origin/develop' 2025-12-08 20:19:54 +00:00
snipe 512af90d31 Re-removed non-asset models from kits
These still do not work as expected.
2025-12-08 20:18:39 +00:00
Marcus Moore 8cb2ef7cac Add typehint 2025-12-08 12:17:04 -08:00
Marcus Moore 046b38e5c2 Improve method name 2025-12-08 12:10:25 -08:00
Marcus Moore d50d7fd631 Account for null value 2025-12-08 12:09:58 -08:00
snipe ed837b7527 Merge remote-tracking branch 'origin/develop' 2025-12-08 19:33:07 +00:00
snipe fa5dd99f00 Only try to print status name if it exists 2025-12-08 19:32:57 +00:00
Godfrey M a19282710b fix up 11354 label, and readd 1d barcode to 2112283 2025-12-08 10:44:21 -08:00
Godfrey M 2f3cfb0a4e fix labelwriter fonts and add scaling 2025-12-08 10:20:53 -08:00
snipe af4db94d17 Merge pull request #18306 from fdiaz3000/change-import-assetmodel
Change title_class to ucfirst in Object Import Command to allow AssetModel
2025-12-08 17:05:23 +00:00
snipe bcbf27acca Merge remote-tracking branch 'origin/develop' 2025-12-08 16:51:44 +00:00
snipe 80b037c5a5 Fixed label url 2025-12-08 16:51:36 +00:00
snipe 20bacfeecf Merge remote-tracking branch 'origin/develop' 2025-12-07 21:40:19 +00:00
snipe 8a128ae8c2 Fixed RB-4062 - double-braces 2025-12-07 21:40:02 +00:00
snipe beacfbb082 Merge remote-tracking branch 'origin/develop' 2025-12-07 15:02:17 +00:00
snipe df0d565ae5 Set audit button back to btn-primary 2025-12-07 15:02:07 +00:00
snipe 9ee755c112 More consistent bulk action labels 2025-12-07 14:58:08 +00:00
snipe 130aca2943 Merge remote-tracking branch 'origin/develop' 2025-12-07 14:53:10 +00:00
snipe 5ea76ecb66 Fixed checkmark class on model buk edit 2025-12-07 14:52:49 +00:00
snipe b8ff3ef41a Merge remote-tracking branch 'origin/develop' 2025-12-07 14:49:44 +00:00
snipe 3e8156be54 Merge pull request #18307 from grokability/bulk-model-edit-dark-light-fix
Fixed unreadable table on dark mode for asset model bulk edit, added breadcrumbs
2025-12-07 14:49:31 +00:00
snipe 47e192b530 Fixed breadcrumb title 2025-12-07 14:43:47 +00:00
snipe b33f222fc0 Smaller bulk delete form 2025-12-07 14:39:00 +00:00
snipe 20eab1f403 Fixed updated route names 2025-12-07 14:37:22 +00:00
snipe a283fdb75a Removed back button 2025-12-07 14:37:10 +00:00
snipe a29a115846 Nicer layout on asset bulk delete form 2025-12-07 14:36:59 +00:00
snipe 05ff9183fb Fixed weird top border 2025-12-07 14:31:47 +00:00
snipe 793d299c1d Fixed breadcrumbs 2025-12-07 14:31:01 +00:00
snipe 7d5f862f34 Use striped mode 2025-12-07 14:13:17 +00:00
snipe b0ab900a0f Fixed new dark mode for bulk model edit 2025-12-07 14:10:09 +00:00
Felix 0ea5012ba2 fix(import-command): 18305 change title_class to ucfirst 2025-12-06 15:00:43 -05:00
snipe 7ecb96d45a Merge remote-tracking branch 'origin/develop' 2025-12-06 01:08:46 +00:00
snipe 5f0d7fde39 Better selected color 2025-12-06 01:08:31 +00:00
snipe fe3c301ca2 Prod assets 2025-12-06 00:59:55 +00:00
snipe 3adf8847b0 Merge remote-tracking branch 'origin/develop'
# Conflicts:
#	public/css/build/app.css
#	public/css/build/app.css.map
#	public/css/build/overrides.css
#	public/css/build/overrides.css.map
#	public/css/dist/all.css
#	public/js/dist/all.js
#	public/js/dist/all.js.map
#	public/mix-manifest.json
2025-12-06 00:59:47 +00:00
snipe 9ae68f0000 More color tweaks 2025-12-06 00:58:32 +00:00
snipe 36415a1f7a Updated buttons 2025-12-05 23:43:56 +00:00
snipe 39d1aa932c Moved clear button 2025-12-05 21:35:47 +00:00
snipe 82b37c3b58 Removed back button 2025-12-05 21:25:17 +00:00
snipe c73c2b003a Merge remote-tracking branch 'origin/develop' 2025-12-05 20:52:48 +00:00
snipe 65b39d3a30 Use the themed buttons 2025-12-05 20:51:47 +00:00
snipe 6a59119c58 Merge pull request #18303 from grokability/update-users-api-with-disallowed-fields-list
Update users api with disallowed fields list
2025-12-05 20:32:55 +00:00
snipe 8b4387ec32 Fixed weird indenting 2025-12-05 19:52:31 +00:00
snipe dc82f8f077 Updated tests 2025-12-05 19:27:05 +00:00
snipe 07e1f67e13 Disallow fill for sensitive fields 2025-12-05 19:27:01 +00:00
snipe 412f4c65c8 Fixed dark mode footer links 2025-12-05 18:35:18 +00:00
snipe a6d9c1f882 Merge remote-tracking branch 'origin/develop' 2025-12-05 18:07:13 +00:00
snipe bb5c142f52 Nicer footer color for light/dark 2025-12-05 18:06:48 +00:00
snipe a5e1528c0d Merge remote-tracking branch 'origin/develop' 2025-12-05 17:46:30 +00:00
snipe 904c20e879 Removed blue text override 2025-12-05 17:46:20 +00:00
snipe 612daa6824 Merge pull request #18302 from grokability/preflight-quickstart-cleanup
Preflight quickstart cleanup
2025-12-05 17:20:29 +00:00
snipe 02b6de2385 Added tests 2025-12-05 17:03:10 +00:00
snipe da5db1920e Use generic email address domains 2025-12-05 17:03:02 +00:00
snipe d20545741e Nicer views 2025-12-05 17:02:51 +00:00
snipe 03b42d2c6c Nicer styles 2025-12-05 17:02:19 +00:00
snipe e9dbeebbc4 Updated some strings 2025-12-05 17:02:09 +00:00
snipe bb53fa245b Removed email domain from required setup fields 2025-12-05 17:01:36 +00:00
snipe bc796498a3 Moved setup controller methods out of settings controller 2025-12-05 17:01:24 +00:00
snipe c25266054b Merge remote-tracking branch 'origin/develop' 2025-12-05 10:55:59 +00:00
snipe 0204414196 Handle /setup link colors via middleware 2025-12-05 10:55:49 +00:00
snipe c6b2017494 Merge pull request #18297 from Godmartinz/tze_24mm_E_2d-adjustment-and-scaling
Fixes [FD-50838] adjust `Tze_24mm_E` 2D barcode 20% bigger, scales fields, center label more
2025-12-05 08:57:20 +00:00
snipe 84fd48602e Merge pull request #18298 from Godmartinz/add-TZe_241
Adds [FD-52267] TZe_241 based on TZe_18mm sizes
2025-12-05 08:56:55 +00:00
Marcus Moore a34ea0804d Separate out info and prompt 2025-12-04 17:22:23 -08:00
Marcus Moore 0fbf4ce443 Move singular eula to bottom of email 2025-12-04 17:08:48 -08:00
Marcus Moore d062cc45df Add translation 2025-12-04 15:18:24 -08:00
Marcus Moore da790136ff WIP 2025-12-04 14:40:51 -08:00
Marcus Moore 134f374ada WIP 2025-12-04 14:39:37 -08:00
Marcus Moore df304a894f WIP 2025-12-04 14:38:13 -08:00
Marcus Moore 2d1d90e38c Add comment 2025-12-04 14:34:50 -08:00
Marcus Moore dcbdc6fcb8 WIP 2025-12-04 14:27:53 -08:00
Marcus Moore 5a4ef15de5 Avoid rendering rule if last item in loop 2025-12-04 14:22:13 -08:00
Marcus Moore affc4c8bd9 Styling 2025-12-04 14:07:10 -08:00
Marcus Moore bc5d6e89ba Readability 2025-12-04 14:05:22 -08:00
Marcus Moore c17e6811d2 Group categories visually 2025-12-04 14:03:11 -08:00
Marcus Moore 7f097c029a Fix indent 2025-12-04 13:52:26 -08:00
Godfrey M c8e8eb58aa adds TZe_241 based on TZe_18mm sizes 2025-12-04 12:41:57 -08:00
akemidx 60f5affe43 more sharing framewor. tests outlines 2025-12-04 13:48:36 -05:00
Godfrey M 0b087ca77d adjust 2d barcode 20% bigger, scale fields, center label more 2025-12-04 09:55:47 -08:00
snipe 444083ec5d Merge remote-tracking branch 'origin/develop' 2025-12-04 17:54:31 +00:00
snipe bf01a11fec Fixed label colors in dark/light 2025-12-04 17:54:19 +00:00
snipe 8f232421d2 Merge remote-tracking branch 'origin/develop' 2025-12-04 17:37:58 +00:00
snipe dbc688ad6e Set '#ffffff' as default 2025-12-04 17:37:44 +00:00
snipe 6217a721ac Merge remote-tracking branch 'origin/develop' 2025-12-04 15:11:38 +00:00
snipe c2ba937ac6 Merge pull request #18295 from grokability/#18288-allow-reference-editing-if-edit-profile-is-disabled
Fixed #18288: Allow users to edit display preferences even if profile editing is not enabled
2025-12-04 15:11:11 +00:00
snipe d860786221 Re-add button 2025-12-04 13:21:54 +00:00
snipe 621ce1777f Fixed #18288: Allow users to change preferences even if profile editing is not permitted 2025-12-04 13:21:04 +00:00
snipe 4f610ac1af Added tag color to importer 2025-12-04 11:07:59 +00:00
snipe 7341cd1712 Merge pull request #18294 from grokability/#18278-import-company-in-locations
Fixed #18278: Import companies into locations on initial import
2025-12-04 11:07:18 +00:00
snipe bf112b7b4b Fixed #18278: Import companies into locations on initial import 2025-12-04 10:59:45 +00:00
snipe ad9e0cc39a Merge remote-tracking branch 'origin/develop' 2025-12-04 10:50:09 +00:00
snipe 1439681113 Alert message link text 2025-12-04 10:34:58 +00:00
snipe 3b750541c9 Prod assets 2025-12-04 10:19:12 +00:00
snipe 79765201ac Merge remote-tracking branch 'origin/develop' 2025-12-04 10:18:37 +00:00
snipe 0086b9d848 mix 2025-12-04 10:17:17 +00:00
snipe c8ddb44783 Fixed button color 2025-12-04 10:16:44 +00:00
snipe d4829a4bac Fixed #18286 - :user in declined email 2025-12-04 10:16:35 +00:00
snipe 486f0c0035 Re-running assets for prod 2025-12-04 08:46:53 +00:00
snipe dc3a695ab0 Merge remote-tracking branch 'origin/develop'
# Conflicts:
#	config/version.php
#	public/css/build/app.css
#	public/css/build/app.css.map
#	public/css/build/overrides.css
#	public/css/build/overrides.css.map
#	public/css/dist/all.css
#	public/css/dist/skins/_all-skins.css
#	public/css/dist/skins/_all-skins.css.map
#	public/css/dist/skins/_all-skins.min.css
#	public/css/dist/skins/skin-black-dark.css
#	public/css/dist/skins/skin-black-dark.css.map
#	public/css/dist/skins/skin-black-dark.min.css
#	public/css/dist/skins/skin-black.css
#	public/css/dist/skins/skin-black.css.map
#	public/css/dist/skins/skin-black.min.css
#	public/css/dist/skins/skin-blue-dark.css
#	public/css/dist/skins/skin-blue-dark.css.map
#	public/css/dist/skins/skin-blue-dark.min.css
#	public/css/dist/skins/skin-blue.css
#	public/css/dist/skins/skin-blue.css.map
#	public/css/dist/skins/skin-blue.min.css
#	public/css/dist/skins/skin-contrast.css
#	public/css/dist/skins/skin-contrast.css.map
#	public/css/dist/skins/skin-contrast.min.css
#	public/css/dist/skins/skin-green-dark.css
#	public/css/dist/skins/skin-green-dark.css.map
#	public/css/dist/skins/skin-green-dark.min.css
#	public/css/dist/skins/skin-green.css
#	public/css/dist/skins/skin-green.css.map
#	public/css/dist/skins/skin-green.min.css
#	public/css/dist/skins/skin-orange-dark.css
#	public/css/dist/skins/skin-orange-dark.css.map
#	public/css/dist/skins/skin-orange-dark.min.css
#	public/css/dist/skins/skin-orange.css
#	public/css/dist/skins/skin-orange.css.map
#	public/css/dist/skins/skin-orange.min.css
#	public/css/dist/skins/skin-purple-dark.css
#	public/css/dist/skins/skin-purple-dark.css.map
#	public/css/dist/skins/skin-purple-dark.min.css
#	public/css/dist/skins/skin-purple.css
#	public/css/dist/skins/skin-purple.css.map
#	public/css/dist/skins/skin-purple.min.css
#	public/css/dist/skins/skin-red-dark.css
#	public/css/dist/skins/skin-red-dark.css.map
#	public/css/dist/skins/skin-red-dark.min.css
#	public/css/dist/skins/skin-red.css
#	public/css/dist/skins/skin-red.css.map
#	public/css/dist/skins/skin-red.min.css
#	public/css/dist/skins/skin-yellow-dark.css
#	public/css/dist/skins/skin-yellow-dark.css.map
#	public/css/dist/skins/skin-yellow-dark.min.css
#	public/css/dist/skins/skin-yellow.css
#	public/css/dist/skins/skin-yellow.css.map
#	public/css/dist/skins/skin-yellow.min.css
#	public/js/dist/all.js
#	public/js/dist/all.js.map
#	public/mix-manifest.json
2025-12-04 08:45:19 +00:00
akemidx e769239213 only user can change report sharing 2025-12-04 00:39:47 -05:00
akemidx 45923a74f6 only user can change report sharing 2025-12-04 00:34:30 -05:00
Marcus Moore 7bf7a87f8a Begin to display EULAs for all categories 2025-12-03 16:59:57 -08:00
Marcus Moore 8396e27a2c Revert "Avoid showing EULA"
This reverts commit 8c89eb6650.
2025-12-03 16:16:30 -08:00
Marcus Moore 5153c68b8b Remove old todos 2025-12-03 16:15:43 -08:00
snipe 3feee682b6 Fixed import view with light/dark 2025-12-03 21:38:57 +00:00
snipe 4ea5cb9538 Merge pull request #18284 from Godmartinz/fix-alert-threshold-bug
Fixes Low Inventory Alerts not sending when threshold is `null`
2025-12-03 21:32:29 +00:00
Godfrey M f6461a755a revert again 2025-12-03 13:22:46 -08:00
Godfrey M 39cf5ce66e revert some changes 2025-12-03 13:22:03 -08:00
Godfrey M c68d9892b5 fix threshold bug, include minimum to available 2025-12-03 13:20:01 -08:00
snipe 33b20b6268 Fixed sidemenu hover 2025-12-03 19:27:44 +00:00
snipe 280df20a0b Better default link colors for skin migration 2025-12-03 18:18:24 +00:00
snipe 7027cd80d4 Updated modal for light/dark 2025-12-03 18:18:14 +00:00
snipe bfbcfe7bae Updated text string 2025-12-03 17:36:48 +00:00
snipe e1f64b6d2b Modal title color fix 2025-12-03 17:36:39 +00:00
snipe 6944c438dd Inline tooltip improvements 2025-12-03 16:04:23 +00:00
snipe 49b7ff1192 Fixed email field color 2025-12-03 15:58:50 +00:00
snipe 662cdbaa0e Datepicker color fixes 2025-12-03 15:55:04 +00:00
snipe e912eb5ef8 Merge pull request #18279 from uberbrady/new_allowlist_restore_cleaner
Loosen regex allowlist for setting character sets
2025-12-03 13:31:01 +00:00
Brady Wetherington 5ab68d83a5 Loosen regex allowlist for setting character sets 2025-12-03 13:06:02 +00:00
snipe f7c432f7fd Bumped hash 2025-12-03 10:09:23 +00:00
snipe 592ccb6ebe Merge pull request #18244 from Godmartinz/receive-all-expired-licenses-on-report
adds #17422 [FD-49345] `--expired-licenses` command parameter to `snipeit:expiring-alerts`
2025-12-03 09:49:49 +00:00
snipe d22d70dd92 Merge pull request #18257 from iryadifarhan/fix/manager-view-not-displaying-subordinates-eulas-properly
Fixes Manager View not displaying subordinates EULAs properly in View Assets page
2025-12-03 09:49:35 +00:00
snipe 7ec5606ce4 Merge pull request #18247 from uberbrady/multi_create_fixes
Fixed #18160 - Multi-create fixes
2025-12-03 09:49:14 +00:00
snipe 476bf95edf Merge pull request #18272 from spencerrlongg/add-null-checks
Adds Null Checks
2025-12-03 09:48:43 +00:00
Marcus Moore 391495dd86 Remove some assertions 2025-12-02 17:41:22 -08:00
Marcus Moore 8c89eb6650 Avoid showing EULA 2025-12-02 17:37:21 -08:00
Marcus Moore 4167c6ea70 Add some translations 2025-12-02 17:36:05 -08:00
Marcus Moore ca3151ce29 Improve naming 2025-12-02 16:10:53 -08:00
akemidx cc20844eff share template bits 2025-12-02 18:34:13 -05:00
Marcus Moore d876e710e4 Be more specific in tests 2025-12-02 13:48:59 -08:00
Marcus Moore 5c1290425b Improve variable name 2025-12-02 13:28:59 -08:00
Marcus Moore 2043488c67 Cleanups 2025-12-02 12:31:04 -08:00
Marcus Moore e7e48c8f03 Cleanups 2025-12-02 12:30:16 -08:00
Marcus Moore dad650b804 Readability 2025-12-02 12:28:51 -08:00
Marcus Moore d0e73714c6 Implement test 2025-12-02 11:57:02 -08:00
Marcus Moore d8b95d3a20 Organization 2025-12-02 11:53:37 -08:00
Marcus Moore 559d8cc0db Implement test 2025-12-02 11:53:01 -08:00
Marcus Moore 7a804aa576 Implement test 2025-12-02 11:51:28 -08:00
snipe cdf036ed7b Merge pull request #18274 from spencerrlongg/check-that-email-exists-on-recipient
Check That Email Exists on Recipient in Checkout Acceptance
2025-12-02 19:35:28 +00:00
snipe 639a3b9295 Merge pull request #18273 from Godmartinz/fix-null-assignee-bug-in-checkoutable
Refactor `assignee` in Checkoutable to accept null
2025-12-02 19:31:22 +00:00
spencerrlongg e4f8c3bef7 add null check and check for email 2025-12-02 13:17:13 -06:00
Godfrey M 462945022c allow null for assignee in checkoutable 2025-12-02 11:05:07 -08:00
spencerrlongg aa57687df0 add null checks to license 2025-12-02 12:13:38 -06:00
snipe 3237a3b9de One more button fix 2025-12-02 16:44:31 +00:00
snipe ff30e109cc Small button fixes 2025-12-02 16:42:32 +00:00
snipe 2d291f843a Fixed create new on table buttons 2025-12-02 16:36:54 +00:00
snipe 7219fc1c3c Added style to border on colorpicker 2025-12-02 16:22:53 +00:00
snipe ed6bfa7810 Disable branding colopickers on demos 2025-12-02 16:16:33 +00:00
snipe ad15090c34 Nicer search highlight box 2025-12-02 15:58:34 +00:00
snipe 9d34bf4a19 Fixed table header colors 2025-12-02 15:54:18 +00:00
snipe 7c9b1a52af Swapped link colors 2025-12-02 15:39:32 +00:00
snipe dd297dca31 Merge pull request #18249 from grokability/proper-dark-toggle
Experiment: simpler light/dark toggle
2025-12-02 14:37:52 +00:00
snipe 1409d01078 Tweaked color 2025-12-02 14:19:53 +00:00
snipe c9a03cf9b7 Final color tweaks 2025-12-02 14:03:08 +00:00
snipe 6a99132e76 More tweaks 2025-12-02 13:29:12 +00:00
Marcus Moore 0bca66b671 Send email if asset has checkin_email set to true 2025-12-01 16:58:02 -08:00
Marcus Moore 24e5cf8121 Improve readability 2025-12-01 16:51:09 -08:00
Marcus Moore ee7c4ce0f3 Improve assertion 2025-12-01 16:47:23 -08:00
Marcus Moore 428b511687 Send if eula is set 2025-12-01 16:41:50 -08:00
Marcus Moore 49497996d5 Fix template 2025-12-01 16:41:39 -08:00
Marcus Moore bccd65e2fc Add failing test 2025-12-01 16:33:46 -08:00
Marcus Moore f2158843ce Avoid attempting to loop over null 2025-12-01 16:25:37 -08:00
Marcus Moore 87fc4a4f22 Scaffold scenarios 2025-12-01 16:01:34 -08:00
Marcus Moore 27291f9ee9 Add todo 2025-12-01 14:23:33 -08:00
Marcus Moore cba963110e Remove unused import 2025-12-01 14:22:06 -08:00
Marcus Moore aa014e3706 Improve wording 2025-12-01 14:19:54 -08:00
akemidx 58d577f67a shared/notshared marker 2025-12-01 16:48:39 -05:00
Marcus Moore cd3678841b Fix intro line to locations 2025-12-01 13:41:23 -08:00
Marcus Moore 425e0c33df Add tests for introduction line 2025-12-01 12:55:39 -08:00
Marcus Moore 2018407782 Avoid error by pre-checking if user has email address 2025-12-01 12:04:53 -08:00
snipe 2e269d2e63 Removed old skin less files 2025-11-29 10:42:10 +00:00
snipe 7820636c9f Nicer defaults 2025-11-29 10:41:58 +00:00
snipe db1b35ccf6 Fixed style 2025-11-28 19:20:41 +00:00
snipe fadfe0a782 Removed old skin references 2025-11-28 19:17:52 +00:00
snipe 255a2ecdd9 Sigh 2025-11-28 19:09:38 +00:00
snipe 97ffe33fc8 Check that a setting record exists 2025-11-28 19:07:46 +00:00
snipe 56d97a1f59 Updated map 2025-11-28 19:05:25 +00:00
snipe 28d5d24617 Migration to handle skins 2025-11-28 19:05:19 +00:00
snipe d97f6903d6 Save settings controller 2025-11-28 19:05:03 +00:00
snipe 3bf84d96d9 Update language 2025-11-28 19:04:49 +00:00
snipe 8df643a2ab Removed user skin option 2025-11-28 19:04:40 +00:00
snipe 2d001c4fa1 Added colorpickers for link colors 2025-11-28 19:04:20 +00:00
snipe cbd6b57445 Removed skin from user profile update 2025-11-28 19:04:00 +00:00
snipe dac684c08a Update demo settings 2025-11-28 19:03:48 +00:00
snipe 772c29791a Use css variable 2025-11-28 17:48:08 +00:00
snipe 89a232ae14 Merge pull request #18266 from Valinwolf/develop
Added endpoint & use_path_style_endpoint configs for public/private S3
2025-11-28 17:39:23 +00:00
snipe 4e4b8ddb77 And more updates 2025-11-28 17:33:30 +00:00
Patrick Thomas 6eaefa0bdd Added endpoint & use_path_style_endpoint configs for public/private S3 2025-11-28 17:29:02 +00:00
snipe 20a75bbbb7 More styles 2025-11-28 15:54:24 +00:00
snipe 5cc261dd3c Smaller LDAP screen 2025-11-28 15:50:37 +00:00
snipe 6d958b6f65 Added fa-fw to arrow class 2025-11-28 15:50:25 +00:00
snipe 8ddac4d7c7 More select2 styling :( 2025-11-28 15:16:22 +00:00
snipe a321ad9dbe Handle select2 stuff 2025-11-28 14:13:19 +00:00
snipe 4dff66253c Added contrast-color to dynamically pick white/black for topnav 2025-11-27 16:15:35 +00:00
snipe 9a1e9f90bc Better preview for header color, updated text 2025-11-27 15:56:06 +00:00
snipe c54724919c Show header color preview 2025-11-27 15:29:24 +00:00
snipe 139d1cdcf8 Added a few more classes 2025-11-27 14:48:28 +00:00
snipe 490c50a182 Added fa-fw to action buttons 2025-11-27 14:48:16 +00:00
snipe af1e496eab Added correct box class 2025-11-27 13:30:11 +00:00
snipe efea043549 Added dark/light text 2025-11-27 13:29:59 +00:00
snipe d4ee91f013 Removed a few classes 2025-11-27 13:29:50 +00:00
iryadifarhan d4561581ad Apply fix around view-assets to pass request parameter and profile controller to address request parameter 2025-11-27 13:42:47 +07:00
snipe a17f167952 Fix button overrides 2025-11-26 15:41:38 +00:00
snipe 5beb068cde More updates for dark and light switches 2025-11-26 15:35:43 +00:00
snipe a272bdc796 Merge pull request #18251 from uberbrady/improve_component_asset_counts
Optimize queries for Components listing
2025-11-26 14:40:14 +00:00
snipe 30a43089a0 More variablization 2025-11-26 13:50:39 +00:00
Brady Wetherington 416b32cbc8 Optimize queries for Components listing 2025-11-26 12:36:44 +00:00
iryadifarhan a3a49e47b7 Apply toDateString so that the it equally compare date only, evades including time/hour comparing 2025-11-26 13:21:15 +07:00
snipe d203cece0e Removed indicidual skins 2025-11-26 04:08:31 +00:00
snipe 9f6f0f04c7 Few more tweaks 2025-11-26 04:06:20 +00:00
iryadifarhan a4729a7de8 Fix implemented by using existing function from Depreciable trait, hence addressing the floor value 2025-11-26 10:17:21 +07:00
snipe a974c6d4cd Moved icon-med 2025-11-26 02:56:05 +00:00
snipe 34612acdcf Experiment: light/dark simplifcation 2025-11-26 02:49:40 +00:00
snipe 9e23117f9c Merge remote-tracking branch 'origin/develop' 2025-11-26 00:35:26 +00:00
snipe b3996f1970 In the sea, @uberbrady! (fixed missing semicolon) 2025-11-26 00:35:16 +00:00
snipe e143017432 Tinkering with CSS/JS dark more 2025-11-26 00:34:46 +00:00
Brady Wetherington c6c0a14ee0 Whoops, used PHP's equal signs instead of MySQL's :/ 2025-11-25 20:23:15 +00:00
Brady Wetherington 9b8768dbdd Tighten everything up, remove logging, fix last bits of functionality 2025-11-25 19:34:10 +00:00
snipe a3bfcc962d Merge remote-tracking branch 'origin/develop' 2025-11-25 18:50:23 +00:00
snipe ca4ed605a8 Merge pull request #18246 from Godmartinz/resize-label-fields-conditionally-L6009_A
Fixes [FD-52064] Avery `L6009_A` & `L4736_A` label field overflow with scaling
2025-11-25 18:37:06 +00:00
Godfrey M d3e6d7442f typo bonanza 2025-11-25 10:30:56 -08:00
Godfrey M b558bc5334 change variable" 2025-11-25 10:30:06 -08:00
Godfrey M 204d7b5be6 added scaling to L4736_A 2025-11-25 10:23:08 -08:00
Godfrey M 7dccfec332 adds notes 2025-11-25 10:12:27 -08:00
snipe 0b694bfd0b Merge remote-tracking branch 'origin/develop' 2025-11-25 18:02:23 +00:00
snipe dfb59d8a55 Added link to rudder2snipe repo 2025-11-25 18:01:29 +00:00
Brady Wetherington 3cd191210c Merge branch 'develop' into multi_create_fixes 2025-11-25 13:58:56 +00:00
snipe 56a44ad421 Merge remote-tracking branch 'origin/develop' 2025-11-25 13:38:54 +00:00
snipe a12ee3c0da Merge pull request #18245 from uberbrady/redirect_upgrader
Add new 'git remote' management to change Snipe-IT URLs
2025-11-25 13:38:31 +00:00
Brady Wetherington a657c479be Add new 'git remote' management to change Snipe-IT URL's 2025-11-25 13:17:56 +00:00
Godfrey M bb7dabc73b adds expired-licenses command parameter 2025-11-24 11:41:50 -08:00
Godfrey M ab82c5fd88 resizes label field box to size if needed 2025-11-24 11:04:23 -08:00
snipe 78cfb19f69 Merge remote-tracking branch 'origin/develop' 2025-11-24 17:40:26 +00:00
snipe f2334082ee Added tag color to location query 2025-11-24 17:40:13 +00:00
snipe 58a47cb52b Merge remote-tracking branch 'origin/develop'
# Conflicts:
#	config/version.php
2025-11-24 12:32:17 +00:00
snipe c7cb4674f5 Bumped version 2025-11-24 12:31:50 +00:00
snipe 523df21d83 Merge remote-tracking branch 'origin/develop' 2025-11-24 12:30:22 +00:00
snipe 82314076a9 Updated translations 2025-11-24 12:30:07 +00:00
snipe d04bf2e8f2 Merge remote-tracking branch 'origin/develop' 2025-11-24 11:37:44 +00:00
snipe a1c67b5154 Fixed user details toggle 2025-11-24 11:37:14 +00:00
snipe 3e343fe8b7 Merge pull request #18236 from grokability/dependabot/github_actions/develop/actions/checkout-6
Bump actions/checkout from 5 to 6
2025-11-24 08:33:46 +00:00
dependabot[bot] e288c942ee Bump actions/checkout from 5 to 6
Bumps [actions/checkout](https://github.com/actions/checkout) from 5 to 6.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v5...v6)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-24 08:04:19 +00:00
snipe 7a1ccb0d53 Nicer query 2025-11-23 14:09:55 +00:00
snipe 89656c7e65 Merge remote-tracking branch 'origin/develop' 2025-11-23 14:05:39 +00:00
snipe 7f76198139 Fixed RB-20501 - correctly return error response when license+seat don’t match
TypeError: App\Http\Transformers\LicenseSeatsTransformer::transformLicenseSeat(): Argument #1 ($seat) must be of type App\Models\LicenseSeat, bool given, called in /snipe-it/app/Http/Controllers/Api/LicenseSeatsController.php on line 92
2025-11-23 14:05:24 +00:00
snipe 5ff813f9b7 Merge pull request #18233 from grokability/develop
Merging from dev
2025-11-22 14:24:36 +00:00
snipe 69994e0c11 Merge pull request #18232 from grokability/check-for-valid-json-on-filter
Added filter form request to validate JSON
2025-11-22 14:22:33 +00:00
snipe aa959fbe92 Added filter form request to validate JSON 2025-11-22 14:03:58 +00:00
snipe 948b7cda15 Merge remote-tracking branch 'origin/develop' 2025-11-22 12:04:28 +00:00
snipe 644ef040d0 Merge pull request #18226 from Godmartinz/audit-notification-rb-19608
Fixes RB-19608 adds safe guards, adds Audit notification for google workspace, adds tests
2025-11-22 11:41:57 +00:00
snipe 33839d7244 Re-added the horizontal class 2025-11-22 11:14:59 +00:00
Godfrey M 48270cb9b4 url trim 2025-11-21 10:11:28 -08:00
Godfrey M cd42760b68 notes 2025-11-20 14:25:13 -08:00
Godfrey M 1116da389e add google chat to audit notification test 2025-11-20 14:24:03 -08:00
Godfrey M 24d7ae4a2f added google chat to audit notifications" 2025-11-20 14:22:08 -08:00
Godfrey M e598ef6e05 adds tests, webhook enable settings 2025-11-20 13:51:14 -08:00
snipe 6601e73069 Merge remote-tracking branch 'origin/develop' 2025-11-20 20:15:44 +00:00
snipe 7f2a80552b Fixed form layout for SAML 2025-11-20 20:15:34 +00:00
Godfrey M eceeb4aa3b return if there is no item for the audit notification 2025-11-20 10:56:43 -08:00
snipe b5c7f374f3 Merge remote-tracking branch 'origin/develop' 2025-11-20 13:44:19 +00:00
snipe 9d08e2d297 Clearer language 2025-11-20 13:44:09 +00:00
snipe f2303ae2dc Merge remote-tracking branch 'origin/develop' 2025-11-20 13:28:00 +00:00
snipe 4d44fd47c3 Merge pull request #18217 from Godmartinz/unaccepted-row-null-fix
Fixes FD-52005 Adds null safe operators to unacceptable items report
2025-11-20 13:27:24 +00:00
snipe 88635cb6c3 Merge pull request #18223 from grokability/#18114-fixed-declined-notification-added-x-header
Fixed #18114 - include declined item name, added app headers
2025-11-20 13:27:01 +00:00
snipe 1687fcc035 Small subject tweaks 2025-11-20 13:23:17 +00:00
snipe 39e7937458 Fixed #18114 - include declined item name, added app headers 2025-11-20 12:58:53 +00:00
Marcus Moore 54f065f42c Improve test 2025-11-19 17:11:39 -08:00
Marcus Moore 333ebb88b9 Enable sending to manager 2025-11-19 17:08:00 -08:00
Marcus Moore 53ff367473 Add failing tests 2025-11-19 16:31:48 -08:00
Marcus Moore 33a7de9448 Add custom fields to email 2025-11-19 13:31:30 -08:00
Godfrey M 60ff2970f0 safeguard null rows by filtering rows in query 2025-11-19 11:35:24 -08:00
Godfrey M 212cd026a3 add null safe operators to company and csv plain values 2025-11-18 12:36:07 -08:00
snipe cf47f8fea9 Merge pull request #18216 from Godmartinz/fix-license-patch-to-allow-update-of-other-fields
Fixed #18024 License Seat update/patch method
2025-11-18 20:29:18 +00:00
akemidx c797472bcc migration, and front end 2025-11-18 15:03:28 -05:00
Godfrey M 4b45ffd841 updating fields of checkout now works 2025-11-18 11:35:26 -08:00
snipe 69a57b77c9 Merge remote-tracking branch 'origin/develop' 2025-11-18 13:13:48 +00:00
snipe 5daba6034d Merge pull request #18213 from grokability/#18202-copy-to-clipboard-spaces
Fixed #18202 - copy to clipboard adding spaces in FF
2025-11-18 13:13:29 +00:00
snipe 4e5c19e932 Fixed #18202 - copy to clipboard adding spaces in FF 2025-11-18 13:11:40 +00:00
snipe 5eb73baf5e Removed duplicate formatter 2025-11-18 12:54:21 +00:00
snipe d819f31bdd Merge remote-tracking branch 'origin/develop' 2025-11-18 12:01:01 +00:00
snipe a97c453706 Small fixes for user profiles 2025-11-18 11:59:54 +00:00
snipe 5ee955a713 Merge remote-tracking branch 'origin/develop' 2025-11-18 11:40:23 +00:00
snipe 57224f7304 Fixed #18209 - translate asset filters 2025-11-18 11:40:15 +00:00
snipe 270d145466 Merge remote-tracking branch 'origin/develop' 2025-11-18 11:15:31 +00:00
snipe c564ee6093 Fixed #18211 - limit regex field to 191 characters 2025-11-18 11:15:15 +00:00
snipe caaa9ab23e Merge pull request #18122 from chruoss/master
Renamed L6009 -> L4736 and added correct L6009
2025-11-17 21:40:08 +00:00
snipe b6d2c6d28c Merge pull request #18208 from marcusmoore/fixes/null-array-filter
Fixed potential exception while filtering in users index endpoint
2025-11-17 21:39:08 +00:00
Marcus Moore c36c8968d3 Avoid passing null to array_filter in user controller 2025-11-17 10:26:29 -08:00
snipe b019af1851 Merge remote-tracking branch 'origin/develop' 2025-11-17 17:50:30 +00:00
snipe bcd32da2bc Remove loading user count since we don’t use it for depts 2025-11-17 17:34:43 +00:00
snipe 6f97a40372 Merge remote-tracking branch 'origin/develop'
# Conflicts:
#	public/css/build/app.css
#	public/css/build/app.css.map
#	public/css/build/overrides.css
#	public/css/build/overrides.css.map
#	public/css/dist/all.css
#	public/js/dist/all.js
#	public/js/dist/all.js.map
#	public/mix-manifest.json
2025-11-17 13:37:16 +00:00
snipe c56c7ddd03 Merge pull request #18201 from grokability/#18185-added-tag-color-to-companies
Added #18185 added tag color to companies
2025-11-17 13:33:17 +00:00
snipe 9a0dd604c9 Small layout tweaks 2025-11-17 13:21:01 +00:00
snipe a1dec176a1 Added mobile 2025-11-17 13:09:13 +00:00
snipe 67032d068d Removed space 2025-11-17 13:09:08 +00:00
snipe 401c83945d Updated gate check on presenters 2025-11-17 13:07:28 +00:00
snipe ed6d020edb Fixed permission name for locations 2025-11-17 12:31:18 +00:00
snipe 8eb5600b1e Fixed manufacturer link 2025-11-17 12:19:27 +00:00
snipe 9c4cd69106 Updated checkout blades 2025-11-17 12:15:38 +00:00
snipe 64cbe0c960 Use dept presenter 2025-11-17 12:15:25 +00:00
snipe be70b217d9 Updated presenters 2025-11-17 12:11:38 +00:00
snipe b4f5260dda Updated controllers to use tag_color 2025-11-17 11:36:11 +00:00
snipe 83e446f99c Updated formatters to use tag_color if given 2025-11-17 11:18:38 +00:00
snipe 767139cf0b Updated select2 to use tag_color if available 2025-11-17 11:18:21 +00:00
snipe e3ac60111f Added tag_color to factories 2025-11-17 11:18:02 +00:00
snipe c694c11724 Added presenter reference 2025-11-15 14:58:02 +00:00
snipe b50765a151 Added more to the views 2025-11-15 14:50:51 +00:00
snipe 590f77bdb4 Updated controllers and presenters 2025-11-14 17:58:27 +00:00
snipe 09575e5312 Added tag color to transformer 2025-11-14 15:58:07 +00:00
snipe 1693825dd0 Added translations 2025-11-14 15:57:57 +00:00
snipe 5a89056112 Added migration 2025-11-14 15:57:47 +00:00
snipe 2ee51bb282 Added tag color to transformer 2025-11-14 15:57:39 +00:00
snipe ea7cffc1a3 Made tag_color fillable 2025-11-14 15:57:27 +00:00
snipe c20d1b82ae Added tag color to controllers 2025-11-14 15:57:18 +00:00
snipe 607781382f Merge remote-tracking branch 'origin/develop' 2025-11-14 14:10:05 +00:00
snipe 4e8c1e853b Fixed markdown in upcoming audits email 2025-11-14 14:09:53 +00:00
snipe 2c6869501e Merge remote-tracking branch 'origin/develop' 2025-11-13 16:46:32 +00:00
snipe 4509e1d1dc Merge pull request #18195 from grokability/#18189-day-of-week
Fixed #18189 - added option to pick the day the week starts on
2025-11-13 16:46:15 +00:00
snipe 6b9d4941be Language tweaks 2025-11-13 16:35:40 +00:00
snipe 308cd6b91d Fixed #18189 - added option to pick the day the week starts on 2025-11-13 16:33:08 +00:00
snipe 23b54de8bd Merge remote-tracking branch 'origin/develop' 2025-11-13 15:37:42 +00:00
snipe bd742aec9c Merge pull request #18192 from Godmartinz/fix-requestable-asset-model-query
Fixes FD51910 requestable asset model available quantity count
2025-11-13 15:37:24 +00:00
snipe d2ab3071a6 Merge pull request #18193 from ubc-cpsc/bugfix/CVE-2025-64500
Fixes CVE-2025-64500: Incorrect parsing of PATH_INFO can lead to limited authorization
2025-11-13 09:52:50 +00:00
Joël Pittet 1dd4c161f0 Fixes CVE-2025-64500 2025-11-12 18:09:37 -08:00
Godfrey M 5e48dd45b2 remove unnecessary code 2025-11-12 16:27:04 -08:00
Godfrey M 601d6e7377 fixes requestable models query 2025-11-12 16:25:08 -08:00
snipe 3934b40282 Merge remote-tracking branch 'origin/develop' 2025-11-12 20:59:15 +00:00
snipe d43be271e6 Small tweaks to user group listings 2025-11-12 20:59:06 +00:00
snipe d3c9963051 Merge remote-tracking branch 'origin/develop' 2025-11-12 20:25:00 +00:00
snipe 92a3bdf4e9 Merge pull request #18191 from grokability/limit-adding-users-to-group-if-over-limit
Set a limit on number of users for group user loading
2025-11-12 20:24:24 +00:00
snipe fa2aafe41f Set a limit on number of users for group user loading 2025-11-12 20:19:52 +00:00
snipe bc5da2532c Merge remote-tracking branch 'origin/develop' 2025-11-12 16:02:01 +00:00
snipe a7be1acbd8 Merge pull request #18190 from grokability/improved-checkin-reminders
Improved overdue checkin alert
2025-11-12 16:01:32 +00:00
snipe fbe2ae03ff Use due_checkin_days setting instead of audit warning days 2025-11-12 15:52:16 +00:00
snipe d1a492f953 Improved overdue checkin alert 2025-11-12 15:38:47 +00:00
snipe ac6ea8bdcc Merge remote-tracking branch 'origin/develop' 2025-11-11 18:43:54 +00:00
snipe 352807c2d7 Fixed RB-20498 - Check that logo file exists on acceptance 2025-11-11 18:43:39 +00:00
Brady Wetherington 70d79c1890 Merge branch 'develop' into multi_create_fixes 2025-11-11 18:20:49 +00:00
Brady Wetherington fb1fde26ce Use a FormRequest to better handle multiple-asset-creation by GUI 2025-11-11 18:00:22 +00:00
snipe dc4cf8496a Merge remote-tracking branch 'origin/develop' 2025-11-11 14:01:54 +00:00
snipe 3aa046bfa7 Include trashed in other acceptance tasks 2025-11-11 14:00:48 +00:00
snipe ed79d21e1b Merge remote-tracking branch 'origin/develop' 2025-11-11 13:53:55 +00:00
snipe 9454ff677b Get deleted objects in unaccepted asset report 2025-11-11 13:53:43 +00:00
snipe 743d340bca Merge remote-tracking branch 'origin/develop' 2025-11-11 13:18:18 +00:00
snipe a5c7b8f609 Small unaccepted items report fixes 2025-11-11 13:17:56 +00:00
snipe 3d1398ab97 Merge remote-tracking branch 'origin/develop' 2025-11-11 12:29:44 +00:00
snipe 9365d1adc6 Merge pull request #18164 from Godmartinz/fix-accessories-redirect-previous-page
Fixes #18138 redirect to Previous Page from accessories edit screen
2025-11-11 12:29:23 +00:00
snipe ddd2a96ac5 Clearer message on no inventory to report 2025-11-11 11:52:05 +00:00
Godfrey M 6faf171007 update asset_deployable translation 2025-11-10 16:58:42 -08:00
snipe 7a680ce4ff Merge remote-tracking branch 'origin/develop' 2025-11-10 21:31:28 +00:00
snipe bf8ff51234 Make suppliers notes nullable by default 2025-11-10 21:31:14 +00:00
snipe 2ac4456f4e Merge remote-tracking branch 'origin/develop'
# Conflicts:
#	config/version.php
2025-11-10 20:58:15 +00:00
snipe 7891f52bd4 Merge pull request #18177 from grokability/add-files-to-suppliers
Fixed #12451: Add file upload support to suppliers, changed notes field to text (from varchar)
2025-11-10 20:57:21 +00:00
snipe baa4a8a461 Migration to change notes on suppliers to text from varchar 2025-11-10 20:53:21 +00:00
snipe 34daffcdf4 Added supplier file uploads 2025-11-10 20:47:45 +00:00
snipe 21baea27a8 Merge pull request #18141 from uberbrady/actiontype_enum_redux
Actiontype enum redux
2025-11-10 18:55:01 +00:00
snipe e1d3714445 Add @MarvelousAnything as a contributor 2025-11-10 14:15:10 +00:00
snipe 8b7e0a0d78 Add @mohammad-ahmadi1 as a contributor 2025-11-10 14:15:01 +00:00
snipe a1cc427c9c Add @smarsching as a contributor 2025-11-10 14:14:51 +00:00
snipe 391aa30da2 Bumped version 2025-11-10 13:49:26 +00:00
snipe 5dc675040d Bumped version 2025-11-10 13:48:59 +00:00
snipe 1258eb6533 Merge pull request #17913 from Godmartinz/add_types_to_unaccepted_asset_report
Fixed #15664 - Adds Accessories, Components, Consumables, and Licenses to Unaccepted Assets report
2025-11-10 12:24:13 +00:00
snipe f92f76b48a Merge remote-tracking branch 'origin/develop' 2025-11-07 13:42:04 +00:00
snipe 83abfc9ca6 Updated language files 2025-11-07 13:41:46 +00:00
snipe 61b6d4dc47 Merge remote-tracking branch 'origin/develop'
# Conflicts:
#	public/css/dist/skins/_all-skins.css
#	public/css/dist/skins/_all-skins.css.map
#	public/css/dist/skins/_all-skins.min.css
#	public/css/dist/skins/skin-black-dark.css
#	public/css/dist/skins/skin-black-dark.css.map
#	public/css/dist/skins/skin-black-dark.min.css
#	public/css/dist/skins/skin-blue-dark.css
#	public/css/dist/skins/skin-blue-dark.css.map
#	public/css/dist/skins/skin-blue-dark.min.css
#	public/css/dist/skins/skin-green-dark.css
#	public/css/dist/skins/skin-green-dark.css.map
#	public/css/dist/skins/skin-green-dark.min.css
#	public/css/dist/skins/skin-orange-dark.css
#	public/css/dist/skins/skin-orange-dark.css.map
#	public/css/dist/skins/skin-orange-dark.min.css
#	public/css/dist/skins/skin-purple-dark.css
#	public/css/dist/skins/skin-purple-dark.css.map
#	public/css/dist/skins/skin-purple-dark.min.css
#	public/css/dist/skins/skin-red-dark.css
#	public/css/dist/skins/skin-red-dark.css.map
#	public/css/dist/skins/skin-red-dark.min.css
#	public/css/dist/skins/skin-yellow-dark.css
#	public/css/dist/skins/skin-yellow-dark.css.map
#	public/css/dist/skins/skin-yellow-dark.min.css
#	public/js/dist/all.js.map
#	public/mix-manifest.json
2025-11-07 13:26:23 +00:00
snipe b42d6677cc Updated assets 2025-11-07 13:25:45 +00:00
snipe e8c644a600 Merge pull request #18165 from Godmartinz/border-color-create-new-button-fix
Fixes #18140 Changes border color of create New in Dark modes
2025-11-07 13:21:52 +00:00
snipe aa041e39eb Merge remote-tracking branch 'origin/develop'
# Conflicts:
#	public/js/dist/all.js
#	public/js/dist/all.js.map
#	public/mix-manifest.json
2025-11-06 21:12:42 +00:00
snipe 9f6a73b290 Merge pull request #18170 from grokability/fix-for-groups
Fixed #18157 - only partial information stored on group save if lower `max_input_vars` and/or `max_multipart_body_parts`
2025-11-06 21:09:42 +00:00
snipe 4d38bd1c62 Renamed variable 2025-11-06 21:07:52 +00:00
snipe 138262114d Added enctype back in 2025-11-06 21:04:55 +00:00
snipe 4073c9e638 Updated ordering 2025-11-06 21:01:20 +00:00
snipe f1b4877a98 A few small tweaks for new groups 2025-11-06 20:36:51 +00:00
snipe c39c92d0d7 Mash the ids into a string, fixed disclosure arrows 2025-11-06 20:12:25 +00:00
snipe 90fc48d959 Shim workaround to avoid max_input_vars and max_multipart_body_parts limits
max_input_vars = 2000
max_multipart_body_parts = 2048
2025-11-06 18:17:40 +00:00
Godfrey M 7f10a53105 dark blue 2025-11-05 12:47:10 -08:00
Godfrey M 7ae1b7a765 change border-color of create new 2025-11-05 12:40:29 -08:00
Godfrey M 22a43a0463 adds redirect option fix to accessories update method 2025-11-05 12:19:18 -08:00
Godfrey M 9348204987 remove spacing adjustment 2025-11-05 11:22:11 -08:00
Godfrey M 776c7caaa5 get warning/success status check to display 2025-11-05 11:19:05 -08:00
Godfrey M 2216b83ca7 get warning/success status check to display 2025-11-05 11:16:35 -08:00
snipe dea399398a Merge pull request #18161 from Godmartinz/TZE_24mm_E_adjustment
FD-50838: Fixes 24mm_E label sizing
2025-11-05 18:50:42 +00:00
Godfrey M 7434dd9458 final adjustments to 24mm_E label 2025-11-05 09:32:21 -08:00
snipe 723abca34a Merge remote-tracking branch 'origin/develop' 2025-11-05 15:28:40 +00:00
snipe 88e532dbc4 Fixed #18157 - reports permission glitch 2025-11-05 15:24:15 +00:00
snipe 32b28327e9 Merge remote-tracking branch 'origin/develop' 2025-11-04 21:42:05 +00:00
snipe c5ad451c39 Merge pull request #18156 from grokability/#18119-fix-double-helpering-on-dates-for-asset-acceptance
Fixed #18119 - double formatting for acceptance/decline date
2025-11-04 21:40:58 +00:00
snipe 44bfceeb0f Fixed #18119 - double formatting for acceptance/decline date 2025-11-04 21:36:27 +00:00
snipe c30131275f Merge remote-tracking branch 'origin/develop' 2025-11-04 21:23:14 +00:00
snipe 37eb63837b Merge pull request #18155 from grokability/#18021-fix-patch-api-with-unique-serial
Override unique_undeleted in the form request
2025-11-04 21:23:00 +00:00
snipe 4ada47e3b0 Use new setting variable since we already have it 2025-11-04 21:12:49 +00:00
snipe e5c55c9ab3 Fixed typo in the comment 2025-11-04 21:11:54 +00:00
snipe 547b3df7b4 Added more commentary on why we’re intefering with the request 2025-11-04 21:08:48 +00:00
snipe 4100f2600c Override unique_undeleted in the form request 2025-11-04 20:43:31 +00:00
snipe 56218dfcb2 Merge remote-tracking branch 'origin/develop' 2025-11-04 19:39:52 +00:00
snipe a9574e8fd6 Fixed #18133 - make the disabled toggle JS so it’s clearer 2025-11-04 19:39:35 +00:00
snipe 0d2a75db0a Merge remote-tracking branch 'origin/develop' 2025-11-04 19:04:25 +00:00
snipe c6269d6bbc Merge pull request #18151 from MarvelousAnything/fixes/test_webhook_content_type
Fix Content-Type Header not being set correctly for testWebhook
2025-11-04 19:03:53 +00:00
snipe eb9d066844 Merge remote-tracking branch 'origin/develop' 2025-11-04 18:56:15 +00:00
snipe c1204a5301 Merge pull request #18152 from grokability/#18020-rework-pr
Re-apply #18020, fixed #15107 (mostly) - added prefix and more options to 2D barcodes
2025-11-04 18:55:54 +00:00
snipe cc5ac65909 Re-apply #18020, fixed #15107 (mostly) - added prefix and more options to label 2D tags 2025-11-04 18:43:35 +00:00
Owen Voskuhl Hayes 9ddc48e3d7 fix the headers field for Guzzle request 2025-11-04 12:03:21 -05:00
snipe 029f3030a7 Merge remote-tracking branch 'origin/develop' 2025-11-04 16:06:35 +00:00
snipe 4a39d7c67a Use transformer for dept update responses 2025-11-04 16:06:19 +00:00
snipe b7a6706591 Merge pull request #18150 from grokability/#18148-dept-api-request-user-count
Fixed #18148 and #17451 - return int for user_count, fixed validation
2025-11-04 16:05:42 +00:00
snipe ddb031f091 Fixed #18148 and #17451 - return int for user_count, fixed validation 2025-11-04 15:56:23 +00:00
snipe e906d25776 Merge pull request #16973 from spencerrlongg/bug/sc-29245
Adds Form Request for Creating Departments
2025-11-04 15:09:38 +00:00
Brady Wetherington 27d7449459 Fix comment to properly reflext the current state of the database 2025-11-04 14:04:37 +00:00
snipe 8c59a8d405 Merged clipboard PR and generated prod assets 2025-11-03 17:39:41 +00:00
snipe 5d8905c997 Merge pull request #18143 from grokability/#18101-make-copy-to-clipboard-more-consistent
Fixed #18101: Make copy to clipboard alignment more consistent
2025-11-03 17:36:54 +00:00
snipe 517f4ce121 Fixed #18101: Make copy to clipboard alignment more consistent 2025-11-03 17:29:39 +00:00
snipe 6809bbd3d5 Merge pull request #18142 from grokability/#18136-copy-asset-name
Fixed #18136 - adds copy to clipbpard to asset name
2025-11-03 15:48:59 +00:00
snipe ab555d05e1 Fixed #18136 - adds copy to clipbpard to asset name 2025-11-03 15:47:32 +00:00
Brady Wetherington f7bc538fdf Intorduce ActionType enum and ensure all logactions are using it 2025-11-03 15:39:31 +00:00
Brady Wetherington 2de66ad5db Merge branch 'fix_incorrect_action_types' into actiontype_enum_redux 2025-11-03 15:31:14 +00:00
snipe 30e16b6213 Added int 2025-11-03 14:10:36 +00:00
snipe 92b50ca7ae Addresses #17994, #16925 2025-11-03 14:10:27 +00:00
snipe 9ee36df979 Merge pull request #18139 from grokability/#18082-add-company-to-seat-view
Fixed #18082: Added user company to checked out licenses
2025-11-03 12:51:29 +00:00
snipe 46d1c14e1a Added user company to checked out licenses 2025-11-03 12:45:33 +00:00
snipe 61895011fb Merge pull request #18131 from Godmartinz/fix-inventory-alert-notification-misfire
Adds a null check for items and threshold in inventory alert notification
2025-10-30 20:11:24 +00:00
Godfrey M 32d43034bd add a null check for items and threshold in inventory alert notification 2025-10-30 10:47:17 -07:00
snipe dfc6cdc127 Merge pull request #18128 from marcusmoore/fixes/17738-category-edit-form-fix
Fixed #17738 - accurately represent checkbox on category edit screen
2025-10-30 16:43:17 +00:00
snipe 16e93f9e18 Merge remote-tracking branch 'origin/master' into develop 2025-10-30 14:03:23 +00:00
snipe 7395b1a4eb Track permission changes 2025-10-30 13:40:24 +00:00
snipe fa98557225 Check that the permissions are really an array
This accounts for weird data in the permissions column
2025-10-30 13:34:50 +00:00
Marcus Moore 894606b62e Remove old tests 2025-10-29 13:16:03 -07:00
Marcus Moore f0a6a0026a Improve phrasing 2025-10-29 13:03:37 -07:00
Marcus Moore 070e0c93be Improve phrasing 2025-10-29 12:46:26 -07:00
Marcus Moore 2b27b733e5 Improve wording 2025-10-29 12:45:45 -07:00
Marcus Moore 0355c2b642 Dynamically adjust checkbox wording 2025-10-29 12:44:34 -07:00
Marcus Moore 3bad19fb56 Improve translation key name 2025-10-29 12:40:39 -07:00
Marcus Moore 0f84d51a48 Improve property name 2025-10-29 12:37:17 -07:00
Marcus Moore 2e8572d9c5 Use v3 syntax for computed properties 2025-10-29 12:35:30 -07:00
Marcus Moore df53d5d966 Skip computing sendCheckInEmail 2025-10-29 12:32:01 -07:00
Marcus Moore 23838959ca Never disable email checkbox 2025-10-29 12:27:12 -07:00
snipe 6dbb836a01 Merge pull request #18125 from grokability/form-row-again
Added form row component
2025-10-29 16:33:15 +00:00
snipe 3426afe5a8 Account for input styles 2025-10-29 16:15:22 +00:00
snipe 4bbf923eb6 Smaller default row for textarea 2025-10-29 16:11:56 +00:00
snipe e2c3480194 Apply form rows to manufacturers 2025-10-29 16:11:47 +00:00
snipe 73159076f6 Better handle input groups in js validator 2025-10-29 16:11:37 +00:00
snipe 90d040573d Added regular link icon 2025-10-29 16:07:16 +00:00
chruoss 6904ad02a2 Renamed L6009.php -> L4736.php
Renamed L6009_A.php -> L4736_A.php
Added correct L6009.php
Added correct L6009_A.php
2025-10-29 15:13:12 +01:00
snipe 155481a442 Merge pull request #18120 from grokability/small-form-fixes-settings
Fixed form label alignments in settings section
2025-10-29 11:16:59 +00:00
snipe 2f31bfc5fe Fixed some HTML labels in settings 2025-10-29 11:13:07 +00:00
snipe 8d0c88dc74 Merge pull request #18116 from akemidx/auditwarningthreshold
Fixed #17329 Audit Warning Threshold could be negative
2025-10-28 20:44:58 +00:00
snipe 07256fd833 Merge pull request #18044 from mohammad-ahmadi1/ISSUE-17004-fix-db-dump-ssl-issue
fix: update mysqldump options to use --ssl-mode=DISABLED for modern versions
2025-10-28 20:37:08 +00:00
snipe 776cd43a58 Change text string for item (versus asset) 2025-10-28 20:36:05 +00:00
akemidx acb5309aab min = 0 2025-10-28 16:32:21 -04:00
snipe c68f81db3c Merge pull request #18113 from Godmartinz/customfieldvalue-in-importer-fix
Adds #17433  `is_null` check to import handler for custom fields
2025-10-28 20:27:22 +00:00
snipe ac8e341b37 Merge pull request #18115 from marcusmoore/fixes/rb-20449-remove-admin-from-acceptance-email
Fixed #18112 - fix consumable and license acceptances
2025-10-28 20:26:59 +00:00
snipe 36122b3966 Added BACKUP_TIME_LIMIT to env example 2025-10-28 20:26:23 +00:00
akemidx 79bcf472f0 greater than or equal to zero 2025-10-28 16:13:33 -04:00
Marcus Moore 55d86da846 Remove references to administrator in acceptance notification 2025-10-28 13:07:00 -07:00
Godfrey M e4f8c1ba3f fix custom field value conditional check 2025-10-28 12:24:35 -07:00
Godfrey M c36236b7dc add is_null acheck to import hanlder for custom fields 2025-10-28 11:37:38 -07:00
snipe 63994333d0 Merge pull request #18111 from grokability/#16914-better-ldap-sync-phrasing
Fixed #16914: better ldap sync phrasing
2025-10-28 15:51:10 +00:00
snipe da4c7d8934 One more tweak 2025-10-28 15:47:56 +00:00
snipe 186721eca0 Added breadcrumbs 2025-10-28 15:42:59 +00:00
snipe f53d939c86 Better explanation for location sync, nicer look 2025-10-28 15:42:53 +00:00
snipe 23e6909708 Merge pull request #18110 from grokability/#18107-normalize-to-strings
Fixed #18107: normalize "to" strings
2025-10-28 15:03:16 +00:00
snipe cf421fe1c1 Added user-specific “to” 2025-10-28 15:02:15 +00:00
snipe 4d80e806e4 Use “-“ instead of “to” string, added placeholders 2025-10-28 15:02:03 +00:00
snipe 60a7b7f7ff Merge pull request #18109 from grokability/audit-improvements
Limit the upcoming audit email to 30 records, added optional --with-output
2025-10-28 14:31:55 +00:00
snipe 90263eab06 Added note for —with-option flag 2025-10-28 14:20:40 +00:00
snipe 9d8f251fc4 Limit the email to 30 records, added optional --with-output 2025-10-28 14:15:15 +00:00
snipe 2b4986571c Merge pull request #18108 from uberbrady/fix_ldap_tests
Fixed - LDAP test needs to be fixed to match new behavior
2025-10-28 12:49:11 +00:00
Brady Wetherington 890d13bd52 LDAP test needs to be fixed to match new behavior 2025-10-28 12:30:30 +00:00
snipe e698e71137 Merge pull request #18100 from marcusmoore/fixes/20318-license-seat-display-name
Added null safe operator in case of missing license
2025-10-28 09:29:25 +00:00
snipe d064a5530a Merge remote-tracking branch 'origin/master' into develop 2025-10-28 02:10:07 +00:00
snipe ab4fbf6c19 Merge pull request #18105 from grokability/ldap-fast-find-and-bind
Possible fix for 504 gateway timeout on unreachable LDAP server
2025-10-28 02:09:41 +00:00
snipe 728afa8361 Possible fix for 504 gateway timeout on unreachable LDAP server 2025-10-27 23:45:12 +00:00
snipe b77019c16e Merge remote-tracking branch 'origin/develop' 2025-10-27 19:32:28 +00:00
snipe 6703448b80 Merge pull request #18102 from marcusmoore/fixes/rb-20434-undefined-permissions-variable
Fixed issue when viewing user that does not have permissions set
2025-10-27 19:31:54 +00:00
Marcus Moore 776ba19a1f Define default permissions array 2025-10-27 12:28:55 -07:00
Marcus Moore 1f499e0d44 Add null safe operator in case of missing license 2025-10-27 10:47:55 -07:00
snipe 0a6eb61103 Merge remote-tracking branch 'origin/develop' 2025-10-27 13:20:18 +00:00
snipe 32a2eed5ec Fixed #18075 - make require_serial boolean in API transformer 2025-10-27 13:19:37 +00:00
snipe 40a70d39d0 Merge remote-tracking branch 'origin/develop' 2025-10-27 12:42:40 +00:00
snipe 5697054e98 Merge pull request #18099 from grokability/fix-cjk-for-acceptance-translated-strings
Fixed #18097 - check for CJK in field labels as well as content
2025-10-27 12:41:59 +00:00
snipe def5969e1c Fixed #18097 - check for CJK in field labels as well as content 2025-10-27 12:34:30 +00:00
snipe 78a418630d Merge remote-tracking branch 'origin/develop' 2025-10-27 12:21:25 +00:00
snipe 6d76e7b2d4 Added dumb pverride for reports :( 2025-10-27 12:21:16 +00:00
snipe f052c8b44c Merge pull request #18076 from uberbrady/move_traits_into_directories
Moved Traits into its directory and modify the FCO's to point to them
2025-10-27 11:43:31 +00:00
snipe 0e6991d56d Merge remote-tracking branch 'origin/develop' 2025-10-27 11:42:05 +00:00
snipe 06eab5f8a4 Merge pull request #18093 from Godmartinz/fix-warranty-part-of-expiring-asset-query
Fixed expiring warranties not being included in the expiring alerts notification
2025-10-27 11:41:51 +00:00
snipe 4a481e79c4 Merge remote-tracking branch 'origin/develop'
# Conflicts:
#	public/css/build/app.css
#	public/css/build/app.css.map
#	public/css/build/overrides.css
#	public/css/build/overrides.css.map
#	public/css/dist/all.css
#	public/js/dist/all.js
#	public/js/dist/all.js.map
#	public/mix-manifest.json
2025-10-27 11:14:05 +00:00
snipe ee4abbcbaa Updated dev assets 2025-10-27 11:12:13 +00:00
snipe dcc82d742f Fixed RB-20430 - 500 on LDAP if baseDN is not set 2025-10-27 11:09:24 +00:00
snipe 19cb2089d7 Merge pull request #18098 from grokability/dependabot/github_actions/develop/actions/upload-artifact-5
Bump actions/upload-artifact from 4 to 5
2025-10-27 10:47:59 +00:00
snipe 04923b06b0 Merge pull request #18078 from grokability/groups-ui-improvements
Groups UI improvements, ability to add users from the group edit screen
2025-10-27 10:47:11 +00:00
dependabot[bot] e16755d491 Bump actions/upload-artifact from 4 to 5
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4 to 5.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-27 08:19:26 +00:00
snipe 742b0769a4 Use translation string 2025-10-26 12:10:08 +00:00
snipe df68dca9dc Warn if user has individual permission overrides 2025-10-25 18:57:17 +01:00
snipe 4a5bf78d58 Merge branch 'develop' into groups-ui-improvements 2025-10-25 18:31:22 +01:00
snipe 7947237489 Double check the admin status when toggling the superadmin 2025-10-25 18:29:52 +01:00
snipe 1115205164 Normalize the JS 2025-10-25 18:20:22 +01:00
snipe d5d01136c4 Fixed js errors 2025-10-25 17:57:59 +01:00
snipe 3d47277614 Added cursor style 2025-10-25 17:57:44 +01:00
snipe b937bea04f Working, but there’s a bit of a jitter I need to fix 2025-10-25 15:59:47 +01:00
snipe fff14632bc Merge remote-tracking branch 'origin/develop'
# Conflicts:
#	public/css/build/app.css
#	public/css/build/app.css.map
#	public/css/build/overrides.css
#	public/css/build/overrides.css.map
#	public/css/dist/all.css
#	public/mix-manifest.json
2025-10-25 14:59:31 +01:00
snipe 9bdf1a620f Built assets 2025-10-25 14:58:27 +01:00
snipe 60099aa989 FAFOing on disclosure arrows being remembered 2025-10-25 14:56:01 +01:00
Marcus Moore 777872d41f Add notification group 2025-10-23 13:53:38 -07:00
Marcus Moore b85d1f184a Remove redundant test 2025-10-23 13:52:52 -07:00
Marcus Moore 02129eeddb Add try/catch 2025-10-23 13:51:53 -07:00
Marcus Moore 2612e0bbc8 Remove unused import 2025-10-23 12:43:12 -07:00
Marcus Moore 3670efacb4 Implement test 2025-10-23 12:39:36 -07:00
snipe f3976e5dd8 Merge pull request #18094 from Godmartinz/custom_field_color_fixx
Fixed fieldset colors on dark themes
2025-10-23 20:32:05 +01:00
Marcus Moore 476611b70f Remove redundant test 2025-10-23 12:27:20 -07:00
Godfrey M d7d6893304 fix Custom Fields section header font color 2025-10-23 12:05:13 -07:00
Godfrey M 99549ce805 rewrite query for expired warranties on assets, concat queries" 2025-10-23 11:01:51 -07:00
snipe 7eb15fe04d Merge pull request #18091 from uberbrady/fix_backup_durations
Moved import time limit inside class, added new backup time limit
2025-10-23 18:51:35 +01:00
Godfrey M e2019a13ab rewrite expired assets collection query 2025-10-23 10:49:58 -07:00
Brady Wetherington 4b7a06761a Moved import time limit inside class, added new backup time limit 2025-10-23 16:05:09 +01:00
Brady Wetherington b96e2fb52c Added migration to fix incorrect action_type in action_log 2025-10-23 15:40:54 +01:00
snipe 8f4a1f5801 Moved JS and styles into js and css files 2025-10-23 13:24:26 +01:00
snipe 891bec9cdb Styling fixes 2025-10-23 13:06:45 +01:00
Marcus Moore 60df2a17f8 Check context when sending to alert address 2025-10-22 16:41:36 -07:00
Marcus Moore f64f4795c1 Send request instead of firing event 2025-10-22 16:39:34 -07:00
Marcus Moore e036f756d5 Improve setup 2025-10-22 16:24:47 -07:00
Marcus Moore 92fd121cae Clean up 2025-10-22 16:12:35 -07:00
Marcus Moore 6307337892 Add scenario 2025-10-22 16:09:26 -07:00
Marcus Moore fc2e35cd32 Improve assertions 2025-10-22 14:23:07 -07:00
Marcus Moore 1811e061aa Populate scenario 2025-10-22 14:21:24 -07:00
Marcus Moore 59037f0d83 Move scenario 2025-10-22 14:18:45 -07:00
Marcus Moore 67edb7d396 Send to alert email 2025-10-22 14:17:32 -07:00
Marcus Moore 0da393f950 Populate scenario 2025-10-22 14:02:16 -07:00
Marcus Moore abd30e551e Clean up 2025-10-22 13:46:19 -07:00
Marcus Moore 6fb2889a92 Clean up 2025-10-22 13:45:00 -07:00
Marcus Moore 54125d27e0 Add scenario 2025-10-22 13:44:14 -07:00
Godfrey M c5252ea583 skip in one more spot 2025-10-22 12:23:14 -07:00
Godfrey M 82d553c180 skip test if sqllite 2025-10-22 12:19:13 -07:00
Godfrey M 71e34355b9 remove unwanted changes 2025-10-22 11:51:00 -07:00
Godfrey M 2bad8c72e4 fixes warranty part of expiring alerts query 2025-10-22 11:43:54 -07:00
Godfrey M 6134ca01ac Merge remote-tracking branch 'origin/develop' into develop 2025-10-22 10:48:05 -07:00
snipe be8193ebff Fixed inherit permissions 2025-10-22 15:00:04 +01:00
snipe 430ee46645 Small tweaks to inherit js 2025-10-22 13:41:59 +01:00
snipe 76fbbf29e8 Replace generate text with icon button 2025-10-22 13:37:45 +01:00
snipe 3108159d95 Jitter CSS tweaks 2025-10-22 12:37:39 +01:00
snipe f282a1ead7 Removed duplicated permissions js code 2025-10-22 12:03:55 +01:00
snipe 324bc4957d Merge pull request #18080 from Godmartinz/add-null-safe-operator-to-manager
Fixes admin alerts when a location doesnt have a manager
2025-10-22 11:56:59 +01:00
snipe c3b5c4dfae Moved the logic into the permissions partial, added translations 2025-10-21 22:10:09 +01:00
Godfrey M 4ab5d97e86 add nullsafe operator to location manager 2025-10-21 14:06:08 -07:00
Marcus Moore 41efda5f82 Add todos 2025-10-21 13:22:41 -07:00
Marcus Moore 2aee14a800 Only send mail to target if they have an email address 2025-10-21 13:14:50 -07:00
Marcus Moore be69da0a0d Add test case 2025-10-21 13:13:45 -07:00
Godfrey M b4696ef11e added alert_email to send conditional in listener 2025-10-21 13:11:21 -07:00
Marcus Moore 31a247b55b Add test case 2025-10-21 12:44:50 -07:00
Marcus Moore 33c156be16 Add failing test 2025-10-21 12:43:23 -07:00
Marcus Moore fd66a083d6 Fix assertion 2025-10-21 12:41:51 -07:00
snipe 294ffb72a4 Translations!!! 2025-10-21 20:36:09 +01:00
Marcus Moore d276f50fdf Fix assertion 2025-10-21 12:30:27 -07:00
Marcus Moore 4cb748e124 Improve test assertions 2025-10-21 12:29:25 -07:00
snipe 8c534d29d3 WTF tower?? 2025-10-21 19:36:28 +01:00
snipe d6cb262f9d Bumped version 2025-10-21 19:22:36 +01:00
snipe 5211e2ae20 Some UI refinement 2025-10-21 19:22:36 +01:00
snipe 90832fd1ad Checked check 2025-10-21 19:22:36 +01:00
snipe 889cbc69e1 Starter improvements - needs testing 2025-10-21 19:22:36 +01:00
snipe 15948370d4 Updated assets 2025-10-21 19:22:24 +01:00
snipe 63c5177b37 Merge pull request #18077 from Godmartinz/acceptance-notif-fixes-pt2
Adds admin to decline notification, fix asset and model name translations on asset notification
2025-10-21 18:31:28 +01:00
Godfrey M 4fbfaf6b9f add admin to decline, fix asset and model name translations 2025-10-21 10:22:34 -07:00
Brady Wetherington 9e68497b63 Moved Traits into directory and modify the users to point to them 2025-10-21 16:45:58 +01:00
snipe 0b9e13bf1e Merge remote-tracking branch 'origin/develop' 2025-10-21 12:58:06 +01:00
snipe 485d343e0f Merge pull request #18058 from uberbrady/ldap_fetch_dn_before_login_FIXED
FIXED - perform Ldap fetch for dn (Distinguished Name) before logging-in (fixed)
2025-10-21 12:56:31 +01:00
snipe 07f0e8a3be Merge pull request #18070 from Godmartinz/fix-admin-in-user-acceptance-notif
Fixes `admin` parameter acceptance notifications
2025-10-21 12:54:03 +01:00
snipe cc5afb1cd8 Merge pull request #18074 from grokability/smaller-audit-image-fix
Fixed audit images not displaying inline
2025-10-21 12:51:20 +01:00
snipe c69f1c0890 Smaller fix for missing audit images 2025-10-21 12:43:59 +01:00
Marcus Moore 503e6898c3 WIP 2025-10-20 16:53:36 -07:00
Marcus Moore f34056fe2e Scaffold some testing changes 2025-10-20 16:35:27 -07:00
Marcus Moore 8ff3575442 Add test for listener registration 2025-10-20 16:31:52 -07:00
Marcus Moore b5e3358bbd Add todos 2025-10-20 14:29:05 -07:00
Marcus Moore 047a1197be Add failing conditions 2025-10-20 14:18:11 -07:00
Godfrey M a8733bdedf remove nullsafe operator 2025-10-20 11:01:38 -07:00
Godfrey M 4222e4eb51 add nullsafe operator after admin 2025-10-20 11:00:59 -07:00
Godfrey M 5db4441f5c fix admin param in user accepted notification 2025-10-20 10:51:24 -07:00
snipe 2bcfe97211 Merge remote-tracking branch 'origin/develop' 2025-10-20 16:03:55 +01:00
snipe 4e74c97c84 Merge pull request #18066 from smarsching/issue-18065
Fixed #18065: Ensure that private_key_bits is always an int
2025-10-20 13:51:42 +01:00
Sebastian Marsching 71a46c9bd6 Fixed #18065: ensure that private_key_bits is always an int. 2025-10-18 18:39:43 +02:00
snipe 1a7c7fdebf Merge remote-tracking branch 'origin/develop'
# Conflicts:
#	config/version.php
#	public/css/build/app.css
#	public/css/build/app.css.map
#	public/css/build/overrides.css
#	public/css/build/overrides.css.map
#	public/css/dist/all.css
#	public/mix-manifest.json
2025-10-17 18:37:18 +01:00
snipe 65ff3d414a Bumped version 2025-10-17 18:34:54 +01:00
snipe 9fa38b70c8 Bumped version 2025-10-17 18:26:44 +01:00
snipe 470172f53f Re-run assets 2025-10-17 18:26:05 +01:00
snipe 81261d9e36 Put the session check back in - possible fix for #18004 2025-10-17 18:25:50 +01:00
snipe 3ab2e20119 Merge remote-tracking branch 'origin/develop' 2025-10-17 17:12:47 +01:00
snipe b773d576ea Updated cipher-base library 2025-10-17 17:12:31 +01:00
snipe 23feb64b5a Fixed potential XSS on locations 2025-10-17 17:07:57 +01:00
snipe 87fe9d9d3d Merge remote-tracking branch 'origin/develop'
# Conflicts:
#	public/css/build/app.css
#	public/css/build/app.css.map
#	public/css/build/overrides.css
#	public/css/build/overrides.css.map
#	public/css/dist/all.css
#	public/css/dist/skins/_all-skins.css
#	public/css/dist/skins/_all-skins.css.map
#	public/css/dist/skins/_all-skins.min.css
#	public/css/dist/skins/skin-contrast.css
#	public/css/dist/skins/skin-contrast.css.map
#	public/css/dist/skins/skin-contrast.min.css
#	public/mix-manifest.json
2025-10-17 17:00:10 +01:00
snipe b1ef3f51cb Merge pull request #18064 from grokability/new-fieldsets
Use new fieldset component
2025-10-17 16:58:17 +01:00
snipe e1b6488f8e Use new fieldset component 2025-10-17 16:55:36 +01:00
snipe a472dede2b Merge pull request #18063 from grokability/improved-fieldset-UI-and-better-help-test-for-ldap-mapping
New legend styles and additional help hints for LDAP
2025-10-17 15:45:05 +01:00
snipe 263cc3f7a1 New styles and additional help hints for LDAP 2025-10-17 15:29:24 +01:00
Marcus Moore 0e87843446 WIP: start testing 2025-10-16 14:30:48 -07:00
Brady Wetherington 598612d4bf Got tests to pass? Not very happy about it, tbh. 2025-10-16 19:11:49 +01:00
Brady Wetherington a07d83e583 Improved find-and-bind for complex LDAP directory structures 2025-10-16 19:11:49 +01:00
snipe d355812433 Updated assets 2025-10-16 19:06:22 +01:00
snipe 1afc14f5ab Merge remote-tracking branch 'origin/develop' 2025-10-16 19:04:30 +01:00
snipe 8947b667ae Fixed status labels skin for visited link buttons 2025-10-16 19:04:15 +01:00
snipe 6b41796d44 Fixed restore button on asset view page 2025-10-16 19:04:01 +01:00
snipe 6efe8eb55b Small fix for high contrast skin 2025-10-16 18:33:33 +01:00
snipe 4c8f8918e8 Merge remote-tracking branch 'origin/develop' 2025-10-16 15:49:59 +01:00
snipe 4cb5bb1855 Merge pull request #18057 from grokability/user-selector-fix
Fixed #18053 - user selector missing on page load without cookies
2025-10-16 15:49:39 +01:00
snipe eb007e025a Fixed #18053 - user selector missing on page load without cookies 2025-10-16 15:47:25 +01:00
snipe 18aefa9dee Merge remote-tracking branch 'origin/develop' 2025-10-16 15:10:29 +01:00
snipe 2ec540bd36 Updated language translations 2025-10-16 15:10:17 +01:00
snipe 1374ec408a Merge pull request #18019 from akemidx/emdashcharfix
Fixed #17363 - Emdash Character Encoding error
2025-10-16 15:07:31 +01:00
snipe 8f8fed2b79 Merge remote-tracking branch 'origin/develop' 2025-10-16 14:33:30 +01:00
snipe a1e6f01fe9 Fixed updating notes in bulk edit 2025-10-16 14:33:21 +01:00
snipe d7496f22e5 Merge remote-tracking branch 'origin/develop' 2025-10-16 14:04:44 +01:00
snipe 7de25a1c37 Merge pull request #18056 from grokability/add-expected-checkin-to-view-assets
Added expected_checkin to user’s View Assigned page
2025-10-16 14:04:31 +01:00
snipe 78da89340c Added expected_checkin to user’s View Assigned page 2025-10-16 13:59:59 +01:00
snipe 60606115fe Merge remote-tracking branch 'origin/develop' 2025-10-16 12:46:47 +01:00
snipe 57b49fc31c Check for array key for license report/formatters 2025-10-16 12:46:17 +01:00
snipe 6e90c8f6e6 Bumped hash for master 2025-10-16 11:28:37 +01:00
snipe a7ff2595a5 Bumped hash 2025-10-16 11:28:01 +01:00
snipe 1edea6abef Fixed RB-20347 - ambigious field in custom fields 2025-10-16 11:27:25 +01:00
snipe a3bd58bda6 Foundation 2025-10-16 11:17:48 +01:00
snipe 3339d1999f Merge remote-tracking branch 'origin/develop' 2025-10-16 11:12:56 +01:00
akemidx df3e8ec0f3 cleaning up notes 2025-10-15 17:35:25 -04:00
snipe 2dbec867d9 Merge pull request #18038 from boteroTradebe/develop
Fixed LDAP sync not syncing all user fields
2025-10-15 17:25:33 +01:00
Marcus Moore 4f1ff328ad Display eula if it is the same for all items 2025-10-14 17:10:57 -07:00
Marcus Moore ad5bbb9b37 Add divider 2025-10-14 16:34:18 -07:00
Marcus Moore c6e2fd2cab Add note 2025-10-14 16:33:37 -07:00
Marcus Moore d3a7e25b86 Move expected checking and only show once 2025-10-14 16:29:59 -07:00
Marcus Moore 062445a48e Add expected checkin 2025-10-14 16:25:32 -07:00
Marcus Moore 3c32be6181 Make introduction line dynamic 2025-10-14 16:22:19 -07:00
Marcus Moore e2f4a9bf9f Make subject dynamic 2025-10-14 16:20:01 -07:00
Marcus Moore 2db4c1b2e4 Add todo 2025-10-14 16:19:42 -07:00
Mohammad Ahmadi 3fc651d659 fix: update mysqldump options to use --ssl-mode=DISABLED for modern versions 2025-10-15 00:30:53 +02:00
Marcus Moore 6ed93f4a4f Add asset details 2025-10-14 14:02:21 -07:00
snipe b91d23023d Fix blade template syntax for accessory fields 2025-10-14 13:45:58 +01:00
boteroTradebe cc234c60b8 Update LdapSync.php to populate/update user fields
Added missing IF statements for address, city, state, and ZIP code. Previously, this information would be pulled via LDAP sync but would not update the user data due to the missing IF statements for these attributes.
2025-10-13 13:42:11 -05:00
snipe f1883c8004 Merge remote-tracking branch 'origin/develop' 2025-10-13 14:48:46 +01:00
snipe 79f6ddc8ee Merge pull request #18036 from grokability/better-messaging-for-bulk-deletes
Fixed #18034 - Shows success message on partial bulk delete success
2025-10-13 14:30:26 +01:00
snipe 89f439a18d Shows success message on partial bulk delete success 2025-10-13 14:25:05 +01:00
snipe 79eb5bfad9 Merge pull request #18035 from grokability/fixes-bulk-error-notification
Fixed bulk error display to be more consistent and correct HTML
2025-10-13 14:02:11 +01:00
snipe 3a36b7dafd Fixed display to be more consistent and correct HTML 2025-10-13 13:57:04 +01:00
snipe 1fe2fd9891 Merge pull request #17573 from spencerrlongg/feature/8709-bulk-deletion-of-asset-categories-suppliers-manufacturers
Fixed #8709 - Bulk Deletion of Categories, Suppliers, Manufa...
2025-10-13 13:20:13 +01:00
snipe 5fdb999ece Merge branch 'develop' into feature/8709-bulk-deletion-of-asset-categories-suppliers-manufacturers 2025-10-13 13:07:53 +01:00
snipe 5a38d9c2b6 Merge pull request #18029 from grokability/dependabot/github_actions/develop/github/codeql-action-4
Bump github/codeql-action from 3 to 4
2025-10-13 12:00:49 +01:00
snipe b1c7dc6cbb Merge remote-tracking branch 'origin/develop' 2025-10-13 11:32:19 +01:00
snipe b21b2ac41c Merge pull request #18032 from grokability/move-asset-private-files
Added migration to move asset model private uploads
2025-10-13 11:31:55 +01:00
snipe 1396c597ef Move files 2025-10-13 11:19:25 +01:00
dependabot[bot] 46af72ee4e Bump github/codeql-action from 3 to 4
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3 to 4.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/v3...v4)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-version: '4'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-13 08:19:22 +00:00
snipe e3e8f553c8 Merge remote-tracking branch 'origin/develop' 2025-10-09 18:39:13 +01:00
snipe 549928d3d1 Updated assets 2025-10-09 18:38:59 +01:00
snipe abefec9628 Upgraded jdpdf to ^3.0.3 2025-10-09 18:37:59 +01:00
snipe b483eeded4 Merge remote-tracking branch 'origin/develop' 2025-10-09 11:24:47 +01:00
snipe fab85dafa8 Added employee number and email to acceptance PDF 2025-10-09 11:24:16 +01:00
snipe 955faed919 Merge pull request #18018 from grokability/advanced-user-search
Normalize advanced search
2025-10-09 11:04:28 +01:00
snipe 3ff516180d Merge remote-tracking branch 'origin/develop' 2025-10-09 10:56:08 +01:00
snipe 0c8ca6d6b0 Search on status label name 2025-10-09 10:54:11 +01:00
snipe a5de077e04 Merge pull request #17975 from marcusmoore/replace-date-and-time-display-macros
Removed date and time display format form macros
2025-10-09 04:54:05 +01:00
akemidx c0a99d6b52 notes 2025-10-08 19:20:32 -04:00
Marcus Moore 9dcee71baf wip 2025-10-08 16:18:54 -07:00
Marcus Moore 9bdd0d1d1e Add admin name 2025-10-08 16:05:55 -07:00
Marcus Moore 13b51d8608 Make acceptance section dynamic 2025-10-08 15:46:36 -07:00
Marcus Moore 19969fee39 Update closing 2025-10-08 15:32:38 -07:00
Marcus Moore 28dc4bf52e Move template to correct directory 2025-10-08 14:13:04 -07:00
Marcus Moore 9a380ac3d4 Extract intro text 2025-10-08 14:12:35 -07:00
Marcus Moore 17a26b43f0 Naively send email 2025-10-08 14:01:07 -07:00
Marcus Moore a1e65cd897 Merge branch 'develop' into replace-date-and-time-display-macros
# Conflicts:
#	resources/macros/macros.php
2025-10-08 13:10:56 -07:00
snipe 5d65f1ffc5 Merge pull request #17976 from marcusmoore/17204-replace-form-digit-separator
Fixed #17204 - replace Form::digit_separator macro
2025-10-08 21:01:11 +01:00
snipe b7193a06fd Normalize advanced search 2025-10-08 20:51:35 +01:00
akemidx cba090f8eb notes 2025-10-08 15:50:00 -04:00
snipe 0d6baa1081 Merge remote-tracking branch 'origin/develop' 2025-10-08 15:29:02 +01:00
snipe bc60d796a3 Fixed RB-20329 - ambiguous clause on deleted_at 2025-10-08 15:28:48 +01:00
snipe 85a208526b Merge remote-tracking branch 'origin/develop' 2025-10-08 10:38:08 +01:00
snipe c3ac0a750d Added licenses checkin permission 2025-10-08 10:37:58 +01:00
snipe 0f111127a5 Merge pull request #18005 from marcusmoore/fixes/drop-index-migration
Fixed exception when rolling back migrations
2025-10-08 05:26:22 +01:00
snipe cd266a6bef Merge remote-tracking branch 'origin/develop' 2025-10-08 05:13:14 +01:00
snipe 0f4945621c Merge pull request #18009 from grokability/#18002-audit-image-location
Fixed #18002 - use correct path for audit images to determine validity
2025-10-08 05:12:54 +01:00
snipe 9a477f227b Fixed #18002 - use correct path for audit images to determine validity 2025-10-08 05:09:04 +01:00
akemidx 3c81257325 fix? 2025-10-07 20:23:46 -04:00
Marcus Moore 218fe9ebdc Allow Laravel to calculate index name 2025-10-07 16:04:12 -07:00
spencerrlongg 24bb45ab97 change translation 2025-10-07 13:26:08 -05:00
snipe 85f39de540 Merge pull request #18001 from grokability/#17670-fixes-advanced-search-on-assets
Fixed #17670 - advanced search on relationships not working
2025-10-07 17:35:05 +01:00
snipe 5cc3277e2d Merge pull request #18003 from uberbrady/fix_file_upload_base64
Fixed [FD-50921] - base64-encoded image files for asset creation was broken
2025-10-07 17:34:53 +01:00
snipe d5ef7f3204 Merge remote-tracking branch 'origin/develop' 2025-10-07 17:29:24 +01:00
snipe cb47d01f51 Fixed variable name in location print 2025-10-07 17:29:12 +01:00
Brady Wetherington ee499c1385 Fix base64-encoded image files for asset creation; add test 2025-10-07 16:00:16 +01:00
snipe 4ae4af5c10 Fixed #17670 - advanced search on relationships not working 2025-10-07 15:39:09 +01:00
snipe b0f5fe7e25 Merge remote-tracking branch 'origin/develop' 2025-10-07 14:32:33 +01:00
snipe fd32585efc Added notes back to audit email 2025-10-07 14:32:24 +01:00
snipe c675bb7252 Merge remote-tracking branch 'origin/develop' 2025-10-07 14:29:21 +01:00
snipe e65d11d71e Pulled incorrect button label 2025-10-07 14:29:10 +01:00
snipe c2680334f1 Clearer title on maintenances within asset context 2025-10-07 14:28:38 +01:00
snipe 1217a02ec1 Merge pull request #17992 from marcusmoore/17963-undelete-files-command
Added command to remove invalid "upload deleted" entries from the action log
2025-10-07 14:17:56 +01:00
snipe 143a091f45 Merge remote-tracking branch 'origin/develop' 2025-10-07 14:15:59 +01:00
snipe 49ecc93dbe Merge pull request #17999 from grokability/updated-audit-report
Improved upcoming audit email layout and cli feedback
2025-10-07 14:15:44 +01:00
snipe 1735fb6bed Improved audit email 2025-10-07 14:08:33 +01:00
snipe 8fefc11b4d Merge remote-tracking branch 'origin/develop' 2025-10-07 12:09:32 +01:00
snipe 1a3b22171c Merge pull request #17997 from grokability/#17924-add-url-to-maintenances
Fixed #17924 - added url to maintenances
2025-10-07 12:09:06 +01:00
snipe 5e773be260 Enhanced tests 2025-10-07 12:05:37 +01:00
snipe c317a1dc8b Added url to factory 2025-10-07 12:03:35 +01:00
snipe 9401ffc83c Added link to view 2025-10-07 11:55:32 +01:00
snipe 479a852446 Fixed #17924 - added url to maintenances 2025-10-07 11:49:10 +01:00
snipe 9188fb03f0 Merge remote-tracking branch 'origin/develop' 2025-10-07 10:49:59 +01:00
snipe 36bb91cbc3 Merge pull request #17995 from grokability/#17910-show-counts-on-mobile
Fixed #17910 - added counts to mobile view for assets
2025-10-07 10:47:41 +01:00
snipe 56e5ab8bc6 Fixed #17910 - added counts to mobile view for assets 2025-10-07 10:41:03 +01:00
snipe 607eb6ca03 Merge remote-tracking branch 'origin/develop' 2025-10-07 09:42:59 +01:00
snipe ad745cc84b Fixed #17911 - updated language string 2025-10-07 09:42:30 +01:00
Marcus Moore 5a13d5ea6f Update command description 2025-10-06 15:23:55 -07:00
Marcus Moore 0b065eb7fe Improve command 2025-10-06 15:20:43 -07:00
Marcus Moore e2c0e4bc66 WIP build out command 2025-10-06 15:14:15 -07:00
Marcus Moore 655b0e6778 Scaffold command 2025-10-06 14:59:25 -07:00
Marcus Moore cd785c9fc3 Remove name_display_format macro that was accidentally re-added 2025-10-06 13:06:52 -07:00
Marcus Moore 23885f5166 Merge branch 'develop' into 17204-replace-form-digit-separator
# Conflicts:
#	resources/macros/macros.php
2025-10-06 13:04:34 -07:00
snipe 44ef39e419 Merge remote-tracking branch 'origin/develop' 2025-10-06 20:53:14 +01:00
snipe e05a0ef565 Merge pull request #17967 from marcusmoore/fixes/17963-delete-file-via-api-fix
Fixed #17963 - over eager deletion of asset files via api
2025-10-06 20:52:57 +01:00
snipe 0ea9c0647f Merge remote-tracking branch 'origin/develop'
# Conflicts:
#	config/version.php
2025-10-06 15:14:56 +01:00
snipe 00b9ba2b75 Merge pull request #17989 from grokability/fixes-tcpdf-png-handling
Fixed #17940 - pngs not showing in acceptance PDFs
2025-10-06 15:13:58 +01:00
snipe f1e3bc9531 Fixed #17940 - use base64encoding on images in acceptance PDF 2025-10-06 15:02:53 +01:00
snipe 7360e093b2 Bumped version 2025-10-06 10:41:15 +01:00
snipe 5f639bc24f Updated translations 2025-10-06 10:39:04 +01:00
snipe 884d2a9552 Merge remote-tracking branch 'origin/develop' 2025-10-04 14:09:54 +01:00
snipe fd8a8b29b1 Added inactive and expired to licenses table listing 2025-10-04 13:18:51 +01:00
snipe 4e1ef40c05 Updated active button colors 2025-10-04 13:16:46 +01:00
snipe 00af0ddff5 Merge pull request #17982 from grokability/expiring-alerts-improvements
Small expiring alerts improvements
2025-10-04 01:11:03 +01:00
snipe 2467e823a5 Reordered buttons 2025-10-04 01:06:56 +01:00
snipe 224642fcb5 Removed funky search cookie 2025-10-04 01:04:25 +01:00
snipe 59518ca2c5 Small style updates 2025-10-04 00:31:17 +01:00
snipe dfb7c73069 Added column search to users 2025-10-04 00:31:06 +01:00
snipe 70eccceab3 Updated button class for add new 2025-10-04 00:18:09 +01:00
snipe 3f69b70367 Moved btn methods closer to the BS table 2025-10-03 23:54:38 +01:00
snipe 94a0a2f8be Fixed dropdown toggle 2025-10-03 23:50:40 +01:00
snipe 7e23596ab8 Translate export to CSV 2025-10-03 23:09:33 +01:00
snipe 3c58a5dd3d Fixed column selector 2025-10-03 20:36:52 +01:00
snipe 51789ccbf3 Got tooltips to work on built-in buttons! 2025-10-03 18:54:05 +01:00
snipe 6ae4a9aa1a Added tooltips to custom btn methods 2025-10-03 17:14:47 +01:00
snipe 0aebd669b2 Fixed accessor for console view 2025-10-03 16:25:31 +01:00
snipe 2a92c4899d Don’t use parenthases unless a manufacturer is given 2025-10-03 16:19:00 +01:00
snipe 530089895a Added category and manufacturer to expiring license report 2025-10-03 16:13:00 +01:00
snipe ae8289fc8c Eager load cagory and manufacturer 2025-10-03 16:12:40 +01:00
snipe 90f4dfb48b Use regular blade syntax 2025-10-03 16:03:03 +01:00
snipe ec2eddf538 Add order scope to query 2025-10-03 16:02:07 +01:00
snipe 44d31d4b39 Moved date fields closer together 2025-10-03 16:01:49 +01:00
snipe 4934e7666c Added text string 2025-10-03 16:01:38 +01:00
snipe 35bf0d020e Added breadcrumb to expiring 2025-10-03 16:01:27 +01:00
snipe 4934dc85ac Reverse expires diff direction 2025-10-03 16:00:58 +01:00
snipe 5ceb50d7e5 Added expiring licenses to API and UI 2025-10-03 16:00:23 +01:00
snipe ae7ccbb7bd Fixed icons 2025-10-03 15:59:55 +01:00
snipe 1cd9fc47aa Use diff_in_days instead 2025-10-03 15:03:14 +01:00
snipe 013c50607a Put old setter back because reasons? 2025-10-03 14:46:32 +01:00
snipe d7bf9b7f2e Added more accessors and mutators 2025-10-03 14:38:37 +01:00
snipe 4702fdddc6 Nicer output in console command 2025-10-03 14:38:08 +01:00
snipe dd06a530c0 Added Terminates string 2025-10-03 14:37:43 +01:00
snipe c36125dc95 Added CSS to the message blade 2025-10-03 14:37:25 +01:00
snipe ae43f93d0a Improved expiring assets and licenses email 2025-10-03 14:37:12 +01:00
snipe 8918b17f77 Updated test 2025-10-03 14:36:16 +01:00
snipe dfd05e8b5b Refactored scope 2025-10-03 14:13:58 +01:00
snipe 3daa6dd051 Added accessors for termination date 2025-10-03 14:13:28 +01:00
snipe 14e43192e6 Merge remote-tracking branch 'origin/develop' 2025-10-03 09:17:35 +01:00
snipe 6cf88b1792 Merge pull request #17978 from marcusmoore/17205-replace-form-email-format
Fixed #17205 - replace Form:: email_format
2025-10-03 09:15:49 +01:00
snipe 6b9839367f Merge pull request #17973 from marcusmoore/fixes/17972-update-last-checkin-upon-edit
Fixed #17972 - set last_checkin if asset is checked in during an update
2025-10-03 09:15:35 +01:00
snipe 34fcf5d616 Merge pull request #17974 from marcusmoore/replace-form-checkbox
Replaced Form::checkbox with raw html
2025-10-03 09:15:12 +01:00
snipe 1cf3c74e67 Merge pull request #17979 from akemidx/term-date-on-license-report
Fixed #17977: Term date on license report
2025-10-03 09:14:07 +01:00
snipe 16b57b931e Merge pull request #17980 from marcusmoore/17206-replace-name-display-format-macro
Fixed #17206 - replace Form::name_display_format macro
2025-10-03 09:13:23 +01:00
Marcus Moore 3457e7d617 Remove Form::name_display_format macro 2025-10-02 16:08:37 -07:00
Marcus Moore edbe8001e6 Replace Form::name_display_format 2025-10-02 16:08:16 -07:00
akemidx 71644c1cbe added term date 2025-10-02 19:00:18 -04:00
Marcus Moore 03fd8df8bd Remove Form::email_format 2025-10-02 15:52:09 -07:00
Marcus Moore 71d622b6dd Replace Form:: email_format 2025-10-02 15:51:41 -07:00
Marcus Moore 689d5a2d58 Remove digit_separator form macro 2025-10-02 15:39:28 -07:00
Marcus Moore b2e9eb866c Replace digit_separator form macro
Fixes #17204
2025-10-02 15:38:59 -07:00
Marcus Moore c8b7782d1d Remove date_display_format and time_display_format macros 2025-10-02 15:27:20 -07:00
Marcus Moore 673f936689 Replace Form:: time_display_format on localization screen 2025-10-02 15:26:31 -07:00
Marcus Moore 2ca0d39e51 Replace Form:: date_display_format on localization screen 2025-10-02 15:21:51 -07:00
Marcus Moore 908c8bc397 Remove Form::checkbox on user create screen 2025-10-02 14:33:48 -07:00
Marcus Moore 93082e1e87 Set last_checkin if asset checked in during update 2025-10-02 13:56:42 -07:00
Marcus Moore ef0a6aa25e Add failing condition 2025-10-02 13:53:19 -07:00
spencerrlongg b9f4dc1e9d translation 2025-10-02 12:00:52 -05:00
snipe 90afec864e Fixed info text help block class 2025-10-02 08:07:54 +01:00
akemidx b082fb6692 investigation and notes 2025-10-01 18:21:25 -04:00
Marcus Moore 4bbbd786cd Constrain to "uploaded" action_type 2025-10-01 14:37:36 -07:00
snipe 0c1b2a54e7 Merge remote-tracking branch 'origin/develop' 2025-10-01 22:27:06 +01:00
snipe a6ded20ede Merge pull request #17966 from uberbrady/fix_filetype_validation
Cleanups and improvements to output on snipeit:restore command
2025-10-01 22:26:49 +01:00
Brady Wetherington 9b96314371 Cleanups and improvements to output on snipeit:restore command 2025-10-01 22:07:45 +01:00
snipe 85e16ecd51 Merge remote-tracking branch 'origin/develop' 2025-10-01 21:34:50 +01:00
snipe 2ac36cdfd6 Fixed alignment on create-new dropdown in header 2025-10-01 21:32:28 +01:00
snipe e40c532354 Merge remote-tracking branch 'origin/develop' 2025-10-01 12:13:08 +01:00
snipe 9404dff79c Added note about markdown 2025-10-01 12:12:56 +01:00
snipe 55b324d8d6 Merge remote-tracking branch 'origin/develop' 2025-10-01 11:49:15 +01:00
snipe 3ed2e2d79e Added link to docs for common issues in upgrading script 2025-10-01 11:49:05 +01:00
snipe 3152d9eadd Merge remote-tracking branch 'origin/develop' 2025-10-01 11:24:33 +01:00
snipe f1266ab5d6 Check if telescope tables already exist 2025-10-01 11:24:20 +01:00
snipe e70f1408aa Merge remote-tracking branch 'origin/develop' 2025-10-01 11:19:35 +01:00
snipe 664e3984e3 Merge pull request #17877 from grokability/label-cjk-fix
Fixed CJK on labels
2025-10-01 11:16:55 +01:00
snipe 665c13e238 Merge pull request #17957 from marcusmoore/fixes/17956-handle-force-deleted-model-in-asset-edit
Fixed #17956 - handle accessing deleted model during asset update
2025-10-01 11:10:11 +01:00
snipe 8a667b20c2 Merge branch 'develop' into fixes/17956-handle-force-deleted-model-in-asset-edit 2025-10-01 11:09:40 +01:00
snipe 3693241292 Merge pull request #17959 from marcusmoore/fixes/17958-handle-force-deleted-model-in-bulk-edit
Fixes #17958 - handle accessing deleted model during bulk asset update
2025-10-01 11:06:32 +01:00
Marcus Moore 3c42acebf0 Scaffold new listener 2025-09-30 15:11:12 -07:00
akemidx a384245368 investigation and notes 2025-09-30 16:33:33 -04:00
Marcus Moore 3327b2ce3c Add assertions 2025-09-30 13:03:24 -07:00
Godfrey M 8c56aa9575 changed the wrong language file 2025-09-30 12:42:46 -07:00
Godfrey M d528126f15 right hand table loading, need styling and translations 2025-09-30 12:31:44 -07:00
Marcus Moore 3c3acff79b Fix more attempted access of deleted model 2025-09-30 12:22:26 -07:00
Marcus Moore e15de83a95 Fix attempted access of deleted model 2025-09-30 12:19:12 -07:00
Marcus Moore 636fccbf97 Add failing test 2025-09-30 12:18:51 -07:00
Marcus Moore 7d8ed399a8 Fix accessing force deleted model 2025-09-30 11:27:56 -07:00
Marcus Moore 272385db6c Add failing test 2025-09-30 11:27:38 -07:00
akemidx 64d0e3928c clean erroneous added space 2025-09-30 13:11:38 -04:00
snipe 9334b8df47 Improve Bug Report template details
Updated version placeholders and descriptions for clarity.
2025-09-30 11:57:06 +01:00
snipe e0bc2ae86f Add PHP and Composer version fields to bug report 2025-09-30 11:45:55 +01:00
snipe 2f019bb033 Merge remote-tracking branch 'origin/develop' 2025-09-30 11:40:34 +01:00
snipe 291be64aa0 Refined remnaining asset count for archived 2025-09-30 11:40:21 +01:00
snipe 75c83236ff Merge remote-tracking branch 'origin/develop' 2025-09-30 11:20:44 +01:00
snipe 72be171917 Added archived to model view 2025-09-30 11:20:33 +01:00
snipe 4ddee4ac40 Merge remote-tracking branch 'origin/develop' 2025-09-30 10:55:00 +01:00
snipe 43cd0d7eb3 Use min_amt formatter 2025-09-30 10:54:43 +01:00
snipe 6b693e2644 Merge remote-tracking branch 'origin/develop' 2025-09-30 10:51:35 +01:00
snipe eeea69d8f2 Make available_assets_count sortable 2025-09-30 10:51:25 +01:00
snipe 72cf921a4b Merge remote-tracking branch 'origin/develop' 2025-09-30 10:46:12 +01:00
spencerrlongg 32882f81e7 replace box-default 2025-09-29 15:52:43 -05:00
spencerrlongg 36f5099932 added new counts and throw new exceptions and catch them 2025-09-29 15:16:41 -05:00
snipe bec88a0441 Merge pull request #17950 from grokability/#17932-fix-remaining-counts-in-model-listing
Fixed #17932 - incorrect number for remaining assets in asset models
2025-09-29 20:55:52 +01:00
snipe 6e67e3a8a0 Fixed #17932 - incorrect number for remaining assets in asset models 2025-09-29 20:55:06 +01:00
snipe 4dc3c30354 Merge remote-tracking branch 'origin/develop' 2025-09-29 19:04:42 +01:00
snipe 947ccf911d Merge pull request #17868 from Godmartinz/adds-Tze_24mm-variant
Adds Brother Label TZe_24mm_E variant
2025-09-29 15:48:10 +01:00
snipe 06f313febe Merge pull request #17869 from marcusmoore/api-components-assigned-to-asset
Added api endpoint for retrieving components checked out to asset
2025-09-29 15:47:53 +01:00
snipe b387136b8f Merge pull request #17883 from akemidx/purchasepricereportfilter
FEATURE: Purchase Cost Report Filter
2025-09-29 15:37:39 +01:00
snipe 31614c5da1 Merge pull request #17888 from marcusmoore/fixes/bulk-checkout-extra-requests
Fixed excessive api requests on bulk checkout page
2025-09-29 14:46:19 +01:00
snipe 146b5a3085 Merge pull request #17933 from marcusmoore/17914-bulk-checkout-error-ux
Fixed #17914 - Improve UX around attempted bulk checkout of assigned assets
2025-09-29 14:44:20 +01:00
Brady Wetherington fc4ac029b1 Added the actual files to make that previous statement true 2025-09-29 12:56:59 +01:00
Brady Wetherington 73f4afa05e Got groups support working in Entra ID 2025-09-29 12:56:23 +01:00
snipe 397cc1754a Merge remote-tracking branch 'origin/develop' 2025-09-29 11:05:45 +01:00
snipe ff1297cac5 Merge pull request #17945 from kingspride/develop
with --no-interactive, make composer non-interactive aswell
2025-09-29 11:04:30 +01:00
William Kirstaedter 8af3cf4056 with --no-interactive, make composer non-interactive aswell 2025-09-29 11:39:23 +02:00
Marcus Moore 7017a0cae1 WIP: introduce event 2025-09-25 16:23:43 -07:00
Marcus Moore a40e4d7d04 Begin experimenting with context 2025-09-25 15:43:04 -07:00
Marcus Moore 9e3b56f4bc Add failing test 2025-09-25 15:41:37 -07:00
Marcus Moore 9edec9e212 Extract translation 2025-09-25 11:09:27 -07:00
Godfrey Martinez ca44ee94a4 Merge pull request #28 from Godmartinz/add_types_to_command
update the snipeit reminder command
2025-09-25 10:44:53 -07:00
Godfrey M 3ae7a77032 update the snipeit reminder command 2025-09-25 10:43:41 -07:00
snipe be4362c59a Merge pull request #17925 from Godmartinz/fix-factory-auto-gen-action-logs
Adds option to disable auto generating action log from acceptance factory
2025-09-25 11:10:34 +01:00
Marcus Moore 8461b147de Link to removed assets 2025-09-24 16:38:48 -07:00
Godfrey M 881c789a75 add usuage of withoutactionlog 2025-09-24 15:45:01 -07:00
Godfrey M fea0189479 Merge branch 'fix-factory-auto-gen-action-logs' into add_types_to_unaccepted_asset_report 2025-09-24 15:43:27 -07:00
Godfrey M 82bdd43168 renamed variable 2025-09-24 15:38:30 -07:00
Godfrey M 533d82d4d8 remove unnecessary changes 2025-09-24 15:34:02 -07:00
Godfrey M 6f990dd1de adds an option to disable Auto assigned an actionlogs in factories 2025-09-24 15:27:16 -07:00
Marcus Moore be848598e3 Keep removed asset out of scope of partial 2025-09-24 14:32:25 -07:00
Godfrey M 6ca0e19819 uncomment code 2025-09-24 13:50:41 -07:00
Godfrey M bf6964ee62 tests passing, CheckoutAcceptance Factory needs eyes though 2025-09-24 13:41:04 -07:00
Godfrey M 9ac2ea2a52 fix test to check all mailable types for reminders 2025-09-24 13:22:33 -07:00
Brady Wetherington ef1a42fff2 Progress! Got addresses updating correctly 2025-09-24 15:57:39 +01:00
snipe 62a58fa23b Merge remote-tracking branch 'origin/develop' 2025-09-24 14:52:55 +01:00
snipe 7d0742054f Merge pull request #17923 from uberbrady/fix_checkout_type_selector2
Fixed #17919 - correct the behavior of the checkout type selector
2025-09-24 14:52:05 +01:00
Brady Wetherington dcf7e83507 Remove extra pointless class="active" 2025-09-24 14:47:13 +01:00
Brady Wetherington 407c2bf0c8 Switch to ?: from ?? to better handle empty strings 2025-09-24 14:45:43 +01:00
Brady Wetherington c46227ee94 Fix to the checkout-selector issue 2025-09-24 14:28:49 +01:00
Godfrey M 0ce20c1edd fix send reminder method to handle other types 2025-09-23 18:40:03 -07:00
Godfrey M d31d99b40f remove else and blank lines 2025-09-23 17:00:08 -07:00
Godfrey M 3527c357cc whoops 2025-09-23 16:57:06 -07:00
Godfrey M 2b5254e68f fixed, eager loading, variable names, clean up 2025-09-23 16:55:10 -07:00
Godfrey M 6f3323c195 fix data in view model 2025-09-23 12:50:26 -07:00
Brady Wetherington 760d089073 Azure-specific Manager is handled now 2025-09-23 20:40:21 +01:00
Godfrey M 5af85bfe7d further clean up 2025-09-23 12:10:50 -07:00
Godfrey M 20adad3c6b fix company name link, clean up query 2025-09-23 12:09:21 -07:00
Godfrey M ca8eae4064 updated the csv values to be plain 2025-09-23 11:40:29 -07:00
Godfrey M 7077faaf4a updated the postassetAcceptanceReport query and rows 2025-09-23 11:08:37 -07:00
snipe d8171eb056 Remove duplicate PUT route for hardware assets
Removed duplicate route definition for updating hardware assets.
2025-09-23 13:24:56 +01:00
snipe c67ca500db Clarify descriptions for multiple company support 2025-09-23 13:06:33 +01:00
snipe 0081e7b731 Revise demo reproduction question in Bug Report template 2025-09-23 13:05:26 +01:00
snipe 4e6483d3ed Enhance Bug Report template with required validations
Make fields required
2025-09-23 13:04:19 +01:00
snipe 0ddf0002c4 Change dropdown options to single quotes in Bug Report
Fixed quotes
2025-09-23 13:02:36 +01:00
snipe ad0daf33b9 Add dropdown options to Bug Report template
Added additional fields to bug report template related to FMCS
2025-09-23 13:01:37 +01:00
Marcus Moore c614c44d4c Remove assigned assets from bulk checkout 2025-09-22 16:04:29 -07:00
Godfrey M ab30df10ff remove sorter from blade 2025-09-22 12:20:32 -07:00
Godfrey M a6cb75c481 remove sorter, didnt work 2025-09-22 12:19:34 -07:00
snipe 8a46579588 Merge pull request #17887 from marcusmoore/fixes/17404-prevent-bulk-checkout-across-companies
Fixed #17404 - Disallow bulk checkout of assets across companies
2025-09-22 18:57:43 +01:00
Marcus Moore fb9fb9c097 Merge branch 'develop' into fixes/17404-prevent-bulk-checkout-across-companies
# Conflicts:
#	app/Http/Controllers/Assets/BulkAssetsController.php
#	tests/Feature/Checkouts/Ui/BulkAssetCheckoutTest.php
2025-09-22 10:52:04 -07:00
snipe d9399534ce Merge pull request #17909 from spacjalex/17908-fix-typo
Fix #17908: typo in storage location of backups
2025-09-22 14:28:05 +01:00
spacjalex 17a749bbed fix typo 2025-09-22 15:23:14 +02:00
snipe 0b60c6a939 Merge remote-tracking branch 'origin/develop'
# Conflicts:
#	public/css/build/app.css
#	public/css/build/app.css.map
#	public/css/build/overrides.css
#	public/css/build/overrides.css.map
#	public/css/dist/all.css
#	public/mix-manifest.json
2025-09-19 12:44:49 +01:00
snipe 25ce63f00b Merge pull request #17904 from grokability/#17804-searchable-columns
Fixed #17804 - make columns searchable in column picker
2025-09-19 12:43:46 +01:00
snipe 2462bc05b3 Added column search to additional views 2025-09-19 12:41:30 +01:00
snipe c3748da0b1 Fixed #17804 - make columns searchable in column picker 2025-09-19 12:16:56 +01:00
snipe 90c242a441 Merge pull request #17897 from marcusmoore/fixes/17896-prevent-bulk-checkout-of-checked-out-assets
Fixed #17896 - Prevent assigned assets from being bulk checked out
2025-09-19 07:03:43 +01:00
Marcus Moore 52239a88b5 Improve test name 2025-09-18 17:27:17 -07:00
Marcus Moore 7a3596c86d Test against other types 2025-09-18 17:21:27 -07:00
Marcus Moore ac8a9e38f0 Implement fix 2025-09-18 17:18:27 -07:00
Marcus Moore 5c08f3a27e Add failing test 2025-09-18 17:14:33 -07:00
Marcus Moore 2dc11a84bf Fix test name 2025-09-18 17:05:08 -07:00
Marcus Moore 2960ea15f5 Consolidate to data provider 2025-09-18 14:29:12 -07:00
Marcus Moore 17aab4c490 Implement test 2025-09-18 14:20:05 -07:00
Marcus Moore 59d0f0d292 Re-order assertions 2025-09-18 14:05:13 -07:00
Marcus Moore 27d13a113a Implement test 2025-09-18 14:01:44 -07:00
Marcus Moore c58e999fbb Scaffold tests 2025-09-18 13:11:06 -07:00
Marcus Moore a02a96d5c4 Extract translation string 2025-09-18 12:57:56 -07:00
Marcus Moore 47e9e4704d Improve error message 2025-09-18 12:56:36 -07:00
Marcus Moore b2ad9d404e Fix re-population of assets 2025-09-18 12:38:11 -07:00
Godfrey M 51ce570eb3 attempt to sort chronologically, can not resort still 2025-09-18 11:01:40 -07:00
snipe 925d48640d Merge remote-tracking branch 'origin/develop'
# Conflicts:
#	config/version.php
2025-09-18 14:49:56 +01:00
snipe 5216dd75bf Bumped version 2025-09-18 14:49:15 +01:00
snipe 028b4e7b79 Merge remote-tracking branch 'origin/develop' 2025-09-18 13:59:25 +01:00
snipe b8b45d2d81 Merge pull request #17892 from grokability/#17891-fixes-maintenance-file-route
Fixed #17891 - missing maintenance file deletion route
2025-09-18 13:59:10 +01:00
snipe 4b2b2cb68e Fixed #17891 - missing maintenance file deletion route 2025-09-18 13:58:30 +01:00
snipe 625a46a2c2 Merge remote-tracking branch 'origin/develop' 2025-09-18 13:52:08 +01:00
snipe be4ace293e Use trans_choice for user acceptance 2025-09-18 13:51:57 +01:00
snipe ebc1e27c22 Merge remote-tracking branch 'origin/develop' 2025-09-18 13:40:07 +01:00
snipe 764b363bbc A few small tweaks to acceptance screen design 2025-09-18 13:38:37 +01:00
Marcus Moore 705474dc14 Avoid pre-loading all assets on page load 2025-09-17 16:56:37 -07:00
Marcus Moore e639d7726b Disallow bulk checkout across companies 2025-09-17 14:32:27 -07:00
snipe 357e85d358 Merge remote-tracking branch 'origin/develop' 2025-09-17 22:02:11 +01:00
snipe 9da9166442 Merge pull request #17886 from grokability/small-tweaks-to-acceptance-pdf
Small adjustments for acceptance PDF layout
2025-09-17 22:01:41 +01:00
snipe 8ea339f0ef More small tweaks 2025-09-17 22:00:49 +01:00
Marcus Moore e29b0aa6a4 Add todo 2025-09-17 13:55:54 -07:00
Marcus Moore d2157868f2 Populate failing test 2025-09-17 13:49:32 -07:00
snipe 89b36ba63f Derp. Uncomment the acceptance. 2025-09-17 21:43:40 +01:00
snipe 1d3dfa1fa4 Pull the acceptance stuff into the model 2025-09-17 21:43:17 +01:00
Marcus Moore 89cfafd933 Scaffold test 2025-09-17 13:40:34 -07:00
snipe ca567eec8a Small adjustments for layout 2025-09-17 21:08:13 +01:00
snipe 75cfcb83aa Merge remote-tracking branch 'origin/develop' 2025-09-17 14:05:06 +01:00
snipe 41da31c379 Merge pull request #17885 from grokability/#8859-show-cost-footer-on-models
Fixed #8859 - adds purchase sums on model view
2025-09-17 14:04:38 +01:00
snipe e81f63f46b Fixed #8859 - adds purchase sums on model view 2025-09-17 14:03:48 +01:00
snipe ade03e4827 Merge pull request #17882 from Godmartinz/add-total-cost-columns
Adds total cost to Accessories, Consumables, Components
2025-09-17 13:56:08 +01:00
snipe 63a4d1ad33 Merge remote-tracking branch 'origin/develop' 2025-09-17 11:44:41 +01:00
snipe 33a4c88c3a Added table to deleted_at clauses to resolve ambiguity 2025-09-17 11:44:28 +01:00
akemidx 69c5dbfc23 formatting 2025-09-17 05:39:45 -04:00
Godfrey M dcbb09bbd7 added checkoutable class 2025-09-16 15:59:53 -07:00
Godfrey M 58eac619ea add checkoutable class, rework blade for unaccepted items 2025-09-16 15:52:41 -07:00
akemidx cf1bccfd65 prep for val 2025-09-16 15:24:44 -04:00
akemidx 99acf018f1 validation rule & query 2025-09-16 15:17:59 -04:00
snipe f04d6f37e5 Merge remote-tracking branch 'origin/develop' 2025-09-16 19:22:06 +01:00
snipe 1f79776b8f Pull HTML tags out before converting markdown 2025-09-16 19:21:39 +01:00
Godfrey M 11e5f851f0 typo 2025-09-16 10:49:33 -07:00
Godfrey M 4ca1db8a1b remove footer formatter from consumable purchase cost 2025-09-16 10:43:02 -07:00
Godfrey M 14b829aa30 add total cost to components and consumables 2025-09-16 10:37:32 -07:00
Godfrey M 384652b3df add total cost to accessories 2025-09-16 10:10:49 -07:00
Brady Wetherington 92fbf83bdb Adjusting some Schema settings to match our requirements 2025-09-16 15:41:14 +01:00
Brady Wetherington 9525bbf502 Re-worked the SCIMConfig for the new version of laravel-scim-server 2025-09-16 15:22:33 +01:00
snipe 469069b471 Merge remote-tracking branch 'origin/develop' 2025-09-16 14:33:57 +01:00
snipe 9db65c6ae9 Merge pull request #17881 from grokability/#17873-eula-tab-on-users
Fixed #17873 - Added EULA tab to user view
2025-09-16 14:28:50 +01:00
snipe 1346e33e99 Check that the person trying to download can see both the user and the target 2025-09-16 14:21:03 +01:00
snipe ab9cc447aa Use more specific filename 2025-09-16 14:20:20 +01:00
akemidx cb63c12d2f i think this is gonna need livewire to validate lol 2025-09-16 08:24:22 -04:00
snipe fe9e0444b4 Added EULA tab to user view 2025-09-16 13:20:50 +01:00
akemidx 6ce0fd20ce works, needs error handling 2025-09-16 08:11:42 -04:00
snipe a18957dbe9 Include output even if there is nothing to send 2025-09-16 12:33:06 +01:00
snipe 13d5b724ee Fixed tests 2025-09-16 12:16:18 +01:00
snipe b383cd9493 Fixed CJK on labels 2025-09-16 12:10:01 +01:00
snipe c7d8203da9 Merge pull request #17866 from grokability/_reworked_tcpdf
Fixed #14744 and #17808 - Added CJK and Arabic font support for asset acceptance
2025-09-16 12:04:15 +01:00
snipe 96b5c1d8e1 Merge pull request #17876 from uberbrady/add_users_location_index
Add new index to users over deleted_at and location_id
2025-09-16 12:03:45 +01:00
Brady Wetherington 882ee80424 Add new index to users over deleted_at and location_id 2025-09-16 11:54:24 +01:00
snipe e977771fe4 One more query tweak 2025-09-16 11:50:50 +01:00
snipe 4339e4552e Fixed nesting in orWhere 2025-09-16 11:50:50 +01:00
Brady Wetherington 61df3bc462 WIP: switching to new version of laravel-scim-server 2025-09-16 11:44:10 +01:00
snipe 9bca5912d9 Merge remote-tracking branch 'origin/develop' 2025-09-16 11:39:12 +01:00
snipe b54d222943 One more query tweak 2025-09-16 11:39:02 +01:00
snipe 23756ba1c7 Merge remote-tracking branch 'origin/develop' 2025-09-16 11:27:27 +01:00
snipe e4e613550a Merge pull request #17875 from grokability/fixed-eol-query
Fixed nesting in orWhere
2025-09-16 11:27:07 +01:00
snipe d1207444db Fixed nesting in orWhere 2025-09-16 11:20:49 +01:00
Marcus Moore 06f060161d Apply offset and limit 2025-09-15 15:43:54 -07:00
Marcus Moore 73e0628124 Populate test 2025-09-15 15:26:30 -07:00
Marcus Moore 7393c4170b Apply first pass and scaffold additional test 2025-09-15 15:22:35 -07:00
Marcus Moore 73e185bf9d Scaffold route and tests 2025-09-15 15:12:05 -07:00
snipe 0bad75b263 Fixed declined asset name 2025-09-15 20:56:57 +01:00
snipe 74b98083e2 Override the getEula() method at the SnipeModel level 2025-09-15 20:05:35 +01:00
snipe 9034b5ec11 Slightly nicer display 2025-09-15 20:04:17 +01:00
Godfrey M 77153c3e78 adds Tze_24mm variant 2025-09-15 11:20:35 -07:00
snipe 927f557672 Fixed sorting on updated/created at 2025-09-15 18:13:46 +01:00
snipe 86fb089901 Remove unused blades 2025-09-15 18:13:32 +01:00
snipe 630ea05e17 A little more cleanup 2025-09-15 17:16:05 +01:00
snipe 7df5196083 A little cleanup 2025-09-15 16:09:49 +01:00
snipe 01f7b5d709 Added CJK and Arabic font support 2025-09-15 14:46:11 +01:00
snipe 07227887f6 Merge remote-tracking branch 'origin/develop' 2025-09-15 14:42:08 +01:00
snipe ec47ee3573 Merge pull request #17850 from Godmartinz/change-purchase-cost-to-unit
Rewords Purchase cost to Unit Cost for Accessories, Components, Consumables
2025-09-15 14:20:04 +01:00
snipe 13d3b103f1 Merge remote-tracking branch 'origin/develop' 2025-09-15 13:43:23 +01:00
snipe 7062962cc8 Show warnings on the dates if expired or terminated 2025-09-15 13:43:08 +01:00
snipe fde447846a Merge pull request #17865 from grokability/show-inactive-licenses
Show inactive licenses
2025-09-15 13:42:22 +01:00
snipe 319cb1bd1e Removed logging 2025-09-15 13:23:44 +01:00
snipe 58cda5ae6d Added scopes 2025-09-15 13:22:25 +01:00
snipe 251a3db880 Fixed factory 2025-09-15 13:20:34 +01:00
snipe 30b6dcd767 Added status to breadcrumbs 2025-09-15 13:13:50 +01:00
snipe 05f6622912 Added status to URL 2025-09-15 13:13:32 +01:00
snipe 36183ac19d Fixed url and tooltip text 2025-09-15 13:13:18 +01:00
snipe f6a823e0a8 Escape text 2025-09-15 13:13:04 +01:00
snipe 312353551d Changed button color 2025-09-15 13:11:58 +01:00
snipe 4bdfd0e115 Merge remote-tracking branch 'origin/develop' 2025-09-15 10:32:08 +01:00
snipe fd5c9cee38 Merge pull request #17863 from grokability/added-status-label-to-asset-view
Added status label to asset view
2025-09-15 10:31:54 +01:00
snipe 84bf71802c Added status label to asset view 2025-09-15 10:31:06 +01:00
snipe 786b20708e Merge remote-tracking branch 'origin/develop' 2025-09-15 08:38:56 +01:00
snipe 35739c2eef Merge pull request #17835 from marcusmoore/feature/10052-assigned-assets-via-api
Fixed #10052 - Added api endpoint for retrieving assets checked out to asset
2025-09-15 08:38:35 +01:00
snipe 1914a71623 Merge pull request #17851 from marcusmoore/fixes/qty-in-component-email
Fixed potentially incorrect qty in component checkout email
2025-09-15 08:37:48 +01:00
snipe dcc53886d9 Merge pull request #17857 from uberbrady/fix_client_tls_ldap
Fixed #17414 - client-side TLS certificate didn't work in Google LDAP
2025-09-15 08:37:14 +01:00
Brady Wetherington 21ef87ef09 Merge branch 'develop' into fix_client_tls_ldap 2025-09-12 18:52:43 +01:00
snipe 0e957cad84 Merge remote-tracking branch 'origin/develop' 2025-09-12 18:08:15 +01:00
snipe b67f808da9 Fixed fieldname 2025-09-12 18:07:40 +01:00
snipe ad69447b53 Merge pull request #17858 from grokability/ignore-expiring-licenses-with-past-termination-date
Ignore expiring licenses with past termination date
2025-09-12 17:55:14 +01:00
snipe b4614df88c Removed awkward period 2025-09-12 17:39:52 +01:00
snipe 7171247cdc Updated tests 2025-09-12 17:37:36 +01:00
snipe 6d0084f108 Nicer alert layout for expiring asset report 2025-09-12 17:37:27 +01:00
snipe 29359f42ae Added table printout 2025-09-12 17:37:12 +01:00
snipe cf875bf872 Changed verbiage 2025-09-12 17:37:03 +01:00
snipe 13c0d335d3 Refactor alert query 2025-09-12 17:36:51 +01:00
snipe ceb33409b5 Removed duplicate array key 2025-09-12 17:36:33 +01:00
Brady Wetherington 83597d4a8b Possible fix to client-side TLS certificate issue for google LDAP 2025-09-12 17:12:35 +01:00
Marcus Moore 81eefc5448 Merge branch 'develop' into fixes/qty-in-component-email 2025-09-11 14:14:42 -07:00
Marcus Moore 082bc3ece4 Use correct qty in component checkout email 2025-09-11 14:10:31 -07:00
snipe b2406b61fb Merge pull request #17826 from marcusmoore/fixes/17585-accessory-checkout-amount-in-subject
Fixed #17585 - Display accessory checkout qty in subject line and intro text
2025-09-11 21:55:20 +01:00
Marcus Moore 15698d7694 Update introduction lines with qty 2025-09-11 13:50:48 -07:00
Godfrey M 990cd82f97 change purchase cost to unit cost in several places 2025-09-11 10:46:20 -07:00
snipe c87829b3e8 Merge pull request #17849 from Godmartinz/rollbar-unreassignablecount-fix
Fixed typo in UnreassignableCount
2025-09-11 18:43:07 +01:00
Godfrey M 6799c41d65 fixed typo 2025-09-11 10:23:53 -07:00
snipe 80c059be58 Skip terminated licenses in alert 2025-09-11 13:14:53 +01:00
snipe aa3f896538 Merge pull request #17842 from Godmartinz/expiration-and-termination-license-enhancement
Adds #8799 Prevention of checkout of expired or terminated licenses
2025-09-11 11:46:15 +01:00
snipe 85c728f313 Merge remote-tracking branch 'origin/develop' 2025-09-11 11:40:26 +01:00
snipe d8c17a8a5e One more small tweak to language 2025-09-11 11:40:15 +01:00
akemidx 3492ed54de i'm dumb, fixed query 2025-09-10 19:05:28 -04:00
akemidx 1455281957 updated to outside window 2025-09-10 18:49:04 -04:00
akemidx 50e210b2db fixing naming convention to match 2025-09-10 17:35:09 -04:00
Godfrey M 850939367c adds translation warning message 2025-09-10 12:59:35 -07:00
Marcus Moore bf4fef9bf7 Merge branch 'develop' into fixes/17585-accessory-checkout-amount-in-subject 2025-09-10 12:49:41 -07:00
Godfrey M d5175961a4 adds a seperate formatter for checking out on license index, fix interactions 2025-09-10 12:42:10 -07:00
snipe ba3fb8cd66 Merge remote-tracking branch 'origin/develop' 2025-09-10 20:19:55 +01:00
snipe e7e1d6a232 Small tweaks to language 2025-09-10 20:17:33 +01:00
snipe 712345f3a0 Added link to discussions and discord 2025-09-10 20:14:19 +01:00
snipe 54c9bc3dcb Merge pull request #17840 from marcusmoore/issue-template
Made install method required in issue template
2025-09-10 20:14:10 +01:00
Godfrey M e796c0da4a disallows checkout of expired or terminated licenses 2025-09-10 12:08:14 -07:00
Marcus Moore cf8ff0f43e Add note on English 2025-09-10 10:41:20 -07:00
Marcus Moore e67ce23a7c Require installation method 2025-09-10 10:23:22 -07:00
snipe d9fb7dc754 Merge remote-tracking branch 'origin/develop' 2025-09-10 15:48:31 +01:00
snipe a66bb95a81 A few more tweaks 2025-09-10 15:48:21 +01:00
snipe 2249dad9d7 Merge remote-tracking branch 'origin/develop' 2025-09-10 15:43:21 +01:00
snipe c66fa33b2e Have I mentioned how much I hate YAML? 2025-09-10 15:43:09 +01:00
snipe 5c4fa630ae Merge remote-tracking branch 'origin/develop' 2025-09-10 15:40:24 +01:00
snipe 56eebb9db4 Small tweaks to templates 2025-09-10 15:40:12 +01:00
snipe ede74ad24e Merge remote-tracking branch 'origin/develop' 2025-09-10 15:38:30 +01:00
snipe d9773f107e Added feature request form
Signed-off-by: snipe <snipe@snipe.net>
2025-09-10 15:38:19 +01:00
snipe 27542a8f91 Okay, I guess we can’t require that field :(
Signed-off-by: snipe <snipe@snipe.net>
2025-09-10 15:34:30 +01:00
snipe 5dc07b94aa Merge remote-tracking branch 'origin/develop' 2025-09-10 15:33:20 +01:00
snipe e09112f46a Require installation type
Signed-off-by: snipe <snipe@snipe.net>
2025-09-10 15:33:06 +01:00
snipe d7acf721ae Merge remote-tracking branch 'origin/develop' 2025-09-10 15:30:54 +01:00
snipe 50a17a82b6 Sigh
Signed-off-by: snipe <snipe@snipe.net>
2025-09-10 15:30:42 +01:00
snipe eff5232828 Merge remote-tracking branch 'origin/develop' 2025-09-10 15:26:14 +01:00
snipe 7eb032d646 Rename issue template (I guess?)
Signed-off-by: snipe <snipe@snipe.net>
2025-09-10 15:25:51 +01:00
snipe 3eb29b1cdb Merge remote-tracking branch 'origin/develop' 2025-09-10 15:21:05 +01:00
snipe e065f22f8e Merge pull request #17838 from grokability/issue-form
New GH issue form
2025-09-10 15:20:51 +01:00
snipe c1b4ba1f85 Last one for now
Signed-off-by: snipe <snipe@snipe.net>
2025-09-10 15:20:27 +01:00
snipe eeaec471f0 Dunno if this will work
Signed-off-by: snipe <snipe@snipe.net>
2025-09-10 15:19:29 +01:00
snipe 0d3c8678d8 Moved text
Signed-off-by: snipe <snipe@snipe.net>
2025-09-10 15:17:16 +01:00
snipe bbddf5f95b Still a few more tweaks
Signed-off-by: snipe <snipe@snipe.net>
2025-09-10 15:15:09 +01:00
snipe 3b8c8b3af9 Nicer markdown
Signed-off-by: snipe <snipe@snipe.net>
2025-09-10 15:12:38 +01:00
snipe 84753aa13f Added browser console
Signed-off-by: snipe <snipe@snipe.net>
2025-09-10 15:08:37 +01:00
snipe 90b84451d8 Fixed indenting
Signed-off-by: snipe <snipe@snipe.net>
2025-09-10 15:07:04 +01:00
snipe 54c8ae41cc Still hate YAML
Signed-off-by: snipe <snipe@snipe.net>
2025-09-10 15:06:03 +01:00
snipe 7d32b1a724 God I hate YAML
Signed-off-by: snipe <snipe@snipe.net>
2025-09-10 15:05:27 +01:00
snipe 69ffd63ca6 Removed backticks
Signed-off-by: snipe <snipe@snipe.net>
2025-09-10 15:02:50 +01:00
snipe 4857c19eb6 More tweaks
Signed-off-by: snipe <snipe@snipe.net>
2025-09-10 15:02:07 +01:00
snipe d535e23da0 More template tweaks
Signed-off-by: snipe <snipe@snipe.net>
2025-09-10 14:51:33 +01:00
snipe 30e02544ab Try renaming so I can preview
via https://github.com/orgs/community/discussions/7039#discussioncomment-5327083

Signed-off-by: snipe <snipe@snipe.net>
2025-09-10 14:43:16 +01:00
snipe ee53925bd2 Starter for preview
Signed-off-by: snipe <snipe@snipe.net>
2025-09-10 14:40:38 +01:00
snipe c9961f63b4 Merge remote-tracking branch 'origin/develop' 2025-09-10 13:53:21 +01:00
snipe 40495b8a17 Small demo tweaks
Signed-off-by: snipe <snipe@snipe.net>
2025-09-10 12:33:33 +01:00
akemidx b1de98f05d first front end 2025-09-09 19:18:29 -04:00
Marcus Moore 6bc9a82a7a Formatting 2025-09-09 14:51:22 -07:00
snipe 09e843a800 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	public/css/build/app.css
#	public/css/build/app.css.map
#	public/css/build/overrides.css
#	public/css/build/overrides.css.map
#	public/css/dist/all.css
#	public/mix-manifest.json
2025-09-09 22:34:33 +01:00
Marcus Moore 6504ee37bd Remove dump 2025-09-09 13:09:52 -07:00
Marcus Moore 082bff2fa8 Add and use query scope helper 2025-09-09 13:04:14 -07:00
Marcus Moore ab7bd86336 Improve assertions 2025-09-09 13:01:59 -07:00
Marcus Moore eada0b0bb5 Implement test 2025-09-09 11:58:43 -07:00
Marcus Moore f221f9f22a Implement test 2025-09-09 11:50:41 -07:00
snipe 6731e44a0d Merge pull request #17828 from marcusmoore/fixes/17586-acceptance-banner-qty
Fixed #17586 - Display accurate quantity in banner
2025-09-09 19:38:34 +01:00
Marcus Moore acc37045e4 Implement test 2025-09-09 11:34:50 -07:00
Marcus Moore a7c5899c16 Implement test 2025-09-09 11:33:54 -07:00
Marcus Moore 80b02635a9 Add test stub 2025-09-09 10:10:53 -07:00
snipe f90de5ec67 Merge pull request #17833 from grokability/tighter-controls-on-licenses
Tighter controls on license deletion, also fixes #16227 adding more tables to location print
2025-09-09 15:35:12 +01:00
snipe 9a3e046530 Fixed HTML
Signed-off-by: snipe <snipe@snipe.net>
2025-09-09 15:30:34 +01:00
snipe 7f56e461fe Added child location icon
Signed-off-by: snipe <snipe@snipe.net>
2025-09-09 15:19:00 +01:00
snipe 1da37e0d38 Added child location count
Signed-off-by: snipe <snipe@snipe.net>
2025-09-09 15:18:47 +01:00
snipe 0004d4936c Cleaned up print view
Signed-off-by: snipe <snipe@snipe.net>
2025-09-09 15:18:28 +01:00
snipe 7a6fdc4e0a Added parent ID to location API
Signed-off-by: snipe <snipe@snipe.net>
2025-09-09 15:18:09 +01:00
snipe 2eb727bd0c Added tests
Signed-off-by: snipe <snipe@snipe.net>
2025-09-09 13:51:56 +01:00
snipe 57af507170 Added deleted button to locations, check for additional relations
Signed-off-by: snipe <snipe@snipe.net>
2025-09-09 12:20:34 +01:00
snipe e37f87465c Merge pull request #17827 from Godmartinz/duplicate-emails-fix
Fixed #17756 - Duplicate checkout emails
2025-09-09 09:33:03 +01:00
Marcus Moore 324070f345 Begin to build out test 2025-09-08 17:20:22 -07:00
Marcus Moore e1aa843b6d Scaffold test 2025-09-08 17:05:14 -07:00
Godfrey M e652a7fd61 fix tests 2025-09-08 14:56:15 -07:00
Marcus Moore 2397bfbad0 Improve variable name 2025-09-08 14:51:19 -07:00
Marcus Moore 7e2bc8e452 Display accurate quantity in banner 2025-09-08 14:48:11 -07:00
Godfrey M 00e8fd0483 cloned mailable 2025-09-08 14:44:58 -07:00
Marcus Moore 6d8bf2c665 Display accessory checkout qty in subject line 2025-09-08 14:25:56 -07:00
snipe 77b79dbd95 Merge remote-tracking branch 'origin/develop' 2025-09-08 15:04:42 +01:00
snipe 72466f1aab Revert "Merge pull request #17823 from grokability/#17822-fix-n+1-in-topmenu"
This reverts commit 6901deccbf, reversing
changes made to 6b87c90e02.

Signed-off-by: snipe <snipe@snipe.net>
2025-09-08 15:04:28 +01:00
snipe dafc6c5136 Merge remote-tracking branch 'origin/develop' 2025-09-08 14:34:16 +01:00
snipe 6901deccbf Merge pull request #17823 from grokability/#17822-fix-n+1-in-topmenu
Fixed #17822 - n+1 in top menu check
2025-09-08 14:33:47 +01:00
snipe 5a9c906eb9 Added filter to assets loading
Signed-off-by: snipe <snipe@snipe.net>
2025-09-08 14:32:58 +01:00
snipe b95b60b49e Use eager-loaded model assets
Signed-off-by: snipe <snipe@snipe.net>
2025-09-08 14:07:49 +01:00
snipe 14408ef18f Fixed n+1 in top menu check
Signed-off-by: snipe <snipe@snipe.net>
2025-09-08 13:55:22 +01:00
snipe c790147a5c Merge remote-tracking branch 'origin/develop' 2025-09-08 13:33:29 +01:00
snipe 6b87c90e02 Use scope for assets for show in sidebar
Signed-off-by: snipe <snipe@snipe.net>
2025-09-08 13:33:19 +01:00
snipe 80c39c5ef3 Merge remote-tracking branch 'origin/develop' 2025-09-08 12:17:41 +01:00
snipe 2b4d5222eb Made “add new” buttons clearer on table headers
Signed-off-by: snipe <snipe@snipe.net>
2025-09-08 12:17:29 +01:00
snipe 9604ecebad Fixed jobtitle in advanced search
Signed-off-by: snipe <snipe@snipe.net>
2025-09-08 12:01:59 +01:00
snipe 9a3e84d84c Merge remote-tracking branch 'origin/develop' 2025-09-08 09:27:51 +01:00
snipe 0d67970a45 Update @swift2512 as a contributor 2025-09-08 09:27:34 +01:00
snipe 913b9f0c40 Reworks PR #15490 - adds location to inventory email
Signed-off-by: snipe <snipe@snipe.net>
2025-09-08 09:26:36 +01:00
snipe 610a5745f0 Merge pull request #17818 from grokability/dependabot/github_actions/develop/actions/stale-10
Bump actions/stale from 9 to 10
2025-09-08 09:17:19 +01:00
dependabot[bot] dff12324c6 Bump actions/stale from 9 to 10
Bumps [actions/stale](https://github.com/actions/stale) from 9 to 10.
- [Release notes](https://github.com/actions/stale/releases)
- [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/stale/compare/v9...v10)

---
updated-dependencies:
- dependency-name: actions/stale
  dependency-version: '10'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-08 08:16:24 +00:00
snipe f340390fc8 Merge pull request #17703 from marcusmoore/17369-accessory-checkout-qty-scaffold
Fixed issues around accessory acceptance
2025-09-08 09:09:26 +01:00
snipe 643960c829 Merge remote-tracking branch 'origin/develop' 2025-09-08 08:25:08 +01:00
snipe be81e74921 Shifted log meta position
Signed-off-by: snipe <snipe@snipe.net>
2025-09-08 08:24:50 +01:00
snipe 1737018325 Merge remote-tracking branch 'origin/develop' 2025-09-08 08:14:45 +01:00
snipe 2bee8729e4 Better escaping for display_name in API controller
Signed-off-by: snipe <snipe@snipe.net>
2025-09-08 08:14:33 +01:00
snipe 5d03038734 Use auto-direction for <p> in preview
Signed-off-by: snipe <snipe@snipe.net>
2025-09-05 15:12:38 +01:00
snipe 75b11de0f4 Bumped composer packages
Signed-off-by: snipe <snipe@snipe.net>
2025-09-04 19:55:30 +01:00
snipe 484d5ba76e Merge remote-tracking branch 'origin/develop' 2025-09-04 17:15:53 +01:00
snipe c5bede8594 More small display_name fixes
Signed-off-by: snipe <snipe@snipe.net>
2025-09-04 17:15:06 +01:00
snipe 798685d0b8 Merge remote-tracking branch 'origin/develop' 2025-09-04 16:56:55 +01:00
snipe cd9ea6ae3b Fixed typo
Signed-off-by: snipe <snipe@snipe.net>
2025-09-04 16:56:43 +01:00
snipe cb7654ae90 Merge remote-tracking branch 'origin/develop' 2025-09-04 16:55:57 +01:00
snipe 113b762ec7 Fix for null location in locations print
Signed-off-by: snipe <snipe@snipe.net>
2025-09-04 16:55:44 +01:00
snipe 78704d8b85 Fixed #17803 - checked out to name in custom report
Signed-off-by: snipe <snipe@snipe.net>
2025-09-04 16:51:10 +01:00
snipe 1109db76fe Merge pull request #17797 from grokability/#17796-search-on-model-name-and-number
Fixed #17796 - search on model name and number on importer
2025-09-04 16:35:43 +01:00
snipe b1b390febf Removed flaky test
Signed-off-by: snipe <snipe@snipe.net>
2025-09-04 16:30:02 +01:00
snipe be451fa0c0 Removed asset model from original factory
Signed-off-by: snipe <snipe@snipe.net>
2025-09-04 16:14:27 +01:00
snipe 1fa553c785 Use nths
Signed-off-by: snipe <snipe@snipe.net>
2025-09-04 16:04:16 +01:00
snipe 905f61371d Fixed tests
Signed-off-by: snipe <snipe@snipe.net>
2025-09-04 16:02:40 +01:00
snipe 7da5210a01 Switched to nth from fetchOne in CSV reader
Signed-off-by: snipe <snipe@snipe.net>
2025-09-04 12:50:12 +01:00
snipe 18172d3896 Merge pull request #17752 from marcusmoore/fixes/existing-assets-report
Improve expiring alerts notification layout
2025-09-04 12:33:32 +01:00
snipe c28e78b9e2 Merge pull request #16063 from Godmartinz/checkin_non_reassignable_license
Allows check-ins of unreassignable licenses
2025-09-04 11:22:17 +01:00
snipe e7827a3847 Merge pull request #17800 from marcusmoore/chore/test-action-logs
Upload log file in GitHub Action tests
2025-09-04 10:20:12 +01:00
Marcus Moore 039564e74c Wrap migration in check 2025-09-03 12:52:46 -07:00
Marcus Moore e164595a0f Fall back to displaying 1 2025-09-03 12:35:18 -07:00
Marcus Moore d29e09a3ff Merge branch 'develop' into 17369-accessory-checkout-qty-scaffold
# Conflicts:
#	resources/views/account/accept/create.blade.php
#	resources/views/account/accept/index.blade.php
2025-09-03 12:26:43 -07:00
Godfrey M db9f85e9da Merge branch 'develop' into checkin_non_reassignable_license
# Conflicts:
#	app/Models/License.php
#	resources/views/licenses/view.blade.php
#	tests/Feature/Checkins/Api/LicenseCheckInTest.php
2025-09-03 11:09:51 -07:00
Marcus Moore 27022954b1 Inline icon 2025-09-03 10:44:19 -07:00
Marcus Moore 30362c924f Upload log as artifact 2025-09-03 10:13:01 -07:00
snipe bf63b15b46 Merge pull request #17799 from grokability/#17798-adds-require-serial-to-importer
Fixed #17798 - added `require_serial` to model importer
2025-09-03 15:32:42 +01:00
snipe 19aea4bd6c Fixed #17798 - added require_serial to model importer
Signed-off-by: snipe <snipe@snipe.net>
2025-09-03 15:25:56 +01:00
snipe 090890e9c6 Fixed #17796 - search on model name and number on importer
Signed-off-by: snipe <snipe@snipe.net>
2025-09-03 15:15:29 +01:00
snipe 00c394345a Merge remote-tracking branch 'origin/develop' 2025-09-03 15:09:42 +01:00
snipe 605022a9e3 Merge pull request #17795 from grokability/#17791-larger-currency-field
Fixed #17791 - increase size of purchase cost field
2025-09-03 15:09:28 +01:00
snipe b06c58fe7b Switch to older style rules for consistency
Signed-off-by: snipe <snipe@snipe.net>
2025-09-03 15:06:27 +01:00
snipe f5c8b3eb04 Fixed #17791 - increase size of purchase cost field
Signed-off-by: snipe <snipe@snipe.net>
2025-09-03 15:03:49 +01:00
snipe 739980aa09 Merge pull request #16947 from Godmartinz/add-require-serial-to-models
Adds require serial as Asset Model option
2025-09-03 14:53:15 +01:00
snipe afde5943e3 Fixed typo - #17784
Signed-off-by: snipe <snipe@snipe.net>
2025-09-03 14:39:59 +01:00
snipe 32300cb42c Merge pull request #17788 from grokability/add-delete-log-instead-of-soft-deleting-the-log-itself
Fixed #17777 - Log upload deletion
2025-09-03 14:37:32 +01:00
snipe dffcb62fa1 Merge remote-tracking branch 'origin/develop' 2025-09-03 14:35:31 +01:00
snipe de3b1697c8 Merge pull request #17760 from Godmartinz/fix-translation-string-in-notifications
Fixes #17759 translation used in asset check in/out notifications
2025-09-03 14:33:57 +01:00
snipe 8c668b72b7 Merge remote-tracking branch 'origin/develop' 2025-09-03 08:45:20 +01:00
snipe a18fb10b5a Merge pull request #17783 from marcusmoore/fixes/company-in-location-print
Fixed company name reference in location print
2025-09-03 08:44:40 +01:00
snipe 52140dbe06 Log upload deletion
Signed-off-by: snipe <snipe@snipe.net>
2025-09-03 08:37:42 +01:00
Marcus Moore db5bb1928e Merge branch 'develop' into fixes/existing-assets-report
# Conflicts:
#	resources/views/notifications/markdown/report-expiring-assets.blade.php
2025-09-02 15:07:23 -07:00
Marcus Moore 65b66beb07 Make icon more prominent 2025-09-02 14:55:46 -07:00
Marcus Moore c83504b4e7 Use display_name in place of presenter 2025-09-02 12:57:40 -07:00
Godfrey M cd2e7ee31d fix google and slack notifications 2025-09-02 10:53:42 -07:00
Godfrey M c3a0a0415a fix MS Teams Notifications 2025-09-02 10:48:02 -07:00
snipe 709f4672b7 Merge pull request #17771 from grokability/#10107-remember-checkout-to-type
Fixed #10107 - remember checkout to type
2025-09-02 13:46:13 +01:00
snipe b54ecd4da0 Merge remote-tracking branch 'origin/develop' 2025-09-02 13:45:41 +01:00
snipe e6c030b050 Merge pull request #17781 from grokability/#17780-add-withtrashed-to-files
Fixed #17780 - Added `withTrashed()` to allow viewing files on deleted objects
2025-09-02 13:45:18 +01:00
snipe 7bd3a791a1 Added withTrashed() to allow viewing files on deleted objects
Signed-off-by: snipe <snipe@snipe.net>
2025-09-02 13:39:35 +01:00
snipe 87a7e3501b Merge remote-tracking branch 'origin/develop' 2025-09-02 11:30:44 +01:00
snipe b9cfc03b4f display name fix
Signed-off-by: snipe <snipe@snipe.net>
2025-09-02 11:30:34 +01:00
snipe daefec3013 Merge remote-tracking branch 'origin/develop' 2025-09-01 20:32:57 +01:00
snipe 131327a64d Fixed “undefined” error on status labels in BS tables
Signed-off-by: snipe <snipe@snipe.net>
2025-09-01 20:32:42 +01:00
snipe 183a9742c4 Merge remote-tracking branch 'origin/develop' 2025-09-01 17:08:43 +01:00
snipe 77d002a158 Use null for role as well
Signed-off-by: snipe <snipe@snipe.net>
2025-09-01 16:43:05 +01:00
snipe 94699893ac Updated fieldname in user API request
Signed-off-by: snipe <snipe@snipe.net>
2025-09-01 16:17:39 +01:00
snipe 9f81989bdd Return null instead of blank for display_name in API
Signed-off-by: snipe <snipe@snipe.net>
2025-09-01 16:06:28 +01:00
snipe 15abe36c53 More tweaks to display
Signed-off-by: snipe <snipe@snipe.net>
2025-09-01 13:58:02 +01:00
snipe 3094e007ee Set session to remember checkout type
Signed-off-by: snipe <snipe@snipe.net>
2025-09-01 13:28:07 +01:00
snipe eb259aee22 Set asset selector to true for components since it will always be required
Signed-off-by: snipe <snipe@snipe.net>
2025-09-01 13:18:58 +01:00
snipe 04b83f8176 Merge remote-tracking branch 'origin/develop' 2025-09-01 12:28:40 +01:00
snipe c05c8defb9 Merge pull request #17769 from grokability/#9978-add-pivot-to-accessories-api
Fixes #9978 - Added payload to accessories API
2025-09-01 12:28:08 +01:00
snipe bf5668a42e Added payload to accessories API
Signed-off-by: snipe <snipe@snipe.net>
2025-09-01 12:23:39 +01:00
snipe 335ab3f064 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	config/version.php
#	public/css/build/app.css
#	public/css/build/app.css.map
#	public/css/dist/all.css
#	public/mix-manifest.json
2025-09-01 11:57:07 +01:00
snipe ec310bc8fb Updated dev assets
Signed-off-by: snipe <snipe@snipe.net>
2025-09-01 11:56:01 +01:00
snipe db477421b2 Bumped to 8.3.1
Signed-off-by: snipe <snipe@snipe.net>
2025-09-01 11:54:53 +01:00
snipe 30a9496cf5 Merge pull request #17748 from Godmartinz/parent-location-in-asset-view
Adds #10969 Parent location to Asset Checked out to info
2025-09-01 11:49:42 +01:00
snipe 6cefa0d0b3 Merge pull request #17745 from Godmartinz/dropdown-link-color-fix
Fixes #17488 (Part 2) Nav dropdown link color and skin names
2025-09-01 11:48:29 +01:00
snipe 9284984265 Merge pull request #17768 from Speedyduck300000/develop
Fixed #17742: don't delete random actionlog when trying to delete a file
2025-09-01 11:40:06 +01:00
Speedyduck300000 53b96168a9 fixed uploadfilescontroller to use the file_id to delete the correct
entry.
2025-09-01 07:34:18 +02:00
Godfrey M eadce51f10 fixes check in check out translations for assets in notiications 2025-08-29 11:12:05 -07:00
snipe 7dd493da35 Merge remote-tracking branch 'origin/develop' 2025-08-29 10:17:26 +01:00
snipe b3c583b6dc Few more ->display_name
Signed-off-by: snipe <snipe@snipe.net>
2025-08-29 10:17:16 +01:00
snipe 560bd6da92 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	resources/views/notifications/markdown/report-expiring-assets.blade.php
2025-08-29 10:08:56 +01:00
snipe 28abeab31d Fixed a few more display_name instances
Signed-off-by: snipe <snipe@snipe.net>
2025-08-29 10:06:58 +01:00
snipe a5824ccc5f Merge pull request #17754 from marcusmoore/fixes/name-in-expiring-assets-master
Patch #17751 to master take 2
2025-08-29 01:25:46 +01:00
Marcus Moore 830a7964a4 Use display_name in place of name() 2025-08-28 17:23:56 -07:00
snipe 12a649ec4b Merge pull request #17751 from marcusmoore/fixes/name-in-expiring-assets
Fixed user display name in expiring asset notification
2025-08-29 01:11:05 +01:00
Marcus Moore 35b79e4d14 Remove old comments 2025-08-28 16:56:40 -07:00
Marcus Moore 751dad7f2e Inline days 2025-08-28 16:56:12 -07:00
Marcus Moore b08d86220a First pass at moving to table structure 2025-08-28 16:53:13 -07:00
Marcus Moore 3a27ecc475 Use display_name in place of name() 2025-08-28 16:22:24 -07:00
Godfrey M da6fab5d43 adds parent location to checked out to location 2025-08-28 13:37:40 -07:00
snipe ca95b29cd6 Add telescope tables to the excepted tables
Signed-off-by: snipe <snipe@snipe.net>
2025-08-28 19:52:56 +01:00
Godfrey M c5c68e9dd5 fix dropdown link color and skin names 2025-08-28 11:49:37 -07:00
snipe 44fbde26fa Merge pull request #17743 from grokability/normalize-trait-locations
Moved model traits into proper directory
2025-08-28 18:52:43 +01:00
snipe 6e2bcd6aa9 Merge pull request #17680 from grokability/added-telescope
Added laravel telescope for dev environment
2025-08-28 18:52:18 +01:00
snipe b1359c3277 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	config/version.php
2025-08-28 18:34:14 +01:00
snipe 9c0202e5ce Bumped to 8.3.0
Signed-off-by: snipe <snipe@snipe.net>
2025-08-28 18:33:46 +01:00
snipe 39ef353073 Bumped version
Signed-off-by: snipe <snipe@snipe.net>
2025-08-28 18:32:07 +01:00
snipe 7b5d90dd81 Moved model traits into proper directory
Signed-off-by: snipe <snipe@snipe.net>
2025-08-28 18:23:26 +01:00
snipe 0ba8f5cc5a Merge remote-tracking branch 'origin/develop' 2025-08-28 18:06:29 +01:00
snipe d1129081df Asset nothing is sent if send_welcome is not checked/passed
Signed-off-by: snipe <snipe@snipe.net>
2025-08-28 18:05:40 +01:00
snipe 315a812df5 Fixed typos
Signed-off-by: snipe <snipe@snipe.net>
2025-08-28 16:41:56 +01:00
snipe 6fb9e2c38e Merge remote-tracking branch 'origin/develop' 2025-08-28 16:12:18 +01:00
snipe cfc979acf0 Merge pull request #17432 from oolivero45/patch-1
Fixed #17431: EULA not displaying on asset acceptance page
2025-08-28 16:09:36 +01:00
snipe d7407d70a3 Merge pull request #17741 from grokability/improved-user-create-tests
Improved user create tests
2025-08-28 13:32:46 +01:00
snipe 8ccd2e97a8 Improved user create tests
Signed-off-by: snipe <snipe@snipe.net>
2025-08-28 13:27:08 +01:00
snipe 988204619f Merge pull request #17740 from grokability/renamed-user-test
Renamed the test for consistency
2025-08-28 13:05:05 +01:00
snipe cad6cc3007 Renamed the test for consistency
Signed-off-by: snipe <snipe@snipe.net>
2025-08-28 13:02:01 +01:00
snipe eebc2ab8be Merge remote-tracking branch 'origin/develop' 2025-08-28 07:30:15 +01:00
snipe b303875f1d Merge pull request #17734 from grokability/#17726-add-welcome-email-to-new-user-form
Fixed #17726: add welcome email to new user form
2025-08-28 07:29:56 +01:00
snipe d5cc61f378 Added send to API call for creating users
Signed-off-by: snipe <snipe@snipe.net>
2025-08-28 07:28:51 +01:00
snipe 0d7ec43262 Fixed typo
Signed-off-by: snipe <snipe@snipe.net>
2025-08-28 06:19:41 +01:00
snipe d3747f4daa Added welcome email to controller
Signed-off-by: snipe <snipe@snipe.net>
2025-08-28 06:12:01 +01:00
snipe af695e7dc8 Added help to user importer
Signed-off-by: snipe <snipe@snipe.net>
2025-08-28 06:11:52 +01:00
snipe 1edbfd87df Added welcome email checkbox to user create form
Signed-off-by: snipe <snipe@snipe.net>
2025-08-28 06:11:40 +01:00
snipe 454be01a6c Updated translations
Signed-off-by: snipe <snipe@snipe.net>
2025-08-28 06:11:23 +01:00
snipe b65b3151ee Merge remote-tracking branch 'origin/develop' 2025-08-28 05:29:48 +01:00
snipe 745fc515f1 Merge pull request #17713 from Godmartinz/fix-localization-for-email-notifications
Adds #5554 locale for acceptance notifications and checkin/out emails
2025-08-28 05:29:28 +01:00
snipe 715b9c1182 Merge pull request #17730 from Godmartinz/update-asset-accepance-with-category
Adds #9000 Item type to Account Asset Acceptance index
2025-08-28 05:22:54 +01:00
spencerrlongg 1d24b7985b another translation change 2025-08-27 17:25:17 -05:00
spencerrlongg 526bb2c650 more translation changes 2025-08-27 17:23:46 -05:00
spencerrlongg c450c0ddb8 lots of translation changes 2025-08-27 17:17:18 -05:00
Godfrey M 95be847d87 renamed attribute 2025-08-27 14:10:51 -07:00
Godfrey M c1a6546eba change column header 2025-08-27 14:09:13 -07:00
Godfrey M 648c25a0a7 adds item type to Accept asset index 2025-08-27 14:06:10 -07:00
Godfrey M f2ec7f2975 fix tests 2025-08-27 13:22:35 -07:00
Godfrey M f518af6d61 fix class name 2025-08-27 13:09:05 -07:00
snipe 13a0f49f5f Merge remote-tracking branch 'origin/develop' 2025-08-27 16:36:05 +01:00
snipe b11c6a5c06 Updated depreciation translation with more information.
Signed-off-by: snipe <snipe@snipe.net>
2025-08-27 16:35:49 +01:00
snipe 5822e4e692 Merge pull request #17729 from grokability/exit-early-if-ldap-troubleshooter-cannot-decrypt-ldap-pw
Put LDAP troubleshooter's decrypt in a try/catch to avoid crashing if it cannot decrypt the password
2025-08-27 15:47:22 +01:00
snipe e4f06b0ca8 One last time
Signed-off-by: snipe <snipe@snipe.net>
2025-08-27 15:43:48 +01:00
snipe 2f093c0e82 Added early exist on step 4 as well
Signed-off-by: snipe <snipe@snipe.net>
2025-08-27 15:41:39 +01:00
snipe 5d9dc0e74d Put decrypt in a try/catch
Signed-off-by: snipe <snipe@snipe.net>
2025-08-27 15:33:26 +01:00
snipe 199eefafa1 Merge remote-tracking branch 'origin/develop' 2025-08-27 14:38:47 +01:00
snipe adc3a34929 Fixed copy for encrypted custom fields
Signed-off-by: snipe <snipe@snipe.net>
2025-08-27 14:38:36 +01:00
snipe cb2ffe6b3f Updated translations
Signed-off-by: snipe <snipe@snipe.net>
2025-08-27 14:02:39 +01:00
snipe c5b58f9ecc Merge remote-tracking branch 'origin/develop' 2025-08-27 13:32:25 +01:00
snipe b3e3d01672 Fixed LDAP icon spacing
Signed-off-by: snipe <snipe@snipe.net>
2025-08-27 13:32:02 +01:00
snipe 6b68fe4de6 Merge remote-tracking branch 'origin/develop' 2025-08-27 13:30:19 +01:00
snipe 4a6520fc78 Fixed address field
Signed-off-by: snipe <snipe@snipe.net>
2025-08-27 13:30:07 +01:00
snipe 75ab6c9b13 Merge pull request #17723 from uberbrady/improve_ldap_certificate_ignoring
Improve ldap certificate ignoring
2025-08-27 13:29:33 +01:00
snipe 2f77fcb526 Merge pull request #17724 from Godmartinz/checkout2location_email_fix
Fixes #17642 Checkouts to location email for Assets and Accessories
2025-08-27 13:02:57 +01:00
snipe 3461bbfdb3 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	public/css/build/app.css
#	public/css/build/app.css.map
#	public/css/build/overrides.css
#	public/css/build/overrides.css.map
#	public/css/dist/all.css
#	public/mix-manifest.json
2025-08-27 12:28:22 +01:00
Brady Wetherington 60604c3481 With the new SSL stuff, we are calling ldap_set_option() one more time now 2025-08-27 12:25:39 +01:00
spencerrlongg 51f6927076 add details block for more than 3 errors to notification 2025-08-26 21:50:08 -05:00
Godfrey M 671c113cd2 add coma to translation" 2025-08-26 16:07:04 -07:00
Godfrey M 8a74d21ede fixes checkout emails to location for assets and accessories" 2025-08-26 16:00:26 -07:00
Godfrey M 75995b2109 fix checkout to location email 2025-08-26 15:34:38 -07:00
akemidx e1de57384e field for number choice 2025-08-26 18:03:47 -04:00
Marcus Moore 4298aad008 Merge branch 'develop' into 17369-accessory-checkout-qty-scaffold
# Conflicts:
#	app/Http/Controllers/Account/AcceptanceController.php
#	resources/views/notifications/markdown/asset-acceptance.blade.php
2025-08-26 11:39:52 -07:00
Marcus Moore 823c67400d Fix indent 2025-08-26 11:34:10 -07:00
Marcus Moore 3160d1064d Remove unused import 2025-08-26 11:32:38 -07:00
snipe d1eefc3fea Merge pull request #17692 from grokability/#17387-make-saml-key-size-an-env
Fixed #17386 - Added SAML key size to env - possible alternative to #17387
2025-08-26 16:28:27 +01:00
Brady Wetherington 16795382fc Many cleanups to default-mode of LDAP troubleshooter 2025-08-26 15:53:18 +01:00
snipe eb17974adc Merge pull request #17722 from grokability/#17704-retain-linebreaks
Fixed #17704 -  retain linebreaks on custom field clipboard copy
2025-08-26 15:44:38 +01:00
snipe 22852c27f8 Use generic length for asterisks
Signed-off-by: snipe <snipe@snipe.net>
2025-08-26 15:38:56 +01:00
snipe f4a94d975d Fixes #17704 - retain linebreaks in clipboard for multi-line custom field copying
Signed-off-by: snipe <snipe@snipe.net>
2025-08-26 15:33:19 +01:00
snipe 7a36bbbd1e Merge pull request #17721 from grokability/small-ldap-preview-display-tweaks
Improved LDAP field sync preview
2025-08-26 15:26:09 +01:00
snipe 2b401b965b Fixed casing
Signed-off-by: snipe <snipe@snipe.net>
2025-08-26 15:22:00 +01:00
snipe 314bc5b44f Added manager
Signed-off-by: snipe <snipe@snipe.net>
2025-08-26 15:14:29 +01:00
snipe 76374f0d5a Updated text
Signed-off-by: snipe <snipe@snipe.net>
2025-08-26 15:14:22 +01:00
snipe 264efb015e Fixed jobtitle field mapping
Signed-off-by: snipe <snipe@snipe.net>
2025-08-26 15:05:05 +01:00
Brady Wetherington e74460aefc Merge branch 'develop' into improve_ldap_certifcate_ignoring 2025-08-26 15:01:11 +01:00
Brady Wetherington 55a5a12b30 Formalize the 'double-barrel' method of setting TLS cert ignores 2025-08-26 15:00:33 +01:00
snipe 58944a38eb Make screen and table wider
Signed-off-by: snipe <snipe@snipe.net>
2025-08-26 14:59:11 +01:00
snipe 469e3bd475 Nicer ldap preview layout, show all mapped fields
Signed-off-by: snipe <snipe@snipe.net>
2025-08-26 14:51:34 +01:00
snipe 17650c5735 Changed field title
Signed-off-by: snipe <snipe@snipe.net>
2025-08-26 14:03:11 +01:00
Brady Wetherington 15e64155b5 Add version checking to LDAP troubleshooter, clean up ldap model 2025-08-26 13:57:25 +01:00
snipe 39955ac760 Add @akaspeh1 as a contributor 2025-08-26 12:42:20 +01:00
snipe 855a176ca9 Add @nickwest as a contributor 2025-08-26 12:42:15 +01:00
snipe 47b2b30455 Merge pull request #17710 from akaspeh1/develop
Adds support for label sheets Avery L4736 & L6009
2025-08-26 12:42:02 +01:00
snipe b702e3e2de Merge pull request #17492 from ischooluw/17448-feature-notes-api-endpoints
Fixes #17448: feat(api) - API endpoint for Adding Ad-Hoc Notes to Assets
2025-08-26 12:40:52 +01:00
snipe a6b74d56c6 Merge pull request #17709 from grokability/add-display-name-to-users-fixed
Added display name to users for LDAP/SCIM, added new sync fields (replaced #17650)
2025-08-26 12:39:25 +01:00
snipe a4222bcaef Merge pull request #17711 from grokability/dependabot/github_actions/develop/actions/checkout-5
Bump actions/checkout from 4 to 5
2025-08-26 12:10:24 +01:00
snipe ecf24511cd Fixed tests for real this time tho
Signed-off-by: snipe <snipe@snipe.net>
2025-08-26 12:09:55 +01:00
snipe abb097a391 Merge pull request #17714 from Godmartinz/Audit_null_fix
Added null checks to MS Teams Audit notification
2025-08-26 10:44:51 +01:00
spencerrlongg 1d88cf443f revert SuppliersController as well 2025-08-25 18:45:31 -05:00
spencerrlongg 7b6c0c3a40 Revert "tests passing, needs some manual testing"
This reverts commit fdb0651bf4.
2025-08-25 18:42:11 -05:00
spencerrlongg fdb0651bf4 tests passing, needs some manual testing 2025-08-25 18:25:36 -05:00
Godfrey M dd742a2e4a add a check for audit notification variables in MS Teams and a translation 2025-08-25 15:10:41 -07:00
spencerrlongg c39d484611 rm unused import, new prop 2025-08-25 16:30:53 -05:00
spencerrlongg c42996429f rm unused import 2025-08-25 14:10:12 -05:00
spencerrlongg a091baf5a6 component finally working 2025-08-25 14:06:56 -05:00
Godfrey M 128bdf500a sends an email for to locale and cc locale 2025-08-25 12:02:23 -07:00
dependabot[bot] 73ac00bc51 Bump actions/checkout from 4 to 5
Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 5.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-25 16:25:39 +00:00
snipe 3524e23e38 Fixed tests
Signed-off-by: snipe <snipe@snipe.net>
2025-08-25 17:17:45 +01:00
Jakub Aqaba Štarman be0f3910bb Fixed: Old computation 2025-08-25 16:57:32 +02:00
snipe 07dbc6842c Are you KIDDING ME, Github??
This reverts commit c8e79aa5ca, reversing
changes made to e60f2b2332.

Signed-off-by: snipe <snipe@snipe.net>
2025-08-25 15:56:28 +01:00
Jakub Aqaba Štarman 5a16b59462 Adds support for label sheets Avery L4736 & L6009 2025-08-25 16:47:52 +02:00
Brady Wetherington 13cd7071b8 WIP improving some LDAP stuff 2025-08-25 15:41:01 +01:00
snipe 40108b196c Trying to fix import tests :(
Signed-off-by: snipe <snipe@snipe.net>
2025-08-25 15:28:43 +01:00
snipe c8e79aa5ca Merge branch 'develop' into add-display-name-to-users-fixed 2025-08-25 15:28:20 +01:00
snipe e60f2b2332 Tightened up accessor code for better inheritence
Signed-off-by: snipe <snipe@snipe.net>
2025-08-25 15:00:10 +01:00
snipe b6d397bcca Updated ->present()->fullName() to ->display_name
Signed-off-by: snipe <snipe@snipe.net>
2025-08-25 14:57:34 +01:00
Marcus Moore 918426a2fa Add qty to accept assets table 2025-08-21 15:49:36 -07:00
Marcus Moore c076b37c9b Add qty to accessory eula pdf 2025-08-21 15:05:24 -07:00
Marcus Moore 7c58bfa282 Add qty to AcceptanceAssetDeclinedNotification 2025-08-21 14:56:24 -07:00
Marcus Moore 0caaba156d Add qty to AcceptanceAssetAcceptedNotification 2025-08-21 14:54:43 -07:00
Marcus Moore c22575812d Add qty to AcceptanceAssetAcceptedToUserNotification 2025-08-21 14:53:00 -07:00
Marcus Moore 0ede4da816 Remove CleanDeclinedAccessoryCheckouts command 2025-08-21 14:34:31 -07:00
Marcus Moore 98e23ff92e Remove legacy testing from test 2025-08-21 14:34:16 -07:00
snipe 6503f9c667 Revert "Merge pull request #17650 from grokability/add-displayName-to-users"
This reverts commit 4770e469b4, reversing
changes made to 29a18c7c8b.

Signed-off-by: snipe <snipe@snipe.net>
2025-08-21 20:23:47 +01:00
snipe 4770e469b4 Merge pull request #17650 from grokability/add-displayName-to-users
Add display name to users for LDAP/SCIM, added new sync fields
2025-08-21 18:22:34 +01:00
snipe 29a18c7c8b Merge pull request #17696 from uberbrady/add_created_at_index_to_models
Fixed [FD-49550] - added a 'created_at' index to the models table
2025-08-21 14:54:20 +01:00
Brady Wetherington 6db0003e3f Adds a 'created_at' index to the models table 2025-08-21 13:44:14 +01:00
snipe c538c460fa Merge pull request #17695 from grokability/#17482-better-localization-indates-on-asset-view
Use nicer local for purchase date
2025-08-21 13:13:26 +01:00
snipe 822339fe42 Moved warning
Signed-off-by: snipe <snipe@snipe.net>
2025-08-21 13:13:11 +01:00
snipe b84d9282ca Use normal locale for warranty
Signed-off-by: snipe <snipe@snipe.net>
2025-08-21 13:05:01 +01:00
snipe 00a17cd55e Merge remote-tracking branch 'origin/develop' 2025-08-21 11:51:50 +01:00
snipe 952b6f33bb Add @strobelm as a contributor 2025-08-21 11:51:37 +01:00
snipe c57c4b8ff2 Merge pull request #17691 from qay21/fix-components-url
Fix components presenting wrong URLs
2025-08-21 11:37:27 +01:00
snipe 39e6223ff2 POssible alternative to #17386 - adding SAML key size to env
Signed-off-by: snipe <snipe@snipe.net>
2025-08-21 11:27:50 +01:00
qay d8dd274c08 Fix components presenting wrong URLs 2025-08-21 12:26:13 +02:00
snipe 15f97b6cb9 Merge pull request #17591 from Godmartinz/add-serial-to-expiring-asset-report
Adds #17440 serial number column to Expiring Assets Report
2025-08-21 11:14:45 +01:00
snipe fc091c1174 Added comments
Signed-off-by: snipe <snipe@snipe.net>
2025-08-21 09:29:12 +01:00
snipe c07ef4d87f A few small tweaks
Signed-off-by: snipe <snipe@snipe.net>
2025-08-21 09:25:42 +01:00
spencerrlongg 643d44af22 change \Throwable to \Exceptionm, add missing report()s 2025-08-20 23:09:59 -05:00
spencerrlongg b934f43db0 rename all exceptions 2025-08-20 22:58:39 -05:00
Marcus Moore c7bdad649a Build out command 2025-08-20 16:06:11 -07:00
Marcus Moore 18c2508d2f Scaffold command for cleaning accessory_checkout 2025-08-20 13:49:19 -07:00
Marcus Moore 4dcfd8b353 Improve method name 2025-08-20 13:19:00 -07:00
Marcus Moore 726116574d Improve readability? 2025-08-20 12:40:03 -07:00
Marcus Moore 27f02014ca Add failing test 2025-08-20 12:26:55 -07:00
Marcus Moore f80f1acaa7 Improve variable name 2025-08-20 12:15:58 -07:00
Marcus Moore 39d5ffeceb Implement fix 2025-08-20 12:05:58 -07:00
Marcus Moore 48ba7eed3e Remove legacy checks from test 2025-08-20 11:45:36 -07:00
snipe f39afe5a65 Merge remote-tracking branch 'origin/develop' 2025-08-20 15:56:19 +01:00
snipe 11eee833bb Fixed #17667 - Switch to hyphens for windows
Signed-off-by: snipe <snipe@snipe.net>
2025-08-20 15:56:10 +01:00
snipe 35b358d336 Check for $user to handle tests
Signed-off-by: snipe <snipe@snipe.net>
2025-08-20 14:47:58 +01:00
snipe ae109be631 Small tweaks
Signed-off-by: snipe <snipe@snipe.net>
2025-08-20 14:43:52 +01:00
snipe 3f7ed73395 Added laravel telescope for dev environment
Signed-off-by: snipe <snipe@snipe.net>
2025-08-20 14:26:28 +01:00
snipe 7612ee6b08 Merge remote-tracking branch 'origin/develop' 2025-08-20 14:17:38 +01:00
snipe fec9d716ee Merge pull request #17679 from grokability/#17674-add-ods-and-odt
Fixed #17674: added .ods, .odp, and .odt as acceptable upload types
2025-08-20 14:17:08 +01:00
snipe da5b1afd19 Removed logging
Signed-off-by: snipe <snipe@snipe.net>
2025-08-20 14:11:42 +01:00
snipe 618106c103 Fixed #17674 - added odp, ods, odt to accepted files
Signed-off-by: snipe <snipe@snipe.net>
2025-08-20 14:11:20 +01:00
snipe 2ed2b0101a Merge remote-tracking branch 'origin/develop' 2025-08-20 12:43:57 +01:00
snipe 312be98132 Add @FlorestanII as a contributor 2025-08-20 12:43:43 +01:00
snipe e0bb77a6d6 Merge pull request #17664 from FlorestanII/feature/support-for-dymo-11354-labels
Support for Dymo 11354 Labels.
2025-08-20 12:43:29 +01:00
snipe 5ca9d31964 Merge remote-tracking branch 'origin/develop' 2025-08-20 11:32:27 +01:00
snipe 855922c21a Account for null in tetss (vs 0)
Signed-off-by: snipe <snipe@snipe.net>
2025-08-20 11:32:16 +01:00
snipe bc645d2621 Use email formatter in licensed_to_email display
Signed-off-by: snipe <snipe@snipe.net>
2025-08-20 11:24:16 +01:00
snipe 2fcd8cd261 Merge remote-tracking branch 'origin/develop' 2025-08-20 11:00:26 +01:00
snipe 9c06ff3899 Check for numeric
Signed-off-by: snipe <snipe@snipe.net>
2025-08-20 11:00:18 +01:00
snipe 2a37aa3b49 Fixed tooltip
Signed-off-by: snipe <snipe@snipe.net>
2025-08-20 10:34:05 +01:00
snipe 0ffa47a2c6 Merge remote-tracking branch 'origin/develop' 2025-08-20 09:58:54 +01:00
snipe bf591320af Fixed #17665 - delete custom report modal
Signed-off-by: snipe <snipe@snipe.net>
2025-08-20 09:58:30 +01:00
snipe 56e687bed2 Retuen the display name in the API call
Signed-off-by: snipe <snipe@snipe.net>
2025-08-20 09:33:00 +01:00
Marcus Moore 9caa240fdb Revert "Remove total qty of accessory checkouts"
This reverts commit 3ffb73a516.
2025-08-19 17:17:46 -07:00
Marcus Moore 3ffb73a516 Remove total qty of accessory checkouts 2025-08-19 17:04:13 -07:00
Marcus Moore cc1132be87 Remove flakiness 2025-08-19 16:50:36 -07:00
Marcus Moore 1c31f126ef Clear some flakiness 2025-08-19 16:46:41 -07:00
Marcus Moore d8eaf2676f Add a couple of notes 2025-08-19 15:54:46 -07:00
akemidx c95462328a selected value(s) 2025-08-19 18:35:07 -04:00
snipe 07b25fe376 Add display name to summary
Signed-off-by: snipe <snipe@snipe.net>
2025-08-19 20:52:18 +01:00
snipe c2ecd20b7d Updated field text
Signed-off-by: snipe <snipe@snipe.net>
2025-08-19 20:47:48 +01:00
snipe 1b42abcc98 Fixed mapping
Signed-off-by: snipe <snipe@snipe.net>
2025-08-19 19:54:32 +01:00
snipe 9efb49d510 Merge pull request #17663 from Godmartinz/sub-out-translation
Fixes #17653 changes translation to administrator
2025-08-19 19:43:47 +01:00
akemidx 84fc89250a backend works, no save yet 2025-08-19 14:30:26 -04:00
snipe 2d6270c697 Updated validation, switch to string() as db field type
Signed-off-by: snipe <snipe@snipe.net>
2025-08-19 19:19:29 +01:00
snipe 0823c23a6e Fixed placeholder text
Signed-off-by: snipe <snipe@snipe.net>
2025-08-19 18:51:56 +01:00
snipe b3f0ce4b2a Use fieldsets for LDAP settings
Signed-off-by: snipe <snipe@snipe.net>
2025-08-19 18:38:47 +01:00
snipe 8b83584b67 Added mapping fields to LDAP
Signed-off-by: snipe <snipe@snipe.net>
2025-08-19 18:31:58 +01:00
Godfrey M 9eb686fe08 changes translation to administrator 2025-08-19 10:23:15 -07:00
Johannes Pollitt 765051ce88 Added LabelWriter for 11354 format labels.
Printable for example with the Dymo LabelWriter 450.
2025-08-19 19:21:48 +02:00
Godfrey M ed402e0122 adds serial underneath name 2025-08-19 10:10:20 -07:00
snipe e203d4dee3 Merge remote-tracking branch 'origin/develop' 2025-08-19 14:49:00 +01:00
snipe 1488271a83 Added #8522 - depreciation info on Asset API
Signed-off-by: snipe <snipe@snipe.net>
2025-08-19 14:48:48 +01:00
snipe b47d773e13 Merge remote-tracking branch 'origin/develop' 2025-08-19 14:34:32 +01:00
snipe 48bbf8d005 Merge pull request #17655 from uberbrady/add_category_indexes
Add new indexes to category_id and deleted_at
2025-08-19 14:26:38 +01:00
Brady Wetherington e97b969d66 Add new indexes to category_id and deleted_at 2025-08-19 14:20:36 +01:00
snipe a8d0a4a95d Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	public/js/dist/all.js
#	public/js/dist/all.js.map
#	public/mix-manifest.json
2025-08-19 14:12:58 +01:00
snipe cdd12df81a Fixed #17627 - jquery UI fix for draggable/sortable
Signed-off-by: snipe <snipe@snipe.net>
2025-08-19 14:12:06 +01:00
snipe 3fb0804cef Merge remote-tracking branch 'origin/develop' 2025-08-19 13:57:36 +01:00
snipe 050a3afc74 Fixed #17649 - nicer layout on new location modal
Signed-off-by: snipe <snipe@snipe.net>
2025-08-19 13:56:21 +01:00
snipe 270401c693 Added display name to user create modal
Signed-off-by: snipe <snipe@snipe.net>
2025-08-19 13:12:57 +01:00
snipe 551822ce7d Merge pull request #17648 from grokability/possible-fix-for-#17641-map-mobile-via-scim
Fixed #17641: map mobile number via SCIM
2025-08-19 13:09:07 +01:00
snipe 4b8c371097 Updated true to false
Signed-off-by: snipe <snipe@snipe.net>
2025-08-19 12:59:28 +01:00
snipe 90fbf6da46 Modify the presenter to see if they have a display_name set
Signed-off-by: snipe <snipe@snipe.net>
2025-08-19 12:56:44 +01:00
snipe 0c3103e3d2 Modify the getter
Signed-off-by: snipe <snipe@snipe.net>
2025-08-19 12:56:30 +01:00
snipe 6a8e1566fe Added display_name to a few more places
Signed-off-by: snipe <snipe@snipe.net>
2025-08-19 12:56:11 +01:00
snipe ced30082a6 Added display_name as user field
Signed-off-by: snipe <snipe@snipe.net>
2025-08-19 12:10:28 +01:00
snipe f6c64abc1a Fixed #17641 - map mobile number via SCIM
Signed-off-by: snipe <snipe@snipe.net>
2025-08-19 11:41:02 +01:00
snipe 6811ebcd52 Merge remote-tracking branch 'origin/develop' 2025-08-19 10:12:56 +01:00
snipe 7f9939a896 Merge pull request #17638 from Godmartinz/asset-tag-added-to-subject-line
Adds asset tag to subject line of check in check out
2025-08-19 09:36:25 +01:00
akemidx a80f52cbf4 putting dropdown back 2025-08-18 19:47:26 -04:00
Godfrey M 1c99f2dfdd readd doesntorequireacceptance() to test 2025-08-18 10:52:35 -07:00
Godfrey M 1974fccac3 add tag to other notification test 2025-08-18 10:48:39 -07:00
Godfrey M 911552035e fix other test 2025-08-18 10:39:10 -07:00
Godfrey M ff25d275ee fix tests 2025-08-18 10:31:03 -07:00
Godfrey M 1fcf5e03e7 adds asset tag to subject line of checkin/out 2025-08-18 10:16:47 -07:00
snipe 4fe7bfb851 Merge remote-tracking branch 'origin/develop' 2025-08-18 15:24:25 +01:00
snipe 9b4101855f Undo double-float
Signed-off-by: snipe <snipe@snipe.net>
2025-08-18 15:24:15 +01:00
snipe 9253d894d3 Removed XSS-Protection header
@see https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/X-XSS-Protection#security_considerations

Signed-off-by: snipe <snipe@snipe.net>
2025-08-18 13:30:53 +01:00
snipe fb60985d03 Merge remote-tracking branch 'origin/develop' 2025-08-18 12:47:19 +01:00
snipe ebd79f22c7 Merge pull request #17636 from grokability/#17627-custom-fields-sorting
Fixed #17627: custom fields not sorting correctly
2025-08-18 12:47:03 +01:00
snipe c1b139fb9a Fixed #17627: custom fields not sorting correctly
Signed-off-by: snipe <snipe@snipe.net>
2025-08-18 12:31:03 +01:00
snipe 8f575923cf Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	public/css/build/app.css
#	public/css/build/app.css.map
#	public/css/build/overrides.css
#	public/css/build/overrides.css.map
#	public/css/dist/all.css
#	public/mix-manifest.json
2025-08-18 11:26:43 +01:00
snipe a88bcea8ca Merge pull request #17635 from grokability/#17367-fixed-padlock-icon
Fixed #17367: Small adjustment to css-padlock
2025-08-18 11:25:55 +01:00
snipe 21566560a7 Fixed #17367: Small adjustment to css-padlock
Signed-off-by: snipe <snipe@snipe.net>
2025-08-18 11:24:05 +01:00
snipe 0ecfd02649 Merge remote-tracking branch 'origin/develop' 2025-08-18 11:00:30 +01:00
snipe e3ca43bf40 Remove use of formatCurrencyOutput for input display
Signed-off-by: snipe <snipe@snipe.net>
2025-08-18 11:00:19 +01:00
snipe 420aaf4f61 Merge remote-tracking branch 'origin/develop' 2025-08-18 09:45:19 +01:00
snipe 61abb8d5cb Fixed hardware.bulkedit redirect
Signed-off-by: snipe <snipe@snipe.net>
2025-08-18 09:45:02 +01:00
snipe 0c35f213e1 Merge remote-tracking branch 'origin/develop' 2025-08-17 14:54:43 +01:00
snipe ecad656551 Merge pull request #17626 from grokability/#17606-s3-url-for-models-on-requestable-view
Fixed #17606 - use `getImageUrl()` to determine if local or S3
2025-08-17 14:54:13 +01:00
snipe 615e6d6e4f Fixes #17606 - use getImageUrl() to determine if local or S3
Signed-off-by: snipe <snipe@snipe.net>
2025-08-17 14:51:52 +01:00
snipe f68813af13 Merge remote-tracking branch 'origin/develop' 2025-08-17 14:11:41 +01:00
snipe 6dceefb96e Merge pull request #17625 from grokability/#17620-delete-method-custom-fields
Fixed #17620 - delete method custom fields causing method not allowed error
2025-08-17 14:11:17 +01:00
snipe 69eff394fd Removed use statement
Signed-off-by: snipe <snipe@snipe.net>
2025-08-17 14:06:56 +01:00
snipe a9da3aca81 Combine fields and fieldset exception
Signed-off-by: snipe <snipe@snipe.net>
2025-08-17 14:06:49 +01:00
snipe 91f3556375 Added delete test
Signed-off-by: snipe <snipe@snipe.net>
2025-08-17 13:33:53 +01:00
snipe aab7c3a840 Updated custom fields and fieldset pages to use standard delete modal
Signed-off-by: snipe <snipe@snipe.net>
2025-08-17 13:33:47 +01:00
snipe 9c823119e3 Added new factories for user custom field permissions
Signed-off-by: snipe <snipe@snipe.net>
2025-08-17 13:31:14 +01:00
snipe f5128833f6 Updated comments
Signed-off-by: snipe <snipe@snipe.net>
2025-08-17 13:30:52 +01:00
snipe 2bc144354a Use translations and more standard error bag
Signed-off-by: snipe <snipe@snipe.net>
2025-08-17 13:30:43 +01:00
snipe e6fec6ec34 Trim model name for display
Signed-off-by: snipe <snipe@snipe.net>
2025-08-17 13:30:28 +01:00
snipe 37a90d0ce9 Merge remote-tracking branch 'origin/develop' 2025-08-15 15:07:29 +02:00
snipe 53389875bf Merge pull request #17611 from grokability/#9965-fallback-to-category-image-for-consumables
Fixed #9965 - fallback to category images (f there are any) when no c…
2025-08-15 15:07:13 +02:00
snipe 3b243b38c8 Fixed #9965 - fallback to category images (f there are any) when no consumable image is present
Signed-off-by: snipe <snipe@snipe.net>
2025-08-15 15:03:09 +02:00
snipe 02f1291e8f Merge remote-tracking branch 'origin/develop' 2025-08-15 14:41:24 +02:00
snipe 3d9580808b Merge pull request #17524 from Godmartinz/add-category-and-model-to-checkout-emial
Adds #17507 Category and Model No. to accessory checkout markdown
2025-08-15 14:39:58 +02:00
snipe 2141ee71d4 Merge pull request #17544 from marcusmoore/fixes/custom-field-filter
Fixed invalid custom fields being used for filtering
2025-08-15 14:39:09 +02:00
snipe 01dd07083e Merge pull request #17584 from spencerrlongg/bug/17312-custom-field-checkbox-will-not-clear-if-no-checkboxes-should-be-selected
Fixed #17312 - Fix Nulling Checkboxes
2025-08-15 14:35:37 +02:00
snipe 42a28ea06b Merge pull request #17593 from Godmartinz/add-admin-to-acceptance-emails
FIXED #17380 Adds Admin name to acceptance emails
2025-08-15 14:33:02 +02:00
snipe 92e4f6b5d9 Merge remote-tracking branch 'origin/develop' 2025-08-15 14:31:53 +02:00
snipe 180cb6ba8e Merge pull request #17610 from grokability/#17600-add-checkout-date-to-accessory-list
Fixed #17600 - adds checkout date to accessories tab in user view
2025-08-15 14:31:38 +02:00
snipe a78762e40b Fixed #17600 - adds checkout date to accessories tab in user view
Signed-off-by: snipe <snipe@snipe.net>
2025-08-15 14:29:55 +02:00
snipe 7b7738fbcc Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	public/css/build/app.css
#	public/css/build/app.css.map
#	public/css/build/overrides.css
#	public/css/build/overrides.css.map
#	public/css/dist/all.css
#	public/mix-manifest.json
2025-08-15 14:24:30 +02:00
snipe 9797bb19e2 Updated dev assets
Signed-off-by: snipe <snipe@snipe.net>
2025-08-15 14:23:22 +02:00
Marcus Moore 3101212c49 Continue to scaffold test 2025-08-14 17:24:36 -07:00
akemidx 7ce324a3a5 controller 2025-08-14 17:42:19 -04:00
Marcus Moore 3f0ac103a1 Scaffold test 2025-08-14 13:29:18 -07:00
Marcus Moore 59bd6ca360 Update button text 2025-08-14 13:21:11 -07:00
Marcus Moore 22fe9a786e Display number of items being accepted 2025-08-14 12:36:46 -07:00
snipe 08a9554b3c Merge pull request #17607 from Godmartinz/color-corrections-pt9000
Fixes #17488 more info text colors
2025-08-14 20:39:26 +02:00
Godfrey M d79bd825ee fix popover text color 2025-08-14 10:51:31 -07:00
Godfrey M fe3d225cfa fix tests 2025-08-14 09:15:19 -07:00
akemidx 7624082b29 dropdown 2025-08-13 18:07:39 -04:00
snipe 31197604a3 Merge pull request #17602 from grokability/develop
Merge develop into master
2025-08-13 21:19:39 +02:00
Marcus Moore d2ee8de9ac Attach qty to CheckoutAcceptance 2025-08-13 12:14:10 -07:00
Marcus Moore 03d3fb6a5f Add qty to checkout_acceptances table 2025-08-13 12:09:56 -07:00
snipe 376e0db66e Merge pull request #17601 from ubc-cpsc/bugfix/CVE-2025-55166
Fixes CVE-2025-55166
2025-08-13 20:49:41 +02:00
Joël Pittet 5fdabc1a62 Fixes CVE-2025-55166 2025-08-13 11:42:14 -07:00
akemidx 6d3bba696a first front end bit 2025-08-12 19:14:11 -04:00
Godfrey M dfe2a75d72 adds user that checked out item to acceptance emails 2025-08-12 15:34:46 -07:00
Godfrey M ba85af11aa adds serial to expiring assets report email 2025-08-12 14:59:20 -07:00
Godfrey M db58b80d27 Merge branch 'develop' into add-category-and-model-to-checkout-emial
# Conflicts:
#	app/Mail/CheckoutLicenseMail.php
2025-08-12 14:20:08 -07:00
Godfrey M 5cb8aae383 add ternaries 2025-08-12 14:16:46 -07:00
spencerrlongg 817530429b added condition to make sure the request has checkbox 2025-08-12 14:52:52 -05:00
spencerrlongg e33b1b6c90 fixed maintenances 2025-08-12 13:34:40 -05:00
Spencer Long 30520297e8 Merge branch 'develop' into feature/8709-bulk-deletion-of-asset-categories-suppliers-manufacturers 2025-08-12 11:58:11 -06:00
spencerrlongg 78ca1d1335 some cleanup 2025-08-11 21:07:08 -05:00
spencerrlongg 6159ee8c2c category done! 2025-08-11 20:16:43 -05:00
spencerrlongg 5cd5392958 manufacturer completed, just categories left 2025-08-11 19:42:09 -05:00
spencerrlongg 0dcdfc5d14 fix tests after routing change 2025-08-11 19:11:40 -05:00
spencerrlongg d0e068f1c0 suppliers completely done, rinse and repeat for the other two 2025-08-11 19:04:36 -05:00
Marcus Moore 4a7b7183d2 Add custom_fields. prefix so custom fields can be filtered against 2025-08-11 14:58:41 -07:00
snipe f42a2d7457 Merge remote-tracking branch 'origin/develop' 2025-08-11 20:45:38 +01:00
snipe 94bd39cf23 Merge pull request #17570 from grokability/#10038-add-active-flag-filter
Added sidenav to filter on activated vs inactive users
2025-08-11 20:45:22 +01:00
snipe 4038a22093 Added sidenav to filter on activated vs inactive users
Signed-off-by: snipe <snipe@snipe.net>
2025-08-11 20:41:55 +01:00
snipe d29619b67c Merge remote-tracking branch 'origin/develop' 2025-08-11 18:50:17 +01:00
snipe 682baec0c9 Merge pull request #17569 from grokability/#10284-add-mobile-number
Fixed #10284: Added mobile phone to users
2025-08-11 18:49:49 +01:00
snipe ff91be491d Added mobile to tests
Signed-off-by: snipe <snipe@snipe.net>
2025-08-11 18:43:37 +01:00
snipe ef35a0f2f1 Fixed #10284: Added mobile phone to users
Signed-off-by: snipe <snipe@snipe.net>
2025-08-11 18:38:22 +01:00
snipe f5235cb835 Merge remote-tracking branch 'origin/develop' 2025-08-11 18:12:51 +01:00
snipe f12a3bb08b Fixed #10306 - cast purchase cost to a float
Signed-off-by: snipe <snipe@snipe.net>
2025-08-11 18:12:37 +01:00
snipe ee830e0cb4 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	public/css/build/app.css
#	public/css/build/app.css.map
#	public/css/build/overrides.css
#	public/css/build/overrides.css.map
#	public/css/dist/all.css
#	public/mix-manifest.json
2025-08-11 14:58:57 +01:00
snipe c8a5065ffa Merge pull request #17567 from grokability/#11754-nicer-menu-alignment
Fixed #11754: nicer menu alignment for dropdowns
2025-08-11 14:57:59 +01:00
snipe 23da5573f3 Fixed #11754 - nicer top menu dropdown alignment
Signed-off-by: snipe <snipe@snipe.net>
2025-08-11 14:56:43 +01:00
snipe b08f985776 Merge pull request #17566 from grokability/partial-fix-for-#17565-standard-layout
Show all icons on location table, even if no results
2025-08-11 14:17:59 +01:00
snipe 9b968baaa7 Show all icons, even if no results
Signed-off-by: snipe <snipe@snipe.net>
2025-08-11 14:14:15 +01:00
snipe 07edbe6f1c Add @mckaygerhard as a contributor 2025-08-11 13:08:54 +01:00
snipe 0cd3be003d Merge remote-tracking branch 'origin/develop' 2025-08-11 13:07:00 +01:00
snipe 1f55a8b6e3 Added icon and tooltip
Signed-off-by: snipe <snipe@snipe.net>
2025-08-11 13:06:37 +01:00
snipe f6b9e11810 Merge pull request #17538 from mckaygerhard/mail-log-improvements
Mail log for #17491 and some improvements on log errors
2025-08-11 13:05:56 +01:00
snipe c93e35ec77 Merge remote-tracking branch 'origin/develop' 2025-08-11 11:18:31 +01:00
snipe c18a3e4266 Fixed #17562 - bootstrap table formater undefined
Signed-off-by: snipe <snipe@snipe.net>
2025-08-11 11:18:20 +01:00
snipe 9538a76232 Merge remote-tracking branch 'origin/develop' 2025-08-11 06:26:29 +01:00
snipe 5840ef1c6f Fixed #17560
Signed-off-by: snipe <snipe@snipe.net>
2025-08-11 06:26:15 +01:00
snipe 7974baddf5 Merge pull request #17551 from grokability/move-file-uploads-paths-to-base-controller
Move the object type mapping and such to the base controller to de-dupe
2025-08-11 05:44:39 +01:00
snipe 05876bb124 Merge remote-tracking branch 'origin/develop' 2025-08-11 05:05:13 +01:00
snipe 4bf569758f Cleans up a few rmore outes
Signed-off-by: snipe <snipe@snipe.net>
2025-08-11 05:05:00 +01:00
snipe 8bcd5a6d2a Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	config/version.php
2025-08-10 21:04:55 +01:00
snipe f56fd9bb0b Bumped hash
Signed-off-by: snipe <snipe@snipe.net>
2025-08-10 21:04:33 +01:00
snipe a36afbcb25 Merge remote-tracking branch 'origin/develop' 2025-08-10 21:02:48 +01:00
snipe 357ee5fc45 Copy over the old dirs just in case
Signed-off-by: snipe <snipe@snipe.net>
2025-08-10 21:02:37 +01:00
snipe ebd8d085cf Merge remote-tracking branch 'origin/develop' 2025-08-10 21:01:34 +01:00
snipe c6dea085b2 Missed a few
Signed-off-by: snipe <snipe@snipe.net>
2025-08-10 21:01:23 +01:00
snipe 505148b024 Merge remote-tracking branch 'origin/develop' 2025-08-10 20:51:27 +01:00
snipe 8782c3ecec Merge pull request #17554 from grokability/#13997-add-ldap-sync-via-api
Adds #13997 - API endpoint to sync users via LDAP
2025-08-10 20:30:44 +01:00
snipe b636cf2ef0 Merge pull request #17555 from grokability/#17490-use-numeric-for-purchase-cost
Fixed #17490: use numeric for purchase cost
2025-08-10 20:30:15 +01:00
snipe 6dee2b8601 Fixed 17490 - currency symbol breaks purchase_cost
Signed-off-by: snipe <snipe@snipe.net>
2025-08-10 19:04:52 +01:00
snipe bcf301ac17 Adds #13997 - API endpoint to sync users via LDAP
Signed-off-by: snipe <snipe@snipe.net>
2025-08-10 18:48:01 +01:00
snipe bf2120fb31 Use newer file path 2025-08-10 18:26:41 +01:00
snipe de56b74f3e Merge branch 'develop' into move-file-uploads-paths-to-base-controller 2025-08-10 18:25:47 +01:00
snipe 2f146abe91 Let people upload images on the demo
Signed-off-by: snipe <snipe@snipe.net>
2025-08-10 18:20:35 +01:00
snipe 543d41b6ff Merge pull request #17553 from grokability/#17547-asset-model-images-not-loading
Fixed #17547: asset model images not loading
2025-08-10 18:15:57 +01:00
snipe 8da0dd7563 Use strtolower
Signed-off-by: snipe <snipe@snipe.net>
2025-08-10 18:11:39 +01:00
snipe a2217d7dbc Specify the public disk for creating directories
Signed-off-by: snipe <snipe@snipe.net>
2025-08-10 18:08:15 +01:00
snipe ea84728a3f Rename models uploads dir
Signed-off-by: snipe <snipe@snipe.net>
2025-08-10 17:58:11 +01:00
snipe b2d10f7ccf Rename directory
Signed-off-by: snipe <snipe@snipe.net>
2025-08-10 17:56:59 +01:00
snipe b6af25ce99 Fixed #17548 - treeview menu class on people menu
Signed-off-by: snipe <snipe@snipe.net>
2025-08-10 17:20:49 +01:00
snipe 7a9d2454d4 Move the object type mapping and such to the base controller to de-dupe
Signed-off-by: snipe <snipe@snipe.net>
2025-08-10 16:30:32 +01:00
snipe a9254cff02 Merge pull request #17550 from grokability/addded-observer-for-maintenances
Added basic logging for maintenances
2025-08-10 16:00:49 +01:00
snipe d14b34141c Updated comment
Signed-off-by: snipe <snipe@snipe.net>
2025-08-10 15:53:53 +01:00
snipe 14bc2cc1ba Added basic logging for maintenances
Signed-off-by: snipe <snipe@snipe.net>
2025-08-10 15:51:48 +01:00
snipe a91b54b97a Added buttons to maintenances table
Signed-off-by: snipe <snipe@snipe.net>
2025-08-10 14:55:34 +01:00
snipe ead655e1db Fixed translation
Signed-off-by: snipe <snipe@snipe.net>
2025-08-10 14:52:40 +01:00
snipe c5f28748f7 Merge pull request #17549 from grokability/rename_title_to_name_for_maintenances
Renamed table from `asset_maintenances` to `maintenances` and `title` to `name` for maintenances
2025-08-10 14:28:51 +01:00
snipe ee4831cb30 Removed followsRedirects so we can check the status
Signed-off-by: snipe <snipe@snipe.net>
2025-08-10 14:23:41 +01:00
snipe deb1afd28b Few more replcamenents
Signed-off-by: snipe <snipe@snipe.net>
2025-08-10 14:14:21 +01:00
snipe 9e8eead71e Renamed routes and method names
Signed-off-by: snipe <snipe@snipe.net>
2025-08-10 13:29:48 +01:00
snipe 3f96f7cbd7 Updated file paths for uploads
Signed-off-by: snipe <snipe@snipe.net>
2025-08-10 13:24:45 +01:00
snipe dde2e88332 Renamed variables in purge
Signed-off-by: snipe <snipe@snipe.net>
2025-08-10 13:24:32 +01:00
snipe ff25015595 Renamed more files
Signed-off-by: snipe <snipe@snipe.net>
2025-08-10 13:24:14 +01:00
snipe 7d0c695808 Renamed language directories
Signed-off-by: snipe <snipe@snipe.net>
2025-08-10 13:23:52 +01:00
snipe 906385def9 Renamed directories
Signed-off-by: snipe <snipe@snipe.net>
2025-08-10 13:23:16 +01:00
snipe a6c6c7eae9 Updated tests
Signed-off-by: snipe <snipe@snipe.net>
2025-08-10 13:11:50 +01:00
snipe 205725c767 Renamed model
Signed-off-by: snipe <snipe@snipe.net>
2025-08-10 12:30:50 +01:00
snipe c207efbb35 Rename model in breadcrumbs
Signed-off-by: snipe <snipe@snipe.net>
2025-08-10 12:30:42 +01:00
snipe c0211e59b3 Renames maintenances presenter
Signed-off-by: snipe <snipe@snipe.net>
2025-08-10 12:30:23 +01:00
snipe dd2678cbb9 Rename maintenances path
Signed-off-by: snipe <snipe@snipe.net>
2025-08-10 12:30:09 +01:00
snipe e2c87b664e Rename factory
Signed-off-by: snipe <snipe@snipe.net>
2025-08-10 12:28:58 +01:00
snipe 29d4b4dd53 Updated API routes
Signed-off-by: snipe <snipe@snipe.net>
2025-08-10 12:28:28 +01:00
snipe 3fba307e55 Updated routes
Signed-off-by: snipe <snipe@snipe.net>
2025-08-10 12:28:18 +01:00
snipe 7171fa36d8 Added migrations
Signed-off-by: snipe <snipe@snipe.net>
2025-08-10 12:27:59 +01:00
snipe c570f656bf Renamed test
Signed-off-by: snipe <snipe@snipe.net>
2025-08-10 12:27:48 +01:00
snipe a5e37519f5 Merge pull request #17539 from grokability/add-file-uploads-to-maintenances
WIP: Add file uploads to maintenances
2025-08-10 11:13:19 +01:00
snipe 0f88d6eec3 Removed error logging
Signed-off-by: snipe <snipe@snipe.net>
2025-08-10 11:09:29 +01:00
snipe 651c51bb01 Remove unused statements
Signed-off-by: snipe <snipe@snipe.net>
2025-08-10 10:41:46 +01:00
spencerrlongg 3eefeec4ce partials made, need to figure out all this jquery, button disabled 2025-08-09 22:40:00 -05:00
spencerrlongg b61419c1ce oop, revert delete 2025-08-09 22:19:28 -05:00
spencerrlongg f590fcffbc some tests, a component i probably won't use, beginning of front end 2025-08-09 22:16:23 -05:00
mckaygerhard 0fdbdfd5c2 Improve log error handling regarding notification sending for issue #17491
* when an error is generated when denying checkouts, there are not enough logs
to determine the problem from the email provider
* missing handling of log test mail config, there is none of logs cos there
is no log handling on test email, becouse all the results are just sent to
the http response and no log were writen.
2025-08-08 12:18:04 -04:00
snipe 31056ff858 Added new dirs to restore tool
Signed-off-by: snipe <snipe@snipe.net>
2025-08-08 12:56:07 +01:00
snipe 8d2643696b Deleted unused user file controller
Signed-off-by: snipe <snipe@snipe.net>
2025-08-08 12:55:59 +01:00
snipe e7488d19e9 Fixed name for uploaded files controller
Signed-off-by: snipe <snipe@snipe.net>
2025-08-08 12:55:48 +01:00
snipe 2bb3b6d64c Fixed prefixes
Signed-off-by: snipe <snipe@snipe.net>
2025-08-08 12:55:24 +01:00
snipe 5744e48ae8 Added getDisplayNameAttribute() to maintenances
Signed-off-by: snipe <snipe@snipe.net>
2025-08-08 12:54:36 +01:00
snipe 82d0a21440 Added to actionlog model
Signed-off-by: snipe <snipe@snipe.net>
2025-08-08 12:54:09 +01:00
snipe 58133cffac Updated maintenance model
Signed-off-by: snipe <snipe@snipe.net>
2025-08-08 12:37:03 +01:00
snipe bfd8c2f310 Added fles UI on maintenance page
Signed-off-by: snipe <snipe@snipe.net>
2025-08-08 12:36:51 +01:00
snipe 30d447c023 Updated urls/routes
Signed-off-by: snipe <snipe@snipe.net>
2025-08-08 12:36:35 +01:00
snipe 9a0846b8a6 Added directory
Signed-off-by: snipe <snipe@snipe.net>
2025-08-08 12:36:16 +01:00
snipe e87e924ac2 Merge remote-tracking branch 'origin/develop' 2025-08-08 11:37:46 +01:00
snipe 3667fcddd7 Mark flappy API rate limiting tests as skipped :(
Signed-off-by: snipe <snipe@snipe.net>
2025-08-08 11:37:36 +01:00
snipe 90f261bab6 Merge remote-tracking branch 'origin/develop' 2025-08-08 11:32:14 +01:00
snipe 906741d662 Bumped debug to warning
Signed-off-by: snipe <snipe@snipe.net>
2025-08-08 11:32:04 +01:00
snipe f7dfb09a4d Merge remote-tracking branch 'origin/develop' 2025-08-08 09:56:23 +01:00
snipe 12be088c4f Merge pull request #17523 from Godmartinz/fix-create-new-rediret
Fixes #17457 Previous Page redirect option
2025-08-08 09:50:40 +01:00
snipe 6737ba80cd Merge pull request #17489 from grokability/fixes/#17485-handle-alert-menu-better-if-no-alerts
Fixed #17485: nicer alert menu if no items are below qty
2025-08-08 09:50:14 +01:00
snipe 862a3d938e Merge pull request #17543 from Godmartinz/salutation-target-fix
Salutation target fix
2025-08-08 09:49:24 +01:00
snipe 09e82377a5 Merge pull request #17520 from marcusmoore/missing-user-redirect-fix
Fixed potential failure in license checkin due to redirect option
2025-08-08 09:48:43 +01:00
snipe 59470864e7 Merge pull request #17542 from akemidx/assetpolicyclassimport
AssetPolicy class import
2025-08-08 09:40:23 +01:00
Marcus Moore c95aeb3730 Filter out unallowed columns (custom fields) 2025-08-07 17:25:20 -07:00
Godfrey M 5c55c90d68 add null checks to target 2025-08-07 15:27:50 -07:00
Godfrey M e47972731b fixed target name for checkouts with licenses and assets 2025-08-07 15:12:23 -07:00
Godfrey M 5851cc9e41 fixed target name for checkouts with licenses and assets 2025-08-07 15:09:38 -07:00
akemidx 6f615230e9 class import 2025-08-07 17:00:28 -04:00
snipe d91598a25e Merge pull request #17540 from marcusmoore/fixes/asset-serial-validation
Fixed 500 when sending non-string for serial property
2025-08-07 20:53:07 +01:00
snipe 9e416778d9 Merge pull request #17541 from marcusmoore/remove-dump-in-test
Removed debugging dump() in test
2025-08-07 20:52:07 +01:00
Marcus Moore 860a117567 Remove dump in test 2025-08-07 12:50:02 -07:00
Marcus Moore b8fe3b18d4 Add "string" to serial rules for asset 2025-08-07 12:27:48 -07:00
snipe 40269a724b Fixed test
Signed-off-by: snipe <snipe@snipe.net>
2025-08-07 18:42:59 +01:00
snipe ec828318d8 Merge pull request #17417 from marcusmoore/snipe-it-17073-asset-requests-are-not-deleted-when-asset-is-deleted
Fixed #17073 - delete old checkout requests
2025-08-07 18:32:13 +01:00
snipe d31e7ed534 Use new route
Signed-off-by: snipe <snipe@snipe.net>
2025-08-07 18:24:02 +01:00
snipe 5c2dbe438b Added maintenances
Signed-off-by: snipe <snipe@snipe.net>
2025-08-07 18:23:57 +01:00
snipe 10857635ac Removed unused use statement
Signed-off-by: snipe <snipe@snipe.net>
2025-08-07 18:23:44 +01:00
snipe df2545ef80 Updated routes
Signed-off-by: snipe <snipe@snipe.net>
2025-08-07 18:23:17 +01:00
snipe f6ff729316 Added new generic files upload controller
Signed-off-by: snipe <snipe@snipe.net>
2025-08-07 18:22:57 +01:00
snipe 38678803eb Removed unused controllers
Signed-off-by: snipe <snipe@snipe.net>
2025-08-07 18:22:45 +01:00
snipe 67c931f196 Merge pull request #17080 from marcusmoore/allow-id-on-location-select
Allowed setting `id` on location-select component
2025-08-07 18:16:58 +01:00
snipe 3135917127 Merge remote-tracking branch 'origin/develop' 2025-08-07 17:03:01 +01:00
snipe 1c23092d0e Merge pull request #17537 from grokability/add-maintenance-images-and-files
Fixed #10357: Add maintenance image upload
2025-08-07 17:02:34 +01:00
snipe a90ff21cbf Cleaned up a few more tests
Signed-off-by: snipe <snipe@snipe.net>
2025-08-07 16:58:44 +01:00
snipe 0ce0cee81f Fixed tests
Signed-off-by: snipe <snipe@snipe.net>
2025-08-07 16:53:18 +01:00
Герхард PICCORO Lenz McKAY f4be5ffb5d Fix workaround for #17491 log error on failed response for mail sending
* Part of bunch of fixes, this fix #17491 where admins at test install cannot see the log of errors for UI test mail button, we can just see that this is the correct form cos other parts of the code manage the exception inside the catch using log interface class
2025-08-07 11:42:17 -04:00
snipe 19958748bf Use image upload request
Signed-off-by: snipe <snipe@snipe.net>
2025-08-07 15:39:12 +01:00
snipe d6ca8468e3 Use snake case for naming paths
Signed-off-by: snipe <snipe@snipe.net>
2025-08-07 15:39:01 +01:00
snipe 7bccb7718b Added partial and enctype="multipart/form-data for upload
Signed-off-by: snipe <snipe@snipe.net>
2025-08-07 15:38:22 +01:00
snipe f6b63b5e44 Added image to view
Signed-off-by: snipe <snipe@snipe.net>
2025-08-07 15:38:04 +01:00
snipe 9a2c5ff195 Updated/added tests
Signed-off-by: snipe <snipe@snipe.net>
2025-08-07 15:37:57 +01:00
snipe 3597f759da Updated transformers and presenters
Signed-off-by: snipe <snipe@snipe.net>
2025-08-07 15:37:45 +01:00
snipe 3ed3b21286 Added maintenance file singleton
Signed-off-by: snipe <snipe@snipe.net>
2025-08-07 15:37:32 +01:00
snipe b89b636474 Added migration
Signed-off-by: snipe <snipe@snipe.net>
2025-08-07 15:37:16 +01:00
snipe 2afc595452 Don’t show license key formatter if no value
Signed-off-by: snipe <snipe@snipe.net>
2025-08-06 16:47:47 +01:00
snipe 52afa3d36d Merge remote-tracking branch 'origin/develop' 2025-08-06 16:35:59 +01:00
snipe c7262f2885 Merge pull request #17532 from grokability/add-available-licenses-back-for-now
[FD-50162] Put remaining seats back on license view for now
2025-08-06 16:35:34 +01:00
snipe 8662aa2277 Put remaining seats back on license view for now
Signed-off-by: snipe <snipe@snipe.net>
2025-08-06 16:33:02 +01:00
snipe 242aa60e04 Merge remote-tracking branch 'origin/develop' 2025-08-06 16:26:14 +01:00
snipe 8095e0ab72 Normalize consumables user response
Signed-off-by: snipe <snipe@snipe.net>
2025-08-06 16:25:51 +01:00
snipe 7a3c2c27ff Merge remote-tracking branch 'origin/develop' 2025-08-05 23:19:38 +01:00
snipe be3c8ddd5c Hotfix for FD-50160
Signed-off-by: snipe <snipe@snipe.net>
2025-08-05 23:19:27 +01:00
Godfrey M ec5b9ce903 adds category and model no to accessory checkout markdown 2025-08-05 12:44:07 -07:00
Godfrey M bd2acefecc rethought, keeping previous page as an option 2025-08-05 12:29:59 -07:00
Godfrey M 18e49e9067 only redirect to previous page if not creating 2025-08-05 12:05:22 -07:00
snipe 5d124360c2 Merge remote-tracking branch 'origin/develop' 2025-08-05 19:35:12 +01:00
snipe a0d65520a3 Use count() instead of ->count() for user count in print view
Signed-off-by: snipe <snipe@snipe.net>
2025-08-05 19:34:59 +01:00
snipe 365d7448d5 Merge remote-tracking branch 'origin/develop' 2025-08-05 19:06:34 +01:00
snipe a35731d9d5 Fixed #17513 - updated language string
Signed-off-by: snipe <snipe@snipe.net>
2025-08-05 19:06:08 +01:00
snipe 9a0102c723 Merge remote-tracking branch 'origin/develop' 2025-08-05 19:03:00 +01:00
snipe 9d3623cca6 Merge pull request #17521 from grokability/#17518-add-break-after-sigs
Fixed #17518: Adds printer line break after signatures
2025-08-05 19:02:24 +01:00
snipe 2fe08a721f Do not break the page if it’s the last entry
Signed-off-by: snipe <snipe@snipe.net>
2025-08-05 19:00:57 +01:00
Marcus Moore 7abc3a7d7d Only push to session if user exists 2025-08-05 10:57:07 -07:00
snipe d4a34f1a3c Adds printer line break after signatures
Signed-off-by: snipe <snipe@snipe.net>
2025-08-05 18:50:47 +01:00
snipe 2f77f2cb2b Merge remote-tracking branch 'origin/develop' 2025-08-05 18:13:27 +01:00
snipe ddda4848d3 Added avif to inline
Signed-off-by: snipe <snipe@snipe.net>
2025-08-05 18:13:17 +01:00
snipe 528e3a2106 Merge remote-tracking branch 'origin/develop' 2025-08-05 17:48:12 +01:00
snipe 8516856d37 Merge pull request #17456 from spencerrlongg/9511-validation-always-fails-on-encrypted-custom-fields
Fixed #9511 - Validation For Encrypted Custom Fields
2025-08-05 17:45:38 +01:00
snipe 032a664d4c Merge remote-tracking branch 'origin/develop' 2025-08-04 22:27:59 +01:00
snipe 132327594b Merge pull request #17515 from grokability/add-submenu-to-users
Added dropdown menu for users
2025-08-04 22:26:59 +01:00
snipe d2a2c63070 Added dropdown menu for users
Signed-off-by: snipe <snipe@snipe.net>
2025-08-04 22:25:23 +01:00
snipe aac1864c9b Merge remote-tracking branch 'origin/develop' 2025-08-04 21:23:41 +01:00
snipe 170a5158fa Merge pull request #17514 from grokability/images-on-cloning
Added ability to copy images on cloning
2025-08-04 21:04:56 +01:00
snipe 1d8493d388 Improved messaging for cloning/editing assets that inherit images
Signed-off-by: snipe <snipe@snipe.net>
2025-08-04 20:51:24 +01:00
Marcus Moore ff39e8bd2c Merge branch 'develop' into snipe-it-17073-asset-requests-are-not-deleted-when-asset-is-deleted 2025-08-04 12:43:03 -07:00
snipe c3442033da Removed debugging
Signed-off-by: snipe <snipe@snipe.net>
2025-08-04 18:49:07 +01:00
snipe f1dd84edba Added option to clone original images
Signed-off-by: snipe <snipe@snipe.net>
2025-08-04 18:47:26 +01:00
snipe e3477f3306 Merge remote-tracking branch 'origin/develop' 2025-08-02 18:41:39 +01:00
snipe 06b040a337 Nicer padding
Signed-off-by: snipe <snipe@snipe.net>
2025-08-02 18:41:26 +01:00
snipe 6620a4f87b Merge remote-tracking branch 'origin/develop' 2025-08-02 14:47:09 +01:00
snipe fa546ddc5b Merge pull request #17510 from grokability/fixes-#17498-add-serial-to-acceptance
Fixed #17498 - added serial to user acceptance
2025-08-02 14:46:46 +01:00
snipe f811352c79 Cleaned up HTML
Signed-off-by: snipe <snipe@snipe.net>
2025-08-02 14:46:34 +01:00
snipe 7ed8963b9f Fixed #17498 - added serial to user acceptance
Signed-off-by: snipe <snipe@snipe.net>
2025-08-02 14:38:57 +01:00
snipe c0e9dff5bf Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	public/js/dist/all.js
#	public/js/dist/all.js.map
#	public/js/dist/bootstrap-table.js
#	public/mix-manifest.json
2025-08-01 23:13:22 +01:00
snipe a9fc8b79fd Merge pull request #17508 from grokability/add-table-buttons
Add table buttons and admin filter
2025-08-01 23:12:04 +01:00
snipe afd794b4c7 Fixed HTML
Signed-off-by: snipe <snipe@snipe.net>
2025-08-01 22:20:17 +01:00
snipe c4a28f0ec4 Use consistent icon for adding people
Signed-off-by: snipe <snipe@snipe.net>
2025-08-01 22:18:02 +01:00
snipe db343bf795 Tweaked bootstrap admin indicators
Signed-off-by: snipe <snipe@snipe.net>
2025-08-01 22:15:13 +01:00
snipe 0157043dc5 Added table buttons to user view
Signed-off-by: snipe <snipe@snipe.net>
2025-08-01 21:58:48 +01:00
snipe a947f9bd32 Fixed delete modal
Signed-off-by: snipe <snipe@snipe.net>
2025-08-01 21:30:18 +01:00
snipe 2a4181c7c3 Fixed typo
Signed-off-by: snipe <snipe@snipe.net>
2025-08-01 21:19:18 +01:00
snipe 30192f5b14 Removed extra modal code
Signed-off-by: snipe <snipe@snipe.net>
2025-08-01 21:11:54 +01:00
snipe c41b5e8844 Fixed license delete check
Signed-off-by: snipe <snipe@snipe.net>
2025-08-01 21:11:40 +01:00
snipe b27928807b Fixed typo
Signed-off-by: snipe <snipe@snipe.net>
2025-08-01 20:44:44 +01:00
snipe 16f1b5e23e Added a few more buttons
Signed-off-by: snipe <snipe@snipe.net>
2025-08-01 19:31:25 +01:00
snipe ed651b6869 Use translations
Signed-off-by: snipe <snipe@snipe.net>
2025-08-01 18:55:15 +01:00
snipe b9d925c7aa Carry admin/superadmin into the API request
Signed-off-by: snipe <snipe@snipe.net>
2025-08-01 18:49:58 +01:00
snipe 3650a29381 Added superadmin/admin formatter
Signed-off-by: snipe <snipe@snipe.net>
2025-08-01 18:49:37 +01:00
snipe de84ee3693 Cleaned up asset view table
Signed-off-by: snipe <snipe@snipe.net>
2025-08-01 18:47:51 +01:00
snipe 42ba31591d New formatter for icon
Signed-off-by: snipe <snipe@snipe.net>
2025-08-01 18:46:20 +01:00
snipe a78a243e20 Added admin/superadmin filter to API
Signed-off-by: snipe <snipe@snipe.net>
2025-08-01 18:46:10 +01:00
snipe 38924ced4a Provide the role so we can use it in the javascript
Signed-off-by: snipe <snipe@snipe.net>
2025-08-01 18:45:23 +01:00
snipe 5e8cc66f5c Added scope for admins and superadmins
Signed-off-by: snipe <snipe@snipe.net>
2025-08-01 18:45:07 +01:00
snipe 1353837584 More buttons
Signed-off-by: snipe <snipe@snipe.net>
2025-08-01 15:58:15 +01:00
snipe 7cb5a89523 Added access keys
Signed-off-by: snipe <snipe@snipe.net>
2025-08-01 15:58:07 +01:00
snipe 1db09a7953 Allow category_id in license export by category
Signed-off-by: snipe <snipe@snipe.net>
2025-08-01 15:21:12 +01:00
snipe bc6aa12dd0 Added buttons to table
Signed-off-by: snipe <snipe@snipe.net>
2025-08-01 15:20:55 +01:00
snipe c3bea88979 Added table button JS
Signed-off-by: snipe <snipe@snipe.net>
2025-08-01 15:20:39 +01:00
snipe 6e85e466b0 Merge pull request #17493 from grokability/gallery-view-for-file-uploads
Use the file uploads API for file listing tables, adds gallery view for file uploads
2025-08-01 13:27:27 +01:00
snipe 3327cc70c9 Revert pageSize
Signed-off-by: snipe <snipe@snipe.net>
2025-08-01 12:01:57 +01:00
snipe c9eac66a93 Tweaked button layout
Signed-off-by: snipe <snipe@snipe.net>
2025-07-31 13:21:58 +01:00
snipe 53e9bd6e48 Use updated formatter
Signed-off-by: snipe <snipe@snipe.net>
2025-07-31 13:21:49 +01:00
snipe eaa18e1efb Use existing actionlog methods instead of inline
Signed-off-by: snipe <snipe@snipe.net>
2025-07-31 13:21:40 +01:00
snipe afa3dacc31 Check if it’s an accepted/declined file
Signed-off-by: snipe <snipe@snipe.net>
2025-07-31 13:21:22 +01:00
snipe c803c4a57a Use new formatters
Signed-off-by: snipe <snipe@snipe.net>
2025-07-31 13:20:35 +01:00
snipe 2d3a53e449 Made existing formatters more flexible, removed unused
Signed-off-by: snipe <snipe@snipe.net>
2025-07-31 13:20:24 +01:00
snipe 2d961c435a Merge remote-tracking branch 'origin/develop' 2025-07-31 04:11:31 +01:00
snipe 5e076754ce Merge pull request #17501 from uberbrady/fix_manufacturer_seeder_button
Fixed #17500 [FD-50045] - Make Manufacturer Seeder button work
2025-07-31 04:09:38 +01:00
Brady Wetherington 927e217961 Fix Manufacturer Seeder button 2025-07-30 09:04:04 -06:00
snipe 80b48101aa Added formatter back
Signed-off-by: snipe <snipe@snipe.net>
2025-07-30 15:19:10 +01:00
snipe 08530e6133 Added icon data-dash to formatters
Signed-off-by: snipe <snipe@snipe.net>
2025-07-30 15:11:35 +01:00
snipe 97130ef6c1 Updated IDs to be less generic
Signed-off-by: snipe <snipe@snipe.net>
2025-07-30 15:11:12 +01:00
snipe da37feae6d Removed comment
Signed-off-by: snipe <snipe@snipe.net>
2025-07-30 15:10:42 +01:00
snipe f96172e61f Updated manifest
Signed-off-by: snipe <snipe@snipe.net>
2025-07-30 15:10:33 +01:00
snipe e35477b8db Made modal control more flexible
Signed-off-by: snipe <snipe@snipe.net>
2025-07-30 15:10:26 +01:00
snipe cea5560a67 Removed duplicated code for modal handling
Signed-off-by: snipe <snipe@snipe.net>
2025-07-30 15:07:35 +01:00
snipe 311bd5e67e Use placeholder for delete button
Signed-off-by: snipe <snipe@snipe.net>
2025-07-30 03:31:39 +01:00
snipe 1cfddf2a4c Restore old limit code
Signed-off-by: snipe <snipe@snipe.net>
2025-07-30 03:31:29 +01:00
snipe abe58117fe Moved code closer to actions
Signed-off-by: snipe <snipe@snipe.net>
2025-07-30 03:31:01 +01:00
snipe ee5f89f70d Fixed pagination
Signed-off-by: snipe <snipe@snipe.net>
2025-07-29 22:58:00 +01:00
snipe 4f545ed101 Layout tweaks to template
Signed-off-by: snipe <snipe@snipe.net>
2025-07-29 22:57:49 +01:00
snipe 136de4208e Added string
Signed-off-by: snipe <snipe@snipe.net>
2025-07-29 21:44:45 +01:00
snipe 7650a2c2a7 Sort by created_by desc by default
Signed-off-by: snipe <snipe@snipe.net>
2025-07-29 21:44:23 +01:00
snipe c3d1987fac Switch to panel
Signed-off-by: snipe <snipe@snipe.net>
2025-07-29 21:44:06 +01:00
snipe 12ef78bb1c Added PDF embed
Signed-off-by: snipe <snipe@snipe.net>
2025-07-29 21:43:58 +01:00
snipe 16c4241a6e WHY does this work? It’s not in the docs
Signed-off-by: snipe <snipe@snipe.net>
2025-07-29 05:42:35 +01:00
snipe 4992c77818 Updated template
Signed-off-by: snipe <snipe@snipe.net>
2025-07-29 05:41:43 +01:00
snipe 3a0b1de136 Changed table name
Signed-off-by: snipe <snipe@snipe.net>
2025-07-29 05:41:36 +01:00
snipe 1c3ef02c7b FIX THIS!!!
Signed-off-by: snipe <snipe@snipe.net>
2025-07-29 05:41:15 +01:00
snipe f268fe9e80 Added gallery card
Signed-off-by: snipe <snipe@snipe.net>
2025-07-29 02:03:12 +01:00
snipe 2ed98c17d4 Added print icon
Signed-off-by: snipe <snipe@snipe.net>
2025-07-29 02:03:02 +01:00
snipe 571ae4fbfd Use CSS for nowrap
Signed-off-by: snipe <snipe@snipe.net>
2025-07-29 01:20:20 +01:00
Nicky West c94a8c42f4 Changed NotesController::getList() to NotesController::index() & reordered methods for consistency 2025-07-28 16:57:46 -07:00
Nicky West 16fdb16a56 Changed over to route model binding and simplified logic & gates 2025-07-28 16:55:11 -07:00
Nicky West 822f9a6f28 Fixed deviations from code standards 2025-07-28 16:37:08 -07:00
Nicky West b264bbf69f feat(api): Add API endpoints for managing asset history notes
- Add POST endpoint to create a history note attached to an asset
- Add GET endpoint to retrieve history notes for an asset
- Add ActionLog factory state for manual notes
- Implement controller methods with authorization checks
- Add feature tests for note creation, retrieval, and access control
- Register new API routes for these endpoints

Supports automation by enabling programmatic asset history note management.
2025-07-28 15:55:37 -07:00
snipe 6e61e94e02 New manifest
Signed-off-by: snipe <snipe@snipe.net>
2025-07-28 23:36:31 +01:00
snipe 6a7972c5a1 Added new formatters
Signed-off-by: snipe <snipe@snipe.net>
2025-07-28 23:36:18 +01:00
snipe db4fbe315a Added helper to get media type so we know what kind of lightbox to give it
Signed-off-by: snipe <snipe@snipe.net>
2025-07-28 23:36:11 +01:00
snipe f3613d7103 Fixed typo
Signed-off-by: snipe <snipe@snipe.net>
2025-07-28 23:35:45 +01:00
snipe cbbed36428 Added multi-file upload for users (bug)
Signed-off-by: snipe <snipe@snipe.net>
2025-07-28 23:35:35 +01:00
snipe e86e9697b3 Use plural for item type
Signed-off-by: snipe <snipe@snipe.net>
2025-07-28 23:33:25 +01:00
snipe fd6b2d5715 Simpler blade component calls
Signed-off-by: snipe <snipe@snipe.net>
2025-07-28 23:33:08 +01:00
snipe fbb36d1665 Fixed file routes
Signed-off-by: snipe <snipe@snipe.net>
2025-07-28 23:32:45 +01:00
snipe 07be1b8192 Added sorting, updated formatters
Signed-off-by: snipe <snipe@snipe.net>
2025-07-28 23:32:25 +01:00
snipe 33880393ac Added string
Signed-off-by: snipe <snipe@snipe.net>
2025-07-28 23:32:00 +01:00
snipe 5123fe7838 Use server side endpoint for filetable blade component
Signed-off-by: snipe <snipe@snipe.net>
2025-07-28 23:31:51 +01:00
snipe cbe26a365d Made route signature more consistent
Signed-off-by: snipe <snipe@snipe.net>
2025-07-28 23:31:14 +01:00
snipe f1bb72b2a6 Added custom view extension
Signed-off-by: snipe <snipe@snipe.net>
2025-07-28 23:30:51 +01:00
snipe 2c33654395 Fixed #17485 - nicer alert menu if no items are below qty
Signed-off-by: snipe <snipe@snipe.net>
2025-07-28 17:50:26 +01:00
snipe 7c95f03166 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	public/css/build/AdminLTE.css
#	public/css/build/app.css
#	public/css/build/overrides.css
#	public/css/dist/all.css
#	public/css/dist/bootstrap-table.css
#	public/css/dist/skins/_all-skins.css
#	public/css/dist/skins/_all-skins.min.css
#	public/css/dist/skins/skin-black-dark.css
#	public/css/dist/skins/skin-black-dark.min.css
#	public/css/dist/skins/skin-black.css
#	public/css/dist/skins/skin-black.min.css
#	public/css/dist/skins/skin-blue-dark.css
#	public/css/dist/skins/skin-blue-dark.min.css
#	public/css/dist/skins/skin-blue.css
#	public/css/dist/skins/skin-blue.min.css
#	public/css/dist/skins/skin-contrast.css
#	public/css/dist/skins/skin-contrast.min.css
#	public/css/dist/skins/skin-green-dark.css
#	public/css/dist/skins/skin-green-dark.min.css
#	public/css/dist/skins/skin-green.css
#	public/css/dist/skins/skin-green.min.css
#	public/css/dist/skins/skin-orange-dark.css
#	public/css/dist/skins/skin-orange-dark.min.css
#	public/css/dist/skins/skin-orange.css
#	public/css/dist/skins/skin-orange.min.css
#	public/css/dist/skins/skin-purple-dark.css
#	public/css/dist/skins/skin-purple-dark.min.css
#	public/css/dist/skins/skin-purple.css
#	public/css/dist/skins/skin-purple.min.css
#	public/css/dist/skins/skin-red-dark.css
#	public/css/dist/skins/skin-red-dark.min.css
#	public/css/dist/skins/skin-red.css
#	public/css/dist/skins/skin-red.min.css
#	public/css/dist/skins/skin-yellow-dark.css
#	public/css/dist/skins/skin-yellow-dark.min.css
#	public/css/dist/skins/skin-yellow.css
#	public/css/dist/skins/skin-yellow.min.css
#	public/js/build/app.js
#	public/js/build/vendor.js
#	public/js/dist/all.js
#	public/js/dist/bootstrap-table.js
#	public/mix-manifest.json
2025-07-28 17:41:13 +01:00
snipe dd86de017e Dev assets one more time just for good luck
Signed-off-by: snipe <snipe@snipe.net>
2025-07-28 17:38:27 +01:00
snipe 3eabde9630 Dev assets
Signed-off-by: snipe <snipe@snipe.net>
2025-07-28 17:36:22 +01:00
snipe 640c51af31 Merge pull request #17487 from uberbrady/improve_javascript_3
Optimize javascript for smaller files and faster builds (Rebase of #15175)
2025-07-28 17:34:59 +01:00
Brady Wetherington 7167b17d25 Rebased and brought up to current from the original 2025-07-28 09:57:20 -06:00
snipe 8a35948678 Import DB facade
Signed-off-by: snipe <snipe@snipe.net>
2025-07-28 16:17:11 +01:00
snipe 0fe63d3fb9 Re-added jquery-ui
Signed-off-by: snipe <snipe@snipe.net>
2025-07-28 14:03:12 +01:00
snipe e4302c3e88 Fixed comment
Signed-off-by: snipe <snipe@snipe.net>
2025-07-28 09:13:32 +01:00
snipe a7df6fb465 Added DB_SOCKET to example env
Signed-off-by: snipe <snipe@snipe.net>
2025-07-28 09:11:00 +01:00
snipe 133e7598e0 Merge pull request #17478 from grokability/library-upgrades
Library upgrades
2025-07-28 09:00:02 +01:00
snipe c1a52ffa75 Bumped jspdf-autotable from ^3.8.4 to ^5.0.2
Signed-off-by: snipe <snipe@snipe.net>
2025-07-28 08:52:52 +01:00
snipe 4f46313388 Bumped tableexport to ^1.33.0
https://www.npmjs.com/package/tableexport.jquery.plugin
Signed-off-by: snipe <snipe@snipe.net>
2025-07-28 08:50:47 +01:00
snipe 03b2cc9cd2 Dev assets
Signed-off-by: snipe <snipe@snipe.net>
2025-07-28 08:43:22 +01:00
snipe 1a2bf8dc95 Bumped boostrap table from 1.24.1 to 1.24.2
Signed-off-by: snipe <snipe@snipe.net>
2025-07-28 08:43:17 +01:00
snipe dd63fbeb84 Moved webpack to dev dependencies
Signed-off-by: snipe <snipe@snipe.net>
2025-07-28 08:38:26 +01:00
snipe 59e435c418 Bumped additional libraries
Signed-off-by: snipe <snipe@snipe.net>
2025-07-28 08:36:13 +01:00
snipe f89f0a19b5 Updated axios
Signed-off-by: snipe <snipe@snipe.net>
2025-07-28 08:33:07 +01:00
snipe cbc6ef95cb Removed babel-preset
Signed-off-by: snipe <snipe@snipe.net>
2025-07-28 08:26:52 +01:00
snipe 0ceecc9e1d Removed jquery UI
Signed-off-by: snipe <snipe@snipe.net>
2025-07-28 08:24:16 +01:00
snipe c816902025 Updated postcss
Signed-off-by: snipe <snipe@snipe.net>
2025-07-28 08:19:56 +01:00
snipe cfb03cdca0 Updated imagemin JS
Signed-off-by: snipe <snipe@snipe.net>
2025-07-28 08:07:34 +01:00
snipe 266f77b08c Update svg-sanitize
Signed-off-by: snipe <snipe@snipe.net>
2025-07-28 08:02:54 +01:00
snipe 31e5c13b50 Merge remote-tracking branch 'origin/develop' 2025-07-28 03:30:22 +01:00
snipe 257d58c236 Moved privacy policy link in settings
Signed-off-by: snipe <snipe@snipe.net>
2025-07-28 03:30:10 +01:00
snipe 4a9fe4f981 Merge remote-tracking branch 'origin/develop' 2025-07-24 15:54:54 +01:00
snipe 015f3d936c Merge pull request #17459 from grokability/#17441-add-status-to-id
Fixed #17441 - hardware listings "remembered" page numbers between statuses
2025-07-24 15:54:33 +01:00
snipe 18d2a0ffd7 Fixed #17441 - added status to table IDs
Signed-off-by: snipe <snipe@snipe.net>
2025-07-24 15:47:26 +01:00
snipe 4fcc5587ee Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	config/version.php
2025-07-24 15:36:06 +01:00
snipe 24afde0e46 Updated hash and minor version
Signed-off-by: snipe <snipe@snipe.net>
2025-07-24 15:35:33 +01:00
snipe 6ca49a20ce Merge remote-tracking branch 'origin/develop' 2025-07-24 15:29:54 +01:00
snipe 8499faa55a Fixed #17458 - use item_id instead of target_id for user history
Signed-off-by: snipe <snipe@snipe.net>
2025-07-24 15:29:36 +01:00
snipe 28f293fdc1 Merge remote-tracking branch 'origin/develop' 2025-07-24 13:07:09 +01:00
snipe c60dd809b8 Removed debugging
Signed-off-by: snipe <snipe@snipe.net>
2025-07-24 13:06:57 +01:00
snipe 297b8e33f2 Merge pull request #17436 from Godmartinz/fix-acceptance-markdown
Fixed #17394 - Changes the acceptance letter salutation to target
2025-07-23 22:55:05 +01:00
spencerrlongg d0593c6b8d remove some commented things 2025-07-23 16:19:32 -05:00
spencerrlongg 8a40d7e35c tests added, regex validation working 2025-07-23 16:12:19 -05:00
Godfrey M b670b2014c accidentally removed a line 2025-07-23 09:56:19 -07:00
Godfrey M 440e969f52 remove unnecessary spacing 2025-07-23 09:47:03 -07:00
snipe 14b79f2f1c Fixed typo in id name
Signed-off-by: snipe <snipe@snipe.net>
2025-07-23 17:00:09 +01:00
snipe b3e7619adc Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	config/version.php
2025-07-23 16:11:20 +01:00
snipe 00cf49a61f Bumped version
Signed-off-by: snipe <snipe@snipe.net>
2025-07-23 16:10:47 +01:00
snipe 4f534e0e84 Bumped version/hash
Signed-off-by: snipe <snipe@snipe.net>
2025-07-23 16:02:51 +01:00
snipe 6e56d56137 Merge remote-tracking branch 'origin/develop' 2025-07-23 15:06:25 +01:00
snipe 83a19fbbbf Merge pull request #17454 from uberbrady/de_flake_action_log_tests
Enforce order by ID for actionlog tests
2025-07-23 15:06:09 +01:00
snipe 610cb884fc Merge pull request #17452 from uberbrady/de_flake_tls_cert_file_test
This test was flaky, probably due to the PHP statcache.
2025-07-23 15:00:59 +01:00
snipe 2528f6a07b Merge remote-tracking branch 'origin/develop' 2025-07-23 14:56:49 +01:00
snipe ba92cec62b Merge pull request #17453 from grokability/#17316-checkbox-format-on-checkin-checkout
Fixed #17316 - handle checkboxes correctly in checkin/checkout
2025-07-23 14:56:24 +01:00
Brady Wetherington d92e961a52 enforce order by ID for actionlog tests 2025-07-23 14:55:42 +01:00
snipe b13e74756a Fixed #17316 - handle checkboxes correctly in checkin/checkout
Signed-off-by: snipe <snipe@snipe.net>
2025-07-23 14:51:34 +01:00
Brady Wetherington 4ef3072766 This test was flaky, probably due to the PHP statcache. 2025-07-23 14:15:52 +01:00
snipe 423d07c919 Merge remote-tracking branch 'origin/develop' 2025-07-23 12:41:20 +01:00
snipe e96e2461d3 Merge pull request #17450 from grokability/copy-decrypted-custom-fields-to-clipboard
Fixed #17447 - decrypt before copying to clipboard
2025-07-23 12:41:02 +01:00
snipe 7a2e2be169 Fixed #17447 - decrypt before copying to clipboard
Signed-off-by: snipe <snipe@snipe.net>
2025-07-23 12:39:54 +01:00
snipe cc608de4bf Merge remote-tracking branch 'origin/develop' 2025-07-23 12:28:35 +01:00
snipe 8d2a5a7e4a Added location and defaultLoc to searchable relations in audit log
Signed-off-by: snipe <snipe@snipe.net>
2025-07-23 12:28:23 +01:00
snipe b7b0e4fab5 Merge pull request #17447 from Godmartinz/make-custom-fields-copyable
Adds #17133 Copy ability to all Custom fields
2025-07-23 12:11:47 +01:00
Godfrey M a624a79b30 add terenary 2025-07-22 16:36:19 -07:00
Godfrey M 313135da6f Merge branch 'develop' into make-custom-fields-copyable 2025-07-22 16:26:57 -07:00
Godfrey M 58d27d1247 move copy button to front 2025-07-22 16:17:52 -07:00
snipe f999a68608 Merge remote-tracking branch 'origin/develop' 2025-07-22 20:28:53 +01:00
snipe edfb28168f Merge pull request #17446 from marcusmoore/snipe-it-17445-move-jobtitle-under-assigned_to-in-assettransformer
Fixed #17445 - move jobtitle under assigned_to in AssetTransformer
2025-07-22 20:27:01 +01:00
Godfrey M 8d0e03bb06 fix copy target 2025-07-22 11:57:46 -07:00
Marcus Moore 855f6f77cf Re-add sorting 2025-07-22 11:49:32 -07:00
Godfrey M 6236cffe14 adds copy links for filled custom fields 2025-07-22 11:49:11 -07:00
Marcus Moore 322a71fbb8 Add jobtitleFormatter 2025-07-22 11:37:34 -07:00
Marcus Moore 4d9f8476f3 Update field key in AssetPresenter 2025-07-22 11:07:58 -07:00
Marcus Moore d7d93b14b2 Move jobtitle under assigned_to 2025-07-22 11:02:26 -07:00
snipe db78a9f18f Merge remote-tracking branch 'origin/develop' 2025-07-22 15:25:51 +01:00
snipe d1af3ece6e One more tweak to login checkbox
Signed-off-by: snipe <snipe@snipe.net>
2025-07-22 15:25:09 +01:00
snipe 816039f48e Merge remote-tracking branch 'origin/develop' 2025-07-22 15:18:50 +01:00
snipe 8153b20984 Check for demo mode on UI for able to login
Signed-off-by: snipe <snipe@snipe.net>
2025-07-22 15:18:34 +01:00
snipe ae240bae6d Updated prod CSS
Signed-off-by: snipe <snipe@snipe.net>
2025-07-22 15:14:42 +01:00
snipe 9e30c69e6d Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	public/css/build/app.css
#	public/css/build/overrides.css
#	public/css/dist/all.css
#	public/mix-manifest.json
2025-07-22 15:14:32 +01:00
snipe a50f605c29 Merge pull request #17443 from grokability/added-not-allowed-cursor
Adds disabled cursor on uneditable fields in user create/edit
2025-07-22 15:13:14 +01:00
snipe daf23edd10 Adds disabled cursor on uneditable fields in user create/edit
Signed-off-by: snipe <snipe@snipe.net>
2025-07-22 15:10:27 +01:00
snipe 43c7de9049 Updated prod assets
Signed-off-by: snipe <snipe@snipe.net>
2025-07-22 14:38:04 +01:00
snipe 7e51c5db81 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	public/css/build/app.css
#	public/css/build/overrides.css
#	public/css/dist/all.css
#	public/mix-manifest.json
2025-07-22 14:34:10 +01:00
snipe 2eaaeb8259 Merge pull request #17423 from grokability/tighter-permissions-on-non-admins
Tighter permissions on non-admins and demo modes
2025-07-22 14:32:50 +01:00
snipe a02c62d62c Fixed tests
Signed-off-by: snipe <snipe@snipe.net>
2025-07-22 14:12:51 +01:00
snipe e0232a8e84 Renamed gate
Signed-off-by: snipe <snipe@snipe.net>
2025-07-22 14:02:18 +01:00
snipe 6ea5693b2f Updated comment, removed log error statement
Signed-off-by: snipe <snipe@snipe.net>
2025-07-22 13:59:58 +01:00
snipe 0ee3c45e7b Merge remote-tracking branch 'origin/develop' 2025-07-22 13:39:54 +01:00
snipe 030c2114d1 Merge pull request #17442 from grokability/user-api-eula-fix
Fixed FD-49886 - Optimize user queries
2025-07-22 13:39:36 +01:00
snipe 2cb18e3668 Remove fields from query - eulas was querying actionlogs
Signed-off-by: snipe <snipe@snipe.net>
2025-07-22 13:25:41 +01:00
snipe cd9f8be563 Optimize for when we already have the counts
Signed-off-by: snipe <snipe@snipe.net>
2025-07-22 13:25:16 +01:00
snipe a02792e9bf Merge pull request #17300 from uberbrady/add_actionlog_tests
Fixed #17071 - Adding various tests of the contents of ActionLogs for lots of events
2025-07-22 10:51:30 +01:00
snipe 41bb422244 Merge pull request #17439 from marcusmoore/component-file-test-fix
Attempt to fix flaky file upload tests pt2
2025-07-21 23:16:03 +01:00
Marcus Moore 54663d3342 Pass order to api in test 2025-07-21 15:10:35 -07:00
snipe 2529f7369f Merge pull request #17438 from grokability/file-upload-tests-fix
Attempt to fix flaky file upload tests
2025-07-21 22:48:38 +01:00
snipe 909c33dccf Fixed order location
Signed-off-by: snipe <snipe@snipe.net>
2025-07-21 22:45:17 +01:00
snipe 1adc9f1aa9 Attempt to fix flaky tests
Signed-off-by: snipe <snipe@snipe.net>
2025-07-21 22:18:15 +01:00
spencerrlongg e9948f0718 fixes booleans, adds note, changes name 2025-07-21 15:34:08 -05:00
Godfrey M 49da9e58fd changed markdown to point to assignedto name 2025-07-21 12:00:00 -07:00
spencerrlongg 2f74a8afe1 mac address rule working 2025-07-21 12:02:45 -05:00
snipe f3e288d078 Updated language strings
Signed-off-by: snipe <snipe@snipe.net>
2025-07-21 17:46:49 +01:00
snipe 988000952e Fixed RB-3997
Signed-off-by: snipe <snipe@snipe.net>
2025-07-21 13:48:01 +01:00
snipe 981e69929c Merge remote-tracking branch 'origin/develop' 2025-07-21 12:36:44 +01:00
snipe 6537f3794b Merge pull request #17292 from Godmartinz/fail_with_inputs
FIXED: #17194 Return to bulk edit with errors and inputs
2025-07-21 12:03:52 +01:00
snipe d31718ba8a Merge pull request #17389 from grokability/use-transformer-for-api-asset-model-response
Use standard model transformer for asset model API response
2025-07-21 11:52:25 +01:00
snipe 9dd4bc5fa8 Merge pull request #17391 from Godmartinz/add-components-notifications
FIXED: #13844 Adds Webhook and Mail Notifications for Components
2025-07-21 11:51:30 +01:00
snipe df5f1bd522 Merge pull request #17434 from grokability/dependabot/github_actions/develop/codacy/codacy-analysis-cli-action-4.4.7
Bump codacy/codacy-analysis-cli-action from 4.4.5 to 4.4.7
2025-07-21 11:45:04 +01:00
dependabot[bot] ddffab9169 Bump codacy/codacy-analysis-cli-action from 4.4.5 to 4.4.7
Bumps [codacy/codacy-analysis-cli-action](https://github.com/codacy/codacy-analysis-cli-action) from 4.4.5 to 4.4.7.
- [Release notes](https://github.com/codacy/codacy-analysis-cli-action/releases)
- [Commits](https://github.com/codacy/codacy-analysis-cli-action/compare/v4.4.5...v4.4.7)

---
updated-dependencies:
- dependency-name: codacy/codacy-analysis-cli-action
  dependency-version: 4.4.7
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-21 09:26:25 +00:00
Oliver Cox 553ab8851a Fix #17431: EULA not displaying on asset acceptance page
Changed two instances of === to ==, as this was causing a comparison to fail and preventing EULAs from being displayed on asset acceptance pages as expected.
2025-07-20 23:00:18 +01:00
snipe 1eae5d12fc Merge remote-tracking branch 'origin/develop' 2025-07-18 17:56:20 +01:00
snipe 0c34073582 Namespace fix for presenter
Signed-off-by: snipe <snipe@snipe.net>
2025-07-18 17:17:04 +01:00
snipe 14674947cb Fixed test namespace
Signed-off-by: snipe <snipe@snipe.net>
2025-07-18 17:15:51 +01:00
snipe 51bccdbd66 Merge pull request #17424 from marcusmoore/chore/livewire-ugprade
Bumped livewire to v3.6.4
2025-07-18 17:12:14 +01:00
snipe f0fbb3cf36 Uncomment permissions test
Signed-off-by: snipe <snipe@snipe.net>
2025-07-18 16:31:31 +01:00
Brady Wetherington 0cc47aacbe Got tests to pass by making them match our current reality, rather than wishes 2025-07-18 16:14:32 +01:00
snipe fafd592290 Wrap groups and activated into the other canEditAuthFields gate
Signed-off-by: snipe <snipe@snipe.net>
2025-07-18 16:03:43 +01:00
snipe 40e754b8c3 Additional criteria for the canEditAuthFields gate
Signed-off-by: snipe <snipe@snipe.net>
2025-07-18 16:03:22 +01:00
snipe 483301db7a Changed some of the gating logic for demo mode. Sigh.
Signed-off-by: snipe <snipe@snipe.net>
2025-07-18 16:02:59 +01:00
snipe 218606fbd6 Updated view permissions
Signed-off-by: snipe <snipe@snipe.net>
2025-07-18 16:02:41 +01:00
snipe c601b8e62c Updated test
Signed-off-by: snipe <snipe@snipe.net>
2025-07-18 16:02:11 +01:00
snipe 2bd68ec991 Uncommented importer gate
Signed-off-by: snipe <snipe@snipe.net>
2025-07-18 13:17:25 +01:00
snipe 66842648ed Removed debugging
Signed-off-by: snipe <snipe@snipe.net>
2025-07-18 13:17:10 +01:00
snipe ce54b9a7b5 Removed duplicate alert
Signed-off-by: snipe <snipe@snipe.net>
2025-07-18 13:16:59 +01:00
Brady Wetherington 8a5f6d2a5d Refactor base test into Trait, clean test output for easier comparison 2025-07-18 13:16:35 +01:00
snipe 1d86a5476f Updated language
Signed-off-by: snipe <snipe@snipe.net>
2025-07-18 12:45:43 +01:00
snipe ca4d3f6bce Changed gate name, removed debugging
Signed-off-by: snipe <snipe@snipe.net>
2025-07-18 12:45:32 +01:00
Godfrey M 2812f2ce92 remove log 2025-07-17 15:04:42 -07:00
Godfrey M 5c623db798 fix redirect 2025-07-17 14:57:00 -07:00
Marcus Moore edaf005fe1 Bump livewire to v3.6.4 2025-07-17 14:15:10 -07:00
snipe 4f6e407247 More consistent language degarding the demo
Signed-off-by: snipe <snipe@snipe.net>
2025-07-17 21:13:13 +01:00
snipe e30881239c A few more clean ups for demo mode
Signed-off-by: snipe <snipe@snipe.net>
2025-07-17 21:08:50 +01:00
snipe bbde2cc4b2 Use history blade component
Signed-off-by: snipe <snipe@snipe.net>
2025-07-17 21:04:11 +01:00
snipe 16d18c79d7 Fixed email editable field
Signed-off-by: snipe <snipe@snipe.net>
2025-07-17 21:03:20 +01:00
snipe a0d2cb8a03 Clearer (if longer) gate name
Signed-off-by: snipe <snipe@snipe.net>
2025-07-17 20:47:20 +01:00
snipe 1bb5dc7e69 Added one more test
Signed-off-by: snipe <snipe@snipe.net>
2025-07-17 20:40:01 +01:00
Brady Wetherington 58759acfe4 Think I hit _all_ of the tests we need to mess with here 2025-07-17 20:15:01 +01:00
snipe 0cd5136052 Added translations
Signed-off-by: snipe <snipe@snipe.net>
2025-07-17 20:12:52 +01:00
snipe b3c6fe5369 Use both new gates in user edit
Signed-off-by: snipe <snipe@snipe.net>
2025-07-17 20:12:46 +01:00
snipe 599718f84e Use new gates in controllers
Signed-off-by: snipe <snipe@snipe.net>
2025-07-17 20:12:32 +01:00
snipe d9a5452388 Defined new gates
Signed-off-by: snipe <snipe@snipe.net>
2025-07-17 20:12:10 +01:00
snipe 0fe49e04bf Attempt to use a gate here?
Signed-off-by: snipe <snipe@snipe.net>
2025-07-17 20:09:27 +01:00
snipe a98d3fb4dc Check for the format of the permissions (string, object, array)
Signed-off-by: snipe <snipe@snipe.net>
2025-07-17 20:09:17 +01:00
Godfrey M 8c670d1832 clean up 2025-07-17 12:08:49 -07:00
snipe c232f490bc Show user log
Signed-off-by: snipe <snipe@snipe.net>
2025-07-17 20:08:40 +01:00
snipe c7280953dd Added/updated tests
Signed-off-by: snipe <snipe@snipe.net>
2025-07-17 20:08:32 +01:00
Godfrey M 8f4c606c64 remove var dumps 2025-07-17 12:04:33 -07:00
Godfrey M 6740afab42 radio buttons values return correctly 2025-07-17 11:59:09 -07:00
Godfrey M 5df22b3e6a checkboxes properly check 2025-07-17 11:56:52 -07:00
snipe 3d9d18a0d5 Fixed weird CSS quirk
Signed-off-by: snipe <snipe@snipe.net>
2025-07-17 19:22:23 +01:00
Marcus Moore 0102599708 Implement tests 2025-07-16 17:20:28 -07:00
Marcus Moore 960edd4adf Improve clarity 2025-07-16 17:11:00 -07:00
Marcus Moore 3547fa723c Delete requests when asset model is deleted 2025-07-16 17:04:14 -07:00
Marcus Moore 7a456185c6 Add explicit state for assets 2025-07-16 16:57:03 -07:00
Marcus Moore dd79c3f2d6 Scaffold tests 2025-07-16 16:47:28 -07:00
Marcus Moore 35682d11f0 Add command to clean checkout requests 2025-07-16 14:49:45 -07:00
Marcus Moore d04b3f0907 Enable test 2025-07-16 13:15:06 -07:00
Marcus Moore c926358e04 Delete requests when user is deleted 2025-07-16 13:11:59 -07:00
Marcus Moore 856ba52f36 Delete requests when asset is deleted 2025-07-16 12:43:56 -07:00
Marcus Moore a5bea31154 Scaffold tests 2025-07-16 12:38:08 -07:00
Marcus Moore 2afcc1e384 Add basic tests around asset request index 2025-07-16 12:25:37 -07:00
Godfrey M fc469707a3 clean up 2025-07-16 10:51:33 -07:00
snipe 8863208333 Merge remote-tracking branch 'origin/develop' 2025-07-16 17:35:55 +01:00
snipe 77fdc370c7 Merge pull request #17415 from uberbrady/clean_unaccepted_assets_report
[FD-47386, FD-49095] New Artisan command to clean checkout acceptances
2025-07-16 17:34:49 +01:00
snipe 5f38a74a72 Merge remote-tracking branch 'origin/develop' 2025-07-16 17:02:29 +01:00
snipe 301290fb6d Send emails on acceptance even if signature is not required
Signed-off-by: snipe <snipe@snipe.net>
2025-07-16 17:02:04 +01:00
snipe fe15dacb1f Merge remote-tracking branch 'origin/develop' 2025-07-16 16:54:30 +01:00
snipe 07fffe2f79 Merge pull request #17410 from grokability/remove-password-from-welcome
Remove password from welcome email, prompt for reset instead
2025-07-16 16:54:07 +01:00
snipe 0227a63fa5 Slightly clearer language
Signed-off-by: snipe <snipe@snipe.net>
2025-07-16 16:31:45 +01:00
snipe 27764b863c Updated language
Signed-off-by: snipe <snipe@snipe.net>
2025-07-16 16:25:36 +01:00
snipe 032fd75f9e Added default invite password token timeout
Signed-off-by: snipe <snipe@snipe.net>
2025-07-16 16:23:51 +01:00
snipe 0bf4f861f3 Nicer debugging
Signed-off-by: snipe <snipe@snipe.net>
2025-07-16 16:23:25 +01:00
snipe fd8f90cb52 Added new password broker for longer toekn lifetime
Signed-off-by: snipe <snipe@snipe.net>
2025-07-16 16:23:11 +01:00
snipe b6c6b025c8 Added expiry language
Signed-off-by: snipe <snipe@snipe.net>
2025-07-16 16:20:26 +01:00
snipe 3d89e98d1f Small tweaks to welcome email blade
Signed-off-by: snipe <snipe@snipe.net>
2025-07-16 16:20:15 +01:00
Brady Wetherington 7c5110ed5d Add more action logs tests everywhere I can think of it. 2025-07-16 16:20:06 +01:00
Brady Wetherington 0a474f48ad WIP: Adding various tests of the contents of ActionLogs for lots of events 2025-07-16 16:20:06 +01:00
Brady Wetherington c409bfd5be New Artisan command to clean checkout acceptances and a migration that runs it 2025-07-16 16:06:23 +01:00
snipe 39d5d5b2e0 Merge branch 'develop' into remove-password-from-welcome 2025-07-16 15:05:13 +01:00
snipe c2d44cf2f2 Merge remote-tracking branch 'origin/develop' 2025-07-16 12:25:14 +01:00
snipe 8a80d9009d Refomatted hidden array
Signed-off-by: snipe <snipe@snipe.net>
2025-07-16 12:24:48 +01:00
Godfrey M f62b5df566 use ternaries instead of optionals 2025-07-15 15:40:21 -07:00
spencerrlongg 826521f053 added rules, still needs a little more... 2025-07-15 15:21:10 -05:00
spencerrlongg f9b05bc8de more encryption rules extenting laravel's own 2025-07-15 15:03:51 -05:00
spencerrlongg b8239e8ed9 use laravel validation methods, email works 2025-07-15 14:17:49 -05:00
Godfrey M 214757ab0b fix mailable 2025-07-15 12:04:36 -07:00
Godfrey M f130186b37 add Component Checkin Mail 2025-07-15 11:56:34 -07:00
Godfrey M 2244eebc3b add Component Checkout Mail 2025-07-15 11:00:39 -07:00
snipe 4176792f2d Translate field
Signed-off-by: snipe <snipe@snipe.net>
2025-07-15 16:32:17 +01:00
snipe 1e6cef52c9 Fixed tests
Signed-off-by: snipe <snipe@snipe.net>
2025-07-15 15:17:08 +01:00
snipe a0f4f30a50 Added try/catch
Signed-off-by: snipe <snipe@snipe.net>
2025-07-15 15:13:33 +01:00
snipe 4cbf6ac393 Re-add /setup crential email
Signed-off-by: snipe <snipe@snipe.net>
2025-07-15 14:20:13 +01:00
snipe af7425d8e6 Remove unused variable
Signed-off-by: snipe <snipe@snipe.net>
2025-07-15 14:19:12 +01:00
snipe 3fea909d3f Removed send credentials option from user controller
Signed-off-by: snipe <snipe@snipe.net>
2025-07-15 14:14:10 +01:00
snipe 7c37d40677 Use plaintext in the database so that the password will never be valid
Signed-off-by: snipe <snipe@snipe.net>
2025-07-15 14:13:50 +01:00
snipe 3a97c27350 Removed logging
Signed-off-by: snipe <snipe@snipe.net>
2025-07-15 14:13:29 +01:00
snipe e0516a52a8 Formatting change
Signed-off-by: snipe <snipe@snipe.net>
2025-07-15 14:12:55 +01:00
snipe a85ec6efb3 Set token in welcome email constructor
Signed-off-by: snipe <snipe@snipe.net>
2025-07-15 14:12:42 +01:00
snipe 3795c74814 Added string
Signed-off-by: snipe <snipe@snipe.net>
2025-07-15 14:12:26 +01:00
snipe 27954dc6d3 Use password reset token
Signed-off-by: snipe <snipe@snipe.net>
2025-07-15 14:12:18 +01:00
snipe 68c4187a09 Removed email creds option from user create
Signed-off-by: snipe <snipe@snipe.net>
2025-07-15 14:11:15 +01:00
snipe b9834231f3 Remove email credentials chexkbox
Signed-off-by: snipe <snipe@snipe.net>
2025-07-15 14:08:36 +01:00
snipe 2be343ea1c More specific no password
Signed-off-by: snipe <snipe@snipe.net>
2025-07-15 13:11:45 +01:00
snipe 109fe1b62c Use no password as temp password
Signed-off-by: snipe <snipe@snipe.net>
2025-07-15 13:11:18 +01:00
snipe 63d691a63c Removed noisy log
Signed-off-by: snipe <snipe@snipe.net>
2025-07-15 13:10:48 +01:00
snipe 7f1bdb6f34 Merge remote-tracking branch 'origin/develop' 2025-07-15 10:58:58 +01:00
snipe 6f57d6b876 Merge pull request #17407 from grokability/fixes-signature-pad-chrome
Fixed display of acceptance button if signature is not required
2025-07-15 10:58:34 +01:00
snipe e0bad99ea1 Fixes display of acceptannce button if signature is not required
Signed-off-by: snipe <snipe@snipe.net>
2025-07-15 10:55:30 +01:00
spencerrlongg 7cdfaa93ec a couple more tests and cleanup 2025-07-10 16:45:15 -05:00
spencerrlongg 59ccc70303 bulk changes that should make this work 2025-07-10 16:02:39 -05:00
spencerrlongg f1584b722d work on bulk tests, switching branches to check something 2025-07-10 15:29:42 -05:00
snipe e39eb09cfb Merge pull request #17390 from Godmartinz/unhandled-redirect-error
FIXED redirect option being NULL
2025-07-10 19:41:40 +01:00
Godfrey M 64d397c3f3 add component notification tests 2025-07-10 11:26:10 -07:00
Godfrey M 465ac1d1e1 remove ternary 2025-07-10 08:39:13 -07:00
Godfrey M 18d6becebc populate other_redirect in store method 2025-07-10 08:36:15 -07:00
snipe 943a4093ad Use standard model transformer for asset model API response
Signed-off-by: snipe <snipe@snipe.net>
2025-07-10 15:42:39 +01:00
snipe b0305e12d2 Merge remote-tracking branch 'origin/develop' 2025-07-10 13:11:10 +01:00
snipe b0917a5131 Merge pull request #17385 from grokability/17383-fix-api-route-path
Fixed #17383 - re-add `/hardware/` as an object type in the file upload API
2025-07-10 13:10:43 +01:00
snipe 0972c4e340 Re-added /hardware/ as viable route for API file uploads
Signed-off-by: snipe <snipe@snipe.net>
2025-07-10 13:06:22 +01:00
spencerrlongg 4d8c5a86a4 routes added, tests scratched but need writing 2025-07-09 23:01:58 -05:00
Godfrey M 3bbd0fdbcd google notifications fires properly 2025-07-09 17:02:51 -07:00
snipe 43a237bf95 Merge pull request #17378 from grokability/phpcs/models
Code formatting fixes
2025-07-09 21:55:30 +01:00
snipe 95f867b267 Code formatting fixes
Signed-off-by: snipe <snipe@snipe.net>
2025-07-09 21:48:53 +01:00
snipe 58f76b5c99 Merge remote-tracking branch 'origin/develop' 2025-07-09 21:01:24 +01:00
snipe e96daf469a Better phrasing
Signed-off-by: snipe <snipe@snipe.net>
2025-07-09 21:00:54 +01:00
snipe 7c4ee632cf Merge remote-tracking branch 'origin/develop' 2025-07-09 20:58:17 +01:00
snipe f2cdfe9e47 Normalize textarea for notes in acceptance form
Signed-off-by: snipe <snipe@snipe.net>
2025-07-09 20:58:07 +01:00
snipe b6b0f716eb Merge remote-tracking branch 'origin/develop' 2025-07-09 20:22:25 +01:00
snipe 929b67e768 Merge pull request #17376 from grokability/small-tweak-to-acceptance-ui
Better indicate via submit button colors and messaging that something is about to be accepted or declined
2025-07-09 20:21:50 +01:00
snipe 0573dc136a Put the sig check back
Signed-off-by: snipe <snipe@snipe.net>
2025-07-09 20:16:30 +01:00
snipe 48588f6a9e Small UI sugar on the acceptance/signature screen
Signed-off-by: snipe <snipe@snipe.net>
2025-07-09 20:08:19 +01:00
Godfrey M 8214b11da5 MS teams fires properly 2025-07-09 11:44:53 -07:00
Godfrey M 36090bf83e checked in notification fires, updated icon translation usage 2025-07-09 11:35:24 -07:00
Godfrey M bffb2fe82f checkout notification fires 2025-07-09 11:23:27 -07:00
Godfrey M 500cbf5d92 add component checkout notification, update checkout blade, update listener 2025-07-09 11:12:18 -07:00
snipe bd0e04ed15 Merge remote-tracking branch 'origin/develop' 2025-07-09 15:48:17 +01:00
snipe 88579b9bf3 Merge pull request #17374 from uberbrady/improve_inline_videos
Fixed [FD-49538 ] - use a Video tag for video files for non-Safari usage
2025-07-09 15:47:19 +01:00
snipe 8599981d44 Merge remote-tracking branch 'origin/develop' 2025-07-09 15:46:53 +01:00
snipe e8bb9bde99 Fixed #8201 - splits first_name and last_name in user export
Signed-off-by: snipe <snipe@snipe.net>
2025-07-09 15:46:42 +01:00
Brady Wetherington 0ee3cca4da Use a Video tag for video files for non-Safari usage 2025-07-09 15:15:53 +01:00
snipe 6fc6e95c67 Merge remote-tracking branch 'origin/develop' 2025-07-08 22:02:34 +01:00
snipe f89ee6b7f2 Merge pull request #17361 from Godmartinz/return-custom-textarea_input
Fixed #7957 - custom field Textarea input not retaining when switching Asset Models with shared fields
2025-07-08 22:02:07 +01:00
snipe 43b585bde8 Merge remote-tracking branch 'origin/develop' 2025-07-08 21:59:58 +01:00
snipe aebfb52c85 Merge pull request #17362 from Godmartinz/license-redirect-bug
Fixed #17310 - 500 on redirect when checking in a license seat
2025-07-08 21:59:22 +01:00
Godfrey M 667bd7af0e fix checkout_to_type being null when checking in 2025-07-08 13:53:10 -07:00
snipe 710f89291f Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	config/version.php
2025-07-08 21:27:06 +01:00
snipe bbf69bc582 Bumped version
Signed-off-by: snipe <snipe@snipe.net>
2025-07-08 21:26:15 +01:00
snipe f2b7a3d002 Updated language strings
Signed-off-by: snipe <snipe@snipe.net>
2025-07-08 21:25:31 +01:00
Godfrey M 3fd9e3ab56 include textareas input return 2025-07-08 12:02:56 -07:00
spencerrlongg 5f835aa009 delete unused imports 2025-07-07 18:07:26 -05:00
spencerrlongg d5ca543719 start introducing parent exception 2025-07-07 18:05:23 -05:00
snipe 4c6249eb9e Merge remote-tracking branch 'origin/develop' 2025-07-07 22:09:45 +01:00
snipe 8e11466a54 Added query scope
Signed-off-by: snipe <snipe@snipe.net>
2025-07-07 22:09:23 +01:00
snipe 016900bad8 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	config/version.php
2025-07-07 21:54:04 +01:00
snipe dade9797d5 Bumped hash
Signed-off-by: snipe <snipe@snipe.net>
2025-07-07 21:46:13 +01:00
snipe 2e8ae33761 Merge remote-tracking branch 'origin/develop' 2025-07-07 20:58:36 +01:00
snipe 97c1e65ffc Fixed fieldname
Signed-off-by: snipe <snipe@snipe.net>
2025-07-07 20:58:26 +01:00
snipe b4e22f4a21 Small fix for seat listing
Signed-off-by: snipe <snipe@snipe.net>
2025-07-07 20:56:26 +01:00
Godfrey M 2b8ea9a233 add required to input validation 2025-07-07 10:46:54 -07:00
snipe 0d325060da Merge remote-tracking branch 'origin/develop' 2025-07-07 17:06:24 +01:00
snipe 58b6feb3ca Merge pull request #17356 from grokability/show-only-taken-licenses
[FD-49569 ] - Show only assigned in license tab
2025-07-07 17:05:38 +01:00
snipe 41c4920d45 Show only assigned in license tab
Signed-off-by: snipe <snipe@snipe.net>
2025-07-07 16:58:36 +01:00
snipe 1a6e98e18f Merge remote-tracking branch 'origin/develop' 2025-07-07 16:24:04 +01:00
snipe d1ddd8de98 Re-add column selector
Signed-off-by: snipe <snipe@snipe.net>
2025-07-07 16:23:48 +01:00
snipe 97e34595f6 Merge remote-tracking branch 'origin/develop' 2025-07-07 16:00:10 +01:00
snipe f41307eb4a Merge pull request #17353 from grokability/fixes-#14295-send-acceptance-on-signing
Fixed #14295 - allow user to receive an email PDF upon signing
2025-07-07 15:59:03 +01:00
snipe 59de77feb0 Use company name if provided instead of site name
Signed-off-by: snipe <snipe@snipe.net>
2025-07-07 15:55:40 +01:00
snipe 8ebbcf6e80 Removed console commands
Signed-off-by: snipe <snipe@snipe.net>
2025-07-07 15:55:31 +01:00
snipe 24c6e836dd Added checkbox toggle
Signed-off-by: snipe <snipe@snipe.net>
2025-07-07 15:51:24 +01:00
snipe 8e38b3898e Fixes #14295 - allow user to receive an email PDF upon signing
Signed-off-by: snipe <snipe@snipe.net>
2025-07-07 15:38:36 +01:00
snipe a179d5234b Merge remote-tracking branch 'origin/develop' 2025-07-07 14:43:28 +01:00
snipe ce9a5e35c9 Merge pull request #17352 from grokability/fixed-#17273-notes-in-upcoming-audit
Fixed #17273 -  switch to HTML table from markdown
2025-07-07 14:42:43 +01:00
snipe b092779697 Fixed #17273 - switch to HTML table from markdown
Signed-off-by: snipe <snipe@snipe.net>
2025-07-07 14:37:38 +01:00
snipe 64c6121fdb Merge remote-tracking branch 'origin/develop' 2025-07-07 14:00:55 +01:00
snipe ab30a96d16 Merge pull request #17327 from Godmartinz/asset_model_redirect
FIXED: #15861 adds a redirect option for asset model and previous page
2025-07-07 14:00:31 +01:00
snipe 08d8954a85 Merge remote-tracking branch 'origin/develop' 2025-07-07 14:00:03 +01:00
snipe dab0fb16ad Merge pull request #17291 from Godmartinz/fix_bulk_checkout_focus
Fixes #12094 - Adds focus to select2 in bulk checkout
2025-07-07 13:57:12 +01:00
snipe 4f20955d0d Merge remote-tracking branch 'origin/develop' 2025-07-07 13:46:03 +01:00
snipe 5be398bc99 Merge pull request #17350 from grokability/tighter-control-on-company
Fixes #17302 - Tighter control on company
2025-07-07 13:45:08 +01:00
snipe 3a703c8bcf Merge remote-tracking branch 'origin/develop' 2025-07-07 13:35:07 +01:00
snipe fe4172957f Merge pull request #17351 from grokability/smaller-pdfs
Fixed #17349 - enable_font_subsetting in PDFs
2025-07-07 13:33:29 +01:00
snipe ff3a59d347 Fixed #17349 - enable_font_subsetting in PDFs
Signed-off-by: snipe <snipe@snipe.net>
2025-07-07 13:32:25 +01:00
snipe f9aedea26f Eager load admin
Signed-off-by: snipe <snipe@snipe.net>
2025-07-07 13:21:07 +01:00
snipe 5abd2c7151 Added tests
Signed-off-by: snipe <snipe@snipe.net>
2025-07-07 13:12:16 +01:00
snipe bfcaf4f37b Removed unecessary use statement
Signed-off-by: snipe <snipe@snipe.net>
2025-07-07 12:36:59 +01:00
snipe 5f4e1835bc Removed unused method
Signed-off-by: snipe <snipe@snipe.net>
2025-07-07 12:36:16 +01:00
snipe c1f1ae6b64 Removed logging
Signed-off-by: snipe <snipe@snipe.net>
2025-07-07 12:31:12 +01:00
snipe c4fcc6c24e Removed direct scoping calls
Signed-off-by: snipe <snipe@snipe.net>
2025-07-07 12:26:30 +01:00
snipe ccbffa086b Merge remote-tracking branch 'origin/develop' 2025-07-07 11:36:33 +01:00
snipe dd73ad9941 Merge pull request #17341 from Godmartinz/query_error_rb19824
Fixed #17193: perform Orderby before Collection in Bulk Assets Controller
2025-07-07 11:19:37 +01:00
snipe ac21f7569f Merge pull request #17346 from grokability/add-video-uploads
[FD-49538] Add video/audio uploads
2025-07-07 11:15:19 +01:00
snipe 4ef0158da4 Use preview instead of image text
Signed-off-by: snipe <snipe@snipe.net>
2025-07-03 20:19:29 +01:00
snipe 4db3b3ba0e Use config array for extensions in restore tool
Signed-off-by: snipe <snipe@snipe.net>
2025-07-03 20:19:13 +01:00
snipe dc43d85323 Check for audio files
Signed-off-by: snipe <snipe@snipe.net>
2025-07-03 20:15:30 +01:00
snipe 62651f381c Expand safe allowed inline files
Signed-off-by: snipe <snipe@snipe.net>
2025-07-03 20:13:57 +01:00
snipe 3e9098907a Use config file for file types/mimes
Signed-off-by: snipe <snipe@snipe.net>
2025-07-03 20:11:31 +01:00
snipe e18df250f8 Removed console debugging
Signed-off-by: snipe <snipe@snipe.net>
2025-07-03 20:08:08 +01:00
Godfrey M be5c5a51da get desired behavior of select-2 2025-07-02 11:20:04 -07:00
Godfrey M a728fad675 perform orderBy on query before converting to a Collection 2025-07-02 11:06:35 -07:00
snipe 07ee4be840 Merge remote-tracking branch 'origin/develop' 2025-07-02 18:38:12 +01:00
snipe 185629b310 Merge pull request #17338 from grokability/small-depreciation-tweaks
Fixed #1909 - Small depreciation tweaks
2025-07-02 18:37:21 +01:00
snipe 30ebea4f2d Return int count
Signed-off-by: snipe <snipe@snipe.net>
2025-07-02 18:24:27 +01:00
snipe b135c1eac2 Updated language strings in view
Signed-off-by: snipe <snipe@snipe.net>
2025-07-02 18:15:06 +01:00
snipe 88fef73d6f Use new translation
Signed-off-by: snipe <snipe@snipe.net>
2025-07-02 17:54:10 +01:00
snipe 556a9039e9 New strings
Signed-off-by: snipe <snipe@snipe.net>
2025-07-02 17:53:55 +01:00
snipe cdfe6c21c1 Tightened HTML, added translations
Signed-off-by: snipe <snipe@snipe.net>
2025-07-02 17:53:42 +01:00
snipe b094ebdd66 Removed validation of > 0
Signed-off-by: snipe <snipe@snipe.net>
2025-07-02 17:53:32 +01:00
snipe 4cc9b2d312 Merge remote-tracking branch 'origin/develop' 2025-07-02 17:21:39 +01:00
snipe 526a7ddea6 Merge pull request #17337 from grokability/fixes-#17112-ldap-location-set-to-0
Fixed #17112 - Set location ID to null instead of 0
2025-07-02 17:20:34 +01:00
snipe bb5ad31cba Merge pull request #17336 from uberbrady/safer_deserialize
Use safer deserialization defaults
2025-07-02 17:15:48 +01:00
snipe 549da2efed Set location ID to null instead of 0
Signed-off-by: snipe <snipe@snipe.net>
2025-07-02 17:15:18 +01:00
snipe e5e586dc43 Attempt to generalize companyable in company scope
Signed-off-by: snipe <snipe@snipe.net>
2025-07-02 17:12:55 +01:00
Brady Wetherington 8a682beb0e Use safer deserialization defaults 2025-07-02 14:49:12 +01:00
snipe 24dddae1d1 Merge remote-tracking branch 'origin/develop' 2025-07-02 11:57:57 +01:00
snipe 699e9f75c9 Fixed RB-19892
Check for location before trying to grab company property

Signed-off-by: snipe <snipe@snipe.net>
2025-07-02 11:57:42 +01:00
snipe ad0165d085 Merge remote-tracking branch 'origin/develop' 2025-07-02 11:44:30 +01:00
snipe 759e30977b Merge pull request #17333 from grokability/fixes-#17326-dash-sorting
Fixed #17326 - sorting on dashboard
2025-07-02 11:43:48 +01:00
snipe 6cfdb49cc3 Fixed #17326 - sorting on dashboard
Signed-off-by: snipe <snipe@snipe.net>
2025-07-02 11:41:21 +01:00
snipe 39dc38c5d1 Merge remote-tracking branch 'origin/develop' 2025-07-01 23:32:43 +01:00
snipe 1195121bf0 Merge pull request #17330 from uberbrady/add_escaping_to_action_logs
Add escaping to user_agent and remote_ip variables for API results
2025-07-01 23:30:41 +01:00
Brady Wetherington 8bc067b18b Add escaping to user_agent and remote_ip variables for API results 2025-07-01 23:22:09 +01:00
Godfrey M 76f59f7b85 fix variables 2025-07-01 12:52:16 -07:00
Godfrey M 55ebb4671f update check in and check out controllers 2025-07-01 12:44:26 -07:00
Godfrey M 8a9cf07063 editing controllers and edit blades for other categories 2025-07-01 12:31:55 -07:00
Godfrey M ca9ff8cf19 set return type for RedirectOptions 2025-07-01 12:04:02 -07:00
Godfrey M 7217d9c427 adds redirect to previous page, use match instead of switch cases 2025-07-01 11:55:46 -07:00
Godfrey M 9d712ad8f1 clean up code 2025-07-01 10:56:02 -07:00
Godfrey M f3e49e7010 add asset model as a redirect option 2025-07-01 10:43:00 -07:00
snipe 046ce19dbb Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	config/version.php
2025-06-30 11:46:24 +01:00
snipe ba94f1b920 Bumped version
Signed-off-by: snipe <snipe@snipe.net>
2025-06-30 11:45:43 +01:00
snipe edcd46dd67 Updated language strings
Signed-off-by: snipe <snipe@snipe.net>
2025-06-30 11:44:46 +01:00
snipe 5cf6c89dde Merge pull request #17322 from grokability/fixes-#8484-add-supplier-to-license-relationship
Fixed #8484 - added supplier to license relationship
2025-06-30 11:29:07 +01:00
snipe 58676b1f83 Fixed #8484 - added supplier to license relationship
Signed-off-by: snipe <snipe@snipe.net>
2025-06-30 11:27:30 +01:00
snipe 8ff7c30e5a Merge pull request #17315 from grokability/traitify-uploads
Added HasUploads trait and remove uploads method for models
2025-06-27 20:00:28 +01:00
snipe cd989768d4 Added HasUploads trait and remove uploads method for models
Signed-off-by: snipe <snipe@snipe.net>
2025-06-27 19:32:22 +01:00
snipe 33263f5a93 Merge remote-tracking branch 'origin/develop' 2025-06-27 13:52:09 +01:00
snipe 6cbdefe3d9 Small regressions
Signed-off-by: snipe <snipe@snipe.net>
2025-06-27 13:04:02 +01:00
snipe 8ef8e76300 Merge remote-tracking branch 'origin/develop' 2025-06-27 12:48:54 +01:00
snipe c6ecc0d8e8 Merge pull request #17311 from grokability/rwork-bulk-api-to-smaller-pr
Fixed #9413 and rework upload API for bulk and better responses (refactor of #16964)
2025-06-27 12:43:34 +01:00
snipe e0f5663bf4 Requested changes
Signed-off-by: snipe <snipe@snipe.net>
2025-06-27 12:37:11 +01:00
snipe aafc8996c1 phpcbf fixes
Signed-off-by: snipe <snipe@snipe.net>
2025-06-27 12:18:54 +01:00
snipe 128da40cbf Added comments
Signed-off-by: snipe <snipe@snipe.net>
2025-06-27 12:03:12 +01:00
snipe ea0460e97e Remove unused API files controllers
Signed-off-by: snipe <snipe@snipe.net>
2025-06-27 11:51:36 +01:00
snipe d8e7123576 Added uploaded files API controllers and presenters
Signed-off-by: snipe <snipe@snipe.net>
2025-06-27 11:37:31 +01:00
snipe 73cfdae9e7 Merge remote-tracking branch 'origin/develop' 2025-06-25 15:00:46 +01:00
snipe 6f45ec655f Merge pull request #16857 from realchrisolin/generic_tape
Generic tape
2025-06-25 14:59:57 +01:00
snipe 54a3e41281 Merge remote-tracking branch 'origin/develop' 2025-06-25 14:58:46 +01:00
snipe ec17c168ea Merge pull request #17222 from grokability/fixes-#17221-move-table-featueres-into-js
Fixed #17221 - Moved common table elements to partial
2025-06-25 14:52:17 +01:00
snipe 119b097521 More cleanup
Signed-off-by: snipe <snipe@snipe.net>
2025-06-25 14:43:09 +01:00
snipe c731633a84 Fixed weird formatting
Signed-off-by: snipe <snipe@snipe.net>
2025-06-25 14:40:26 +01:00
snipe 6a4d6ade39 Fixed typo
Signed-off-by: snipe <snipe@snipe.net>
2025-06-25 14:39:46 +01:00
snipe b3b4697fc9 More whitespace cleanup
Signed-off-by: snipe <snipe@snipe.net>
2025-06-25 14:38:25 +01:00
snipe 72c706d697 Aaaand one more
Signed-off-by: snipe <snipe@snipe.net>
2025-06-25 14:30:34 +01:00
snipe 8a7af24bd4 More whitespace
Signed-off-by: snipe <snipe@snipe.net>
2025-06-25 14:29:33 +01:00
snipe dd01bd3e5f Cleaned up whitespace
Signed-off-by: snipe <snipe@snipe.net>
2025-06-25 14:29:01 +01:00
snipe 59cade9f82 Cleaned up whitespace
Signed-off-by: snipe <snipe@snipe.net>
2025-06-25 14:28:20 +01:00
snipe 6bb9b79832 Tweaked dashboard
Signed-off-by: snipe <snipe@snipe.net>
2025-06-25 14:11:29 +01:00
snipe f8fe7b5803 Removed whitespace
Signed-off-by: snipe <snipe@snipe.net>
2025-06-25 14:11:19 +01:00
snipe 4d6279d61c Added JS to handle data-dash attribute overrides
Signed-off-by: snipe <snipe@snipe.net>
2025-06-25 14:11:04 +01:00
snipe 5ef581f328 Fixed typo
Signed-off-by: snipe <snipe@snipe.net>
2025-06-25 14:10:51 +01:00
snipe d59ba6da84 Merge remote-tracking branch 'origin/develop' 2025-06-25 13:11:39 +01:00
snipe 20a59c343e Merge pull request #17296 from uberbrady/improve_fmcs_locations_test
Fixed #17190 and [FD-49375]: Do FMCS testing 'async' to keep from blowing out the whole settings page
2025-06-25 13:10:54 +01:00
snipe d6feb522b7 Merge pull request #17297 from grokability/fixes-#17259-#15239-external-avatar
Fixed #15239 and #17259 - better handle external avatars
2025-06-25 13:09:33 +01:00
snipe 951aee8292 Fixes #15239 and #17259 - better handle external avatars
Signed-off-by: snipe <snipe@snipe.net>
2025-06-25 13:03:51 +01:00
Brady Wetherington 6e2d7912b5 Do the FMCS testing 'async' to keep from blowing out the whole page 2025-06-25 12:59:37 +01:00
snipe 1b28b06934 Merge remote-tracking branch 'origin/develop' 2025-06-25 11:04:15 +01:00
snipe b20925b550 Fixed #17282 - removed erroneous update gate for user-license endpoint
Signed-off-by: snipe <snipe@snipe.net>
2025-06-25 11:03:06 +01:00
Godfrey M c8b213c190 remove some changes, move error bag 2025-06-24 13:10:32 -07:00
Godfrey M 942de9dce5 got validation to redirect back to form and display 2025-06-24 12:42:07 -07:00
Godfrey M 483f684b04 adds focus to select 2 bulk checkout 2025-06-24 09:58:38 -07:00
snipe 26774b4193 Merge pull request #17287 from uberbrady/limit_license_seat_increments
Fixed [FD-45786] - Limit changing of asset seat count to no more than 10k at a time
2025-06-24 17:43:02 +01:00
Brady Wetherington a7a597d609 Added some tests around license seat changes 2025-06-24 17:35:49 +01:00
snipe 1c12b9278a Merge pull request #17116 from marcusmoore/17065-send-alert-to-assigner-upon-response
Fixed #17065 - allow sending acceptance alert to initiator.
2025-06-24 17:30:47 +01:00
Brady Wetherington de4764bd05 Limit changing of asset seat count to no more than 10k at a time 2025-06-24 13:53:11 +01:00
snipe ff3e69a56c Merge remote-tracking branch 'origin/develop' 2025-06-23 20:51:24 +01:00
snipe c1e7a78d23 Merge pull request #17284 from Godmartinz/fix-depreciation-choice-in-transformer
FIXED: #14869 changes the depreciation method selected for Assets index table
2025-06-23 20:49:25 +01:00
Godfrey M 8894bb91cc fix method choice in asset transformer for depreciations 2025-06-23 12:37:29 -07:00
snipe c955126f01 Merge pull request #17283 from Godmartinz/multiclick_checkout_bug
Fixed #14077: Disables checkout button after submitting
2025-06-23 20:30:38 +01:00
Godfrey M ce53b48d04 disable checkout button after submitting 2025-06-23 12:18:24 -07:00
snipe 6b975a5fb4 Merge remote-tracking branch 'origin/develop' 2025-06-23 16:41:42 +01:00
snipe 6015aeddee Merge pull request #17209 from Godmartinz/saml_xml_update_bug
Fixed #17089: SAML metadata now updating with new XML uploads
2025-06-23 16:40:35 +01:00
snipe 7b04e30964 Merge pull request #17280 from grokability/fixes/#7246-manager-id-in-import
Fixed #7246 - added manager employee/username number to importer
2025-06-23 16:07:14 +01:00
snipe 6794f5e783 Added logging for manager import
Signed-off-by: snipe <snipe@snipe.net>
2025-06-23 15:46:04 +01:00
snipe 6e41ceff39 Fixed parameter order
Signed-off-by: snipe <snipe@snipe.net>
2025-06-23 15:41:56 +01:00
snipe 7ab47ff0de Fixed #7246 - added manager employee number to importer
Signed-off-by: snipe <snipe@snipe.net>
2025-06-23 15:11:57 +01:00
snipe 3a02b15124 Merge remote-tracking branch 'origin/develop' 2025-06-23 12:38:40 +01:00
snipe 92d24d8702 Merge pull request #17277 from grokability/#17264-add-notes-to-bulk
Fixed #17264: add notes to bulk asset edit
2025-06-23 12:36:50 +01:00
snipe bcbfd46682 Update controller
Signed-off-by: snipe <snipe@snipe.net>
2025-06-23 12:32:33 +01:00
snipe bfd96a695f Add notes field and nulling checkbox
Signed-off-by: snipe <snipe@snipe.net>
2025-06-23 12:32:28 +01:00
snipe f27e8534dc Make sure $item exists
Signed-off-by: snipe <snipe@snipe.net>
2025-06-23 12:32:15 +01:00
snipe 040cd7ddbf Updated string to use shorter version
Signed-off-by: snipe <snipe@snipe.net>
2025-06-22 20:56:37 +01:00
snipe 5f73d81935 Merge remote-tracking branch 'origin/develop' 2025-06-22 20:14:59 +01:00
snipe 8d6b21a076 Merge pull request #17241 from spencerrlongg/bug/17239-possible-500-when-checking-in-license-assigned-to-a-soft-deleted-user
Fixed #17239 - Add `withTrashed` User Search On License Checkin
2025-06-22 20:14:03 +01:00
snipe 2d36b25017 Merge pull request #17258 from Robert-Azelis/patch-13
Company info - user print assets
2025-06-22 20:13:24 +01:00
snipe 002b5c0f6f Merge remote-tracking branch 'origin/develop' 2025-06-22 20:07:52 +01:00
snipe 1f9e4306ae Fixed #17261 - check for either old or new label engine QR
Signed-off-by: snipe <snipe@snipe.net>
2025-06-22 20:07:30 +01:00
snipe 8086842570 Merge remote-tracking branch 'origin/develop' 2025-06-22 19:42:03 +01:00
snipe 5242e0b36e Merge pull request #17270 from grokability/fixes/#17249-order-by-location-in-maintenances
Fixed #17249 - sort by location in asset maintenances
2025-06-22 19:41:14 +01:00
snipe e50505532e Fixes #17249 - sort by location in asset maintenances
Signed-off-by: snipe <snipe@snipe.net>
2025-06-22 19:38:39 +01:00
snipe 51f2d5a664 Merge remote-tracking branch 'origin/develop' 2025-06-22 19:30:42 +01:00
snipe f05ef18d55 Merge pull request #17269 from grokability/fixes/#17256-user-eula-view
Fixed #17256: fixed permissions for non-super-admins to view their own EULAs
2025-06-22 19:29:41 +01:00
snipe f6eccd7277 Added profile routes
Signed-off-by: snipe <snipe@snipe.net>
2025-06-22 19:25:30 +01:00
snipe 4d1258c64b Fixed downloadformatter
Signed-off-by: snipe <snipe@snipe.net>
2025-06-22 19:25:17 +01:00
snipe 103cbfd038 Use profile eula API view
Signed-off-by: snipe <snipe@snipe.net>
2025-06-22 19:25:05 +01:00
snipe 47069ad3f4 Added stored eula method on profile
Signed-off-by: snipe <snipe@snipe.net>
2025-06-22 19:24:45 +01:00
snipe 317f620992 Added profile controller
Signed-off-by: snipe <snipe@snipe.net>
2025-06-22 19:24:19 +01:00
snipe 8f43694582 Added eula download with user check in profile controller
Signed-off-by: snipe <snipe@snipe.net>
2025-06-22 19:24:06 +01:00
snipe df30076ffd Update gate for user
Signed-off-by: snipe <snipe@snipe.net>
2025-06-22 19:23:50 +01:00
snipe f81750617e Fixed mismatched html header tag
Signed-off-by: snipe <snipe@snipe.net>
2025-06-22 17:30:13 +01:00
Robert-Azelis e4534c4319 Company info - user print assets 2025-06-20 10:33:09 +02:00
snipe d6c09aae6b Updated paveit command to delete by user_id instead of ID
Signed-off-by: snipe <snipe@snipe.net>
2025-06-18 21:15:04 +01:00
spencerrlongg d3d5230d0c add with trashed to user search 2025-06-17 19:15:13 -05:00
spencerrlongg db63ad1cf4 add image check to supplier action 2025-06-17 18:13:37 -05:00
Marcus Moore 6f3c5c44a5 Remove assertion 2025-06-17 14:31:14 -07:00
Marcus Moore 67b32ca14d Mail content improvements 2025-06-17 14:22:54 -07:00
Marcus Moore bffaf477ea Method order 2025-06-17 14:22:44 -07:00
Marcus Moore cba45ece12 Add image 2025-06-17 13:57:40 -07:00
Marcus Moore 3290d7f401 Add translations 2025-06-17 13:27:05 -07:00
Marcus Moore ef3827376d Add todo 2025-06-17 13:17:42 -07:00
Marcus Moore 4ae8a91051 Remove unused method 2025-06-17 12:34:43 -07:00
Marcus Moore ff4819ac68 Get licenses working 2025-06-17 12:34:16 -07:00
Marcus Moore 58af133853 Re-add some test cases 2025-06-17 11:51:33 -07:00
Godfrey M 8199cd2118 comment merge methods for now 2025-06-17 10:59:57 -07:00
snipe b74b76de75 Merge remote-tracking branch 'origin/develop' 2025-06-17 18:17:10 +01:00
snipe 9f02b80cf1 Merge pull request #17233 from grokability/fixes-#17232-duplicate-expected-checkin-field
Fixed #17232 - removed duplicate expected_checkin field on asset edit/create
2025-06-17 18:14:36 +01:00
snipe d3e4e81168 Fixed #17232 - removed duplicate expected_checkin field
Signed-off-by: snipe <snipe@snipe.net>
2025-06-17 18:08:21 +01:00
snipe a1b1498106 Merge remote-tracking branch 'origin/develop' 2025-06-17 17:51:37 +01:00
snipe 38195c0a8f Merge pull request #17225 from grokability/fixes-ui-issues-in-manager-view
Fixes #17227 and #17228 - UI issues in manager view
2025-06-17 17:28:52 +01:00
snipe 5fa11e4278 Updated language strings
Signed-off-by: snipe <snipe@snipe.net>
2025-06-17 16:57:26 +01:00
snipe c39b52fcb5 Move select list closer to the table, removed awkward icon
This makes the view more consistent with the normal layout and removes the CSRF that was being passed in the GET on the form.submit

Signed-off-by: snipe <snipe@snipe.net>
2025-06-17 16:57:17 +01:00
snipe ec65fc1e65 Move manager view option to misc section
Signed-off-by: snipe <snipe@snipe.net>
2025-06-17 16:56:56 +01:00
snipe 32d8646d96 Add @lukaskraic as a contributor 2025-06-17 16:26:17 +01:00
snipe e8835fc2b1 Merge pull request #17096 from lukaskraic/feature/manager-view-v2
Manager View Feature
2025-06-17 16:24:40 +01:00
snipe 1158851ea7 Merge remote-tracking branch 'origin/develop' 2025-06-17 15:57:12 +01:00
snipe 054a06c5dc Update resources/lang/en-US/admin/settings/general.php
Co-authored-by: Marcus Moore <contact@marcusmoore.io>
2025-06-17 15:39:26 +01:00
snipe 9c61d2eb22 Removed common elements in tables
Signed-off-by: snipe <snipe@snipe.net>
2025-06-17 14:25:02 +01:00
snipe d66b6cfee6 Merge pull request #17220 from grokability/added-advanced-search-to-activity-log
Added advanced search to activity log
2025-06-17 13:24:31 +01:00
snipe 89c0427b2f Added fullscreen option
Signed-off-by: snipe <snipe@snipe.net>
2025-06-17 13:24:02 +01:00
snipe 3fec10d447 Added advanced search to activity log
Signed-off-by: snipe <snipe@snipe.net>
2025-06-17 13:20:39 +01:00
snipe e1ab9e959e Merge remote-tracking branch 'origin/develop' 2025-06-17 13:03:27 +01:00
snipe f8b4981bfe Merge pull request #17219 from grokability/fixes-#17213-search-by-admin
Fixes #17213:  search by admin (created_by) in activity report
2025-06-17 13:02:51 +01:00
snipe 130669a2f9 Added adminuser relationship in Searchable to concat first name and last name
Signed-off-by: snipe <snipe@snipe.net>
2025-06-17 13:01:57 +01:00
snipe c2c79ee231 Make created_by searchable
Signed-off-by: snipe <snipe@snipe.net>
2025-06-17 12:56:39 +01:00
snipe 86f10bd702 Added employee number to searchable relation
Signed-off-by: snipe <snipe@snipe.net>
2025-06-17 12:56:30 +01:00
snipe 2bbac3ae9d Merge remote-tracking branch 'origin/develop' 2025-06-17 12:38:52 +01:00
snipe b496a06fc0 Merge pull request #17218 from grokability/fixed-#17212-hide-columns-on-print
Fixed #17212 - hide columns from print view
2025-06-17 12:37:43 +01:00
snipe f865a6cb37 Added 'printIgnore' => true, to presenters to hide checkbox and action column from print view
Signed-off-by: snipe <snipe@snipe.net>
2025-06-17 12:35:05 +01:00
snipe 89186ea4f8 Merge pull request #17195 from grokability/#17192-fixes-wonky-layout-on-bulk-edit
Fixed #17192 - wonky layout on bulk edit screens
2025-06-17 11:55:31 +01:00
snipe fb19985186 Use the same variable for fieldset closing tag
Signed-off-by: snipe <snipe@snipe.net>
2025-06-17 11:52:47 +01:00
snipe e889b1d5e5 Merge remote-tracking branch 'origin/develop' 2025-06-17 11:42:00 +01:00
snipe ebc6e1221a Merge pull request #17198 from akemidx/ghissue-16241
Fixed #16241 - menu items not getting class="active" on click.
2025-06-17 11:40:56 +01:00
snipe 233bf856f4 Merge remote-tracking branch 'origin/develop' 2025-06-17 11:39:12 +01:00
snipe 2b91dcb700 Merge pull request #17216 from grokability/#17215-wrong-logo-check-in-print
Fixed #17215: Check for acceptance logo vs regular logo
2025-06-17 11:38:19 +01:00
snipe 9d2e333fd6 Check for acceptance logo vs regular logo
Signed-off-by: snipe <snipe@snipe.net>
2025-06-17 11:36:10 +01:00
Godfrey M 013ad1069c saving certs sooner in the stack 2025-06-16 16:30:00 -07:00
Godfrey M ec059717f6 adds id to XML textbox, now updates 2025-06-16 16:01:11 -07:00
akemidx 418566db3f fixes the easy ones 2025-06-16 18:41:36 -04:00
snipe bca843e06c Merge remote-tracking branch 'origin/develop' 2025-06-16 20:32:40 +01:00
snipe 7be9463be6 Merge pull request #17180 from grokability/#12653-added-jobtitle-to-asset-listing
Fixed #12653 - added jobtitle to asset listing
2025-06-16 20:29:01 +01:00
snipe 51712bc7d6 Check for whether any of the models have a fieldset
Signed-off-by: snipe <snipe@snipe.net>
2025-06-16 16:40:07 +01:00
snipe 7b889d22d2 Fixed HTML
Signed-off-by: snipe <snipe@snipe.net>
2025-06-16 16:14:01 +01:00
snipe 30a79a1278 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	config/version.php
2025-06-16 14:45:53 +01:00
snipe e8aad989ec Updated translations
Signed-off-by: snipe <snipe@snipe.net>
2025-06-16 14:27:47 +01:00
snipe 4006d64d60 Bumped version
Signed-off-by: snipe <snipe@snipe.net>
2025-06-16 14:25:59 +01:00
snipe d792d99375 Removed stray space for favicon
Signed-off-by: snipe <snipe@snipe.net>
2025-06-15 03:51:50 +01:00
snipe 0f92dee2c4 Merge remote-tracking branch 'origin/develop' 2025-06-15 03:41:23 +01:00
snipe b11036a2e5 Fixed #11977 - changed path in backups language
Signed-off-by: snipe <snipe@snipe.net>
2025-06-15 03:40:54 +01:00
snipe f04efede15 Merge remote-tracking branch 'origin/develop' 2025-06-15 02:59:47 +01:00
snipe 01de69a250 Merge pull request #17181 from grokability/fixed-#14542-missing-fullscreen-in-locations
Fixed #14542 - added fullscreen option for location view tabs
2025-06-15 02:57:51 +01:00
snipe 5e1c2e7feb Fixed #14542 - added fullscreen option for location view tabs
Signed-off-by: snipe <snipe@snipe.net>
2025-06-15 02:56:07 +01:00
snipe b842aa11e5 Remove debugging
Signed-off-by: snipe <snipe@snipe.net>
2025-06-15 02:25:25 +01:00
snipe ff01078b60 Fixed #12653 - adds job title to asset listing
Signed-off-by: snipe <snipe@snipe.net>
2025-06-15 02:23:53 +01:00
snipe f0dfdf6720 Merge remote-tracking branch 'origin/develop' 2025-06-14 23:56:06 +01:00
snipe b1e92293fc Merge pull request #14998 from timoschwarzer/feature/department-manager-in-table
Added #14997: Display department manager in user view and list
2025-06-14 23:51:41 +01:00
snipe 443f69bd82 Merge branch 'develop' into feature/department-manager-in-table 2025-06-14 23:48:52 +01:00
snipe e26d731382 Merge remote-tracking branch 'origin/develop' 2025-06-14 23:08:48 +01:00
snipe f4decbf52e Fixed #15480 - adds location to acceptance email
Signed-off-by: snipe <snipe@snipe.net>
2025-06-14 23:08:37 +01:00
snipe d684d3e559 Merge remote-tracking branch 'origin/develop' 2025-06-14 22:22:54 +01:00
snipe bd2c311e4f One more fix to bulk menu
Signed-off-by: snipe <snipe@snipe.net>
2025-06-14 22:22:42 +01:00
snipe 2dcab6d0b3 Fixed logic on bulk menu
Signed-off-by: snipe <snipe@snipe.net>
2025-06-14 22:21:00 +01:00
snipe c68a97198f Fixes #8212 - force date format for purchase date
Signed-off-by: snipe <snipe@snipe.net>
2025-06-14 20:40:15 +01:00
snipe 47c54cb998 Merge remote-tracking branch 'origin/develop' 2025-06-14 17:45:44 +01:00
snipe 2702c3da2b Merge pull request #17178 from grokability/fixes-maintenance-name-on-delete
Fixed #17177 - use maintenance title for delete confirmation
2025-06-14 17:44:21 +01:00
snipe da06e9afd5 Fixes #17177 - undefined title on asset maintenance
Signed-off-by: snipe <snipe@snipe.net>
2025-06-14 17:40:14 +01:00
snipe 1623f13539 Merge pull request #17147 from chrisnovakovic/php_upload_limit-hardening
Docker: harden updating of `php.ini` in entrypoint
2025-06-14 17:11:15 +01:00
snipe 592cb2b3ec Merge remote-tracking branch 'origin/develop' 2025-06-14 17:08:11 +01:00
snipe 5910982a4f Merge pull request #17176 from grokability/nicer-bulk-options-for-assets
Add logic around menu options
2025-06-14 17:06:49 +01:00
snipe 74630b36b0 Merge pull request #17175 from grokability/fixes/17172-checkin-date
Fixed #17172 - Better handle checkin date overrides
2025-06-14 17:06:30 +01:00
snipe ace4a5d614 Add logic around menu options
Signed-off-by: snipe <snipe@snipe.net>
2025-06-14 17:02:09 +01:00
snipe 0d41947f64 Better handle checkin date overrides
Signed-off-by: snipe <snipe@snipe.net>
2025-06-14 16:54:25 +01:00
snipe f5a7871a2e Merge remote-tracking branch 'origin/develop' 2025-06-14 16:44:48 +01:00
snipe 78de3b3591 Merge pull request #17174 from grokability/fixes-17163-permissions-on-maintenances
Fixed #17163 - insufficient permissions on editing an asset maintenance
2025-06-14 16:43:27 +01:00
snipe 0a4a6e7ba3 Removed unusued relationship
Signed-off-by: snipe <snipe@snipe.net>
2025-06-14 16:37:44 +01:00
snipe 090399b336 Fixed test
Signed-off-by: snipe <snipe@snipe.net>
2025-06-14 16:34:12 +01:00
snipe 47afb15970 Updated HTML
Signed-off-by: snipe <snipe@snipe.net>
2025-06-14 16:24:05 +01:00
snipe b1ba3376aa Validation for completion date
Signed-off-by: snipe <snipe@snipe.net>
2025-06-14 16:13:57 +01:00
snipe 8c1e19e77c Fixed breadcrumbs
Signed-off-by: snipe <snipe@snipe.net>
2025-06-14 15:53:05 +01:00
snipe 0801d1473c Use forem group div
Signed-off-by: snipe <snipe@snipe.net>
2025-06-14 14:57:55 +01:00
snipe 6d98878c72 Removed redirect
Signed-off-by: snipe <snipe@snipe.net>
2025-06-14 14:31:15 +01:00
snipe 2d404fdadc Fixed breadcrumbs
Signed-off-by: snipe <snipe@snipe.net>
2025-06-14 14:30:52 +01:00
snipe b264fde165 Show title if it’s an edit
Signed-off-by: snipe <snipe@snipe.net>
2025-06-14 14:30:43 +01:00
snipe 970ff25e5e Added model and company to manufacturer view
Signed-off-by: snipe <snipe@snipe.net>
2025-06-14 14:30:27 +01:00
snipe 9dd3eee65c Pull incorrect check for company scoping
Signed-off-by: snipe <snipe@snipe.net>
2025-06-14 14:04:09 +01:00
snipe 957faa6651 Fixed datepicker prepopulating with start_date
Signed-off-by: snipe <snipe@snipe.net>
2025-06-14 14:03:52 +01:00
snipe cc7dcc6e81 Disallow multiple on editing a maintenance
Signed-off-by: snipe <snipe@snipe.net>
2025-06-14 13:39:18 +01:00
snipe ec411fa0db Merge remote-tracking branch 'origin/develop' 2025-06-14 12:17:43 +01:00
snipe f666cba104 Fixed RB-3991 - override route for non-existent fieldset
Signed-off-by: snipe <snipe@snipe.net>
2025-06-14 12:17:31 +01:00
Marcus Moore 7f35498919 Remove some test cases 2025-06-12 15:56:24 -07:00
Marcus Moore 297205ff91 Tests 2025-06-12 15:55:25 -07:00
Marcus Moore 6f99381d13 Handle accessories 2025-06-12 15:49:38 -07:00
Marcus Moore 45a42b00ad Add test 2025-06-12 15:48:48 -07:00
Marcus Moore 6586858284 Scaffold some test cases 2025-06-12 15:31:32 -07:00
spencerrlongg 5da79cd5ca destroy manufacturer action, bulk manufacturer controller 2025-06-12 17:11:45 -05:00
Marcus Moore 19cce15e54 Revert "Method signature change"
This reverts commit a60ffc0702.
2025-06-12 13:54:53 -07:00
Marcus Moore 62b8e4c46f Revert "Inline some values"
This reverts commit 74b7d27408.
2025-06-12 13:54:46 -07:00
Marcus Moore 74b7d27408 Inline some values 2025-06-12 13:49:19 -07:00
Marcus Moore a60ffc0702 Method signature change 2025-06-12 13:46:05 -07:00
snipe 9b8524ba27 Merge pull request #17109 from akemidx/bug/sc-28718-2
FIXED: Adding Total to Consumable View Page
2025-06-12 21:44:08 +01:00
Marcus Moore 32526d77b8 Add todo 2025-06-12 13:35:22 -07:00
snipe a850a9bb83 Merge remote-tracking branch 'origin/develop' 2025-06-12 21:34:59 +01:00
snipe ba7db8f7b3 Merge pull request #17092 from Godmartinz/fix-bulk_checkout_undeployable
Adds `hasUndeplyableStatus` check to bulk checkout
2025-06-12 21:29:26 +01:00
snipe 04712ad252 Merge pull request #17151 from Godmartinz/bulk-checkout-add-pending-status
Fixed #17028: Allows bulk editing assets with a status type of pending
2025-06-12 21:27:44 +01:00
spencerrlongg 13c971b171 some refinements, bulk categories controller 2025-06-12 15:19:49 -05:00
Marcus Moore 5711a9e148 Fix test 2025-06-12 13:02:26 -07:00
Marcus Moore a0f40c2dfb Tests 2025-06-12 12:56:24 -07:00
Marcus Moore 34636016eb Improve test 2025-06-12 12:47:03 -07:00
Marcus Moore 95027e329c Formatting 2025-06-12 12:44:29 -07:00
Marcus Moore c9778a73c7 Wire up category controller 2025-06-12 12:32:34 -07:00
Marcus Moore 628d2a0a0a Flesh out mail contents 2025-06-12 12:12:38 -07:00
Marcus Moore cc0ff1ec1f Handle missing recipient 2025-06-12 11:53:30 -07:00
snipe 6543540509 Merge pull request #17166 from Godmartinz/item_name_fix_from_account_eula_table
FIXED: #17136 loads item relation properly in account EULA tab
2025-06-12 11:53:51 +01:00
spencerrlongg 1cee7e43ed more (reusable) exceptions, a couple notes 2025-06-12 00:47:57 -05:00
Marcus Moore cd53fc6318 Scaffold email contents 2025-06-11 16:56:40 -07:00
Godfrey M 4934b6c4da fix query for item relationship to load properly 2025-06-11 11:42:16 -07:00
spencerrlongg 5e81c63d6e some notes and things moved 2025-06-11 11:39:14 -05:00
snipe 479b7a3f94 Merge remote-tracking branch 'origin/develop' 2025-06-11 10:32:49 +01:00
snipe 59db38524b Merge pull request #17094 from spencerrlongg/snipe-it-17051
Fixes #17051 - Nulling Custom Fields In Bulk Asset Updates
2025-06-11 10:31:28 +01:00
snipe 3f5cfc3a4b Merge pull request #17142 from marcusmoore/fixes/present-on-null-in-expected-checkins-notification
Fixed Expected checkin notification erroring on unknown users
2025-06-11 10:27:49 +01:00
snipe 3443f02c0a Merge pull request #17141 from marcusmoore/fixes/undefined-manages_users_count-on-user
Fixed bad method calls in user index api call
2025-06-11 10:26:13 +01:00
snipe 9a012ca01e Merge pull request #17154 from Robert-Azelis/patch-10
Update user print assigned assets
2025-06-11 10:24:50 +01:00
snipe 509ef34cca Merge pull request #17155 from Robert-Azelis/patch-11
Update location print assigned assets
2025-06-11 10:24:29 +01:00
snipe f7cfee77c9 Merge remote-tracking branch 'origin/develop' 2025-06-11 10:20:22 +01:00
snipe 49c289a094 Merge pull request #17158 from grokability/changes-default-history-column-visibility
Changed default visibility on history views
2025-06-11 10:19:33 +01:00
snipe 10e5d88fb6 Changed default visibility on history views
Signed-off-by: snipe <snipe@snipe.net>
2025-06-11 10:16:26 +01:00
snipe ae64fb3fdb Merge pull request #17157 from grokability/fixed-#17138-category-type-case-sensitive
Fixed #17138 - category type was case-sensitive
2025-06-11 10:12:05 +01:00
snipe cac2fde504 Fixed #17138 - category type in category importer is case sensitive
Signed-off-by: snipe <snipe@snipe.net>
2025-06-11 10:08:59 +01:00
snipe bb38a96fd1 Merge pull request #17152 from marcusmoore/fixes/handle-category-missing-upon-checkin
Handle potentially missing category upon checkin
2025-06-11 09:36:50 +01:00
Robert-Azelis 79dbcb10c9 Update location print assigned assets
Lets allow user to select print layout: portrait or landscape
Use dedicated logo for PDF documents: acceptance_pdf_logo
2025-06-11 09:22:13 +02:00
Robert-Azelis 7c80fdea58 Update user print assigned assets
Lets allow user to select print layout: portrait or landscape
Use dedicated logo for PDF documents: acceptance_pdf_logo
2025-06-11 09:19:51 +02:00
Godfrey M 5500a42744 change message from error to warning 2025-06-10 15:10:10 -07:00
Godfrey M ae46264707 removed comment 2025-06-10 15:07:42 -07:00
Godfrey M f2d8665e54 adds tests 2025-06-10 15:07:04 -07:00
Marcus Moore db7110d6b2 Remove test 2025-06-10 10:43:23 -07:00
Marcus Moore 4e06b597fe Handle category missing in Consumable 2025-06-10 10:43:02 -07:00
Godfrey M fe006d05d3 allows to change the status to pending in bulk edit while deployed 2025-06-10 10:41:26 -07:00
Marcus Moore 358b70e280 Handle category missing in Accessory 2025-06-10 10:36:59 -07:00
Marcus Moore a060dde625 Add failing test 2025-06-10 10:34:25 -07:00
Godfrey M 3cfed72af4 removes undeployables from asset_id array 2025-06-10 10:11:00 -07:00
Chris Novakovic 4c59989236 Docker: harden updating of php.ini in entrypoint
The Docker entrypoint scripts set values for the `upload_max_filesize`
and `post_max_size` directives in `php.ini` based on the value of the
`PHP_UPLOAD_LIMIT` environment variable, subject to the following
restrictions:

* Exactly one file matches `/etc/php/*/apache2/php.ini` (on Ubuntu) or
  `/etc/php*/php.ini` (on Alpine) - if, for example, more than one PHP
  package is installed in the base image, `PHP_UPLOAD_LIMIT` will not be
  honoured.
* The `php.ini` file already sets a non-default value for the
  `upload_max_filesize` or `post_max_size` directives - this is
  currently the case for the configurations inherited from upstream, but
  is not guaranteed. If the default values are relied upon,
  `PHP_UPLOAD_LIMIT` will silently not be honoured (although the script
  output will claim that it is).

Iterate over the lines outputted by `file(1)` so `PHP_UPLOAD_LIMIT` is
honoured in all available `php.ini` files, and set `upload_max_filesize`
and `post_max_size` regardless of whether they already have a value set.
2025-06-10 13:39:46 +01:00
Marcus Moore 6c1adff5c8 Extract translation string 2025-06-09 15:33:39 -07:00
Marcus Moore 9293bdca06 Don't render link for Unknown User 2025-06-09 15:32:07 -07:00
Marcus Moore beeccbfb44 Handle unknown users gracefully 2025-06-09 15:30:03 -07:00
Marcus Moore 0d3d2e2e78 Fix keyes 2025-06-09 12:55:38 -07:00
Marcus Moore 2af7605451 Add failing tests 2025-06-09 12:55:09 -07:00
snipe 976cc1c86f Fixed second incorrect string
Signed-off-by: snipe <snipe@snipe.net>
2025-06-09 14:00:47 +01:00
snipe 65a8126a13 Merge remote-tracking branch 'origin/develop' 2025-06-09 13:40:44 +01:00
snipe cbbf3aa6c8 Fixed incorrect translation string
Signed-off-by: snipe <snipe@snipe.net>
2025-06-09 13:40:34 +01:00
snipe a39bc102d5 Merge remote-tracking branch 'origin/develop' 2025-06-08 15:30:32 +01:00
snipe 4f8ff98d5b Merge pull request #17129 from grokability/fixes#17127-added-note-to-eula-api
Fixed #17127 - added note to EULA info
2025-06-08 15:29:47 +01:00
snipe d4fe81c290 Fixed #17127 - added note to EULA info
Signed-off-by: snipe <snipe@snipe.net>
2025-06-08 15:27:50 +01:00
snipe 81d930c4d2 Merge remote-tracking branch 'origin/develop' 2025-06-08 15:19:19 +01:00
snipe cbdf03aa66 Nicer code formatting
Signed-off-by: snipe <snipe@snipe.net>
2025-06-08 15:18:59 +01:00
snipe d756670c56 Check for supplier before trying to show
Signed-off-by: snipe <snipe@snipe.net>
2025-06-08 15:17:24 +01:00
snipe 9ef7b0e64a Fixed missing translation string
Signed-off-by: snipe <snipe@snipe.net>
2025-06-06 20:41:36 +01:00
snipe 2d7c0f7e5f Merge pull request #16469 from grokability/fix_action_date
Fixed `action_date` in `action_logs`
2025-06-06 17:18:39 +01:00
snipe ec8ddc197f Merge branch 'develop' into fix_action_date 2025-06-06 17:18:27 +01:00
snipe b48e56bd46 Merge pull request #17110 from Godmartinz/allow-users-to-dl-eula-from-account
Fixed #17084 - Adds Eula table to User account area with download option
2025-06-06 17:07:19 +01:00
snipe 6839623061 Merge remote-tracking branch 'origin/develop' 2025-06-06 17:03:37 +01:00
snipe 753ca93371 Merge pull request #17126 from grokability/fixes-#17023-multi-maintenances
Fixes #17023 - added ability to bulk add maintenances
2025-06-06 17:01:50 +01:00
snipe 04f71e7f6a Shorter syntax
Signed-off-by: snipe <snipe@snipe.net>
2025-06-06 16:58:10 +01:00
snipe 5d129dd420 Small form fixes
Signed-off-by: snipe <snipe@snipe.net>
2025-06-06 16:56:45 +01:00
snipe 1c37c630aa Fixed test
Signed-off-by: snipe <snipe@snipe.net>
2025-06-06 16:26:37 +01:00
snipe d329d6104e Make supplier_id nullable
Signed-off-by: snipe <snipe@snipe.net>
2025-06-06 15:55:54 +01:00
snipe 482723f3bc Updated blade to use multiple
Signed-off-by: snipe <snipe@snipe.net>
2025-06-06 15:47:07 +01:00
snipe cbc025b1ff Updated save method to save multiple
Signed-off-by: snipe <snipe@snipe.net>
2025-06-06 15:46:55 +01:00
snipe bf8ceceabe Add bulk maintenance handler
Signed-off-by: snipe <snipe@snipe.net>
2025-06-06 15:42:14 +01:00
snipe fba4bba132 Make supplier not required anymore
Signed-off-by: snipe <snipe@snipe.net>
2025-06-06 15:41:41 +01:00
snipe 0ded40c037 Add multiselect to maintenance form
Signed-off-by: snipe <snipe@snipe.net>
2025-06-06 15:41:30 +01:00
snipe 6f486a37ff Added maintenance option to bulk menu
Signed-off-by: snipe <snipe@snipe.net>
2025-06-06 15:41:02 +01:00
snipe 7de2809d42 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	public/js/dist/bootstrap-table.js
#	public/mix-manifest.json
2025-06-06 14:05:47 +01:00
snipe 1ef822997b Merge pull request #17125 from grokability/fixed-17117-added-translation
Fixed #17117 - use translation for “site default”
2025-06-06 14:04:08 +01:00
snipe ea66629e98 Fixed #17117 - use translation for “site default”
Signed-off-by: snipe <snipe@snipe.net>
2025-06-06 14:03:17 +01:00
snipe 84c9979fe3 Merge pull request #17124 from grokability/add-print-button-to-tables
Added print button to tables
2025-06-06 13:52:22 +01:00
snipe 867a992183 Added print button to tables
Signed-off-by: snipe <snipe@snipe.net>
2025-06-06 13:51:12 +01:00
snipe 98ec6b6886 Merge remote-tracking branch 'origin/develop' 2025-06-06 12:48:54 +01:00
snipe c3ad7d649c Merge pull request #17122 from grokability/added_highlighting_to_search
Added highlighting on table search
2025-06-06 12:47:31 +01:00
snipe fc250e228d Added highlighting on table search
Signed-off-by: snipe <snipe@snipe.net>
2025-06-06 12:43:47 +01:00
snipe 04827f00cc Merge remote-tracking branch 'origin/develop' 2025-06-06 11:54:10 +01:00
snipe 37e81568ea Merge pull request #17120 from grokability/fixes-11807-datepicker-blade-component
Fixed #11807 - Standardize date-picker
2025-06-06 11:44:54 +01:00
snipe 048d910d5b Use partial
Signed-off-by: snipe <snipe@snipe.net>
2025-06-06 11:33:17 +01:00
snipe b162aba445 Added localization for datepicker
Signed-off-by: snipe <snipe@snipe.net>
2025-06-06 11:33:02 +01:00
snipe 974627849b Added datepicker partial
Signed-off-by: snipe <snipe@snipe.net>
2025-06-06 11:32:47 +01:00
snipe e18e9f699e Use blade component in datepicker partial
Signed-off-by: snipe <snipe@snipe.net>
2025-06-06 11:32:37 +01:00
snipe cc9209d2de Removed EOL date and purchase date partials
Signed-off-by: snipe <snipe@snipe.net>
2025-06-06 11:32:13 +01:00
snipe 660bfc6578 Merge remote-tracking branch 'origin/develop' 2025-06-06 08:31:09 +01:00
snipe dd3d264e63 Merge pull request #16675 from Godmartinz/null_location_id_fix
Adds a check for assigned target not being null when creating an asset
2025-06-06 08:30:31 +01:00
snipe 1152cd5537 Merge remote-tracking branch 'origin/develop' 2025-06-06 08:26:52 +01:00
snipe 246f1373a8 Merge pull request #16948 from marcusmoore/bug/sc-29181
Require assigned_x to be integer on asset model
2025-06-06 07:57:20 +01:00
snipe b993f4270e Merge pull request #17114 from grokability/fixes-16934-update-asset-by-id
Fixed #16934 and #17068 - update asset by ID in importer
2025-06-06 07:55:03 +01:00
snipe 6c51ef11b1 Merge pull request #17115 from marcusmoore/17067-limit-cc-if-acceptance-required
Fixed #17067: Allow only sending cc email when acceptance required
2025-06-06 07:41:26 +01:00
Marcus Moore ae98f6276e Replace reject with declined 2025-06-05 17:24:57 -07:00
Marcus Moore 7424a5987b Add subject 2025-06-05 17:22:31 -07:00
Marcus Moore 2d08749207 Improve readability 2025-06-05 16:56:11 -07:00
Marcus Moore db50e98ae3 Populate tests 2025-06-05 16:51:44 -07:00
Marcus Moore 7ec0925c69 Scaffold out tests 2025-06-05 16:44:44 -07:00
Marcus Moore df1361aa43 Scaffold test 2025-06-05 16:42:31 -07:00
akemidx 6db04c86df making fields active. first pass 2025-06-05 18:46:33 -04:00
Marcus Moore bec80b443c WIP: begin to send email 2025-06-05 15:15:22 -07:00
Marcus Moore 333501fe55 WIP: create mail class 2025-06-05 15:07:19 -07:00
Marcus Moore 063553d4f7 Scaffold scenarios 2025-06-05 14:57:15 -07:00
Marcus Moore 19b9e50281 Update livewire component for alert_on_response 2025-06-05 14:40:19 -07:00
Marcus Moore 2a68b4aeff Update test for updating category with alert_on_response 2025-06-05 14:36:06 -07:00
Marcus Moore 5e25150521 Add another test case 2025-06-05 14:26:56 -07:00
Marcus Moore cb183d3645 Store alert_on_response_id on CheckoutAcceptance 2025-06-05 14:06:22 -07:00
Marcus Moore 96bce301a0 Add alert_on_response to Category 2025-06-05 13:43:20 -07:00
Marcus Moore 360f5b7538 Add alert_on_response_id to CheckoutAcceptance 2025-06-05 13:10:18 -07:00
Marcus Moore 77234f6580 Extract translation strings 2025-06-05 12:24:46 -07:00
Marcus Moore 088e6af0b5 Remove admin_cc_email validation for admin_cc_always 2025-06-05 12:07:14 -07:00
Lukas Kraic 16fb1018a2 List users code refactoring 2025-06-05 20:05:38 +02:00
Godfrey M e2e54677ee add auth to api call, gave more specificity to the relationship 2025-06-05 10:59:16 -07:00
Lukas Kraic ad6fe855a9 Fix code style: Change comments 2025-06-05 18:53:36 +02:00
Lukas Kraic c50c97d149 Fix code style: Change comments 2025-06-05 18:18:07 +02:00
Lukas Kraic 8b98ae15f0 Fix code style: Add comment 2025-06-05 18:08:34 +02:00
Lukas Kraic 261f84d5f5 Fix code style: Remove comment 2025-06-05 17:55:46 +02:00
Lukas Kraic 29989ac24e Fix code style: Remove empty line after end comment 2025-06-05 13:50:57 +02:00
snipe 7a93e94fa6 Add ID to field list
Signed-off-by: snipe <snipe@snipe.net>
2025-06-05 12:35:30 +01:00
snipe e33f73fe9f Fixed comment text
Signed-off-by: snipe <snipe@snipe.net>
2025-06-05 11:56:14 +01:00
snipe 6291389df5 Fixed #16934 - update asset by ID in importer
Signed-off-by: snipe <snipe@snipe.net>
2025-06-05 11:53:57 +01:00
snipe ed817dc414 Merge branch 'develop' into snipe-it-17051 2025-06-05 11:37:17 +01:00
Lukas Kraic 7494fa6bc9 Fix code style: Remove unnecessary end comment from short conditional block 2025-06-05 12:03:42 +02:00
Lukas Kraic 62e50dbe52 Fix code style: Add semantically correct end comments 2025-06-05 11:56:13 +02:00
Lukas Kraic 30c090ba2d Fix code style: Add descriptive end comment for conditional block 2025-06-05 11:45:05 +02:00
Lukas Kraic 7ff82e6043 Delete comments 2025-06-05 11:07:42 +02:00
snipe 2950fb1041 Merge pull request #17108 from Godmartinz/clear-buttons-for-custom-fields
Adds a clear button to custom radio buttons in bulk edit
2025-06-05 10:03:27 +01:00
Lukas Kraic 61d3e2fb49 Fix code style: Add required whitespace in end block comments 2025-06-05 09:23:58 +02:00
Lukas Kraic fb18c1a0be Fix code style: Remove whitespace in end block comments 2025-06-05 08:59:07 +02:00
spencerrlongg 17456482d6 category destroy action 2025-06-04 21:42:58 -05:00
spencerrlongg a0431e1912 supplier actions working 2025-06-04 20:44:18 -05:00
Godfrey M 68c082e0dc fix doc blocks 2025-06-04 15:48:35 -07:00
Godfrey M ee3deb9c63 made eula api route, formatted table, cleaned up code 2025-06-04 15:04:59 -07:00
Marcus Moore c1505de8d6 Update wording 2025-06-04 13:02:04 -07:00
Marcus Moore 10be434c13 Populate tests 2025-06-04 12:58:49 -07:00
Marcus Moore 92e22eead5 Formatting 2025-06-04 12:51:59 -07:00
Marcus Moore 31db86abd3 Simplify test 2025-06-04 12:51:48 -07:00
Marcus Moore 8e70ff135a Scaffold tests 2025-06-04 12:44:55 -07:00
akemidx 5ec52f7471 beginning of everything. tried some stuff but yea. something is up 2025-06-04 15:10:16 -04:00
Marcus Moore 8bc57f98a5 Split test case 2025-06-04 11:51:29 -07:00
Godfrey M 6f4cee6334 adds Eula tab and count to user account 2025-06-04 11:38:50 -07:00
Godfrey M 6beccc5e60 adds clear ability to custom radio buttons 2025-06-04 10:24:45 -07:00
Godfrey M fed8e10644 Merge remote-tracking branch 'upstream/develop' into clear-buttons-for-custom-fields 2025-06-04 10:06:59 -07:00
snipe f30e8497b2 Merge remote-tracking branch 'origin/develop' 2025-06-04 16:17:26 +01:00
snipe 3c0121c1d0 Merge pull request #17107 from grokability/fixes-16218-add-centos
Fixed #16218 - added centos to the switch case
2025-06-04 15:33:23 +01:00
snipe 02021e3fb9 Fixed #16218 - added centos to the switch case
Signed-off-by: snipe <snipe@snipe.net>
2025-06-04 15:27:19 +01:00
Lukas Kraic ea447365fa Fix Codacy warnings II 2025-06-04 15:40:17 +02:00
Lukas Kraic 60989d6766 Fix Codacy warnings 2025-06-04 15:17:55 +02:00
snipe 06495bc45d Merge remote-tracking branch 'origin/develop' 2025-06-04 12:13:30 +01:00
snipe a2960dc653 Merge pull request #17103 from grokability/fixes-17102-add-cc-as-search-string-in-settings
Fixed #17102 - added keywords to admin settings search for notifications
2025-06-04 12:12:17 +01:00
snipe 702499dd79 Fixed #17102 - added keywords to admin settings search for notifications
Signed-off-by: snipe <snipe@snipe.net>
2025-06-04 12:09:57 +01:00
snipe 26067916b3 Merge remote-tracking branch 'origin/develop' 2025-06-04 11:49:03 +01:00
snipe 482c427e34 Merge pull request #17100 from uberbrady/add_deleted_at_index_to_action_logs
Fixed #16205 - Add an index to deleted_at for those with many deleted action_logs
2025-06-04 11:48:45 +01:00
snipe 67910490bd Merge pull request #17101 from grokability/fixes-16157-added-advanced-search-to
Fixed #16157 - Added advanced search to users
2025-06-04 11:48:24 +01:00
snipe fdb5ab2293 Added advanced search to users
Signed-off-by: snipe <snipe@snipe.net>
2025-06-04 11:46:38 +01:00
Brady Wetherington 092d9d1e42 Add deleted_at index to action_logs for people with many deleted action_logs 2025-06-04 11:23:09 +01:00
snipe c36ee4852b Merge remote-tracking branch 'origin/develop' 2025-06-04 10:40:56 +01:00
snipe e657f11531 Merge pull request #17099 from grokability/fixes-16240-localization-strings
Fixed #16240 - made additional strings translatable
2025-06-04 10:40:21 +01:00
snipe 9aac183318 Added aria tag for accessibility
Signed-off-by: snipe <snipe@snipe.net>
2025-06-04 10:40:05 +01:00
snipe c8c2867305 Remove unused translation
Signed-off-by: snipe <snipe@snipe.net>
2025-06-04 10:39:08 +01:00
snipe 3e1f71026c Fixed #16240 - made additional strings translatable
Signed-off-by: snipe <snipe@snipe.net>
2025-06-04 10:37:04 +01:00
snipe 2cb992ad44 Merge remote-tracking branch 'origin/develop' 2025-06-04 08:43:52 +01:00
snipe dc562d8c20 Remove error log
Signed-off-by: snipe <snipe@snipe.net>
2025-06-04 08:43:40 +01:00
Lukas Kraic 84ec5aea26 Manager View Feature 2025-06-04 09:07:26 +02:00
spencerrlongg ee5aac8008 supplier destroy action creaated and a lot scratched out 2025-06-03 20:25:07 -05:00
Marcus Moore 444c13c6ea Scaffold template 2025-06-03 17:10:15 -07:00
spencerrlongg 12d5e4f7d2 cleanup and test 2025-06-03 19:07:02 -05:00
spencerrlongg 0fb1639915 this works! 2025-06-03 18:06:41 -05:00
Marcus Moore d01f7cf317 Adhere to admin_cc_always setting 2025-06-03 15:32:11 -07:00
spencerrlongg 03725c8e0c custom field null and filtering 2025-06-03 17:21:07 -05:00
Marcus Moore 3942489d21 Add Test suffix and scaffold test 2025-06-03 14:13:52 -07:00
Marcus Moore 51479c8bbc Scaffold failing test 2025-06-03 13:28:40 -07:00
Marcus Moore ea3364ab68 Split test case 2025-06-03 13:19:44 -07:00
Godfrey M cb608d7fd1 testing buttons out 2025-06-03 11:58:57 -07:00
Godfrey M 7129008428 remove testing changes 2025-06-03 11:44:38 -07:00
Godfrey M 3b832f507f fixes status check for bulk checkout 2025-06-03 11:38:59 -07:00
Godfrey M b5849500f9 add isDeplyable check 2025-06-03 10:49:17 -07:00
snipe 083b7be6c0 Make version number match tagged version :(
Signed-off-by: snipe <snipe@snipe.net>
2025-06-03 11:03:33 +01:00
snipe e24854558f Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	config/version.php
2025-06-03 11:03:05 +01:00
snipe 9eaabf95a0 Make version number match tagged version :(
Signed-off-by: snipe <snipe@snipe.net>
2025-06-03 11:02:41 +01:00
snipe 724f38abc2 Merge pull request #16998 from kovacs-andras/develop
Bumped container image versions
2025-06-03 06:22:08 +01:00
snipe e4314cf426 Merge remote-tracking branch 'origin/develop' 2025-06-03 06:07:20 +01:00
snipe 0dfc083a91 Removed log error
Signed-off-by: snipe <snipe@snipe.net>
2025-06-03 06:07:06 +01:00
snipe 16432f503a Merge pull request #17087 from grokability/#17085-checkin-and-delete-not-nulling-assigned_type
Fixed #17085 - assigned_type not being nulled on asset delete+checkin
2025-06-03 05:53:24 +01:00
snipe 7c9433be5d Added migration to fix existing wonky data
Signed-off-by: snipe <snipe@snipe.net>
2025-06-03 05:37:37 +01:00
snipe e4ce71ff14 Added time on action date
Signed-off-by: snipe <snipe@snipe.net>
2025-06-03 05:30:53 +01:00
snipe 45c6406ff4 Added console command for fixup
Signed-off-by: snipe <snipe@snipe.net>
2025-06-03 05:30:43 +01:00
snipe 550e2b6bb8 Null both assigned to and assigned type on delete
Signed-off-by: snipe <snipe@snipe.net>
2025-06-03 05:30:30 +01:00
snipe a7bb890729 Removed action date from array of things to log
Signed-off-by: snipe <snipe@snipe.net>
2025-06-03 05:29:49 +01:00
snipe 3d8f8faf01 Added action_date
Signed-off-by: snipe <snipe@snipe.net>
2025-06-03 05:28:58 +01:00
snipe 55cf5877c4 Updated tests
Signed-off-by: snipe <snipe@snipe.net>
2025-06-03 05:28:45 +01:00
Marcus Moore dec3c4aff3 Improve wording 2025-06-02 17:45:08 -07:00
Marcus Moore 79e00c1191 Require admin_cc_email if admin_cc_always is true 2025-06-02 17:21:58 -07:00
Marcus Moore 12dc33244d Start storing admin_cc_always 2025-06-02 17:20:01 -07:00
Marcus Moore 6e37f945ac Add test helpers 2025-06-02 17:13:37 -07:00
Marcus Moore d75120000a Add failing tests 2025-06-02 17:11:18 -07:00
Marcus Moore 9e4aab7165 Scaffold tests 2025-06-02 17:05:18 -07:00
Marcus Moore 6bc3209333 Use @checked for inputs 2025-06-02 17:05:00 -07:00
Marcus Moore 054ff42547 Add migration for admin_cc_always 2025-06-02 17:03:14 -07:00
spencerrlongg 11b47b308b front end done, sloppy 2025-06-02 18:39:08 -05:00
Marcus Moore 367ab8ddd5 Add help text 2025-06-02 16:27:04 -07:00
Marcus Moore 4f5d4a0984 Scaffold settings page changes 2025-06-02 16:25:06 -07:00
Marcus Moore 69b9b0bbc0 Allow setting id within location-select 2025-06-02 15:53:25 -07:00
Marcus Moore 3c1088f030 Improve variable name 2025-06-02 15:49:16 -07:00
snipe 4106e4e45c Merge remote-tracking branch 'origin/develop' 2025-06-02 22:29:09 +01:00
snipe 40489c53d6 Merge pull request #17078 from grokability/fixes-#17076-validation-on-bulk-submit
Fixed #17076 - Disable optional status ID form field if value is blank/Do Not Change
2025-06-02 22:28:31 +01:00
snipe 93b760d53b Disable form fields if the value is blank
Signed-off-by: snipe <snipe@snipe.net>
2025-06-02 22:16:36 +01:00
snipe 05f143db2b Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	config/version.php
2025-06-02 18:15:54 +01:00
snipe e86996bc7e Bumped version
Signed-off-by: snipe <snipe@snipe.net>
2025-06-02 18:15:21 +01:00
snipe 14244f45b6 Duplicates PR #16957
Signed-off-by: snipe <snipe@snipe.net>
2025-06-02 18:13:16 +01:00
snipe 1b9d90a322 Added over sixty test
Signed-off-by: snipe <snipe@snipe.net>
2025-06-02 17:36:50 +01:00
snipe 64aeaeeeea Merge remote-tracking branch 'origin/develop' 2025-06-02 17:29:52 +01:00
snipe 736f74d083 Merge pull request #17074 from uberbrady/improve_api_rate_limiting
Fix to rate-limiter on higher rate-limits
2025-06-02 17:25:02 +01:00
Brady Wetherington 8194c6efdb Fix to rate-limiter on higher rate-limits 2025-06-02 17:21:14 +01:00
snipe 61db37ab0d Merge remote-tracking branch 'origin/develop' 2025-06-02 15:28:08 +01:00
snipe aae2a17ad1 Add @amedranogil as a contributor 2025-06-02 15:27:55 +01:00
snipe f44150668c Merge pull request #17038 from amedranogil/develop
more robust php.ini update.
2025-06-02 15:27:28 +01:00
snipe 6eed2deb09 Merge pull request #17013 from Robert-Azelis/patch-9
API Models - added requestable for API request
2025-06-02 15:26:08 +01:00
snipe f9c4d921e7 Merge remote-tracking branch 'origin/develop' 2025-06-02 15:07:15 +01:00
snipe 878c6e7031 Merge pull request #17019 from grokability/#15320-status_to_bulk_checkout
Fixed #15320 - added status label to bulk checkout
2025-06-02 15:05:44 +01:00
snipe ca099df573 Merge remote-tracking branch 'origin/develop' 2025-06-02 15:04:00 +01:00
snipe 1f4a73fab6 Merge pull request #17062 from grokability/add_category_importer
Added category importer
2025-06-02 15:03:31 +01:00
snipe 7a315523fe Improved CSV
Signed-off-by: snipe <snipe@snipe.net>
2025-06-02 15:01:16 +01:00
snipe 6f082e662b Fixed weird layout
Signed-off-by: snipe <snipe@snipe.net>
2025-06-02 14:52:41 +01:00
snipe 018c981c5a Merge pull request #17042 from marcusmoore/chore/replace-customfield-elements-macro-take-two
Replace customfield_elements form macro take two
2025-06-02 10:18:19 +01:00
snipe 0149773a03 Fixed variable name
Signed-off-by: snipe <snipe@snipe.net>
2025-06-02 04:14:51 +01:00
snipe 5d46d90725 Added category importer
Signed-off-by: snipe <snipe@snipe.net>
2025-06-02 04:11:54 +01:00
snipe 0544e05f32 Merge pull request #17061 from grokability/add_manufacturer_importer
Added manufacturer importer
2025-06-02 03:05:25 +01:00
snipe 80ff42a41f Fixed test
Signed-off-by: snipe <snipe@snipe.net>
2025-06-02 03:01:56 +01:00
snipe 90b7df45b9 Added tests and support helper
Signed-off-by: snipe <snipe@snipe.net>
2025-06-02 02:55:11 +01:00
snipe 32858b973a Added sample CSV
Signed-off-by: snipe <snipe@snipe.net>
2025-06-02 02:55:00 +01:00
snipe 40ba8d0de1 Fixed “send welcome email” detection
Signed-off-by: snipe <snipe@snipe.net>
2025-06-02 02:54:34 +01:00
snipe 8ddbb4e64f Added manufacturer factory
Signed-off-by: snipe <snipe@snipe.net>
2025-06-02 02:54:21 +01:00
snipe cc40c48aac Added manufacturers import fields
Signed-off-by: snipe <snipe@snipe.net>
2025-06-02 02:54:03 +01:00
snipe 522ab9e0f5 Added manufacturer importer
Signed-off-by: snipe <snipe@snipe.net>
2025-06-02 02:53:46 +01:00
snipe 97187aa7eb Skip manufacturers on checkout import type
Signed-off-by: snipe <snipe@snipe.net>
2025-06-02 02:53:37 +01:00
snipe d93a5aa623 Added redirect after import
Signed-off-by: snipe <snipe@snipe.net>
2025-06-02 02:53:09 +01:00
snipe a5b88982bf Added manufacturer icon
Signed-off-by: snipe <snipe@snipe.net>
2025-06-02 02:52:55 +01:00
snipe df71bdcada Merge pull request #17044 from marcusmoore/bug/sc-29302
Handle missing location when rendering labels
2025-06-02 02:21:19 +01:00
snipe 28b584b8bc Merge remote-tracking branch 'origin/develop' 2025-06-02 02:08:19 +01:00
snipe 51bab2dd26 Merge pull request #17045 from grokability/docker-laravel-log-permissions
Docker: Ensure permissions on Laravel log file
2025-05-30 06:52:31 +01:00
Jeremy Price ed8da6ad1b Docker: Ensure permissions on Laravel log file
FIXES: https://github.com/grokability/snipe-it/issues/12725

In some of our Docker startups, it was possible for the Laravel log file
to be created with root permissions, causing future errors when the
non-root webapp tries to write to it.

We'll now always chown (and create, if necessary) the log file to the proper
user after running any artisan commands (as root)

We _could_ run them as the proper user via su, but IMO not doing so keeps the
script easier to read, but I'm not married to the approach. I'd still
want to keep the chown command(s) in, because it will also fix the
permissions for anyone who already has this issue.
2025-05-29 17:45:14 -07:00
Marcus Moore 18d0a04efc Avoid dumping pdf contents to test results 2025-05-29 15:05:08 -07:00
Marcus Moore bb68ed3ad9 Handle asset not having location 2025-05-29 14:49:53 -07:00
Marcus Moore 402ca07aa2 Add failing test 2025-05-29 14:20:15 -07:00
snipe 70449e694d Merge remote-tracking branch 'origin/develop' 2025-05-29 22:18:50 +01:00
snipe 28dc358df1 Merge pull request #17041 from grokability/improve_locations_and_supplier_api
Small refinements for suppliers and locations API and list view
2025-05-29 21:30:54 +01:00
Marcus Moore 3cf1e9d55d Remove customfield_elements macro 2025-05-29 13:30:23 -07:00
Marcus Moore 82b001ab5f Extract translation strings 2025-05-29 13:29:13 -07:00
Marcus Moore 7b272226ce Inline customfield_elements select 2025-05-29 13:29:13 -07:00
snipe 78d26fb7f6 Removed stray character
Typing is hard :(

Signed-off-by: snipe <snipe@snipe.net>
2025-05-29 21:23:50 +01:00
snipe 930842e685 Removed unused method
Signed-off-by: snipe <snipe@snipe.net>
2025-05-29 21:18:19 +01:00
snipe b938cb42d8 Merge pull request #17040 from marcusmoore/improve-acceptance-reminder-output
Avoid displaying empty table in `SendAcceptanceReminder` command
2025-05-29 21:14:09 +01:00
snipe 4c7b6d130f Added additional search and display fields for suppliers and locations
Signed-off-by: snipe <snipe@snipe.net>
2025-05-29 21:13:08 +01:00
Marcus Moore af57ca4983 Avoid displaying empty table 2025-05-29 11:55:43 -07:00
snipe 40c31a1ad7 Eager load adminuser method
Signed-off-by: snipe <snipe@snipe.net>
2025-05-29 17:13:16 +01:00
snipe 7ae4a4177f Added created_by to transformer
Signed-off-by: snipe <snipe@snipe.net>
2025-05-29 17:13:05 +01:00
snipe 6efd323fbf Added adminuser method
Signed-off-by: snipe <snipe@snipe.net>
2025-05-29 17:12:48 +01:00
snipe ed9dbcc777 Added created_by to location presenter
Signed-off-by: snipe <snipe@snipe.net>
2025-05-29 17:12:33 +01:00
snipe c2cf7de41b Use presenter for suppliers
Signed-off-by: snipe <snipe@snipe.net>
2025-05-29 17:12:16 +01:00
Alejandro M. Medrano Gil 32bd14bd2d more robust php.ini update.
could solve #10830 when setting PHP_UPLOAD_LIMIT environment variable in docker command and/or docker-compose.
2025-05-29 17:46:23 +02:00
snipe 8395ea552d Merge remote-tracking branch 'origin/develop' 2025-05-29 16:17:58 +01:00
snipe f9cbecdb17 Merge pull request #17037 from grokability/supplier_importer
Added #17036 - suppliers importer
2025-05-29 16:15:59 +01:00
snipe 7bb29a0277 Added sample import CSVs
Signed-off-by: snipe <snipe@snipe.net>
2025-05-29 16:08:17 +01:00
snipe d5f7579e9f Added columns to suppliers
Signed-off-by: snipe <snipe@snipe.net>
2025-05-29 16:08:01 +01:00
snipe 13fd43c45c Added tests and test support
Signed-off-by: snipe <snipe@snipe.net>
2025-05-29 16:07:51 +01:00
snipe c08ce901cc Added strings
Signed-off-by: snipe <snipe@snipe.net>
2025-05-29 16:07:19 +01:00
snipe 94bd11d3c9 Added locations and supplier import types
Signed-off-by: snipe <snipe@snipe.net>
2025-05-29 16:07:11 +01:00
snipe 59c6e26b29 Fixed mapping
Signed-off-by: snipe <snipe@snipe.net>
2025-05-29 16:06:51 +01:00
snipe bf7cc404f8 Set correct redirect
Signed-off-by: snipe <snipe@snipe.net>
2025-05-29 15:54:37 +01:00
snipe 12a2c71b90 Added icon
Signed-off-by: snipe <snipe@snipe.net>
2025-05-29 14:47:59 +01:00
snipe 6e2eeba0f6 Added supplier importer
Signed-off-by: snipe <snipe@snipe.net>
2025-05-29 14:47:54 +01:00
snipe dc66452633 Merge remote-tracking branch 'origin/develop' 2025-05-29 13:32:41 +01:00
snipe 99a739fae3 Merge pull request #17035 from grokability/settings_style_improvements
Fixed #17034 - larger header color box on small views
2025-05-29 13:30:31 +01:00
snipe 0185f61c11 Fixed #17034 - larger header color box on small views
Signed-off-by: snipe <snipe@snipe.net>
2025-05-29 13:23:07 +01:00
snipe 783f0c113d Merge pull request #17009 from marcusmoore/chore/replace-user-skin-macro
Replace `skin` and `user_skin` macros with blade component
2025-05-29 13:07:47 +01:00
snipe 75a839cc21 Merge pull request #17010 from marcusmoore/chore/replace-two-factor-select-macro
Replace `two_factor_options` macro
2025-05-29 13:07:23 +01:00
snipe 53ce44ac91 Merge remote-tracking branch 'origin/develop' 2025-05-29 12:38:40 +01:00
snipe 577b5586b4 Merge pull request #17025 from akemidx/clear_button_on_date_picker
FIXED: Clear Button actually Clearing Dates on Date Picker
2025-05-29 12:37:56 +01:00
snipe 1474a16148 Merge pull request #17024 from akemidx/created_at_date_picker
ADDED: Created At date picker on Custom Reports
2025-05-29 12:37:17 +01:00
snipe 9baa2000e1 Merge pull request #17026 from marcusmoore/bug/translate-email-format
Reference correct translation string
2025-05-29 12:36:08 +01:00
snipe c7c3243bbc Merge remote-tracking branch 'origin/develop' 2025-05-29 12:35:21 +01:00
snipe d0624dbefe Merge pull request #17027 from akemidx/bug/sc-29295
FIXED: Translation strings in Username/Email formats
2025-05-29 12:34:47 +01:00
snipe 8bdd77d33d Merge remote-tracking branch 'origin/develop' 2025-05-29 12:24:51 +01:00
snipe ecb6e8d9a9 Fixed route for custom fields index
Signed-off-by: snipe <snipe@snipe.net>
2025-05-29 12:24:22 +01:00
snipe acd7d0db3a Merge remote-tracking branch 'origin/develop' 2025-05-29 12:09:08 +01:00
Robert-Azelis bbb299faf2 Update AssetModelsController.php 2025-05-29 08:42:29 +02:00
snipe ba3b55cab0 Merge pull request #17022 from marcusmoore/bug/sc-29281
Avoid dividing by zero in DefaultLabel
2025-05-29 02:42:41 +01:00
akemidx 67acca7bc8 fixing two translation strings. 2025-05-28 20:21:05 -04:00
Marcus Moore e4b33c3b56 Reference correct translation string 2025-05-28 16:36:39 -07:00
akemidx ed43c73cec clearing the date pickers 2025-05-28 18:48:22 -04:00
akemidx a6fa795b41 clearing the date pickers 2025-05-28 18:48:08 -04:00
akemidx 3a6bac2e63 date picker 2025-05-28 18:43:24 -04:00
akemidx 8e01c05e42 date picker 2025-05-28 18:43:14 -04:00
akemidx fabf9281e9 date picker 2025-05-28 18:35:43 -04:00
Marcus Moore 6588d409b8 Add validation 2025-05-28 14:45:03 -07:00
snipe 92a3421a4e Merge pull request #17020 from akemidx/column_persist_on_assigned_assets
FIXED: Column persist on User's Self View of Assigned Assets
2025-05-28 22:44:36 +01:00
Marcus Moore a42147ff34 Enforce min of .1 for label width and height 2025-05-28 14:05:29 -07:00
Marcus Moore 0df1bc6894 Scaffold test 2025-05-28 14:04:12 -07:00
akemidx 9317076c5e adding cookie for Assigned Assets 2025-05-28 16:39:37 -04:00
snipe 1b5525c51f Added status label to view blade, variable to controller method
Signed-off-by: snipe <snipe@snipe.net>
2025-05-28 20:51:21 +01:00
snipe 6019c80c7b Added blade element
Signed-off-by: snipe <snipe@snipe.net>
2025-05-28 20:50:59 +01:00
Marcus Moore aaa6cb24d4 Scaffold test 2025-05-28 11:28:23 -07:00
snipe 1ef5ad500a Merge pull request #17017 from grokability/localization/translations-2025-05-28
Updated translations
2025-05-28 18:34:15 +01:00
snipe 9468acedfa Updated languages
Signed-off-by: snipe <snipe@snipe.net>
2025-05-28 18:20:02 +01:00
snipe 6a951b6357 Merge pull request #17012 from Robert-Azelis/patch-8
API Locations - added company_id for API request
2025-05-28 15:23:08 +01:00
snipe 2bfadb8a3c Merge remote-tracking branch 'origin/develop' 2025-05-28 15:21:34 +01:00
snipe 95f7742259 Removed extra a href
Signed-off-by: snipe <snipe@snipe.net>
2025-05-28 15:21:23 +01:00
snipe 9f795306e5 Merge pull request #17014 from grokability/fix_breadcrumb_crash
Manually add API headers
2025-05-28 15:19:05 +01:00
snipe 6feaff1e7b Removed blade::render
Signed-off-by: snipe <snipe@snipe.net>
2025-05-28 15:12:14 +01:00
Robert-Azelis 9a168354ae Update AssetModelsController.php - added requestable for API request 2025-05-28 15:50:19 +02:00
Robert-Azelis 309d242c4d Update LocationsController.php - added company_id for API request 2025-05-28 15:45:22 +02:00
snipe 5c174f829e Merge pull request #16986 from grokability/api_throttle_headers
Fixed  #16961 - Manually add API headers
2025-05-28 13:47:16 +01:00
Marcus Moore 3c428f2d7b Inline two_factor_options macro 2025-05-27 16:40:08 -07:00
Marcus Moore 6833716576 Remove skin macro 2025-05-27 16:22:43 -07:00
Marcus Moore bd374d031a Improve component name 2025-05-27 16:22:28 -07:00
Marcus Moore ef26f48f60 Adapt for regular "skin" macro 2025-05-27 16:21:34 -07:00
Marcus Moore b07f8525db Fix swapped yellow/yellow-dark 2025-05-27 16:13:05 -07:00
Marcus Moore 9f062701fa Add semi-colon 2025-05-27 16:03:22 -07:00
Marcus Moore 2c452daddf Replace user_skin macro with blade component 2025-05-27 16:00:47 -07:00
snipe 53a82d3f4d Merge pull request #17007 from marcusmoore/bug/sc-29278
Ensure boolean returned from method with boolean return type
2025-05-27 22:00:04 +02:00
Marcus Moore b5b8816279 Avoid returning null from method that should return a boolean 2025-05-27 11:37:48 -07:00
snipe 7bc4127e8c Removed dupe header
Signed-off-by: snipe <snipe@snipe.net>
2025-05-27 15:01:54 +01:00
snipe 06158cc413 Add timestamp header
Signed-off-by: snipe <snipe@snipe.net>
2025-05-27 14:58:57 +01:00
snipe cb49e7c9a6 Updated comments
Signed-off-by: snipe <snipe@snipe.net>
2025-05-27 14:32:47 +01:00
snipe 1822027a8f Extend the built-in ThrottleRequests middleware from Laravel
Signed-off-by: snipe <snipe@snipe.net>
2025-05-27 14:04:24 +01:00
snipe c8dabc25e3 Added comment
Signed-off-by: snipe <snipe@snipe.net>
2025-05-27 14:03:56 +01:00
snipe f2b10eeee8 Re-do the initial change :(
Signed-off-by: snipe <snipe@snipe.net>
2025-05-27 13:00:32 +01:00
snipe 4b52e1471c Remove unused use statement after refactor
Signed-off-by: snipe <snipe@snipe.net>
2025-05-26 18:45:21 +01:00
snipe f6bba03375 Fixed dupe semicolon
Signed-off-by: snipe <snipe@snipe.net>
2025-05-26 13:50:19 +01:00
snipe b3813a7121 Refactorered limiting headers
Signed-off-by: snipe <snipe@snipe.net>
2025-05-26 13:48:50 +01:00
snipe 0912e4af7b Merge remote-tracking branch 'origin/develop' 2025-05-26 13:17:38 +01:00
snipe eb2a1396ca Merge pull request #16999 from grokability/api_audt_fix
Better messaging when an asset fails validation on quick scan
2025-05-26 14:17:14 +02:00
snipe 0fae18c4ba Better handle missing asset payload because of RMB
Signed-off-by: snipe <snipe@snipe.net>
2025-05-26 13:14:28 +01:00
Andras Kovacs 25ac83e944 Bumped container image versions 2025-05-26 13:07:51 +02:00
snipe a82e65e190 Add @Tinyblargon as a contributor 2025-05-26 11:09:12 +01:00
snipe 187bb90de0 Merge pull request #16993 from Tinyblargon/fix-16992
fix: `PHP_UPLOAD_LIMIT` not set for PHP 8.3
2025-05-26 12:08:36 +02:00
snipe 293648582a Improvements to API headers
Signed-off-by: snipe <snipe@snipe.net>
2025-05-26 10:52:14 +01:00
Tinyblargon 51a306993c fix: PHP_UPLOAD_LIMIT not set for PHP 8.3 2025-05-25 16:23:17 +02:00
snipe 5aa5c48018 Merge remote-tracking branch 'origin/develop' 2025-05-23 19:37:42 +01:00
snipe ec1851fa84 More small carbon fixes
Signed-off-by: snipe <snipe@snipe.net>
2025-05-23 19:27:58 +01:00
snipe bbe748dbd3 Removed noisy log
Signed-off-by: snipe <snipe@snipe.net>
2025-05-23 19:05:39 +01:00
snipe 406e8c5874 Added test
Signed-off-by: snipe <snipe@snipe.net>
2025-05-23 18:25:36 +01:00
snipe a4f71a9f0a Manually add API headers
Signed-off-by: snipe <snipe@snipe.net>
2025-05-23 18:25:29 +01:00
snipe 8cdd998f79 Merge remote-tracking branch 'origin/develop' 2025-05-23 17:35:08 +01:00
snipe 3748498523 Merge pull request #16985 from grokability/move_faker_take_2
Moved faker out of dev reqs for seeding
2025-05-23 18:34:45 +02:00
snipe 49d11103f7 Fixed test namespace
Signed-off-by: snipe <snipe@snipe.net>
2025-05-23 17:28:40 +01:00
snipe dce9060820 Moved faker out of dev reqs for seeding
Signed-off-by: snipe <snipe@snipe.net>
2025-05-23 17:28:00 +01:00
snipe 050d4d6b25 Merge remote-tracking branch 'origin/develop' 2025-05-23 14:51:48 +01:00
snipe de6206ce78 Merge pull request #16982 from grokability/fixes#16958-expiring-assets-unarchived
Fixed #16958 - exclude archived assets from expiring assets report
2025-05-23 15:51:27 +02:00
snipe a181ba308a Fixed #16958 - exclude archived assets from expiring assets report
Signed-off-by: snipe <snipe@snipe.net>
2025-05-23 14:48:54 +01:00
snipe 366cd11238 Merge remote-tracking branch 'origin/develop' 2025-05-23 14:31:10 +01:00
snipe 5a9ac01cf8 Set audit warnings as int
Signed-off-by: snipe <snipe@snipe.net>
2025-05-23 14:30:56 +01:00
snipe 58d6443331 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	config/version.php
2025-05-23 13:27:44 +01:00
snipe a5cd306b1d Bumped version
Signed-off-by: snipe <snipe@snipe.net>
2025-05-23 13:12:30 +01:00
snipe 101b8afb56 Merge remote-tracking branch 'origin/develop' 2025-05-23 13:07:47 +01:00
snipe 57d3abab5f Merge pull request #16979 from marcusmoore/bug/sc-29178
Improved creator on accessory show page
2025-05-23 14:05:28 +02:00
snipe b6eb3185d5 Merge pull request #16968 from marcusmoore/bug/sc-29233
Fixed potential slack webhook setting inconsistencies
2025-05-23 14:05:01 +02:00
snipe 286f78778c Merge pull request #16980 from uberbrady/add_new_checkin_checkout_counters_tests_rebased
New tests for checkin/checkout counters
2025-05-23 13:55:38 +02:00
Brady Wetherington 4b95790e2f WIP: new tests for checkin/checkout counters
note that the test isnt going to work

More WIP for checkout counters

Got all tests passing
2025-05-23 12:37:29 +01:00
snipe 5df5c47945 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	config/version.php
2025-05-23 10:43:58 +01:00
snipe 97883971f7 Bumped hash
Signed-off-by: snipe <snipe@snipe.net>
2025-05-23 10:43:32 +01:00
snipe a04740ba86 Merge remote-tracking branch 'origin/develop' 2025-05-23 10:42:44 +01:00
snipe b3c12d4ee6 Wider text fields
Signed-off-by: snipe <snipe@snipe.net>
2025-05-23 10:42:24 +01:00
snipe 425ad93ac5 Merge remote-tracking branch 'origin/develop' 2025-05-23 10:17:10 +01:00
Marcus Moore bea426d8e6 Add test 2025-05-22 16:54:52 -07:00
Marcus Moore be60370eae Add test 2025-05-22 16:33:45 -07:00
Marcus Moore 7cc216eb38 Extract variable 2025-05-22 15:05:24 -07:00
Marcus Moore 8c90efe745 Add authorization check 2025-05-22 15:02:14 -07:00
snipe 4b9f4423f6 Merge pull request #16932 from marcusmoore/fixes/webhook-checkin-checkout-fix
Improve notifications
2025-05-22 10:53:43 +01:00
Marcus Moore 932b589bd9 Do not show section if user doesn't exist 2025-05-21 17:28:41 -07:00
Marcus Moore ce18b91b03 Add translation 2025-05-21 16:49:15 -07:00
Marcus Moore 5f883310b5 Improve display of user on accessory show page 2025-05-21 16:48:26 -07:00
spencerrlongg 1b397cd780 assertDbHas 2025-05-21 18:17:45 -05:00
spencerrlongg 120316bae0 wrong location import 2025-05-21 13:36:31 -05:00
spencerrlongg 7571ff007f add fillable properties to rules, some tests, move authorization to request 2025-05-21 12:51:21 -05:00
spencerrlongg 7afd7da2b4 initial work, more testing/tests needed 2025-05-21 11:44:54 -05:00
Marcus Moore 69cc46c2b8 Improve method name 2025-05-20 16:41:52 -07:00
Marcus Moore dc6951f341 Improve method name 2025-05-20 16:28:49 -07:00
Marcus Moore f7ed336f99 Remove typehint 2025-05-20 16:26:05 -07:00
Marcus Moore 47f287c031 Fix assertion 2025-05-20 16:25:22 -07:00
Marcus Moore 5739393f8d Check to make sure settings exist before attempting to update them 2025-05-20 12:45:23 -07:00
Godfrey M b0067fee51 remove some N+1s, collect an array of missing serial errors 2025-05-20 12:31:34 -07:00
Marcus Moore 13956254ce Add migration to fix webhook settings 2025-05-20 12:27:19 -07:00
Marcus Moore d6b69c8cc2 Fix webhook selected value in mount method 2025-05-20 12:00:58 -07:00
Marcus Moore 7a79fd18f0 Bind the selected webhook and avoid clearing from database 2025-05-20 11:40:44 -07:00
Godfrey M 732c3dae89 added require_serial to model factory 2025-05-20 09:53:51 -07:00
Godfrey M d45bd67cae added corrections 2025-05-20 09:51:02 -07:00
snipe e3ffe79c4c Merge pull request #16962 from Godmartinz/audit_notifications_fix
Added dynamic properties to audit notifications
2025-05-20 12:34:33 +02:00
Marcus Moore 043325b966 Merge branch 'develop' into fixes/webhook-checkin-checkout-fix
# Conflicts:
#	app/Listeners/CheckoutableListener.php
2025-05-19 14:41:05 -07:00
Marcus Moore a2696b799f Standardize test names 2025-05-19 14:33:18 -07:00
snipe eb8ef37808 Merge pull request #16963 from Godmartinz/fix-double-scroll-bar-permission-groups
Removes double scrollbar from groups
2025-05-19 20:32:30 +02:00
Godfrey M 8416c6df05 removes double scrollbar 2025-05-19 11:21:52 -07:00
Godfrey M 3aa4814342 allow dynamic assignment to audit notifications 2025-05-19 11:08:03 -07:00
Godfrey M 9200de5032 made require_serial column nullable 2025-05-19 09:58:37 -07:00
snipe 8a44144c20 Merge pull request #16954 from grokability/develop
Merge dev into master
2025-05-16 11:16:14 +02:00
snipe 186f322bb5 Merge pull request #16953 from uberbrady/fix_checkin_emails
Make checkin emails not send when not configured to be
2025-05-16 11:14:31 +02:00
Brady Wetherington 28e2e7c924 Get rid of more editorialization 2025-05-16 10:57:34 +02:00
Brady Wetherington 97351028b5 Get rid of editorializing in comments 2025-05-16 10:56:36 +02:00
Brady Wetherington 0ef0863b59 Make checkin emails not send unless the send-emails attribute is set on the category 2025-05-16 10:48:17 +02:00
Marcus Moore 2e80b4ace8 WIP 2025-05-15 17:50:07 -07:00
Marcus Moore 0d896c2ef6 Extract method 2025-05-15 17:44:27 -07:00
Marcus Moore dc9df04237 WIP 2025-05-15 17:40:51 -07:00
Marcus Moore b469a64db3 WIP 2025-05-15 17:35:28 -07:00
Marcus Moore 73f19ff4e7 Scaffold tests 2025-05-15 17:30:06 -07:00
Marcus Moore 22b4fac3ee Formatting 2025-05-15 17:24:56 -07:00
Marcus Moore c97884c8b0 WIP 2025-05-15 16:59:10 -07:00
Marcus Moore b972fb514a Remove type hint 2025-05-15 16:54:46 -07:00
Marcus Moore a3871bd1f2 WIP 2025-05-15 16:47:29 -07:00
Marcus Moore 2069f99b2b WIP 2025-05-15 16:42:20 -07:00
Marcus Moore 882d55fd09 Improve tests 2025-05-15 16:31:07 -07:00
Marcus Moore 68ef975726 WIP 2025-05-15 16:22:31 -07:00
Marcus Moore 0685ff3818 WIP 2025-05-15 16:12:51 -07:00
Marcus Moore b28839d907 Scaffold tests 2025-05-15 15:57:52 -07:00
Marcus Moore 7f0a947de4 WIP 2025-05-15 15:43:57 -07:00
Marcus Moore c8fc4afe65 Fix method name 2025-05-15 15:31:18 -07:00
Marcus Moore 3b7162cb02 Improve test setup 2025-05-15 15:30:16 -07:00
Marcus Moore 4245456382 Scaffold more tests 2025-05-15 15:27:15 -07:00
Marcus Moore cdf43e31e2 Remove randomness from factory 2025-05-15 15:14:01 -07:00
Marcus Moore f19d6b3c52 Scaffold tests 2025-05-15 15:13:50 -07:00
snipe ca66e29072 Merge pull request #16946 from marcusmoore/bug/sc-29166
Gracefully handle error when editing of soft deleted users
2025-05-15 22:46:48 +02:00
Marcus Moore 6ff76a12f8 Strengthen test scenario 2025-05-15 13:39:27 -07:00
Marcus Moore 8b13997597 Merge branch 'develop' into fixes/webhook-checkin-checkout-fix
# Conflicts:
#	app/Listeners/CheckoutableListener.php
2025-05-15 13:38:20 -07:00
Marcus Moore 9600adee6b Don't allow viewing edit page if user soft deleted 2025-05-15 11:14:15 -07:00
snipe ee82c70582 Merge remote-tracking branch 'origin/develop' 2025-05-15 18:32:05 +02:00
snipe 6eb3819492 Apply correct unique custom field validation for audit API
Signed-off-by: snipe <snipe@snipe.net>
2025-05-15 18:31:49 +02:00
snipe c87e8e606b Merge remote-tracking branch 'origin/develop' 2025-05-15 18:02:47 +02:00
snipe 95226f87bc Use same logic for auditStore for validating unique fields
Signed-off-by: snipe <snipe@snipe.net>
2025-05-15 18:02:23 +02:00
snipe 37a50dd953 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	config/version.php
2025-05-15 17:51:54 +02:00
snipe ee3ae803b9 Bumped hash
Signed-off-by: snipe <snipe@snipe.net>
2025-05-15 17:51:28 +02:00
snipe a2669a3084 Removed temp code
Signed-off-by: snipe <snipe@snipe.net>
2025-05-15 17:31:16 +02:00
snipe 77da22f4dd Print errors if they exist (temp)
Signed-off-by: snipe <snipe@snipe.net>
2025-05-15 17:26:04 +02:00
snipe 7830ffe202 Temp echo errors
Signed-off-by: snipe <snipe@snipe.net>
2025-05-15 17:24:08 +02:00
snipe 1c9e20d59f Merge remote-tracking branch 'origin/develop' 2025-05-15 17:10:57 +02:00
snipe 057667c425 Removed duplicate unique display in table
Signed-off-by: snipe <snipe@snipe.net>
2025-05-15 17:10:47 +02:00
Marcus Moore 02fa7daa1d Require assigned_x to be integer on asset model 2025-05-14 14:13:07 -07:00
Marcus Moore 2a2acf6d1c Add failing test 2025-05-14 14:09:48 -07:00
Godfrey M 3fbbff5a47 revert unnecessary change to laels 2025-05-14 12:57:01 -07:00
Godfrey M c22efc2c3d add to present and transformer and api 2025-05-14 12:55:41 -07:00
Marcus Moore f644642fac Add comment 2025-05-14 12:48:32 -07:00
Marcus Moore 3374a9e5a9 Add assertion 2025-05-14 12:48:11 -07:00
Marcus Moore d3a74a5740 Use route bound user instead of re-querying 2025-05-14 12:46:34 -07:00
Marcus Moore c458cc904a Add failing test 2025-05-14 12:45:55 -07:00
Godfrey M 8c0281bf70 adds tests for requiring serial to asset model 2025-05-14 12:31:27 -07:00
snipe 320edac286 Merge remote-tracking branch 'origin/develop' 2025-05-14 17:39:30 +02:00
snipe 5c7b74e17e Merge pull request #16943 from grokability/small-tweaks-to-status-label-text
Clearer text on status label types
2025-05-14 17:35:40 +02:00
snipe e07b0f65a1 Clearer text on status label types
Signed-off-by: snipe <snipe@snipe.net>
2025-05-14 17:33:12 +02:00
snipe d49878371d Merge remote-tracking branch 'origin/develop' 2025-05-14 16:23:38 +02:00
snipe b06fd5bbca Merge pull request #16942 from uberbrady/quick_temp_fix_notifications
A quick check to make sure that webhooks still fire when email is off
2025-05-14 16:21:37 +02:00
Brady Wetherington 6306f78fe0 A quick check to make sure that webhooks still fire when email is off 2025-05-14 16:14:03 +02:00
snipe d2575a5d9b Add @JassonCordones as a contributor 2025-05-14 15:03:04 +02:00
Marcus Moore ea6cf72580 Formatting 2025-05-14 15:03:04 +02:00
Marcus Moore 2118155b37 Fix bug in getImageUrl method 2025-05-14 15:03:04 +02:00
Marcus Moore ba4f5bb71f Add test for existing functionality 2025-05-14 15:03:04 +02:00
Marcus Moore d5a74a5a8b Remove unneeded div 2025-05-14 15:03:04 +02:00
Marcus Moore 23be1df360 Remove the replaced locales form macro 2025-05-14 15:03:04 +02:00
Marcus Moore b5c1a1da4c Replace Form::locales on user setup 2025-05-14 15:03:04 +02:00
Marcus Moore c11e784f51 Replace Form::locales on bulk edit users page 2025-05-14 15:03:04 +02:00
Marcus Moore 06f51c8f9c Replace Form::locales on user edit page 2025-05-14 15:03:04 +02:00
Marcus Moore 181bcbbda6 Replace Form::locales on localization page 2025-05-14 15:03:04 +02:00
Marcus Moore d008ead6a4 Fix input name 2025-05-14 15:03:04 +02:00
Marcus Moore 75924be958 Introduce locale select component and make replacement on profile page 2025-05-14 15:03:04 +02:00
snipe da4bce0c89 Fixed typo
Signed-off-by: snipe <snipe@snipe.net>
2025-05-14 15:02:43 +02:00
snipe 053e815206 Add @JassonCordones as a contributor 2025-05-14 15:02:43 +02:00
snipe b1a6e3f8a2 Merge pull request #16930 from JassonCordones/master
fix typo in snipeit.sh
2025-05-14 15:01:41 +02:00
snipe ab1053ecda Merge pull request #16916 from marcusmoore/bug/sc-29153
Handle potential hard exception in Asset@getImageUrl method
2025-05-14 14:52:33 +02:00
snipe 9a61a3391b Merge pull request #16921 from marcusmoore/chore/locale-select
Replace locales macro
2025-05-14 14:52:02 +02:00
snipe 06712a6041 Merge remote-tracking branch 'origin/develop' 2025-05-14 13:42:51 +02:00
snipe d3c19e28ec Merge pull request #16918 from marcusmoore/bug/sc-29151
Handle displaying deleted creator of an accessory
2025-05-14 13:36:08 +02:00
snipe 87115f2e50 Merge branch 'develop' into bug/sc-29151 2025-05-14 13:35:38 +02:00
Marcus Moore 5f7aadfba0 Ensure CC emails are always sent for assets 2025-05-13 17:56:35 -07:00
Marcus Moore e954e066b4 Scaffold tests 2025-05-13 17:41:19 -07:00
Marcus Moore e336182d79 Formatting 2025-05-13 14:45:09 -07:00
Marcus Moore 3eb0743446 Separate checking for sending email and webhook notifications 2025-05-13 14:43:16 -07:00
Marcus Moore 95c1c37ab1 Invert method 2025-05-13 14:25:03 -07:00
Marcus Moore a7054f0b1e Improve method name 2025-05-13 14:20:42 -07:00
Marcus Moore e4bfabfabe Add failing tests 2025-05-13 14:12:51 -07:00
Godfrey M 720a4bc4a2 add warning to update method for missing a serial 2025-05-13 12:54:28 -07:00
Godfrey M 7fd93645b3 valdiation fires for asset creation 2025-05-13 12:17:58 -07:00
snipe 62b16339a9 Merge remote-tracking branch 'origin/develop' 2025-05-13 20:44:34 +02:00
snipe 6b56929a06 Null operator for missing created_by record
Signed-off-by: snipe <snipe@snipe.net>
2025-05-13 20:44:25 +02:00
Jasson 9a2f1a36ba fix typo in snipeit.sh
fix redirect output to stderr
2025-05-13 14:31:37 -04:00
Godfrey M fcbfbca6d0 add checkbox to model edit and create 2025-05-13 11:10:46 -07:00
Godfrey M f2bca9491c changed name of field in model fillable 2025-05-13 10:59:02 -07:00
Godfrey M b48f309ab6 add require_serial to bulk asset model blades and lang 2025-05-13 10:58:05 -07:00
Marcus Moore e3642bb513 Remove unneeded div 2025-05-12 17:07:17 -07:00
Marcus Moore ca7c416e19 Remove the replaced locales form macro 2025-05-12 16:35:40 -07:00
snipe ac6d964e28 Merge pull request #16920 from marcusmoore/fixes/remove-outline-from-label
Remove logo outline from L7162_B
2025-05-12 23:04:49 +01:00
Marcus Moore e2772c816d Remove label logo outline from L7162_B label 2025-05-12 13:58:13 -07:00
Marcus Moore 916f7401f3 Handle creator being deleted 2025-05-12 12:30:32 -07:00
Marcus Moore b53a71d523 Add failing test 2025-05-12 12:30:06 -07:00
Marcus Moore 510a2b0889 Formatting 2025-05-12 12:03:15 -07:00
Marcus Moore 73057454c6 Fix bug in getImageUrl method 2025-05-12 11:56:40 -07:00
Godfrey M 0b1be3e63b add migration, model and controller update 2025-05-12 11:44:34 -07:00
Marcus Moore 5a6cf2a296 Add test for existing functionality 2025-05-12 11:44:25 -07:00
snipe 9e3e04521e Merge pull request #16900 from marcusmoore/fixes/user-full-name-accessor
Handle settings not being available in full name accessor
2025-05-10 12:26:19 +01:00
snipe 95cc4d3a73 Merge remote-tracking branch 'origin/develop' 2025-05-09 21:16:58 +01:00
snipe 65dfbd02fe Use develop branch
Signed-off-by: snipe <snipe@snipe.net>
2025-05-09 21:00:55 +01:00
snipe 649ab53320 Updated codacy link
Signed-off-by: snipe <snipe@snipe.net>
2025-05-09 21:00:18 +01:00
snipe 497eeeb2e0 Merge remote-tracking branch 'origin/develop' 2025-05-09 19:29:01 +01:00
snipe 9250624f79 Merge pull request #16909 from grokability/fixes-#16554-category-delete
Fixed #16554 - Added models to deletable check
2025-05-09 19:23:35 +01:00
snipe 995e2090f5 Added/updated tests
Signed-off-by: snipe <snipe@snipe.net>
2025-05-09 19:17:53 +01:00
snipe 9b91584776 Added models to deletable check
Signed-off-by: snipe <snipe@snipe.net>
2025-05-09 19:17:48 +01:00
snipe 4be21ca249 Merge remote-tracking branch 'origin/develop' 2025-05-09 18:03:38 +01:00
snipe 8fd97ea501 Merge pull request #16908 from grokability/bug/sc-28724
Fixed #16535 - more info to side rail in accessories
2025-05-09 18:03:05 +01:00
snipe a80b9ab362 Fixed #16535 - more info to side rail in accessories
Signed-off-by: snipe <snipe@snipe.net>
2025-05-09 17:48:02 +01:00
snipe e8598e214e Merge remote-tracking branch 'origin/develop' 2025-05-09 17:23:22 +01:00
snipe 556e1081b3 Added two more selectors for byod
Signed-off-by: snipe <snipe@snipe.net>
2025-05-09 17:23:08 +01:00
snipe b070916f0b Merge pull request #16907 from grokability/add_ids_to_menus
Fixed #16456 - added ids to sidenav options and bod
2025-05-09 17:22:19 +01:00
snipe 940caf14b0 Added ids to menu items
Signed-off-by: snipe <snipe@snipe.net>
2025-05-09 17:09:59 +01:00
snipe 76da1d6663 Added class to checkbox
Signed-off-by: snipe <snipe@snipe.net>
2025-05-09 17:04:19 +01:00
snipe bafff9020a Merge pull request #16611 from Godmartinz/MS_teams_deprecation_update
Reworked MS Teams deprecation warnings and notifications visibility
2025-05-09 16:38:25 +01:00
snipe 54b1d65e3c Merge remote-tracking branch 'origin/develop' 2025-05-09 14:46:37 +01:00
snipe 0d5dca6456 Fixed #16690 - fallback to category image if no model image is present
Signed-off-by: snipe <snipe@snipe.net>
2025-05-09 14:46:27 +01:00
snipe 0f9b7119c0 Merge pull request #16905 from grokability/fixes_#16901
Fixed #16901 - use default currency for asset maintenance cost
2025-05-09 12:45:46 +01:00
snipe d4181549e8 Fixes #16901 - use default currency for maintenance cost display
Signed-off-by: snipe <snipe@snipe.net>
2025-05-09 12:43:49 +01:00
Marcus Moore d57f56e44f Handle settings not being available 2025-05-08 16:20:26 -07:00
Marcus Moore f7777ca8a5 Replace Form::locales on user setup 2025-05-08 15:38:49 -07:00
Marcus Moore fce5530bc7 Replace Form::locales on bulk edit users page 2025-05-08 15:31:41 -07:00
Marcus Moore ad1530e9ff Replace Form::locales on user edit page 2025-05-08 15:17:15 -07:00
Marcus Moore abb2dcbbe4 Replace Form::locales on localization page 2025-05-08 15:05:48 -07:00
Marcus Moore 437499c5df Fix input name 2025-05-08 15:04:45 -07:00
Marcus Moore f739c2c84a Introduce locale select component and make replacement on profile page 2025-05-08 15:02:35 -07:00
snipe 7d9b87f059 Merge pull request #16898 from marcusmoore/chore/form-radio-replacement
Replaced Form::radio helpers
2025-05-08 20:50:29 +01:00
Marcus Moore c157f4190e Replace Form::radio in location partial 2025-05-08 12:25:48 -07:00
Marcus Moore 9357eca1cd Replace Form::radio on asset checkin page 2025-05-08 12:16:55 -07:00
snipe 40c65a07a4 Merge pull request #16896 from grokability/removed_seat_number
Removed seat "name" from licenses seats API/UI response
2025-05-08 17:57:40 +01:00
snipe 13521bcf75 Removed seat “name” from license seats API/UI
Signed-off-by: snipe <snipe@snipe.net>
2025-05-08 17:37:27 +01:00
snipe 1c09dc139a Undo previous change
Signed-off-by: snipe <snipe@snipe.net>
2025-05-08 16:40:24 +01:00
snipe f7648496d3 Merge remote-tracking branch 'origin/develop' 2025-05-08 16:26:02 +01:00
snipe d5f955b1e0 License seats are not numbered correctly [sc-29113]
Signed-off-by: snipe <snipe@snipe.net>
2025-05-08 16:25:49 +01:00
snipe 9e6e8f0931 Moved incomplete test marker
Signed-off-by: snipe <snipe@snipe.net>
2025-05-08 16:22:09 +01:00
snipe 59a57c7197 Merge remote-tracking branch 'origin/develop' 2025-05-08 15:43:53 +01:00
snipe c93ef30801 Ignore flaky test
Signed-off-by: snipe <snipe@snipe.net>
2025-05-08 15:43:40 +01:00
snipe 3e0dec4856 Fixed #16893 - more specific upload failure text
Signed-off-by: snipe <snipe@snipe.net>
2025-05-08 15:38:38 +01:00
snipe 5659b26827 Merge remote-tracking branch 'origin/develop' 2025-05-08 15:22:43 +01:00
snipe 0b167f5f6f Grab location uploads from backup
Signed-off-by: snipe <snipe@snipe.net>
2025-05-08 15:22:26 +01:00
snipe ee4443aaf0 Merge remote-tracking branch 'origin/develop' 2025-05-08 15:09:26 +01:00
snipe f6b21fdb82 Merge pull request #16895 from grokability/fixed_#16863_custom_fields_validation
Fixed #16863 - better handle custom fields validation when unique but not required
2025-05-08 15:09:04 +01:00
snipe f151628808 Merge pull request #16894 from grokability/resolve-webserver-permissions
Fix webserver/user file permissions issue
2025-05-08 15:08:40 +01:00
snipe e44aad0328 Fixed typeos 2025-05-08 15:08:14 +01:00
snipe 1881054c92 Fixed #16863 - better handle unique not required custom field redirects
Signed-off-by: snipe <snipe@snipe.net>
2025-05-08 15:00:43 +01:00
Jeremy Price f7533c5e41 Fix webserver/user file permissions issue
Fixes https://github.com/grokability/snipe-it/issues/16777

We weren't adding the webserver user to the app-user's group, which was
a problem for the webserver trying to write to the log file if it had
been created by a user-owned process (like a cron) or the installation
script chown-ing everything... even though the log file was created 664

This would often present in mysterious ways. In the linked case, trying
to upload a cvs for import would fail with an unhelpful message, because
the actual error is swallowed in the generic error handler for the page.

I've filed an issue to hopefully help with that: https://github.com/grokability/snipe-it/issues/16893

Used this opportunity to condense some logic that was
identical between architectures,
2025-05-08 13:55:23 +02:00
snipe f181e0fa55 Merge pull request #16877 from marcusmoore/bug/sc-29012
Allow updating asset model image via api
2025-05-08 06:27:49 +01:00
snipe b04efdfefc Merge pull request #16889 from grokability/add_updated_range_to_custom_report
Added #16887 - last updated date range for custom report
2025-05-08 06:27:32 +01:00
snipe 352b935dee Merge pull request #16884 from marcusmoore/bug/sc-29097
Removed `2fa_authed` from session upon logout
2025-05-08 06:23:26 +01:00
snipe 0ba3b9975a Added #16887 - last updated date range for custom report
Signed-off-by: snipe <snipe@snipe.net>
2025-05-08 06:21:06 +01:00
Marcus Moore cc06187f31 Remove 2fa_authed from session upon logout 2025-05-07 14:04:33 -07:00
snipe 839dcad358 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	config/version.php
#	public/css/dist/skins/_all-skins.css
#	public/css/dist/skins/_all-skins.min.css
#	public/css/dist/skins/skin-black-dark.css
#	public/css/dist/skins/skin-black-dark.min.css
#	public/css/dist/skins/skin-blue-dark.css
#	public/css/dist/skins/skin-blue-dark.min.css
#	public/css/dist/skins/skin-green-dark.css
#	public/css/dist/skins/skin-green-dark.min.css
#	public/css/dist/skins/skin-orange-dark.css
#	public/css/dist/skins/skin-orange-dark.min.css
#	public/css/dist/skins/skin-purple-dark.css
#	public/css/dist/skins/skin-purple-dark.min.css
#	public/css/dist/skins/skin-red-dark.css
#	public/css/dist/skins/skin-red-dark.min.css
#	public/css/dist/skins/skin-yellow-dark.css
#	public/css/dist/skins/skin-yellow-dark.min.css
#	public/mix-manifest.json
2025-05-07 11:41:31 +01:00
snipe a916767392 Show the QR code on the asset page regardless of label settings
Signed-off-by: snipe <snipe@snipe.net>
2025-05-07 11:34:21 +01:00
snipe 1c57bfaa39 Small cosmetic change to offset
Signed-off-by: snipe <snipe@snipe.net>
2025-05-07 11:28:01 +01:00
snipe 4a5adeb661 Fixed #16866 - use singular translation for custom report
Signed-off-by: snipe <snipe@snipe.net>
2025-05-07 10:55:28 +01:00
snipe 01f9772291 Updated language strings
Signed-off-by: snipe <snipe@snipe.net>
2025-05-07 10:37:10 +01:00
snipe 960b3aebed Bumped hash
Signed-off-by: snipe <snipe@snipe.net>
2025-05-07 10:24:07 +01:00
Marcus Moore d75de73867 Allow updating asset model image via api 2025-05-06 17:13:23 -07:00
snipe e75df97902 Merge pull request #16876 from grokability/switch-back-to-multiarch-docker-with-emulation
Move back to multiarch builds with emulation (for now)
2025-05-06 21:39:23 +01:00
Jeremy Price 5be14ec750 Move back to multiarch builds with emulation (for now)
Turns out it's not straightforward to have multiarchitecture images
within the same namespace, if you want to run each architecture's build
on native runners.

While we work on getting that going, we're moving back to
build-everything-on-intel-runners-with-emulation-for-arm

it means slowwwww arm builds, but it also means we should get our images
straightened out
2025-05-06 22:27:53 +02:00
snipe 717a82f46a Dev assets
Signed-off-by: snipe <snipe@snipe.net>
2025-05-06 21:27:02 +01:00
snipe e40038900b Merge pull request #16875 from ubc-cpsc/bugfix/CVE-2025-46734
Fixes CVE-2025-46734: league/commonmark contains a XSS vulnerability in Attributes extension
2025-05-06 19:19:09 +01:00
Joël Pittet 099eabc240 Fixes CVE-2025-46734 2025-05-06 11:01:45 -07:00
snipe d67933ab49 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	.all-contributorsrc
#	CONTRIBUTORS.md
2025-05-06 16:46:41 +01:00
snipe 3a4fa35398 Merge pull request #16874 from grokability/clone_breadcrumb_fix
Fixed breadcrumbs for cloning
2025-05-06 16:42:52 +01:00
snipe 500d6a0cc2 Merge pull request #16873 from grokability/redirect_on_audit
Redirect options on audit
2025-05-06 16:39:29 +01:00
snipe 38e5bf71bc Fixed tests
Signed-off-by: snipe <snipe@snipe.net>
2025-05-06 16:36:09 +01:00
Chris Olin 248a05a916 adds support for continuous 53mm and 0.59in printers 2025-05-06 11:26:52 -04:00
Chris Olin 2c141579dd adds support for GenericTape label printers, includes class for 53mm tape printer 2025-05-06 11:26:40 -04:00
snipe 45ff195f11 Fixed breadcrumbs for cloning
Signed-off-by: snipe <snipe@snipe.net>
2025-05-06 16:17:02 +01:00
snipe ce543c8179 Use consistent icon
Signed-off-by: snipe <snipe@snipe.net>
2025-05-06 16:12:15 +01:00
snipe 5c11a8c1e0 Modified helper
Signed-off-by: snipe <snipe@snipe.net>
2025-05-06 16:12:06 +01:00
snipe f013a4c5ea Merge pull request #16871 from grokability/one-more-docker-fix
One more docker repo name fix
2025-05-06 15:16:48 +01:00
Jeremy Price 194a22452e stop building intel image in arm server 2025-05-06 16:10:44 +02:00
Jeremy Price 930a6a2ac8 One more docker repo name fix
i feel like i'm taking crazy pills

also right-naming the arm builds again
2025-05-06 16:06:13 +02:00
snipe 444dea8b42 Merge pull request #16868 from grokability/fix-dockerhub-references
OMG fix 2 more (only 1 active) dockerhub repo references
2025-05-06 10:15:28 +01:00
Jeremy Price 6cc3f69c2a OMG fix 2 more (only 1 active) dockerhub repo references 2025-05-06 07:54:20 +02:00
snipe 36f3834ca5 Merge pull request #16865 from ntaylor-86/fixes/alerts-enabled-new-install
Fixed #16815: Avoids potential error when settings table is empty
2025-05-06 00:59:52 +01:00
Nathan Taylor d4b73b4fb9 Avoids potential error when alerts table is empty
Updates the Kernel to use the null-safe operator
when accessing the alerts_enabled setting. This prevents
a potential error if the settings object is null.
2025-05-06 09:47:33 +10:00
snipe b37f488117 Merge pull request #16864 from marcusmoore/update-contributors
Added missing contributors
2025-05-05 22:18:11 +01:00
snipe ee0a9e834a Fixed BulkDeleteAssetsTest test
Signed-off-by: snipe <snipe@snipe.net>
2025-05-05 22:12:08 +01:00
snipe c776e0e7e9 Merge pull request #16851 from grokability/fix-dockerhub-repo
Fix dockerhub repo we're pushing to, and arm build names
2025-05-05 22:03:58 +01:00
Jeremy Price 54d3193b6f run arm builds on arm 2025-05-05 22:55:38 +02:00
Marcus Moore 326657c709 contributors:generate 2025-05-05 13:30:49 -07:00
Marcus Moore c72e86ea2e Update casing for contributor 2025-05-05 13:29:05 -07:00
Marcus Moore 34b1ca29d3 Remove duplicate contributor (QveenSi) 2025-05-05 13:28:25 -07:00
Marcus Moore 1dc876a436 docs: add @austinsasko as a contributor 2025-05-05 13:19:37 -07:00
Marcus Moore b28bc2c500 docs: add @drexljo as a contributor 2025-05-05 13:18:53 -07:00
Marcus Moore c38d98b00a docs: add @jfwiebe as a contributor 2025-05-05 13:18:29 -07:00
Marcus Moore 7b83df088b docs: add @JemCdo as a contributor 2025-05-05 13:18:29 -07:00
Marcus Moore c8b1240665 docs: add @jjasghar as a contributor 2025-05-05 13:18:28 -07:00
Marcus Moore 8a9d6bbdca docs: add @pottom as a contributor 2025-05-05 13:18:27 -07:00
Marcus Moore 6859b36e7c docs: add @dasjoe as a contributor 2025-05-05 13:18:26 -07:00
Marcus Moore f0073c1528 docs: add @gl-pup as a contributor 2025-05-05 13:18:26 -07:00
Marcus Moore f6b7e621b7 docs: add @gastamper as a contributor 2025-05-05 13:18:25 -07:00
Marcus Moore 108a0179ca docs: add @LeafedFox as a contributor 2025-05-05 13:18:24 -07:00
Marcus Moore 2baf65aa62 docs: add @m4us1ne as a contributor 2025-05-05 13:18:24 -07:00
Marcus Moore 74c4e9665e docs: add @lopezio as a contributor 2025-05-05 13:18:23 -07:00
Marcus Moore ae9c22f327 docs: add @loganswartz as a contributor 2025-05-05 13:18:22 -07:00
Marcus Moore 37bca6febd docs: add @sniff122 as a contributor 2025-05-05 13:18:22 -07:00
Marcus Moore 30196793bd docs: add @KorvinSzanto as a contributor 2025-05-05 13:18:21 -07:00
Marcus Moore 3060282ffb docs: add @juhotaipale as a contributor 2025-05-05 13:18:20 -07:00
Marcus Moore d63bba8db7 docs: add @juanfont as a contributor 2025-05-05 13:18:20 -07:00
Marcus Moore 2c12ee01a0 docs: add @CalvinSchwartz as a contributor 2025-05-05 13:18:19 -07:00
Marcus Moore aa76424a74 docs: add @byronwolfman as a contributor 2025-05-05 13:18:18 -07:00
Marcus Moore 9188d6229e docs: add @benperiton as a contributor 2025-05-05 13:18:18 -07:00
Marcus Moore 5555f32ffe docs: add @arukompas as a contributor 2025-05-05 13:18:17 -07:00
Marcus Moore 59062980ff docs: add @hex128 as a contributor 2025-05-05 13:18:16 -07:00
Marcus Moore f4aac5f0b7 docs: add @disc as a contributor 2025-05-05 13:18:16 -07:00
Marcus Moore 5c167aa2a9 docs: add @AlexanderWPapyrus as a contributor 2025-05-05 13:18:15 -07:00
Marcus Moore 8e1eed498e docs: add @MelonSmasher as a contributor 2025-05-05 13:18:14 -07:00
Marcus Moore e449f39ea6 docs: add @fabiang as a contributor 2025-05-05 13:16:43 -07:00
Marcus Moore 97171e0e1c docs: add @Jarli01 as a contributor 2025-05-05 13:16:42 -07:00
Marcus Moore 5935ca4664 docs: add @dkmansion as a contributor 2025-05-05 13:16:42 -07:00
Marcus Moore 21c88cd311 docs: add @splashx as a contributor 2025-05-05 13:16:41 -07:00
Marcus Moore 5c786d8b70 docs: add @corydlamb as a contributor 2025-05-05 13:09:28 -07:00
Marcus Moore d718d210ed docs: add @bricelabelle as a contributor 2025-05-05 13:09:27 -07:00
Marcus Moore f50c5d22b8 docs: add @bmkalle as a contributor 2025-05-05 13:09:27 -07:00
Marcus Moore c36f9a432e docs: add @terwey as a contributor 2025-05-05 13:09:26 -07:00
Marcus Moore 65b6b02b1d docs: add @xWyatt as a contributor 2025-05-05 12:54:08 -07:00
Marcus Moore 9c65d7c057 docs: add @Wouter0100 as a contributor 2025-05-05 12:54:08 -07:00
Marcus Moore eab07834cf docs: add @valentyntu as a contributor 2025-05-05 12:54:07 -07:00
Marcus Moore eb38f33baf docs: add @viclou as a contributor 2025-05-05 12:54:06 -07:00
Marcus Moore 462f9f2f39 docs: add @yannikp as a contributor 2025-05-05 12:54:05 -07:00
Marcus Moore 1021ccb230 docs: add @timwsuqld as a contributor 2025-05-05 12:54:05 -07:00
Marcus Moore 84e9a3a7d6 docs: add @p3nj as a contributor 2025-05-05 12:54:04 -07:00
Marcus Moore c0060b3625 docs: add @sreyemnayr as a contributor 2025-05-05 12:54:03 -07:00
Marcus Moore 197aa12c61 docs: add @octobunny as a contributor 2025-05-05 12:54:02 -07:00
Marcus Moore dfb2959751 docs: add @nixn as a contributor 2025-05-05 12:54:01 -07:00
Marcus Moore 95fb4f0e45 docs: add @rcmcdonald91 as a contributor 2025-05-05 12:54:00 -07:00
Marcus Moore b2c729b7b8 docs: add @owalerys as a contributor 2025-05-05 12:53:59 -07:00
Marcus Moore fe9b224a44 docs: add @nunomaduro as a contributor 2025-05-05 12:53:59 -07:00
Marcus Moore fc4e8c68f2 docs: add @Scorcher as a contributor 2025-05-05 12:53:58 -07:00
Marcus Moore 6fb1c03908 docs: add @nticaric as a contributor 2025-05-05 12:53:57 -07:00
Marcus Moore 96ccfdb8cc docs: add @firefrei as a contributor 2025-05-05 12:53:57 -07:00
Marcus Moore 75fd07e057 docs: add @mzack5020 as a contributor 2025-05-05 12:53:56 -07:00
Marcus Moore 87fe69ecfb docs: add @Mateus-Romera as a contributor 2025-05-05 12:53:55 -07:00
Marcus Moore 19b47030ca docs: add @Nevets82 as a contributor 2025-05-05 12:53:54 -07:00
Marcus Moore cf4e3fcc37 docs: add @snazy2000 as a contributor 2025-05-05 12:53:54 -07:00
Marcus Moore bef4133f51 docs: add @smcpeck as a contributor 2025-05-05 12:53:53 -07:00
Marcus Moore 7ac24efced docs: add @cendai-mis as a contributor 2025-05-05 12:53:52 -07:00
Marcus Moore d8d4a7075e docs: add @Shankschn as a contributor 2025-05-05 12:53:51 -07:00
Marcus Moore dd4c9df6d1 docs: add @serkanerip as a contributor 2025-05-05 12:53:50 -07:00
Marcus Moore da28c02b50 docs: add @SBrown2021 as a contributor 2025-05-05 12:53:50 -07:00
Marcus Moore 54858402e3 docs: add @McG800 as a contributor 2025-05-05 12:53:49 -07:00
Marcus Moore b39d8cc0b9 docs: add @rosscdh as a contributor 2025-05-05 12:53:48 -07:00
Marcus Moore 4c7c33800a docs: add @rickheil as a contributor 2025-05-05 12:53:47 -07:00
Marcus Moore d2c604a7ce docs: add @Nothing4You as a contributor 2025-05-05 12:53:47 -07:00
Marcus Moore 91243fb6c0 docs: add @mbrrg as a contributor 2025-05-05 12:53:46 -07:00
Marcus Moore 940a85888a docs: add @deloz as a contributor 2025-05-05 12:53:45 -07:00
Marcus Moore 280c12e22b docs: add @Galaxy102 as a contributor 2025-05-05 12:53:44 -07:00
Marcus Moore 39e644d048 docs: add @manu-crealytics as a contributor 2025-05-05 12:53:44 -07:00
Marcus Moore 9acb3e5935 docs: add @marcquark as a contributor 2025-05-05 12:53:43 -07:00
Marcus Moore 8ac5b5df61 docs: add @brandon-bailey as a contributor 2025-05-05 12:53:42 -07:00
Marcus Moore 434932599c docs: add @thinkl33t as a contributor 2025-05-05 12:53:42 -07:00
Marcus Moore 81b8c445c6 docs: add @vicleos as a contributor 2025-05-05 12:53:41 -07:00
Marcus Moore 002bb72a8d docs: add @herroworrd as a contributor 2025-05-05 12:53:40 -07:00
Marcus Moore 288770900e docs: add @robintemme as a contributor 2025-05-05 12:53:39 -07:00
Marcus Moore f6f6a23f8b docs: add @wewhite as a contributor 2025-05-05 12:53:39 -07:00
Marcus Moore 522fa7be44 docs: add @Serdnad as a contributor 2025-05-05 12:53:38 -07:00
Marcus Moore 272d9e0552 docs: add @mink-adao-duy as a contributor 2025-05-05 12:53:37 -07:00
Marcus Moore 9060a3cc13 docs: add @ahpaleus as a contributor 2025-05-05 12:53:36 -07:00
Marcus Moore b6a9c0e68b docs: add @DanielRuf as a contributor 2025-05-05 12:53:36 -07:00
Marcus Moore b43ae5be13 docs: add @dkaatz as a contributor 2025-05-05 12:53:35 -07:00
Marcus Moore 6384041107 docs: add @seanborg-codethink as a contributor 2025-05-05 12:53:34 -07:00
Marcus Moore 89703cd9df docs: add @sorvani as a contributor 2025-05-05 12:53:33 -07:00
Marcus Moore f6aa9f1318 docs: add @fe80 as a contributor 2025-05-05 12:53:33 -07:00
Marcus Moore 838e214b24 docs: add @phil-flip as a contributor 2025-05-05 12:53:32 -07:00
Marcus Moore 628c444cd4 docs: add @aranar-pro as a contributor 2025-05-05 12:53:31 -07:00
Marcus Moore e8289b0f45 docs: add @JonathonReinhart as a contributor 2025-05-05 12:53:31 -07:00
Marcus Moore 86816f632f docs: add @test1337ahp as a contributor 2025-05-05 12:53:30 -07:00
Marcus Moore 494710306b docs: add @NebelKreis as a contributor 2025-05-05 12:53:29 -07:00
Marcus Moore 7a5fe4981f docs: add @mnemonicly as a contributor 2025-05-05 12:53:29 -07:00
snipe a67b320cae Merge pull request #15907 from uberbrady/protect_assigned_to_assigned_type_rebased
Rebased version of #15629 - prevent setting assigned_to without setting assigned_type
2025-05-05 20:42:46 +01:00
Godfrey M e3a2397b74 removed hiding the notifications icon 2025-05-05 10:28:08 -07:00
Godfrey M 3b34654dd7 Merge branch 'develop' into MS_teams_deprecation_update
# Conflicts:
#	resources/lang/en-US/admin/settings/message.php
2025-05-05 09:33:32 -07:00
Godfrey M 4b6437854c swapped out hard coded text with translation 2025-05-05 09:31:23 -07:00
snipe 9ef20997a5 Merge pull request #16861 from uberbrady/cherry_pick_avery_3490
adds support for Avery 3490 (Cherry-picked from 'master')
2025-05-05 15:01:00 +01:00
Calvin Schwartz cfd10ae294 adds support for Avery 3490 2025-05-05 14:59:10 +01:00
snipe 9b85e9a071 Add @realchrisolin as a contributor 2025-05-05 14:44:04 +01:00
Godfrey M 0eb3f6b952 set max to 5 2025-05-05 14:42:06 +01:00
Godfrey M 68b0f80fce fix input max, and help block position 2025-05-05 14:42:06 +01:00
Godfrey M 93489529a3 adds Field offset option to labels 2025-05-05 14:42:06 +01:00
snipe 511be74e74 Add @chfsx as a contributor 2025-05-05 14:42:06 +01:00
Fabian Schmid bdee067803 [FIX] set upload-limit 2025-05-05 14:42:06 +01:00
snipe 32156cace3 Merge pull request #16847 from realchrisolin/issue16214
add barcode support for Avery 3490
2025-05-05 14:40:54 +01:00
snipe 407962d998 Merge pull request #16790 from Godmartinz/empty_field_columns_labels
Adds Label fields offset as an option
2025-05-05 14:09:40 +01:00
snipe 1245289906 Add @chfsx as a contributor 2025-05-05 14:08:31 +01:00
snipe 76c19202ed Merge pull request #16806 from chfsx/patch-1
[FIX] set upload-limit
2025-05-05 14:07:42 +01:00
snipe 30688114be Merge remote-tracking branch 'origin/develop' 2025-05-05 14:04:52 +01:00
snipe ada8195e2e Merge pull request #16860 from grokability/better_location_scope_check
Livewire component for smoother check for location companies
2025-05-05 14:04:23 +01:00
snipe 83d6e9ad8a Removed log error
Signed-off-by: snipe <snipe@snipe.net>
2025-05-05 14:00:05 +01:00
snipe 4469db0bd3 Livewire component for smoother check for location companies
Signed-off-by: snipe <snipe@snipe.net>
2025-05-05 13:55:28 +01:00
snipe 34088bcc17 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	config/version.php
2025-05-05 11:17:01 +01:00
snipe 5e2dba5483 Bumped version
Signed-off-by: snipe <snipe@snipe.net>
2025-05-05 11:15:46 +01:00
Fabian Schmid 9de97694c3 [FIX] set upload-limit 2025-05-05 08:35:45 +02:00
Jeremy Price 8349065b0a stop buiulding intel on arm 2025-05-02 10:59:42 +02:00
Jeremy Price bb82b2513e Fix dockerhub repo we're pushing to, and arm build names 2025-05-02 10:58:25 +02:00
Calvin Schwartz 07835766cc adds support for Avery 3490 2025-05-01 21:11:42 -04:00
snipe e781c170f3 Merge pull request #16841 from Godmartinz/dark_mode_black_input_group_add_on_color_fix
remove duplicate input-group color corrections from theme skins
2025-05-01 01:48:49 +01:00
Godfrey M 43dfbd3d21 remove duplicate input-group color correction from other themes 2025-04-30 16:21:15 -07:00
Godfrey M 073c9f5f7c remove duplicate input-group color correction 2025-04-30 16:16:14 -07:00
snipe f9d67dd431 Merge pull request #16840 from uberbrady/docker_backmerge
Copy changes from 'master' to develop for docker builds
2025-04-30 21:19:22 +01:00
Brady Wetherington a2ea4c7fd0 Copy changes from 'master' to develop for docker builds 2025-04-30 21:12:10 +01:00
Godfrey M 8c129c10af removed payload from api error message 2025-04-30 11:11:53 -07:00
Brady Wetherington 251851ec6a Try to get Docker images to build for both architectures 2025-04-30 18:00:39 +01:00
snipe 049a669186 Merge remote-tracking branch 'origin/develop' 2025-04-30 16:46:16 +01:00
snipe a0358e32d7 Removed escaping
Signed-off-by: snipe <snipe@snipe.net>
2025-04-30 16:46:06 +01:00
snipe d29f13bae9 Merge remote-tracking branch 'origin/develop' 2025-04-30 16:26:38 +01:00
snipe c2023c5c56 Ampersand showing in Custom fields [sc-29051]
Signed-off-by: snipe <snipe@snipe.net>
2025-04-30 16:25:44 +01:00
snipe c758355df9 Merge remote-tracking branch 'origin/develop' 2025-04-30 16:14:34 +01:00
snipe 43c310c82d Merge pull request #16531 from akemidx/bug/sc-28715
FIXED: Purchase Cost Column Always Shown
2025-04-30 15:54:31 +01:00
snipe 79d97a83af Merge remote-tracking branch 'origin/develop' 2025-04-30 15:48:38 +01:00
snipe 939a0c44dc Merge pull request #16826 from Godmartinz/fix_multiple_inline_label_field_options
Reworked fix for for 24mm_D label indent errror
2025-04-30 15:47:57 +01:00
snipe 85bd47c240 Merge remote-tracking branch 'origin/develop' 2025-04-30 15:35:10 +01:00
snipe 2b9cf1663b Merge pull request #16837 from grokability/fmcs_scoping_improvements
Small improvements to scoped views
2025-04-30 15:33:53 +01:00
snipe 0a29e90701 Smal improvements to scoping displays
Signed-off-by: snipe <snipe@snipe.net>
2025-04-30 15:24:42 +01:00
snipe d1be13e7d4 Added button text to translations
Signed-off-by: snipe <snipe@snipe.net>
2025-04-30 14:32:29 +01:00
snipe 049a777ca8 Added buttons to dashboard
Signed-off-by: snipe <snipe@snipe.net>
2025-04-30 14:32:20 +01:00
snipe 0dcaa83a3e Nicer breadcrumb
Signed-off-by: snipe <snipe@snipe.net>
2025-04-30 14:22:13 +01:00
snipe db706269e6 Fixed validation message
Signed-off-by: snipe <snipe@snipe.net>
2025-04-30 14:22:06 +01:00
snipe 473ead9616 Merge remote-tracking branch 'origin/develop' 2025-04-30 13:57:27 +01:00
snipe 4f72505dc3 Merge pull request #16836 from grokability/fixes/#16834_handle_bad_data_in_permissions
Fixed #16834 - better handle bad data in permissions
2025-04-30 13:56:59 +01:00
snipe 340f8b73a5 Updated comments
Signed-off-by: snipe <snipe@snipe.net>
2025-04-30 13:56:37 +01:00
snipe 6c6b37000a Better handle permissions with bad data
Signed-off-by: snipe <snipe@snipe.net>
2025-04-30 13:43:05 +01:00
snipe b5c79624c6 Display notes in group listing
Signed-off-by: snipe <snipe@snipe.net>
2025-04-30 11:14:42 +01:00
snipe cf2850933c Merge remote-tracking branch 'origin/develop' 2025-04-30 10:19:43 +01:00
snipe 49d66dedf4 Nicer existing image display
Signed-off-by: snipe <snipe@snipe.net>
2025-04-30 10:19:12 +01:00
snipe ff2564c57a Merge remote-tracking branch 'origin/develop' 2025-04-30 10:12:05 +01:00
snipe ebbcdbc864 Nicer breadcrumb
Signed-off-by: snipe <snipe@snipe.net>
2025-04-30 10:11:55 +01:00
snipe a18691c09f Set image path in singleton
Signed-off-by: snipe <snipe@snipe.net>
2025-04-30 10:11:48 +01:00
snipe 245b0b0f8f Added image path
Signed-off-by: snipe <snipe@snipe.net>
2025-04-30 10:11:40 +01:00
snipe 1d3b0478f9 Merge pull request #16829 from marcusmoore/fixes/contributors-fix
Fixed updating CONTRIBUTORS.md via cli
2025-04-30 01:23:59 +01:00
Marcus Moore a5d0307532 Wrap username in quotes 2025-04-29 16:20:00 -07:00
snipe 91d3848246 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	config/version.php
2025-04-29 23:17:51 +01:00
snipe 7daecdd53f Bumped version
Signed-off-by: snipe <snipe@snipe.net>
2025-04-29 23:17:03 +01:00
snipe 667b4a49c3 Merge pull request #16828 from grokability/chore/sc-29037
Add audit button to BS table partial, redirect if asset won't validate
2025-04-29 23:07:45 +01:00
snipe 2518e60a5e Corrected gates
Signed-off-by: snipe <snipe@snipe.net>
2025-04-29 22:59:05 +01:00
snipe 9ff8b62cee Updated icon
Signed-off-by: snipe <snipe@snipe.net>
2025-04-29 22:58:58 +01:00
snipe 5086c80658 Invoke a validator, redirect to edit screen if invalid
Signed-off-by: snipe <snipe@snipe.net>
2025-04-29 22:47:34 +01:00
snipe cb852fc20f Added audit gate to API
Signed-off-by: snipe <snipe@snipe.net>
2025-04-29 22:47:12 +01:00
snipe fb3b34e0f6 Add audit button to BS table partial
Signed-off-by: snipe <snipe@snipe.net>
2025-04-29 22:47:02 +01:00
snipe c031f0b45e Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	public/css/dist/skins/_all-skins.css
#	public/css/dist/skins/_all-skins.min.css
#	public/css/dist/skins/skin-blue-dark.css
#	public/css/dist/skins/skin-blue-dark.min.css
#	public/css/dist/skins/skin-green-dark.css
#	public/css/dist/skins/skin-green-dark.min.css
#	public/css/dist/skins/skin-orange-dark.css
#	public/css/dist/skins/skin-orange-dark.min.css
#	public/css/dist/skins/skin-purple-dark.css
#	public/css/dist/skins/skin-purple-dark.min.css
#	public/css/dist/skins/skin-red-dark.css
#	public/css/dist/skins/skin-red-dark.min.css
#	public/css/dist/skins/skin-yellow-dark.css
#	public/css/dist/skins/skin-yellow-dark.min.css
#	public/mix-manifest.json
2025-04-29 20:38:41 +01:00
snipe 8d4fc07f63 Updated dev assets
Signed-off-by: snipe <snipe@snipe.net>
2025-04-29 20:37:47 +01:00
snipe a0514ad8c1 Merge pull request #16799 from marcusmoore/bug/sc-28990
Handle category being null in CheckoutableListener
2025-04-29 20:37:11 +01:00
snipe 4e03e525a4 Merge pull request #16797 from Godmartinz/dark_mode_green_fix
Fixed Dark Mode color choices for fieldset links
2025-04-29 20:35:59 +01:00
snipe 0efdebcfd8 Merge pull request #16827 from grokability/fixed_custom_field_fieldset_display
Fixed fieldset display if custom fields are not available
2025-04-29 20:26:14 +01:00
snipe c7835d2d1d Fixed copypasta
Signed-off-by: snipe <snipe@snipe.net>
2025-04-29 20:08:34 +01:00
snipe 3e3bc0a347 Removed test tab
Signed-off-by: snipe <snipe@snipe.net>
2025-04-29 20:01:22 +01:00
snipe 184a22828f Use input vs get
Signed-off-by: snipe <snipe@snipe.net>
2025-04-29 19:22:10 +01:00
snipe f26e27d23e Display in checkboxes not saving on custom [sc-29028]
Signed-off-by: snipe <snipe@snipe.net>
2025-04-29 19:21:50 +01:00
snipe e717f1e780 Removed logging
Signed-off-by: snipe <snipe@snipe.net>
2025-04-29 19:21:18 +01:00
snipe d1085a0f46 Move notes above custom fields
Signed-off-by: snipe <snipe@snipe.net>
2025-04-29 18:53:31 +01:00
Godfrey M 2e0913bb3b remove unused method 2025-04-29 10:49:19 -07:00
Godfrey M 851ae46ea9 reworked fix for for 24mm_D label indent errior 2025-04-29 10:45:29 -07:00
snipe 89a52b7551 Fixed fieldset display if custom fields are not available
Signed-off-by: snipe <snipe@snipe.net>
2025-04-29 18:09:32 +01:00
snipe fdbb9568ae Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	config/version.php
#	public/css/build/app.css
#	public/css/build/overrides.css
#	public/css/dist/all.css
#	public/mix-manifest.json
2025-04-29 12:39:31 +01:00
snipe 15870d0e75 Bumped version
Signed-off-by: snipe <snipe@snipe.net>
2025-04-29 12:38:07 +01:00
snipe eb2c536221 Updated translations
Signed-off-by: snipe <snipe@snipe.net>
2025-04-29 12:36:55 +01:00
snipe bced7df539 Merge pull request #16822 from grokability/nicer_optional_disclosures
Nicer disclosure UI for optional data
2025-04-29 12:31:14 +01:00
snipe fe672ed727 Nicer disclosure UI for optional data
Signed-off-by: snipe <snipe@snipe.net>
2025-04-29 12:10:09 +01:00
snipe d817883459 Merge remote-tracking branch 'origin/develop' 2025-04-29 10:25:42 +01:00
snipe 6e60594e66 Fixed escaped text
Signed-off-by: snipe <snipe@snipe.net>
2025-04-29 10:25:20 +01:00
snipe 12255979ac Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	public/css/build/app.css
#	public/css/dist/all.css
#	public/mix-manifest.json
2025-04-29 10:22:21 +01:00
snipe f357dd690b Updated dev assets
Signed-off-by: snipe <snipe@snipe.net>
2025-04-29 10:21:24 +01:00
snipe 255e0c3bdc Merge pull request #16602 from akemidx/bug/sc-25897-2
FIXED: Text Overflow on Settings Tiles
2025-04-29 10:20:45 +01:00
snipe 8984d60c39 Merge pull request #16798 from grokability/more-mint-support-and-newer-ubuntus
Support more Mint versions and verify newer Ubuntu versions in snipeit.sh
2025-04-29 10:19:28 +01:00
snipe 6dbfc8875b Merge pull request #16817 from marcusmoore/fixes/restore-custom-field-values-on-asset-edit-v2
Maintain checkbox and radio custom field values on asset edit page
2025-04-29 10:17:10 +01:00
snipe 139f45872c Merge pull request #16819 from marcusmoore/chore/migrate-radio-helpers
Replaced calls to Form::radio helper on user create and edit pages
2025-04-29 10:16:16 +01:00
snipe eb223a4c09 Merge pull request #16821 from grokability/small_settings_ui_fixes
Use default BS tables “no results” view, small UI formatting improvements
2025-04-29 10:15:16 +01:00
snipe c3531e9eba Nicer formatting on smaller screens
Signed-off-by: snipe <snipe@snipe.net>
2025-04-29 10:11:00 +01:00
Marcus Moore db3f8e5d68 Replace a Form::radio on user edit page 2025-04-28 15:08:05 -07:00
Marcus Moore 8ca11542f8 Replace a Form::radio on user edit page 2025-04-28 15:03:54 -07:00
Marcus Moore 36be23f7e4 Replace a Form::radio on user edit page 2025-04-28 14:57:03 -07:00
Marcus Moore 51f67082f4 Replace a Form::radio on user edit page 2025-04-28 14:23:39 -07:00
Marcus Moore ea2f0cdd7b Replace a Form::radio on user edit page 2025-04-28 14:18:01 -07:00
Marcus Moore 97d2e6f9d4 Replace a Form::radio on user edit page 2025-04-28 14:03:27 -07:00
Marcus Moore 28ea75512c Replace from Form::radio on user edit page 2025-04-28 13:47:23 -07:00
snipe 9b6683ae16 Merge pull request #16818 from Godmartinz/fix_multiple_inline_label_field_options
Fixed label fields multiple option alignment bug
2025-04-28 21:37:19 +01:00
Godfrey M 149d276e06 fix field alignment issue 2025-04-28 13:26:49 -07:00
snipe a519ebe19b Default BS table no results
Signed-off-by: snipe <snipe@snipe.net>
2025-04-28 09:59:52 +01:00
snipe 66b537bc64 Fixed duplicate ID
Signed-off-by: snipe <snipe@snipe.net>
2025-04-28 09:59:28 +01:00
snipe 9722d29070 Use default BS tables “no results” view
Signed-off-by: snipe <snipe@snipe.net>
2025-04-28 09:59:17 +01:00
snipe 366b61850b Merge remote-tracking branch 'origin/develop' 2025-04-26 17:54:02 +01:00
snipe c748278637 Merge pull request #16810 from grokability/settings_improvements_branding
Use fieldsets for branding page
2025-04-26 17:53:11 +01:00
snipe 23c39520e5 Added empty alt tags to images since we don’t have additional info
Signed-off-by: snipe <snipe@snipe.net>
2025-04-26 17:42:49 +01:00
snipe 41f68d8a30 Use locked x-icon
Signed-off-by: snipe <snipe@snipe.net>
2025-04-26 17:33:18 +01:00
snipe 7320e823ad Added alt text for sad panda
Signed-off-by: snipe <snipe@snipe.net>
2025-04-26 17:33:09 +01:00
snipe 1aeda546fd Added urls for pa11y
Signed-off-by: snipe <snipe@snipe.net>
2025-04-26 17:33:00 +01:00
snipe 91fcff5faf Added translations
Signed-off-by: snipe <snipe@snipe.net>
2025-04-26 17:32:52 +01:00
snipe d97e54f85e Use fieldsets for branding page
Signed-off-by: snipe <snipe@snipe.net>
2025-04-26 17:32:41 +01:00
snipe 4b58af8850 Fixed message while processing audit on quickscan
Signed-off-by: snipe <snipe@snipe.net>
2025-04-24 14:25:42 +01:00
snipe 89be6bd183 Merge remote-tracking branch 'origin/develop' 2025-04-24 14:06:00 +01:00
snipe 0822aa985d Fixed #16802 - use asset endpoint for assets assigned to locations
Signed-off-by: snipe <snipe@snipe.net>
2025-04-24 14:05:44 +01:00
snipe e120331a2c Merge remote-tracking branch 'origin/develop' 2025-04-24 12:16:53 +01:00
snipe e5c6e294ec Added #16239 - make city searchabke in users
Signed-off-by: snipe <snipe@snipe.net>
2025-04-24 12:16:41 +01:00
Marcus Moore 25fdde1807 Handle null category 2025-04-23 14:16:28 -07:00
snipe cb8a212d96 Merge remote-tracking branch 'origin/develop' 2025-04-23 21:57:20 +01:00
snipe fa45ca1453 Stupid fix for when people use id instead of an actual ID
@todo - use RMB for these

Signed-off-by: snipe <snipe@snipe.net>
2025-04-23 21:56:43 +01:00
Jeremy Price 67ec042ee3 Support more Mint versions and verify newer Ubuntu versions in snipeit.sh
In https://github.com/grokability/snipe-it/pull/16763 we added support
for Linux Mint 22.1, which is the newest stable version of Mint, but but
didn't get around to testing or adding support for less-recent versions.

With this PR, we're adding support for the following LinuxMint versions
* 22
* 21.3
* 21.2
* 21.1
* 21

We recommend using the newest version, but at least now you won't be
blocked so long as you're remotely up-to-date.

We're not going back any further because prior versions are based on
Ubuntu 20.04 (Focal), which is out of support as of April 2025, aka this
month.

Additionally, the most recent Ubuntu version specifically mentioned in
the script is 23.10. The script in its current version works all the way
up to the most recent version, so we're adding notation to that
effect.

Newly included Ubuntu versions are
25.04
24.10
24.04 (LTS)
2025-04-23 13:37:33 -07:00
snipe 7aec431ac5 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>
2025-04-23 21:30:16 +01:00
snipe 8b6c88a7c6 Okay…
Signed-off-by: snipe <snipe@snipe.net>
2025-04-23 21:27:28 +01:00
snipe 9f8fddb4c5 Removed accidentally commited generated images
Signed-off-by: snipe <snipe@snipe.net>
2025-04-23 21:23:58 +01:00
snipe 8fcf7e3b9d Merge pull request #16792 from grokability/add_pa11y
Added pa11y
2025-04-23 21:17:35 +01:00
snipe d9326fc555 Removed sky-is-blue text
Signed-off-by: snipe <snipe@snipe.net>
2025-04-23 21:13:40 +01:00
snipe c1196599e1 Merge branch 'develop' into add_pa11y 2025-04-23 21:11:59 +01:00
snipe d19681dea1 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>
2025-04-23 21:05:38 +01:00
Godfrey M a26279e0b9 adds custom field link color correction to all dark modes 2025-04-23 12:38:58 -07:00
Marcus Moore 29433882ea Restore custom field checkbox and radio button values when switching model 2025-04-23 12:38:09 -07:00
Godfrey M 63ce2a14fe fix the ghosts pt2 2025-04-23 10:17:11 -07:00
Godfrey M f435ebb110 fix the ghosts 2025-04-23 10:15:26 -07:00
Godfrey M 843f001bf6 rename test class 2025-04-23 09:33:56 -07:00
snipe e3f511ec7c Small accessibility improvements
Signed-off-by: snipe <snipe@snipe.net>
2025-04-23 15:53:41 +01:00
snipe f0b18042f9 Added aria label to admin settings search
Signed-off-by: snipe <snipe@snipe.net>
2025-04-23 14:01:52 +01:00
snipe 75c9936dbb Added alt text
Signed-off-by: snipe <snipe@snipe.net>
2025-04-23 12:37:13 +01:00
snipe ddd4065c81 Merge pull request #16793 from spencerrlongg/bug/sc-28972
Added Nullsafe Checks to Users
2025-04-23 12:01:25 +01:00
snipe ad88a72d0a Override legend style
Signed-off-by: snipe <snipe@snipe.net>
2025-04-23 06:31:25 +01:00
snipe 6a00620552 More urls
Signed-off-by: snipe <snipe@snipe.net>
2025-04-23 06:27:20 +01:00
snipe a9db8d6898 Added more urls
Signed-off-by: snipe <snipe@snipe.net>
2025-04-23 06:20:23 +01:00
snipe 65cc1bbd7e Ignore screenshots
Signed-off-by: snipe <snipe@snipe.net>
2025-04-23 05:53:11 +01:00
spencerrlongg 2935697209 added nullsafe checks to user 2025-04-22 23:39:24 -05:00
snipe 3ae2454228 This doesn’t work the way I thought
Signed-off-by: snipe <snipe@snipe.net>
2025-04-23 05:35:49 +01:00
snipe 11b48ee636 Removed dupes
Signed-off-by: snipe <snipe@snipe.net>
2025-04-23 05:21:32 +01:00
snipe 2aa864afaa Updated rules
Signed-off-by: snipe <snipe@snipe.net>
2025-04-23 05:16:22 +01:00
snipe ec65e64a67 Updated ignore rules
Signed-off-by: snipe <snipe@snipe.net>
2025-04-23 05:06:34 +01:00
snipe 7e01d23aa2 Renamed file
Signed-off-by: snipe <snipe@snipe.net>
2025-04-23 04:50:14 +01:00
snipe f05b2ad9be First stabs at improvements
Signed-off-by: snipe <snipe@snipe.net>
2025-04-23 04:48:47 +01:00
snipe eaaac76435 Added configs
Signed-off-by: snipe <snipe@snipe.net>
2025-04-23 04:48:39 +01:00
snipe 41160c64a8 Merge pull request #16791 from grokability/location_company_scoping_improvements
Improved settings page for location-company scoping
2025-04-23 01:25:54 +01:00
snipe 0cfef59568 Updated string
Signed-off-by: snipe <snipe@snipe.net>
2025-04-23 01:22:25 +01:00
snipe d953d1a889 Use translation strings
Signed-off-by: snipe <snipe@snipe.net>
2025-04-23 01:21:54 +01:00
snipe 4aa06f6a75 Update dev assets
Signed-off-by: snipe <snipe@snipe.net>
2025-04-23 00:30:06 +01:00
snipe 07a9bded95 Added strings
Signed-off-by: snipe <snipe@snipe.net>
2025-04-22 23:50:28 +01:00
snipe f686e86afb Refactored setting page
Signed-off-by: snipe <snipe@snipe.net>
2025-04-22 23:50:21 +01:00
snipe 9f28dae01b Invoke the artisan command
This *might* suck for people with a lot of assets, etc

Signed-off-by: snipe <snipe@snipe.net>
2025-04-22 23:50:11 +01:00
snipe 67ab584dc7 Updated text
Signed-off-by: snipe <snipe@snipe.net>
2025-04-22 23:49:31 +01:00
Godfrey M 5da492cbf5 set max to 5 2025-04-22 12:07:02 -07:00
Godfrey M d871c529d1 fix input max, and help block position 2025-04-22 11:59:19 -07:00
Godfrey M 7c2c5ea98d adds Field offset option to labels 2025-04-22 10:50:20 -07:00
snipe bf2299daf8 Merge remote-tracking branch 'origin/develop' 2025-04-22 17:51:48 +01:00
snipe 2e31a0530f Merge pull request #16789 from grokability/fixes/#16475_delete_oauth_clients
Fixed #16475 - Allow deleting oauth client
2025-04-22 17:48:24 +01:00
snipe 5f66fb0bba Allow deleting oauth user
Signed-off-by: snipe <snipe@snipe.net>
2025-04-22 17:42:07 +01:00
snipe 164930d0dd Merge remote-tracking branch 'origin/develop' 2025-04-22 16:35:23 +01:00
snipe 143e9cdd61 Merge pull request #16788 from grokability/better_handle_arrays_for_model_ids
Better handle model_id arrays passed to the API
2025-04-22 16:33:47 +01:00
snipe aed32e6ada Better handle arrays in API rerquests for model_id
Signed-off-by: snipe <snipe@snipe.net>
2025-04-22 16:23:34 +01:00
snipe ed86c90b7e Merge pull request #16787 from uberbrady/suppress_action_date_error_in_loggable
Fixed: [RB-19645] Suppress error message about 'action_date' not existing
2025-04-22 14:48:38 +01:00
snipe 387dbac809 Merge remote-tracking branch 'origin/develop' 2025-04-22 14:36:14 +01:00
snipe 7dc606fd3b Merge pull request #16786 from grokability/populate_manufacturers
Added ability to seed common manufacturers
2025-04-22 14:35:20 +01:00
snipe 185fd559c9 Added test
Signed-off-by: snipe <snipe@snipe.net>
2025-04-22 14:34:03 +01:00
snipe 473c684fa5 Nicer translation
Signed-off-by: snipe <snipe@snipe.net>
2025-04-22 14:22:58 +01:00
Brady Wetherington d3dbd82ce2 Check that array key exists before accessing it 2025-04-22 14:20:01 +01:00
snipe e5dc13e48c Added ability to seed manufacturers
Signed-off-by: snipe <snipe@snipe.net>
2025-04-22 14:13:46 +01:00
snipe 3b661e5a99 Merge remote-tracking branch 'origin/develop' 2025-04-22 12:39:35 +01:00
snipe 2a2d118973 Updated readme with star count
Signed-off-by: snipe <snipe@snipe.net>
2025-04-22 12:38:05 +01:00
snipe 90c1c0e655 Merge remote-tracking branch 'origin/develop' 2025-04-22 11:42:49 +01:00
snipe f2f17402c9 Merge pull request #16785 from grokability/feature/sc-28956
Added checkout date to license seats
2025-04-22 11:41:52 +01:00
snipe 39f764803d Added checkout date to license seats
Signed-off-by: snipe <snipe@snipe.net>
2025-04-22 11:38:54 +01:00
snipe 55176816aa Merge pull request #16784 from marcusmoore/fix-flaky-timestamp-tests
Fixed flaky test
2025-04-22 11:03:58 +01:00
Marcus Moore 1f7d4e0793 Fix flaky test 2025-04-21 15:14:53 -07:00
snipe e17fae02ad Merge pull request #16783 from uberbrady/upgrade_debugbar
Upgrade Debugbar to make deprecation warnings easier to find
2025-04-21 21:44:28 +01:00
Brady Wetherington 3c1099a6a9 Upgrade Debugbar to make deprecation warnings easier to find 2025-04-21 21:00:02 +01:00
snipe 21d8e7695b Merge remote-tracking branch 'origin/develop' 2025-04-21 20:19:54 +01:00
Godfrey M 0d28165c04 merged develop, fix conflicts 2025-04-21 10:54:01 -07:00
Godfrey M ee31bfbcd4 Merge branch 'develop' into checkin_non_reassignable_license
# Conflicts:
#	app/Helpers/Helper.php
#	app/Http/Controllers/Api/LicenseSeatsController.php
#	app/Http/Transformers/LicensesTransformer.php
2025-04-21 10:49:35 -07:00
snipe b1761ec246 Merge pull request #16781 from uberbrady/make_min_qty_not_required
min_amt wasn't correctly being set to required or not
2025-04-21 18:44:20 +01:00
Brady Wetherington 03f0f13727 min_amt wasn't correctly being set to required or not 2025-04-21 18:32:53 +01:00
snipe 12648912aa Added test
Signed-off-by: snipe <snipe@snipe.net>
2025-04-21 16:45:10 +01:00
snipe 4c898a8741 Fixed filename
Signed-off-by: snipe <snipe@snipe.net>
2025-04-21 16:44:47 +01:00
snipe 1acc452cfe Merge remote-tracking branch 'origin/develop' 2025-04-21 14:59:26 +01:00
snipe 6bef8620e4 Merge pull request #16780 from grokability/feature/sc-23604
Fixed #9249 - added file uploads to locations
2025-04-21 14:49:02 +01:00
snipe beb5560dce Added files tab
Signed-off-by: snipe <snipe@snipe.net>
2025-04-21 14:43:04 +01:00
snipe 2ebe1ebc69 Load location route files
Signed-off-by: snipe <snipe@snipe.net>
2025-04-21 14:42:58 +01:00
snipe 00092a079f Added uploads method
Signed-off-by: snipe <snipe@snipe.net>
2025-04-21 14:42:10 +01:00
snipe 9d313eb2d9 Added locations dir
Signed-off-by: snipe <snipe@snipe.net>
2025-04-21 14:42:02 +01:00
snipe e8404c8720 Moved location routes
Signed-off-by: snipe <snipe@snipe.net>
2025-04-21 14:41:52 +01:00
snipe 1375e1feee Merge remote-tracking branch 'origin/develop' 2025-04-21 12:21:08 +01:00
snipe e71e25955a Check for array
Signed-off-by: snipe <snipe@snipe.net>
2025-04-21 12:20:03 +01:00
snipe fa9ac3c449 Return value as int
Signed-off-by: snipe <snipe@snipe.net>
2025-04-21 11:53:26 +01:00
snipe 70854b2c42 Small fix or groups API
Signed-off-by: snipe <snipe@snipe.net>
2025-04-21 11:49:49 +01:00
snipe e2a1be9762 Int values for group permissions on API
Signed-off-by: snipe <snipe@snipe.net>
2025-04-21 10:49:28 +01:00
snipe 2187adf59a Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>
2025-04-19 15:34:58 +01:00
snipe f2c2fefd99 Bumped hash
Signed-off-by: snipe <snipe@snipe.net>
2025-04-19 15:28:48 +01:00
snipe b5a960e933 Updated translations
Signed-off-by: snipe <snipe@snipe.net>
2025-04-19 15:27:41 +01:00
snipe 66b2cc2e28 Set empty array if permissions are null
Signed-off-by: snipe <snipe@snipe.net>
2025-04-19 15:17:55 +01:00
snipe 47246a3fdf Merge pull request #15420 from grokability/return_boolean_in_api
Possible fix for #15315 - decode as permissions as boolean
2025-04-19 15:01:36 +01:00
snipe 4d01b2bb4f Removed invalid json_decode() flag
Signed-off-by: snipe <snipe@snipe.net>
2025-04-19 14:57:43 +01:00
snipe 876715b3c5 Merge pull request #16435 from marcusmoore/fixes/prevent-deleting-accessories-with-checkouts
Disallow deleting accessories that have active checkouts
2025-04-19 14:38:14 +01:00
snipe 93d74587e1 Merge pull request #16538 from marcusmoore/bug/sc-28305
Return null from accessory transformer for missing assignment
2025-04-19 14:37:45 +01:00
snipe 5bae74bc1b Merge pull request #16688 from 36864/patch-1
Fixes #14734: Only show signatures for the printed user
2025-04-19 14:36:26 +01:00
snipe 0259c91a06 Added @mrdahbi as a contributor
Signed-off-by: snipe <snipe@snipe.net>
2025-04-19 14:34:15 +01:00
snipe 04ccfc3002 Fixed: escape '/' in preg_quote of asset tag prefix (Applied #16542 to develop)
Signed-off-by: snipe <snipe@snipe.net>
2025-04-19 14:32:21 +01:00
snipe 495b7db72b Merge branch 'chore/sc-28495' into develop
Signed-off-by: snipe <snipe@snipe.net>
2025-04-19 14:29:30 +01:00
snipe 6e5eb55b45 Updated dev assets
Signed-off-by: snipe <snipe@snipe.net>
2025-04-19 14:28:01 +01:00
snipe 9ad99c1d81 Merge pull request #16494 from marcusmoore/bug/sc-28675
Avoid logging consumable checkins and purge action log of bad entries
2025-04-19 14:24:52 +01:00
snipe 622626bb27 Merge pull request #16521 from grokability/add-disable-saml-command
Add console command to disable SAML logins
2025-04-19 14:23:49 +01:00
snipe f66575393a Merge pull request #16766 from CloCkWeRX/fix-placeholder-translations
Fixed: Admin > General Settings - Some placeholders not translatable
2025-04-18 16:40:53 +01:00
snipe f67548cd70 Merge pull request #16738 from CloCkWeRX/patch-9
Fixed: Update SECURITY.md to indicate v8 is supported
2025-04-18 16:33:18 +01:00
snipe cd63657a92 Merge pull request #16694 from r-xyz/api-files-notes
Fixed #16689: re-add `note` field in API files listing for AssetModel
2025-04-18 14:06:30 +01:00
snipe 0dcb315d9d Merge remote-tracking branch 'origin/develop' 2025-04-18 00:56:26 +01:00
snipe 54f2b62294 Fixed consumable item_no import field
Signed-off-by: snipe <snipe@snipe.net>
2025-04-18 00:55:56 +01:00
snipe 327ccbd0c9 Merge remote-tracking branch 'origin/develop' 2025-04-18 00:37:11 +01:00
snipe 1a1120220c Merge pull request #16765 from grokability/#15035-add-company_name_to_slack
Fixed #15035 - adds company to slack message
2025-04-18 00:36:25 +01:00
Daniel O'Connor 82d93b6980 Point to existing translation 2025-04-17 23:32:11 +00:00
Daniel O'Connor 72b2b2d819 Refactor to translatable placeholder text 2025-04-17 23:30:08 +00:00
snipe ad6352adc4 Fixed #15035 - adds company to slack message
Signed-off-by: snipe <snipe@snipe.net>
2025-04-18 00:28:37 +01:00
snipe f571d400e6 Merge remote-tracking branch 'origin/develop' 2025-04-17 23:29:12 +01:00
snipe 4170397094 Merge pull request #16731 from CloCkWeRX/patch-4
Fixed: Editing > Email input > Utilise HTML5 controls
2025-04-17 23:16:23 +01:00
snipe 1e15aca809 Merge pull request #16733 from CloCkWeRX/patch-6
Fixed: Suppliers > Edit > Mark URL inputs as HTML5 URL inputs
2025-04-17 23:15:53 +01:00
snipe 8234c3eb0f Merge pull request #16734 from CloCkWeRX/patch-7
Fixed: Users > Edit > Mark website as a URL field
2025-04-17 23:14:59 +01:00
snipe 80eea7b064 Merge pull request #16757 from CloCkWeRX/fields
Fixed: Admin > Custom Fields > Ensure name field is marked required
2025-04-17 23:14:26 +01:00
snipe 779c28661e Merge pull request #16753 from CloCkWeRX/admin-slack-hook
Fixed: Admin > Webhooks > Swap to url input
2025-04-17 23:13:58 +01:00
snipe 293aa52335 Merge remote-tracking branch 'origin/develop' 2025-04-17 23:13:04 +01:00
snipe 516f59f0fc Added @BeatSpark as contributor
Signed-off-by: snipe <snipe@snipe.net>
2025-04-17 23:12:51 +01:00
snipe bfb55da1a3 Repeat #16571 without conflicts, correctly targeted
Signed-off-by: snipe <snipe@snipe.net>
2025-04-17 23:10:20 +01:00
snipe 79e2e5c272 Merge pull request #16729 from CloCkWeRX/patch-2
Fixed #16727: Bulk Audit > Mark Asset Tag input required
2025-04-17 23:06:26 +01:00
snipe ca178ae9a7 Merge remote-tracking branch 'origin/develop' 2025-04-17 22:48:35 +01:00
snipe db1af98992 Merge pull request #16764 from grokability/fixed_flaky_user_create_tests
Fixed flaky user creation tests
2025-04-17 22:46:42 +01:00
snipe c8ea3ba79a Merge pull request #16763 from grokability/add-linux-mint
Fixed: #16715 - Added LinuxMint support to snipeit.sh
2025-04-17 22:40:33 +01:00
snipe 96d5e072fe Fixed flaky tests on user creation
Signed-off-by: snipe <snipe@snipe.net>
2025-04-17 22:39:04 +01:00
snipe d25ba74123 Merge pull request #16762 from grokability/fixes/#15702-min_amt_and_termination_date_on_license_import
Fixed #15702 - Added termination_date, reordered fields for clarity
2025-04-17 21:37:27 +01:00
snipe f05dce8960 Added min_amt explicitly
Signed-off-by: snipe <snipe@snipe.net>
2025-04-17 21:31:20 +01:00
snipe 0758e73c5f Added termination_date, reordered fields for clarity
Signed-off-by: snipe <snipe@snipe.net>
2025-04-17 21:29:27 +01:00
Jeremy Price 617ee026c0 Add LinuxMint support to snipeit.sh
Fixes: https://github.com/grokability/snipe-it/issues/16715

@synergy34 requested LinuxMint support in our installer script. Mint is
Ubuntu-based, so i figured this wouldn't be too big of an issue, and
indeed it wasn't.

It mostly involved just supporting the OS version strings, and removing
the ondrej ppa because 22.1 ships with php8.3 already.

We only support 22.1 for the moment, as that's the most recent version
and the only one I tested on.

If you're on 22/Wilma and want to try, change the 221 on line 579 to 22 and
give it a whirl... If 22/Wilma also has php8.3, then it will probably be
fine
2025-04-17 12:22:42 -07:00
Daniel O'Connor 0cec64c056 Update SECURITY.md to indicate v8 is support
Unsure if v7 still is
2025-04-17 16:02:31 +00:00
snipe d0c810e418 Merge remote-tracking branch 'origin/develop' 2025-04-17 16:42:37 +01:00
snipe 915c730dae Fixed #16714 - moved custom validation out of array
Signed-off-by: snipe <snipe@snipe.net>
2025-04-17 16:42:25 +01:00
snipe 0451f1219a Merge pull request #16732 from CloCkWeRX/patch-5
Fixed: Manufacturers > Edit > Mark URL inputs as HTML5 url inputs
2025-04-17 16:27:03 +01:00
Daniel O'Connor 5290a95b6b Update resources/views/hardware/quickscan.blade.php 2025-04-18 00:53:37 +09:30
snipe e407695ff9 Merge pull request #16741 from CloCkWeRX/patch-10
Fixed: Change Password > Mark password fields required for change password
2025-04-17 16:22:01 +01:00
snipe c5b53b00c1 Merge pull request #16742 from CloCkWeRX/security-url
Fixed: Admin > Security - Mark url fields as URL type
2025-04-17 16:21:26 +01:00
snipe d2ac9b9610 Added @CloCkWeRX as contributor
Signed-off-by: snipe <snipe@snipe.net>
2025-04-17 16:18:29 +01:00
snipe 537e695ae9 Merge pull request #16730 from CloCkWeRX/patch-3
Fixed: Depreciations > Create/Edit > Change controls to various number inputs
2025-04-17 16:15:24 +01:00
snipe b4b158da9e Merge pull request #16747 from CloCkWeRX/admin-oauth-required
Fixed: Admin > OAuth > Mark fields required
2025-04-17 16:09:42 +01:00
snipe ad072c0546 Moved validation email_array
Signed-off-by: snipe <snipe@snipe.net>
2025-04-17 16:04:56 +01:00
snipe 713e1671d4 Merge pull request #16749 from CloCkWeRX/admin-ldap-change-password-url
Fixed: Admin > LDAP > Use HTML5 inputs
2025-04-17 15:58:45 +01:00
snipe 087f9756a2 Merge pull request #16744 from CloCkWeRX/api-token-required
Fixed: Manage API Keys > New name field not marked required
2025-04-17 15:58:07 +01:00
snipe eb0408703e Merge pull request #16725 from CloCkWeRX/patch-1
Fixed #16723: Mark category name as required in modals
2025-04-17 15:47:07 +01:00
Daniel O'Connor 7e961b690a Mark required 2025-04-17 11:05:03 +00:00
snipe d496d2caeb Merge remote-tracking branch 'origin/develop' 2025-04-17 11:59:24 +01:00
snipe 81f3730d84 Merge pull request #16754 from grokability/fixes/ambiguous_clause_for_company_id
Fixed ambiguous clause using company_id
2025-04-17 11:58:15 +01:00
snipe 141fad8393 Fixed ambiguous clause using company_id
Signed-off-by: snipe <snipe@snipe.net>
2025-04-17 11:56:39 +01:00
Daniel O'Connor 58ff63845e Admin > Slack > Swap to url input 2025-04-17 10:47:37 +00:00
Daniel O'Connor a8150b7864 Update resources/views/settings/ldap.blade.php 2025-04-17 19:57:52 +09:30
Daniel O'Connor ce6724f788 Admin > LDAP > Swap to URL input 2025-04-17 10:25:23 +00:00
Daniel O'Connor 13faa8ab00 Admin > LDAP > Swap to URL input 2025-04-17 10:23:43 +00:00
Daniel O'Connor 89beb73836 Swap to URL input 2025-04-17 19:49:28 +09:30
Daniel O'Connor 8b7e36a697 Mark fields required 2025-04-17 10:17:32 +00:00
Daniel O'Connor c0f3d89b0b Fixed: Manage API Keys > New name field not marked required 2025-04-17 10:00:26 +00:00
Daniel O'Connor ec62a59e57 Update resources/views/depreciations/edit.blade.php 2025-04-17 19:20:44 +09:30
Daniel O'Connor f9269cfc63 Mark required 2025-04-17 19:19:19 +09:30
Daniel O'Connor 56bc06746c Set max limit 2025-04-17 19:18:31 +09:30
Daniel O'Connor 497e94d8a0 Admin > Security - Mark url fields as URL type 2025-04-17 09:42:45 +00:00
Daniel O'Connor aa77c8c528 Mark password fields required for change password 2025-04-17 09:40:27 +00:00
Daniel O'Connor 6cd2a5d1a5 Users > Edit > Mark website as a URL field 2025-04-17 09:35:35 +00:00
Daniel O'Connor e4a3a1a35f Suppliers > Edit > Mark URL inputs as HTML5 URL inputs 2025-04-17 09:34:45 +00:00
Daniel O'Connor 06f3cc1345 Manufacturers > Edit > Opt into HTML fields 2025-04-17 09:33:24 +00:00
Daniel O'Connor 3a6832ea58 Editing > Email input > Utilise HTML5 controls
Should be safe as this is validated by the UI as a singular email.
2025-04-17 09:32:02 +00:00
Daniel O'Connor d2bb7fc926 Deprecations > Create/Edit > Mark number of months as a numeric control 2025-04-17 09:30:56 +00:00
Daniel O'Connor 4b93f329c2 Bulk Audit > Mark Asset Tag input required
Fix https://github.com/grokability/snipe-it/issues/16727
2025-04-17 09:29:43 +00:00
Daniel O'Connor f03da92152 Mark category name as required in modals
Fix #16723
2025-04-17 09:27:04 +00:00
snipe e70b75c350 Merge remote-tracking branch 'origin/develop' 2025-04-17 01:00:34 +01:00
snipe 88acdbcc28 Move array return
Signed-off-by: snipe <snipe@snipe.net>
2025-04-17 01:00:09 +01:00
snipe 23623cca2c Merge pull request #16719 from grokability/fixes_weird_layout_datepicker
Use x-icon blade component, nicer small-screen form size for datepicker on assets checkout
2025-04-16 21:13:21 +01:00
snipe 93e66aae54 Nicer form sizing on smaller screens
Signed-off-by: snipe <snipe@snipe.net>
2025-04-16 21:05:56 +01:00
snipe 02b831c174 Use x-icon blade component
Signed-off-by: snipe <snipe@snipe.net>
2025-04-16 21:05:43 +01:00
snipe cd20486fe2 Merge pull request #16667 from Godmartinz/user-redirect-checkin-option
Adds option to redirect back to checkedInBy user for assets/licenses/accessories
2025-04-16 20:54:47 +01:00
snipe a50befeda5 Merge remote-tracking branch 'origin/develop' 2025-04-16 20:16:18 +01:00
snipe 1464f80425 Merge pull request #16717 from Godmartinz/fix_checkin_mail_test
Adds a check for category email alert boolean, bolster Check in Test
2025-04-16 18:10:29 +01:00
Godfrey M 8f673a7e3e default checkin_email to true in category factory 2025-04-16 10:05:37 -07:00
Godfrey M c44d037933 removed some words 2025-04-16 09:57:40 -07:00
Godfrey M c8b5b3f176 adds a check for category checkin/out emails, also updates our test 2025-04-16 09:51:44 -07:00
snipe ce94470a10 Added comments
Signed-off-by: snipe <snipe@snipe.net>
2025-04-16 16:41:25 +01:00
snipe e7592eeeb9 Use disable admin CC
Signed-off-by: snipe <snipe@snipe.net>
2025-04-16 16:41:14 +01:00
snipe 46253b421e Added disableAdminCC to settings test
Signed-off-by: snipe <snipe@snipe.net>
2025-04-16 16:41:04 +01:00
snipe e2616e8039 Merge remote-tracking branch 'origin/develop' 2025-04-16 15:52:18 +01:00
snipe 7d4e77a7c8 Updated string
Signed-off-by: snipe <snipe@snipe.net>
2025-04-16 15:52:05 +01:00
snipe 9a4f21e0cb Merge pull request #16716 from grokability/log_deprecations
Allow toggle for logging deprecation warnings
2025-04-16 14:28:07 +01:00
snipe 934aa3da7f Allow toggle for logging deprecation warnings
Signed-off-by: snipe <snipe@snipe.net>
2025-04-16 14:25:51 +01:00
snipe 904266debe Merge remote-tracking branch 'origin/develop' 2025-04-16 09:47:18 +01:00
snipe e4244d60f1 Check for username
Signed-off-by: snipe <snipe@snipe.net>
2025-04-16 09:47:06 +01:00
snipe 72d5783795 Merge remote-tracking branch 'origin/develop' 2025-04-16 09:19:05 +01:00
snipe 0b6c6bf1df Send email to CC addresses even if the target doesn’t have an email
Signed-off-by: snipe <snipe@snipe.net>
2025-04-16 09:18:50 +01:00
snipe b35181c289 Removed deleted accessories (for now) from transformer
Signed-off-by: snipe <snipe@snipe.net>
2025-04-15 21:15:43 +01:00
snipe d699fb1473 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>
2025-04-15 20:46:43 +01:00
snipe 277564436b Bumped hash
Signed-off-by: snipe <snipe@snipe.net>
2025-04-15 20:45:13 +01:00
snipe 87a03ec1ed Fixed test
Signed-off-by: snipe <snipe@snipe.net>
2025-04-15 20:41:43 +01:00
snipe fab1a6c33a Merge remote-tracking branch 'origin/develop' 2025-04-15 20:30:02 +01:00
snipe f8833241ef Added @36864 as contributor
Signed-off-by: snipe <snipe@snipe.net>
2025-04-15 20:28:36 +01:00
snipe 7f62c5cbb6 Add @fvollmer as a contributor 2025-04-15 20:22:23 +01:00
snipe 93b4749993 Update @ntaylor-86 as a contributor 2025-04-15 20:20:36 +01:00
snipe b2dac291da Merge pull request #16712 from grokability/fixes/snipe-api-token
Removed deprecation resulting in `Creation of dynamic property` error
2025-04-15 20:16:56 +01:00
Jermops bec83d4343 Merge pull request #16713 from grokability/fix-docker-arm-buildname
Fix name of ARM docker container workflow
2025-04-15 12:16:40 -07:00
snipe 4f3b3721c4 Remove comments
Signed-off-by: snipe <snipe@snipe.net>
2025-04-15 20:15:44 +01:00
Jeremy Price e5cf296b79 Fix name of ARM docker container workflow 2025-04-15 12:15:44 -07:00
snipe e1abdd1c7b Removed deprecation resulting in Creation of dynamic property
Signed-off-by: snipe <snipe@snipe.net>
2025-04-15 20:11:26 +01:00
snipe be73c30194 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	public/css/build/app.css
#	public/css/build/overrides.css
#	public/css/dist/all.css
#	public/js/dist/bootstrap-table.js
#	public/mix-manifest.json
2025-04-15 20:01:20 +01:00
snipe 71d8f1eb89 Merge pull request #16701 from grokability/repo-move
Update references to the repo to reflect move to Grokability org
2025-04-15 19:54:08 +01:00
snipe 451646fe4f Prod assets
Signed-off-by: snipe <snipe@snipe.net>
2025-04-15 19:42:26 +01:00
snipe 68c1568345 Merge pull request #16711 from snipe/publish_assets
Updated dev CSS/LESS/JS assets
2025-04-15 19:40:48 +01:00
snipe b5be0844ec Updated dev assets
Signed-off-by: snipe <snipe@snipe.net>
2025-04-15 19:39:58 +01:00
snipe decc919991 Merge remote-tracking branch 'origin/develop' 2025-04-15 19:33:23 +01:00
snipe f76e80ba68 Merge pull request #16710 from snipe/localizations/2025-04-15
Updated localization strings
2025-04-15 19:32:12 +01:00
snipe ffbab554be Updated strings
Signed-off-by: snipe <snipe@snipe.net>
2025-04-15 19:30:19 +01:00
snipe e0b4005921 Merge remote-tracking branch 'origin/develop' 2025-04-15 16:48:17 +01:00
snipe 0be50e803e Merge pull request #16709 from snipe/#16699-fix-email-locales-when-none-set-on-user
Fixed #16699 - Better handle user locales in mailables
2025-04-15 16:44:38 +01:00
snipe 7133a1b262 Fixed test
Signed-off-by: snipe <snipe@snipe.net>
2025-04-15 16:41:09 +01:00
snipe 5876418eed Search on email partial
Signed-off-by: snipe <snipe@snipe.net>
2025-04-15 16:31:03 +01:00
snipe 950472b935 Fixed typos
Signed-off-by: snipe <snipe@snipe.net>
2025-04-15 16:30:54 +01:00
snipe c0c5699e38 Added public property name
Signed-off-by: snipe <snipe@snipe.net>
2025-04-15 16:21:02 +01:00
snipe 49fee3a211 Removed manually setting locale on mailable
Signed-off-by: snipe <snipe@snipe.net>
2025-04-15 16:10:54 +01:00
snipe a21ca92c90 Added boot method to set name property for mailable
Signed-off-by: snipe <snipe@snipe.net>
2025-04-15 16:08:21 +01:00
snipe 260174dfd9 Added test
Signed-off-by: snipe <snipe@snipe.net>
2025-04-15 15:46:12 +01:00
snipe afc5e08716 Added email as searchable field in select list
Signed-off-by: snipe <snipe@snipe.net>
2025-04-15 15:45:25 +01:00
snipe 89616727a1 Remove english as default
Signed-off-by: snipe <snipe@snipe.net>
2025-04-15 15:45:11 +01:00
snipe ba55dfb841 Fixed #16699 - added mutator for user locale
Signed-off-by: snipe <snipe@snipe.net>
2025-04-15 13:41:24 +01:00
snipe 65b956143c Merge pull request #16700 from snipe/docker-arm-size-fix
[Docker] Don't cache composer deps, remove any .git repos that creep in
2025-04-14 22:15:10 +01:00
snipe 42e1987147 Merge pull request #16702 from snipe/separate-docker-architecture-builds
Separate docker builds into Intel/ARM builds
2025-04-14 22:14:48 +01:00
Jeremy Price 545e07455b Separate docker builds into Intel/ARM builds
Now that we're moving to a paid org, we have native ARM github action
runners available, which means we can streamline our ARM-based docker
image builds by not having them run emulated.

I've switched our worker split from ubuntu/alpine to Intel/ARM...  if we
hate this we can make it 4 separate workflows, but i don't see an issue
with this one.
2025-04-14 12:55:36 -07:00
Jeremy Price b00594052c [Docker] Don't cache composer deps, remove any .git repos that creep in
There is a failure mode in composer where if it has a connection trying to get
a dependency tarball from the github API, it will fall-back to
downloading the entire repo for the dependency and use that... and it
will cache it outside of vendor/, using a whopping 1.5G of space

that full 1.5G is _then_ copied into vendor/

```
98M     league
100M	tecnickcom
133M	laravel
323M	sebastian
681M	aws
```

for a total of a 1.8G vendor/ directory

vs the trimmed-down version with a 552M vendor/ directory

```
53M	league
30M	tecnickcom
31M	laravel
70M	sebastian
241M	aws
```

This is still a far cry from the proper 150M version when everything
works as it should, but it's still a vast improvement

```
3.2M    league
14M     laravel
30M     tecnickcom
260K	sebastian
52M     aws
```

Ideally this never happens, but it'd be great tp avoid the bloat if/when
it does..

To wit: Our ARM/Ubuntu Docker images are currently bloated because of this
issue due builds happening on an emulated ARM environment, and the resultant
performance penalties causing composer issues

All that to say, this change sets OMPOSER_CACHE_DIR to /dev/null to
avoid the caching, and then removes vendor/*/*/.git to remove that
needless bloat if it occurs. It's a no-op in general practice.
2025-04-14 11:55:20 -07:00
snipe 3ef36e7534 Merge remote-tracking branch 'origin/develop' 2025-04-14 11:02:06 +01:00
snipe 1c387795fe Merge pull request #16683 from marcusmoore/bug/sc-28755
Create default label when importing assets if none exists
2025-04-14 09:52:48 +01:00
snipe 1949e1e1e9 Merge remote-tracking branch 'origin/develop' 2025-04-14 09:26:25 +01:00
snipe 102f26cac1 Merge pull request #16676 from marcusmoore/fixes/acceptance-logging
Store accepted_at and declined_at in action log when accepting/declining assets
2025-04-14 09:18:54 +01:00
snipe c7e89ff879 Merge pull request #16682 from akemidx/bug/sc-28860
FIXED: Location Being Overwritten By Default Location
2025-04-14 09:17:52 +01:00
r-xyz 565b8f5c7f Fixed #16689: re-add note field in API files listing for AssetModel 2025-04-13 00:33:22 +02:00
36864 3b314086f9 New method to get latest signature event
This makes the print page much tidier.
2025-04-11 16:28:54 +00:00
36864 06fc140626 Optimize eager loading of log entries 2025-04-11 16:27:29 +00:00
36864 e4bfc6c5ae Fix signatures for accessories and consumables
Also unifies the way these things are fetched.
2025-04-11 16:24:06 +00:00
Marcus Moore b82d835f4f Remove created_by since it is not available 2025-04-10 13:59:28 -07:00
Marcus Moore d593365c9c Create pending default status label if none exists 2025-04-10 13:38:30 -07:00
Marcus Moore ea6a903d8a Implement tests including test failure 2025-04-10 13:29:05 -07:00
Marcus Moore 9086e5dba7 Scaffold some asset importer tests 2025-04-10 13:03:50 -07:00
akemidx cd10cd34f4 location update bug fix and test 2025-04-10 14:46:52 -04:00
snipe 3358382358 Comment out location scoping option for now
Signed-off-by: snipe <snipe@snipe.net>
2025-04-09 21:44:38 +01:00
snipe 3eca3ecd75 Merge remote-tracking branch 'origin/develop' 2025-04-09 21:31:41 +01:00
snipe 0d6a83197a Merge branch 'develop' of https://github.com/snipe/snipe-it into develop 2025-04-09 21:29:31 +01:00
snipe 6d784e36d7 Updated language
Signed-off-by: snipe <snipe@snipe.net>
2025-04-09 21:29:27 +01:00
snipe 9c88aa6974 Merge pull request #16637 from akemidx/lastnameemail
Fixed #8188 - Added Last Name as an email format
2025-04-09 21:27:10 +01:00
akemidx 1307146831 changing where translations live. coalescing 2025-04-09 16:21:48 -04:00
Godfrey M c385b4a082 remove testing lines 2025-04-09 12:11:46 -07:00
Godfrey M 1b961346f0 added withInput to the redirects 2025-04-09 12:11:31 -07:00
Godfrey M 100db23210 add checks that the target is not null, and redirects back with error messages 2025-04-09 11:54:59 -07:00
Marcus Moore e5d7bcb629 Use declinded at for action date in log 2025-04-09 11:20:46 -07:00
Marcus Moore c2123e307a Add failing test 2025-04-09 11:20:07 -07:00
Marcus Moore 7a9d5bfc07 Add test for declining assets 2025-04-09 11:18:52 -07:00
Marcus Moore aed798800c Improve assertions 2025-04-09 11:17:57 -07:00
Marcus Moore dbfa952a69 Improve test name 2025-04-09 11:15:25 -07:00
Marcus Moore aa58f08b3d Use accepted at for action date in log 2025-04-09 11:13:46 -07:00
Godfrey M 3e980a4c57 set location if target is set 2025-04-09 11:11:59 -07:00
Marcus Moore d76871760c Add failing test 2025-04-09 11:11:30 -07:00
Marcus Moore d29f5fa13e Implement tests 2025-04-09 11:07:47 -07:00
Marcus Moore 7275299165 Scaffold some tests 2025-04-09 11:02:56 -07:00
Godfrey M 9a3ac41370 add default location as a fallback to asset validation 2025-04-09 11:02:45 -07:00
Godfrey M 9824f43780 added other target options to accessories and assets 2025-04-09 10:50:42 -07:00
snipe 1b7486c342 Merge pull request #16674 from spencerrlongg/bug/allow-avif-restore-and-logo
Add Support for Uploading AVIF Logo Images
2025-04-09 17:46:53 +01:00
spencerrlongg cd9ee8af90 Add support for AVIF logo uploads and restoring avifs from public uploads
Extended the list of allowed file extensions and MIME types to include AVIF format in both backend file validation and the file input field for logo uploads. This update ensures compatibility with modern image formats.
2025-04-09 11:36:16 -05:00
snipe cbf4fef45b Merge pull request #16671 from snipe/fixed_list_view_of_asset_files
Partial fix for #16135 - normalized asset file listing at API endpoint
2025-04-09 06:45:32 +01:00
snipe 8892a11e7e Updated tests
Signed-off-by: snipe <snipe@snipe.net>
2025-04-09 06:40:14 +01:00
snipe fc390dd107 Merge pull request #16672 from snipe/added_missing_gate_to_some_location_methods
Added gates to printing locations
2025-04-09 06:28:38 +01:00
snipe 99dfb51d70 Fixed test
Signed-off-by: snipe <snipe@snipe.net>
2025-04-09 06:23:40 +01:00
snipe 04f8ebb4d8 Added tests
Signed-off-by: snipe <snipe@snipe.net>
2025-04-09 06:17:08 +01:00
snipe 41fb058adb Added gates around printing location assets
Signed-off-by: snipe <snipe@snipe.net>
2025-04-09 06:06:44 +01:00
snipe f29146b319 Fixed asset file listing display at API endpoint
Signed-off-by: snipe <snipe@snipe.net>
2025-04-09 05:53:24 +01:00
snipe ce0bd68716 RMB for file routes
Signed-off-by: snipe <snipe@snipe.net>
2025-04-09 05:52:59 +01:00
snipe f3f26b3824 Added UploadedFilesTransformer
Signed-off-by: snipe <snipe@snipe.net>
2025-04-09 05:52:48 +01:00
snipe 7be3d6072f Removed erroneous comment
Signed-off-by: snipe <snipe@snipe.net>
2025-04-09 05:52:35 +01:00
snipe 1d030b59df Merge pull request #16592 from fvollmer/anonymous-ldap
Improve Settings: Remove username and password requirement for ldap
2025-04-09 05:19:09 +01:00
snipe 140c6b91b0 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	public/css/build/app.css
#	public/css/build/overrides.css
#	public/css/dist/all.css
#	public/mix-manifest.json
2025-04-09 02:40:28 +01:00
snipe 07d2d8c549 Merge pull request #16669 from snipe/translations_for_skins
Fixed  #16130 - Added translations for skins, other settings
2025-04-09 02:37:17 +01:00
snipe 691ccbbebc Additional branding placeholders
Signed-off-by: snipe <snipe@snipe.net>
2025-04-09 02:32:22 +01:00
snipe 9daa09277d Added translations for skins
Signed-off-by: snipe <snipe@snipe.net>
2025-04-09 02:23:18 +01:00
snipe 79eaf62c9e Merge pull request #16668 from spencerrlongg/bug/sc-28768
Handle Potentially Unsafe File Output Better During Restore
2025-04-09 01:01:59 +01:00
spencerrlongg dd078785ac always show unsafe files 2025-04-08 18:06:18 -05:00
spencerrlongg 12a8c54331 Handle and log skipped unsafe files during restore
Introduced a mechanism to track and log potentially unsafe files skipped during the restore process. These files are collected in an array and displayed as warnings before exiting, improving transparency and debugging capability.
2025-04-08 16:43:36 -05:00
Godfrey M 715fc2de59 more cleaning 2025-04-08 11:58:23 -07:00
Godfrey M af53559ca3 cleaned up code 2025-04-08 11:54:50 -07:00
Godfrey M 17b8ea9c86 removed unnecessary code 2025-04-08 11:51:29 -07:00
Godfrey M 1ad96e891b added option logic to licenses 2025-04-08 11:50:45 -07:00
Jeremy Price 4e2b4195b4 Grokability-ize .well-known/security.txt 2025-04-08 11:50:03 -07:00
Godfrey M b7492928ad reworked checkedInBy, added option logic to accessories 2025-04-08 11:43:02 -07:00
snipe 9f04254963 Merge pull request #16666 from snipe/print_view_tweaks
Added signature to licenses in print view, misc other fixes
2025-04-08 19:34:02 +01:00
snipe 10b8055b29 Added monospace class
Signed-off-by: snipe <snipe@snipe.net>
2025-04-08 19:10:16 +01:00
snipe 2b85ddeb74 Use correct date
Signed-off-by: snipe <snipe@snipe.net>
2025-04-08 19:10:06 +01:00
snipe 9017ae8545 Added category to consumable checkout
Signed-off-by: snipe <snipe@snipe.net>
2025-04-08 19:09:58 +01:00
snipe d0359a42fb Added signature to licenses
Signed-off-by: snipe <snipe@snipe.net>
2025-04-08 18:56:34 +01:00
akemidx 7701c6097f adding username split 2025-04-08 13:21:32 -04:00
akemidx 275e1beda2 updating for conflicts and adding test 2025-04-08 13:15:28 -04:00
Godfrey M 85b67dbb71 adds redirect to user option from checkin blades 2025-04-08 10:13:27 -07:00
akemidx f659b7631d Merge branch 'develop' into lastnameemail 2025-04-08 13:10:26 -04:00
Godfrey M a602b2fd47 adds option to redirect back to checkedInBy user for assets 2025-04-08 10:09:43 -07:00
snipe e0c6483b43 Merge pull request #16660 from snipe/cleanup_for_scoped_locations
Small improvements to location-by-company scoping
2025-04-08 17:57:50 +01:00
snipe c2e12f69d8 Merge pull request #16664 from 36864/patch-1
Fixes #16661: Empty signatures in print page
2025-04-08 17:57:11 +01:00
snipe 890702f66d A few more display tweaks
Signed-off-by: snipe <snipe@snipe.net>
2025-04-08 17:47:39 +01:00
36864 dfdbc95b5c Fix empty signatures in print page
Fixes snipe#16661 

Assuming that whatever happens between the user accepting and signing for the asset and the print page being accessed isn't another user somehow signing for the same asset and it not being assigned to that second user.
2025-04-08 15:50:59 +00:00
snipe ea365e5645 More fields visible
Signed-off-by: snipe <snipe@snipe.net>
2025-04-08 16:17:57 +01:00
snipe 548ae49c69 Small tweaks to table
Signed-off-by: snipe <snipe@snipe.net>
2025-04-08 15:30:07 +01:00
snipe 34f8f50a4a Use localization, turned display into table
Signed-off-by: snipe <snipe@snipe.net>
2025-04-08 15:13:57 +01:00
snipe da2c760227 Renamed variables, skipped breaking out of loop
Signed-off-by: snipe <snipe@snipe.net>
2025-04-08 15:13:19 +01:00
snipe a96abeac5f Use localization w/trans_choice
Signed-off-by: snipe <snipe@snipe.net>
2025-04-08 15:12:58 +01:00
snipe 420278c63b Nicer layout for settings
Signed-off-by: snipe <snipe@snipe.net>
2025-04-08 15:12:36 +01:00
snipe e0a04fe1ce Localized message
Signed-off-by: snipe <snipe@snipe.net>
2025-04-08 15:12:19 +01:00
snipe c42f53e846 Use table layout
Signed-off-by: snipe <snipe@snipe.net>
2025-04-08 12:34:11 +01:00
snipe 44ee287cc0 Nicer formatting
Signed-off-by: snipe <snipe@snipe.net>
2025-04-08 12:34:00 +01:00
fvollmer a56f6148fc Improve Settings: Remove username and password requirement for ldap
Since 9d62793 anonymous LDAP login is available. Remove username and password requirement in settings dialog.
2025-04-08 11:04:37 +02:00
snipe 5b1d6dbe14 Merge pull request #12577 from Toreg87/feature/locations_with_companies
Added #2353: Add ability to tie locations to companies - 2023 edition
2025-04-08 09:54:37 +01:00
snipe 43c15ef134 Merge branch 'develop' into feature/locations_with_companies 2025-04-08 09:18:48 +01:00
snipe a5315ec240 Merge remote-tracking branch 'origin/develop' 2025-04-08 08:32:25 +01:00
snipe a7203b0bbf Updated links, added mobile apps
Signed-off-by: snipe <snipe@snipe.net>
2025-04-08 08:32:15 +01:00
snipe a14d3ad856 Merge pull request #16493 from snipe/min_qty_in_bulk_model_edit
Add min_qty to asset model bulk edit
2025-04-08 08:22:03 +01:00
snipe fcd0ca3b94 Merge branch 'develop' into min_qty_in_bulk_model_edit 2025-04-08 07:14:15 +01:00
snipe 90329a2b2f Merge pull request #16529 from Godmartinz/location_tab_active-n-scroll_bar_fix
Fix active table tab and double scroll bar under locations
2025-04-08 07:12:33 +01:00
snipe 7448f67e12 Merge pull request #16658 from snipe/fix_bad_data_on_permission_groups
Set empty array if group permission is a string or null
2025-04-08 07:10:02 +01:00
snipe 22be89fbea Set empty array if group permission is a string or null
Signed-off-by: snipe <snipe@snipe.net>
2025-04-08 07:06:56 +01:00
snipe 93f1656e0b Merge remote-tracking branch 'origin/develop' 2025-04-08 06:51:21 +01:00
snipe fe65ffc384 Merge pull request #16527 from Godmartinz/license_seat_notes_fix
add notes as fillable to license seat model
2025-04-08 06:49:26 +01:00
snipe d44553c6dd Merge pull request #16553 from marcusmoore/tests/user-show
Added tests around emailing and printing assigned assets
2025-04-08 06:48:39 +01:00
snipe cfd845aefa Merge pull request #16500 from marcusmoore/bug/sc-28644-command
Added command to fix bulk checkin action log entries
2025-04-08 06:44:25 +01:00
snipe a98b277fa9 Merge pull request #16560 from spencerrlongg/bug/meta_status_multi_comp
Meta Status Fix for Multi Company
2025-04-08 06:43:57 +01:00
snipe 237975577d Merge pull request #16636 from marcusmoore/tests/delete-asset-tests
Added tests around deleting assets
2025-04-08 06:32:40 +01:00
snipe 2275186222 Merge pull request #16652 from akemidx/feature/sc-28820
Username dropdown to show Usernames and not Emails as Examples
2025-04-08 06:32:19 +01:00
snipe f1d006c236 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	public/css/build/app.css
#	public/css/build/overrides.css
#	public/css/dist/all.css
#	public/mix-manifest.json
2025-04-08 05:58:51 +01:00
snipe 5a1c81954f Merge pull request #16651 from Godmartinz/qr_code_location_option
Fixes #9660 - Adds location qr code option to labels
2025-04-08 05:53:48 +01:00
snipe 68e7d172a4 Merge pull request #16655 from snipe/adds_more_searchable_relations_to_activity
Fixed #13274 - Adds more searchable relations to activity report
2025-04-08 05:53:18 +01:00
snipe b2e0f48ed9 Added purchase date
Signed-off-by: snipe <snipe@snipe.net>
2025-04-08 05:50:03 +01:00
snipe 733ef9e23b Few more
Signed-off-by: snipe <snipe@snipe.net>
2025-04-08 05:44:49 +01:00
snipe 83562cfa83 Added additional searchable relations to activity report
Signed-off-by: snipe <snipe@snipe.net>
2025-04-08 05:23:39 +01:00
snipe de426c2d2c Merge pull request #16653 from snipe/add_audit_custom_fields
Fixed #13475 - Add custom fields to audit screen
2025-04-08 05:16:23 +01:00
snipe 05e66c33ee Added audits string
Signed-off-by: snipe <snipe@snipe.net>
2025-04-08 05:09:08 +01:00
snipe 744e844291 Added audit tab
Signed-off-by: snipe <snipe@snipe.net>
2025-04-08 05:08:58 +01:00
snipe 31c9ffa32b Added audits method
Signed-off-by: snipe <snipe@snipe.net>
2025-04-08 05:08:42 +01:00
snipe c46a9a773d Fixed admin string
Signed-off-by: snipe <snipe@snipe.net>
2025-04-08 05:08:08 +01:00
snipe 849da2fb63 Use correct audit icon
Signed-off-by: snipe <snipe@snipe.net>
2025-04-08 04:15:59 +01:00
snipe b51939ae76 Derp. Use correct model info
Signed-off-by: snipe <snipe@snipe.net>
2025-04-08 04:07:31 +01:00
snipe e95d7076b9 Added action_date
Signed-off-by: snipe <snipe@snipe.net>
2025-04-08 04:07:04 +01:00
snipe d2c7385197 Updated class for error text
Signed-off-by: snipe <snipe@snipe.net>
2025-04-08 04:06:54 +01:00
snipe 5beb0bf534 Added assertion for success in test
Signed-off-by: snipe <snipe@snipe.net>
2025-04-08 02:39:17 +01:00
snipe c59e9770b7 Removed unusued property
Signed-off-by: snipe <snipe@snipe.net>
2025-04-08 02:39:05 +01:00
snipe 908bb35792 Use upload file request
Signed-off-by: snipe <snipe@snipe.net>
2025-04-08 02:38:35 +01:00
snipe c4d0afb8d4 Added comments
Signed-off-by: snipe <snipe@snipe.net>
2025-04-08 02:24:33 +01:00
snipe 4b21f0d00b Removed stray character
Signed-off-by: snipe <snipe@snipe.net>
2025-04-08 02:03:45 +01:00
snipe 4aeba2a96b Try to fix tests
Signed-off-by: snipe <snipe@snipe.net>
2025-04-08 02:02:37 +01:00
snipe 74f8cb5298 Updated url in bootstrap partial
Signed-off-by: snipe <snipe@snipe.net>
2025-04-08 02:02:28 +01:00
snipe 62e863a0fa Removed tooltip code
This throws an error currently

Signed-off-by: snipe <snipe@snipe.net>
2025-04-08 02:02:10 +01:00
snipe 5bbba56b0e Added orginal values for logging
Signed-off-by: snipe <snipe@snipe.net>
2025-04-08 02:01:39 +01:00
snipe e4180c2194 Removed duplicated code
Signed-off-by: snipe <snipe@snipe.net>
2025-04-08 02:01:29 +01:00
snipe f4e3e6ceb6 Added display_audit to custom fields transformer
Signed-off-by: snipe <snipe@snipe.net>
2025-04-08 02:01:08 +01:00
snipe f37ed3e055 Add display_audit to custom fields controller
Signed-off-by: snipe <snipe@snipe.net>
2025-04-08 02:00:51 +01:00
snipe 9bb349d34b Try to get the asset from the route if there is RMB
Signed-off-by: snipe <snipe@snipe.net>
2025-04-08 02:00:37 +01:00
snipe 362f14a01d Manually invoke a validator
Signed-off-by: snipe <snipe@snipe.net>
2025-04-08 01:59:33 +01:00
snipe 226ad52f07 Better UI route
Signed-off-by: snipe <snipe@snipe.net>
2025-04-08 01:59:08 +01:00
akemidx 443a5c2348 chaning username dropdown to be usernames and not emails 2025-04-07 19:25:32 -04:00
snipe ce460c9ab0 Updated route
Signed-off-by: snipe <snipe@snipe.net>
2025-04-07 22:15:09 +01:00
snipe c344c40310 Added auditAssets() to user factory
Signed-off-by: snipe <snipe@snipe.net>
2025-04-07 22:10:36 +01:00
snipe 95fef9682f Added migration
Signed-off-by: snipe <snipe@snipe.net>
2025-04-07 22:10:18 +01:00
snipe 241777c1fd Added translation string
Signed-off-by: snipe <snipe@snipe.net>
2025-04-07 22:10:12 +01:00
snipe acdbf452e2 Added checkbox to custom field form
Signed-off-by: snipe <snipe@snipe.net>
2025-04-07 22:10:01 +01:00
snipe b8a9db2faf Added display_audit to custom fields list
Signed-off-by: snipe <snipe@snipe.net>
2025-04-07 22:09:51 +01:00
snipe dfdc24936d Added custom fields partial
Signed-off-by: snipe <snipe@snipe.net>
2025-04-07 22:09:29 +01:00
snipe 6a1bb06c13 Added tests
Signed-off-by: snipe <snipe@snipe.net>
2025-04-07 22:09:14 +01:00
snipe cfa8ddffc0 Keep legacy URL for audit
Signed-off-by: snipe <snipe@snipe.net>
2025-04-07 22:08:05 +01:00
snipe 5b524399d9 Use RMB for asset audit API
Signed-off-by: snipe <snipe@snipe.net>
2025-04-07 22:07:51 +01:00
Godfrey M bc3b3cf86e add psuedo example location_id for preview 2025-04-07 12:53:17 -07:00
Godfrey M a69133e2ae adds location qr code option to labels 2025-04-07 12:36:05 -07:00
snipe b0b5a96694 Merge remote-tracking branch 'origin/develop' 2025-04-07 13:54:23 +01:00
snipe b66618ff3f Fixed typo
Signed-off-by: snipe <snipe@snipe.net>
2025-04-07 13:54:10 +01:00
snipe 7dbe9a85f4 Merge remote-tracking branch 'origin/develop' 2025-04-05 21:02:33 +01:00
snipe b5ef856d9e Translate request cancel string
Signed-off-by: snipe <snipe@snipe.net>
2025-04-05 17:24:06 +01:00
snipe a302cc145a Merge pull request #16643 from snipe/small_requestable_improvements
Text tweaks and nicer buttons for requestable items
2025-04-05 16:07:57 +01:00
snipe d203c4e49c Text tweaks and nicer buttons
Signed-off-by: snipe <snipe@snipe.net>
2025-04-05 15:58:03 +01:00
snipe d2c39528d5 Merge remote-tracking branch 'origin/develop' 2025-04-05 15:44:22 +01:00
snipe b5c7e60408 Merge pull request #16642 from snipe/fixed_#16640-FIFO-for-requestable
Fixed #16640 - FIFO for requestable assets
2025-04-05 15:39:29 +01:00
snipe 3684e9c1e8 Fixed #16640 - FIFO for requestable assets
Signed-off-by: snipe <snipe@snipe.net>
2025-04-05 15:38:13 +01:00
snipe 0420543c94 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	public/css/build/app.css
#	public/css/build/overrides.css
#	public/css/dist/all.css
#	public/mix-manifest.json
2025-04-05 14:11:07 +01:00
snipe f2c730bd57 Fix wrapping on #16628
Signed-off-by: snipe <snipe@snipe.net>
2025-04-05 14:10:23 +01:00
akemidx f0bf77735d adding last name only as a email choice 2025-04-03 23:34:04 -04:00
Marcus Moore 1b95b29832 Add tests for deleting asset via ui 2025-04-03 16:12:13 -07:00
Marcus Moore 9a8e5bf61e Backup before running updates 2025-04-03 14:39:40 -07:00
Marcus Moore 18ef88bd67 Improve comment 2025-04-03 13:13:52 -07:00
Marcus Moore 4ba58b2546 Constrain query 2025-04-03 13:10:45 -07:00
Marcus Moore 6dd3ab2ec9 Exit early if no logs found 2025-04-03 12:56:46 -07:00
Marcus Moore faee50c222 Use dry-run instead of dryrun 2025-04-03 12:56:07 -07:00
Jeremy Price afd9282785 Update remaining comments from snipe/snipe-it to grokability/snipe-it 2025-04-03 12:07:05 -07:00
Jeremy Price 1344ed1d16 Update app & composer files from snipe/snipe-it to grokability/snipe-it 2025-04-03 12:04:12 -07:00
Jeremy Price cbea096403 Update Vagrantfile files from snipe/snipe-it to grokability/snipe-it 2025-04-03 12:02:42 -07:00
Jeremy Price 094edbd114 Update css and less files from snipe/snipe-it to grokability/snipe-it 2025-04-03 12:00:51 -07:00
Jeremy Price f016b6b988 Update relevant README sections from snipe/snipe-it to grokability/snipe-it 2025-04-03 11:54:39 -07:00
Jeremy Price 782b35e0f1 Update scripts from snipe/snipe-it to grokability/snipe-it 2025-04-03 11:51:12 -07:00
Jeremy Price 70e9c6b947 Update relevant snipe/snipe-it references to grokability/snipe-it in Docker files 2025-04-03 11:44:27 -07:00
Jeremy Price 4a457c96e8 Update Contributors links from snipe/snipe-it to grokability/snipe-it 2025-04-03 11:39:21 -07:00
Jeremy Price 2e2516825e Update github workflows from snipe/snipe-it to grokability/snipe-it 2025-04-03 11:36:57 -07:00
snipe aae0db902b Merge remote-tracking branch 'origin/develop' 2025-04-03 15:41:08 +01:00
snipe ba621cb1f2 Merge pull request #16632 from uberbrady/fix_paveit_command
Paveit had old Doctrine code to list tables; use the new method
2025-04-03 15:39:38 +01:00
snipe b1e2b5ab4a Merge pull request #16623 from Godmartinz/accessories_history_view_fix
Fixes Accessories history table color contrast
2025-04-03 15:37:55 +01:00
snipe 7c1438c370 Merge pull request #16446 from marcusmoore/feature/improve-checkout-asset-mail-wording
Improved wording in asset checkout emails
2025-04-03 15:37:30 +01:00
Brady Wetherington 760768f42d Paveit had old Doctrine code to list tables; use the new method 2025-04-03 15:35:07 +01:00
snipe 88dae7cef7 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	public/css/build/app.css
#	public/css/build/overrides.css
#	public/css/dist/all.css
#	public/mix-manifest.json
2025-04-03 15:28:10 +01:00
snipe cc8c2064c1 Merge pull request #16630 from snipe/license_key_formatting
Fixed #16628 - added formatting for license keys
2025-04-03 15:26:14 +01:00
snipe 33a921119c Merge pull request #16631 from snipe/add_webp_to_inline
Added webp as inline-able images
2025-04-03 15:25:48 +01:00
snipe 0e65498799 Added webp as inline-able images
Signed-off-by: snipe <snipe@snipe.net>
2025-04-03 15:24:03 +01:00
snipe 274c5fe4d3 Added max-width
Signed-off-by: snipe <snipe@snipe.net>
2025-04-03 15:07:10 +01:00
snipe b7c011dd2d Use new one line code style
Signed-off-by: snipe <snipe@snipe.net>
2025-04-03 15:03:31 +01:00
snipe a4a99adf80 Added one-line code style
Signed-off-by: snipe <snipe@snipe.net>
2025-04-03 15:03:16 +01:00
snipe c7890f4c3b Use id as copy key
Signed-off-by: snipe <snipe@snipe.net>
2025-04-03 13:52:55 +01:00
snipe 6d7f061a1d Larger key box
Signed-off-by: snipe <snipe@snipe.net>
2025-04-03 13:39:31 +01:00
snipe 45d3c0444b Added copy to license keys
Signed-off-by: snipe <snipe@snipe.net>
2025-04-03 12:29:30 +01:00
snipe 9204309d67 Checkin/Checkout note added to language file
Signed-off-by: snipe <snipe@snipe.net>
2025-04-03 12:28:47 +01:00
snipe a2035693e6 Added licenseKeyFormatter
Signed-off-by: snipe <snipe@snipe.net>
2025-04-03 12:28:30 +01:00
snipe e5cb17e934 Merge remote-tracking branch 'origin/develop' 2025-04-03 10:16:18 +01:00
akemidx 392db81499 requested changes 2025-04-02 21:28:34 -04:00
snipe abfea8e349 Merge pull request #16624 from snipe/bug/sc-28682
Fixed [SC-28682] - Consumable import not importing supplier and item number
2025-04-03 01:45:52 +01:00
snipe ef20bd4aa8 Fixed tests
Signed-off-by: snipe <snipe@snipe.net>
2025-04-02 21:41:12 +01:00
snipe 2d9be4e9e0 Added supplier_id as fillable
Signed-off-by: snipe <snipe@snipe.net>
2025-04-02 21:10:25 +01:00
snipe 36767c0a5c Added more common fields for mapping
Signed-off-by: snipe <snipe@snipe.net>
2025-04-02 21:10:16 +01:00
snipe 0d099263e3 Removed unneeded lines
Signed-off-by: snipe <snipe@snipe.net>
2025-04-02 21:09:28 +01:00
snipe 8f50e01d18 Shrink sample CSVs
Signed-off-by: snipe <snipe@snipe.net>
2025-04-02 21:09:04 +01:00
snipe d898288397 Remove email user for comonent import type
Signed-off-by: snipe <snipe@snipe.net>
2025-04-02 21:08:54 +01:00
Marcus Moore af88ce5801 Merge branch 'develop' into feature/improve-checkout-asset-mail-wording 2025-04-02 12:01:53 -07:00
Godfrey M b1b248f03d removed duplicate class from accessories history table 2025-04-02 11:29:01 -07:00
snipe 9d609805f2 Merge remote-tracking branch 'origin/develop' 2025-04-02 18:33:48 +01:00
snipe df1c7c4f95 Merge pull request #16609 from snipe/login_throttle_update
Updated login attempts and throttle duration
2025-04-02 18:28:34 +01:00
snipe 7120b19d3b Fixed namespace
Signed-off-by: snipe <snipe@snipe.net>
2025-04-02 18:24:27 +01:00
snipe e2b9ca8254 Merge remote-tracking branch 'origin/develop' 2025-04-02 14:03:22 +01:00
snipe 2197b46658 Link to admin user
Signed-off-by: snipe <snipe@snipe.net>
2025-04-02 14:03:09 +01:00
snipe e16a2fe8af Merge remote-tracking branch 'origin/develop' 2025-04-02 13:51:09 +01:00
snipe 785f576b19 Merge pull request #16621 from snipe/add_notes_to_location_sidebar
Fixed #16618 - added notes to location sidebar
2025-04-02 13:27:48 +01:00
snipe 31e337255a Use adminuser instead of created_by
Signed-off-by: snipe <snipe@snipe.net>
2025-04-02 13:26:12 +01:00
snipe f12d173581 Fixed #16618 - added notes to location sidebar
Signed-off-by: snipe <snipe@snipe.net>
2025-04-02 13:23:33 +01:00
snipe 22d61a533d Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	config/version.php
2025-04-02 12:50:35 +01:00
snipe eb3dbb8c7a Bumped hash
Signed-off-by: snipe <snipe@snipe.net>
2025-04-02 12:49:53 +01:00
snipe ed908be2eb Merge pull request #16620 from snipe/#16619_fix_accessory_clone_population
Fixed #16619 - cloning accessory was not populating fields
2025-04-02 12:48:25 +01:00
snipe e215c5f9ee Fixed #16619 - accesory clone
Signed-off-by: snipe <snipe@snipe.net>
2025-04-02 12:43:42 +01:00
snipe 78f3c879ff Merge pull request #16617 from snipe/add_pdf_logo_upload
Fixed #16257 - Added acceptance PDF logo upload
2025-04-02 12:22:43 +01:00
snipe cb59c23f0b Added pdf logo to the blade
Signed-off-by: snipe <snipe@snipe.net>
2025-04-02 12:13:34 +01:00
snipe d0f750edea Added pdf logo to the controller
Signed-off-by: snipe <snipe@snipe.net>
2025-04-02 12:13:28 +01:00
snipe 56ae9d0ba9 Nicer upload logo labels
Signed-off-by: snipe <snipe@snipe.net>
2025-04-02 12:10:27 +01:00
snipe 15917d5f99 Use new logo
Signed-off-by: snipe <snipe@snipe.net>
2025-04-02 12:10:14 +01:00
snipe a59d69cb0d Updated strings
Signed-off-by: snipe <snipe@snipe.net>
2025-04-02 12:10:05 +01:00
snipe 97cba45509 Added migration
Signed-off-by: snipe <snipe@snipe.net>
2025-04-02 12:09:57 +01:00
snipe 365ce34940 Merge pull request #16613 from marcusmoore/chore/update-rollbar
Update rollbar-laravel to 8.1
2025-04-02 10:48:51 +01:00
Marcus Moore 7048eceb9d Update rollbar/rollbar-laravel 2025-04-01 16:05:32 -07:00
snipe af408bb45f Merge remote-tracking branch 'origin/develop' 2025-04-01 21:33:07 +01:00
snipe 9d61234f0c Merge pull request #16612 from snipe/re-fix_db_dump_ssl_fix
Fixes #16610, regression in #16543
2025-04-01 21:32:15 +01:00
snipe bef650757d Fixes #16610, regression in #16543
Signed-off-by: snipe <snipe@snipe.net>
2025-04-01 21:25:35 +01:00
Godfrey M 4ef161214d notification icon only appears when there are notifications 2025-04-01 12:01:35 -07:00
Godfrey M 29d0380db3 reword warning messages, remove warning if webhook cleared and saved, deprecations only for superadmins 2025-04-01 11:53:32 -07:00
snipe 24bfbc06f0 Merge remote-tracking branch 'origin/develop' 2025-04-01 19:40:03 +01:00
snipe cb6e7f7b6e Merge pull request #16561 from spencerrlongg/bug/api_get_by_serial_add_pagination
Adds Pagination to Hardware By Serial API Request
2025-04-01 19:26:28 +01:00
snipe c305284930 Merge pull request #15922 from spencerrlongg/feature/sc-24347
Requestable/Request Item API Endpoints
2025-04-01 18:15:42 +01:00
snipe 6c47f1c07f Added test
Signed-off-by: snipe <snipe@snipe.net>
2025-04-01 17:44:44 +01:00
snipe 5d265f5bfd Change to minutes
Signed-off-by: snipe <snipe@snipe.net>
2025-04-01 15:01:34 +01:00
snipe daaad4fe9d Removed unneeded strings
Signed-off-by: snipe <snipe@snipe.net>
2025-04-01 14:36:53 +01:00
snipe 40ae5d421b Updated maxLoginAttempts and throttle duration
Signed-off-by: snipe <snipe@snipe.net>
2025-04-01 14:36:45 +01:00
snipe 5eb9f353b5 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	public/css/dist/all.css
#	public/css/dist/bootstrap-table.css
#	public/js/dist/bootstrap-table.js
#	public/mix-manifest.json
2025-04-01 11:25:33 +01:00
akemidx d96498ab1f this is a redo after a borked rebase 2025-03-31 18:33:20 -04:00
spencerrlongg bfd827e529 added more eager loading 2025-03-31 12:28:03 -05:00
snipe d95549bbcf Merge pull request #16594 from uberbrady/fix_consumable_model_copy
Fixes [FD-47675 ] Fix consumable model number copy-to-clipboard button
2025-03-31 18:26:46 +01:00
snipe e10071a68e Merge pull request #16595 from uberbrady/fix_whitespace_encrypted_custom_fields_display
Fix whitespace encrypted custom fields display [FD-46570]
2025-03-31 18:25:13 +01:00
Brady Wetherington 92a77afd0b Fixes the clipboard button copying whitespace at the end of custom fields 2025-03-31 13:55:38 +01:00
Brady Wetherington 1369b993a4 Fix JS copy-to-clipboard for consumable model_num 2025-03-31 13:13:37 +01:00
snipe 382414df98 Merge pull request #16559 from Godmartinz/StoreLabelSettings_fix
Fix Form save error when using old label engine
2025-03-31 12:39:08 +01:00
snipe 6846c7d510 Merge pull request #16536 from akemidx/moving_warranty_info
Moving warranty/depreciation to be with the other cost/eol values
2025-03-31 12:35:32 +01:00
snipe 1d3069fe84 Merge pull request #16540 from marcusmoore/bug/sc-28607
Early return null from location transformer for missing accessory
2025-03-31 12:34:22 +01:00
snipe 13940071a9 Merge pull request #16546 from marcusmoore/bug/sc-28024
Fixed potential bad method call and premature email sending in bulk asset checkout
2025-03-31 12:32:50 +01:00
snipe 6870698cdc Add @ntaylor-86 as a contributor 2025-03-31 12:32:25 +01:00
snipe 4aa13c8dd4 Merge pull request #16543 from ntaylor-86/fixes/laravel-backup-ssl-error
Fixed #16217: database config, added option to skip ssl on the database dump
2025-03-31 12:32:00 +01:00
snipe 44db2dc78e Merge pull request #16520 from marcusmoore/bug/sc-28673
Remove unneeded eager loading for user show page
2025-03-31 12:31:12 +01:00
snipe 2e17e80ea9 [Snyk] Upgrade acorn from 8.14.0 to 8.14.1 #16587
Signed-off-by: snipe <snipe@snipe.net>
2025-03-31 12:30:09 +01:00
snipe 836d7ca8f9 [Snyk] Upgrade bootstrap-table from 1.24.0 to 1.24.1 #16588
Signed-off-by: snipe <snipe@snipe.net>
2025-03-31 12:29:00 +01:00
snipe 18e6a18389 Merge pull request #16576 from marcusmoore/fixes/api_company_note
Fixed notes not being saved and update for companies via api
2025-03-31 12:20:36 +01:00
snipe 1dd050ac0f Merge pull request #16577 from marcusmoore/tests/login-logging
Added tests around login attempt logging
2025-03-29 23:30:05 -01:00
Marcus Moore b8b0e3200e Add tests around loggin login attempts 2025-03-27 17:27:28 -07:00
Marcus Moore bc77c8c885 Add notes to $fillable 2025-03-27 10:57:34 -07:00
Marcus Moore c095f330e1 Add failing tests 2025-03-27 10:56:33 -07:00
Marcus Moore e0e08f284e Add tests for creating and patching companies via api 2025-03-27 10:54:42 -07:00
spencerrlongg e273c7cbc5 Refactor asset retrieval to support pagination.
Introduced offset and limit handling for API asset queries to enable proper pagination. Adjusted the total count logic to maintain consistency in responses and ensure accurate transformation of assets.
2025-03-25 15:21:18 -05:00
Godfrey M d28cc024cf add DefaultLabel if no label2_template is selected 2025-03-25 12:40:23 -07:00
spencerrlongg 168a3df157 Fix condition in statusMeta for correct property check
Updated the conditional check to use 'assigned_to' instead of 'assigned' for determining the deployment status. This ensures the code references the correct property on the model.
2025-03-25 14:39:51 -05:00
Marcus Moore ac597b517b Remove blank line 2025-03-24 12:39:17 -07:00
Marcus Moore ac56640d40 Spilt test scenarios 2025-03-20 16:21:42 -07:00
Marcus Moore ce585539aa Improve test name 2025-03-20 16:13:13 -07:00
Marcus Moore 2cfff8e07c Formatting 2025-03-20 16:12:31 -07:00
Marcus Moore 0ceda098ff Spilt test scenarios 2025-03-20 16:10:01 -07:00
Marcus Moore db81209fe1 Organize existing tests 2025-03-20 16:01:28 -07:00
Marcus Moore 02f109c3b5 Include input when redirecting back 2025-03-20 14:04:19 -07:00
Marcus Moore 0ed0a7f9f3 Avoid sending emails for asset checkouts that failed 2025-03-20 14:01:48 -07:00
Marcus Moore b721b7d9c9 Add tests 2025-03-20 13:57:42 -07:00
Marcus Moore 976b3dc5ae Improve test case 2025-03-20 13:38:12 -07:00
snipe 2d3514bbf8 Merge pull request #16545 from Godmartinz/activity_report_column_name_fix
changes translation from Admin Settings to Created By on the Activity Report
2025-03-20 19:37:42 -01:00
Marcus Moore 5dcd4b2942 Return valid error message 2025-03-20 13:26:27 -07:00
Marcus Moore d645b42e12 Add failing test 2025-03-20 13:26:06 -07:00
Godfrey M 0ad985cbcd change translation 2025-03-20 12:40:46 -07:00
ntaylor-86 ad5099fac9 added .env variable to the other .env files 2025-03-20 23:27:29 +10:00
ntaylor-86 32736e2f74 added .env variable and database config to skip ssl for DB DUMP 2025-03-20 23:06:15 +10:00
Marcus Moore cef83ad652 Avoid hard failure on missing accessory in location transformer 2025-03-19 14:11:47 -07:00
Marcus Moore e6ccff103f Add simple null check to avoid attempting to transform missing relationship 2025-03-19 12:52:01 -07:00
akemidx 5944034b8b moving warranty/depreciation to be with the other cost/eol values 2025-03-19 15:22:09 -04:00
snipe 473ce15f47 Merge pull request #16526 from snipe/develop
Merge #16486  and #16519 into master
2025-03-19 15:31:50 -01:00
Godfrey M 881cde4d98 change namesspaces and use create instead of make 2025-03-18 14:18:49 -07:00
akemidx e408b902f0 removing depreciation from purchase cost (unneeded, should go elsewhere if wanted) 2025-03-18 16:38:44 -04:00
akemidx a398c4ab84 reset 2025-03-18 16:37:27 -04:00
akemidx 27417cdec7 removing depreciation logic (unneeded for purchase cost) 2025-03-18 16:36:36 -04:00
Godfrey M bf3837c49d add checkin test for api 2025-03-18 12:54:03 -07:00
Godfrey M 66fd46fe75 add checkout test for api 2025-03-18 12:46:56 -07:00
Godfrey M 29cbf43d68 remove duplicate table class div 2025-03-18 11:48:09 -07:00
Godfrey M 07096c8a31 rename note to notes 2025-03-18 10:37:00 -07:00
Godfrey M cbc6c2754c add notes as fillable to license seat model 2025-03-18 10:27:56 -07:00
Jermops 711235f49c Merge pull request #16519 from marcusmoore/bug/sc-28696
Fixed issue with bad email addresses in expiration alerts and upcoming audits
2025-03-18 09:15:41 -07:00
Jeremy Price 3d2d7684aa Add console command to disable SAML logins
If a Snipe-IT sire has SAML enabled, and the SAML config is sufficiently
borked, the site will fail to even load the login page. That's probably
something that should be examined, but in the meantime, it'd be handy to
not have to manually edit the database to turn off SAML.

In this commit, I'm creating a saml-disable console command. And by
create, i mean i'm copypasta-ing the existing ldap-disable command.
2025-03-17 19:58:21 -07:00
Marcus Moore 9aede45918 Remove unneeded eager loads 2025-03-17 14:43:23 -07:00
Marcus Moore b26a73e385 Filter out empty email address in alerts 2025-03-17 12:30:15 -07:00
Marcus Moore 650839b68a Update command name 2025-03-12 17:05:16 -07:00
Marcus Moore 388dc23241 Add comments 2025-03-12 17:02:05 -07:00
Marcus Moore 32b194ddc7 Update description 2025-03-12 16:44:37 -07:00
Marcus Moore 9cea6cee26 Docblock 2025-03-12 16:42:50 -07:00
Marcus Moore 73f64c53b1 Skip logs where created_by cannot be set 2025-03-12 16:42:39 -07:00
Marcus Moore 2091f66f5b Reorganize 2025-03-12 16:30:36 -07:00
snipe c711278b8b Merge pull request #16486 from marcusmoore/bug/sc-28639
Fixed location being automatically populated on asset checkin screen
2025-03-12 23:26:08 +00:00
snipe eb9cfbaed6 Merge pull request #16498 from snipe/develop
Merge develop into master
2025-03-12 23:23:44 +00:00
snipe ff637f1926 Merge pull request #16497 from marcusmoore/fixes/diff-in
Fixed various carbon displays
2025-03-12 23:17:48 +00:00
Marcus Moore 4d978e0fc6 Fix eol rate in upcoming audit notification 2025-03-12 16:04:16 -07:00
Marcus Moore 167001ed54 Fix eol rate in tests 2025-03-12 16:01:32 -07:00
Marcus Moore 25fb1abc95 Fix eol rate in AssetObserver 2025-03-12 15:58:11 -07:00
Marcus Moore 658bef447d Fix eol rate in Actionlog 2025-03-12 15:55:13 -07:00
Marcus Moore a28ff22d03 Fix eol rate in ReportsController 2025-03-12 15:44:06 -07:00
Marcus Moore 63a1ee0047 Fix eol rate in AssetMaintenancesController 2025-03-12 15:38:54 -07:00
Marcus Moore ab8f4454d1 Add failing test for updating asset maintenance 2025-03-12 15:38:46 -07:00
Marcus Moore e439f1f42b Fix eol rate in AssetMaintenancesController 2025-03-12 15:35:46 -07:00
Marcus Moore 9be27bdf07 Add failing test for creating asset maintenance 2025-03-12 15:35:14 -07:00
snipe faeb037ff9 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	public/css/build/app.css
#	public/css/build/overrides.css
#	public/css/dist/all.css
#	public/js/build/app.js
#	public/js/dist/all.js
#	public/mix-manifest.json
2025-03-12 21:26:34 +00:00
snipe bfc122469c Merge pull request #16495 from snipe/add_highlight_for_low_qty
Added highlight to items when the remaining is less than the min_amt
2025-03-12 21:23:15 +00:00
snipe 036c225dcf Fixed dashboard string
Signed-off-by: snipe <snipe@snipe.net>
2025-03-12 21:22:24 +00:00
snipe 083cf78305 Added footer style for nicer number cell padding
Signed-off-by: snipe <snipe@snipe.net>
2025-03-12 21:17:41 +00:00
Marcus Moore 824271078e Fix eol rate in AssetsController 2025-03-12 13:55:12 -07:00
Marcus Moore 1122cd8567 Fix eol rate in asset transformer 2025-03-12 13:33:15 -07:00
Marcus Moore 6cf7df22cd Fix eol rate on asset show page 2025-03-12 13:28:34 -07:00
snipe 7421d089ff Added formatter and centering in presenters
Signed-off-by: snipe <snipe@snipe.net>
2025-03-12 20:25:00 +00:00
snipe bdb4bd73d2 Return an indicator for no value set
Signed-off-by: snipe <snipe@snipe.net>
2025-03-12 20:18:51 +00:00
snipe bf88597132 Added qtySumFormatter and made seats formatter more generic
Signed-off-by: snipe <snipe@snipe.net>
2025-03-12 20:14:23 +00:00
snipe dfacd876d5 Added remaining/min_amt to transformers
Signed-off-by: snipe <snipe@snipe.net>
2025-03-12 20:13:15 +00:00
Marcus Moore d5bc5caacd Purge activity log of consumable bulk checkins 2025-03-12 11:57:18 -07:00
Marcus Moore be6caf936e Avoid logging consumable checkins 2025-03-12 11:48:14 -07:00
snipe f1e70eb7a0 Add min_qty to asset model bulk edit
Signed-off-by: snipe <snipe@snipe.net>
2025-03-12 18:27:27 +00:00
snipe 07602f697d Merge remote-tracking branch 'origin/develop' 2025-03-12 18:13:22 +00:00
snipe dbe78c30d5 Merge pull request #16491 from snipe/bug/sc-28671
Fixed new user modal pre-populating with first name and last name of acting user
2025-03-12 18:05:57 +00:00
snipe c1601b9a8c Updated tests
Signed-off-by: snipe <snipe@snipe.net>
2025-03-12 17:28:50 +00:00
snipe aa8e9f61d2 Check for value override
Signed-off-by: snipe <snipe@snipe.net>
2025-03-12 17:28:44 +00:00
snipe 163ddc8026 Check for value override
Signed-off-by: snipe <snipe@snipe.net>
2025-03-12 17:28:29 +00:00
snipe c73dba4a43 Better visual spacing
Signed-off-by: snipe <snipe@snipe.net>
2025-03-12 17:28:05 +00:00
snipe 5e61a814a7 Merge pull request #16489 from marcusmoore/bug/sc-28644
Fixed timestamp in action log for bulk accessory check in
2025-03-12 14:56:52 +00:00
Marcus Moore 935d3eea9f Attempt to match and populate created_by 2025-03-11 17:17:39 -07:00
Marcus Moore fffc606d9a Improve output 2025-03-11 17:06:02 -07:00
Marcus Moore c3a48182fd Display the created_by 2025-03-11 17:03:26 -07:00
Marcus Moore 147e610062 Add todos 2025-03-11 17:00:36 -07:00
Marcus Moore dd14eac1eb Prompt for confirmation 2025-03-11 16:56:07 -07:00
Marcus Moore 4954d972bb Write table of ids 2025-03-11 16:52:20 -07:00
Marcus Moore c8177eb51e Update timestamps 2025-03-11 16:50:16 -07:00
Marcus Moore a8cccffa1e Update output 2025-03-11 16:41:22 -07:00
Marcus Moore c774e969d7 Scaffold command 2025-03-11 16:34:07 -07:00
Marcus Moore b5fa538a54 Set created_by correctly in he action log 2025-03-11 16:05:02 -07:00
snipe 11abb0fdb1 Merge remote-tracking branch 'origin/develop' 2025-03-11 22:13:34 +00:00
snipe fcdc1494c2 Merge pull request #16443 from azmcnutt/feature/labels_Avery_5520_1DBarcode
Nice work! Thank you!
2025-03-11 22:12:09 +00:00
snipe badb367e74 Merge pull request #16445 from ubc-cpsc/bugfix/CVE-2025-27515
Fixes CVE-2025-27515: Laravel has a File Validation Bypass
2025-03-11 21:55:58 +00:00
snipe 2960a13772 Upgrade webpack from 5.97.1 to 5.98.0 #16461
Signed-off-by: snipe <snipe@snipe.net>
2025-03-11 21:24:44 +00:00
snipe deeb2fa543 Merge remote-tracking branch 'origin/develop' 2025-03-11 21:14:12 +00:00
snipe 5e10c213f6 Merge pull request #16488 from marcusmoore/bug/sc-28631
Nice catch!
2025-03-11 21:05:46 +00:00
snipe b61eacbdab Merge pull request #16473 from marcusmoore/chore/replace-form-close
Replaced call to Form::close()
2025-03-11 20:47:08 +00:00
Marcus Moore e2f643e7ed Backfill tests 2025-03-11 13:46:21 -07:00
Marcus Moore 9cbcfba4e9 Add test 2025-03-11 13:35:50 -07:00
Marcus Moore fd854072b0 Properly handle route model bound LicenseSeat not being found 2025-03-11 13:03:00 -07:00
Marcus Moore 18b208bba2 Account for missing location 2025-03-11 11:46:38 -07:00
Marcus Moore 71d93ca3c3 Use dedicated location select component
Copy/paste/modify from partials.forms.edit.location-select
2025-03-11 11:41:26 -07:00
Marcus Moore bac2760c6d Replace Form::close 2025-03-10 12:55:35 -07:00
snipe 0b48fd1465 Removed extra headers
Signed-off-by: snipe <snipe@snipe.net>
2025-03-10 13:05:31 +00:00
snipe 220537fbfb Updated presenter name
Signed-off-by: snipe <snipe@snipe.net>
2025-03-10 12:59:57 +00:00
snipe df5437647b Add optional serial value in presenter
Signed-off-by: snipe <snipe@snipe.net>
2025-03-10 12:43:38 +00:00
snipe 92b2da9b1b Added history tab to components
Signed-off-by: snipe <snipe@snipe.net>
2025-03-10 11:48:38 +00:00
snipe ef56177372 Use presenter
Signed-off-by: snipe <snipe@snipe.net>
2025-03-10 11:48:31 +00:00
snipe cb7822576f Use new presenters
Signed-off-by: snipe <snipe@snipe.net>
2025-03-10 11:48:19 +00:00
snipe 7ba361b10d Use date formatter for filestable
Signed-off-by: snipe <snipe@snipe.net>
2025-03-10 10:57:54 +00:00
snipe 55694fa2fc Added strings
Signed-off-by: snipe <snipe@snipe.net>
2025-03-10 10:57:40 +00:00
snipe c825878c46 Added history presenter
Signed-off-by: snipe <snipe@snipe.net>
2025-03-10 10:57:33 +00:00
snipe 33c9ea4bb1 Merge pull request #16065 from marcusmoore/chore/migrate-select-helper
Convert  Form::select to blade component
2025-03-07 01:05:58 +00:00
Marcus Moore d88fe1f48a Merge branch 'develop' into chore/migrate-select-helper 2025-03-06 13:39:05 -08:00
Marcus Moore f202817852 Use translation strings 2025-03-06 12:43:59 -08:00
Joël Pittet 618d81777a Fixes CVE-2025-27515 2025-03-06 12:33:29 -08:00
James M 0b6d810ca6 FEAT: Add Label 5520 with 1D barcode - remove 2D barcode
FEAT: Add Label 5520 with 1D barcode - remove 2D barcode
2025-03-06 11:12:16 -07:00
snipe 80a69bfe90 Revert datetime to date
Signed-off-by: snipe <snipe@snipe.net>
2025-03-06 18:09:27 +00:00
snipe d4dc8d2b79 Remove action_date from loggable as a changed field
Signed-off-by: snipe <snipe@snipe.net>
2025-03-06 17:43:07 +00:00
snipe 4e3df93349 Change action_date display to date from datetime
Signed-off-by: snipe <snipe@snipe.net>
2025-03-06 16:16:17 +00:00
snipe 38efc62900 Add index on action_date, copy from created_at
Signed-off-by: snipe <snipe@snipe.net>
2025-03-06 16:01:46 +00:00
snipe 8c164d1b09 Merge pull request #16441 from snipe/added_modal_tests
Added modal tests
2025-03-06 15:06:08 +00:00
snipe 6d74053ca3 Added modal tests
Signed-off-by: snipe <snipe@snipe.net>
2025-03-06 15:02:55 +00:00
snipe ef8d5ff11e Merge remote-tracking branch 'origin/develop' 2025-03-06 12:06:10 +00:00
snipe f42fcd25b1 Make the assets tab active by default on locations page
Signed-off-by: snipe <snipe@snipe.net>
2025-03-06 12:05:36 +00:00
Marcus Moore 7df636515f Move to data providers 2025-03-05 18:20:40 -08:00
Marcus Moore 3db124e709 First pass at updating wording for asset checkout mail 2025-03-05 18:12:23 -08:00
snipe c5dd942f3d Merge pull request #16436 from marcusmoore/fixes/report-template-link
Fixed linking in saved report template dropdown
2025-03-06 01:06:18 +00:00
Marcus Moore 70de08a211 Replace hard-coded link to report template 2025-03-05 16:26:26 -08:00
Marcus Moore d1683d1c65 Use existing translation string 2025-03-05 16:10:36 -08:00
Marcus Moore f038254038 Have UI reflect not being able to delete accessory 2025-03-05 16:02:23 -08:00
Marcus Moore a19582a5f3 Prevent deleting accessory that has checkouts via api 2025-03-05 15:58:34 -08:00
Marcus Moore 00cbebd1e3 Add failing test for api 2025-03-05 15:57:18 -08:00
Marcus Moore 8c21d625fc Prevent deleting accessory that has checkouts via UI 2025-03-05 15:56:01 -08:00
snipe 64f49afce1 Merge pull request #16432 from marcusmoore/bug/sc-24475
Added validation around user store endpoint
2025-03-05 20:16:30 +00:00
Marcus Moore 25395e9af1 Add test for storing user 2025-03-05 11:37:03 -08:00
Marcus Moore 69009e027f Add authorization test 2025-03-05 11:34:45 -08:00
Marcus Moore 695c9d070f Require int for department and company ids when creating user via api 2025-03-05 11:32:04 -08:00
snipe 91f3e07b83 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	config/version.php
2025-03-05 17:05:28 +00:00
snipe c9f55bfd94 Bumped version
Signed-off-by: snipe <snipe@snipe.net>
2025-03-05 17:04:57 +00:00
snipe c29bdbdacb Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	public/css/dist/skins/_all-skins.css
#	public/css/dist/skins/_all-skins.min.css
#	public/css/dist/skins/skin-blue.css
#	public/css/dist/skins/skin-blue.min.css
#	public/mix-manifest.json
2025-03-05 13:46:29 +00:00
snipe 27d98fbb93 Merge pull request #16429 from snipe/bug/sc-28609
Updated HTML label colors in blue skin
2025-03-05 13:43:53 +00:00
snipe 0e1f40626f Updated label colors in blue skin
Signed-off-by: snipe <snipe@snipe.net>
2025-03-05 13:40:36 +00:00
snipe a20d104d2f Merge remote-tracking branch 'origin/develop' 2025-03-05 11:59:47 +00:00
snipe 7a312d075c Check for null on webhook url
Signed-off-by: snipe <snipe@snipe.net>
2025-03-05 11:59:35 +00:00
snipe a61dd8ac17 Merge remote-tracking branch 'origin/develop' 2025-03-05 10:52:42 +00:00
snipe e1156be919 Merge pull request #16427 from snipe/fixed_user_modal_email
Fixes user create modal - check if $item is set
2025-03-05 10:52:00 +00:00
snipe fcf7a543fd Check if $item is set
Signed-off-by: snipe <snipe@snipe.net>
2025-03-05 10:47:33 +00:00
Spencer Long 6201e475cb Merge branch 'develop' into feature/sc-24347 2025-03-04 21:20:46 -06:00
snipe 7ee9a690ea Merge remote-tracking branch 'origin/develop' 2025-03-05 01:12:22 +00:00
snipe bef54983fa Merge pull request #16421 from marcusmoore/chore/migrate-label-helpers-pt8
Replace calls to Form::label pt8
2025-03-05 01:01:21 +00:00
Marcus Moore f2b44f7002 Replace Form::label in company select partial 2025-03-04 16:46:43 -08:00
Marcus Moore de7d32f632 Replace Form::label on ldap settings page 2025-03-04 16:44:26 -08:00
snipe fecee69de6 Use table name to avoid ambiguous query
Signed-off-by: snipe <snipe@snipe.net>
2025-03-05 00:43:04 +00:00
snipe 75366927f0 Fixed table name
Signed-off-by: snipe <snipe@snipe.net>
2025-03-05 00:41:11 +00:00
Marcus Moore c798df2920 Replace Form::label on label settings page 2025-03-04 16:34:22 -08:00
snipe 5ba94c6c41 Merge remote-tracking branch 'origin/develop' 2025-03-05 00:12:09 +00:00
snipe 779330af14 Merge pull request #16420 from marcusmoore/fixes/report-url
Fixed custom report template route
2025-03-05 00:11:30 +00:00
Marcus Moore f01ff1f1d7 Add dedicated named route 2025-03-04 16:07:35 -08:00
Marcus Moore 1e4daf0348 Fix route 2025-03-04 16:04:28 -08:00
snipe 9fa855c837 Prod assets
Signed-off-by: snipe <snipe@snipe.net>
2025-03-04 23:30:45 +00:00
snipe 9251007574 Merge remote-tracking branch 'origin/develop' 2025-03-04 23:29:31 +00:00
snipe fae79a91f6 Merge pull request #16418 from marcusmoore/chore/custom-report-template-activity-log-removal
Stop reporting report template events to activity log
2025-03-04 23:28:43 +00:00
Marcus Moore e8ee218f39 Purge activity log of report template data 2025-03-04 15:20:23 -08:00
Marcus Moore cb5b0bd89c Stop reporting report template creates, updates, and deletes to action log 2025-03-04 15:11:37 -08:00
snipe 0ed49fa7a0 Dev assets
Signed-off-by: snipe <snipe@snipe.net>
2025-03-04 22:55:58 +00:00
snipe f25b8379e6 Merge pull request #16413 from Godmartinz/visited_link-color-change
Changed `visited-link` and `link` colors in default theme to be more accessible
2025-03-04 22:55:17 +00:00
snipe bc618fcef4 Merge pull request #16414 from Godmartinz/Audit_error_fix
Adds audit notification for MS Teams
2025-03-04 22:54:32 +00:00
Godfrey M 7c194422f3 Merge branch 'develop' into Audit_error_fix 2025-03-04 14:51:21 -08:00
Godfrey M 49ff47fbcf Merge branch 'develop' into visited_link-color-change 2025-03-04 14:47:48 -08:00
snipe cc73b984cb Merge remote-tracking branch 'origin/develop' 2025-03-04 21:13:43 +00:00
snipe 77c978d29a Merge pull request #16416 from Godmartinz/expiring-asset-email-test
fix Expiring alert tests
2025-03-04 21:11:52 +00:00
Godfrey M 437b3cd865 fix conflicts 2025-03-04 13:08:53 -08:00
Godfrey M 3641016271 remove commented code 2025-03-04 13:08:03 -08:00
Godfrey Martinez cc127c8e1e Merge branch 'develop' into expiring-asset-email-test 2025-03-04 13:06:36 -08:00
Godfrey M 4bac509341 fix Expiring alert tests 2025-03-04 12:58:04 -08:00
snipe f4f6dcb885 Updated test
Signed-off-by: snipe <snipe@snipe.net>
2025-03-04 20:48:59 +00:00
snipe d89f38bbfb Set defaults on save
Signed-off-by: snipe <snipe@snipe.net>
2025-03-04 20:38:33 +00:00
snipe 9351cc2252 Set default to 0
Signed-off-by: snipe <snipe@snipe.net>
2025-03-04 20:38:22 +00:00
snipe a31a732d38 Nicer UI for invert flag
Signed-off-by: snipe <snipe@snipe.net>
2025-03-04 20:38:15 +00:00
snipe 1be420b0e9 Fixed test
Signed-off-by: snipe <snipe@snipe.net>
2025-03-04 20:37:45 +00:00
snipe 548ef97c32 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	config/version.php
2025-03-04 19:57:33 +00:00
snipe 2b0127ab0c Bumped version
Signed-off-by: snipe <snipe@snipe.net>
2025-03-04 19:56:58 +00:00
snipe ed8a486726 Merge remote-tracking branch 'origin/develop' 2025-03-04 19:54:08 +00:00
snipe 8791640908 Add @Fiala06 as a contributor 2025-03-04 19:53:25 +00:00
snipe 1ab0911fc8 Merge remote-tracking branch 'origin/develop' 2025-03-04 19:52:16 +00:00
snipe 1dacd25e6d Check for purchase_cost before adding the “each”
Signed-off-by: snipe <snipe@snipe.net>
2025-03-04 19:50:11 +00:00
snipe bdbaea7294 Merge remote-tracking branch 'origin/develop' 2025-03-04 19:43:28 +00:00
snipe 45317c0959 Merge pull request #16415 from snipe/nicer_error_message_on_model_not_found
Nicer model name formatting on RMB model not found
2025-03-04 19:42:45 +00:00
snipe 63e4c42445 Added strtolower
Signed-off-by: snipe <snipe@snipe.net>
2025-03-04 19:33:17 +00:00
snipe d4e227f003 Whitespace
Signed-off-by: snipe <snipe@snipe.net>
2025-03-04 19:29:09 +00:00
snipe bbabbe1b87 Nicer model name formatting on RMB model not found
Signed-off-by: snipe <snipe@snipe.net>
2025-03-04 19:21:46 +00:00
Marcus Moore 2a156776a4 Merge branch 'develop' into chore/migrate-select-helper
# Conflicts:
#	resources/views/settings/branding.blade.php
#	resources/views/settings/general.blade.php
2025-03-04 11:19:38 -08:00
Godfrey M 15a09e5187 adds audit notification for MS Teams 2025-03-04 11:15:03 -08:00
Godfrey M 5eebdcddb2 changes visited and link colors 2025-03-04 10:12:45 -08:00
snipe 5cfd1f6fb2 Merge remote-tracking branch 'origin/develop' 2025-03-04 17:16:26 +00:00
snipe 16b97c18e0 Shim route for asset maintenances redirect on RMB not found
Signed-off-by: snipe <snipe@snipe.net>
2025-03-04 17:16:16 +00:00
snipe 5eda67381f Merge remote-tracking branch 'origin/develop' 2025-03-04 17:07:13 +00:00
snipe fa72696a35 Removed redundent text
Signed-off-by: snipe <snipe@snipe.net>
2025-03-04 17:06:56 +00:00
snipe 2c8b8bfaf2 Merge remote-tracking branch 'origin/develop' 2025-03-04 17:05:55 +00:00
snipe 9467ec2571 Nicer env text
Signed-off-by: snipe <snipe@snipe.net>
2025-03-04 17:05:45 +00:00
snipe 8f3159751a Merge remote-tracking branch 'origin/develop' 2025-03-04 17:01:07 +00:00
snipe ac3f61c96a Fixed extra escape character
Signed-off-by: snipe <snipe@snipe.net>
2025-03-04 17:00:44 +00:00
snipe 4b05e55b29 Merge remote-tracking branch 'origin/develop' 2025-03-04 15:56:05 +00:00
snipe d2e0a23994 Merge pull request #16412 from snipe/#16150_fixed_regression_in_branding_page
Fixed regression from #16150
2025-03-04 15:55:24 +00:00
snipe ccea55308b Fixed regression from #16150
Signed-off-by: snipe <snipe@snipe.net>
2025-03-04 15:53:30 +00:00
snipe 3d3c13fcd0 Merge remote-tracking branch 'origin/develop' 2025-03-04 15:38:58 +00:00
snipe acaa3a28e7 Merge pull request #16410 from snipe/#16407_component_checkout_and_notes_fix
Fixed #16407 - weird layout on components for non super user
2025-03-04 15:38:20 +00:00
snipe c4722898b7 Fixed #16407 - weird layout on components for non super user
Signed-off-by: snipe <snipe@snipe.net>
2025-03-04 15:37:25 +00:00
snipe 88e1d8a8cf Merge remote-tracking branch 'origin/develop' 2025-03-04 15:28:53 +00:00
snipe e19003aea5 Merge pull request #16409 from snipe/#16386_user_dropdown_fields_not_populating_on_edit
Fixed #16386 - some fields not populating with user data on edit
2025-03-04 15:28:11 +00:00
snipe a09a9d3cd6 Added item to payload
Signed-off-by: snipe <snipe@snipe.net>
2025-03-04 15:26:25 +00:00
snipe 759e3794df Small upgrader UI fixes
Signed-off-by: snipe <snipe@snipe.net>
2025-03-04 14:57:28 +00:00
snipe c50b14763f Merge pull request #16403 from snipe/#16402_each_localization
Fixed #16402 - localize "each" string in components tab on asset view
2025-03-04 13:35:08 +00:00
snipe 369a68fe57 Fixed #16402 - Localize “each” in string
Signed-off-by: snipe <snipe@snipe.net>
2025-03-04 13:33:04 +00:00
snipe 83855d44d0 Merge pull request #16251 from Godmartinz/Audit_Checkin_warning_fix
refactors audit notification to mail, adds test, adds  alerts check to scheduler
2025-03-04 12:51:42 +00:00
snipe 6f847294ed Merge pull request #15911 from Fiala06/patch-1
Fixed duplicate entries preventing LDAP sync from continuing
2025-03-04 12:49:54 +00:00
snipe d556d1c6e7 Merge pull request #16150 from Godmartinz/add-translations-to-settings
Adds Translation strings to General and Branding Settings
2025-03-04 12:48:21 +00:00
snipe 3bb94e98f0 Merge pull request #16398 from marcusmoore/bug/sc-28535
Avoid using authenticated user's email address in email partial
2025-03-04 12:47:10 +00:00
Marcus Moore 8f5f6f3502 Avoid using authenticated user's email address in email partial 2025-03-03 16:28:08 -08:00
snipe e007db34e2 Merge remote-tracking branch 'origin/develop' 2025-03-03 22:12:26 +00:00
snipe b3792bfa00 Merge pull request #16396 from marcusmoore/chore/migrate-checkbox-helpers-pt10
Replace calls to Form::checkbox pt10
2025-03-03 20:52:54 +00:00
Marcus Moore 40f7257723 Replace call to Form::checkbox 2025-03-03 12:44:50 -08:00
snipe 8486256142 Merge pull request #16381 from marcusmoore/chore/migrate-checkbox-helpers-pt9
Replace calls to Form::checkbox pt9
2025-03-03 20:28:21 +00:00
snipe 7f36750e33 Merge branch 'develop' of https://github.com/snipe/snipe-it into develop 2025-03-03 19:54:14 +00:00
snipe de046db106 Add @azmcnutt as a contributor 2025-03-03 19:53:30 +00:00
snipe eb1d27a5bc Merge pull request #16379 from azmcnutt/feature/settings_ldap_invert_active_flag
Feature/settings ldap invert active flag
2025-03-03 19:52:57 +00:00
Godfrey M cc0b9f404a merged develop, fix conflicts 2025-02-27 15:38:31 -08:00
Marcus Moore 70332696c6 Fix test by passing in required properties 2025-02-27 15:23:17 -08:00
Marcus Moore 7a9b5d61b0 Replace another Form::checkbox 2025-02-27 13:25:32 -08:00
Marcus Moore 5876259893 Replace another Form::checkbox 2025-02-27 13:19:26 -08:00
Marcus Moore 8755c54edc Replace Form::checkbox 2025-02-27 13:13:39 -08:00
Marcus Moore 014f3b7652 Cast to boolean 2025-02-27 13:12:01 -08:00
Marcus Moore 3a2579b205 WIP: replace Form::checkbox 2025-02-27 13:08:02 -08:00
James M 149474bfe3 Update general.php
FIX: Spelling error
2025-02-27 12:42:47 -07:00
James M b2b768dede Merge branch 'snipe:develop' into develop 2025-02-27 12:25:07 -07:00
snipe f9f06d2c02 Merge remote-tracking branch 'origin/develop' 2025-02-27 19:08:45 +00:00
snipe a9ed9e2a7f Merge pull request #16378 from snipe/wrap_pdf_table_results
Wrap long text in PDF export in tables
2025-02-27 19:06:34 +00:00
snipe ce8523b00a Fixed wrapping
Signed-off-by: snipe <snipe@snipe.net>
2025-02-27 18:58:18 +00:00
snipe 7076a68d35 Wrap table results in PDF
Signed-off-by: snipe <snipe@snipe.net>
2025-02-27 18:38:10 +00:00
James M 112112d258 Feat: #14926 LDAP Active Flag - Add config option to make False = Enable 2025-02-27 10:52:12 -07:00
snipe 3928c8afe9 Merge pull request #16376 from uberbrady/improve_safety_csv_charset_detection
Add some safeties around the charset-detection and transliteration
2025-02-27 16:26:44 +00:00
snipe 234f7d00c8 Merge remote-tracking branch 'origin/develop' 2025-02-27 16:18:18 +00:00
snipe 23ce54e80c Make sure we’re saving the last_login in 2FA auths
Signed-off-by: snipe <snipe@snipe.net>
2025-02-27 16:17:59 +00:00
Brady Wetherington 646e3e8df5 Complete failed-transliteration test, clean up error, new translation string 2025-02-27 16:10:56 +00:00
snipe 30c4e9dbf7 Use formatter for created_at on unaccepted assets
Signed-off-by: snipe <snipe@snipe.net>
2025-02-27 15:48:24 +00:00
snipe 9924553da5 Merge remote-tracking branch 'origin/develop' 2025-02-27 15:45:57 +00:00
snipe 27fc30a881 Nicer button layout on unaccepted assets
Signed-off-by: snipe <snipe@snipe.net>
2025-02-27 15:43:53 +00:00
snipe 8ac7cda4ee Merge pull request #16366 from marcusmoore/chore/migrate-checkbox-helpers-pt7
Replace calls to Form::checkbox pt7
2025-02-27 15:01:31 +00:00
snipe 6f04d314a8 Merge pull request #16367 from marcusmoore/chore/migrate-checkbox-helpers-pt8
Replace calls to Form::checkbox pt8
2025-02-27 15:01:19 +00:00
snipe 1051b1d16d Merge pull request #16375 from snipe/fixes_16371_name_not_included_in_reminder_emails
Fixed #16371 - incorrect count and missing name in acceptance reminder email
2025-02-27 15:00:04 +00:00
snipe 115bb94704 Merge pull request #16156 from marcusmoore/acceptance-reminder-subject
Added "Reminder" to subject line of follow up asset checkout emails
2025-02-27 14:55:59 +00:00
snipe 25807cc62f Fixed constructor
Signed-off-by: snipe <snipe@snipe.net>
2025-02-27 14:22:48 +00:00
snipe cd1d1b2d3e Fixed count
Signed-off-by: snipe <snipe@snipe.net>
2025-02-27 14:22:40 +00:00
Brady Wetherington 6dcd3bfd30 Add some safeties around the charset-detection and transliteration 2025-02-27 13:44:31 +00:00
snipe df38d7e3ed Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	config/version.php
2025-02-27 12:22:30 +00:00
snipe b8799f8038 Bumped bash
Signed-off-by: snipe <snipe@snipe.net>
2025-02-27 12:21:28 +00:00
Marcus Moore a0dc056da8 Replace Form::checkbox on label settings page 2025-02-26 16:33:07 -08:00
Marcus Moore 27aeb518ff Replace Form::checkbox on general settings page 2025-02-26 16:18:00 -08:00
snipe dc619bb0dc Merge pull request #16365 from marcusmoore/chore/migrate-checkbox-helpers-pt6
Replace calls to Form::checkbox pt6
2025-02-26 23:54:50 +00:00
Marcus Moore 245a16c377 Replace Form::checkbox on branding settings page 2025-02-26 15:37:07 -08:00
Marcus Moore de3c1d159f Replace Form::checkbox on branding settings page 2025-02-26 15:35:17 -08:00
Marcus Moore af6d9e4a00 Replace Form::checkbox on custom report pages 2025-02-26 15:15:48 -08:00
snipe 8c8af3062e Merge pull request #16354 from snipe/dont_checkin_for_pending_on_asset_update
Allow pending as an asset status type that does not automatically check the asset in
2025-02-26 21:05:11 +00:00
snipe 44dd061619 Merge remote-tracking branch 'origin/develop' 2025-02-26 20:55:57 +00:00
snipe 2ff47edb94 Merge pull request #16361 from Godmartinz/acceptancer_reminder_unlisted_email_info
Fixed acceptance reminder command lag on users with no associated email
2025-02-26 20:33:02 +00:00
snipe d923d29bad Merge pull request #16360 from spencerrlongg/bug/sc-28537
Add Safety Around Bulk Status Update
2025-02-26 20:32:19 +00:00
Godfrey M 899119ae2d changes output to a table 2025-02-26 12:30:19 -08:00
snipe 7603a932b1 Merge remote-tracking branch 'origin/develop' 2025-02-26 20:29:42 +00:00
snipe e031de8e49 Merge pull request #16363 from snipe/added_a_few_more_no_interaction_calls
Added `--no-interaction` to additional passport commands
2025-02-26 20:19:37 +00:00
snipe a81c520d93 Follow up for #16341
Signed-off-by: snipe <snipe@snipe.net>
2025-02-26 20:15:09 +00:00
Godfrey M 8352e81228 fix unaccepted reminder test 2025-02-26 11:50:08 -08:00
Godfrey M fd0174ff32 remove unwanted changes to livewire 2025-02-26 11:31:41 -08:00
Godfrey M cc26aa02b2 fix acceptance reminder command no email list 2025-02-26 11:25:21 -08:00
snipe 616f3558dd Update example env
Signed-off-by: snipe <snipe@snipe.net>
2025-02-26 19:14:25 +00:00
spencerrlongg d6e266cec1 make super safe 2025-02-26 13:11:49 -06:00
snipe 138e7acc13 Merge remote-tracking branch 'origin/develop' 2025-02-26 12:47:54 +00:00
snipe 31516d7f24 Merge pull request #16356 from snipe/added_fields_for_model_search
Added name, model_number and notes for strict search
2025-02-26 12:46:13 +00:00
snipe e79af255aa Added name, model_number and notes for strict search
Signed-off-by: snipe <snipe@snipe.net>
2025-02-26 12:43:54 +00:00
snipe e863d3e7e5 Merge remote-tracking branch 'origin/develop' 2025-02-26 12:02:00 +00:00
snipe 5b0d7f4064 One more chonk
Signed-off-by: snipe <snipe@snipe.net>
2025-02-26 12:01:50 +00:00
snipe c8e401f5ed Merge remote-tracking branch 'origin/develop' 2025-02-26 11:59:53 +00:00
snipe 2f6af10c5d Bumped chunk for custom report
Signed-off-by: snipe <snipe@snipe.net>
2025-02-26 11:59:34 +00:00
snipe 3ba20a8e28 Merge remote-tracking branch 'origin/develop' 2025-02-26 11:39:10 +00:00
snipe afabda9235 Remove greater than 0 for alert threshold - fixes FD-47040
Signed-off-by: snipe <snipe@snipe.net>
2025-02-26 11:38:33 +00:00
snipe 1618c9ae8e Changed confirmation message
Signed-off-by: snipe <snipe@snipe.net>
2025-02-26 10:53:41 +00:00
snipe 5344ef4a1a Allow pending as an asset status that does not automatically check the asset in
Signed-off-by: snipe <snipe@snipe.net>
2025-02-26 10:46:38 +00:00
snipe ebae63752f Merge remote-tracking branch 'origin/develop' 2025-02-26 10:25:18 +00:00
snipe 16420b1e00 Audit Log Number under Days to next Audit [sc-28530]
Signed-off-by: snipe <snipe@snipe.net>
2025-02-26 10:25:07 +00:00
snipe 62f66e724e Drop errors to warnings to stop pooping on rollbar
Signed-off-by: snipe <snipe@snipe.net>
2025-02-26 09:54:13 +00:00
snipe 9b0ea51d35 Moved composer clear commands to after composer install per #16334
Signed-off-by: snipe <snipe@snipe.net>
2025-02-26 09:37:31 +00:00
snipe 8bc73901cf Merge remote-tracking branch 'origin/develop' 2025-02-26 08:25:35 +00:00
snipe 992214fc66 Check for adminuser withTrashed
Signed-off-by: snipe <snipe@snipe.net>
2025-02-26 08:25:22 +00:00
snipe b4f70d9244 Merge remote-tracking branch 'origin/develop' 2025-02-26 07:16:59 +00:00
snipe 93dab12461 Merge pull request #16342 from snipe/nicer_upgrade_script
Nicer upgrade.php UI
2025-02-26 07:16:28 +00:00
snipe 21e9f2bba3 Merge remote-tracking branch 'origin/develop' 2025-02-26 07:11:22 +00:00
snipe ea0f105180 Merge pull request #16347 from marcusmoore/chore/migrate-checkbox-helpers-pt4
Replace calls to Form::checkbox pt4
2025-02-26 07:05:38 +00:00
snipe 5b6da0c1e8 Merge pull request #16348 from marcusmoore/chore/migrate-checkbox-helpers-pt5
Replace calls to Form::checkbox pt5
2025-02-26 07:05:22 +00:00
snipe 4d7655bbe1 Merge pull request #16346 from marcusmoore/chore/migrate-checkbox-helpers-pt3
Replace calls to Form::checkbox pt3
2025-02-26 07:04:27 +00:00
snipe 5e3855ee5b Merge pull request #16345 from marcusmoore/fixes/update-custom-fields
Fixed renaming custom fields
2025-02-26 07:03:40 +00:00
Marcus Moore e01226a174 Replace Form::checkbox on saml settings page 2025-02-25 17:31:05 -08:00
Marcus Moore f9ccf32af4 Replace Form::checkbox on ldap settings page 2025-02-25 17:22:44 -08:00
Marcus Moore 2c5170a218 Replace Form::checkbox on security settings page 2025-02-25 17:09:25 -08:00
Marcus Moore 15f842e2dc Replace Form::checkbox on bulk user edit page 2025-02-25 16:00:46 -08:00
Marcus Moore 46b31dfe14 Replace Form::checkbox on user create and edit page 2025-02-25 14:32:39 -08:00
Marcus Moore d88c79366c Replace Form::checkbox on google settings page 2025-02-25 14:27:07 -08:00
Marcus Moore de330a47cd Replace Form::checkbox on asset tag settings page 2025-02-25 14:25:02 -08:00
Marcus Moore ecd7dc2094 Replace Form::checkbox on alert settings page 2025-02-25 14:23:26 -08:00
Marcus Moore 510946e0eb Replace Form::checkbox in logo upload partial 2025-02-25 14:20:43 -08:00
Marcus Moore 37e4a13979 Replace Form::checkbox in image upload partial 2025-02-25 14:15:12 -08:00
Marcus Moore c73d64cdbc Remove manual doctrine mapping for enums 2025-02-25 13:37:23 -08:00
snipe 4a0410d969 Uncomment git stash
Signed-off-by: snipe <snipe@snipe.net>
2025-02-25 16:55:39 +00:00
snipe 668b9f8fb9 Nicer upgrade.php UI
Signed-off-by: snipe <snipe@snipe.net>
2025-02-25 16:51:32 +00:00
snipe 037d2d9e84 Merge pull request #16341 from uberbrady/fix_passport_install_no_interaction
Fixes #16331 - Don't make passport:install command require user input
2025-02-25 16:43:49 +00:00
Brady Wetherington bce2007b97 Fixes #16331 - Don't make passport:install command require user input 2025-02-25 16:38:40 +00:00
snipe 881f4e3d6a Merge remote-tracking branch 'origin/develop' 2025-02-25 14:43:57 +00:00
Brady Wetherington 09a5e5b1bd Whoops! Need minimum 8.2, not 8.1 (probably mis-merge?) 2025-02-25 14:40:45 +00:00
snipe 7b4f4b6b7f Merge pull request #16337 from joakimbergros/develop
Fixed #16173: `useraccountcontrol` was not included in the ldap query attributes
2025-02-25 13:49:38 +00:00
Joakim Bergros 5c66334017 Added a check to see if the user has specified that is an ActiveDirectory server in the configuration before adding the useraccountcontrol attribute to the ldap query. 2025-02-25 14:22:22 +01:00
Joakim Bergros ae82051b73 Fixed #16173: useraccountcontrol was not included in the ldap query attributes.
`$results` did not include the `useraccountcontrol` and thus rendered the fallback logic void when `active_flag` was blank.

 Added a condition to check if `active_flag` is blank and only then add `useraccountcontrol` to the ldap query since it is then a requirement in accordance with "we respect the userAccountControl attribute" text in the `admin/ldap` route.

[`elseif' will become true when `active_flag` is blank](https://github.com/snipe/snipe-it/blob/b141945add94eb0839436278a5b2dc2e0e116306/app/Console/Commands/LdapSync.php#L364)
2025-02-25 13:55:53 +01:00
snipe b141945add Updated branch
Signed-off-by: snipe <snipe@snipe.net>
2025-02-25 12:18:52 +00:00
snipe c3a2e81afd Updated version
Signed-off-by: snipe <snipe@snipe.net>
2025-02-25 12:18:22 +00:00
snipe 18c7cbbbbb Merge pull request #16336 from snipe/change_order_in_upgrade_script
Fixed #16334 - Changed composer order in upgrade script
2025-02-25 12:09:15 +00:00
snipe 3718f08c72 Changed composer order in upgrade script
Signed-off-by: snipe <snipe@snipe.net>
2025-02-25 12:05:00 +00:00
snipe b7821a69b6 Added link to the google apps script repo
Signed-off-by: snipe <snipe@snipe.net>
2025-02-25 11:07:04 +00:00
snipe 8049f21068 Updated laravel version in readme
Signed-off-by: snipe <snipe@snipe.net>
2025-02-25 11:02:00 +00:00
snipe 8140110bf9 Chnage dev docker env to en-US from en
Signed-off-by: snipe <snipe@snipe.net>
2025-02-25 10:57:38 +00:00
snipe a4587f6322 Merge pull request #16335 from snipe/added_label_test
Added label test
2025-02-25 10:40:46 +00:00
snipe 163e19f1e9 Added label test
Signed-off-by: snipe <snipe@snipe.net>
2025-02-25 10:37:06 +00:00
snipe 8a40c3ecb4 Merge pull request #16325 from spencerrlongg/bug/sc-28520
Remove remaining hardware references in favor of new RMB
2025-02-25 10:09:35 +00:00
spencerrlongg d949a9689f fix all 2025-02-24 22:35:47 -06:00
snipe 27a7c6fd10 Merge pull request #16324 from marcusmoore/chore/migrate-checkbox-helpers-p2
Replace calls to Form::checkbox pt2
2025-02-25 02:33:02 +00:00
Marcus Moore 4d55a67628 Merge branch 'develop' into chore/migrate-checkbox-helpers-p2 2025-02-24 16:37:59 -08:00
snipe 9d453226bd Merge pull request #16321 from spencerrlongg/bug/sc-28515
Changed Parameter Name for RMB
2025-02-25 00:17:37 +00:00
snipe cd26694767 Merge pull request #16322 from marcusmoore/fixes/fix-test-edit-route
Fixed edit routes in tests
2025-02-25 00:17:10 +00:00
Marcus Moore a26cc2ced1 Use .edit routes instead of .update 2025-02-24 15:55:05 -08:00
spencerrlongg 1fd81d17a3 route model binding change 2025-02-24 17:53:41 -06:00
snipe 134045f1ec Merge branch 'develop' of https://github.com/snipe/snipe-it into develop 2025-02-24 23:46:55 +00:00
snipe b6b6a3eec7 Remove req for 0 min
Signed-off-by: snipe <snipe@snipe.net>
2025-02-24 23:46:50 +00:00
snipe b62714d702 Merge pull request #16062 from snipe/remove_mcrypt
Removed references to mcrypt
2025-02-24 23:22:32 +00:00
Brady Wetherington 271bcc66bf Remove lib-mcrypt as a dependency 2025-02-24 23:19:08 +00:00
snipe ced560daa9 Add @jostrander as a contributor 2025-02-24 23:16:27 +00:00
snipe b395c9130a Merge remote-tracking branch 'origin/master' into develop 2025-02-24 23:06:46 +00:00
snipe ed46a757fa Merge pull request #16320 from jostrander/fix/location-edit
Fixed: fix 500 on edit locations page by referencing current location
2025-02-24 23:03:01 +00:00
Jesse Ostrander 6a8a41b389 fix: reference to item location on location edit method 2025-02-24 17:34:18 -05:00
snipe 4800f4c853 Merge branch 'develop' into remove_mcrypt 2025-02-24 22:12:56 +00:00
snipe c79ff49c85 Add @addex12 as a contributor 2025-02-24 20:30:04 +00:00
Marcus Moore e88bba51bb Merge branch 'develop' into acceptance-reminder-subject 2025-02-24 11:55:50 -08:00
Marcus Moore f97211f6cd Remove unused language string 2025-02-24 11:45:58 -08:00
Marcus Moore 027c2b3627 Change subject to "You have Unaccepted Assets." 2025-02-24 11:45:23 -08:00
snipe ee85a392e7 Merge pull request #16316 from snipe/v8_final_merge
V8 final merge
2025-02-24 19:18:12 +00:00
Brady Wetherington 6c2d367124 Tweak version number and hashes 2025-02-24 18:38:53 +00:00
Brady Wetherington 982cfeca32 Merge branch 'develop' 2025-02-24 18:37:41 +00:00
snipe 5fa4f85c20 Merge pull request #16106 from marcusmoore/bug/sc-27960
Fixed asset show page erroring when asset not associated with model
2025-02-24 17:16:12 +00:00
snipe 43b8c0bf7b Merge pull request #16313 from snipe/localizations/2024-02-24
Updated strings, added Oromo
2025-02-24 14:51:45 +00:00
snipe 54b664d679 Updated strings, added Oromo
Signed-off-by: snipe <snipe@snipe.net>
2025-02-24 14:50:23 +00:00
snipe bf2355a297 Fixed showfile path
Signed-off-by: snipe <snipe@snipe.net>
2025-02-24 14:34:10 +00:00
snipe 2bf4ec0ae8 A few more small tweaks
Signed-off-by: snipe <snipe@snipe.net>
2025-02-24 14:24:15 +00:00
Brady Wetherington 9555825a67 Update minimum PHP version 2025-02-24 14:03:57 +00:00
snipe 0bea07e2f9 Merge pull request #16312 from snipe/small_cleanups
Small cleanups before release
2025-02-24 13:53:28 +00:00
snipe 22f7a9ddd4 Fixed stray tag
Signed-off-by: snipe <snipe@snipe.net>
2025-02-24 13:46:33 +00:00
snipe 77b417bcea Passed user to showfile
Signed-off-by: snipe <snipe@snipe.net>
2025-02-24 13:43:39 +00:00
snipe 76e3c00d2d Removed footer on tables that didn’t need it
Signed-off-by: snipe <snipe@snipe.net>
2025-02-24 13:41:49 +00:00
snipe 77add8abbc Added strings
Signed-off-by: snipe <snipe@snipe.net>
2025-02-24 13:39:07 +00:00
snipe b53957268a Added warning if deleted
Signed-off-by: snipe <snipe@snipe.net>
2025-02-24 13:38:55 +00:00
snipe ba49fc554d Moved warning to be consistent with other FCOs
Signed-off-by: snipe <snipe@snipe.net>
2025-02-24 13:38:47 +00:00
snipe e60462b751 Added/updated tests
Signed-off-by: snipe <snipe@snipe.net>
2025-02-24 13:38:28 +00:00
snipe a5009aa7df Added withTrashed() to handle soft deletes with RMB
Signed-off-by: snipe <snipe@snipe.net>
2025-02-24 13:38:06 +00:00
snipe e589adbe80 Updated model route
Signed-off-by: snipe <snipe@snipe.net>
2025-02-24 13:31:09 +00:00
snipe 0501c5f53c Bumped version
Signed-off-by: snipe <snipe@snipe.net>
2025-02-24 11:15:03 +00:00
snipe 6a9247ba8a Cast token policies to int
Signed-off-by: snipe <snipe@snipe.net>
2025-02-24 11:14:49 +00:00
snipe fcf84bf63f Fixed test namespace
Signed-off-by: snipe <snipe@snipe.net>
2025-02-24 11:09:54 +00:00
snipe 5ece721b00 Check for FMCS
Signed-off-by: snipe <snipe@snipe.net>
2025-02-23 15:02:45 +00:00
snipe 0e2251c810 Scope selectlist by company
Signed-off-by: snipe <snipe@snipe.net>
2025-02-23 14:59:05 +00:00
snipe cebb9d034c Merge pull request #16305 from snipe/bug/sc-28425
Fixed #16262 - Check for quantity before allowing component deletion
2025-02-23 14:17:36 +00:00
snipe dd2b570db5 Added tighter constraints on deleting components
Signed-off-by: snipe <snipe@snipe.net>
2025-02-23 14:11:39 +00:00
snipe 2bee4532ec Added qty error string
Signed-off-by: snipe <snipe@snipe.net>
2025-02-23 13:21:58 +00:00
snipe 96248e0023 Removed soft delete from test
Signed-off-by: snipe <snipe@snipe.net>
2025-02-23 13:21:49 +00:00
snipe 157801242d Added API test, renamed test to match filter
Signed-off-by: snipe <snipe@snipe.net>
2025-02-23 13:21:36 +00:00
snipe 7b151cf692 Added test
Signed-off-by: snipe <snipe@snipe.net>
2025-02-23 13:17:20 +00:00
snipe 50c88df4cc Merge pull request #16304 from snipe/security/snyk-updates-less-papaparse
Updated less and papaparse
2025-02-23 12:51:38 +00:00
snipe d87a6868cc Updated less and papaparse
Signed-off-by: snipe <snipe@snipe.net>
2025-02-23 12:50:09 +00:00
snipe 201f487853 Merge pull request #16303 from snipe/chore/sc-28493
Added tooltip for currency in table
2025-02-23 12:21:04 +00:00
snipe 069860d65f Added tooltip for currency in table
Signed-off-by: snipe <snipe@snipe.net>
2025-02-23 12:19:18 +00:00
snipe afa7391080 Merge pull request #16299 from snipe/added_checkin_checkout_indicator_for_custom_fields
Added checkin/checkout indicators on custom field table
2025-02-22 19:34:04 +00:00
snipe 07cf203018 Add checkin/checkout indicators on custom field table
Signed-off-by: snipe <snipe@snipe.net>
2025-02-22 19:32:34 +00:00
snipe 5f561452d2 Merge pull request #16298 from uberbrady/tooltips_custom_fields
Add tooltips to custom fields display, especially for icons
2025-02-22 19:17:28 +00:00
Brady Wetherington cbe04e8514 Add tooltips to custom fields display, especially for icons 2025-02-22 19:13:09 +00:00
snipe 9b44dfd9b6 Merge pull request #16297 from snipe/add_field_to_checkin_checkout
Fixed #6188 - Added custom fields to checkin/checkout screens
2025-02-22 19:09:51 +00:00
snipe 9abf3029ef Compact the method just a little
Signed-off-by: snipe <snipe@snipe.net>
2025-02-22 19:02:41 +00:00
snipe 19fb45f488 Refactor into method
Signed-off-by: snipe <snipe@snipe.net>
2025-02-22 18:57:18 +00:00
snipe e983ee4d0f Tweaked icon position
Signed-off-by: snipe <snipe@snipe.net>
2025-02-22 18:47:12 +00:00
snipe 40acd48eff Tweaked some style
Signed-off-by: snipe <snipe@snipe.net>
2025-02-22 18:19:09 +00:00
snipe f5eedb8d23 Added RMB and include $item so the asset fields are populated
Signed-off-by: snipe <snipe@snipe.net>
2025-02-22 18:13:12 +00:00
snipe 172df0d220 Save new custom field values
Signed-off-by: snipe <snipe@snipe.net>
2025-02-22 18:12:46 +00:00
snipe c611cb5612 Updated loggable to check for custom fields that were passed for meta
Signed-off-by: snipe <snipe@snipe.net>
2025-02-22 18:12:30 +00:00
snipe da77ddd447 Added fields to custom field edit form
Signed-off-by: snipe <snipe@snipe.net>
2025-02-22 18:11:56 +00:00
snipe c727633e6b Added language strings
Signed-off-by: snipe <snipe@snipe.net>
2025-02-22 18:11:42 +00:00
snipe 10834cf638 Added migration
Signed-off-by: snipe <snipe@snipe.net>
2025-02-22 18:11:35 +00:00
snipe 42eda089e2 Added include for custom fields partial
Signed-off-by: snipe <snipe@snipe.net>
2025-02-22 18:11:27 +00:00
snipe 2434c82a75 Added if/else for custom fields model partial
Signed-off-by: snipe <snipe@snipe.net>
2025-02-22 18:11:04 +00:00
snipe 1b9d046f5f Fixed test for RMB
Signed-off-by: snipe <snipe@snipe.net>
2025-02-22 18:08:25 +00:00
snipe a0a0727b5c Corrected route breadcrumbs
Signed-off-by: snipe <snipe@snipe.net>
2025-02-22 18:08:13 +00:00
snipe 917b9f0293 Merge pull request #16296 from snipe/added_select_unselect_tooltip_to_presenters
Added select/unselect tooltip to presenters, added translation
2025-02-22 14:32:04 +00:00
snipe bb70250007 Added select/unselect tooltip to presenters, added translation
Signed-off-by: snipe <snipe@snipe.net>
2025-02-22 14:30:49 +00:00
snipe 346aeeda71 Merge pull request #16287 from uberbrady/better_hover_titles
Fixes: [sc-28423] Better tooltips on lists, Bootstrap style
2025-02-22 14:24:02 +00:00
snipe 84a29378cd Merge pull request #16295 from snipe/#16282_adds_accessories_tab_to_assets
Fixed #16282 - adds accessories tab to assets
2025-02-22 14:21:32 +00:00
snipe 0cd0abe8bb Fixed #16282 - adds accessories tab to assets
Signed-off-by: snipe <snipe@snipe.net>
2025-02-22 14:20:21 +00:00
snipe 7db11dc12b Merge pull request #16277 from Godmartinz/bulk_delete_asset_bug
Fixes deletion of assigned assets through bulk delete
2025-02-22 12:59:37 +00:00
snipe e0221301ff Increased text limit on notes
Signed-off-by: snipe <snipe@snipe.net>
2025-02-22 12:56:25 +00:00
snipe b0fa059a28 Merge pull request #16285 from marcusmoore/bug/sc-28148
Re-added ability to add notes to assets
2025-02-22 12:55:18 +00:00
snipe 3fb00a9fa9 Merge pull request #16293 from uberbrady/fix_default_docker_image
Updated default Dockerfile to handle newer PHP versions
2025-02-22 12:52:37 +00:00
snipe 3ef8b047ba Merge pull request #16294 from snipe/bug/sc-28474
Don’t delete avatar file on soft-delete
2025-02-22 12:52:18 +00:00
snipe 7a77de6ffe Don’t delete avatar file on soft-delete
Signed-off-by: snipe <snipe@snipe.net>
2025-02-22 12:49:04 +00:00
Brady Wetherington 5e85891b10 Updated default Dockerfile to handle newer PHP versions 2025-02-22 12:43:30 +00:00
snipe 934da0f630 Merge pull request #16291 from uberbrady/fix_tests_and_migrations_v8
Fix tests and fix migrations to always explicitly include nullable()
2025-02-22 12:21:56 +00:00
snipe cca46ea9e0 Merge pull request #16292 from snipe/add_email_list_assigned_to_bulk
Added ability to send user inventory via bulk UI
2025-02-22 12:20:01 +00:00
snipe bde034593b Updateed string
Signed-off-by: snipe <snipe@snipe.net>
2025-02-22 12:17:04 +00:00
Brady Wetherington 7e1295bac7 Fix tests and fix migrations to always explicitly include nullable() 2025-02-22 12:15:12 +00:00
snipe d1cc0fcfac Added ability to send user inventory via bulk UI
Signed-off-by: snipe <snipe@snipe.net>
2025-02-22 12:07:54 +00:00
snipe 056fbefb16 Merge pull request #16290 from snipe/update_php_versions_for_tests
Removed php 8.1, added 8.4
2025-02-22 11:11:53 +00:00
snipe 83a848980f Removed php 8.1, added 8.4
Signed-off-by: snipe <snipe@snipe.net>
2025-02-22 11:11:01 +00:00
snipe 7b930357e4 Cast years to int
Signed-off-by: snipe <snipe@snipe.net>
2025-02-22 10:51:27 +00:00
snipe bdab052f40 Fixed test name
Signed-off-by: snipe <snipe@snipe.net>
2025-02-22 10:51:16 +00:00
Brady Wetherington 2d1e9b237f Better tooltips on list views, in Bootstrap style 2025-02-21 13:23:19 +00:00
Brady Wetherington 1cff49116e Bump version numbers and upgrade requirements 2025-02-21 11:49:25 +00:00
Brady Wetherington 38c5f23a52 Merge branch 'v8' into develop 2025-02-21 11:15:44 +00:00
Marcus Moore c6bee0c47a Fix test 2025-02-20 13:24:01 -08:00
Marcus Moore ae7d7f7d22 Merge branch 'develop' into bug/sc-28148
# Conflicts:
#	routes/web.php
2025-02-20 13:23:55 -08:00
Marcus Moore 96ab828cec Fix indent 2025-02-20 13:05:42 -08:00
Marcus Moore 43f679a554 Revert some changes from #15525 2025-02-20 12:59:16 -08:00
Marcus Moore f1bf9fcf5c Implement test 2025-02-20 12:51:08 -08:00
Marcus Moore 992b4c7d86 Remove old comment 2025-02-20 12:50:03 -08:00
Marcus Moore 39bb2c2adb Implement tests 2025-02-20 12:49:58 -08:00
Marcus Moore 41129829e6 Add frontend required validation 2025-02-20 12:43:51 -08:00
Marcus Moore 44503fc423 Use translation 2025-02-20 12:41:56 -08:00
Marcus Moore 0190ccea27 Finish implementing test 2025-02-20 12:40:05 -08:00
snipe 5b63eb5a15 Merge pull request #16272 from snipe/experiments/breadcrumbs
Experimental WIP - added breadcrumbs, route model binding for resource routes
2025-02-20 19:21:58 +00:00
snipe 54cc427ef5 Updated tests for new RMB behavior
Signed-off-by: snipe <snipe@snipe.net>
2025-02-20 18:28:46 +00:00
snipe e0beed0fa3 Reapplied accessory gate
Signed-off-by: snipe <snipe@snipe.net>
2025-02-20 18:28:01 +00:00
snipe d4b24e5e57 Exception handler exceptions - exception inception!
Signed-off-by: snipe <snipe@snipe.net>
2025-02-20 18:27:45 +00:00
snipe 671b64bc6b Fixed RMB for kits and fields
Signed-off-by: snipe <snipe@snipe.net>
2025-02-20 15:01:17 +00:00
snipe 75db0d9e66 Fixed parameter for audit
Signed-off-by: snipe <snipe@snipe.net>
2025-02-20 15:00:57 +00:00
snipe b891992351 Nice language for audit/checkin screens accounting for null
Signed-off-by: snipe <snipe@snipe.net>
2025-02-20 15:00:35 +00:00
snipe ddb72bf4d0 Added breadcrumbs to licenses routes
Signed-off-by: snipe <snipe@snipe.net>
2025-02-20 15:00:08 +00:00
snipe 6f071722a2 Fixed kit crimbs
Signed-off-by: snipe <snipe@snipe.net>
2025-02-20 14:59:50 +00:00
snipe be9bd93588 More crombs, removed scan route that we don’t use
Signed-off-by: snipe <snipe@snipe.net>
2025-02-20 14:59:10 +00:00
snipe 44a7bdbfb5 Moved SAML gui settings routes to web.php
Signed-off-by: snipe <snipe@snipe.net>
2025-02-20 14:58:17 +00:00
snipe 0341335d14 Additional crombs
Signed-off-by: snipe <snipe@snipe.net>
2025-02-20 14:57:48 +00:00
snipe 76f038d142 RMB for custom fields
Signed-off-by: snipe <snipe@snipe.net>
2025-02-20 14:57:18 +00:00
snipe 3150ad50c9 RMB for audits
Signed-off-by: snipe <snipe@snipe.net>
2025-02-20 14:57:07 +00:00
snipe 80394ef788 Revert delete because route model binding + resources routes + soft deletes = sux0r
Signed-off-by: snipe <snipe@snipe.net>
2025-02-20 12:29:37 +00:00
snipe 8a70f09dd3 Temp “fix” RMB for soft-deleted users
Signed-off-by: snipe <snipe@snipe.net>
2025-02-20 12:19:31 +00:00
Godfrey M a275391557 adds test for deleting assigned asset 2025-02-19 15:59:57 -08:00
Godfrey M eaacf29d57 fix tests 2025-02-19 15:11:16 -08:00
snipe 441fdaa54a Merge pull request #16278 from marcusmoore/bug/sc-27234
Added better error handling around rendering barcodes
2025-02-19 20:54:24 +00:00
Marcus Moore 759c8c8f5c Catch TypeError in addition to Exceptions when rendering barcodes 2025-02-19 12:36:50 -08:00
snipe 6242296930 Remove the “View” part of the breadcrumb
Signed-off-by: snipe <snipe@snipe.net>
2025-02-19 19:30:13 +00:00
snipe d330ef9919 Added crumbs and RMB for custom fields
Signed-off-by: snipe <snipe@snipe.net>
2025-02-19 18:23:16 +00:00
snipe 0708af7d07 Made the help ring slightly less goofy looking
Signed-off-by: snipe <snipe@snipe.net>
2025-02-19 18:22:50 +00:00
Godfrey M a534b488b2 prevents deletion of assigned assets in bulk deletion 2025-02-19 10:09:02 -08:00
snipe 3171c1b1c9 Added breadcrumbs for bulkaudit, requested, and import history
Signed-off-by: snipe <snipe@snipe.net>
2025-02-19 17:40:47 +00:00
snipe 2f2b879d98 Language refinement
Signed-off-by: snipe <snipe@snipe.net>
2025-02-19 17:40:12 +00:00
snipe 039f483ec8 Check for notes and cost before displaying them
Signed-off-by: snipe <snipe@snipe.net>
2025-02-19 16:57:24 +00:00
snipe 7f665e0005 De-uglifying the maintenances detail page
Signed-off-by: snipe <snipe@snipe.net>
2025-02-19 16:34:48 +00:00
snipe 292819afa5 Added maintenances crumbs
Signed-off-by: snipe <snipe@snipe.net>
2025-02-19 14:29:06 +00:00
snipe 7a94b09017 Use MLB for kit group
Signed-off-by: snipe <snipe@snipe.net>
2025-02-19 14:07:14 +00:00
snipe 6b46d12d67 Added breadcrumbs on kits (sort of)
Signed-off-by: snipe <snipe@snipe.net>
2025-02-19 14:05:29 +00:00
snipe e264907157 Added breadcrumbs on more web routes
Signed-off-by: snipe <snipe@snipe.net>
2025-02-19 14:05:12 +00:00
snipe 32b89e937c Fixed routes
Signed-off-by: snipe <snipe@snipe.net>
2025-02-19 14:04:56 +00:00
snipe 0e1dc8745c Wider custom report
Signed-off-by: snipe <snipe@snipe.net>
2025-02-19 14:04:45 +00:00
snipe 129d44cc70 Made icon possible for dashboard/home
Signed-off-by: snipe <snipe@snipe.net>
2025-02-19 14:04:34 +00:00
snipe 11b746d801 UI tweak
Signed-off-by: snipe <snipe@snipe.net>
2025-02-19 14:04:19 +00:00
snipe 545445d584 Updated strings
Signed-off-by: snipe <snipe@snipe.net>
2025-02-19 14:04:07 +00:00
snipe 4d72fd8667 Added additional resource crumbs
Signed-off-by: snipe <snipe@snipe.net>
2025-02-19 14:03:53 +00:00
snipe fca62a14f9 Fixed asset presenter to link to the company directly
Signed-off-by: snipe <snipe@snipe.net>
2025-02-19 14:03:29 +00:00
snipe c8f2d9806a Use route model binding on kits
Signed-off-by: snipe <snipe@snipe.net>
2025-02-19 14:03:15 +00:00
snipe 1ee5f28fca Added angle-right and house icon
Signed-off-by: snipe <snipe@snipe.net>
2025-02-19 14:02:59 +00:00
snipe 24a17b09a5 Fixed a few more tests and strings
Signed-off-by: snipe <snipe@snipe.net>
2025-02-19 09:03:41 +00:00
snipe a617c0545e WIP license checkin
Signed-off-by: snipe <snipe@snipe.net>
2025-02-19 08:39:25 +00:00
snipe eb7e24eeb0 Asset checkout with route model binding
Signed-off-by: snipe <snipe@snipe.net>
2025-02-19 08:39:16 +00:00
snipe 22c58678c4 License checkout controller with route model binding
Signed-off-by: snipe <snipe@snipe.net>
2025-02-19 08:38:55 +00:00
snipe 4beaf6b3ec Added item
Signed-off-by: snipe <snipe@snipe.net>
2025-02-19 08:38:40 +00:00
snipe 4c1856b91f Fixed wonky quote in HTML
Signed-off-by: snipe <snipe@snipe.net>
2025-02-19 08:37:58 +00:00
snipe 9d299340da Checkout license modifications (this doesn’t work yet
Signed-off-by: snipe <snipe@snipe.net>
2025-02-19 08:37:39 +00:00
snipe 457228d033 Route model binding on more asset methods
Signed-off-by: snipe <snipe@snipe.net>
2025-02-19 08:37:06 +00:00
snipe 63f4e3cc89 More breadcrumbs
Signed-off-by: snipe <snipe@snipe.net>
2025-02-19 08:36:52 +00:00
snipe cd7135ea77 More test fixes
Signed-off-by: snipe <snipe@snipe.net>
2025-02-19 06:19:50 +00:00
snipe 347eb2bdee Fixed route parameters and tests to match
Signed-off-by: snipe <snipe@snipe.net>
2025-02-19 05:03:56 +00:00
snipe ecc0e76e7b Fixed route parameters for helper
Signed-off-by: snipe <snipe@snipe.net>
2025-02-19 05:03:39 +00:00
snipe 35a89de6dd Fixed handler for reports
Signed-off-by: snipe <snipe@snipe.net>
2025-02-19 05:03:26 +00:00
snipe 82d8e1b0a9 Added item back into edit
Signed-off-by: snipe <snipe@snipe.net>
2025-02-19 04:18:57 +00:00
snipe 5a7ffa5664 Sure, whatever I guess.
Signed-off-by: snipe <snipe@snipe.net>
2025-02-19 04:18:40 +00:00
snipe 55abd242f2 Don’t know why I need to compact this?
Signed-off-by: snipe <snipe@snipe.net>
2025-02-19 04:07:09 +00:00
snipe 217d65f64c More changes to the error message formatting
Signed-off-by: snipe <snipe@snipe.net>
2025-02-19 03:47:51 +00:00
snipe fa20eb4965 Add exception for hardware vs assets :(
Signed-off-by: snipe <snipe@snipe.net>
2025-02-19 03:41:01 +00:00
snipe 560311b883 Added ->with(‘item’) back in
Signed-off-by: snipe <snipe@snipe.net>
2025-02-19 03:37:34 +00:00
snipe 3954ff20b4 More tweaks to the controllers, more breadcrumbs
Signed-off-by: snipe <snipe@snipe.net>
2025-02-19 03:29:31 +00:00
snipe 989082d719 Handle the not found errors with route model binding
Signed-off-by: snipe <snipe@snipe.net>
2025-02-19 03:26:44 +00:00
snipe 644527c5a6 More resources to breadcrumb provider
Signed-off-by: snipe <snipe@snipe.net>
2025-02-19 02:49:21 +00:00
snipe f7d213052a Route model binding for resource groups
Signed-off-by: snipe <snipe@snipe.net>
2025-02-19 02:49:05 +00:00
snipe 972bd1ef83 Tinkering with routes for breadcrumbs
Signed-off-by: snipe <snipe@snipe.net>
2025-02-19 00:37:09 +00:00
Marcus Moore cf0ce1c5ea Start to implement tests 2025-02-18 16:24:52 -08:00
Marcus Moore 3d69721af0 Scaffold tests 2025-02-18 16:16:00 -08:00
Marcus Moore 1995e1399e Start recording ip, user agent, and source 2025-02-18 16:04:53 -08:00
Marcus Moore 79d1147f20 Add validation 2025-02-18 15:46:52 -08:00
Marcus Moore 53c084c6c0 WIP: begin to store notes 2025-02-18 15:43:58 -08:00
Marcus Moore c165e6f400 Formatting 2025-02-18 15:20:22 -08:00
Marcus Moore 25215fd3c9 WIP: begin migrating notes to ui controller 2025-02-18 15:20:06 -08:00
Brady Wetherington a8231bc338 Merge branch 'develop' into v8 2025-02-18 22:40:27 +00:00
snipe 4d25e8f7f0 Merge pull request #16271 from snipe/localization/2024-02-18
Updated language strings
2025-02-18 22:26:02 +00:00
snipe 8368576dc9 Updated language strings
Signed-off-by: snipe <snipe@snipe.net>
2025-02-18 22:18:39 +00:00
snipe 071b4d1e67 Merge pull request #16245 from marcusmoore/chore/migrate-form-open-pt5
Replace Form::open and Form::close pt5
2025-02-18 21:23:15 +00:00
snipe 1fe170e6a1 Merge pull request #16040 from Godmartinz/template_validate_error
Adds a null check to label templates, adds return types for validation methods
2025-02-18 21:00:10 +00:00
snipe 612a708c8d Merge pull request #16246 from marcusmoore/chore/migrate-form-open-pt6
Replace Form::open and Form::close pt6
2025-02-18 20:43:38 +00:00
snipe 580a4c476e Merge pull request #16244 from marcusmoore/chore/migrate-form-open-pt4
Replace Form::open and Form::close pt4
2025-02-18 20:42:44 +00:00
snipe c9de9ebbab Merge pull request #16243 from marcusmoore/chore/migrate-form-open-pt3
Replace Form::open and Form::close pt3
2025-02-18 20:41:56 +00:00
snipe 3d0770973a Merge pull request #16242 from marcusmoore/chore/migrate-form-open-pt2
Replace Form::open and Form::close pt2
2025-02-18 20:41:16 +00:00
snipe e814cd5a9e Merge pull request #16235 from marcusmoore/chore/migrate-form-open-pt1
Replace Form::open and Form::close pt1
2025-02-18 20:23:47 +00:00
Marcus Moore e5f426ec64 Remove unneeded multipart/form-data 2025-02-18 12:19:32 -08:00
snipe a1b0a30351 Merge pull request #16225 from marcusmoore/chore/remove-cols-from-textarea
Removed cols property from textarea component
2025-02-18 19:56:40 +00:00
snipe c0f0f43dd7 Merge pull request #16188 from Godmartinz/translations-for-labels-n-ldap
Adds translations to LDAP  and Label settings pages
2025-02-18 19:56:14 +00:00
snipe 57c07a3687 Merge pull request #16270 from snipe/feature/sc-28365_ldap_text_update
Updated LDAP sync text
2025-02-18 19:28:18 +00:00
snipe 6de08f46fd Few more tweaks
Signed-off-by: snipe <snipe@snipe.net>
2025-02-18 19:26:36 +00:00
snipe 3554270366 Updated LDAP sync text
Signed-off-by: snipe <snipe@snipe.net>
2025-02-18 19:25:40 +00:00
snipe 029450bcbf Merge pull request #16269 from snipe/bug/sc-28437_fix
Scope API results by location ID
2025-02-18 19:05:29 +00:00
snipe 329fbf6a7c Scope results by location ID
Signed-off-by: snipe <snipe@snipe.net>
2025-02-18 19:01:16 +00:00
snipe b7d0fccabc Merge pull request #16268 from snipe/fixed_16259_archived_assets_in_company_scope
Fixed #16259 - mismatch in asset count if archived assets are hidden
2025-02-18 16:35:01 +00:00
snipe 48ab94c15b Fixed query duplication for AssetsForShow scope
Signed-off-by: snipe <snipe@snipe.net>
2025-02-18 16:18:12 +00:00
snipe ac907add83 Merge pull request #16082 from marcusmoore/chore/sc-28173
Replace calls to Form::text
2025-02-18 14:58:40 +00:00
snipe 3d47a8ba50 Fixed name format tests (#16236)
Signed-off-by: snipe <snipe@snipe.net>
2025-02-18 14:52:52 +00:00
snipe 452185be45 Merge pull request #16199 from akemidx/feature/sc-28271
Adding <Last Name.First Initial> as an option for usernames
2025-02-18 14:42:54 +00:00
Brady Wetherington 14feed61d8 Merge branch 'develop' into v8 2025-02-17 16:18:02 +00:00
snipe 02a8e17704 Merge pull request #16260 from snipe/fix_for_qr_on_old_label_engine
Fix for QR code on old label engine
2025-02-17 10:45:51 +00:00
snipe 7553ec3e27 Fixed equals
Signed-off-by: snipe <snipe@snipe.net>
2025-02-17 10:44:58 +00:00
Godfrey M 4c43a06eee add overdue asset to test 2025-02-13 11:19:49 -08:00
Godfrey M 25c8449e86 remove unused 2025-02-13 11:14:18 -08:00
Godfrey M 13e1f4a127 adds mailable 2025-02-13 11:09:39 -08:00
Godfrey M ed96fd766c refactors audit notification to mail, adds test, ads check to scheduler 2025-02-13 11:08:53 -08:00
snipe c8f82cbc2b Merge pull request #16250 from uberbrady/improve_tls_client_side_file_caching
Instead of saving TLS cache-files on save, cache them when used
2025-02-13 15:46:22 +00:00
Brady Wetherington b7bd56daf7 Instead of saving TLS cache-files on save, cache them when used 2025-02-13 15:09:28 +00:00
snipe 393118f083 Merge pull request #16249 from snipe/flatten_api_return
Return flat JSON instead of transformed data
2025-02-13 14:28:41 +00:00
snipe d3210c6d40 Return flat JSON instead of transformed data
Signed-off-by: snipe <snipe@snipe.net>
2025-02-13 14:16:32 +00:00
Marcus Moore 60d7232569 Remove unneeded Form::close from users index 2025-02-12 13:50:38 -08:00
Marcus Moore 2f1212fa1a Remove unneeded Form::close on view status label page 2025-02-12 13:49:37 -08:00
Marcus Moore cc4d8f2a5b Migrate Form::close on security settings page 2025-02-12 13:47:15 -08:00
Marcus Moore c0a3284fad Migrate Form::open and Form::close on saml settings 2025-02-12 13:46:42 -08:00
Marcus Moore caff608e3c Migrate Form::open and Form::close on purge deleted records page 2025-02-12 13:41:44 -08:00
Marcus Moore c48fa7c2cb Migrate Form::open and Form::close on localization page 2025-02-12 13:39:04 -08:00
Marcus Moore 14b25949b8 Migrate Form::close on ldap settings page 2025-02-12 13:36:48 -08:00
Marcus Moore 2df995c2c7 Remove unneeded Form::open on label settings page 2025-02-12 13:29:02 -08:00
Marcus Moore ad182a96fa Migrate Form::open and Form::close on label settings 2025-02-12 13:28:40 -08:00
Marcus Moore a728f38bd1 Migrate Form::open and Form::close on google settings page 2025-02-12 13:21:07 -08:00
Marcus Moore 894754e8dc Migrate Form::close on general settings page 2025-02-12 13:18:55 -08:00
Marcus Moore d141675478 Migrate Form::open and Form::close on branding settings pagee 2025-02-12 13:17:59 -08:00
Marcus Moore 8bdd80e236 Migrate Form::open and Form::close on backups page 2025-02-12 13:12:45 -08:00
Marcus Moore c422737525 Migrate Form::open and Form::close on asset tag settings page 2025-02-12 13:11:06 -08:00
Marcus Moore fc55786ca2 Migrate Form::close on notification settings page 2025-02-12 12:50:37 -08:00
Marcus Moore 2949fdecdd Migrate Form::open and Form::close on unaccepted assets report page 2025-02-12 12:49:19 -08:00
Marcus Moore d32163f881 Migrate Form::open and Form::close on custom report page 2025-02-12 12:43:51 -08:00
Marcus Moore 215fe501ac Migrate Form::open and Form::close on activity report page 2025-02-12 12:14:00 -08:00
Marcus Moore ef3112e526 Add missing @csrf 2025-02-12 12:11:36 -08:00
Marcus Moore 8aa0135afa Migrate Form::open and Form::close in bulk users partial 2025-02-12 12:10:16 -08:00
snipe ff1157a95e Merge pull request #16232 from Godmartinz/adds-expiring-notifications
Expiration notifcation switched to use Mailable
2025-02-12 20:07:24 +00:00
Godfrey M e66b690c93 removed unnecessary base_path changes 2025-02-12 12:01:43 -08:00
Godfrey M 242fd00e8a remove commented dd 2025-02-12 11:55:28 -08:00
Godfrey M c77a1faa69 moar unnecssary changes removed 2025-02-12 11:54:34 -08:00
Marcus Moore 540b609591 Migrate Form::open and Form::close in models bulk actions partial 2025-02-12 11:53:23 -08:00
Marcus Moore ac5a409cdf Migrate Form::open and Form::close in locations bulk actions partial 2025-02-12 11:51:17 -08:00
Godfrey M 4cbc751dad removed unnecessary changes 2025-02-12 11:49:36 -08:00
Marcus Moore 1dc579ce71 Migrate Form::open and Form::close in asset bulk actions partial 2025-02-12 11:49:13 -08:00
Marcus Moore 37282fffff Remove unneeded Form::close on model show page 2025-02-12 11:45:09 -08:00
Marcus Moore b3e98cb7eb Remove unneeded Form::close on model index page 2025-02-12 11:44:14 -08:00
Godfrey M bd03d70937 adds test for expiring licenses 2025-02-12 11:43:22 -08:00
Marcus Moore 716161e626 Migrate Form::open and Form::close in upload file modal 2025-02-12 11:42:09 -08:00
Marcus Moore 93a67847ba Migrate Form::open and Form::close on asset view 2025-02-12 11:38:19 -08:00
Godfrey M 6873244e7e adds test for expiring asset notifications 2025-02-12 11:28:36 -08:00
Marcus Moore c569a84f87 Migrate Form::open and Form::close on requested assets page 2025-02-12 10:52:32 -08:00
akemidx 1e07927e78 test created and passing 2025-02-11 19:35:55 -05:00
Marcus Moore c4b8b85602 Migrate Form::open and Form::close on bulk audit page 2025-02-11 15:42:20 -08:00
Marcus Moore 464e4d11e9 Migrate Form::open and Form::close on quick scan checkin page 2025-02-11 14:24:38 -08:00
Marcus Moore 85e4a19f03 Migrate Form::open on asset audit page 2025-02-11 14:22:17 -08:00
Marcus Moore 6263d01c73 Migrate Form::close in previously changed views 2025-02-11 14:10:52 -08:00
Marcus Moore 967e646989 Migrate Form::open in depreciations view 2025-02-11 14:10:52 -08:00
Marcus Moore e9d3b9dcde Migrate Form::open and Form::close in manage custom fields view 2025-02-11 14:10:52 -08:00
Marcus Moore 3065ba851e Migrate Form::open in custom fieldset view 2025-02-11 14:10:52 -08:00
Marcus Moore 80522a2505 Migrate Form::open in custom field view 2025-02-11 14:10:52 -08:00
Marcus Moore 532e6c1c1d Migrate Form::open in profile view 2025-02-11 14:10:52 -08:00
Marcus Moore 5cf314a314 Migrate Form::open in change password view 2025-02-11 14:10:52 -08:00
snipe c08cfb9b73 Merge pull request #16226 from snipe/add_notes_to_locations_companies_etc
Fixed #16184 - added notes to locations, companies, categories, manufacturers and groups
2025-02-11 19:25:10 +00:00
snipe 61591633f8 Fixed layout sorta
Signed-off-by: snipe <snipe@snipe.net>
2025-02-11 19:23:04 +00:00
Godfrey M 9b5b58687d removed unused 2025-02-11 11:02:25 -08:00
Godfrey M fb7bec4be4 adds expiring asset and license mail 2025-02-11 10:55:56 -08:00
snipe 9dba03646b Pointless rename
Signed-off-by: snipe <snipe@snipe.net>
2025-02-11 18:32:51 +00:00
snipe ddd2ce07f3 Fixed branch from weird merge down
Signed-off-by: snipe <snipe@snipe.net>
2025-02-11 01:14:35 +00:00
snipe 3de5f5882c Added/updated tests
Signed-off-by: snipe <snipe@snipe.net>
2025-02-11 01:07:41 +00:00
Marcus Moore 73e010434e Remove cols property 2025-02-10 16:43:39 -08:00
snipe a9d6a5f618 Updated note partial to use generic notes text
Signed-off-by: snipe <snipe@snipe.net>
2025-02-11 00:39:46 +00:00
snipe ef9cc4fceb Added notes to blades
Signed-off-by: snipe <snipe@snipe.net>
2025-02-11 00:39:26 +00:00
snipe e104decf77 Added placeholder translation array
Signed-off-by: snipe <snipe@snipe.net>
2025-02-11 00:35:03 +00:00
snipe 96e38da875 Created migration
Signed-off-by: snipe <snipe@snipe.net>
2025-02-11 00:34:50 +00:00
snipe ff95049f7c Added notes to factories
Signed-off-by: snipe <snipe@snipe.net>
2025-02-11 00:34:30 +00:00
snipe 63cb4e70bc Added notes to presenters
Signed-off-by: snipe <snipe@snipe.net>
2025-02-11 00:34:10 +00:00
snipe e6ae9cae6b Added notes to searchable and fillable attributes
Signed-off-by: snipe <snipe@snipe.net>
2025-02-11 00:33:51 +00:00
snipe 1f1e1401cf Added location notes to importer
Signed-off-by: snipe <snipe@snipe.net>
2025-02-11 00:32:58 +00:00
snipe af1159658d Added notes to transformers
Signed-off-by: snipe <snipe@snipe.net>
2025-02-11 00:32:37 +00:00
snipe 4e2b22135a Added notes to UI controllers
Signed-off-by: snipe <snipe@snipe.net>
2025-02-11 00:32:07 +00:00
snipe 4ee5a4c5c3 Added notes to API controllers
Signed-off-by: snipe <snipe@snipe.net>
2025-02-11 00:31:50 +00:00
snipe aa14cfe18d Merge pull request #16075 from marcusmoore/chore/migrate-textarea-helper
Convert Form::textarea to blade component
2025-02-11 00:14:23 +00:00
Marcus Moore 0797c4ac97 Merge branch 'develop' into chore/sc-28173
# Conflicts:
#	resources/views/settings/saml.blade.php
#	resources/views/settings/security.blade.php
#	resources/views/setup/user.blade.php
2025-02-10 15:57:41 -08:00
snipe b4ea75f34f Merge branch 'master' into chore/migrate-textarea-helper 2025-02-10 23:47:13 +00:00
Marcus Moore 00e7795414 Merge branch 'develop' into chore/migrate-select-helper
# Conflicts:
#	resources/views/partials/forms/edit/company.blade.php
2025-02-10 15:44:02 -08:00
snipe e37a990820 Merge remote-tracking branch 'origin/develop' 2025-02-10 22:42:58 +00:00
snipe b54d68ebf1 Merge pull request #16212 from Godmartinz/ternary-checks-on-location-in-notifications
adds ternaries on check in/out hardware notifications
2025-02-10 22:28:36 +00:00
snipe 4ae2126ded Merge pull request #16213 from marcusmoore/chore/migrate-checkbox-helpers-p1
Replace calls to Form::checkbox pt1
2025-02-10 22:27:19 +00:00
snipe c420670ebb Small fixes to accessories files handling
Signed-off-by: snipe <snipe@snipe.net>
2025-02-10 22:26:00 +00:00
Brady Wetherington dae1f43359 Merge branch 'develop' into v8 2025-02-10 15:14:55 +00:00
Marcus Moore 77635c3737 Migrate Form::checkboxes on license edit view 2025-02-06 17:05:35 -08:00
Marcus Moore b937b7e767 Migrate Form::checkboxes on asset history import page 2025-02-06 17:01:09 -08:00
Marcus Moore 38df5e8b07 Replace more Form::checkboxes 2025-02-06 15:52:23 -08:00
akemidx d1cd670af5 oop forgot the user form bit 2025-02-06 18:05:22 -05:00
Marcus Moore 04e4b6c181 Replace Form::checkbox 2025-02-06 14:16:18 -08:00
Marcus Moore 9559c5a025 Replace Form::checkbox and inline label 2025-02-06 14:08:13 -08:00
Marcus Moore 42fa2e12db Replace Form::checkbox 2025-02-06 13:55:33 -08:00
Godfrey M f41583fd59 adds ternary checks on locations before pulling names in notifications 2025-02-06 11:34:14 -08:00
snipe b48704b3af Merge pull request #16209 from uberbrady/eliminate_preg_split_deprecation_warnings
Fixed #16208 - don't call preg_split() with a null
2025-02-06 13:30:53 +00:00
Brady Wetherington de3ebfecfe Ensure we don't call preg_split() with a null as the second parameter 2025-02-06 13:24:39 +00:00
snipe 29311b1b5b Merge remote-tracking branch 'origin/develop' 2025-02-06 10:34:58 +00:00
snipe b131227b71 Merge pull request #16207 from snipe/security/upgrade_papaparse
Upgraded papaparse to 5.5.1
2025-02-06 10:34:29 +00:00
snipe ec45833cd8 Upgraded papaparse to 5.5.1
Signed-off-by: snipe <snipe@snipe.net>
2025-02-06 10:22:17 +00:00
snipe 4c2905b1f0 Merge pull request #16176 from marcusmoore/chore/migrate-form-radio
Replaced some calls to the Form::radio helper
2025-02-06 10:19:51 +00:00
snipe 6e51be6c57 Merge pull request #16178 from marcusmoore/chore/migrate-form-radio-helpers-pt1
Replaced calls to Form::radio helper on group create and edit pages
2025-02-06 10:19:35 +00:00
snipe b195168c83 Merge pull request #16167 from Godmartinz/asset_controller_qr_check_fix
Adds qr code type check in getQRCode method
2025-02-06 10:18:34 +00:00
snipe a722eca6aa Merge pull request #16179 from marcusmoore/chore/migrate-form-radio-helpers-bulk-hardware
Replaced calls to Form::radio helper on bulk hardware edit page
2025-02-06 10:18:16 +00:00
snipe 1f6428ee1c Merge pull request #16180 from marcusmoore/chore/migrate-form-radio-helpers-bulk-models
Replaced calls to Form::radio helper on bulk asset model edit page
2025-02-06 10:18:05 +00:00
snipe ab10fb466c Merge pull request #16193 from marcusmoore/chore/migrate-label-helpers-pt3
Replace calls to Form::label pt3
2025-02-06 10:17:26 +00:00
snipe dcabf90409 Merge pull request #16192 from marcusmoore/chore/migrate-label-helpers-pt2
Replace calls to Form::label pt2
2025-02-06 10:17:11 +00:00
snipe 27752f595c Merge pull request #16194 from marcusmoore/chore/migrate-label-helpers-pt4
Replace calls to Form::label pt4
2025-02-06 10:16:33 +00:00
snipe c17598d4b4 Merge pull request #16195 from marcusmoore/chore/migrate-label-helpers-pt5
Replace calls to Form::label pt5
2025-02-06 10:16:17 +00:00
snipe d74d9900da Merge pull request #16190 from marcusmoore/chore/migrate-label-helpers-pt1
Replace calls to Form::label pt1
2025-02-06 10:15:43 +00:00
snipe 5505c9ab67 Merge pull request #16196 from marcusmoore/chore/migrate-label-helpers-pt6
Replace calls to Form::label pt6
2025-02-06 10:14:55 +00:00
snipe 8d2ffea7df Merge pull request #16197 from marcusmoore/chore/migrate-label-helpers-pt7
Replace calls to Form::label in QuickStart
2025-02-06 10:06:41 +00:00
snipe 1233c939f8 Merge branch 'develop' into chore/migrate-label-helpers-pt7 2025-02-06 10:03:42 +00:00
snipe 46dd83c34e Merge pull request #16168 from Godmartinz/print_all_assigned_location_null_check
Added ternary check that asset has `asset status` before checking archived
2025-02-06 10:01:10 +00:00
snipe 639aa85353 Merge pull request #16198 from marcusmoore/chore/migrate-email-helpers
Replace call to Form::email
2025-02-06 09:57:53 +00:00
akemidx 008b6f1db2 lastname.first initial 2025-02-05 20:11:33 -05:00
Marcus Moore f46ad4811e Migrate form email helper on user setup page 2025-02-05 16:44:09 -08:00
Marcus Moore b39b24e6b9 Migrate form labels on user setup 2025-02-05 15:01:51 -08:00
Marcus Moore 7f0133a4d6 Migrate form labels on create supplier page 2025-02-05 14:42:07 -08:00
Marcus Moore 85bc8bc8f0 Migrate form label on create status label page 2025-02-05 14:40:20 -08:00
Marcus Moore 32e1d4b2ef Migrate form labels on security settings page 2025-02-05 14:39:16 -08:00
Marcus Moore f8d5af836f Migrate form labels on saml settings page 2025-02-05 14:35:53 -08:00
Marcus Moore 19ceb3f5b7 Migrate form label on purge page 2025-02-05 14:29:49 -08:00
Marcus Moore f346c55cf1 Migrate form labels on localization settings page 2025-02-05 14:29:49 -08:00
Marcus Moore e797705dad Migrate form labels on google settings page 2025-02-05 14:29:49 -08:00
Marcus Moore a331e14ef2 Migrate form labels on general settings page 2025-02-05 14:19:34 -08:00
Marcus Moore d6b4c27302 Migrate form label on branding settings page 2025-02-05 14:14:50 -08:00
Marcus Moore f8d7291923 Migrate form labels on asset tag settings page 2025-02-05 14:11:36 -08:00
Marcus Moore b59674ab77 Migrate form labels on settings alert page 2025-02-05 13:48:50 -08:00
Marcus Moore 0620b8b163 Migrate form label in checkout select partial 2025-02-05 13:44:00 -08:00
Marcus Moore f639d82693 Migrate form label in user select partial 2025-02-05 13:40:27 -08:00
Marcus Moore 13d2d41f0c Migrate form label in supplier select partial 2025-02-05 13:39:03 -08:00
Marcus Moore 015cd44136 Migrate form label in status select partial 2025-02-05 13:34:07 -08:00
Marcus Moore 4834f60a44 Migrate form label in phone input partial 2025-02-05 13:32:06 -08:00
Marcus Moore 3327e1d8f2 Migrate form label in asset model select partial 2025-02-05 13:30:14 -08:00
Marcus Moore 40e002911c Migrate form label in manufacturer select partial 2025-02-05 13:29:06 -08:00
Marcus Moore 03bcc3b73f Migrate form label in location select partial 2025-02-05 13:27:29 -08:00
Marcus Moore f963df0658 Migrate form label in location profile select partial 2025-02-05 13:26:08 -08:00
Marcus Moore 0aa77d281f Replace calls to Form::label in license-select partial 2025-02-05 13:24:02 -08:00
Marcus Moore 0988255693 Replace calls to Form::label in (unused?) kit select 2025-02-05 13:23:10 -08:00
Marcus Moore fb9e7cf5e1 Migrate form label in fax input partial 2025-02-05 13:19:22 -08:00
Marcus Moore ecc1bd69b9 Migrate form label in department select partial 2025-02-05 13:19:16 -08:00
Marcus Moore 830f095a6e Migrate form label in datepicker partial 2025-02-05 13:16:28 -08:00
Marcus Moore 288f7e4e93 Migrate form label on consumable select 2025-02-05 13:12:52 -08:00
Marcus Moore a205ae12a4 Migrate form label on (unsed?) company select partial 2025-02-05 13:11:49 -08:00
Marcus Moore 1866426f11 Migrate form label in category select partial 2025-02-05 13:02:36 -08:00
Marcus Moore e4ab6c0c24 Migrate form label on asset select partial 2025-02-05 12:59:00 -08:00
Marcus Moore 189c148761 Migrate labels on address partial 2025-02-05 12:47:06 -08:00
Marcus Moore 8b7c1a195c Migrate label on accessory select partial 2025-02-05 12:41:35 -08:00
Marcus Moore d77547aecf Migrate labels on slack component 2025-02-05 12:40:00 -08:00
Marcus Moore 478a5c0e1a Migrate labels on bulk audit pag 2025-02-05 12:12:43 -08:00
Marcus Moore 5c6757ecf6 Migrate labels on quick checkin page 2025-02-05 12:07:17 -08:00
Godfrey M f2981cf12b adds translations to label settings 2025-02-05 10:55:05 -08:00
Godfrey M c3310a0772 adds translations to LDAP settings page 2025-02-05 10:38:16 -08:00
Marcus Moore fe485acd4a Swap Form::radio in bulk model edit view 2025-02-04 16:18:49 -08:00
Marcus Moore fbe19738cb Swap Form::radio in bulk hardware edit view 2025-02-04 15:49:46 -08:00
Marcus Moore d29a62a335 Simplify @checked 2025-02-04 13:50:08 -08:00
snipe 6cc2013102 Merge remote-tracking branch 'origin/develop' 2025-02-04 21:39:27 +00:00
snipe 39ce7b75ca Merge pull request #16175 from Godmartinz/channel-not-found-warning-added 2025-02-04 21:38:15 +00:00
Marcus Moore f3959323ff Add required attribute to name field 2025-02-04 13:33:16 -08:00
Marcus Moore 0d62ab2ad4 Fix call to @checked 2025-02-04 13:31:28 -08:00
Godfrey M cbf9239d86 adds channel not found warning 2025-02-04 11:21:56 -08:00
Marcus Moore 295875c45e Fix and replace remaining radios on bulk user edit page 2025-02-04 11:02:40 -08:00
snipe 5e363f7dd4 Merge pull request #16166 from Godmartinz/rollbar_none-qr-code 2025-02-04 16:16:00 +00:00
Godfrey M 6bb0927f26 remove unrelated change 2025-02-03 12:30:21 -08:00
Godfrey M 24bb679305 adds check that asset has asset status before checking archived 2025-02-03 12:24:22 -08:00
Godfrey M ddc22b4d6b adds a check to see that qr code type is not none 2025-02-03 10:38:49 -08:00
Godfrey M 9a75131a98 removed old label artifact 2025-02-03 10:18:13 -08:00
Marcus Moore 26b4063435 Convert section items 2025-01-30 16:07:46 -08:00
Marcus Moore 8dd432c3a2 Convert section headings 2025-01-30 15:56:08 -08:00
Marcus Moore 0e390f1a9b Temporarily order properties 2025-01-30 15:54:27 -08:00
Marcus Moore 6fb83d66a2 Revert "Re-order parameters"
This reverts commit bf96688aef.
2025-01-30 15:46:22 -08:00
Marcus Moore bf96688aef Re-order parameters 2025-01-30 15:37:05 -08:00
Marcus Moore eb4aeb47c1 Replace Form::radio in top section of group permissions page 2025-01-30 15:36:38 -08:00
Marcus Moore 7cbb3f7e07 Add assertion 2025-01-30 11:48:55 -08:00
Marcus Moore 7e9c564d0b Simplify test 2025-01-30 11:47:43 -08:00
Marcus Moore fc88b2487f Extract method 2025-01-30 11:44:37 -08:00
Marcus Moore e94ee48f74 Extract helper 2025-01-30 10:37:11 -08:00
Marcus Moore 6a4a5d1380 Add translation 2025-01-30 10:35:31 -08:00
Marcus Moore ab9e9b66d2 Reduce complexity 2025-01-29 16:27:18 -08:00
Marcus Moore c15c338ffd Merge if/else 2025-01-29 16:25:37 -08:00
Marcus Moore d1197d015c Add another case scenario 2025-01-29 16:24:43 -08:00
Marcus Moore ce31ce477e Inline additional variables 2025-01-29 16:16:47 -08:00
Marcus Moore 78f9292555 Inline variable 2025-01-29 16:15:27 -08:00
Marcus Moore 4e7c6bd2cf Fix relationship 2025-01-29 16:14:09 -08:00
Marcus Moore 70aed45bfe Improve naming 2025-01-29 15:56:20 -08:00
Marcus Moore e2805f4033 Add "Reminder" to subject line 2025-01-29 15:36:45 -08:00
Marcus Moore d254a40e0a Scaffold tests 2025-01-29 15:21:10 -08:00
Marcus Moore fdcb891cbb Improve test case 2025-01-29 15:20:56 -08:00
snipe d906f3cf62 Merge pull request #16148 from spencerrlongg/bug/sc-27619 2025-01-29 21:05:08 +00:00
Godfrey M 16d322d70e fix translation 2025-01-29 10:38:30 -08:00
Godfrey M 2163312997 adds translations for branding and general settings 2025-01-29 10:35:26 -08:00
spencerrlongg 0defed9abe add nullsafe 2025-01-29 11:27:02 -06:00
Godfrey M 0dfb71cfe5 added some translations to branding and general setrting 2025-01-28 11:56:10 -08:00
Marcus Moore ac925af3d0 Replace a few radio inputs on bulk user edit page 2025-01-27 13:50:22 -08:00
Marcus Moore 4f08b2360c Migrate radios on custom report page 2025-01-27 13:36:59 -08:00
Godfrey M 1c67d6802d added testing to Api check in, renamed other test method 2025-01-27 12:18:24 -08:00
snipe fd60ce1198 Merge pull request #16140 from marcusmoore/chore/sc-28233 2025-01-27 19:28:41 +00:00
Marcus Moore 00cdb13803 Convert remaining Form:hidden in labels view 2025-01-27 11:23:01 -08:00
Marcus Moore ef6d747b37 Convert some Form:hidden in labels view 2025-01-27 11:15:09 -08:00
Marcus Moore e26abb8684 Replace Form::hidden with @csrf 2025-01-27 11:07:19 -08:00
Tobias Regnery 4e0bcac1a1 Furhter validation for scoped locations
There is a new validator introduced that checks on object update (assets, users, etc.) if the company matches the locations company.
In case of the creation of a new location it must be checked that the parent matches the own company.
On updating a location a check for every related object must be made to see if the company matches the location.

Signed-off-by: Tobias Regnery <tobias.regnery@gmail.com>
2025-01-24 11:12:11 +01:00
Tobias Regnery 6921df9334 Check for inconsistencies before activating scoped locations
Before activating scoped location all locations and their related objects will be checked.
If there are locations with different companies than the related objects error out.

Because this operation is quite slow, bail out on the first inconsistent entry.
There is a new artisan command introduced that checks every location.

Depending on the size of the database, this will take very long.

Signed-off-by: Tobias Regnery <tobias.regnery@gmail.com>
2025-01-23 15:26:04 +01:00
Marcus Moore 82801242d3 Merge branch 'develop' into chore/sc-28173
# Conflicts:
#	resources/views/settings/alerts.blade.php
2025-01-22 14:54:53 -08:00
snipe e53ed2319c Merge pull request #16118 from marcusmoore/fixes/undefined-key-in-asset-observer 2025-01-22 22:30:55 +00:00
Marcus Moore 8f512e5941 Replace isset with the more appropriate array_key_exists 2025-01-22 14:28:35 -08:00
Marcus Moore 8a1b6b0684 Add isset check 2025-01-22 14:15:35 -08:00
snipe 5ac6caf257 Merge remote-tracking branch 'origin/develop' 2025-01-22 21:49:55 +00:00
snipe 36f460d32b Default to localStorage for bootstap table cookies
Signed-off-by: snipe <snipe@snipe.net>
2025-01-22 21:48:03 +00:00
Godfrey M 5da8c86ec7 fix license query for bulk licenses checkin for assets 2025-01-22 10:55:41 -08:00
snipe 802fcbafa0 Merge pull request #16116 from marcusmoore/bug/sc-20259 2025-01-22 18:50:12 +00:00
Godfrey Martinez 10a2d59ec1 Merge pull request #27 from Godmartinz/checkin_non_reassignable_license_cleanup
adds bulk check in of unreassinable licenses, cleans up methods used for counting.
2025-01-22 10:49:47 -08:00
Godfrey M 34e8360b10 moves counts to licenses, allows bulk check in of unreassignable licenses 2025-01-22 10:46:28 -08:00
Marcus Moore 1098b8cd9d Avoid trying to divide by zero 2025-01-22 10:21:30 -08:00
Marcus Moore da8999f59a Add failing test 2025-01-22 10:21:18 -08:00
snipe bebc1f4d0d Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	config/version.php
2025-01-22 17:31:17 +00:00
snipe 1212267da3 Bumped version
Signed-off-by: snipe <snipe@snipe.net>
2025-01-22 17:30:41 +00:00
snipe d696ed8a5a Merge pull request #16107 from marcusmoore/chore/migrate-password-helper 2025-01-22 17:28:23 +00:00
Marcus Moore c3d17c5727 Remove value for readonly 2025-01-22 09:27:40 -08:00
snipe cb25d0f2f3 Merge pull request #16115 from snipe/localization/2025-01-22 2025-01-22 17:21:54 +00:00
snipe be535671bc Updated language files
Signed-off-by: snipe <snipe@snipe.net>
2025-01-22 17:09:41 +00:00
snipe 63838f6e74 Merge pull request #16108 from marcusmoore/chore/migrate-form-submit-helper 2025-01-22 13:16:24 +00:00
Marcus Moore 5ddf0dd789 Migrate form submit helper 2025-01-21 16:36:22 -08:00
Marcus Moore b003890dd2 Migrate password helpers 2025-01-21 16:14:20 -08:00
Godfrey Martinez ca259ee4c3 Merge pull request #26 from Godmartinz/checkin_non_reassignable_license_cleanup
moved methods to licenseSeat model, clean up code, removed unused namespaces etc
2025-01-21 11:47:42 -08:00
Godfrey M 2143952a1e removed unused models, castged unreassignable_seat, clean up in general 2025-01-21 11:43:47 -08:00
Marcus Moore 31097bdc37 Formatting 2025-01-21 10:25:53 -08:00
Marcus Moore e733d2a5d0 Backfill test 2025-01-21 10:24:15 -08:00
Marcus Moore 6a35fa7ba3 Account for missing asset model 2025-01-21 10:14:27 -08:00
Marcus Moore 370666b5bd Fix indenting 2025-01-21 10:12:56 -08:00
snipe 8db8d4beba Merge pull request #16105 from snipe/use_url_fragment_for_file_uploads 2025-01-21 18:10:10 +00:00
snipe d5309c7d94 Added fragment to uploads for redirect
Signed-off-by: snipe <snipe@snipe.net>
2025-01-21 18:06:00 +00:00
snipe fb857ccf56 Merge remote-tracking branch 'origin/develop' 2025-01-20 21:07:04 +00:00
snipe 2668960bb9 Merge pull request #16102 from snipe/added_serial_search_to_activity_report 2025-01-20 21:06:23 +00:00
snipe 8e4878fac0 Added serial as relation search
Signed-off-by: snipe <snipe@snipe.net>
2025-01-20 21:00:01 +00:00
snipe d4ef0f8aa8 Merge remote-tracking branch 'origin/develop' 2025-01-20 20:26:33 +00:00
snipe 752d89d177 Merge pull request #16101 from snipe/standarize_modelfile_api 2025-01-20 20:23:50 +00:00
snipe 0d7304eb8b Use transformer for model files
Signed-off-by: snipe <snipe@snipe.net>
2025-01-20 20:20:35 +00:00
snipe 48ff7cdbe8 Prod assets
Signed-off-by: snipe <snipe@snipe.net>
2025-01-20 17:00:02 +00:00
snipe ca446ad7df Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	public/css/dist/all.css
#	public/css/dist/bootstrap-table.css
#	public/js/dist/bootstrap-table.js
#	public/mix-manifest.json
2025-01-20 16:59:55 +00:00
snipe 5afcd8ddb3 Merge pull request #16099 from snipe/add_id_to_locations_importer
Fixed #16097 - added location ID to location importer
2025-01-20 16:58:24 +00:00
snipe 5273408631 Check for matching ID
Signed-off-by: snipe <snipe@snipe.net>
2025-01-20 16:53:48 +00:00
snipe 713c9fdd6f Derp
Signed-off-by: snipe <snipe@snipe.net>
2025-01-20 16:46:22 +00:00
snipe 0a5c41ce23 Log error
Signed-off-by: snipe <snipe@snipe.net>
2025-01-20 16:42:53 +00:00
snipe 48a916ab77 Check that the ID has a value
Signed-off-by: snipe <snipe@snipe.net>
2025-01-20 16:38:31 +00:00
snipe 67ab602e3b Merge pull request #16090 from snipe/fixes/s3_support_for_eulas
Fixed #16000 - add S3 support for eula PDF downloads
2025-01-20 16:26:11 +00:00
snipe 801328ec42 Fixed #16097 - allow location update by ID in importer
Signed-off-by: snipe <snipe@snipe.net>
2025-01-20 16:23:13 +00:00
snipe 4fe83467ee Removed log error
Signed-off-by: snipe <snipe@snipe.net>
2025-01-20 16:20:31 +00:00
Brady Wetherington dd34f07989 Fix custom translator for new Laravel 11 syntax 2025-01-20 15:24:06 +00:00
snipe 27a7a89990 Updated bootstrap tables to 1.24.0
Signed-off-by: snipe <snipe@snipe.net>
2025-01-20 15:06:00 +00:00
snipe 5dafa3c5c9 Merge remote-tracking branch 'origin/develop' 2025-01-20 15:00:01 +00:00
Brady Wetherington 6b242f47e4 Initial work at putting together a v8 branch 2025-01-20 14:54:28 +00:00
snipe 446c7fb483 Merge pull request #16096 from uberbrady/detect_csv_encodings_v2 2025-01-20 14:42:07 +00:00
Brady Wetherington 17c9c93456 Made composer changes for v8 2025-01-20 14:04:57 +00:00
Brady Wetherington bbb2af7f53 remove log messages 2025-01-20 13:52:26 +00:00
Brady Wetherington d65206c7fe Move tests to UI-side 2025-01-20 13:49:42 +00:00
snipe 954ffbfcaf Merge remote-tracking branch 'origin/develop' 2025-01-17 19:11:18 +00:00
snipe 327491c3a4 Merge pull request #16091 from snipe/hide_password_reset_if_ldap 2025-01-17 19:09:23 +00:00
snipe 02eeb7f916 Added extrab option in bulk edit
Signed-off-by: snipe <snipe@snipe.net>
2025-01-17 19:04:23 +00:00
snipe e9ad43afbe Better hide reset password functionality for LDAP users
Signed-off-by: snipe <snipe@snipe.net>
2025-01-17 18:51:08 +00:00
snipe 434068a2ed Fixes #16000 - add S3 support for eula PDF downloads
Signed-off-by: snipe <snipe@snipe.net>
2025-01-17 17:49:19 +00:00
snipe b6f05bff1f Merge branch 'develop' into feature/locations_with_companies 2025-01-17 17:18:17 +00:00
snipe 7f5ea30904 Prod assets
Signed-off-by: snipe <snipe@snipe.net>
2025-01-17 17:09:00 +00:00
snipe 53b6ccbac0 Merge remote-tracking branch 'origin/develop' 2025-01-17 17:07:44 +00:00
snipe 7e65d68392 Merge pull request #16089 from snipe/fixes/15017_card_view
Fixes #15017 - card view for mobile
2025-01-17 17:04:04 +00:00
snipe b3d35beeb9 Fixes #15017 - card view for mobile
Signed-off-by: snipe <snipe@snipe.net>
2025-01-17 16:58:30 +00:00
snipe eaa0e9d1fa Bumped hash
Signed-off-by: snipe <snipe@snipe.net>
2025-01-17 16:38:46 +00:00
snipe fed7c2dc16 Bumped hash
Signed-off-by: snipe <snipe@snipe.net>
2025-01-17 16:38:04 +00:00
snipe 79951c3f17 Set support footer to on in reset demo script
Signed-off-by: snipe <snipe@snipe.net>
2025-01-17 16:37:00 +00:00
snipe 221ffb446c Fixed #15946 - added comtent type to webhook test
Signed-off-by: snipe <snipe@snipe.net>
2025-01-17 16:36:43 +00:00
Godfrey M 0eb34cb979 adds period to translation 2025-01-16 13:24:32 -08:00
Godfrey M 79a4c83879 add spaces 2025-01-16 13:23:16 -08:00
snipe 57f80290a1 Merge pull request #16081 from marcusmoore/fixes/zerofill-count-on-setup 2025-01-16 21:22:02 +00:00
Godfrey M 6bab6e7151 remove unintended change 2025-01-16 12:27:01 -08:00
Godfrey M d217c2e295 last rename 2025-01-16 12:24:32 -08:00
Marcus Moore 4b2ede7a71 Use 0 for zerofill_count if nothing provided 2025-01-16 12:20:14 -08:00
Godfrey M 52bf0faaa5 renamed unassignable to reassignable_seat 2025-01-16 12:19:59 -08:00
Godfrey M 3f3f2bfc61 fixed factory and test 2025-01-16 12:14:03 -08:00
Godfrey M f050864fb4 renamed dead to unassigned, replaced 0 and 1 with true and flase 2025-01-16 12:12:14 -08:00
Godfrey M db11fc35f4 fixed typo, fixed variable name 2025-01-16 12:00:49 -08:00
Godfrey M f47a2b10c0 updated column name, updated Api license checkin and out 2025-01-16 11:53:15 -08:00
snipe 5e465fa417 Merge remote-tracking branch 'origin/master' into develop 2025-01-16 19:06:02 +00:00
snipe de5d66f5d2 Comment out ad-hoc note button for now
Signed-off-by: snipe <snipe@snipe.net>
2025-01-16 19:05:52 +00:00
Godfrey M 344b4e7d60 fixes test to check if checked in licenses is unavailable 2025-01-16 09:46:03 -08:00
Brady Wetherington a50c8c6269 Automatically detect character encoding of CSV files when processsing them
to handle non-UTF-8 file types. Added a new test case and enhanced the test
rigs to be able to write non-UTF-8 files.

Final cleanup
2025-01-16 17:03:37 +00:00
Marcus Moore cb56f89954 Merge branch 'develop' into chore/sc-28173
# Conflicts:
#	resources/views/settings/alerts.blade.php
2025-01-15 16:54:10 -08:00
Marcus Moore 96379d0a62 Use provided zerofill_count 2025-01-15 16:39:50 -08:00
Marcus Moore 68988524d6 Replace Form::text in certain views 2025-01-15 16:31:16 -08:00
Marcus Moore c278900581 Replace Form::text in certain views 2025-01-15 15:58:33 -08:00
Godfrey M 7a23372489 adds migration for column unavailable, changes logic to utlize value 2025-01-15 15:36:12 -08:00
snipe bbc9ed5778 Fixed audit date default on bulk audit
Signed-off-by: snipe <snipe@snipe.net>
2025-01-15 22:28:50 +00:00
snipe 1d0c156d2e Increased due for checkin warning
Signed-off-by: snipe <snipe@snipe.net>
2025-01-15 22:12:18 +00:00
snipe 7de5e2e7ef One more audot field increase
Signed-off-by: snipe <snipe@snipe.net>
2025-01-15 22:11:22 +00:00
snipe 8d935b34eb Fixed audit interval input width
Signed-off-by: snipe <snipe@snipe.net>
2025-01-15 22:07:53 +00:00
snipe 9830959f11 Fixed input width on audit interval
Signed-off-by: snipe <snipe@snipe.net>
2025-01-15 22:07:15 +00:00
Marcus Moore 8e790fdc47 Replace Form::text in certain views 2025-01-15 13:37:00 -08:00
Marcus Moore 0ef20c524f Replace Form::text in certain views 2025-01-15 13:01:32 -08:00
Marcus Moore 5ccaf2c23e Replace Form::text in certain views 2025-01-15 12:23:43 -08:00
Marcus Moore bec9511df1 Add more spacing for input values to be displayed 2025-01-15 12:10:05 -08:00
Marcus Moore 017948c3bb Replace Form::text in certain views 2025-01-15 12:07:33 -08:00
Marcus Moore 1cb72e3e9c Replace Form::text in certain views 2025-01-15 11:53:22 -08:00
Marcus Moore e45f563b50 Convert Form::textareas to blade component 2025-01-14 13:16:31 -08:00
Godfrey M 69d255f584 adds validation rules for label names 2025-01-14 12:07:59 -08:00
Godfrey Martinez dd08642a7c Merge pull request #25 from Godmartinz/template_validate_error_p2
remove try catch, add validation rules for label template
2025-01-14 09:52:09 -08:00
Godfrey M 3ac0877418 remove try/catch, add rules for template 2025-01-14 09:50:43 -08:00
snipe 37b39956b5 Merge pull request #16071 from snipe/bug/sc-28149 2025-01-14 14:35:24 +00:00
snipe 9a4fd81c70 Use correct icon for ad-hoc notes on assets
Signed-off-by: snipe <snipe@snipe.net>
2025-01-14 14:34:17 +00:00
snipe 0bb2e98af3 Built assets
Signed-off-by: snipe <snipe@snipe.net>
2025-01-14 12:33:59 +00:00
snipe 1c8d94c953 Merge pull request #15525 from akemidx/updated_ad_hoc_notes 2025-01-14 11:33:21 +00:00
Marcus Moore 9573428201 Introduce textarea component 2025-01-13 16:34:12 -08:00
Marcus Moore abb50fcd09 Delete unused partials 2025-01-13 16:21:19 -08:00
Marcus Moore 3fadeebd82 Convert additional Form::select to blade component 2025-01-13 16:20:02 -08:00
Marcus Moore 9a043da005 Convert additional Form::select to blade component 2025-01-13 16:16:49 -08:00
Marcus Moore 3eb307a019 Convert additional Form::select to blade component 2025-01-13 15:58:15 -08:00
Marcus Moore 888c96718c Convert additional Form::select to blade component 2025-01-13 15:38:51 -08:00
Marcus Moore bc3f236b86 Weaken comparsion so string and int keys match 2025-01-13 15:38:45 -08:00
Marcus Moore 1f4cc0a4b4 Convert additional Form::select to blade component 2025-01-13 15:23:43 -08:00
Godfrey M 9da15a8e58 get button color correct 2025-01-13 14:44:26 -08:00
Godfrey M 50e0e4a07b remove unrelated change 2025-01-13 14:37:03 -08:00
Godfrey M 5e1562ae4c adds count on tabs and reports and index 2025-01-13 14:31:54 -08:00
snipe ca11efd3ee Merge pull request #16036 from Godmartinz/unaccepted_assets_reports_memory_fix 2025-01-13 22:23:30 +00:00
snipe 4a6a94a50e Merge pull request #16010 from AnouarTouati/dev-container-fixes 2025-01-13 22:23:13 +00:00
Godfrey M 8a0ed49623 allows checkin of unreassignable license seats 2025-01-13 13:35:48 -08:00
Marcus Moore 589ec3a564 Convert additional Form::select to blade component 2025-01-13 13:08:59 -08:00
snipe 2d65b38155 Merge pull request #16011 from AnouarTouati/dev-docker-improv 2025-01-13 21:00:04 +00:00
Marcus Moore 2206b0a699 Convert additional Form::select to blade component 2025-01-13 12:50:18 -08:00
Marcus Moore d74454620a Convert Form::select to blade component 2025-01-13 12:45:49 -08:00
Marcus Moore ed0cec5ba6 Introduce select component 2025-01-13 12:17:01 -08:00
snipe 99526cfc2c Remove mcrypt and legacy recrypter
Signed-off-by: snipe <snipe@snipe.net>
2025-01-13 19:54:00 +00:00
snipe 587449ef97 Merge pull request #15981 from akemidx/bug/sc-27551 2025-01-13 17:35:58 +00:00
snipe 06ffac9d7d Merge pull request #16046 from uberbrady/ldap_asset_location_switch_fix 2025-01-13 17:33:13 +00:00
snipe e32ed03f66 Merge pull request #16061 from snipe/moved_keywords_on_admin_settings 2025-01-13 17:10:01 +00:00
snipe a7543b407f Added a few more words
Signed-off-by: snipe <snipe@snipe.net>
2025-01-13 17:07:22 +00:00
snipe 98b1ba1e39 Moved keywords in lang file
Signed-off-by: snipe <snipe@snipe.net>
2025-01-13 17:04:48 +00:00
snipe e03ed7567a Merge pull request #15747 from NebelKreis/feature/custom-data-options-for-2d-barcode 2025-01-13 15:20:56 +00:00
Nebel 9f0581275b Merge branch 'develop' into feature/custom-data-options-for-2d-barcode 2025-01-13 15:49:32 +01:00
snipe 3f5c166417 Merge branch 'develop' of https://github.com/snipe/snipe-it into develop 2025-01-13 13:59:41 +00:00
snipe cf091377b6 Add @brlin-tw as a contributor 2025-01-13 13:59:34 +00:00
snipe 0cc7a7014f Merge pull request #16053 from brlin-tw/patch-1
Fixed #16054: fix incorrect compose service name in the APP_KEY generation command of the Docker env file
2025-01-13 13:59:05 +00:00
snipe 4790ad53e3 Updated font-awesome to 6.7.2
Signed-off-by: snipe <snipe@snipe.net>
2025-01-13 13:57:45 +00:00
snipe 62dc075834 Add @aHVzY2g as a contributor 2025-01-13 13:55:28 +00:00
snipe 41da04cd22 Merge pull request #16018 from aHVzY2g/patch-3 2025-01-13 13:55:04 +00:00
Marlon Spangenberg 0c4fc56b80 increased label/field size to 2.5, reduced supported fields to 3 2025-01-13 12:20:56 +01:00
Marlon Spangenberg 907f0553d4 moved label value into the same line, changed label font to freemono 2025-01-13 12:14:30 +01:00
snipe 224f04db6c Merge pull request #16050 from Godmartinz/inactive-slack-hook
Adds try/catch around notification failing with an inactive webhook for better user experience
2025-01-10 11:23:41 +00:00
snipe f0bcf78941 Merge pull request #16051 from marcusmoore/testing/checkoutable-acceptance-factory-fix
Update related asset when checkout acceptance created via factory
2025-01-10 11:22:50 +00:00
林博仁 Buo-ren Lin c08a4a2b0a Fixed #16054: fix incorrect compose service name in the APP_KEY generation command of the Docker env file
This resolves the following error:

```
$ docker compose run --rm snipe-it php artisan key:generate --show
no such service: snipe-it
```

and is also how it is done in the documentation.

Fixes #16054.

Refer-to: APP_KEY | Docker | Snipe-IT documentation <https://snipe-it.readme.io/docs/docker#app_key>
Signed-off-by: Buo-ren Lin (OSSII) <buoren.lin@ossii.com.tw>
2025-01-10 11:29:49 +08:00
Marcus Moore 8597984787 Update asset's assigned_to and assigned_type after creating 2025-01-09 15:09:57 -08:00
Godfrey M 001ccf1ce9 adds translation string instead of hardcoded message 2025-01-09 14:47:07 -08:00
Godfrey M 082a974ee3 changed from redirect with error to with warning 2025-01-09 14:26:54 -08:00
Godfrey M 152c23b8f3 changed log from warning to error 2025-01-09 12:55:25 -08:00
Godfrey M b635822a85 add try/catch around notification failing for inactive slack hooks 2025-01-09 12:51:54 -08:00
snipe ec85e4b5b0 Upgrade less from 4.2.0 to 4.2.1 #15996
Signed-off-by: snipe <snipe@snipe.net>
2025-01-09 20:42:04 +00:00
snipe 1acb7e0fe4 Merge branch 'develop' of https://github.com/snipe/snipe-it into develop 2025-01-09 20:38:47 +00:00
snipe 5914004a57 Add @AnouarTouati as a contributor 2025-01-09 16:13:05 +00:00
snipe c5afc66d46 Merge pull request #16009 from AnouarTouati/prod-docker-fixes 2025-01-09 16:12:37 +00:00
snipe bc69660247 Merge pull request #16049 from snipe/localization/update_strings-2025-01-09 2025-01-09 16:02:03 +00:00
snipe 71c7c64fde Updated language strings
Signed-off-by: snipe <snipe@snipe.net>
2025-01-09 15:54:51 +00:00
snipe c284ac5287 Merge pull request #16047 from snipe/bug/sc-28054 2025-01-09 15:19:13 +00:00
snipe 639afe5b9b Check for blank OR null on formatter
Signed-off-by: snipe <snipe@snipe.net>
2025-01-09 15:11:22 +00:00
Brady Wetherington 049b9c542b Conditionally update assets when user's location moves via LDAP 2025-01-09 13:43:59 +00:00
Godfrey M 0118504cd3 adds redirect to render and save if template is null 2025-01-08 15:32:23 -08:00
Godfrey M f4e69679ca add a try catch around template validation 2025-01-08 12:13:31 -08:00
Godfrey M ce7a8ad808 add a space 2025-01-08 09:48:45 -08:00
Godfrey M c17c011488 checks if template is null, adds return types for validation methods 2025-01-08 09:47:20 -08:00
Godfrey M 92762896ef moar removal 2025-01-07 15:10:46 -08:00
Godfrey M c699baf519 removed commented out code, and unrelated crap 2025-01-07 15:10:00 -08:00
Godfrey M 97b765b5cc improved reports query, could be further optimized 2025-01-07 15:06:09 -08:00
snipe 40b41e646d Merge pull request #16033 from Godmartinz/barcode-fix 2025-01-07 19:59:30 +00:00
snipe 63853db450 Merge pull request #16035 from marcusmoore/fixes/unaccepted-assets-reminder 2025-01-07 19:58:23 +00:00
Marcus Moore 48dd3252cb Fix parameter order 2025-01-07 11:47:16 -08:00
snipe ee6f60e63c Merge pull request #16034 from Godmartinz/fix-locale-check 2025-01-07 19:00:32 +00:00
Godfrey M f6abf90ba0 fix locale check 2025-01-07 10:51:48 -08:00
Godfrey M 83ee0e0fb6 untangled code visibility from each label engine 2025-01-07 10:37:59 -08:00
Godfrey M 94f44d1b77 fix label type values in db and defaults. update help text 2025-01-07 10:00:52 -08:00
Godfrey M e12c7473f8 tinkering with the polymorphic eager load 2025-01-07 09:08:36 -08:00
snipe 407d69b370 Merge pull request #16031 from snipe/make_backups_more_configurable 2025-01-07 11:25:17 +00:00
snipe 774e795d97 Pull backup:clean settings into config
Signed-off-by: snipe <snipe@snipe.net>
2025-01-07 11:17:43 +00:00
snipe f698f74d3e Merge pull request #16028 from marcusmoore/fixes/report-template-column
Fixed migration causing issues with mariadb
2025-01-06 22:58:30 +00:00
Marcus Moore 80f9159f4d Change options to text type 2025-01-06 14:29:18 -08:00
Godfrey M 0ec25d55a0 Merge branch 'develop' into unaccepted_assets_reports_memory_fix 2025-01-06 12:28:17 -08:00
Godfrey M bb03e00279 fix deprecation on asset obs get unaccept report to populate 2025-01-06 11:26:45 -08:00
snipe 4d3db2ab44 Merge pull request #15919 from Godmartinz/table_dropdownmenu-fix
Removed the `table-responsive` div from several index blades
2025-01-06 18:11:19 +00:00
snipe c3d52af546 Merge pull request #16024 from snipe/fixes/#15977
Fixed  #15977 - Set order by on companies
2025-01-06 16:12:42 +00:00
snipe 9672a13402 Set order by on companies
Signed-off-by: snipe <snipe@snipe.net>
2025-01-06 16:11:18 +00:00
snipe 9564f7fdb8 Updated dev assets
Signed-off-by: snipe <snipe@snipe.net>
2025-01-06 12:46:17 +00:00
aHVzY2g eba1f03363 Added: TZe_24mm_D.php modified TZe_24mm_A that includes 1D code
New label format for TZe_24mm that includes all fields of TZe_24mm_A with the addition of the 1D code at the bottom of the label.
2025-01-03 11:10:44 +01:00
snipe c7ca4d061f Merge pull request #16013 from ubc-cpsc/bugfix/CVE-2024-56521-tcpdf
Fixes tecnickcom/tcpdf security CVEs
2024-12-30 23:22:32 +00:00
Joël Pittet 115f08ee49 Fixes tecnickcom/tcpdf security CVES: CVE-2024-56522, CVE-2024-56527, CVE-2024-56519, CVE-2024-56521 2024-12-30 13:59:03 -08:00
Anouar Touati e33c680679 Improvement: Change the logging channel to storage/logs/laravel.log file in dev container 2024-12-29 11:13:47 -05:00
Anouar Touati 1e8ec783b4 following docs for prod docker without specifying APP_VERSION will now get latest version as doc says 2024-12-29 11:05:02 -05:00
Anouar Touati a6ed958687 Fixed: dev dependencies are not installed in dev container 2024-12-29 11:02:09 -05:00
Anouar Touati 4354f50168 Fixed: Debug mode is not enabled in dev container 2024-12-29 11:02:09 -05:00
snipe 8fc1227974 Merge pull request #16003 from snipe/asset_maintenance_api_fix
Check for valid asset before accessing properties
2024-12-26 10:31:47 +00:00
snipe d410f168bd Removed extra checks, since we already check higher up
Signed-off-by: snipe <snipe@snipe.net>
2024-12-26 10:28:27 +00:00
snipe b38f9ad33c Updated return types
Signed-off-by: snipe <snipe@snipe.net>
2024-12-26 10:18:00 +00:00
snipe f8311815ee Check for valid asset before accessing properties
Signed-off-by: snipe <snipe@snipe.net>
2024-12-26 10:17:45 +00:00
snipe 3edb501973 Fixed typo sanitze to sanitize
Signed-off-by: snipe <snipe@snipe.net>
2024-12-25 20:45:19 +00:00
snipe 49918d3302 Merge pull request #15992 from marcusmoore/fixes/reset-demo-command
Fixed reset demo command
2024-12-19 23:24:37 +00:00
Marcus Moore 876ab44a16 Update settings property keys 2024-12-19 15:18:27 -08:00
snipe 15296d2b1c Merge pull request #15714 from akemidx/saving_custom_report_template
Saved Custom Report Templates
2024-12-19 22:43:59 +00:00
snipe 1434522149 Merge pull request #15912 from marcusmoore/bug/harden-checkout-validation-v2
Harden asset checkout validation
2024-12-19 22:42:06 +00:00
snipe 23af5fb06e Merge pull request #15964 from marcusmoore/testing/accessories-ui
Added Accessory UI tests
2024-12-19 22:40:34 +00:00
snipe 6b8c1eb523 Merge branch 'develop' into testing/accessories-ui 2024-12-19 22:38:04 +00:00
snipe 0984194ec6 Merge pull request #15965 from marcusmoore/testing/consumable-ui
Added Consumable UI tests
2024-12-19 22:36:47 +00:00
snipe 26264e1d55 Merge branch 'develop' into testing/consumable-ui 2024-12-19 22:34:10 +00:00
snipe dc5dedd5a3 Merge pull request #15975 from marcusmoore/testing/license-checkin
Added tests around license checkin
2024-12-19 22:33:03 +00:00
snipe d49bfb562a Merge branch 'develop' into testing/license-checkin 2024-12-19 22:29:31 +00:00
snipe f90dd9d74d Merge pull request #15976 from marcusmoore/testing/ui-render
Added simple front end render tests
2024-12-19 22:27:35 +00:00
snipe 8d24c0af0d Merge pull request #15982 from spencerrlongg/bug/sc-27228
Update Checkout Button Permission for Predefined Kits
2024-12-19 22:25:51 +00:00
snipe 174a01cb6b Merge pull request #15991 from snipe/added_some_sorting_on_audit_report
Added a few order options on audit report
2024-12-19 22:24:57 +00:00
snipe 360e0ff534 Added a few order options on audit report
Signed-off-by: snipe <snipe@snipe.net>
2024-12-19 22:19:33 +00:00
snipe 4f2721e93f Merge pull request #15986 from Godmartinz/fix-settings-seeder
Renames variables to match columns for label settings
2024-12-19 19:06:28 +00:00
snipe 0dce3b8b8c Merge pull request #15987 from spencerrlongg/bug/sc-27192
Add `string` to Password Reset Username Rules
2024-12-18 20:09:14 +00:00
spencerrlongg 5042c2b30a oops, rm dump 2024-12-18 13:58:18 -06:00
spencerrlongg b45cf6124f add note 2024-12-18 13:57:18 -06:00
Godfrey M c8f280ac90 change barcode column names in seeder 2024-12-18 09:50:55 -08:00
spencerrlongg 7eb936883a rm note 2024-12-17 16:38:29 -06:00
akemidx c3b5a92a48 added builder 2024-12-17 17:11:52 -05:00
spencerrlongg eb054897d6 Remove leftover testing logic and fix checkout permissions
Removed console logs and temporary testing code from the bootstrap-table view. Updated the transformer to correctly check checkout permissions against the Asset class instead of PredefinedKit.
2024-12-17 16:06:10 -06:00
akemidx f6dbda4056 fixing count to not used trashed 2024-12-17 17:03:46 -05:00
akemidx 5992d2a1d2 adding to controller 2024-12-17 15:43:13 -05:00
Marcus Moore a53976967a Use correct id 2024-12-17 10:31:35 -08:00
Marcus Moore 1be7508340 Add simple tests to ensure views render 2024-12-16 17:45:10 -08:00
Marcus Moore af135fa42c Add permissions property to group factory 2024-12-16 17:37:58 -08:00
Marcus Moore 7aa5195e87 Add tests for license checkin 2024-12-16 14:39:24 -08:00
snipe 04c3481734 Merge pull request #15973 from uberbrady/next_try_accessories_to_locations_rebased
Next try accessories to locations rebased
2024-12-16 20:25:25 +00:00
Brady Wetherington 582b462326 Removed inadvertently added files. 2024-12-16 16:55:54 +00:00
snipe b233715796 Fixed property
Signed-off-by: snipe <snipe@snipe.net>
2024-12-16 16:35:34 +00:00
snipe b93fc80011 Fixed admin -> adminuser property
Signed-off-by: snipe <snipe@snipe.net>
2024-12-16 16:35:34 +00:00
snipe 41a6b34768 Added new test
Signed-off-by: snipe <snipe@snipe.net>
2024-12-16 16:35:34 +00:00
snipe 17a6a871ae Updated comment
Signed-off-by: snipe <snipe@snipe.net>
2024-12-16 16:35:34 +00:00
snipe 5fceef1dc3 Updated routes with new endpoints
Signed-off-by: snipe <snipe@snipe.net>
2024-12-16 16:35:34 +00:00
snipe 9b04d2e51c Updated route in view
Signed-off-by: snipe <snipe@snipe.net>
2024-12-16 16:35:34 +00:00
snipe 51b426f0b4 Added accessory transformer to assets transformer
Signed-off-by: snipe <snipe@snipe.net>
2024-12-16 16:35:34 +00:00
snipe 021c4f2598 Added assets endpoint
Signed-off-by: snipe <snipe@snipe.net>
2024-12-16 16:35:34 +00:00
snipe ac96b8d4ae Added assignedAccessories method
Signed-off-by: snipe <snipe@snipe.net>
2024-12-16 16:35:34 +00:00
snipe bc8719e336 Specify created_by in the API call as well
Signed-off-by: snipe <snipe@snipe.net>
2024-12-16 16:35:34 +00:00
snipe bd38d64e66 Removed create() method
Signed-off-by: snipe <snipe@snipe.net>
2024-12-16 16:35:34 +00:00
snipe 74b5d6d12b Updated transformer
Signed-off-by: snipe <snipe@snipe.net>
2024-12-16 16:35:34 +00:00
snipe ddd11939a5 No need to include assigned_to
Signed-off-by: snipe <snipe@snipe.net>
2024-12-16 16:35:34 +00:00
snipe 3caa5f2042 Fixed user_id to created_by
Signed-off-by: snipe <snipe@snipe.net>
2024-12-16 16:35:34 +00:00
snipe 5226d507d4 Updated route
Signed-off-by: snipe <snipe@snipe.net>
2024-12-16 16:35:34 +00:00
snipe 274b659905 Added new route
Signed-off-by: snipe <snipe@snipe.net>
2024-12-16 16:35:34 +00:00
snipe a0b9714d72 Updated user_id to created_by
Signed-off-by: snipe <snipe@snipe.net>
2024-12-16 16:35:34 +00:00
snipe 36aea52ae0 Fixed variable in test
Signed-off-by: snipe <snipe@snipe.net>
2024-12-16 16:35:34 +00:00
snipe e0643cd744 Added currency and history icons
Signed-off-by: snipe <snipe@snipe.net>
2024-12-16 16:35:30 +00:00
snipe 27fab0f573 Use history icon
Signed-off-by: snipe <snipe@snipe.net>
2024-12-16 16:34:51 +00:00
snipe 183a4d49d8 Refactor of #15235 - added accessory checkout to locations, assets
Signed-off-by: snipe <snipe@snipe.net>
2024-12-16 16:34:49 +00:00
snipe edacc4eb54 Merge pull request #15446 from Godmartinz/barcode_settings_hide
Refactored Barcode Settings into Label Settings
2024-12-16 16:09:34 +00:00
snipe 1e7d7a147b Merge pull request #15972 from snipe/upgrade_fontawesome
Updated font awesome
2024-12-16 15:55:14 +00:00
snipe 8ee549efbf Bumped font-awesome to 6.7.0
Signed-off-by: snipe <snipe@snipe.net>
2024-12-16 15:51:23 +00:00
Marcus Moore 699476da90 Scaffold and implement some license checkin tests 2024-12-12 17:33:34 -08:00
Marcus Moore d763feb803 Add consumable ui tests 2024-12-12 16:41:46 -08:00
Marcus Moore d3bfa75251 Add accessory ui tests 2024-12-12 14:30:58 -08:00
Godfrey M 833af55806 Merge branch 'develop' into barcode_settings_hide 2024-12-12 12:05:29 -08:00
snipe d1246c65bd Merge pull request #15963 from snipe/localization/updated_strings_2024-12-12 2024-12-12 19:24:09 +00:00
snipe 38db890660 Updated strings
Signed-off-by: snipe <snipe@snipe.net>
2024-12-12 19:22:56 +00:00
snipe 01c18f6303 Merge pull request #15962 from snipe/fixes_rb-18772 2024-12-12 17:40:40 +00:00
snipe c5e2aed164 Check for assigned (not assigned_to) before trying to present() the name on bulk delete assets
Signed-off-by: snipe <snipe@snipe.net>
2024-12-12 17:37:08 +00:00
snipe 4d1d2fedb7 Merge pull request #15960 from uberbrady/improve_restore_cleaner_utf8 2024-12-12 17:05:10 +00:00
snipe ab6363a124 Merge pull request #15959 from snipe/remove_settings_api_endpoints 2024-12-12 16:53:15 +00:00
Brady Wetherington a0e7dcf4ff Fixes to 'clean' mode to better handle character sets and zero-values 2024-12-12 16:50:36 +00:00
snipe da33f1815a Removed index and destroy settinga API endpoints
Signed-off-by: snipe <snipe@snipe.net>
2024-12-12 16:46:19 +00:00
snipe f089d1f0a4 Merge pull request #15944 from marcusmoore/bug/required-display-for-selects 2024-12-12 01:42:26 +00:00
spencerrlongg 72f58b0405 leaving this here for notes etc 2024-12-11 19:13:51 -06:00
snipe 4bd6c2171c Merge pull request #15957 from Godmartinz/fix-checkout-notif-parameters 2024-12-12 00:38:21 +00:00
Marcus Moore 67494c1b0b Fix validation messages for select2 inputs 2024-12-11 16:26:23 -08:00
Godfrey M 3264149a2c fix other mailables 2024-12-11 16:26:18 -08:00
Marcus Moore 8417fcb604 Revert "Show frontend "required" validation for model and status selects"
This reverts commit 10a7ae8d47.
2024-12-11 16:25:45 -08:00
Godfrey M 331fbb66bd fix other mailables 2024-12-11 16:25:04 -08:00
Godfrey M 400833f834 reversed order of the acceptance and note paramter 2024-12-11 16:14:06 -08:00
snipe a7e6b8ea3f Merge pull request #15956 from marcusmoore/bug/sc-27731 2024-12-11 23:52:33 +00:00
Marcus Moore 6e31d0f2c3 Use appropriate category for licenses when seeding 2024-12-11 15:39:41 -08:00
snipe b9a660683c Merge pull request #15955 from ubc-cpsc/bugfix/GHSA-c2pc-g5qf-rfrf 2024-12-11 20:42:13 +00:00
Joël Pittet 014350a26b Fix league/commonmark's quadratic complexity bugs may lead to a denial of service 2024-12-11 12:04:45 -08:00
snipe 06a0ac895d Fixed #15928 - updated method name to setCreatedBy from SetUserId
Signed-off-by: snipe <snipe@snipe.net>
2024-12-11 18:34:18 +00:00
snipe 34a47e9e44 Add @sgross-emlix as a contributor 2024-12-11 18:09:53 +00:00
snipe f5a9e4bafa Fixes #15952 - fixed typo in content-type
Signed-off-by: snipe <snipe@snipe.net>
2024-12-11 18:09:19 +00:00
snipe 66339481cf Merge pull request #15954 from Godmartinz/null_fix-for-reminder-command 2024-12-11 17:38:59 +00:00
Godfrey M 2e97b56deb add null safe operator to acceptance reminder 2024-12-11 09:27:27 -08:00
akemidx 8adb62fd3a width fix 2024-12-10 19:17:01 -05:00
akemidx 43537d414b removed redundancy. 2024-12-10 16:42:55 -05:00
snipe 5014a95d9a Updated supported versions
Signed-off-by: snipe <snipe@snipe.net>
2024-12-10 13:27:59 +00:00
akemidx f2fab57187 cancel button pull to left.
added pull right to save
2024-12-09 19:28:57 -05:00
Marcus Moore 10a7ae8d47 Show frontend "required" validation for model and status selects 2024-12-09 16:09:51 -08:00
snipe 5f0efd8cdb Merge pull request #15940 from snipe/reove_gh_templates 2024-12-09 19:35:31 +00:00
spencerrlongg 03c90d7b60 note, will come back to this once question is answered 2024-12-09 13:29:06 -06:00
snipe 31155b5351 Removed issue/PR templates
Signed-off-by: snipe <snipe@snipe.net>
2024-12-09 19:28:51 +00:00
snipe cc8f72c3f9 Merge pull request #15914 from Godmartinz/send_reminder_emails 2024-12-09 19:23:13 +00:00
snipe a0bab70def Merge pull request #15939 from uberbrady/fix_ldap_asset_location_updater 2024-12-09 17:56:23 +00:00
Brady Wetherington b5c8251539 Only update asset locations to assets checked out to users. 2024-12-09 17:40:10 +00:00
snipe 0149ed75fd Merge pull request #15565 from spencerrlongg/bug/sc-25921 2024-12-09 17:00:10 +00:00
snipe f72635955d Merge pull request #15925 from Godmartinz/refactor-unaccepted-assets-reminder-notif 2024-12-09 16:40:21 +00:00
Godfrey M 5120cddda4 delete notification version of reminder 2024-12-05 16:02:55 -08:00
Godfrey M 97398f1e68 adds testing to unaccepted reminder command 2024-12-05 12:41:33 -08:00
Godfrey M 281ff6ad5d wrap comment 2024-12-05 11:52:34 -08:00
Godfrey M 9d49b01958 cleans up the Unaccepted Asset reminder variables 2024-12-05 11:46:56 -08:00
Godfrey M 3f8916ea2e fix duplicate emails being sent in unaccepted reminder command 2024-12-05 11:37:03 -08:00
Godfrey M f6b9ae6aee missed a spot 2024-12-05 10:18:35 -08:00
Godfrey M de41def2b3 fixed conditionals 2024-12-05 10:15:57 -08:00
Godfrey M 52b051e940 add mail class for unaccepted assets reminders 2024-12-05 10:08:39 -08:00
snipe a137e31797 Merge pull request #15920 from akemidx/asset-category-in-emails 2024-12-04 21:46:43 +00:00
spencerrlongg 513c78a09f Refactor CheckoutRequest actions for consistency
Renamed CheckoutRequest action classes to include "Action" in their names for consistency and clarity. Enhanced error handling in controllers to standardize error responses with translations. Updated usage of the renamed action classes throughout the code to ensure proper integration.
2024-12-03 17:51:12 -06:00
spencerrlongg 0103f20193 Merge branch 'develop' into feature/sc-24347 2024-12-03 16:05:39 -06:00
akemidx ca0f8ace99 fixed 2024-12-03 16:57:28 -05:00
akemidx 6252f0ac5e layout / added category id 2024-12-03 16:10:42 -05:00
Godfrey M b85b4b1e1b remove table-responsive div from several index bladees 2024-12-03 10:26:14 -08:00
snipe 43d66a8fcc Merge pull request #15918 from Godmartinz/mail_name_fix
Adds `MAIL_FROM_NAME` to mail envelope
2024-12-03 17:17:26 +00:00
Godfrey M e5284c03e2 fix typo 2024-12-03 09:10:50 -08:00
Godfrey M 16283b8fc0 adds mail from name to mail envelope 2024-12-03 09:08:39 -08:00
Godfrey M 983b78edd9 add property check 2024-12-02 14:27:04 -08:00
snipe 2ad1407d51 Merge pull request #15909 from Godmartinz/checkin-out-notifications
Fixed general webhook option notifications not firing
2024-12-02 22:03:32 +00:00
Godfrey M ab67c48352 fix unaccepted assets report resend acceptance 2024-12-02 13:03:09 -08:00
Marcus Moore 1d0d14876c Harden asset checkout validation 2024-12-02 12:49:02 -08:00
Fiala06 bdb0e6c2a3 Update LdapSync.php
Fix for duplicate entries preventing the sync from continuing. 

  SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '13178-6' for key 'PRIMARY' (Connection: mysql, SQL: insert into users_groups (group_id, user_id) values (6, 13178))
2024-12-02 11:07:37 -08:00
snipe 14730184c9 Fixed sr-only blank text
Signed-off-by: snipe <snipe@snipe.net>
2024-12-02 18:48:02 +00:00
snipe 8ff099e802 Merge pull request #15910 from marcusmoore/chore/include-testing-variable
Included MAIL_FROM_ADDR in phpunit configuration
2024-12-02 18:34:08 +00:00
Marcus Moore ea1f8328b9 Include MAIL_FROM_ADDR in phpunit configuration 2024-12-02 10:23:02 -08:00
Godfrey M 99464fcd86 fixes general webhook not firing 2024-12-02 10:19:24 -08:00
snipe 93d4d24194 Fixed funky layout in importer
Signed-off-by: snipe <snipe@snipe.net>
2024-12-02 17:56:15 +00:00
snipe 1bbe9bf6c9 Merge remote-tracking branch 'origin/develop' 2024-12-02 17:43:03 +00:00
snipe 6874f703bf Some CSS twiddling
Signed-off-by: snipe <snipe@snipe.net>
2024-12-02 17:42:26 +00:00
snipe a7d5b3944e Merge pull request #15908 from snipe/revert-15892-bug/harden-checkout-validation
Revert "Hardened asset checkout validation by requiring integer"
2024-12-02 17:42:02 +00:00
Marcus Moore b5e83899c6 Revert "Hardened asset checkout validation by requiring integer" 2024-12-02 09:37:21 -08:00
snipe dcd586e3cd Merge remote-tracking branch 'origin/develop' 2024-12-02 17:17:20 +00:00
snipe 1246ab1de7 Fixed bulk user form in user detail view
Signed-off-by: snipe <snipe@snipe.net>
2024-12-02 17:14:36 +00:00
Brady Wetherington eccdcc373e parent 2220828b00
author Brady Wetherington <bwetherington@grokability.com> 1728320853 +0100
committer Brady Wetherington <bwetherington@grokability.com> 1733158021 +0000

Prevent setting assigned_to without setting assigned_type

Fixed tests to include assigned_type when setting assigned_to

Add new tests for assigned_to without assigned_type

Added tighter validation to assigned_to and assigned_type, new tests

Fixed wrong comment

Fixed tests to include assigned_type when setting assigned_to

Add new tests for assigned_to without assigned_type

Fixed wrong comment
2024-12-02 16:53:08 +00:00
snipe 5a4a3aa8f3 Merge remote-tracking branch 'origin/develop' 2024-12-02 15:59:25 +00:00
snipe 2220828b00 Merge pull request #15904 from snipe/fixes/#15901
Fixed #15901 - re-added required indicator on text and select custom fields
2024-12-02 15:51:32 +00:00
snipe 716c67d4b8 Fixed #15901 - re-added required indicator on text and select custom fields
Signed-off-by: snipe <snipe@snipe.net>
2024-12-02 15:45:07 +00:00
snipe ee4a54be24 Fixed order by notes for users
Signed-off-by: snipe <snipe@snipe.net>
2024-11-27 15:48:13 +00:00
snipe 46be1ada60 Merge pull request #15892 from marcusmoore/bug/harden-checkout-validation
Hardened asset checkout validation by requiring integer
2024-11-27 14:55:11 +00:00
snipe e1c0a80c20 Merge remote-tracking branch 'origin/develop' 2024-11-27 13:52:03 +00:00
snipe 2cb1b6d462 Use transformer on API update
Signed-off-by: snipe <snipe@snipe.net>
2024-11-27 13:51:53 +00:00
snipe 37ac7fe25c Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	public/css/build/app.css
#	public/css/build/overrides.css
#	public/css/dist/all.css
#	public/mix-manifest.json
2024-11-26 20:38:46 +00:00
snipe 11f83b4cd9 Merge branch 'develop' of https://github.com/snipe/snipe-it into develop 2024-11-26 20:12:14 +00:00
snipe 0f1d10bd69 Dev assets
Signed-off-by: snipe <snipe@snipe.net>
2024-11-26 20:12:09 +00:00
snipe 82108f8a18 Merge pull request #15208 from akemidx/feature/sc-26415
FEATURE: Option for Notes to be Required on Asset Checkin/Checkout
2024-11-26 20:11:04 +00:00
akemidx a7dae10a82 fixing line 2024-11-26 15:06:25 -05:00
akemidx 2727210c78 requested changes from pr 2024-11-26 15:04:54 -05:00
Marcus Moore fcbd5dcae5 Harden asset checkout validation by requiring ints 2024-11-26 11:33:17 -08:00
snipe fa80716320 Merge pull request #15890 from Godmartinz/mobile-view-fix
Mobile view fix
2024-11-26 19:13:39 +00:00
Godfrey M 15c9df0ab1 fix mobile view for asset and user 2024-11-26 10:59:31 -08:00
snipe 6ee0c93c87 Merge remote-tracking branch 'origin/develop' 2024-11-26 18:47:22 +00:00
snipe 37e091adbb Merge pull request #15889 from Godmartinz/Fix-user-API-location-update
Fixed Users API `update` from clearing `location_id` unnecessarily
2024-11-26 18:45:20 +00:00
Godfrey M 021e82927e fixed mobile view of assets 2024-11-26 10:42:59 -08:00
Godfrey M 60642cd902 fix user api update from clearing location_id unnecessarily 2024-11-26 09:58:17 -08:00
snipe fd07550803 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	config/version.php
2024-11-25 14:19:05 +00:00
snipe 30b481bc93 Updated version
Signed-off-by: snipe <snipe@snipe.net>
2024-11-25 14:18:31 +00:00
snipe 25bfd3e845 Merge remote-tracking branch 'origin/develop' 2024-11-25 13:05:28 +00:00
snipe 0f18ee86f7 Updated translations
Signed-off-by: snipe <snipe@snipe.net>
2024-11-25 13:05:05 +00:00
snipe 4a5f65616f Merge remote-tracking branch 'origin/develop' 2024-11-25 12:56:08 +00:00
snipe f125c90c94 Merge pull request #15870 from marcusmoore/bug/sc-26857
Always call resizeCanvas
2024-11-22 00:59:36 +00:00
akemidx 0d608552ef orange bar for requirednessness 2024-11-21 19:09:54 -05:00
akemidx dd223fc215 commit for testing 2024-11-21 19:01:27 -05:00
Marcus Moore 87756cac66 Remove debugging 2024-11-21 14:30:17 -08:00
Marcus Moore 9f49c25401 WIP: move signature pad creation up and add debugging 2024-11-21 13:12:13 -08:00
Marcus Moore d0378070c8 Always call resizeCanvas 2024-11-21 12:38:53 -08:00
snipe 9f395d1f6a Merge remote-tracking branch 'origin/develop' 2024-11-21 19:58:49 +00:00
snipe feba860a90 Merge pull request #15850 from akemidx/bug/sc-27448
Adding colon to password translation string
2024-11-21 19:58:04 +00:00
akemidx 424316df9f fixing colon placements 2024-11-21 14:32:22 -05:00
snipe b7aedb7dcb Merge pull request #15818 from spencerrlongg/bug/sc-27213
Resolves Validation for Encrypted Numeric and Alpha Custom Fields
2024-11-21 19:25:27 +00:00
snipe 8b38dc83f6 Merge pull request #15851 from marcusmoore/testing/api-component-checkin
Fixed bug in component checkins via api
2024-11-21 19:24:12 +00:00
snipe ad2b85393b Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	public/js/build/app.js
#	public/js/build/vendor.js
#	public/js/dist/all.js
#	public/mix-manifest.json
2024-11-21 19:23:10 +00:00
snipe 85c1b0ec57 [Snyk] Upgrade jquery-ui from 1.14.0 to 1.14.1 #15868
Signed-off-by: snipe <snipe@snipe.net>
2024-11-21 19:22:08 +00:00
snipe b99b56b32b Merge remote-tracking branch 'origin/develop' 2024-11-21 14:41:42 +00:00
snipe 2a21cce4f5 Merge pull request #15839 from Godmartinz/fix-mail-envelope-variable
replace env with config variable for from address
2024-11-21 14:41:04 +00:00
snipe 3a683d84a7 Merge pull request #15859 from Godmartinz/remove_name_null_warning
Adds a ternary for blank emails for mail notifications
2024-11-21 14:38:03 +00:00
snipe e05f443886 Merge pull request #15864 from marcusmoore/testing/api-component-checkout
Added tests for component checkout api endpoint
2024-11-21 14:37:45 +00:00
Marcus Moore d65254c4ec Add tests for component checkout api endpoint 2024-11-20 15:34:08 -08:00
Godfrey M 6969b8be47 remove the changes to mail.from.address default 2024-11-20 14:25:57 -08:00
snipe 0a3bca078c Merge pull request #15860 from marcusmoore/tests/switch-to-file-for-sqlite-in-action
Improved speed of sqlite tests in GitHub Actions
2024-11-20 22:09:11 +00:00
Marcus Moore 9bbd802fce Use database file for sqlite in GitHub Action for tests 2024-11-20 12:33:58 -08:00
Marcus Moore f932a4fc76 Always run validation on checkin 2024-11-20 12:25:06 -08:00
Godfrey M f7c1fc852d no checked out to email doesnt trigger a 500 2024-11-20 08:29:28 -08:00
snipe 5522def054 Merge pull request #15854 from NebelKreis/feature/add-category-to-asset-mails
Added #15803: Category Field to Asset Related Mails
2024-11-20 13:51:34 +00:00
snipe 8cd4b3303e Merge pull request #15847 from NebelKreis/feature/hardware-label-generation-api
Added #15677: API Route for Generating Asset Labels
2024-11-20 11:14:28 +00:00
NebelKreis d5c141dc59 Fix: Removed setting validation as it is not strictly necessary 2024-11-20 11:55:48 +01:00
NebelKreis 7618169d79 Feature: Added category to asset requested email 2024-11-20 11:22:19 +01:00
NebelKreis eb026248a8 Feature: Added category to asset acceptance/decline email 2024-11-20 10:59:59 +01:00
NebelKreis 4304af0508 Feature: Added category to asset checkin email 2024-11-20 10:27:37 +01:00
NebelKreis 61eff02fcb Feature: Added category to asset checkout email 2024-11-20 10:27:22 +01:00
snipe cca76005a2 Merge pull request #15852 from marcusmoore/testing/ui-delete-component
Added tests around deleting component via ui
2024-11-20 01:27:19 +00:00
Marcus Moore 54f5f46e31 Improve check for image existence 2024-11-19 16:44:42 -08:00
Marcus Moore 51a0767be9 Add tests around deleting component via ui 2024-11-19 16:44:19 -08:00
Marcus Moore da4c877ed8 Use === over == 2024-11-19 16:13:53 -08:00
Marcus Moore e8cad0df69 Formatting 2024-11-19 16:13:30 -08:00
Marcus Moore 59fe53842d Add tests around component check ins via api 2024-11-19 16:11:23 -08:00
akemidx 1e513312eb adding colon to password translation 2024-11-19 16:58:10 -05:00
Godfrey M 99de639be4 fix mail.from.address variables in config, simplify envelop[ variable 2024-11-19 09:32:11 -08:00
Godfrey M b513575643 add testing example var MAIL_FROM_ADDR 2024-11-19 09:10:52 -08:00
spencerrlongg 22602c7997 use existing validation strings 2024-11-19 08:59:47 -06:00
snipe d10f118128 Merge remote-tracking branch 'origin/develop' 2024-11-19 13:55:55 +00:00
snipe 5a5f1082fb Merge pull request #15848 from snipe/chore/sc-27531
Indicate requiredness on status select on bulk user checkin+delete
2024-11-19 13:55:22 +00:00
snipe 30a6a678d4 Indicate requiredness on status select on bulk user checkin+delete
Signed-off-by: snipe <snipe@snipe.net>
2024-11-19 13:50:18 +00:00
snipe 4384f8dcbb Merge remote-tracking branch 'origin/develop' 2024-11-19 13:32:02 +00:00
snipe d576016a1c Merge pull request #15845 from snipe/bug/sc-27523
Fixed variable name to correctly log created_by and date for bulk user delete/checkin
2024-11-19 13:29:21 +00:00
snipe 15a31bd141 Fixed variable name
Signed-off-by: snipe <snipe@snipe.net>
2024-11-19 13:22:44 +00:00
NebelKreis 5639a84d90 Feature: Added API route for asset label generation 2024-11-19 14:16:58 +01:00
NebelKreis 66d6b01307 Feature: Added translations for label generation API endpoint 2024-11-19 14:16:06 +01:00
NebelKreis 889aff43c2 Feature: Added API endpoint for generating asset labels 2024-11-19 14:13:05 +01:00
snipe 8f7223128f Merge pull request #15757 from akemidx/bug/sc-26944
FIXED: Bulk Delete page not showing full information
2024-11-19 12:34:57 +00:00
snipe 53cfcb7143 Merge pull request #15843 from snipe/viclou-patch-1
Update README.md - small typo
2024-11-19 10:50:28 +00:00
snipe d60ac0c78d Merge pull request #15840 from marcusmoore/fixes/migration-rollbacks
Fixed a couple migrate:rollback issues
2024-11-19 10:20:58 +00:00
victoria a328c7a64c Update README.md
typo mosrt to most under Join our Community links
2024-11-18 23:03:31 -10:00
Godfrey M f533cdc07a update default from address to alternate config variable 2024-11-18 12:39:28 -08:00
Marcus Moore f5206078d4 Fix rollback for webhook_endpoint by using correct column type 2024-11-18 12:25:02 -08:00
Marcus Moore 0209d27081 Fix rollback for created_by 2024-11-18 12:24:47 -08:00
Godfrey M d14f43fbbe replace env with config variable for from address 2024-11-18 10:54:03 -08:00
spencerrlongg b71a90a3c5 this should be all it takes to fix this, i think 2024-11-18 12:44:24 -06:00
snipe 8d321edca8 Merge remote-tracking branch 'origin/develop' 2024-11-15 18:59:40 +00:00
snipe 3fb543bf03 Merge pull request #15828 from snipe/bug/sc-27500
Fixed admin user not showing in download all activity report
2024-11-15 18:59:07 +00:00
snipe e8d1093376 Fixed admin user not showing in download all activity report
Signed-off-by: snipe <snipe@snipe.net>
2024-11-15 18:51:45 +00:00
snipe 66e82a345a Merge remote-tracking branch 'origin/develop' 2024-11-15 13:18:25 +00:00
snipe 187e231c0e Fixed #15825
Signed-off-by: snipe <snipe@snipe.net>
2024-11-15 13:18:15 +00:00
snipe caf92748fc Merge remote-tracking branch 'origin/develop' 2024-11-14 20:57:18 +00:00
snipe 09b7db5103 Additional fix for #15817
Signed-off-by: snipe <snipe@snipe.net>
2024-11-14 20:57:09 +00:00
snipe 5381c4e1e3 Merge remote-tracking branch 'origin/develop' 2024-11-14 20:53:17 +00:00
snipe add3edba20 Merge pull request #15822 from snipe/add_model_number_to_view_assets
Fixed #15820 - added model number to view-assets
2024-11-14 20:52:44 +00:00
snipe b4a2a4e1ec Fixed #15820 - added model number to view-assets
Signed-off-by: snipe <snipe@snipe.net>
2024-11-14 20:51:18 +00:00
snipe f2faf58786 Merge pull request #15817 from Godmartinz/label_fix
Removes asset tag if 2D code is not present
2024-11-14 20:49:31 +00:00
spencerrlongg 124f9c84c2 oops, something went wrong translation 2024-11-14 13:45:47 -06:00
snipe 96a4391d5c Merge remote-tracking branch 'origin/develop' 2024-11-14 19:05:08 +00:00
snipe 7b7a848a43 Merge pull request #15819 from snipe/fixes_asset_file_deletion
Corrected route name for delete action on filestable on assets
2024-11-14 18:01:56 +00:00
snipe 636e466b8a Fixed delete model file route
Signed-off-by: snipe <snipe@snipe.net>
2024-11-14 17:58:20 +00:00
snipe 838a6d03bd Corrected route name for filestable on assets
Signed-off-by: snipe <snipe@snipe.net>
2024-11-14 17:51:49 +00:00
spencerrlongg 8465806536 rm unnecessary imports 2024-11-14 11:51:41 -06:00
Godfrey M 0f1f6bc6a5 fixed rest of dymos 2024-11-14 09:45:52 -08:00
spencerrlongg 95cd779334 translations and attribute names 2024-11-14 11:42:35 -06:00
snipe 0a7d1a27ee Merge remote-tracking branch 'origin/develop' 2024-11-14 17:10:16 +00:00
snipe 306c97b5b5 Merge pull request #15816 from Godmartinz/Teams_fix
replace the via() channel for MS Teams (deprecated)
2024-11-14 17:09:47 +00:00
Godfrey M 23038ab209 removes tag if qr code is not present 2024-11-14 08:54:12 -08:00
Godfrey M 702621ec57 replace the via channel class 2024-11-14 08:38:18 -08:00
snipe 0be123b115 Merge remote-tracking branch 'origin/develop' 2024-11-14 14:47:18 +00:00
snipe c093b4531d Fixed anchor links
Signed-off-by: snipe <snipe@snipe.net>
2024-11-14 14:47:09 +00:00
snipe 517e923f70 Merge remote-tracking branch 'origin/develop' 2024-11-14 14:42:44 +00:00
snipe a0b8483878 Removed extra sort
Signed-off-by: snipe <snipe@snipe.net>
2024-11-14 14:41:11 +00:00
snipe 075e3503b1 Removed Twitter links
Signed-off-by: snipe <snipe@snipe.net>
2024-11-14 14:38:51 +00:00
snipe d427d9e5af Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>
2024-11-14 12:25:10 +00:00
snipe 940f1c2ecc Fixed #15812 - regression in action_type search
Signed-off-by: snipe <snipe@snipe.net>
2024-11-14 12:24:15 +00:00
snipe 3e131d515d Add @maciej-poleszczyk as a contributor 2024-11-14 11:06:55 +00:00
snipe 364410a586 Merge pull request #15558 from maciej-poleszczyk/develop
Fixing #15064 - to not fail ldap sync on single data issue with ldap …
2024-11-14 11:06:18 +00:00
snipe 70d9ef428c Merge pull request #15811 from snipe/small_fix_for_embiguous_created_by
Specify table name in select for models controller
2024-11-14 10:20:16 +00:00
snipe 4e28650ca9 Specify table name in select
Signed-off-by: snipe <snipe@snipe.net>
2024-11-14 10:18:39 +00:00
spencerrlongg 8c6869fd34 note and rm dump and comment 2024-11-13 21:59:32 -06:00
spencerrlongg 7e7cbc4cc8 seems to work just fine now, needs translations 2024-11-13 21:54:25 -06:00
spencerrlongg 25163d1756 working except for null 🤔 2024-11-13 21:46:23 -06:00
spencerrlongg 3982201d0e this should work in theory - local is screwy though 2024-11-13 21:38:09 -06:00
snipe 647ef6a4b7 Versioning stuff is hard - fixed v7.0.14 to v7.1.14
Signed-off-by: snipe <snipe@snipe.net>
2024-11-14 01:11:29 +00:00
snipe a060f603b5 Versioning stuff is hard - fixed v7.0.14 to v7.1.14
Signed-off-by: snipe <snipe@snipe.net>
2024-11-14 01:11:01 +00:00
snipe a89e17212e Bumped version
Signed-off-by: snipe <snipe@snipe.net>
2024-11-13 23:46:30 +00:00
snipe f7dcfca66c Bumped version
Signed-off-by: snipe <snipe@snipe.net>
2024-11-13 23:46:04 +00:00
akemidx efeef5cdc4 removing || parts of if else 2024-11-13 18:29:58 -05:00
akemidx 9cb411c500 removing required form div container 2024-11-13 18:06:04 -05:00
snipe eb57652548 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	config/version.php
#	public/css/build/app.css
#	public/css/build/overrides.css
#	public/css/dist/all.css
#	public/css/dist/skins/_all-skins.css
#	public/css/dist/skins/_all-skins.min.css
#	public/css/dist/skins/skin-black-dark.css
#	public/css/dist/skins/skin-black-dark.min.css
#	public/css/dist/skins/skin-blue-dark.css
#	public/css/dist/skins/skin-blue-dark.min.css
#	public/css/dist/skins/skin-green-dark.css
#	public/css/dist/skins/skin-green-dark.min.css
#	public/css/dist/skins/skin-orange-dark.css
#	public/css/dist/skins/skin-orange-dark.min.css
#	public/css/dist/skins/skin-purple-dark.css
#	public/css/dist/skins/skin-purple-dark.min.css
#	public/css/dist/skins/skin-red-dark.css
#	public/css/dist/skins/skin-red-dark.min.css
#	public/css/dist/skins/skin-yellow-dark.css
#	public/css/dist/skins/skin-yellow-dark.min.css
#	public/mix-manifest.json
2024-11-13 22:57:00 +00:00
snipe cb7e47a3a3 Updated translations
Signed-off-by: snipe <snipe@snipe.net>
2024-11-13 22:55:33 +00:00
Marcus Moore 92f33c08f7 Merge branch 'develop' into saving_custom_report_template 2024-11-13 14:54:00 -08:00
snipe 0ba861920f Updated dev assets
Signed-off-by: snipe <snipe@snipe.net>
2024-11-13 22:51:20 +00:00
snipe e185b2b781 Bumped hash
Signed-off-by: snipe <snipe@snipe.net>
2024-11-13 22:50:13 +00:00
snipe 3bf33aa682 Merge remote-tracking branch 'origin/develop' 2024-11-13 22:39:01 +00:00
snipe 5084843f9d Merge pull request #15809 from marcusmoore/fixes/teams
Fixed Microsoft Teams notifications
2024-11-13 22:38:24 +00:00
Marcus Moore e80a456e04 Remove duplicate method 2024-11-13 14:35:20 -08:00
Marcus Moore c399d797b4 Add conditional for microsoft team integration version 2024-11-13 14:29:01 -08:00
Marcus Moore ac3ae651b1 Remove incorrect typehint 2024-11-13 14:15:43 -08:00
snipe 73383c688e Merge pull request #15782 from Toreg87/fixes/indentation_userscontroller
Fix Indentation in UsersController
2024-11-13 21:21:40 +00:00
snipe 24456f723b Merge remote-tracking branch 'origin/develop' 2024-11-13 21:21:08 +00:00
snipe 9d2cbc4bb9 Add @DarrenRainey as a contributor 2024-11-13 21:20:45 +00:00
snipe 796a397d08 Merge pull request #15807 from DarrenRainey/develop
Patch for whitespace causing HTTP 500 errors.
2024-11-13 21:20:26 +00:00
snipe 19bf549450 Merge remote-tracking branch 'origin/develop' 2024-11-13 21:17:40 +00:00
snipe 381c6e05bb Merge pull request #15808 from Godmartinz/check-license-for-email-boolean
Fixed checkin/checkout email boolean check for Licenses
2024-11-13 21:17:08 +00:00
snipe ada8e77b85 Added location to asset view
Signed-off-by: snipe <snipe@snipe.net>
2024-11-13 21:16:08 +00:00
Godfrey M 1061df8c8b fix user checkout license category email check 2024-11-13 13:07:28 -08:00
Darren Rainey 823af33d1f Patch for whitespace causing HTTP 500 errors.
Patch for whitespace causing HTTP 500 errors.
Patch that adds qoutes around MAIL_FROM_NAME and MAIL_REPLYTO_NAME as current script will generate a .env file which causes an 500 error preventing the site from loading.

Log File: /var/log/apache2/error.log:
The environment file is invalid!
Failed to parse dotenv file. Encountered unexpected whitespace at [Asset Management System].
2024-11-13 20:58:36 +00:00
snipe 02ba13be26 Merge pull request #15730 from akemidx/bug/sc-26974-2
FIXED: Login button can disappear under some circumstances
2024-11-13 20:47:20 +00:00
snipe 0a87b0b790 Merge pull request #15784 from Godmartinz/Fieldset_table_borders
Fixed dark background to fieldsets and right border
2024-11-13 20:40:25 +00:00
snipe 8feb9c49b0 Merge remote-tracking branch 'origin/develop' 2024-11-13 20:39:45 +00:00
snipe f2fc11035f Merge pull request #15806 from Godmartinz/improved-checkoutable-logging
improved logging in checkoutable listener
2024-11-13 20:39:21 +00:00
snipe 3c08760aeb Merge pull request #15802 from snipe/features/import_models
Ability to import asset models (separate from assets)
2024-11-13 20:37:31 +00:00
Godfrey M 8389c03450 improved logging in checkoutable listener 2024-11-13 12:19:16 -08:00
snipe ab2e7a315a Merge pull request #15805 from Godmartinz/license-markdown-fix
Fixed license serial gate in markdown
2024-11-13 20:13:28 +00:00
Godfrey M d7b60b3482 fix serial check in markdown 2024-11-13 11:59:22 -08:00
snipe 52dceda5a2 Merge pull request #15804 from snipe/update_laravel
Updated laravel, additional packages for CVE-2024-52301
2024-11-13 19:49:12 +00:00
snipe 92ae7267d0 Updated laravel, additional packages
Signed-off-by: snipe <snipe@snipe.net>
2024-11-13 19:43:39 +00:00
snipe 7ccbc60ec0 Chaneg to ucfirst for Assetmodel -> AssetModel
Signed-off-by: snipe <snipe@snipe.net>
2024-11-13 19:35:56 +00:00
snipe 2e340f9a23 Two more case fixes
Signed-off-by: snipe <snipe@snipe.net>
2024-11-13 19:18:38 +00:00
snipe 304fddb1d1 Removed unused test
Signed-off-by: snipe <snipe@snipe.net>
2024-11-13 18:59:32 +00:00
snipe 1caf73f9da Fixed casing, fixed typo
Signed-off-by: snipe <snipe@snipe.net>
2024-11-13 18:58:30 +00:00
spencerrlongg 4841b89109 scratch code for this issue 2024-11-13 12:45:39 -06:00
snipe 6f700ccc95 Added relationship for adminuser
Signed-off-by: snipe <snipe@snipe.net>
2024-11-13 18:42:44 +00:00
snipe 6fee533283 Updated CSV
Signed-off-by: snipe <snipe@snipe.net>
2024-11-13 18:42:35 +00:00
snipe 4a18946dd7 Added created by to imports
Signed-off-by: snipe <snipe@snipe.net>
2024-11-13 18:42:27 +00:00
snipe 7c3f9ba6af Fixed tests
Signed-off-by: snipe <snipe@snipe.net>
2024-11-13 18:42:03 +00:00
snipe d3602c0595 Allow sorting on admin name in API
Signed-off-by: snipe <snipe@snipe.net>
2024-11-13 18:23:26 +00:00
snipe 1aef7edc43 Added created by to the import itself
Signed-off-by: snipe <snipe@snipe.net>
2024-11-13 18:23:11 +00:00
snipe d4018a2834 Added created_by to models API
Signed-off-by: snipe <snipe@snipe.net>
2024-11-13 18:22:57 +00:00
snipe 0c3b8cb114 Moved created by to create only
Signed-off-by: snipe <snipe@snipe.net>
2024-11-13 18:22:46 +00:00
snipe b6dbb8879a Added created by
Signed-off-by: snipe <snipe@snipe.net>
2024-11-13 18:22:30 +00:00
snipe 3a1fb615e7 Added admin sort scope
Signed-off-by: snipe <snipe@snipe.net>
2024-11-13 18:22:05 +00:00
snipe 8c3b50dbf2 Added created by
Signed-off-by: snipe <snipe@snipe.net>
2024-11-13 18:21:36 +00:00
snipe 54f7917fbe Added created by
Signed-off-by: snipe <snipe@snipe.net>
2024-11-13 18:21:27 +00:00
snipe d7e5fe50eb Use auth facade
Signed-off-by: snipe <snipe@snipe.net>
2024-11-13 18:21:19 +00:00
snipe 0a6096e528 Updated method name
Signed-off-by: snipe <snipe@snipe.net>
2024-11-13 18:21:00 +00:00
snipe 0ae1db6fe3 Added created_by
Signed-off-by: snipe <snipe@snipe.net>
2024-11-13 18:20:47 +00:00
snipe 4d3137e15a Added $accessory->created_by = auth()->id();
Signed-off-by: snipe <snipe@snipe.net>
2024-11-13 18:18:46 +00:00
snipe 66aaafc4f2 Updated variable name
Signed-off-by: snipe <snipe@snipe.net>
2024-11-13 17:08:20 +00:00
snipe 85dbbdbbcb wtf
Signed-off-by: snipe <snipe@snipe.net>
2024-11-13 16:53:19 +00:00
snipe 813b304a01 Fixed tests
Signed-off-by: snipe <snipe@snipe.net>
2024-11-13 16:49:58 +00:00
snipe 2f943bc052 Better error messaging for bad fields
Signed-off-by: snipe <snipe@snipe.net>
2024-11-13 16:44:09 +00:00
snipe 74ca561ab0 Fixed welcome email toggle
Signed-off-by: snipe <snipe@snipe.net>
2024-11-13 16:43:57 +00:00
snipe 69e36738fe Updated CSV
Signed-off-by: snipe <snipe@snipe.net>
2024-11-13 16:28:10 +00:00
snipe 4afe873f24 Fixed tests, updated CSV
Signed-off-by: snipe <snipe@snipe.net>
2024-11-13 16:21:40 +00:00
snipe 220902a8b4 Merge branch 'develop' into features/import_models 2024-11-13 15:51:36 +00:00
snipe 3740b58580 Re-added assetmodel import factory
Signed-off-by: snipe <snipe@snipe.net>
2024-11-13 15:46:25 +00:00
snipe 3d3e3a9557 Squashed commit of the following:
commit c012bf0ece
Merge: 787340b98 947351af6
Author: snipe <snipe@snipe.net>
Date:   Wed Nov 13 00:55:53 2024 +0000

    Merge pull request #15799 from Godmartinz/update_deprecated_trigger_for_ms_teams

    Updated deprecated trigger for ms teams

commit 947351af67
Author: Godfrey M <godmartinz@gmail.com>
Date:   Tue Nov 12 16:49:02 2024 -0800

    removed unused variabl

commit 4e0d70e0b8
Author: Godfrey M <godmartinz@gmail.com>
Date:   Tue Nov 12 15:44:14 2024 -0800

    checkin notif was missing

commit 832ccc6aa3
Author: Godfrey M <godmartinz@gmail.com>
Date:   Tue Nov 12 15:35:09 2024 -0800

    updated deprecated trigger for ms teams

commit 787340b987
Merge: 6bec57395 c62a02225
Author: snipe <snipe@snipe.net>
Date:   Tue Nov 12 22:35:11 2024 +0000

    Merge pull request #14441 from Godmartinz/ldap_location-resync

    Fixes Assets location not being resynced when Users location is updated via LDAP

commit 6bec573956
Merge: b6ad69fac 1fc5bb54e
Author: snipe <snipe@snipe.net>
Date:   Mon Nov 11 13:54:09 2024 +0000

    Merge pull request #15794 from snipe/check_for_file_on_asset_acceptance

    Check that the file exists before trying to download stored EULA

commit 1fc5bb54e1
Author: snipe <snipe@snipe.net>
Date:   Mon Nov 11 13:50:53 2024 +0000

    Check that the file exists before trying to download

    Signed-off-by: snipe <snipe@snipe.net>

commit b6ad69fac2
Merge: 357ef7e37 47b2cdb84
Author: snipe <snipe@snipe.net>
Date:   Sun Nov 10 18:05:20 2024 +0000

    Merge pull request #15793 from snipe/allow_eol_explicit

    Allow user to specify null for calculation or explicit on bulk edit

commit 47b2cdb846
Author: snipe <snipe@snipe.net>
Date:   Sun Nov 10 18:04:13 2024 +0000

    Allow user to specify null for calculation or explicit on bulk edit

    Signed-off-by: snipe <snipe@snipe.net>

commit 357ef7e375
Merge: 000f3171e 6928b1b27
Author: snipe <snipe@snipe.net>
Date:   Sun Nov 10 17:48:25 2024 +0000

    Merge pull request #15792 from snipe/edit_eol_from_bulk

    Added EOL date to bulk asset edit

commit 6928b1b273
Author: snipe <snipe@snipe.net>
Date:   Sun Nov 10 17:47:10 2024 +0000

    Added eol date to bulk asset edit

    Signed-off-by: snipe <snipe@snipe.net>

commit 000f3171e3
Author: snipe <snipe@snipe.net>
Date:   Fri Nov 8 10:28:01 2024 +0000

    Upgrade jspdf-autotable from 3.8.3 to 3.8.4 #15786

    Signed-off-by: snipe <snipe@snipe.net>

commit 5ef3183a52
Merge: a41529dbc 050831868
Author: snipe <snipe@snipe.net>
Date:   Thu Nov 7 11:44:06 2024 +0000

    Merge pull request #15783 from uberbrady/improve_user_and_location_manager_indexes

    Improved indexes on manager_id for locations and users, including del…

commit 050831868e
Author: Brady Wetherington <bwetherington@grokability.com>
Date:   Thu Nov 7 11:39:27 2024 +0000

    Improved indexes on manager_id for locations and users, including deleted_at

commit a41529dbc4
Merge: aa168fcb5 4fcf5ac7d
Author: snipe <snipe@snipe.net>
Date:   Wed Nov 6 21:22:45 2024 +0000

    Merge pull request #15780 from uberbrady/add_manager_indexes

    Add new indexes to locations and users for faster manager lookups

commit 4fcf5ac7da
Author: Brady Wetherington <bwetherington@grokability.com>
Date:   Wed Nov 6 21:19:41 2024 +0000

    Add new indexes to locations and users for faster manager lookups

commit aa168fcb5b
Author: snipe <snipe@snipe.net>
Date:   Wed Nov 6 18:41:52 2024 +0000

    Updated BS table to 1.23.5

    Signed-off-by: snipe <snipe@snipe.net>

commit 9c1c93ad52
Merge: b96a31253 ad99b8b45
Author: snipe <snipe@snipe.net>
Date:   Wed Nov 6 18:40:35 2024 +0000

    Merge pull request #15774 from marcusmoore/feature/sc-27350

    Added Checkout ID column to user accessory table

commit ad99b8b456
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Nov 6 10:37:31 2024 -0800

    Use generic ID translation

commit b96a312539
Merge: 654f67b6a bab1e58ea
Author: snipe <snipe@snipe.net>
Date:   Wed Nov 6 18:29:22 2024 +0000

    Merge pull request #15779 from ubc-cpsc/bugfix/CVE-2024-50345

    Fixes CVE-2024-50342, CVE-2024-50345, CVE-2024-51736

commit bab1e58ea4
Author: Joël Pittet <pittet@cs.ubc.ca>
Date:   Wed Nov 6 09:46:11 2024 -0800

    symfony/http-client CVE-2024-50342, symfony/http-foundation CVE-2024-50345, symfony/process CVE-2024-51736

commit 654f67b6ac
Author: snipe <snipe@snipe.net>
Date:   Wed Nov 6 14:05:42 2024 +0000

    Updated webpack

    Signed-off-by: snipe <snipe@snipe.net>

commit 3965bcd7c1
Merge: 287f4addf 2362cb5e5
Author: snipe <snipe@snipe.net>
Date:   Wed Nov 6 14:02:44 2024 +0000

    Merge pull request #15773 from Godmartinz/Fix_failing_failing_tests

    Fixed notifications for licenses and asset to asset checkoutables

commit 2362cb5e52
Author: Godfrey M <godmartinz@gmail.com>
Date:   Mon Nov 4 16:32:46 2024 -0800

    refactor to getNotifiables

commit e7cb4a75eb
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Nov 4 15:56:53 2024 -0800

    Show accessory checkout id in user accessory table

commit 93494ac554
Author: Godfrey M <godmartinz@gmail.com>
Date:   Mon Nov 4 15:17:58 2024 -0800

    put dataprovider back in for tests

commit 0d707a1851
Author: Godfrey M <godmartinz@gmail.com>
Date:   Mon Nov 4 15:13:10 2024 -0800

    fixes notifications for licenses and asset to asset checkouables

commit 287f4addf0
Merge: f32ebdc7a 2e96d478f
Author: snipe <snipe@snipe.net>
Date:   Mon Nov 4 20:06:24 2024 +0000

    Merge pull request #15771 from snipe/revert-15744-chore/action-tests-debugging

    Revert "Added the display of logs when tests fail in GitHub Actions"

commit 2e96d478f1
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Nov 4 11:04:17 2024 -0800

    Revert "Added the display of logs when tests fail in GitHub Actions"

commit f32ebdc7ac
Merge: 5897d37fc d6c7dc8e1
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 31 22:39:58 2024 +0000

    Merge pull request #15765 from marcusmoore/chore/add-missing-livewire-file

    Added missing Livewire file

commit d6c7dc8e1c
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Oct 31 15:37:01 2024 -0700

    Add missing livewire file

commit 5897d37fcf
Merge: 49de07045 21a27dcac
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 31 20:54:01 2024 +0000

    Merge pull request #15763 from Godmartinz/no_to_email_check

    Fixed emails not being send if target has no email or if not instance of User. Cc_emails will still be sent.

commit 21a27dcac1
Merge: 379138076 49de07045
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 31 12:55:46 2024 -0700

    fixed conflicts

commit 3791380764
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 31 12:52:47 2024 -0700

    remove unused uses

commit 7a0f79ecd2
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 31 12:51:22 2024 -0700

    remove test route

commit 97a449e80e
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 31 12:50:13 2024 -0700

    removes instanceof User check

commit e65942064e
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 31 12:45:29 2024 -0700

    send emails even if target has no email

commit 49de07045a
Merge: 7e996c40f 73772a013
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 31 17:53:17 2024 +0000

    Merge pull request #15731 from Godmartinz/refacto_ms_teams_notifs

    Fixed MS Team Notifications to utilize workflows after deprecation

commit 7e996c40f5
Merge: 73e8f160c 69e74bbdd
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 31 02:51:42 2024 +0000

    Merge pull request #15758 from snipe/jerm/fix-deprecation-warning

    Fix ${var} deprecation warning in License model

commit 69e74bbdd3
Author: Jeremy Price <jeremy@grokability.com>
Date:   Wed Oct 30 19:43:54 2024 -0700

    Fix ${var} deprecation warning in License model

    When upgrading to php8.3 i started getting deprecation warning about
    using ${var} instead of {$var} in 2 places in License.php

    PHP Deprecated:  Using ${var} in strings is deprecated, use {$var} instead in /var/www/snipe-it/app/Models/License.php on line 187
    PHP Deprecated:  Using ${var} in strings is deprecated, use {$var} instead in /var/www/snipe-it/app/Models/License.php on line 219

    This simple fix switches the offending statements to {$var} syntax.

commit 73e8f160cf
Merge: f68df1fa0 bd23772fe
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 30 19:29:09 2024 +0000

    Merge pull request #15756 from Godmartinz/cc-email-array

    changes `admin_cc_email` validation to allow an array

commit bd23772fe9
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 30 11:42:15 2024 -0700

    changes cc_email validation to allow array

commit 73772a0138
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 30 11:12:31 2024 -0700

    change button text

commit b26cae372c
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 30 10:40:23 2024 -0700

    merged in develop

commit d6ba303f39
Merge: 9a0eee8f0 f68df1fa0
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 30 10:27:45 2024 -0700

    Merge branch 'develop' into refacto_ms_teams_notifs

    # Conflicts:
    #	app/Listeners/CheckoutableListener.php

commit f68df1fa06
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 30 13:21:13 2024 +0000

    Made type searchable in action logs

    Signed-off-by: snipe <snipe@snipe.net>

commit f0813e03bf
Merge: 05875ebd1 58ff641f8
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 30 12:18:41 2024 +0000

    Merge pull request #15681 from Godmartinz/seperating_notification_n_mail

    Separated Notifications and Emails: Check ins and Check outs

commit 05875ebd1f
Author: snipe <snipe@snipe.net>
Date:   Mon Oct 28 22:04:35 2024 +0000

    Updated translations

    Signed-off-by: snipe <snipe@snipe.net>

commit 9a0eee8f03
Author: Godfrey M <godmartinz@gmail.com>
Date:   Mon Oct 28 15:03:43 2024 -0700

    revert testing variables

commit 6128765d1f
Author: Godfrey M <godmartinz@gmail.com>
Date:   Mon Oct 28 15:03:03 2024 -0700

    change wording on notification button

commit c24f79c025
Author: Godfrey M <godmartinz@gmail.com>
Date:   Mon Oct 28 14:58:43 2024 -0700

    update method comment

commit e7c4343c90
Author: Godfrey M <godmartinz@gmail.com>
Date:   Mon Oct 28 14:56:48 2024 -0700

    readd checkin accessory format

commit c0620c27ff
Author: Godfrey M <godmartinz@gmail.com>
Date:   Mon Oct 28 14:30:34 2024 -0700

    adds back laravels channel formats

commit ed81973fe6
Author: Godfrey M <godmartinz@gmail.com>
Date:   Mon Oct 28 13:57:42 2024 -0700

    adds notifications for deprecation

commit 2d318b394c
Merge: 86d784bd5 5c4971612
Author: snipe <snipe@snipe.net>
Date:   Mon Oct 28 18:41:49 2024 +0000

    Merge pull request #15744 from marcusmoore/chore/action-tests-debugging

    Added the display of logs when tests fail in GitHub Actions

commit b987b3dc00
Author: Godfrey M <godmartinz@gmail.com>
Date:   Mon Oct 28 10:57:48 2024 -0700

    adds back the laravel channels package and applies a deprecated check

commit 5c49716129
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Oct 28 10:24:35 2024 -0700

    Dump logs on test failure

commit 86d784bd59
Author: snipe <snipe@snipe.net>
Date:   Mon Oct 28 13:37:59 2024 +0000

    Fixed #15740 - use non-translated strings for icons

    Signed-off-by: snipe <snipe@snipe.net>

commit 589f9cccdf
Author: snipe <snipe@snipe.net>
Date:   Mon Oct 28 12:04:10 2024 +0000

    Fixed  #15732

    Signed-off-by: snipe <snipe@snipe.net>

commit 4d848e45e6
Author: snipe <snipe@snipe.net>
Date:   Mon Oct 28 11:55:24 2024 +0000

    Fixed #15736

    Signed-off-by: snipe <snipe@snipe.net>

commit 58ff641f82
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 24 22:53:53 2024 -0700

    removed unused variables

commit ce68f550d8
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 24 16:01:17 2024 -0700

    remove alert emails from cc

commit 6f0c1b12b1
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 24 15:04:54 2024 -0700

    this adds check out message for consumables

commit 278bc5e52a
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 24 14:59:10 2024 -0700

    ads check in and checkout message for license seats

commit cce75a8185
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 24 14:48:23 2024 -0700

    adds check in and checkout messag for accessories

commit e27ff13377
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 24 14:39:40 2024 -0700

    adds check in and checkout message for assets

commit 56365495a1
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 24 14:26:42 2024 -0700

    remove unnecessary fields in accessory checkout mail

commit 18da80e6de
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 24 14:24:00 2024 -0700

    fix checkoutable listener for microsoft teams

commit 18760e3fa1
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 24 12:21:51 2024 -0700

    replaces teams notification package, passes integration test

commit 57107c487c
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 24 09:40:10 2024 -0700

    fixed last test, definetly the last test

commit dfc63641dc
Merge: 07a51ec8b b6340532d
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 24 11:40:50 2024 +0100

    Merge pull request #15550 from uberbrady/fix_multi_create_partial_failure

    Fix multi create partial failure (fixes: [RB-18591])

commit 07a51ec8b1
Merge: e0ec6795b 727c0e458
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 24 10:03:10 2024 +0100

    Merge pull request #15712 from Godmartinz/fix_import-progress-bar

    Upgraded `livewire v3.5.9 => v3.5.12`

commit 6329f5b87e
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 23 17:33:23 2024 -0700

    removed unused variable from test

commit e0ec6795b5
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 24 01:27:50 2024 +0100

    Use crucial for seeded data

    Signed-off-by: snipe <snipe@snipe.net>

commit 15073a0d38
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 23 17:27:37 2024 -0700

    last test to fix

commit a80c09c16d
Merge: ab3b9c451 5509d756b
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 23 17:23:55 2024 -0700

    Merge branch 'develop' into seperating_notification_n_mail

commit 5509d756b7
Merge: 55ba6279a b16a978f1
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 24 01:12:11 2024 +0100

    Merge pull request #15722 from Godmartinz/fix_component_factory

    Fixed Component Factory: use manufacturer factory for `manufactuer_id`

commit b16a978f1b
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 23 16:25:51 2024 -0700

    uses manufacturer factory for manufactuer_id

commit ab3b9c4510
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 23 16:24:01 2024 -0700

    remove unnecessary code from checkinasset notification

commit 2cc2b2b1df
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 23 16:06:27 2024 -0700

    apply array_filter to cc emails to prevent errors

commit 62d06b44d6
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 23 15:43:42 2024 -0700

    set fallback from email address to service.snipe-it.io

commit f29a383179
Merge: fd74c3510 55ba6279a
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 23 15:15:14 2024 -0700

    Merge branch 'develop' into seperating_notification_n_mail

    # Conflicts:
    #	app/Notifications/CheckoutConsumableNotification.php

commit fd74c35102
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 23 15:08:29 2024 -0700

    remove old notify by mail from consumable notification

commit c681946b1d
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 23 15:05:39 2024 -0700

    added component markdown changes

commit 257d25bd9e
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 23 14:56:54 2024 -0700

    removed import notification from test, feature is not present in project

commit 6c34a5c52c
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 23 14:54:21 2024 -0700

    conditionally check cc emails, initiate variables

commit 1b5f4415ae
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 23 14:44:45 2024 -0700

    corrected cc email behavior

commit 55ba6279a4
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 23 19:14:17 2024 +0100

    Use trans_choice on alert menu

    Signed-off-by: snipe <snipe@snipe.net>

commit a9eea830e3
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 23 19:05:34 2024 +0100

    Added manufacturer and model number to component seeders

    Signed-off-by: snipe <snipe@snipe.net>

commit af564935d5
Merge: d58f87862 3ee76be7e
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 23 17:56:04 2024 +0100

    Merge pull request #15720 from snipe/15695_adds_manufacturer_and_model_number_to_components

    Fixed #15695 - Added manufacturer and model_number to components

commit 3ee76be7e3
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 23 17:50:22 2024 +0100

    Added manufacturer and model_number to components

    Signed-off-by: snipe <snipe@snipe.net>

commit d58f87862c
Merge: 5da3ce356 0b6859c49
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 23 15:09:50 2024 +0100

    Merge pull request #15719 from snipe/#15717_adds_qty_to_consumable

    Fixed #15717 - Added ability to checkout consumables in variable qty via API

commit 0b6859c491
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 23 15:05:35 2024 +0100

    Added ability to checkout consumables in variable qty

    Signed-off-by: snipe <snipe@snipe.net>

commit 1e9922a0b0
Author: Godfrey M <godmartinz@gmail.com>
Date:   Tue Oct 22 16:14:36 2024 -0700

    fix moar tests

commit ead27accac
Author: Godfrey M <godmartinz@gmail.com>
Date:   Tue Oct 22 15:45:52 2024 -0700

    fixed accessory tests and notifiable target

commit 727c0e458c
Author: Godfrey M <godmartinz@gmail.com>
Date:   Tue Oct 22 14:34:39 2024 -0700

    remove translation

commit 870dc747db
Author: Godfrey M <godmartinz@gmail.com>
Date:   Tue Oct 22 14:27:32 2024 -0700

    oops

commit 0fb3d83fac
Author: Godfrey M <godmartinz@gmail.com>
Date:   Tue Oct 22 14:26:54 2024 -0700

    revert controller change

commit 0d59ccd6a6
Author: Godfrey M <godmartinz@gmail.com>
Date:   Tue Oct 22 14:23:26 2024 -0700

    upgraded livewire v3.5.9 => v3.5.12

commit 5da3ce3564
Merge: c3bbca30a 5ecd2b629
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 22 22:10:20 2024 +0100

    Merge pull request #15711 from marcusmoore/fixes/custom-fieldset-checkboxes

    Fixed custom field checkboxes on asset edit page

commit c3bbca30ad
Merge: dccb788a8 37f14fff3
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 22 22:07:50 2024 +0100

    Merge pull request #15710 from snipe/fixes_lightbox_for_avif

    Fixes #15701 - load avif files properly in lightbox

commit 37f14fff3b
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 22 22:07:28 2024 +0100

    Fixed typo

    Signed-off-by: snipe <snipe@snipe.net>

commit eb6c51fabd
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 22 22:04:57 2024 +0100

    Fixes #15701 - load avif files properly in lightbox

    Signed-off-by: snipe <snipe@snipe.net>

commit 5ecd2b6293
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Tue Oct 22 14:04:05 2024 -0700

    Default checkbox elements to an empty array

commit 1e31592c55
Author: Godfrey M <godmartinz@gmail.com>
Date:   Tue Oct 22 11:49:06 2024 -0700

    messing with the tests

commit dccb788a88
Merge: 5e1d792bb d10fe77ee
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 22 17:44:30 2024 +0100

    Merge pull request #15691 from marcusmoore/fixes/get-id-for-current-user

    Updated `Company::getIdForCurrentUser()` to return null in certain scenarios

commit d10fe77ee7
Merge: e1882ee6d 5e1d792bb
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Tue Oct 22 09:38:31 2024 -0700

    Merge branch 'develop' into fixes/get-id-for-current-user

commit 5e1d792bba
Merge: 9cf71976f 780ed91a1
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 22 16:52:28 2024 +0100

    Merge pull request #15687 from NebelKreis/fix/dashboard-title-casing

    Fixed #15686: Corrected capitalization for dashboard section titles by removing strtolower()

commit 9cf71976f6
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 22 16:51:42 2024 +0100

    Fixed #15706 - Removed purchase order number from asset import

    Signed-off-by: snipe <snipe@snipe.net>

commit 15745d9737
Merge: bd97955b9 3f74ff25d
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 22 16:39:44 2024 +0100

    Merge pull request #15566 from Godmartinz/status-label-error-message

    Fixed Status Labels Error Message

commit bd97955b9e
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 22 16:38:46 2024 +0100

    Bumped hash

    Signed-off-by: snipe <snipe@snipe.net>

commit 252d99421c
Merge: 5767a98ad db8170162
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 22 16:26:48 2024 +0100

    Merge pull request #15689 from snipe/better_handle_inline_files

    Better handle inline files in file listing

commit 5767a98ad8
Merge: 0c820cbc0 524a44272
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 22 16:26:23 2024 +0100

    Merge pull request #15649 from bryanlopezinc/ImproveImporting

    Improve import performance

commit 0c820cbc0d
Merge: 147fcfb8e 3153bbb13
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 22 15:56:12 2024 +0100

    Merge pull request #15598 from spencerrlongg/bug/custom_field_validation_issue

    Custom Field Existence Validation Issue

commit db81701621
Merge: a05c33feb 147fcfb8e
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 22 15:44:24 2024 +0100

    Merge branch 'develop' into better_handle_inline_files

commit a05c33febf
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 22 15:43:19 2024 +0100

    Squashed commit of the following:

    commit 147fcfb8eb
    Merge: 58a3d09b5 fdcc17ca2
    Author: snipe <snipe@snipe.net>
    Date:   Tue Oct 22 15:12:55 2024 +0100

        Merge pull request #15676 from Toreg87/fixes/api_create_user_fmcs

        Fix user creation with FullMultipleCompanySupport enabled over API

    commit 58a3d09b5f
    Merge: 30a06a594 867fa2f36
    Author: snipe <snipe@snipe.net>
    Date:   Tue Oct 22 14:55:42 2024 +0100

        Merge pull request #15703 from marcusmoore/bug/sc-27188

        Linked accessory files in activity report

    commit 30a06a5942
    Merge: 6c6af78e0 ce3086317
    Author: snipe <snipe@snipe.net>
    Date:   Tue Oct 22 11:47:06 2024 +0100

        Merge pull request #15693 from marcusmoore/chore/remove-parallel-testing

        Removed brianium/paratest

    commit 6c6af78e08
    Merge: 9b06bbb6c 3f79fd7ea
    Author: snipe <snipe@snipe.net>
    Date:   Tue Oct 22 11:46:04 2024 +0100

        Merge pull request #15705 from marcusmoore/tests/icon-component-test

        Added test to ensure icon component does not end in newline

    commit 3f79fd7ea7
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Mon Oct 21 17:07:40 2024 -0700

        Add test to ensure icon component does not end in newline

    commit 9b06bbb6c3
    Merge: 46ad1d072 d7f70146f
    Author: snipe <snipe@snipe.net>
    Date:   Mon Oct 21 22:38:26 2024 +0100

        Merge pull request #15704 from marcusmoore/bug/remove-extra-icon

        Removed second icon in accessory file list

    commit ce30863177
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Mon Oct 21 13:57:04 2024 -0700

        Remove brianium/paratest dependency

    commit d7f70146f4
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Mon Oct 21 13:48:25 2024 -0700

        Remove extra icon in accessory file upload list

    commit 867fa2f36e
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Mon Oct 21 12:40:24 2024 -0700

        Display file in activity report for accessories

    commit 0933a2d4ea
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Thu Oct 17 18:01:48 2024 -0700

        Remove --parallel flag

    commit 46ad1d072f
    Merge: bcb4bd9eb 3cf746d7d
    Author: snipe <snipe@snipe.net>
    Date:   Thu Oct 17 15:29:47 2024 +0100

        Merge pull request #15680 from uberbrady/bulk_checkout_to_bulk_actions

        Bulk checkout to bulk actions

    commit bcb4bd9eb4
    Merge: 250037540 f50ccbcc4
    Author: snipe <snipe@snipe.net>
    Date:   Thu Oct 17 10:20:13 2024 +0100

        Merge pull request #15683 from Toreg87/fixes/outdated_comment

        Fix outdated comment in CompanyableTrait

    commit f50ccbcc49
    Author: Tobias Regnery <tobias.regnery@gmail.com>
    Date:   Thu Oct 17 11:07:28 2024 +0200

        Fix outdated comment in CompanyableTrait

        As of commit 5800e8d the user model uses CompanyableTrait so remove this clearly outdated comment

    commit 3cf746d7df
    Author: Brady Wetherington <bwetherington@grokability.com>
    Date:   Wed Oct 16 23:13:32 2024 +0100

        Rework the bulk checkout to not change how all checkouts work

    commit 6b7af802af
    Author: Brady Wetherington <bwetherington@grokability.com>
    Date:   Thu Oct 10 13:28:23 2024 +0100

        Add 'bulk checkout' as one of the bulk actions in the bulk actions toolbar

    commit fdcc17ca2c
    Author: Tobias Regnery <tobias.regnery@gmail.com>
    Date:   Wed Oct 16 11:18:24 2024 +0200

        Fix user creation with FullMultipleCompanySupport enabled over API

        It is currently possible as a non-superuser to create a new user or patch an existing user with arbitrary company over the API if FullMultipleCompanySupport is enabled.
        Altough a highly unlikely scenario as the user needs permission to create API keys and new users, it is a bug that should get fixed.

        Add a call to getIdForCurrentUser() to normalize the company_id if FullMultipleCompanySupport is enabled.

    Signed-off-by: snipe <snipe@snipe.net>

commit 147fcfb8eb
Merge: 58a3d09b5 fdcc17ca2
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 22 15:12:55 2024 +0100

    Merge pull request #15676 from Toreg87/fixes/api_create_user_fmcs

    Fix user creation with FullMultipleCompanySupport enabled over API

commit 58a3d09b5f
Merge: 30a06a594 867fa2f36
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 22 14:55:42 2024 +0100

    Merge pull request #15703 from marcusmoore/bug/sc-27188

    Linked accessory files in activity report

commit 30a06a5942
Merge: 6c6af78e0 ce3086317
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 22 11:47:06 2024 +0100

    Merge pull request #15693 from marcusmoore/chore/remove-parallel-testing

    Removed brianium/paratest

commit 6c6af78e08
Merge: 9b06bbb6c 3f79fd7ea
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 22 11:46:04 2024 +0100

    Merge pull request #15705 from marcusmoore/tests/icon-component-test

    Added test to ensure icon component does not end in newline

commit 3f79fd7ea7
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Oct 21 17:07:40 2024 -0700

    Add test to ensure icon component does not end in newline

commit 9b06bbb6c3
Merge: 46ad1d072 d7f70146f
Author: snipe <snipe@snipe.net>
Date:   Mon Oct 21 22:38:26 2024 +0100

    Merge pull request #15704 from marcusmoore/bug/remove-extra-icon

    Removed second icon in accessory file list

commit ce30863177
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Oct 21 13:57:04 2024 -0700

    Remove brianium/paratest dependency

commit d7f70146f4
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Oct 21 13:48:25 2024 -0700

    Remove extra icon in accessory file upload list

commit 867fa2f36e
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Oct 21 12:40:24 2024 -0700

    Display file in activity report for accessories

commit e1882ee6d2
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Oct 21 12:21:45 2024 -0700

    Add comment

commit 7eee239378
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Oct 21 12:20:28 2024 -0700

    use is_numeric instead of is_int

commit 4188849ae1
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Oct 21 12:19:48 2024 -0700

    Add failing test case

commit 787e651778
Author: snipe <snipe@snipe.net>
Date:   Mon Oct 21 16:52:21 2024 +0100

    Fixed todos with log message

    Signed-off-by: snipe <snipe@snipe.net>

commit ef9b6e3b07
Author: snipe <snipe@snipe.net>
Date:   Mon Oct 21 16:34:54 2024 +0100

    Code cleanup

    Signed-off-by: snipe <snipe@snipe.net>

commit 06c599cc17
Author: snipe <snipe@snipe.net>
Date:   Mon Oct 21 16:34:03 2024 +0100

    Added method to show or download file

    Signed-off-by: snipe <snipe@snipe.net>

commit 6105323877
Author: snipe <snipe@snipe.net>
Date:   Mon Oct 21 14:11:20 2024 +0100

    Use plural class name for src

    Signed-off-by: snipe <snipe@snipe.net>

commit 0933a2d4ea
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Oct 17 18:01:48 2024 -0700

    Remove --parallel flag

commit a8d853c44a
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Oct 17 15:26:27 2024 -0700

    Remove focus group tags

commit 7e1b47708e
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Oct 17 15:18:41 2024 -0700

    Fix failing test ensuring company id is an integer

commit 979e4502ff
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Oct 17 15:14:39 2024 -0700

    Have getIdForCurrentUser method return null if FMCS enabled, user is not super admin, and does not have company

commit ff113ef523
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 17 14:56:58 2024 -0700

    typo fix

commit 99dd51a965
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Oct 17 14:53:18 2024 -0700

    Improve name

commit 15c2169477
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Oct 17 14:31:05 2024 -0700

    Scaffold additional tests

commit 50fa6ce335
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Oct 17 14:12:22 2024 -0700

    Scaffold tests

commit 7ae76e7db9
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 17 13:55:03 2024 -0700

    remove viewdata array from 3 tests

commit b98058ca98
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 17 13:48:26 2024 -0700

    fix tests pt 3

commit 83e8186d9e
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 17 13:39:56 2024 -0700

    fix assertSent to AssertNotSent on some test

commit cdd4fef7df
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 17 13:34:55 2024 -0700

    attempt to fix tests p2

commit dceb8e305f
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 17 13:11:39 2024 -0700

    attempt to fix tests

commit 123cdeb858
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 17 12:39:48 2024 -0700

    add email check to listener

commit 496b44e887
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 17 12:28:57 2024 -0700

    merged composer lock from dev

commit a690cc3582
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 17 12:26:55 2024 -0700

    removing my composer stuff again..for the last time

commit ceb3f5cea6
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 17 12:19:50 2024 -0700

    added mail-gun and http-client to 8.1

commit 65735a31f1
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 17 12:18:34 2024 -0700

    removed symfony/mailgun-mailer symfony/http-client

commit 285d6897cf
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 17 12:05:36 2024 -0700

    added a coulple test adjustments and moved mail send logic to listener

commit 159a1d3f43
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Oct 17 11:48:55 2024 -0700

    Be more explicit

commit d1149730be
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 17 16:31:17 2024 +0100

    Apply blade component to files views

    Signed-off-by: snipe <snipe@snipe.net>

commit 46ad1d072f
Merge: bcb4bd9eb 3cf746d7d
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 17 15:29:47 2024 +0100

    Merge pull request #15680 from uberbrady/bulk_checkout_to_bulk_actions

    Bulk checkout to bulk actions

commit 780ed91a10
Author: NebelKreis <leipold.johannes@web.de>
Date:   Thu Oct 17 16:09:25 2024 +0200

    Fix: Removed strtolower() from dashboard titles

    This fix ensures the correct capitalization in different languages.

commit bcb4bd9eb4
Merge: 250037540 f50ccbcc4
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 17 10:20:13 2024 +0100

    Merge pull request #15683 from Toreg87/fixes/outdated_comment

    Fix outdated comment in CompanyableTrait

commit f50ccbcc49
Author: Tobias Regnery <tobias.regnery@gmail.com>
Date:   Thu Oct 17 11:07:28 2024 +0200

    Fix outdated comment in CompanyableTrait

    As of commit 5800e8d the user model uses CompanyableTrait so remove this clearly outdated comment

commit 9a79483375
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 16 16:59:18 2024 -0700

    removed namespaces from routing

commit ed6034065b
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 16 16:47:36 2024 -0700

    removed test route

commit a7754c1a7f
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 16 16:46:52 2024 -0700

    fixed asset checkout markdown, and notifiable variable

commit 0e9b3c9119
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 17 00:27:39 2024 +0100

    Check for existence before trying to get the icon

    Signed-off-by: snipe <snipe@snipe.net>

commit 4933aa5784
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 17 00:27:04 2024 +0100

    Add StorageHelper to app config

    Signed-off-by: snipe <snipe@snipe.net>

commit d67addc69e
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 17 00:21:43 2024 +0100

    Removed filetype column - it’s dumb

    Signed-off-by: snipe <snipe@snipe.net>

commit 02c80ff18a
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 17 00:18:40 2024 +0100

    Added comment

    Signed-off-by: snipe <snipe@snipe.net>

commit c01190fac2
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 17 00:18:34 2024 +0100

    Conditionally add content-type

    Signed-off-by: snipe <snipe@snipe.net>

commit 017884f843
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 17 00:09:09 2024 +0100

    Added checks and filetype display

    Signed-off-by: snipe <snipe@snipe.net>

commit c49921f50f
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 17 00:08:54 2024 +0100

    Removed unused (maybe?) API endpoint

    Signed-off-by: snipe <snipe@snipe.net>

commit c49abb6aea
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 17 00:08:38 2024 +0100

    Refactor the UserFilesController show method for simpler inlining

    Signed-off-by: snipe <snipe@snipe.net>

commit ccd2019448
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 17 00:08:04 2024 +0100

    Removed unusded use statements

    Signed-off-by: snipe <snipe@snipe.net>

commit 96191a5e93
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 17 00:07:54 2024 +0100

    Added method to decide if the file should be inlinable

    Signed-off-by: snipe <snipe@snipe.net>

commit c56affd663
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 17 00:07:37 2024 +0100

    Added SVG icon

    Signed-off-by: snipe <snipe@snipe.net>

commit 02bda3cd95
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 16 15:53:05 2024 -0700

    adds Checkout Consumable mailable and slackwebhook channel to notifs

commit 02ff646da4
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 16 15:44:45 2024 -0700

    adds checkin license mailable

commit 4becdca8aa
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 16 15:39:20 2024 -0700

    removes toMail from license notificaqtion

commit 2584d60344
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 16 15:38:49 2024 -0700

    adds Licenses seat checkout Mailable

commit f1d83a3f28
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 16 15:30:53 2024 -0700

    forgot to add asset checkout markdown to projet

commit c39df34bdf
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 16 15:29:50 2024 -0700

    forgot to add accessory mail to project

commit dcdf600b78
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 16 15:27:34 2024 -0700

    adds Checkin and Checkout mailables and listner logic

commit 3cf746d7df
Author: Brady Wetherington <bwetherington@grokability.com>
Date:   Wed Oct 16 23:13:32 2024 +0100

    Rework the bulk checkout to not change how all checkouts work

commit 6b7af802af
Author: Brady Wetherington <bwetherington@grokability.com>
Date:   Thu Oct 10 13:28:23 2024 +0100

    Add 'bulk checkout' as one of the bulk actions in the bulk actions toolbar

commit 9710436d54
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 16 13:12:07 2024 -0700

    adds Mailables for asset checkin and out

commit 16cffe9a9d
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 16 12:53:35 2024 -0700

    simplified checkout webhook call

commit 9e1b86f586
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 16 12:51:19 2024 -0700

    sends checkout notification via webhook

commit 3ab2521cb0
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 16 12:21:33 2024 -0700

    email comes through, no picture and html markup appear though.

commit 604a964462
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Oct 16 11:52:24 2024 -0700

    Improve scenario descriptions

commit 2f72c66614
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Oct 16 11:30:06 2024 -0700

    Add additional case

commit fdcc17ca2c
Author: Tobias Regnery <tobias.regnery@gmail.com>
Date:   Wed Oct 16 11:18:24 2024 +0200

    Fix user creation with FullMultipleCompanySupport enabled over API

    It is currently possible as a non-superuser to create a new user or patch an existing user with arbitrary company over the API if FullMultipleCompanySupport is enabled.
    Altough a highly unlikely scenario as the user needs permission to create API keys and new users, it is a bug that should get fixed.

    Add a call to getIdForCurrentUser() to normalize the company_id if FullMultipleCompanySupport is enabled.

commit cba1a56040
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Tue Oct 15 17:38:11 2024 -0700

    Improve readability?

commit d9afde4610
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Tue Oct 15 17:00:22 2024 -0700

    Write failing test

commit 9f06a0e441
Author: Godfrey M <godmartinz@gmail.com>
Date:   Tue Oct 15 14:01:28 2024 -0700

    handle some edge cases, null values clean up variable names

commit 42095c0167
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Tue Oct 15 13:02:22 2024 -0700

    Add reference link

commit f8476f7133
Author: Godfrey M <godmartinz@gmail.com>
Date:   Tue Oct 15 12:49:52 2024 -0700

    finished the construct and mail call in the listner

commit b29d032bf0
Author: Godfrey M <godmartinz@gmail.com>
Date:   Tue Oct 15 11:28:27 2024 -0700

    adds checkoutAssetMail class, and content method

commit 2500375400
Merge: 16c8264e7 e4e1d0d50
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 15 17:34:35 2024 +0100

    Merge pull request #15672 from uberbrady/ldap_location_fixes

    Clean up how we use the '$location' in LDAP sync command

commit e4e1d0d50a
Author: Brady Wetherington <bwetherington@grokability.com>
Date:   Tue Oct 15 17:26:31 2024 +0100

    Clean up how we use the '$location' in LDAP sync command

commit 16c8264e76
Merge: 914a64720 0ae9ce0aa
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 15 16:42:34 2024 +0100

    Merge pull request #15671 from snipe/bug/sc-27147

    Bug/sc 27147

commit 0ae9ce0aa9
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 15 16:41:45 2024 +0100

    Cannot sort by updated at on Users [sc-27147]

    Signed-off-by: snipe <snipe@snipe.net>

commit 50b8f180b3
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 15 16:41:39 2024 +0100

    More logical grouping in allow_columns

    Signed-off-by: snipe <snipe@snipe.net>

commit 914a647204
Merge: 69b6080bd e9225ff3e
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 15 12:47:15 2024 +0100

    Merge pull request #15669 from snipe/remlove_ou_requirenedess

    Fixed #15663 - remove requiredness for OU

commit e9225ff3ea
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 15 12:43:10 2024 +0100

    Switch to regular HTML for input form field

    Signed-off-by: snipe <snipe@snipe.net>

commit d0d4159088
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 15 12:42:09 2024 +0100

    Fixed typo

    Signed-off-by: snipe <snipe@snipe.net>

commit 69b6080bd8
Merge: ddead359d b997d728f
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 15 10:31:29 2024 +0100

    Merge pull request #15666 from snipe/updated_readme_llm

    Added LLM note

commit b997d728fb
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 15 10:30:34 2024 +0100

    Added LLM note

    Signed-off-by: snipe <snipe@snipe.net>

commit ddead359d0
Merge: 0d35335da f3c4e5566
Author: snipe <snipe@snipe.net>
Date:   Mon Oct 14 14:29:34 2024 +0100

    Merge pull request #15660 from Toreg87/fixes/api_asset_create_fmcs2

    Refactor asset creation with API

commit f3c4e55667
Author: Tobias Regnery <tobias.regnery@gmail.com>
Date:   Mon Oct 14 15:14:41 2024 +0200

    Refactor asset creation with API

    Commit fb4fe3004 restored the previous behaviour to check the company_id in case of FullMultipleCompanySupport.
    But after rereading the code and the laravel documentation, the check is already there where it belongs in AssetStoreRequest::prepareForValidation()
    The bug is the is_int-check of the request input in prepareForValidation(). Is is of type string even if it is a numeric value, so the call to getIdForCurrentUser() never happend.
    Fix this by removing the check and the now redundant call to getIdForCurrentUser().
    Wrong values will get caught by the model-level validation rules.

commit 0d35335da7
Author: snipe <snipe@snipe.net>
Date:   Fri Oct 11 16:06:17 2024 +0100

    Removed debugging

    Signed-off-by: snipe <snipe@snipe.net>

commit feaa714304
Author: snipe <snipe@snipe.net>
Date:   Fri Oct 11 14:23:57 2024 +0100

    Nicer disabled button

    Signed-off-by: snipe <snipe@snipe.net>

commit e1a70023b1
Merge: de62359c6 fb4fe3004
Author: snipe <snipe@snipe.net>
Date:   Fri Oct 11 11:45:48 2024 +0100

    Merge pull request #15655 from Toreg87/fixes/api_asset_create_fmcs

    Fixes #15654 Fix asset creation with API and FullMultipleCompanySupport

commit de62359c67
Merge: 12bda8fc7 3dc64cc5e
Author: snipe <snipe@snipe.net>
Date:   Fri Oct 11 11:29:34 2024 +0100

    Merge pull request #15533 from marcusmoore/testing/fmcs-accessories

    Added tests for accessory api controller

commit 12bda8fc7b
Merge: 8aa298f6b b054017c9
Author: snipe <snipe@snipe.net>
Date:   Fri Oct 11 11:27:18 2024 +0100

    Merge pull request #15653 from snipe/15651_admin_user_on_maintenances

    Fixed #15651 - admin user now displaying on maintenances page

commit fb4fe30049
Author: Tobias Regnery <tobias.regnery@gmail.com>
Date:   Fri Oct 11 12:09:09 2024 +0200

    Fix asset creation with API and FullMultipleCompanySupport

    It is currently possible to create an asset with arbitrary company without being superuser and FullMultipleCompanySupport enabled.
    This bug goes back to 75ac7f80b9 which is part of version 6.3.0.
    Fix this by restoring the previous behaviour to check the company_id with getIdForCurrentUser().

commit b054017c9f
Author: snipe <snipe@snipe.net>
Date:   Fri Oct 11 11:16:24 2024 +0100

    Fixed #15651 - admin user now displaying on maintenances page

    Signed-off-by: snipe <snipe@snipe.net>

commit 524a442724
Author: bryanlopezinc <bryanlopez2kul2@yahoo.com>
Date:   Thu Oct 10 23:32:07 2024 +0100

    Improved import performance

commit 8aa298f6b0
Merge: 1f3465773 b5b93fdd3
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 10 12:30:53 2024 +0100

    Merge pull request #15644 from snipe/form_requests_for_settings

    Form requests for settings

commit 1f34657734
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 10 12:30:35 2024 +0100

    Fixed test

    Signed-off-by: snipe <snipe@snipe.net>

commit 0856ee648e
Merge: 94a074a19 1dafc970d
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 10 12:23:14 2024 +0100

    Merge pull request #15648 from snipe/update_packages

    Updated livewire to 3.5.2

commit 1dafc970df
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 10 12:19:57 2024 +0100

    Updated livewire to 3.5.2

    Signed-off-by: snipe <snipe@snipe.net>

commit 94a074a193
Merge: 2d49e1eff b34a7c8aa
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 10 01:11:10 2024 +0100

    Merge pull request #15601 from snipe/check_db_on_healthcheck

    Fixed #15439 - check database on healthcheck

commit 2d49e1eff2
Merge: 705bc6f0c c2663ea1e
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 10 01:09:11 2024 +0100

    Merge pull request #15637 from akemidx/bug/sc-26614

    FIXED: Badge counter showing deleted assets on User page

commit 705bc6f0c0
Merge: 3ee571374 67a605c9a
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 10 01:08:25 2024 +0100

    Merge pull request #15642 from uberbrady/fix_bulk_checkout

    Fix bulk checkout to users, assets, and locations

commit b5b93fdd3a
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 10 00:27:00 2024 +0100

    Make ldap username required

    Signed-off-by: snipe <snipe@snipe.net>

commit d9432baf7a
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 9 23:51:20 2024 +0100

    Mlore ldap style improvements

    Signed-off-by: snipe <snipe@snipe.net>

commit 90be2a4498
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 9 22:26:30 2024 +0100

    Use newer naming convention for errors

    Signed-off-by: snipe <snipe@snipe.net>

commit 3886da8941
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 9 22:15:49 2024 +0100

    Remove form request from get LDAP method

    Signed-off-by: snipe <snipe@snipe.net>

commit 130e0c6242
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 9 22:15:37 2024 +0100

    More validation

    Signed-off-by: snipe <snipe@snipe.net>

commit 4361a10818
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 9 22:15:30 2024 +0100

    Added string

    Signed-off-by: snipe <snipe@snipe.net>

commit aa8048ac15
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 9 22:15:25 2024 +0100

    Blade changes for ldap

    Signed-off-by: snipe <snipe@snipe.net>

commit 710e738e8e
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 9 22:15:16 2024 +0100

    Fixed tests

    Signed-off-by: snipe <snipe@snipe.net>

commit 3705b91439
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 9 20:51:34 2024 +0100

    Added more validation

    Signed-off-by: snipe <snipe@snipe.net>

commit 707bdad192
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 9 20:33:56 2024 +0100

    Updated test

    Signed-off-by: snipe <snipe@snipe.net>

commit 242fe33f97
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 9 20:33:42 2024 +0100

    Switch to regular HTML input

    Signed-off-by: snipe <snipe@snipe.net>

commit ded79469c1
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 9 20:33:29 2024 +0100

    Remove unused controller method

    Signed-off-by: snipe <snipe@snipe.net>

commit d9fbf330e5
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 9 20:33:15 2024 +0100

    Fixed translations

    Signed-off-by: snipe <snipe@snipe.net>

commit 2cb9ac26cd
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 9 19:57:04 2024 +0100

    Renamed test

    Signed-off-by: snipe <snipe@snipe.net>

commit 185bc966e6
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 9 19:46:47 2024 +0100

    Cleaned up use statements in tests

    Signed-off-by: snipe <snipe@snipe.net>

commit a7f7e4938f
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 9 19:31:56 2024 +0100

    Added form action

    Signed-off-by: snipe <snipe@snipe.net>

commit 2883e79193
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 9 19:30:55 2024 +0100

    Removed unecessary assets creation

    Signed-off-by: snipe <snipe@snipe.net>

commit 9c4191ae0a
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 9 19:30:42 2024 +0100

    Basic tests

    Signed-off-by: snipe <snipe@snipe.net>

commit 3a77b83e9c
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 9 19:30:34 2024 +0100

    Added space

    Signed-off-by: snipe <snipe@snipe.net>

commit d9be2b5a5e
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 9 19:30:25 2024 +0100

    Trying to use the email_array translation

    Signed-off-by: snipe <snipe@snipe.net>

commit 69c43c610c
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 9 19:30:00 2024 +0100

    Fixed typo

    Signed-off-by: snipe <snipe@snipe.net>

commit 4f957bcf71
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 9 18:34:53 2024 +0100

    Required flag

    Signed-off-by: snipe <snipe@snipe.net>

commit 5cda7cce48
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 9 18:21:40 2024 +0100

    Only accept a positive number for thresholds

    Signed-off-by: snipe <snipe@snipe.net>

commit 41b94e7128
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 9 18:19:26 2024 +0100

    Fixed form input group

    Signed-off-by: snipe <snipe@snipe.net>

commit aa55fa6ff4
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 9 18:16:34 2024 +0100

    Switch to form requests for settings

    Signed-off-by: snipe <snipe@snipe.net>

commit 67a605c9a5
Author: Brady Wetherington <bwetherington@grokability.com>
Date:   Wed Oct 9 17:01:26 2024 +0100

    Fix bulk checkout to users, assets, and locations

commit c2663ea1e0
Author: akemidx <kojotek.dx@gmail.com>
Date:   Tue Oct 8 16:38:33 2024 -0400

    withouttrashed

commit 3ee5713740
Merge: ab8a22f77 56e7ea667
Author: snipe <snipe@snipe.net>
Date:   Mon Oct 7 23:13:15 2024 +0100

    Merge pull request #15631 from snipe/test/importer-tests

    Add importer tests

commit ab8a22f77e
Merge: 26d7572bc 8c9132aff
Author: snipe <snipe@snipe.net>
Date:   Mon Oct 7 22:56:23 2024 +0100

    Merge pull request #15630 from marcusmoore/bug/sc-27028

    Only show EULA when available on print users page

commit 56e7ea6677
Merge: 32551d55d 803532667
Author: snipe <snipe@snipe.net>
Date:   Mon Oct 7 22:29:35 2024 +0100

    Merge pull request #15616 from marcusmoore/test/importer-test-updates

    Improve importer tests

commit 26d7572bcc
Merge: 382ebef8c ee046a868
Author: snipe <snipe@snipe.net>
Date:   Mon Oct 7 22:28:53 2024 +0100

    Merge pull request #15603 from marcusmoore/fixes/add-reguard

    Added `Model::reguard()` to importer

commit 8c9132aff9
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Oct 7 14:22:49 2024 -0700

    Hide EULA text and button when nothing will be displayed

commit 382ebef8ca
Merge: 2be88cb95 f76da4844
Author: snipe <snipe@snipe.net>
Date:   Mon Oct 7 21:26:21 2024 +0100

    Merge pull request #15621 from sniff122/develop

    Docker Env: Change trusted proxies to RFC1918

commit 2be88cb955
Merge: 7fc498a59 3f36d5f9b
Author: snipe <snipe@snipe.net>
Date:   Mon Oct 7 11:14:24 2024 +0100

    Merge pull request #15624 from snipe/fixed_line_break_on_print_all_for_users

    Removed duplicate JS and removed line break before user section

commit 3f36d5f9b3
Author: snipe <snipe@snipe.net>
Date:   Mon Oct 7 11:08:02 2024 +0100

    Removed duplicate CSS and removed line break before user section

    Signed-off-by: snipe <snipe@snipe.net>

commit f76da48448
Author: Lewis Foster <lewis@sniff122.tech>
Date:   Sat Oct 5 18:27:42 2024 +0100

    Docker Env: Change trusted proxies to RFC1918

commit 8035326675
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Oct 3 16:53:19 2024 -0700

    Add test

commit dfdd85abb1
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Oct 3 15:14:07 2024 -0700

    Remove unused imports

commit 063ea1892b
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Oct 3 15:02:03 2024 -0700

    Add trait to clean up files after test runs

commit e213053775
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Oct 3 13:59:58 2024 -0700

    Swap factory syntax

commit 88d549e7c5
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Oct 3 13:40:37 2024 -0700

    Remove unused data provider method

commit 983a25aa5f
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Oct 3 13:39:54 2024 -0700

    Simplify permission tests

commit bde05d6ed9
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Oct 3 13:15:49 2024 -0700

    Use new() instead of times()

commit b5ffe54bd0
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Oct 3 13:15:02 2024 -0700

    Swap assertEquals parameter order

commit 863c0a8b60
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Oct 3 11:43:02 2024 -0700

    Fix import_type for accessory state

commit 32551d55d7
Merge: 7fc498a59 e807cfab8
Author: Marcus Moore <mmoore@grokability.com>
Date:   Thu Oct 3 11:39:21 2024 -0700

    Merge pull request #15579 from bryanlopezinc/ImportTests

    Add Import data tests

commit 7fc498a597
Merge: 78ca1026f cb281c640
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 3 17:39:18 2024 +0100

    Merge pull request #15613 from snipe/css_fixes_for_long_values

    Smarter word-wrapping on long text

commit cb281c6408
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 3 17:33:46 2024 +0100

    Tweaked line height

    Signed-off-by: snipe <snipe@snipe.net>

commit f483cd448f
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 3 17:27:37 2024 +0100

    Smarter work-wrapping on long text

    Signed-off-by: snipe <snipe@snipe.net>

commit 78ca1026fd
Merge: 3699d7936 722d5a58e
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 3 16:24:32 2024 +0100

    Merge pull request #15612 from snipe/fixes_print_assigned_in_profile

    Fixes print assigned in profile

commit 722d5a58e7
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 3 16:19:38 2024 +0100

    Added isset on users

    Signed-off-by: snipe <snipe@snipe.net>

commit 7461c3e0ca
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 3 16:19:27 2024 +0100

    Change controller to assume a collection. (This is dumb, but whatever)

    Signed-off-by: snipe <snipe@snipe.net>

commit 3c0f4181ae
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 3 16:19:06 2024 +0100

    Use the newer button style

    Signed-off-by: snipe <snipe@snipe.net>

commit 3699d79363
Merge: 54fbd0540 350b627ce
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 3 14:34:00 2024 +0100

    Merge pull request #15610 from uberbrady/fix_numeric_sort_bug

    Fix numeric sort 'ambiguous order clause' error

commit 350b627ce1
Author: Brady Wetherington <bwetherington@grokability.com>
Date:   Thu Oct 3 14:23:40 2024 +0100

    Fix numeric sort 'ambiguous order clause' error

commit ee046a8688
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Oct 2 10:50:40 2024 -0700

    Add matching Model::reguard()

commit b34a7c8aad
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 2 15:48:35 2024 +0100

    Removed die()

    Signed-off-by: snipe <snipe@snipe.net>

commit f92bf5dc20
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 2 15:39:27 2024 +0100

    Updated language for failure

    Signed-off-by: snipe <snipe@snipe.net>

commit 4d9e85026a
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 2 15:36:01 2024 +0100

    Fixed #15439 - check database on healthcheck

    Signed-off-by: snipe <snipe@snipe.net>

commit 54fbd0540d
Merge: b483bb163 4db735808
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 2 12:40:49 2024 +0100

    Merge branch 'develop' of https://github.com/snipe/snipe-it into develop

commit b483bb1633
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 2 12:40:45 2024 +0100

    Bumped version

    Signed-off-by: snipe <snipe@snipe.net>

commit 4db7358086
Merge: 0dd6f41f6 b9cfdf2e5
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 2 12:38:46 2024 +0100

    Merge pull request #15593 from Godmartinz/Fixed-divide-by-zero-bug

    Fixed divide by zero bug in depreciation transformer

commit 0dd6f41f66
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 2 11:04:55 2024 +0100

    Simplified 2fa if/else

    Signed-off-by: snipe <snipe@snipe.net>

commit 684c20ae39
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 2 11:00:49 2024 +0100

    Fixed parenthasis

    Signed-off-by: snipe <snipe@snipe.net>

commit 3153bbb13f
Author: spencerrlongg <spencer@spencerlong.com>
Date:   Tue Oct 1 17:04:18 2024 -0500

    dumb fix

commit 3dc64cc5e0
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Tue Oct 1 13:35:39 2024 -0700

    Reference accessory checkout and not the accessory

commit c32f4e34b4
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 1 20:35:49 2024 +0100

    Minor formatting fix

    Signed-off-by: snipe <snipe@snipe.net>

commit ca1886cebc
Merge: 45ab49eea a79dfea40
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 1 20:31:38 2024 +0100

    Merge pull request #15594 from snipe/localizations/update-2024-10-01

    Updated strings

commit a79dfea40a
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 1 20:30:58 2024 +0100

    Updated strings

    Signed-off-by: snipe <snipe@snipe.net>

commit 45ab49eeab
Merge: 97d00e5aa 8232618a9
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 1 20:26:42 2024 +0100

    Merge pull request #15592 from spencerrlongg/bug/catch_request_notify_errors

    Catch Errors Around Request Notifications

commit 8232618a9f
Author: spencerrlongg <spencer@spencerlong.com>
Date:   Tue Oct 1 14:26:32 2024 -0500

    change the other one too

commit 9a651b567d
Author: spencerrlongg <spencer@spencerlong.com>
Date:   Tue Oct 1 14:24:03 2024 -0500

    change error to warning

commit 97d00e5aa8
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 1 20:08:54 2024 +0100

    Fixed erroneous form tag on anchor

    Signed-off-by: snipe <snipe@snipe.net>

commit 5b90d79494
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Tue Oct 1 11:50:48 2024 -0700

    Use created_by

commit b9cfdf2e54
Author: Godfrey M <godmartinz@gmail.com>
Date:   Tue Oct 1 11:41:59 2024 -0700

    reworked monthly depreciation variable value

commit 1139acd9f3
Author: spencerrlongg <spencer@spencerlong.com>
Date:   Tue Oct 1 13:36:47 2024 -0500

    catch errors around request notifications

commit b7ad80bd31
Author: Godfrey M <godmartinz@gmail.com>
Date:   Tue Oct 1 11:24:24 2024 -0700

    fix monthly depreciation value

commit 5ffd1b8daa
Author: Godfrey M <godmartinz@gmail.com>
Date:   Tue Oct 1 11:02:39 2024 -0700

    fixes if statement in transformer

commit 9a2117466e
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 1 18:23:40 2024 +0100

    Removed placeholder

    Signed-off-by: snipe <snipe@snipe.net>

commit 7e3a062984
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 1 18:23:07 2024 +0100

    Use <th> for table header in bulk interstitial

    Signed-off-by: snipe <snipe@snipe.net>

commit d274fb6963
Merge: cfc04a1d1 27ba641aa
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 1 14:32:48 2024 +0100

    Merge pull request #15589 from snipe/adds_checkin_action_on_asset_delete

    Adds checkin action on asset delete via View UI

commit 27ba641aa5
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 1 14:30:34 2024 +0100

    Added checkin on delete to API

    Signed-off-by: snipe <snipe@snipe.net>

commit 5823197e6f
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 1 14:29:02 2024 +0100

    Added checkin action on delete for checked out assets

    Signed-off-by: snipe <snipe@snipe.net>

commit cfc04a1d12
Merge: 12da43303 cae8aa784
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 1 14:08:58 2024 +0100

    Merge pull request #15588 from snipe/added_more_maxlengths

    Added maxlengths to additional fields

commit cae8aa7840
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 1 14:02:54 2024 +0100

    Added maxlengths to additional fields

    Signed-off-by: snipe <snipe@snipe.net>

commit 12da43303f
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 1 01:44:05 2024 +0100

    Fixed #15584 - regression with required css change

    Signed-off-by: snipe <snipe@snipe.net>

commit fdfea390fb
Merge: d609ed50a 5689e940b
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 30 12:59:27 2024 -0700

    Merge branch 'develop' into testing/fmcs-accessories

commit b04afbbc85
Merge: b964ce102 3f311ba2f
Author: snipe <snipe@snipe.net>
Date:   Mon Sep 30 19:26:08 2024 +0100

    Merge pull request #15564 from uberbrady/improve_autoclose

    Get us better debugging output for new Github Stale Action

commit b964ce1025
Merge: 6217cba20 68e3f375f
Author: snipe <snipe@snipe.net>
Date:   Mon Sep 30 19:25:05 2024 +0100

    Merge pull request #15583 from Godmartinz/remove-sortable-from-depreciations

    Removed sortablity for current value column in depreciations report

commit 6217cba201
Merge: 5689e940b b32ab6a06
Author: snipe <snipe@snipe.net>
Date:   Mon Sep 30 19:24:19 2024 +0100

    Merge pull request #15524 from Godmartinz/double-notif-bug

    Fixed double webhook notifications // Separated email and webhook notifications.

commit 68e3f375fc
Author: Godfrey M <godmartinz@gmail.com>
Date:   Mon Sep 30 11:15:49 2024 -0700

    removes sortablity from current value column

commit 5689e940b8
Author: snipe <snipe@snipe.net>
Date:   Mon Sep 30 18:23:12 2024 +0100

    Fixed #15581 - missing bracker

    Signed-off-by: snipe <snipe@snipe.net>

commit e807cfab86
Merge: 0b3f45856 001348c63
Author: bryanlopezinc <bryanlopez2kul2@yahoo.com>
Date:   Mon Sep 30 12:47:52 2024 +0100

    Merge branch 'develop' into importTests

commit 0b3f458561
Author: bryanlopezinc <bryanlopez2kul2@yahoo.com>
Date:   Mon Sep 30 12:42:41 2024 +0100

    Added tests for Import feature

commit 001348c638
Author: snipe <snipe@snipe.net>
Date:   Sun Sep 29 14:33:42 2024 +0100

    Unset required on checkout select :(

    Related to the discussion at #15552

    Signed-off-by: snipe <snipe@snipe.net>

commit 1b041af862
Merge: 260b15368 d120585f9
Author: snipe <snipe@snipe.net>
Date:   Sun Sep 29 11:25:01 2024 +0100

    Merge remote-tracking branch 'origin/master' into develop

    Signed-off-by: snipe <snipe@snipe.net>

    # Conflicts:
    #	public/css/build/app.css
    #	public/css/build/overrides.css
    #	public/css/dist/all.css
    #	public/mix-manifest.json

commit 260b153689
Merge: 36b27fcda 05d74f7a9
Author: snipe <snipe@snipe.net>
Date:   Sat Sep 28 16:09:51 2024 +0100

    Merge pull request #15573 from snipe/fixed_requiredness_indicator

    Fixes for requiredness indicator in UI

commit 05d74f7a92
Author: snipe <snipe@snipe.net>
Date:   Sat Sep 28 15:42:03 2024 +0100

    Covered setup pages too

    Signed-off-by: snipe <snipe@snipe.net>

commit dc85588d7f
Author: snipe <snipe@snipe.net>
Date:   Sat Sep 28 15:31:44 2024 +0100

    Don’t show password as required if editing

    Signed-off-by: snipe <snipe@snipe.net>

commit 585f998cae
Author: snipe <snipe@snipe.net>
Date:   Sat Sep 28 15:28:06 2024 +0100

    Fixes for requiredness display

    Signed-off-by: snipe <snipe@snipe.net>

commit d120585f94
Author: snipe <snipe@snipe.net>
Date:   Fri Sep 27 14:07:30 2024 +0100

    Check for valid eula for license, consumable

    Signed-off-by: snipe <snipe@snipe.net>

commit 166a700342
Merge: 6c85ba349 36b27fcda
Author: snipe <snipe@snipe.net>
Date:   Fri Sep 27 13:37:28 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 36b27fcda3
Author: snipe <snipe@snipe.net>
Date:   Fri Sep 27 13:37:14 2024 +0100

    Check for valid category before getting the eula

    Signed-off-by: snipe <snipe@snipe.net>

commit a44490e448
Author: snipe <snipe@snipe.net>
Date:   Fri Sep 27 13:07:24 2024 +0100

    Nowrap on files column

    Signed-off-by: snipe <snipe@snipe.net>

commit 9aada2ec70
Merge: ac6411743 ef82f954e
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 26 09:09:35 2024 +0100

    Merge pull request #15498 from Godmartinz/Modal_fix

    Refactoring modals with partials and fixing misalignments

commit 3f74ff25d2
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Sep 25 16:19:09 2024 -0700

    fixed error message

commit ef82f954e5
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Sep 25 15:47:57 2024 -0700

    fixed required css, and user input lengths

commit 3f311ba2fb
Author: Brady Wetherington <bwetherington@grokability.com>
Date:   Wed Sep 25 21:27:45 2024 +0100

    Get us better debugging output for new Github Stale Action

commit 96953aa2ed
Merge: e609b3976 b797c37ac
Author: Godfrey Martinez <47435081+Godmartinz@users.noreply.github.com>
Date:   Wed Sep 25 12:50:01 2024 -0700

    Merge pull request #23 from Godmartinz/Modal_fix_p3

    replace duplicate code with partials

commit b797c37acb
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Sep 25 12:48:05 2024 -0700

    replace duplicate code with partials

commit 6c85ba3495
Merge: 9f8473e25 ac6411743
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 25 20:45:02 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit ac6411743b
Merge: 9b03f4649 3f0245f88
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 25 20:35:58 2024 +0100

    Merge pull request #15563 from snipe/refined_gates_on_user_bulk

    Update for #15534 - Refined gates on user bulk

commit 3f0245f88f
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 25 20:33:00 2024 +0100

    Make controller gate match dropdown gate

    Signed-off-by: snipe <snipe@snipe.net>

commit c02647a0fa
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 25 20:32:03 2024 +0100

    Moved merge into delete gate, since they do technically delete

    Signed-off-by: snipe <snipe@snipe.net>

commit edca3f432c
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 25 20:30:58 2024 +0100

    Removed gate for delete

    Signed-off-by: snipe <snipe@snipe.net>

commit 2218c94aa3
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 25 20:29:23 2024 +0100

    Gates the dropdown based on user permissions

    Signed-off-by: snipe <snipe@snipe.net>

commit e609b39760
Merge: 0bc98e971 12522a379
Author: Godfrey Martinez <47435081+Godmartinz@users.noreply.github.com>
Date:   Wed Sep 25 12:09:26 2024 -0700

    Merge pull request #22 from Godmartinz/Modal_fix_p2

    Modal fix p2

commit 12522a3791
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Sep 25 12:07:15 2024 -0700

    fix spacing issues

commit f6d7ea19e4
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 25 19:44:39 2024 +0100

    Set view as base permission, drill down for more intrusive actions

    Signed-off-by: snipe <snipe@snipe.net>

commit 18ddffe8f9
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Sep 25 11:42:16 2024 -0700

    fix partial variable intialization, fix width of input fields

commit 9b03f46490
Merge: cb6e5042d fac4833b5
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 25 19:32:01 2024 +0100

    Merge pull request #15534 from marcusmoore/bulk-print-users

    Added the ability to bulk print users

commit 926a319552
Merge: 0bc98e971 cb6e5042d
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Sep 25 11:10:24 2024 -0700

    Merge branch 'develop' into Modal_fix_p2

commit 9f8473e254
Merge: 0e61d0b19 cb6e5042d
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 25 18:36:40 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit cb6e5042d9
Merge: c1a887b48 ba69259f2
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 25 18:32:59 2024 +0100

    Merge pull request #15547 from snipe/disallow_checkout_with_nondeployable_status

    Fixed #13396 - do not allow checkout to undeployable status types

commit c1a887b48b
Merge: ba1220484 658c94ad8
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 25 18:32:21 2024 +0100

    Merge pull request #15561 from snipe/fixes/adds_action_date_to_sorting

    Changed `action_date` to `created_at` in activity report

commit 658c94ad8b
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 25 17:25:15 2024 +0100

    Changed action_date to created_at

    Signed-off-by: snipe <snipe@snipe.net>

commit 0e61d0b195
Merge: abdddbec4 ba1220484
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 25 15:51:38 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit ba12204842
Merge: eeabc8dc9 1c3babaca
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 25 15:51:14 2024 +0100

    Merge pull request #15555 from snipe/fixes/user_file_upload

    Fixed case on `$logAction` for user file upload

commit 1c3babacaf
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 25 15:46:57 2024 +0100

    Fixed case on logAction for usewr file upload

    Signed-off-by: snipe <snipe@snipe.net>

commit abdddbec44
Merge: a425c2b76 eeabc8dc9
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 25 11:58:25 2024 +0100

    Merge remote-tracking branch 'origin/develop'

    Signed-off-by: snipe <snipe@snipe.net>

    # Conflicts:
    #	public/css/build/app.css
    #	public/css/build/overrides.css
    #	public/css/dist/all.css
    #	public/mix-manifest.json

commit eeabc8dc9d
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 25 11:33:45 2024 +0100

    Dev assets

    Signed-off-by: snipe <snipe@snipe.net>

commit 21f8ac8e52
Merge: c38222e95 2a2666be0
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 25 11:31:23 2024 +0100

    Merge pull request #15552 from Godmartinz/ragged-form-inputs

    Fixed input field misalignments

commit a425c2b765
Merge: 34eb10ff7 c38222e95
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 25 10:52:19 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 2a2666be0b
Author: Godfrey M <godmartinz@gmail.com>
Date:   Tue Sep 24 13:24:50 2024 -0700

    makes required a pseudo field

commit c38222e956
Merge: 8cf1e4dce 0ce5832b6
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 24 18:10:53 2024 +0100

    Merge pull request #15549 from snipe/fixes/#15548_unify_audit_api_endpoints

    Fixes #15548 - unify audit api endpoints

commit 0ce5832b6c
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 24 17:29:40 2024 +0100

    Removed debugging

    Signed-off-by: snipe <snipe@snipe.net>

commit b6340532d7
Author: Brady Wetherington <bwetherington@grokability.com>
Date:   Tue Sep 24 17:15:39 2024 +0100

    Improve the error and success messages and linking

commit 5fb43dd159
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 24 16:55:56 2024 +0100

    Handle `audit` *and* `audits` for urls

    Signed-off-by: snipe <snipe@snipe.net>

commit de57d71bf1
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 24 16:30:24 2024 +0100

    Fixed #15548 - unify audit due/overdue APIs

    Signed-off-by: snipe <snipe@snipe.net>

commit ba69259f2d
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 24 15:35:00 2024 +0100

    Fixed #13396 - do not allow checkout to undeployable status types

    Signed-off-by: snipe <snipe@snipe.net>

commit c71411465a
Author: Brady Wetherington <bwetherington@grokability.com>
Date:   Tue Sep 24 15:17:35 2024 +0100

    First pass at better-handling those annoying Rollbars we keep getting

commit 8cf1e4dceb
Merge: ab0c009c0 66249a37e
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 24 11:10:20 2024 +0100

    Merge pull request #15544 from snipe/bug/sc-26855

    Fixed app settings view on mobile

commit 66249a37ed
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 24 11:08:31 2024 +0100

    Tweaked styles

    Signed-off-by: snipe <snipe@snipe.net>

commit 96712cb398
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 24 10:55:26 2024 +0100

    Fixed app settings view on mobile

    Signed-off-by: snipe <snipe@snipe.net>

commit fac4833b58
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 23 17:15:16 2024 -0700

    Remove unused import

commit a12c9d053f
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 23 16:44:25 2024 -0700

    Hide label when printing

commit 8b3b68b308
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 23 16:43:14 2024 -0700

    Show or hide all eulas at once when printing multiple users

commit 4b02db5031
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 23 16:26:22 2024 -0700

    Add authorization check in bulk users controller

commit ab90c0cf05
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 23 16:10:40 2024 -0700

    Add missing eager load in bulk users controller

commit cef7ddc719
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 23 16:10:21 2024 -0700

    Add eager loads to userscontroller

commit 3870095a28
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 23 15:50:24 2024 -0700

    Fix Cannot read properties of undefined error by removing snipe-table class from eula table

commit a02e250b22
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 23 15:26:15 2024 -0700

    Add page breaks for each user

commit 8ac5c0e471
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 23 14:05:47 2024 -0700

    Re-combine layout and view

commit a2d4dcf6e8
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 23 12:49:36 2024 -0700

    Use bulk actions menu

commit 54044bfa5e
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 23 10:57:57 2024 -0700

    Add eager loads

commit e493cc964d
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 23 10:48:07 2024 -0700

    Remove AssetCountForSidebar middleware from print view

commit 29af210f4f
Merge: 5128fd49e ab0c009c0
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 23 10:26:20 2024 -0700

    Merge branch 'develop' into bulk-print-users

commit 34eb10ff73
Merge: 7d7d58769 ab0c009c0
Author: snipe <snipe@snipe.net>
Date:   Fri Sep 20 19:45:20 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit ab0c009c0d
Author: snipe <snipe@snipe.net>
Date:   Fri Sep 20 19:45:10 2024 +0100

    Fixed seeder

    Signed-off-by: snipe <snipe@snipe.net>

commit 7d7d58769c
Merge: 245d5dc46 b68805cf8
Author: snipe <snipe@snipe.net>
Date:   Fri Sep 20 19:13:00 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit b68805cf83
Author: snipe <snipe@snipe.net>
Date:   Fri Sep 20 19:11:52 2024 +0100

    Small fix for notifications checkout

    Signed-off-by: snipe <snipe@snipe.net>

commit 245d5dc469
Merge: 4ab478bb9 7d858129d
Author: snipe <snipe@snipe.net>
Date:   Fri Sep 20 17:28:15 2024 +0100

    Merge remote-tracking branch 'origin/develop'

    Signed-off-by: snipe <snipe@snipe.net>

    # Conflicts:
    #	config/version.php

commit 7d858129d9
Author: snipe <snipe@snipe.net>
Date:   Fri Sep 20 14:44:19 2024 +0100

    Bumped hash

    Signed-off-by: snipe <snipe@snipe.net>

commit 65ce63bc9b
Merge: 5eea9d195 54fba2f54
Author: snipe <snipe@snipe.net>
Date:   Fri Sep 20 14:42:07 2024 +0100

    Merge pull request #15537 from snipe/snyk/updated_jspdf_autotable

    Updated jspdf autotable

commit 54fba2f547
Author: snipe <snipe@snipe.net>
Date:   Fri Sep 20 14:40:41 2024 +0100

    Update jspdf autotable

    Signed-off-by: snipe <snipe@snipe.net>

commit 5eea9d1950
Author: snipe <snipe@snipe.net>
Date:   Fri Sep 20 14:33:56 2024 +0100

    Corrected text warning translation

    Signed-off-by: snipe <snipe@snipe.net>

commit b84a634ec7
Author: snipe <snipe@snipe.net>
Date:   Fri Sep 20 14:33:35 2024 +0100

    Corrected comment

    Signed-off-by: snipe <snipe@snipe.net>

commit 2fc88a0e08
Author: snipe <snipe@snipe.net>
Date:   Fri Sep 20 14:33:26 2024 +0100

    Eager load adminuser

    Signed-off-by: snipe <snipe@snipe.net>

commit bc540b6564
Author: snipe <snipe@snipe.net>
Date:   Fri Sep 20 14:02:28 2024 +0100

    Requestable status not saving with manual [sc-26848]

    Signed-off-by: snipe <snipe@snipe.net>

commit f53b852dff
Author: snipe <snipe@snipe.net>
Date:   Fri Sep 20 13:53:52 2024 +0100

    Make created_by equal one in the seeder

    Signed-off-by: snipe <snipe@snipe.net>

commit b83d1a043f
Merge: cdb7ccb8f b21c303e5
Author: snipe <snipe@snipe.net>
Date:   Fri Sep 20 13:47:31 2024 +0100

    Merge pull request #15519 from snipe/features/add_created_at_created_by

    Change `user_id` to `created_by`

commit 4ab478bb97
Merge: d96c5e1ba cdb7ccb8f
Author: snipe <snipe@snipe.net>
Date:   Fri Sep 20 13:44:45 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit b21c303e56
Merge: b88f2054d cdb7ccb8f
Author: snipe <snipe@snipe.net>
Date:   Fri Sep 20 13:43:50 2024 +0100

    Merge remote-tracking branch 'origin/develop' into features/add_created_at_created_by

commit 5128fd49e6
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 19 17:27:25 2024 -0700

    Allow printing all users

commit 2d2d5bdc7e
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 19 17:23:47 2024 -0700

    Pass user in array

commit 8364d26c9b
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 19 17:18:26 2024 -0700

    Extract parent layout

commit efd6d7625f
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 19 17:16:05 2024 -0700

    Remove bad closing tag

commit bdf5708bfc
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 19 17:10:43 2024 -0700

    Remove accidental line

commit e95703cb18
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 19 17:10:07 2024 -0700

    Use eager load

commit 7ad4a29970
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 19 16:54:39 2024 -0700

    Add eager loading

commit cdb7ccb8f3
Merge: 8270947ed d446773fd
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 21:54:03 2024 +0100

    Merge pull request #15532 from spencerrlongg/bug/15253

    Catch Exceptions on Checkout Notification

commit 8270947ed2
Merge: 4f7c8e0c3 8e1111c68
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 21:49:27 2024 +0100

    Merge pull request #13291 from akemidx/eol_date_range_for_reports

    Added date range for EOL in custom reports

commit 4f7c8e0c3d
Merge: d7bde3784 3ea5d4ee4
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 21:36:09 2024 +0100

    Merge pull request #14671 from Robert-Azelis/patch-6

    [FIX] Update EOL date when used bulk update of purchase date

commit d609ed50a4
Merge: d639d6fbc d7bde3784
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 19 13:20:55 2024 -0700

    Merge branch 'develop' into testing/fmcs-accessories

commit b88f2054dd
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 20:38:34 2024 +0100

    Refactor isDeletable on companies

    Signed-off-by: snipe <snipe@snipe.net>

commit d7914e238d
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 20:34:54 2024 +0100

    Added created by to company on save

    Signed-off-by: snipe <snipe@snipe.net>

commit d7bde37842
Merge: 454796e52 4facc4007
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 20:33:10 2024 +0100

    Merge pull request #15507 from setpill/setpill/feat/use_explicit_attributes_in_ldap_sync

    Added #15506: Explicitly request used LDAP attributes

commit 454796e52a
Merge: eef487d61 7c85ad54e
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 20:32:03 2024 +0100

    Merge pull request #15518 from snipe/sort_by_numeric_custom_fields

    Fixed #11634 - Sort by numeric columns for numeric custom fields

commit eef487d61b
Merge: dddbf27d7 71dbc7abb
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 20:31:02 2024 +0100

    Merge pull request #15531 from Godmartinz/status-doesnt-update-in-email

    Fixed mail notification field `status label` not updating

commit 71dbc7abb0
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Sep 19 12:23:07 2024 -0700

    refreshed the assetstatus relationship

commit d639d6fbc1
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 19 12:21:54 2024 -0700

    Add tests for accessory select list endpoint

commit 74088ea581
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 20:13:38 2024 +0100

    Optimize isDeletable counts

    Signed-off-by: snipe <snipe@snipe.net>

commit fff069824b
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 19 12:11:03 2024 -0700

    Add tests for update accessory endpoint

commit d446773fdd
Author: spencerrlongg <spencer@spencerlong.com>
Date:   Thu Sep 19 14:05:48 2024 -0500

    catch exceptions on notification

commit f283b5fbe8
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 19:56:39 2024 +0100

    Eager load adminuser

    Signed-off-by: snipe <snipe@snipe.net>

commit a5be18bb14
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 19 11:55:15 2024 -0700

    Add test for limit and offset

commit eb6f05faf7
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 19:41:46 2024 +0100

    Eager load adminuser

    Signed-off-by: snipe <snipe@snipe.net>

commit 118183ff58
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 19:41:39 2024 +0100

    Removed footer

    Signed-off-by: snipe <snipe@snipe.net>

commit 2137890496
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 19 11:33:20 2024 -0700

    Remove dead code

commit ebf6ce6980
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 19:27:10 2024 +0100

    Refactor for fewer queries

    Signed-off-by: snipe <snipe@snipe.net>

commit 9b22d6d493
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 19 11:24:01 2024 -0700

    Add tests for accessory checkouts endpoint

commit 5ebf0ed2b2
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 19:19:14 2024 +0100

    Updated variable

    Signed-off-by: snipe <snipe@snipe.net>

commit 836893cba5
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 18:35:00 2024 +0100

    Added id to report

    Signed-off-by: snipe <snipe@snipe.net>

commit cd98b3817d
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 18:26:08 2024 +0100

    Removed duplicate line

    Signed-off-by: snipe <snipe@snipe.net>

commit 727806372c
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 18:22:11 2024 +0100

    Added created_by to status label

    Signed-off-by: snipe <snipe@snipe.net>

commit 5e1c736d49
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 18:04:50 2024 +0100

    Added created_by for manufacturers

    Signed-off-by: snipe <snipe@snipe.net>

commit 6579fa72da
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 17:56:05 2024 +0100

    Added scoping for categories and companies

    Signed-off-by: snipe <snipe@snipe.net>

commit 82d6e1510f
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 17:41:05 2024 +0100

    Order by created_by for depreciations

    Signed-off-by: snipe <snipe@snipe.net>

commit 822ea96dfd
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 17:31:46 2024 +0100

    Use auth()->id() instead of Auth::id()

    Signed-off-by: snipe <snipe@snipe.net>

commit b247fc33b9
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 17:28:01 2024 +0100

    Added legacy comment

    Signed-off-by: snipe <snipe@snipe.net>

commit 2dcae780c0
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 17:26:21 2024 +0100

    Reapply deleted code

    Signed-off-by: snipe <snipe@snipe.net>

commit 5c3180ffa0
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 17:25:09 2024 +0100

    Removed duplicate code

    Signed-off-by: snipe <snipe@snipe.net>

commit 65eba30038
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 17:23:34 2024 +0100

    Fixed markdown in acceptance reminder

    Signed-off-by: snipe <snipe@snipe.net>

commit bbce7b40ca
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 17:20:56 2024 +0100

    Additional consistencies

    Signed-off-by: snipe <snipe@snipe.net>

commit 02a29c71ef
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 17:01:48 2024 +0100

    Added created_by

    Signed-off-by: snipe <snipe@snipe.net>

commit 6699995972
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 17:01:36 2024 +0100

    Added created_by to components

    Signed-off-by: snipe <snipe@snipe.net>

commit 951f03094a
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 17:01:17 2024 +0100

    Added created_by to kits

    Signed-off-by: snipe <snipe@snipe.net>

commit 354b00ef15
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 16:45:51 2024 +0100

    Made method name consistent

    Signed-off-by: snipe <snipe@snipe.net>

commit c93229179b
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 16:45:39 2024 +0100

    Added order by created_by to accessories

    Signed-off-by: snipe <snipe@snipe.net>

commit a77a7065d7
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 16:34:10 2024 +0100

    Added order by admin to assets

    Signed-off-by: snipe <snipe@snipe.net>

commit 4363e8b34c
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 16:20:42 2024 +0100

    Updated importer

    Signed-off-by: snipe <snipe@snipe.net>

commit 9adb2c24f3
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 16:06:36 2024 +0100

    Squashed commit of the following:

    commit dddbf27d78
    Author: snipe <snipe@snipe.net>
    Date:   Wed Sep 18 14:18:52 2024 +0100

        Updated language strings

        Signed-off-by: snipe <snipe@snipe.net>

    commit fcefcc8184
    Merge: 04bb3eec8 3519a82dd
    Author: snipe <snipe@snipe.net>
    Date:   Wed Sep 18 13:44:44 2024 +0100

        Merge pull request #15512 from marcusmoore/testing/fmcs

        Added tests for delete methods in api

    commit 04bb3eec83
    Merge: 154d5d8d9 f963b9a19
    Author: snipe <snipe@snipe.net>
    Date:   Wed Sep 18 13:41:37 2024 +0100

        Merge pull request #15521 from uberbrady/improve_country_selector

        Fix selected-index of Countries drop-down [fd-44144]

    commit f963b9a19f
    Author: Brady Wetherington <bwetherington@grokability.com>
    Date:   Wed Sep 18 13:24:26 2024 +0100

        Fix selected-index of Countries drop-down

    commit 154d5d8d91
    Merge: 6c996b775 9e5f6d656
    Author: snipe <snipe@snipe.net>
    Date:   Tue Sep 17 23:40:25 2024 +0100

        Merge pull request #15491 from uberbrady/numeric_prefixes_add_multiple_assets

        [Fixes fd-43940] Improve multi-asset create when using numeric prefixes to asset_tags

    commit 3519a82ddd
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Mon Sep 16 16:55:20 2024 -0700

        Fix name: TestsFullMultipleCompaniesSupport

    commit a629df07bf
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Mon Sep 16 14:49:08 2024 -0700

        Implement interfaces on existing test classes

    commit 9a13fcab23
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Mon Sep 16 14:38:38 2024 -0700

        Pluralize

    commit f5705a1dde
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Mon Sep 16 14:34:55 2024 -0700

        More unification

    commit f325c4afdb
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Mon Sep 16 14:32:38 2024 -0700

        Unify assertion method

    commit 1fddacd7d0
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Mon Sep 16 14:25:11 2024 -0700

        Re-order test methods

    commit 4af893df61
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Mon Sep 16 14:20:24 2024 -0700

        Improve assertions

    commit b8b3f91ce4
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Mon Sep 16 13:55:18 2024 -0700

        Formatting

    commit 7f40f55343
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Mon Sep 16 13:52:02 2024 -0700

        Add tests for delete supplier endpoint

    commit b06e8d442d
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Mon Sep 16 13:37:08 2024 -0700

        Add tests for delete status label endpoint

    commit c269184c60
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Mon Sep 16 13:29:41 2024 -0700

        Add tests for delete predefined kit endpoint

    commit 53c673dee2
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Mon Sep 16 13:13:12 2024 -0700

        Add tests for delete manufacturer endpoint

    commit 50730fc4fb
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Mon Sep 16 12:37:18 2024 -0700

        Add tests for delete location endpoint

    commit 60a54cee79
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Mon Sep 16 12:33:30 2024 -0700

        Add tests for delete license endpoint

    commit 446e962a50
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Mon Sep 16 10:38:51 2024 -0700

        Add tests for delete group endpoint

    commit 79a4bb7316
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Mon Sep 16 10:35:44 2024 -0700

        Add tests for delete depreciation endpoint

    commit 2f76c1bc5b
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Mon Sep 16 10:33:21 2024 -0700

        Add assertion

    commit 38b9f4a438
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Mon Sep 16 10:29:20 2024 -0700

        Add tests for delete departments endpoint

    commit 3105f53aff
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Thu Sep 12 16:54:29 2024 -0700

        Add tests for delete custom fieldsets endpoint

    commit 2047cfed09
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Thu Sep 12 16:20:32 2024 -0700

        Add tests for delete custom fields endpoint

    commit e3268d32df
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Thu Sep 12 16:00:02 2024 -0700

        Add tests for delete consumable endpoint

    commit 6df8b0ac0e
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Thu Sep 12 15:52:07 2024 -0700

        Add tests for delete component endpoint

    commit 910f13c1f7
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Thu Sep 12 15:38:30 2024 -0700

        Add tests for delete companies endpoint

    commit 8ce2512f55
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Thu Sep 12 13:54:44 2024 -0700

        Add tests for delete category endpoint

    commit 0ec415d4d0
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Thu Sep 12 13:46:22 2024 -0700

        Clean up

    commit 2044570e95
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Thu Sep 12 13:39:36 2024 -0700

        Add tests for delete asset model endpoint

    commit b336c6273d
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Thu Sep 12 13:32:42 2024 -0700

        Pluralize test classes

    commit 5299b3e9f0
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Thu Sep 12 13:29:44 2024 -0700

        Remove code handled by CompanyableChildTrait

    commit 872b76b45f
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Thu Sep 12 13:29:10 2024 -0700

        Add tests for delete asset maintenance endpoint

    commit 275cf4630e
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Thu Sep 12 13:16:37 2024 -0700

        Add tests for delete asset endpoint

    commit 5c2660bd34
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Thu Sep 12 13:02:32 2024 -0700

        Introduce interface

    commit c7ae9d9dfa
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Thu Sep 12 12:58:47 2024 -0700

        Add tests for delete accessory endpoint

    commit 9e5f6d656a
    Author: Brady Wetherington <bwetherington@grokability.com>
    Date:   Wed Sep 11 15:45:01 2024 +0100

        Improve multi-asset create when using numeric prefixes to asset_tags

    Signed-off-by: snipe <snipe@snipe.net>

commit 634a4afa75
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 16:04:54 2024 +0100

    Fixed 1001 query on license

    Signed-off-by: snipe <snipe@snipe.net>

commit 7650628d30
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 16:00:59 2024 +0100

    Removed free seat count from fillable

    Signed-off-by: snipe <snipe@snipe.net>

commit 7f690a6238
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 15:58:32 2024 +0100

    Fixed variable name

    Signed-off-by: snipe <snipe@snipe.net>

commit b32ab6a06c
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Sep 18 16:36:24 2024 -0700

    import User model

commit 4ff5fc1ff9
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Sep 18 16:19:35 2024 -0700

    clean up variables

commit 86f13a9735
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Sep 18 16:13:34 2024 -0700

    Add index test

commit c40209f500
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Sep 18 15:23:44 2024 -0700

    seperates emails and webhook notifications

commit a071fff954
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Sep 18 12:32:14 2024 -0700

    Implement tests

commit 8b50ef077d
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Sep 18 11:58:33 2024 -0700

    Implement test

commit 607f29030f
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Sep 18 11:53:27 2024 -0700

    Stub out test

commit a6bcd3c0c2
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Sep 18 11:47:59 2024 -0700

    Add validation test

commit 9b293afaac
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Sep 18 11:28:29 2024 -0700

    Remove more dead code

commit 636c776620
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Sep 18 11:27:37 2024 -0700

    Remove dead code

commit d5f659024c
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Sep 18 11:27:09 2024 -0700

    Add test for logging

commit 832e50a71e
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Sep 18 11:19:41 2024 -0700

    Implement test

commit fa19686248
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Sep 18 11:18:21 2024 -0700

    Implement test

commit c021609c13
Merge: 7b31df7c1 dddbf27d7
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Sep 18 10:42:58 2024 -0700

    Merge branch 'develop' into testing/fmcs-accessories

commit 655abe8be5
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 18 14:32:59 2024 +0100

    Fixed requestable user_id

    Signed-off-by: snipe <snipe@snipe.net>

commit d96c5e1ba4
Merge: a807646d3 dddbf27d7
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 18 14:20:55 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit dddbf27d78
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 18 14:18:52 2024 +0100

    Updated language strings

    Signed-off-by: snipe <snipe@snipe.net>

commit bae9982833
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 18 14:18:14 2024 +0100

    Updated request methods

    Signed-off-by: snipe <snipe@snipe.net>

commit a807646d39
Merge: 83b4bf9cf fcefcc818
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 18 13:48:09 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit abe79df6dc
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 18 13:47:30 2024 +0100

    Added translation

    Signed-off-by: snipe <snipe@snipe.net>

commit fcefcc8184
Merge: 04bb3eec8 3519a82dd
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 18 13:44:44 2024 +0100

    Merge pull request #15512 from marcusmoore/testing/fmcs

    Added tests for delete methods in api

commit 04bb3eec83
Merge: 154d5d8d9 f963b9a19
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 18 13:41:37 2024 +0100

    Merge pull request #15521 from uberbrady/improve_country_selector

    Fix selected-index of Countries drop-down [fd-44144]

commit f963b9a19f
Author: Brady Wetherington <bwetherington@grokability.com>
Date:   Wed Sep 18 13:24:26 2024 +0100

    Fix selected-index of Countries drop-down

commit 154d5d8d91
Merge: 6c996b775 9e5f6d656
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 17 23:40:25 2024 +0100

    Merge pull request #15491 from uberbrady/numeric_prefixes_add_multiple_assets

    [Fixes fd-43940] Improve multi-asset create when using numeric prefixes to asset_tags

commit 1582d81e5b
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 17 22:16:41 2024 +0100

    Change `user_id` to `created_by`

    Signed-off-by: snipe <snipe@snipe.net>

commit 7c85ad54eb
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 17 19:44:03 2024 +0100

    Sort by numeric columns for numeric custom fields

    Signed-off-by: snipe <snipe@snipe.net>

commit 7b31df7c14
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Tue Sep 17 09:11:58 2024 -0700

    Begin additional test case

commit 83b4bf9cf8
Merge: 9ff211105 6c996b775
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 17 15:54:53 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 6c996b7759
Merge: fe5fc6e0c 9e957baeb
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 17 15:54:11 2024 +0100

    Merge pull request #15516 from snipe/fixes/fmcs_edit_user

    Fixed check for outside assets on user update validation

commit 9e957baeb5
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 17 15:46:45 2024 +0100

    Fixed check for outside assets on user update validation

    Signed-off-by: snipe <snipe@snipe.net>

commit 12fd9cd97a
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 17:00:08 2024 -0700

    Update interface name

commit 9e03c4ba6f
Merge: 8eb1c487b 3519a82dd
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 16:58:46 2024 -0700

    Merge branch 'testing/fmcs' into testing/fmcs-accessories

commit 3519a82ddd
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 16:55:20 2024 -0700

    Fix name: TestsFullMultipleCompaniesSupport

commit 8eb1c487bc
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 16:52:10 2024 -0700

    implement FMCS test for accessory index

commit e835637ef0
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 16:40:10 2024 -0700

    Add accessory checkin test

commit eb35608bb5
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 16:35:33 2024 -0700

    Remove call handled by form request

commit 3f07f682de
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 16:35:21 2024 -0700

    Migrate existing tests to TestsPermissionsRequirement

commit a629df07bf
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 14:49:08 2024 -0700

    Implement interfaces on existing test classes

commit 9a13fcab23
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 14:38:38 2024 -0700

    Pluralize

commit f5705a1dde
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 14:34:55 2024 -0700

    More unification

commit f325c4afdb
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 14:32:38 2024 -0700

    Unify assertion method

commit 1fddacd7d0
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 14:25:11 2024 -0700

    Re-order test methods

commit 4af893df61
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 14:20:24 2024 -0700

    Improve assertions

commit b8b3f91ce4
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 13:55:18 2024 -0700

    Formatting

commit 7f40f55343
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 13:52:02 2024 -0700

    Add tests for delete supplier endpoint

commit b06e8d442d
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 13:37:08 2024 -0700

    Add tests for delete status label endpoint

commit c269184c60
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 13:29:41 2024 -0700

    Add tests for delete predefined kit endpoint

commit 53c673dee2
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 13:13:12 2024 -0700

    Add tests for delete manufacturer endpoint

commit 50730fc4fb
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 12:37:18 2024 -0700

    Add tests for delete location endpoint

commit 60a54cee79
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 12:33:30 2024 -0700

    Add tests for delete license endpoint

commit 446e962a50
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 10:38:51 2024 -0700

    Add tests for delete group endpoint

commit 79a4bb7316
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 10:35:44 2024 -0700

    Add tests for delete depreciation endpoint

commit 2f76c1bc5b
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 10:33:21 2024 -0700

    Add assertion

commit 38b9f4a438
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 10:29:20 2024 -0700

    Add tests for delete departments endpoint

commit fe5fc6e0ce
Merge: 62747a009 15183c482
Author: snipe <snipe@snipe.net>
Date:   Mon Sep 16 15:56:31 2024 +0100

    Merge pull request #15471 from Godmartinz/Edit_side-panel

    Fixes margin for the sidebar menus while using rtl languages

commit 62747a0090
Merge: b465cc98d c6c5cb73c
Author: snipe <snipe@snipe.net>
Date:   Mon Sep 16 15:02:55 2024 +0100

    Merge pull request #15493 from Godmartinz/fix_consumables_media_sizing

    Fixed misalignment of consumables with smaller media

commit 9ff2111055
Merge: 1328366a4 b465cc98d
Author: snipe <snipe@snipe.net>
Date:   Mon Sep 16 14:52:48 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit b465cc98d8
Merge: 8774da392 4debaaea3
Author: snipe <snipe@snipe.net>
Date:   Mon Sep 16 14:45:06 2024 +0100

    Merge pull request #15510 from snipe/bulk_users_locale_fix

    Fixed #15504 - allow nulling/not changing locale in user bulk edit

commit 4debaaea39
Author: snipe <snipe@snipe.net>
Date:   Mon Sep 16 14:31:10 2024 +0100

    Fixed #15504 - allow nulling/not changing locale in user bulk edit

    Signed-off-by: snipe <snipe@snipe.net>

commit 1328366a48
Merge: 7e14f8c6d 8774da392
Author: snipe <snipe@snipe.net>
Date:   Mon Sep 16 12:38:56 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 4facc4007e
Author: setpill <37372069+setpill@users.noreply.github.com>
Date:   Fri Sep 13 17:05:48 2024 +0200

    feat: Explicitly request LDAP attributes during sync

commit 31da47e046
Author: setpill <37372069+setpill@users.noreply.github.com>
Date:   Fri Sep 13 17:05:28 2024 +0200

    refactor: Put LDAP attribute mapping in array

commit 3105f53aff
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 12 16:54:29 2024 -0700

    Add tests for delete custom fieldsets endpoint

commit 2047cfed09
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 12 16:20:32 2024 -0700

    Add tests for delete custom fields endpoint

commit e3268d32df
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 12 16:00:02 2024 -0700

    Add tests for delete consumable endpoint

commit 6df8b0ac0e
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 12 15:52:07 2024 -0700

    Add tests for delete component endpoint

commit 910f13c1f7
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 12 15:38:30 2024 -0700

    Add tests for delete companies endpoint

commit 8ce2512f55
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 12 13:54:44 2024 -0700

    Add tests for delete category endpoint

commit 0ec415d4d0
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 12 13:46:22 2024 -0700

    Clean up

commit 2044570e95
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 12 13:39:36 2024 -0700

    Add tests for delete asset model endpoint

commit b336c6273d
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 12 13:32:42 2024 -0700

    Pluralize test classes

commit 5299b3e9f0
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 12 13:29:44 2024 -0700

    Remove code handled by CompanyableChildTrait

commit 872b76b45f
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 12 13:29:10 2024 -0700

    Add tests for delete asset maintenance endpoint

commit 275cf4630e
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 12 13:16:37 2024 -0700

    Add tests for delete asset endpoint

commit 5c2660bd34
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 12 13:02:32 2024 -0700

    Introduce interface

commit c7ae9d9dfa
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 12 12:58:47 2024 -0700

    Add tests for delete accessory endpoint

commit 0bc98e971f
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Sep 12 12:26:19 2024 -0700

    refactoring modals with partials and fixing misalignments

commit 8774da3921
Merge: ab3b65531 a97530367
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 12 16:08:44 2024 +0100

    Merge pull request #15492 from snipe/fixes/edit_to_archived_warning

    Fix - warn user on changing status to undeployable when editing

commit c6c5cb73cf
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Sep 11 10:49:27 2024 -0700

    fixes consumables positioning with smaller media

commit a97530367d
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 11 17:29:22 2024 +0100

    Fixed tests again

    Signed-off-by: snipe <snipe@snipe.net>

commit 43250ae881
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 11 17:04:09 2024 +0100

    Updated tests

    Signed-off-by: snipe <snipe@snipe.net>

commit 04e96b8f20
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 11 16:43:41 2024 +0100

    Added tests

    Signed-off-by: snipe <snipe@snipe.net>

commit 98323185de
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 11 16:43:33 2024 +0100

    Null and warn if editing asset to a non-deployabe state

    Signed-off-by: snipe <snipe@snipe.net>

commit 9e5f6d656a
Author: Brady Wetherington <bwetherington@grokability.com>
Date:   Wed Sep 11 15:45:01 2024 +0100

    Improve multi-asset create when using numeric prefixes to asset_tags

commit 7e14f8c6d6
Merge: fddbdafb9 ab3b65531
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 11 12:25:28 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit ab3b655312
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 11 12:25:09 2024 +0100

    Fixed #15483 - show EOL by default

    Signed-off-by: snipe <snipe@snipe.net>

commit 601d8d7e5f
Merge: 4f0f72b29 ca01261c1
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 11 09:46:58 2024 +0100

    Merge pull request #15486 from marcusmoore/fixes/custom-field-values

    Fixed a couple bugs in CustomFieldSetDefaultValuesForModel component

commit ca01261c1f
Merge: 6423df213 4f0f72b29
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Tue Sep 10 16:05:39 2024 -0700

    Merge branch 'develop' into fixes/custom-field-values

commit 15183c4822
Author: Godfrey M <godmartinz@gmail.com>
Date:   Tue Sep 10 11:05:03 2024 -0700

    rephrased the ternary <-correctly spelled

commit fddbdafb99
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 10 19:03:56 2024 +0100

    Fixed conflict

    Signed-off-by: snipe <snipe@snipe.net>

commit a5dbece1a9
Merge: 713bb104e 4f0f72b29
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 10 19:00:05 2024 +0100

    Merge remote-tracking branch 'origin/develop'

    Signed-off-by: snipe <snipe@snipe.net>

    # Conflicts:
    #	config/version.php
    #	public/css/build/app.css
    #	public/css/build/overrides.css
    #	public/css/dist/all.css
    #	public/mix-manifest.json

commit 4f0f72b29e
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 10 18:15:12 2024 +0100

    Fixed version

    Signed-off-by: snipe <snipe@snipe.net>

commit 4183d1834f
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 10 18:14:03 2024 +0100

    Pre-release assets

    Signed-off-by: snipe <snipe@snipe.net>

commit 713bb104ec
Merge: 7f2cae4f2 4998d60f3
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 10 14:46:15 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 4998d60f39
Merge: f6bf2d03c 7cf30003b
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 10 14:43:27 2024 +0100

    Merge pull request #15481 from snipe/localizations/2024-09-10

    Updated translations

commit 7cf30003b6
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 10 14:41:08 2024 +0100

    Updated strings

    Signed-off-by: snipe <snipe@snipe.net>

commit f6bf2d03c4
Merge: 6f44441a8 7c8955b12
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 10 11:04:58 2024 +0100

    Merge pull request #15445 from Godmartinz/eula_confusion

    Fixed priority for category eula vs default eula

commit 6f44441a8b
Merge: e7e5dfbdf 76c9015aa
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 10 11:04:23 2024 +0100

    Merge pull request #15469 from marcusmoore/accessory_tests

    Added UI tests for creating accessories

commit e7e5dfbdfa
Merge: d62315fbe 5d5f42129
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 10 11:04:08 2024 +0100

    Merge pull request #15470 from marcusmoore/company_tests

    Added UI tests for creating companies

commit d62315fbe4
Merge: 7f3f77dec 22a2cc025
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 10 11:03:55 2024 +0100

    Merge pull request #15472 from marcusmoore/testing/dashboard_counts

    Added test for dashboard counts

commit 7f3f77dec8
Merge: 82e56c683 0820dd9da
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 10 11:03:46 2024 +0100

    Merge pull request #15473 from marcusmoore/testing/accessory_api_tests

    Added some permission tests for accessory api endpoints

commit 82e56c6832
Merge: 549dec9f9 dc6a5bf99
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 10 09:37:02 2024 +0100

    Merge pull request #15474 from marcusmoore/bug/sc-26730

    Fixed login success message not being displayed

commit 76c9015aa9
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 9 16:51:40 2024 -0700

    Add test case

commit 5d5f421294
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 9 16:49:43 2024 -0700

    Add test case

commit 367f02af86
Author: Godfrey M <godmartinz@gmail.com>
Date:   Mon Sep 9 16:34:04 2024 -0700

    more partials and includes

commit 7a1c721eca
Author: Godfrey M <godmartinz@gmail.com>
Date:   Mon Sep 9 16:22:56 2024 -0700

    making modal partials for reuse

commit 6423df2133
Merge: 51d63d57c 549dec9f9
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 9 16:07:37 2024 -0700

    Merge branch 'develop' into fixes/custom-field-values

    # Conflicts:
    #	resources/views/livewire/custom-field-set-default-values-for-model.blade.php

commit dc6a5bf998
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 9 14:54:19 2024 -0700

    Reflash session so login message is displayed

commit 0820dd9da4
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 9 14:36:32 2024 -0700

    Update test names

commit aa6ab2df60
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 9 14:35:38 2024 -0700

    Add permission tests for some accessory api endpoints

commit 22a2cc0256
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 9 13:21:10 2024 -0700

    Add test for dashboard counts

commit 57fab0268b
Author: Godfrey M <godmartinz@gmail.com>
Date:   Mon Sep 9 13:02:25 2024 -0700

    made it a terenary

commit ad5768d8b2
Author: Godfrey M <godmartinz@gmail.com>
Date:   Mon Sep 9 12:45:11 2024 -0700

    fixes margin for the sidebar using rtl languages

commit 35533c39d5
Merge: d4426e468 549dec9f9
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 9 12:18:02 2024 -0700

    Merge branch 'develop' into company_tests

commit de403f6e07
Merge: 010f66f4c 549dec9f9
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 9 12:17:53 2024 -0700

    Merge branch 'develop' into accessory_tests

commit 549dec9f9e
Merge: b2a634924 0e9f7153c
Author: snipe <snipe@snipe.net>
Date:   Mon Sep 9 20:13:01 2024 +0100

    Merge pull request #15468 from marcusmoore/coverage

    Added coverage commands for Herd users

commit d4426e4686
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 9 11:03:00 2024 -0700

    Add simple tests for company creation via UI

commit b2a6349243
Merge: ce97e2a30 c5dbc5f6b
Author: snipe <snipe@snipe.net>
Date:   Mon Sep 9 10:06:42 2024 +0100

    Merge pull request #15465 from snipe/update_city_on_bulk_user_edit

    Correctly save user’s city on bulk edit

commit c5dbc5f6b8
Author: snipe <snipe@snipe.net>
Date:   Mon Sep 9 10:01:07 2024 +0100

    Correctly save user’s city on bulk edit

    Signed-off-by: snipe <snipe@snipe.net>

commit 7f2cae4f26
Merge: e34f549e4 ce97e2a30
Author: snipe <snipe@snipe.net>
Date:   Mon Sep 9 03:56:05 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit ce97e2a30f
Merge: e1fcfc8dc 7d9a0eba0
Author: snipe <snipe@snipe.net>
Date:   Mon Sep 9 03:54:28 2024 +0100

    Merge pull request #15463 from snipe/consumables_order_by_remaining

    Added ability to sort on qty and remaining for consumables

commit 7d9a0eba04
Author: snipe <snipe@snipe.net>
Date:   Mon Sep 9 03:49:58 2024 +0100

    Added ability to sort on qty and remaining for consumables

    Signed-off-by: snipe <snipe@snipe.net>

commit 010f66f4c9
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Sep 4 15:48:11 2024 -0700

    Add validation test

commit 9c6718b459
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Sep 4 15:46:35 2024 -0700

    Organize

commit 9f832a93c9
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Sep 4 15:44:52 2024 -0700

    Ensure user is stored

commit 487d88c012
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Sep 4 15:43:01 2024 -0700

    Add some ui tests for accessories

commit 0e9f7153c0
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Sep 4 15:13:45 2024 -0700

    Add composer commands for generating coverage reports via Herd

commit 7c8955b126
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Sep 4 12:38:35 2024 -0700

    revert changes to label view

commit 20fa4c39f9
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Sep 4 12:26:44 2024 -0700

    adds setEula to support\settings

commit f04a4a3cf5
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Sep 4 12:21:49 2024 -0700

    adds test

commit cf07186ae8
Author: Godfrey M <godmartinz@gmail.com>
Date:   Tue Sep 3 12:23:23 2024 -0700

    gives priority to default eula being checked vs catregory eula

commit 51d63d57c6
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Tue Sep 3 12:22:43 2024 -0700

    Hide the "Add default values" checkbox if no fieldset selected

commit e34f549e4c
Merge: a8813cca9 e1fcfc8dc
Author: snipe <snipe@snipe.net>
Date:   Mon Sep 2 19:16:23 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit e1fcfc8dc1
Merge: 13dbf9ee7 9fe8a866e
Author: snipe <snipe@snipe.net>
Date:   Mon Sep 2 19:14:49 2024 +0100

    Merge pull request #15440 from snipe/fixes/user_api_put_patch

    Fixes  #15435 - user api put patch API route regression

commit 9fe8a866e0
Author: snipe <snipe@snipe.net>
Date:   Mon Sep 2 19:07:21 2024 +0100

    Updated test

    Signed-off-by: snipe <snipe@snipe.net>

commit e8e3060a75
Author: snipe <snipe@snipe.net>
Date:   Mon Sep 2 18:51:22 2024 +0100

    Added tests

    Signed-off-by: snipe <snipe@snipe.net>

commit 6aaf2f623f
Author: snipe <snipe@snipe.net>
Date:   Mon Sep 2 18:49:55 2024 +0100

    Removed extra route

    Signed-off-by: snipe <snipe@snipe.net>

commit dfbccf50e8
Author: snipe <snipe@snipe.net>
Date:   Mon Sep 2 18:48:09 2024 +0100

    Added patch/put back into resource routes

    Signed-off-by: snipe <snipe@snipe.net>

commit a8813cca94
Merge: 9fef27a44 13dbf9ee7
Author: snipe <snipe@snipe.net>
Date:   Sat Aug 31 13:48:59 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 13dbf9ee74
Author: snipe <snipe@snipe.net>
Date:   Sat Aug 31 13:48:42 2024 +0100

    Added icon for dept

    Signed-off-by: snipe <snipe@snipe.net>

commit f8bbb7ad9b
Merge: 12fa50597 3c7d455ee
Author: snipe <snipe@snipe.net>
Date:   Sat Aug 31 13:47:25 2024 +0100

    Merge pull request #15431 from snipe/add_employee_num_to_asset_overview

    Added employee number to asset view

commit 3c7d455ee3
Author: snipe <snipe@snipe.net>
Date:   Sat Aug 31 13:38:38 2024 +0100

    Added employee number to asset view

    Signed-off-by: snipe <snipe@snipe.net>

commit 9fef27a448
Merge: d2b88a510 12fa50597
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 21:07:56 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 12fa505972
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 21:07:30 2024 +0100

    Disabmiguate licenses company_id

    Signed-off-by: snipe <snipe@snipe.net>

commit d2b88a5107
Merge: 4e35f389d 4e4930ba6
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 21:02:21 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 4e4930ba62
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 21:01:48 2024 +0100

    Check for array

    Signed-off-by: snipe <snipe@snipe.net>

commit 4e35f389df
Merge: e5b9d9a28 76301bc30
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 20:07:03 2024 +0100

    Merge remote-tracking branch 'origin/develop'

    Signed-off-by: snipe <snipe@snipe.net>

    # Conflicts:
    #	public/css/build/app.css
    #	public/css/build/overrides.css
    #	public/css/dist/all.css
    #	public/mix-manifest.json

commit 76301bc30d
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 20:05:03 2024 +0100

    Fixed typo

    Signed-off-by: snipe <snipe@snipe.net>

commit 964e105cf9
Merge: 6fd24c7e1 abb422153
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 19:20:03 2024 +0100

    Merge pull request #15415 from snipe/rules/prevent_company_switch

    Validation rules to prevent switching user companies if items are assigned to them

commit 6fd24c7e14
Merge: e4ebabdab 231bc1e2d
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 18:55:11 2024 +0100

    Merge pull request #15418 from snipe/added_multiple_for_custom_report

    Fixed #15416 - Added multiple selects for custom report

commit 231bc1e2de
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 18:31:34 2024 +0100

    Updated blade selectors

    Signed-off-by: snipe <snipe@snipe.net>

commit 37d04b7176
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 17:52:01 2024 +0100

    Some CSS tweaks for select2

    Signed-off-by: snipe <snipe@snipe.net>

commit e62a802926
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 17:51:44 2024 +0100

    Use whereIn instead of where =

    Signed-off-by: snipe <snipe@snipe.net>

commit 69e981364a
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 17:51:20 2024 +0100

    Made multiple select

    Signed-off-by: snipe <snipe@snipe.net>

commit e5b9d9a28b
Merge: 4111ef0d7 e4ebabdab
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 15:04:32 2024 +0100

    Merge remote-tracking branch 'origin/develop'

    Signed-off-by: snipe <snipe@snipe.net>

    # Conflicts:
    #	public/js/build/app.js
    #	public/js/build/vendor.js
    #	public/js/dist/all.js
    #	public/mix-manifest.json

commit abb4221539
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 14:55:18 2024 +0100

    Validation rules to prevent switchng user companies if assets are assigned

    Signed-off-by: snipe <snipe@snipe.net>

commit e4ebabdaba
Merge: b64ed254e da1e38329
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 14:19:51 2024 +0100

    Merge pull request #15414 from uberbrady/fix_create_user

    Use the null-safe property accessor for new-user creation

commit da1e383295
Author: Brady Wetherington <bwetherington@grokability.com>
Date:   Thu Aug 29 14:09:23 2024 +0100

    Use the null-safe property accessor for new-user creation

commit b64ed254e0
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 13:49:09 2024 +0100

    Fixed tests

    Signed-off-by: snipe <snipe@snipe.net>

commit ba291edc42
Merge: c197644ba ec2ea955d
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 13:18:52 2024 +0100

    Merge pull request #15412 from uberbrady/ImprovePatchPurchasePrice

    Fix [FD-43836] PATCH of purchase_cost for assets for comma as decimal separator

commit ec2ea955d8
Author: Brady Wetherington <bwetherington@grokability.com>
Date:   Thu Aug 29 12:35:14 2024 +0100

    Fix PATCH of purchase_cost for assets for comma as decimal separator

commit c197644ba7
Merge: 29b30cc5d a8cd1027f
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 11:38:15 2024 +0100

    Merge pull request #15284 from spencerrlongg/bug/sc-26584

    [Multi-Company] Fixes Users Being Moved With Items Still Assigned

commit 29b30cc5d3
Merge: a89f17a14 6af27516d
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 11:29:44 2024 +0100

    Merge pull request #15411 from snipe/snyk/upgrade-webpack

    Upgraded webpack

commit 6af27516dc
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 11:29:00 2024 +0100

    Upgraded webpack

    Signed-off-by: snipe <snipe@snipe.net>

commit a89f17a145
Merge: 68c708bde de0565f5b
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 11:25:56 2024 +0100

    Merge pull request #15410 from snipe/snyk/upgrade-jquery-ui

    Updated jquery UI

commit de0565f5b3
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 11:24:06 2024 +0100

    Updated jquery UI

    Signed-off-by: snipe <snipe@snipe.net>

commit 4111ef0d78
Merge: cfa56e221 68c708bde
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 11:20:21 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 68c708bdef
Merge: 58e366a06 5581950fe
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 11:18:34 2024 +0100

    Merge pull request #15409 from snipe/fixes-string

    Corrected language string

commit 5581950fee
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 11:17:17 2024 +0100

    Corrected language string

    Signed-off-by: snipe <snipe@snipe.net>

commit cfa56e2219
Merge: 7f1dfcc93 58e366a06
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 11:08:53 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 58e366a063
Merge: 26f28a862 b06c52776
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 11:08:02 2024 +0100

    Merge pull request #15408 from snipe/redirect-on-print-if-user-invalid

    Check that the user exists before trying to print

commit b06c527767
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 11:06:30 2024 +0100

    Check that the user exists before trying to print

    Signed-off-by: snipe <snipe@snipe.net>

commit 7f1dfcc935
Merge: 6f3fb21fe 26f28a862
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 28 14:29:06 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 26f28a862a
Merge: e8da7e2df 94c981e22
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 28 14:26:03 2024 +0100

    Merge pull request #15404 from snipe/bug/sc-26717-model-delete

    Set image to null if model is deleted

commit 94c981e22c
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 28 14:23:49 2024 +0100

    Set image to null if model is deleted

    Signed-off-by: snipe <snipe@snipe.net>

commit 6f3fb21fef
Merge: a48e79a1f e8da7e2df
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 28 12:50:19 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit e8da7e2df2
Merge: 7b5b559ba d635c86e0
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 28 12:46:48 2024 +0100

    Merge pull request #15403 from snipe/clean_up_depreciations

    Fixed #15392 - filter by depreciation when showing models

commit d635c86e00
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 28 12:46:30 2024 +0100

    Added tests

    Signed-off-by: snipe <snipe@snipe.net>

commit 406ff6984b
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 28 12:42:23 2024 +0100

    Added click to select on models table

    Signed-off-by: snipe <snipe@snipe.net>

commit c6ddc501c5
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 28 12:40:12 2024 +0100

    Filter by depreciation_id

    Signed-off-by: snipe <snipe@snipe.net>

commit 4839181beb
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 28 12:40:01 2024 +0100

    Added counts to API

    Signed-off-by: snipe <snipe@snipe.net>

commit 63a05c89a7
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 28 12:39:52 2024 +0100

    Added counts to show method

    Signed-off-by: snipe <snipe@snipe.net>

commit 385c4f69f7
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 28 12:39:43 2024 +0100

    Added counts to depreciation transformer

    Signed-off-by: snipe <snipe@snipe.net>

commit 486cd8c8c9
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 28 12:39:09 2024 +0100

    Nicer formatting for searchableAttributes

    Signed-off-by: snipe <snipe@snipe.net>

commit eb5d93b3c2
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 28 12:38:55 2024 +0100

    Added assets relationship

    Signed-off-by: snipe <snipe@snipe.net>

commit a5ff623484
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 28 12:38:43 2024 +0100

    Added asset, license, model count to API

    Signed-off-by: snipe <snipe@snipe.net>

commit b5a4389815
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 28 12:38:31 2024 +0100

    Added badge count, fixed model bulk edit menu

    Signed-off-by: snipe <snipe@snipe.net>

commit 7b5b559baa
Merge: 64c4433b9 67a992974
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 28 11:57:29 2024 +0100

    Merge pull request #15401 from snipe/fixes-15397-new-window-for-label

    Opens label new window

commit 67a9929745
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 28 11:56:54 2024 +0100

    Opens label new window

    Signed-off-by: snipe <snipe@snipe.net>

commit a48e79a1fc
Merge: c207d4843 64c4433b9
Author: snipe <snipe@snipe.net>
Date:   Tue Aug 27 07:37:53 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 64c4433b98
Merge: d3e8e0663 22bc088f6
Author: snipe <snipe@snipe.net>
Date:   Tue Aug 27 07:36:37 2024 +0100

    Merge pull request #15396 from snipe/add_start_end_date_to_users_edit

    Added `start_date` and `end_date` to user bulk edit

commit 22bc088f6f
Author: snipe <snipe@snipe.net>
Date:   Tue Aug 27 07:21:19 2024 +0100

    Added start_date and end_date to user bulk edit

    Signed-off-by: snipe <snipe@snipe.net>

commit d3e8e06638
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 26 14:07:06 2024 +0100

    Add @swift2512 as a contributor

commit c207d48430
Merge: 991e48696 1b933f7ad
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 26 14:01:38 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 1b933f7add
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 26 13:47:17 2024 +0100

    Added s to fa icons

    Signed-off-by: snipe <snipe@snipe.net>

commit 991e48696a
Merge: 797488504 3fe891a05
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 26 10:26:06 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 3fe891a05b
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 26 10:25:27 2024 +0100

    Removed a few more commas

    Signed-off-by: snipe <snipe@snipe.net>

commit 7974885041
Merge: 4ef85bd52 f4c5b712f
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 26 10:24:19 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit f4c5b712f4
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 26 10:24:07 2024 +0100

    Removed colons

    Signed-off-by: snipe <snipe@snipe.net>

commit 4ef85bd529
Merge: 6eab83a85 4c8dc7818
Author: snipe <snipe@snipe.net>
Date:   Fri Aug 23 17:58:08 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 4c8dc7818d
Merge: aa86e07cd 5c43a1f87
Author: snipe <snipe@snipe.net>
Date:   Fri Aug 23 17:57:00 2024 +0100

    Merge pull request #15389 from snipe/added_generate_label_to_button_stack

    Fixed #15388 - Moved generate label  button

commit 5c43a1f87c
Author: snipe <snipe@snipe.net>
Date:   Fri Aug 23 17:54:49 2024 +0100

    Use proper style for buttons

    Signed-off-by: snipe <snipe@snipe.net>

commit d3b265de8e
Author: snipe <snipe@snipe.net>
Date:   Fri Aug 23 17:48:36 2024 +0100

    Moved button on hardware

    Signed-off-by: snipe <snipe@snipe.net>

commit 263151658f
Author: snipe <snipe@snipe.net>
Date:   Fri Aug 23 17:44:09 2024 +0100

    Moved general label  button

    Signed-off-by: snipe <snipe@snipe.net>

commit 6eab83a85a
Merge: cce1f87da aa86e07cd
Author: snipe <snipe@snipe.net>
Date:   Fri Aug 23 15:22:53 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit aa86e07cd2
Author: snipe <snipe@snipe.net>
Date:   Fri Aug 23 15:22:39 2024 +0100

    Fixed #15385 - small icon tweaks

    Signed-off-by: snipe <snipe@snipe.net>

commit cce1f87da6
Merge: b460e8dc8 d92fa5de6
Author: snipe <snipe@snipe.net>
Date:   Fri Aug 23 15:18:30 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit d92fa5de65
Author: snipe <snipe@snipe.net>
Date:   Fri Aug 23 15:17:25 2024 +0100

    fa-fw on settings icon

    Signed-off-by: snipe <snipe@snipe.net>

commit b460e8dc83
Merge: 50cb7e65c c589140ea
Author: snipe <snipe@snipe.net>
Date:   Fri Aug 23 08:42:32 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit c589140ea0
Merge: cc2c8f76d 52894615c
Author: snipe <snipe@snipe.net>
Date:   Fri Aug 23 08:42:04 2024 +0100

    Merge pull request #15383 from snipe/re-adds-checkout-button

    Fixed #15378 - Corrected gate on checkin button on asset view

commit 52894615ce
Author: snipe <snipe@snipe.net>
Date:   Fri Aug 23 08:40:41 2024 +0100

    More specific gate for checkin

    Signed-off-by: snipe <snipe@snipe.net>

commit 8546bbdd65
Author: snipe <snipe@snipe.net>
Date:   Fri Aug 23 08:38:47 2024 +0100

    Fixed gate for checkout button

    Signed-off-by: snipe <snipe@snipe.net>

commit 50cb7e65c9
Merge: 821dd158d cc2c8f76d
Author: snipe <snipe@snipe.net>
Date:   Fri Aug 23 07:32:39 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit cc2c8f76d0
Merge: 1ffa69c43 3957d670d
Author: snipe <snipe@snipe.net>
Date:   Fri Aug 23 07:31:29 2024 +0100

    Merge pull request #15375 from Godmartinz/fix-acceptance-reminder-command

    Fixes the `acceptance-reminder` command

commit 1ffa69c43c
Merge: 78d355f13 f85ebd7ff
Author: snipe <snipe@snipe.net>
Date:   Fri Aug 23 07:28:20 2024 +0100

    Merge pull request #15380 from snipe/fixed/fixed_nav_bracket

    Added pull-right to angle bracket

commit f85ebd7ffd
Author: snipe <snipe@snipe.net>
Date:   Fri Aug 23 07:27:39 2024 +0100

    Added pull-right to angle bracket

    Signed-off-by: snipe <snipe@snipe.net>

commit 78d355f136
Merge: ec0346e4a af0a95be1
Author: snipe <snipe@snipe.net>
Date:   Fri Aug 23 07:20:23 2024 +0100

    Merge pull request #15377 from marcusmoore/fixes/custom-field-values-on-validation-error

    Fixed custom field defaults being prematurely updated

commit ec0346e4a8
Author: snipe <snipe@snipe.net>
Date:   Fri Aug 23 07:19:08 2024 +0100

    Add @setpill as a contributor

commit fc5eb37776
Merge: 833dace2b 1d7853cbf
Author: snipe <snipe@snipe.net>
Date:   Fri Aug 23 07:18:41 2024 +0100

    Merge pull request #15379 from setpill/fix/load-trustproxies-middleware

    fixed #15374: load TrustProxies middleware in Kernel.php

commit 9a73311a99
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Aug 22 17:04:04 2024 -0700

    Fix nested checkboxes being updated as a group

commit aec781e7df
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Aug 22 16:03:30 2024 -0700

    Be a little more explicit

commit 1d7853cbfe
Author: setpill <37372069+setpill@users.noreply.github.com>
Date:   Thu Aug 22 19:45:53 2024 +0200

    fixed #15374: load TrustProxies middleware in Kernel.php

commit 7f3c86165b
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Aug 22 13:58:31 2024 -0700

    Conditionally disable Add default values checkbox

commit 10b45812c4
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Aug 22 13:38:01 2024 -0700

    Improve id for checkboxes and radio buttons

commit c3165717ed
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Aug 22 13:20:04 2024 -0700

    Handle old input

commit d0a351a132
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Aug 22 12:59:03 2024 -0700

    Add comment

commit 68749e7e87
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Aug 22 12:58:35 2024 -0700

    Simplify logic

commit 0abb5637e0
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Aug 22 12:54:54 2024 -0700

    WIP: handle old input

commit af0a95be12
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Aug 21 17:00:32 2024 -0700

    Simplify assertions

commit d67975cb62
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Aug 21 16:59:44 2024 -0700

    Implement fix

commit 663b2fd844
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Aug 21 16:59:38 2024 -0700

    Add test case

commit bcace9d019
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Aug 21 16:54:16 2024 -0700

    Point test to correct endpoint

commit b59bf3e7dc
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Aug 21 16:49:29 2024 -0700

    Add failing test

commit 3957d670d0
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Aug 22 10:04:46 2024 -0700

    fixes send acceptance reminder query

commit 821dd158d1
Merge: 6c9a40268 833dace2b
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 22 15:50:20 2024 +0100

    Merge remote-tracking branch 'origin/develop'

    Signed-off-by: snipe <snipe@snipe.net>

    # Conflicts:
    #	public/css/build/app.css
    #	public/css/build/overrides.css
    #	public/css/dist/all.css
    #	public/js/build/app.js
    #	public/js/dist/all.js
    #	public/mix-manifest.json

commit 833dace2b4
Merge: ec365b080 56e31d230
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 22 15:00:16 2024 +0100

    Merge pull request #15373 from snipe/fixes/#15366_custom_fields

    Fixed #15366 use the non-admin edit encrypted custom fields permissions

commit 56e31d2303
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 22 14:58:09 2024 +0100

    Fixed #15366 - use permission for encrypted custom fields

    Signed-off-by: snipe <snipe@snipe.net>

commit ec365b0804
Merge: ca8864c06 aef0ac68c
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 22 14:49:13 2024 +0100

    Merge pull request #15372 from StarlessNights/update-docker-compose-files

    Fixed #15371: docker-compose files updated.

commit aef0ac68c3
Author: Iisakki Jaakkola <iihaja@utu.fi>
Date:   Thu Aug 22 16:10:00 2024 +0300

    Need to use the long format for redis too in docker-compose file.

commit f12f9a816f
Author: Iisakki Jaakkola <iihaja@utu.fi>
Date:   Thu Aug 22 15:47:12 2024 +0300

    Update the official docker-compose file too while at it.

commit a000d6454f
Author: Iisakki Jaakkola <iihaja@utu.fi>
Date:   Thu Aug 22 15:46:40 2024 +0300

    Fix non-functional development docker-compose file.

commit ca8864c061
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 22 13:28:52 2024 +0100

    Fixed small layout quirks in asset view

    Signed-off-by: snipe <snipe@snipe.net>

commit 423f4f9126
Merge: 456c7d8d9 5fa0c87ab
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 22 13:25:41 2024 +0100

    Merge pull request #14667 from Godmartinz/add_location_to_create_user_via_asset

    Adds location select to the create new user via asset checkout

commit 456c7d8d91
Merge: 54cfe3f6e d4d19569e
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 22 13:20:56 2024 +0100

    Merge pull request #15065 from Godmartinz/explicit_eol_removal_command

    Adds `snipeit:remove-explicit-eols` command

commit 54cfe3f6e6
Merge: 5e0b18104 bb465dbfa
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 22 13:20:10 2024 +0100

    Merge pull request #15156 from uberbrady/re-add-stalebot

    Re-add stalebot-esque github Action

commit 5e0b18104d
Merge: ec0b9b198 8b5d3f7fb
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 22 12:59:20 2024 +0100

    Merge pull request #15369 from snipe/fixes/checkbox_on_restore

    Fixed checkbox layout on modal from #15296

commit 8b5d3f7fbd
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 22 12:56:32 2024 +0100

    Fixed extra closing p tag

    Signed-off-by: snipe <snipe@snipe.net>

commit 744f43676d
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 22 12:53:16 2024 +0100

    Fixed checkbox layout on modal from #15296

    Signed-off-by: snipe <snipe@snipe.net>

commit ec0b9b198f
Merge: 94300d81d 738ef442f
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 22 12:43:07 2024 +0100

    Merge pull request #15296 from uberbrady/expose_restore_sanitize

    Expose the 'sanitize' system for backup restores to the web GUI

commit 6c9a402685
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 22 11:20:52 2024 +0100

    Updated prod assets

    Signed-off-by: snipe <snipe@snipe.net>

commit 1b310f3a24
Merge: c54bff0f8 94300d81d
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 22 11:20:42 2024 +0100

    Merge remote-tracking branch 'origin/develop'

    Signed-off-by: snipe <snipe@snipe.net>

    # Conflicts:
    #	public/css/build/app.css
    #	public/css/build/overrides.css
    #	public/css/dist/all.css
    #	public/mix-manifest.json

commit 94300d81d6
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 22 11:19:32 2024 +0100

    Updated dev assets

    Signed-off-by: snipe <snipe@snipe.net>

commit bc9ea5a2ec
Merge: 4635a6efc 963911f2e
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 22 11:18:06 2024 +0100

    Merge pull request #15352 from Godmartinz/mobile_breakpoint

    Fixed Mobile misalignment of info on Assets and Users view pages

commit 4635a6efc3
Merge: 9608414ea d29b3bfb9
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 22 11:17:49 2024 +0100

    Merge pull request #15360 from snipe/more_print_fixes

    More print fixes for asset view

commit 9608414eae
Merge: 47d8e2f8b 5efddf6f5
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 22 11:06:13 2024 +0100

    Merge pull request #15367 from snipe/fixes/15344_added_freeform_to_country_select2

    Fixed #15344 - make select2 for countries freeform-ish

commit 5efddf6f5b
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 22 11:01:39 2024 +0100

    Allow clear on country dropdown

    Signed-off-by: snipe <snipe@snipe.net>

commit 305dc049a4
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 22 11:01:28 2024 +0100

    Added asterisk help text

    Signed-off-by: snipe <snipe@snipe.net>

commit 3ac0702094
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 22 10:13:22 2024 +0100

    Fixed #15344 - make select2 for countries freeform-ish

    Signed-off-by: snipe <snipe@snipe.net>

commit 47d8e2f8b9
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 22 09:42:05 2024 +0100

    Add @Scarzy as a contributor

commit a2246b9645
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Aug 21 17:00:32 2024 -0700

    Simplify assertions

commit 1d89759706
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Aug 21 16:59:44 2024 -0700

    Implement fix

commit 206f8fe605
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Aug 21 16:59:38 2024 -0700

    Add test case

commit 21d2217619
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Aug 21 16:54:16 2024 -0700

    Point test to correct endpoint

commit 833bcb282f
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Aug 21 16:49:29 2024 -0700

    Add failing test

commit 83dd9ce20e
Merge: 6fdce3c53 a8eb76fd8
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 21 23:15:24 2024 +0100

    Merge pull request #15362 from r-xyz/model-files-api

    Added #9413: AssetModel files endpoints to API

commit a8eb76fd8d
Author: r-xyz <100710244+r-xyz@users.noreply.github.com>
Date:   Wed Aug 21 22:25:41 2024 +0200

    Fixed model files API routes.

commit cd7db5c4a8
Author: r-xyz <100710244+r-xyz@users.noreply.github.com>
Date:   Wed Aug 21 22:24:08 2024 +0200

    Fix some typos in models file handler.

commit da7313bc9d
Author: r-xyz <100710244+r-xyz@users.noreply.github.com>
Date:   Wed Aug 21 20:24:22 2024 +0200

    Fix models files API routes.

commit 4ec361c718
Author: r-xyz <100710244+r-xyz@users.noreply.github.com>
Date:   Wed Aug 21 19:49:51 2024 +0200

    Add AssetModel files endpoints to API

commit 738ef442fd
Author: Brady Wetherington <bwetherington@grokability.com>
Date:   Wed Aug 21 13:16:51 2024 +0100

    Rename .env var to have DB_ prefix for sanitize-by-default setting

commit d29b3bfb9a
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 21 13:06:16 2024 +0100

    Few more hidden-print classes

    Signed-off-by: snipe <snipe@snipe.net>

commit 6fdce3c536
Merge: 01c4fe611 1ab29ec3a
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 21 13:02:50 2024 +0100

    Merge pull request #15358 from r-xyz/rename-docker-startup

    Renamed  docker startup scripts coherently.

commit 912bbf0e32
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 21 13:02:21 2024 +0100

    More print fixes

    Signed-off-by: snipe <snipe@snipe.net>

commit c54bff0f83
Merge: d3f30ced9 01c4fe611
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 21 12:24:13 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 01c4fe6113
Merge: 7e475a078 0fa9f5797
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 21 12:12:23 2024 +0100

    Merge pull request #15359 from uberbrady/improve_windows_upgrade

    Fixed #15190 - Improvements to upgrade.php script to improve Windows experience

commit 0fa9f57971
Author: Brady Wetherington <bwetherington@grokability.com>
Date:   Wed Aug 21 11:53:38 2024 +0100

    Improvements to upgrade.php script to improve Windows experience

commit 1ab29ec3a4
Author: r-xyz <100710244+r-xyz@users.noreply.github.com>
Date:   Wed Aug 21 11:52:09 2024 +0200

    Rename  docker startup scripts coherently.

commit 7e475a0786
Merge: d0acf5b8a 26b3c62ab
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 21 10:41:17 2024 +0100

    Merge pull request #15357 from snipe/tighten_category_view_translations

    Fixed #15330 - Cleaned up category title

commit 26b3c62ab8
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 21 10:29:51 2024 +0100

    Cleaned up category title

    Signed-off-by: snipe <snipe@snipe.net>

commit d3f30ced94
Merge: 973e2e575 d0acf5b8a
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 21 10:13:57 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit d0acf5b8a6
Merge: 09033b19a 74fbc2382
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 21 10:12:58 2024 +0100

    Merge pull request #15356 from snipe/validate_location_parent

    Fixed #15341 - validate parent ID

commit 74fbc23823
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 21 10:09:35 2024 +0100

    Updated tests

    Signed-off-by: snipe <snipe@snipe.net>

commit a23dee52f2
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 21 09:58:47 2024 +0100

    Added tests

    Signed-off-by: snipe <snipe@snipe.net>

commit 4d03f1e110
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 21 09:46:18 2024 +0100

    Fixed #15341 - validate parent ID

    Signed-off-by: snipe <snipe@snipe.net>

commit 963911f2e1
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Aug 21 00:23:10 2024 -0700

    changed order of info stgack

commit 59832126cb
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Tue Aug 20 16:52:51 2024 -0700

    Improve comment

commit 680cce3ee2
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Tue Aug 20 16:42:29 2024 -0700

    Align indents

commit 6c5ec6a16c
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Tue Aug 20 16:41:24 2024 -0700

    Get datepicker working

commit 5d1f98bf93
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Tue Aug 20 15:38:43 2024 -0700

    Simplify by directly wire:modeling

commit 9d484077ae
Author: Godfrey M <godmartinz@gmail.com>
Date:   Tue Aug 20 14:24:37 2024 -0700

    missed a file

commit 9858b0f37f
Author: Godfrey M <godmartinz@gmail.com>
Date:   Tue Aug 20 14:23:55 2024 -0700

    fixes info tab for users and assets

commit 973e2e5756
Merge: 46ed07642 09033b19a
Author: snipe <snipe@snipe.net>
Date:   Tue Aug 20 19:45:53 2024 +0100

    Merge remote-tracking branch 'origin/develop'

    Signed-off-by: snipe <snipe@snipe.net>

    # Conflicts:
    #	config/version.php

commit 09033b19a7
Author: snipe <snipe@snipe.net>
Date:   Tue Aug 20 19:44:13 2024 +0100

    Bumped hash

    Signed-off-by: snipe <snipe@snipe.net>

commit 46ed076428
Merge: d3a555ce9 5fdeb9c41
Author: snipe <snipe@snipe.net>
Date:   Tue Aug 20 19:42:56 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 5fdeb9c413
Merge: 22d373407 6c450d133
Author: snipe <snipe@snipe.net>
Date:   Tue Aug 20 19:42:08 2024 +0100

    Merge pull request #15351 from snipe/localizations/new_translations_2024-08-20

    Updated languages

commit 22d3734075
Merge: d99b306ae eca6b03f4
Author: snipe <snipe@snipe.net>
Date:   Tue Aug 20 19:34:38 2024 +0100

    Merge pull request #15350 from marcusmoore/icon-component-updates

    Fixed icon not rotated and simplified component

commit eca6b03f44
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Tue Aug 20 11:08:53 2024 -0700

    Allow id to be rendered

commit bbdbec7197
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Tue Aug 20 11:00:39 2024 -0700

    Rely on $attributes behavior rendering passed attributes

commit 6c450d1338
Author: snipe <snipe@snipe.net>
Date:   Tue Aug 20 18:18:17 2024 +0100

    Updated languages

    Signed-off-by: snipe <snipe@snipe.net>

commit a8cd1027f3
Author: spencerrlongg <spencer@spencerlong.com>
Date:   Tue Aug 20 11:40:15 2024 -0500

    rm commented code

commit d3a555ce91
Author: snipe <snipe@snipe.net>
Date:   Tue Aug 20 11:49:39 2024 +0100

    Updated assets

    Signed-off-by: snipe <snipe@snipe.net>

commit 0f8e041809
Merge: e8a22f3c5 d99b306ae
Author: snipe <snipe@snipe.net>
Date:   Tue Aug 20 11:49:32 2024 +0100

    Merge remote-tracking branch 'origin/develop'

    Signed-off-by: snipe <snipe@snipe.net>

    # Conflicts:
    #	public/css/build/app.css
    #	public/css/build/overrides.css
    #	public/css/dist/all.css
    #	public/css/dist/bootstrap-table.css
    #	public/js/dist/bootstrap-table.js
    #	public/mix-manifest.json

commit d99b306ae9
Merge: f597d6433 74136761d
Author: snipe <snipe@snipe.net>
Date:   Tue Aug 20 11:46:55 2024 +0100

    Merge pull request #15345 from snipe/add_trim_strings_middleware

    Added TrimStrings middleware

commit 74136761df
Author: snipe <snipe@snipe.net>
Date:   Tue Aug 20 11:45:13 2024 +0100

    Added TrimStrings middleware

    Signed-off-by: snipe <snipe@snipe.net>

commit f597d64339
Merge: 64bed01a9 0072f1500
Author: snipe <snipe@snipe.net>
Date:   Tue Aug 20 10:17:26 2024 +0100

    Merge pull request #15342 from snipe/snyk/bs-tables

    [Snyk] Upgrade bootstrap-table from 1.23.0 to 1.23.2

commit 0072f1500e
Author: snipe <snipe@snipe.net>
Date:   Tue Aug 20 10:16:27 2024 +0100

    [Snyk] Upgrade bootstrap-table from 1.23.0 to 1.23.2

    Signed-off-by: snipe <snipe@snipe.net>

commit 64bed01a91
Merge: f8c72fb0a f6319e11e
Author: snipe <snipe@snipe.net>
Date:   Tue Aug 20 10:13:43 2024 +0100

    Merge pull request #15327 from snipe/update_button_style

    Update icons to use blade components, standardize button colors and format

commit f6319e11e7
Author: snipe <snipe@snipe.net>
Date:   Tue Aug 20 10:11:27 2024 +0100

    Added fa-fw to sidebar elements

    Signed-off-by: snipe <snipe@snipe.net>

commit 5d9f988df3
Author: snipe <snipe@snipe.net>
Date:   Tue Aug 20 10:01:49 2024 +0100

    Added fw class to topnav icons

    Signed-off-by: snipe <snipe@snipe.net>

commit f8c72fb0ac
Merge: 886514a25 fa765667f
Author: snipe <snipe@snipe.net>
Date:   Tue Aug 20 09:57:03 2024 +0100

    Merge pull request #15112 from marcusmoore/livewire-importer-improvements

    Improved handling attempted access of deleted files in importer

commit 8e1111c681
Merge: 697595d96 886514a25
Author: akemidx <kojotek.dx@gmail.com>
Date:   Mon Aug 19 19:33:44 2024 -0400

    Merge remote-tracking branch 'upstream/develop' into eol_date_range_for_reports

commit 886514a25f
Merge: cb40a82e7 434bdcd6d
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 19 22:46:08 2024 +0100

    Merge pull request #15336 from marcusmoore/fixes/remove-displayed-parentheses

    Fixed `)` being added to expected asset checkin report email header

commit fa765667f2
Merge: 94d8a547b cb40a82e7
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Aug 19 14:41:58 2024 -0700

    Merge branch 'develop' into livewire-importer-improvements

commit 434bdcd6d4
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Aug 19 14:31:47 2024 -0700

    Add missing parentheses to conditional

commit be5f3f38f8
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 19 14:48:12 2024 +0100

    Settings pages

    Signed-off-by: snipe <snipe@snipe.net>

commit 08c3a25b39
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 19 14:16:57 2024 +0100

    Little more padding

    Signed-off-by: snipe <snipe@snipe.net>

commit 34cd4b6244
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 19 14:15:36 2024 +0100

    Added links to apple/google maps

    Signed-off-by: snipe <snipe@snipe.net>

commit d89c8682be
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 19 13:46:31 2024 +0100

    Reversed location button ordering

    Signed-off-by: snipe <snipe@snipe.net>

commit 6f024849e9
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 19 13:39:24 2024 +0100

    Few more

    Signed-off-by: snipe <snipe@snipe.net>

commit e048f0955f
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 19 13:27:21 2024 +0100

    More icons

    Signed-off-by: snipe <snipe@snipe.net>

commit 479b2b4fd3
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 19 13:23:08 2024 +0100

    More icons

    Signed-off-by: snipe <snipe@snipe.net>

commit 84f14a05bd
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 19 13:20:19 2024 +0100

    Fixed logging for asset model restore

    Signed-off-by: snipe <snipe@snipe.net>

commit 8d52fa51b1
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 19 13:20:06 2024 +0100

    Fixed suppliers buttons

    Signed-off-by: snipe <snipe@snipe.net>

commit 229d8b9bf5
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 19 13:19:59 2024 +0100

    Added location restore

    Signed-off-by: snipe <snipe@snipe.net>

commit eb8d43a804
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 19 12:32:44 2024 +0100

    Updated buttons on models

    Signed-off-by: snipe <snipe@snipe.net>

commit f82266fade
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 19 11:58:31 2024 +0100

    Cleaned up presenters

    Signed-off-by: snipe <snipe@snipe.net>

commit b4b6f7a35f
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 19 11:58:21 2024 +0100

    Added css-consumable to overrides for table headers

    Signed-off-by: snipe <snipe@snipe.net>

commit 0bc995b87f
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 19 11:58:05 2024 +0100

    Updated more icons

    Signed-off-by: snipe <snipe@snipe.net>

commit 59725f2031
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 19 11:57:40 2024 +0100

    Removed extra debugging in test

    Signed-off-by: snipe <snipe@snipe.net>

commit 00bc9ac806
Author: snipe <snipe@snipe.net>
Date:   Sun Aug 18 22:39:14 2024 +0100

    Fixed spacing

    Signed-off-by: snipe <snipe@snipe.net>

commit f200960a57
Author: snipe <snipe@snipe.net>
Date:   Sun Aug 18 22:26:57 2024 +0100

    Aaaand more

    Signed-off-by: snipe <snipe@snipe.net>

commit c700127f1a
Author: snipe <snipe@snipe.net>
Date:   Sun Aug 18 22:09:00 2024 +0100

    Updated user view

    Signed-off-by: snipe <snipe@snipe.net>

commit ae2f9571b4
Author: snipe <snipe@snipe.net>
Date:   Sun Aug 18 21:57:37 2024 +0100

    And still more

    Signed-off-by: snipe <snipe@snipe.net>

commit a77dcad336
Author: snipe <snipe@snipe.net>
Date:   Sun Aug 18 20:30:53 2024 +0100

    More links

    Signed-off-by: snipe <snipe@snipe.net>

commit 7ace9324b4
Author: snipe <snipe@snipe.net>
Date:   Sun Aug 18 20:30:22 2024 +0100

    Added padlock sound

    Signed-off-by: snipe <snipe@snipe.net>

commit d2e889e927
Author: snipe <snipe@snipe.net>
Date:   Sun Aug 18 19:21:59 2024 +0100

    Still more

    Signed-off-by: snipe <snipe@snipe.net>

commit 803bdb457c
Author: snipe <snipe@snipe.net>
Date:   Sun Aug 18 18:48:19 2024 +0100

    Added calendar

    Signed-off-by: snipe <snipe@snipe.net>

commit 7c9b1f6e38
Author: snipe <snipe@snipe.net>
Date:   Sun Aug 18 18:39:22 2024 +0100

    Added the plus icon

    Signed-off-by: snipe <snipe@snipe.net>

commit d545537a43
Author: snipe <snipe@snipe.net>
Date:   Sun Aug 18 18:34:13 2024 +0100

    More icons

    Signed-off-by: snipe <snipe@snipe.net>

commit 4d8904938d
Author: snipe <snipe@snipe.net>
Date:   Sun Aug 18 18:24:26 2024 +0100

    Added calendar icon for datepickers

    Signed-off-by: snipe <snipe@snipe.net>

commit 0c09f2b2c0
Author: snipe <snipe@snipe.net>
Date:   Sun Aug 18 18:13:49 2024 +0100

    Moar icon replacement

    Signed-off-by: snipe <snipe@snipe.net>

commit bffba02511
Author: snipe <snipe@snipe.net>
Date:   Sun Aug 18 17:26:44 2024 +0100

    Updated icons

    Signed-off-by: snipe <snipe@snipe.net>

commit 901f4df7ee
Author: snipe <snipe@snipe.net>
Date:   Sun Aug 18 17:03:36 2024 +0100

    Added more icons

    Signed-off-by: snipe <snipe@snipe.net>

commit 9337cba340
Author: snipe <snipe@snipe.net>
Date:   Sun Aug 18 15:53:58 2024 +0100

    Added download

    Signed-off-by: snipe <snipe@snipe.net>

commit 2b0c67c263
Author: snipe <snipe@snipe.net>
Date:   Sun Aug 18 15:51:00 2024 +0100

    Load the icon helper

    Signed-off-by: snipe <snipe@snipe.net>

commit da71f031f5
Author: snipe <snipe@snipe.net>
Date:   Sun Aug 18 15:48:24 2024 +0100

    Use icon in hardware view

    Signed-off-by: snipe <snipe@snipe.net>

commit d2e585baa7
Author: snipe <snipe@snipe.net>
Date:   Sun Aug 18 15:47:45 2024 +0100

    Added icon blade

    Signed-off-by: snipe <snipe@snipe.net>

commit a102c085df
Author: snipe <snipe@snipe.net>
Date:   Sun Aug 18 15:47:37 2024 +0100

    Added icon helper

    Signed-off-by: snipe <snipe@snipe.net>

commit e8a22f3c5b
Merge: d843cf8dc cb40a82e7
Author: snipe <snipe@snipe.net>
Date:   Sun Aug 18 04:55:04 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit cb40a82e79
Merge: 7e6ff3cbe 4253acad4
Author: snipe <snipe@snipe.net>
Date:   Sun Aug 18 04:54:23 2024 +0100

    Merge pull request #15324 from snipe/jerk_prevention

    Prevent passing an array as login

commit 4253acad4c
Author: snipe <snipe@snipe.net>
Date:   Sun Aug 18 04:51:36 2024 +0100

    Prevent passing an array as login

    Signed-off-by: snipe <snipe@snipe.net>

commit d843cf8dcc
Merge: 1013dcae6 7e6ff3cbe
Author: snipe <snipe@snipe.net>
Date:   Sat Aug 17 00:52:10 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 1013dcae61
Merge: c30c649aa e7ef3bf51
Author: snipe <snipe@snipe.net>
Date:   Sat Aug 17 00:38:44 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 70e5e0f9df
Author: spencerrlongg <spencer@spencerlong.com>
Date:   Fri Aug 16 12:52:06 2024 -0500

    get rid of dd

commit dec4691c73
Author: spencerrlongg <spencer@spencerlong.com>
Date:   Fri Aug 16 12:50:09 2024 -0500

    should be good to go now

commit c30c649aaa
Merge: bb1385369 ad6d09b6a
Author: snipe <snipe@snipe.net>
Date:   Fri Aug 16 16:44:02 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit bb1385369c
Merge: c1caf6088 43b338d61
Author: snipe <snipe@snipe.net>
Date:   Fri Aug 16 16:18:00 2024 +0100

    Merge remote-tracking branch 'origin/develop'

    Signed-off-by: snipe <snipe@snipe.net>

    # Conflicts:
    #	public/css/build/app.css
    #	public/css/build/overrides.css
    #	public/css/dist/all.css
    #	public/mix-manifest.json

commit c1caf6088e
Author: snipe <snipe@snipe.net>
Date:   Fri Aug 16 13:12:13 2024 +0100

    Prod assets

    Signed-off-by: snipe <snipe@snipe.net>

commit 12dfe71ea8
Merge: ca8926871 ea2b1b074
Author: snipe <snipe@snipe.net>
Date:   Fri Aug 16 12:48:42 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit ca89268716
Merge: ec5731353 3167ee91d
Author: snipe <snipe@snipe.net>
Date:   Fri Aug 16 11:02:56 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 94d8a547b8
Merge: 6521c0252 b39a7c6f0
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Aug 15 13:47:49 2024 -0700

    Merge branch 'develop' into livewire-importer-improvements

commit 43b109fac0
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Aug 15 13:20:22 2024 -0700

    Use cached values for textarea and radio input

commit 75c1e7658f
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Aug 15 10:43:41 2024 -0700

    Improve method name

commit e7c9c799bb
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Aug 15 10:40:23 2024 -0700

    Add wire:keys

commit 6ab976f353
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Aug 15 10:32:33 2024 -0700

    Use cached values for text input

commit ec5731353a
Merge: 3283704fe b39a7c6f0
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 15 15:53:52 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 3283704fe8
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 15 12:25:08 2024 +0100

    Updated assets

    Signed-off-by: snipe <snipe@snipe.net>

commit 540df32046
Merge: 85486fa58 594f50664
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 15 12:24:59 2024 +0100

    Merge remote-tracking branch 'origin/develop'

    Signed-off-by: snipe <snipe@snipe.net>

    # Conflicts:
    #	public/js/build/app.js
    #	public/js/dist/all.js
    #	public/mix-manifest.json

commit 85486fa58c
Merge: 3618df2ec 10dc1f136
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 15 10:53:54 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 3618df2ec5
Merge: a201f22fd 8f7bce7aa
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 15 10:44:39 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit a201f22fdb
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 15 10:36:12 2024 +0100

    Bumped version

    Signed-off-by: snipe <snipe@snipe.net>

commit 6070d530cf
Merge: 6c0cf9447 4d66f7c93
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 15 10:35:33 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 6c0cf94473
Merge: bf4b91516 381003eea
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 15 10:28:08 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 9622e05cf5
Author: spencerrlongg <spencer@spencerlong.com>
Date:   Wed Aug 14 18:41:06 2024 -0500

    correct api test

commit afaf53cdfc
Author: spencerrlongg <spencer@spencerlong.com>
Date:   Wed Aug 14 18:14:21 2024 -0500

    failing ui test

commit f031309f8f
Author: spencerrlongg <spencer@spencerlong.com>
Date:   Wed Aug 14 16:09:15 2024 -0500

    set up api controller for route/model binding

commit 20ec420ba3
Author: spencerrlongg <spencer@spencerlong.com>
Date:   Wed Aug 14 13:53:29 2024 -0500

    not quite done, api side needs some work

commit ab63a19aff
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Aug 14 11:01:51 2024 -0700

    Initialize concept of cached values

commit a70b94e707
Merge: 120cfd13c 3e2945709
Author: spencerrlongg <spencer@spencerlong.com>
Date:   Wed Aug 14 11:36:19 2024 -0500

    Merge branch 'refs/heads/develop' into bug/sc-26584

commit 008bf036b5
Author: Brady Wetherington <bwetherington@grokability.com>
Date:   Wed Aug 14 16:09:34 2024 +0100

    Got rid of weird namespace declaration and commented-out data-toggle line

commit cc5ad456e6
Author: Brady Wetherington <bwetherington@grokability.com>
Date:   Wed Aug 14 15:59:21 2024 +0100

    Expose the 'sanitize' system for backup restores to the web GUI

commit bf4b915168
Merge: 0a9c2e354 0f1e5181a
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 14 10:45:13 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 0a9c2e354f
Merge: 47f1b3b14 e54400718
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 14 10:02:43 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 038e86954b
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Tue Aug 13 17:30:53 2024 -0700

    Improve property name

commit f6c1642bf2
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Tue Aug 13 17:01:35 2024 -0700

    Use computed fields in CustomFieldSetDefaultValuesForModel component

commit 120cfd13c5
Author: spencerrlongg <spencer@spencerlong.com>
Date:   Tue Aug 13 14:07:40 2024 -0500

    translation

commit 09f2739298
Author: spencerrlongg <spencer@spencerlong.com>
Date:   Tue Aug 13 13:45:41 2024 -0500

    works, un-reassignable licenses are an issue

commit 47f1b3b14e
Merge: 198b76ebc 3044af941
Author: snipe <snipe@snipe.net>
Date:   Tue Aug 13 16:48:06 2024 +0100

    Merge remote-tracking branch 'origin/develop'

    Signed-off-by: snipe <snipe@snipe.net>

    # Conflicts:
    #	public/css/build/app.css
    #	public/css/build/overrides.css
    #	public/css/dist/all.css
    #	public/mix-manifest.json

commit 198b76ebc2
Merge: 5546f9676 6e84c29ce
Author: snipe <snipe@snipe.net>
Date:   Tue Aug 13 15:47:00 2024 +0100

    Merge remote-tracking branch 'origin/develop'

    Signed-off-by: snipe <snipe@snipe.net>

    # Conflicts:
    #	public/css/build/app.css
    #	public/css/build/overrides.css
    #	public/css/dist/all.css
    #	public/mix-manifest.json

commit 5546f9676a
Merge: 46caa478d 9e73eaf95
Author: snipe <snipe@snipe.net>
Date:   Tue Aug 13 13:51:33 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit ec863df007
Author: spencerrlongg <spencer@spencerlong.com>
Date:   Mon Aug 12 16:58:53 2024 -0500

    rm conditional that might be unnecessary

commit cc3b8e0681
Author: spencerrlongg <spencer@spencerlong.com>
Date:   Mon Aug 12 16:58:21 2024 -0500

    this should more or less work, but i need to determine if this is the best way

commit ff145abbe7
Author: spencerrlongg <spencer@spencerlong.com>
Date:   Mon Aug 12 16:13:03 2024 -0500

    use array for eager loading, makes ide prettier

commit 46caa478d2
Merge: 4d8569e75 e6106aa7c
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 12 20:47:45 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 4d8569e754
Merge: 4dc57f95e c9f8a84d4
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 12 18:01:21 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 4dc57f95e2
Merge: 316ee6f81 9d354ca65
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 12 16:38:23 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 316ee6f810
Merge: 509cc812e 3f2139349
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 12 16:30:53 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 509cc812ea
Merge: d5f66bc0d e7fb29fce
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 12 15:58:40 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit d5f66bc0dd
Merge: 1e213c31e ce5be8ac2
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 12 10:10:59 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 1e213c31ef
Merge: 91874dfe0 1777bb4b9
Author: snipe <snipe@snipe.net>
Date:   Sun Aug 11 10:26:16 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 91874dfe0b
Merge: 0e6eda5e8 5c6c655cd
Author: snipe <snipe@snipe.net>
Date:   Sat Aug 10 19:37:37 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 0e6eda5e8a
Merge: 24560b936 60eb60215
Author: snipe <snipe@snipe.net>
Date:   Sat Aug 10 18:29:41 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 24560b9362
Author: snipe <snipe@snipe.net>
Date:   Sat Aug 10 18:24:49 2024 +0100

    Updated prod assets

    Signed-off-by: snipe <snipe@snipe.net>

commit 6521c02526
Merge: 8d1cc22c5 9350a2018
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Aug 7 15:20:39 2024 -0700

    Merge branch 'develop' into livewire-importer-improvements

    # Conflicts:
    #	resources/views/livewire/importer.blade.php

commit bb465dbfaa
Author: Brady Wetherington <bwetherington@grokability.com>
Date:   Wed Jul 24 15:09:23 2024 +0100

    Cut down run number to 100 from 1000

commit 8cbcc237c0
Author: Brady Wetherington <bwetherington@grokability.com>
Date:   Wed Jul 24 13:27:31 2024 +0100

    Cleanup of Stale workflow for GH - set to debug-mode to start

commit 97e3af8fc9
Author: Brady Wetherington <bwetherington@grokability.com>
Date:   Sat Jun 29 00:59:47 2024 +0100

    WIP on new GitHub-backed stalebot settings

commit 914e29210a
Author: Brady Wetherington <bwetherington@grokability.com>
Date:   Wed Jun 26 18:53:01 2024 +0100

    Initial rough stab at re-implementing stalebot

commit 8d1cc22c58
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Jul 18 12:00:01 2024 -0700

    Turn on legacy binding since other components still use it

commit 7685de45f2
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Jul 17 17:12:14 2024 -0700

    Turn off legacy binding

commit 199e68ff29
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Jul 17 17:10:12 2024 -0700

    Simplify computed propery

commit 81bffccf01
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Jul 17 16:28:26 2024 -0700

    Use better error message

commit cfca1514c0
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Jul 17 16:22:44 2024 -0700

    Swap file_id for activeFileId

commit b4ed01243b
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Jul 17 13:40:41 2024 -0700

    Add more details

commit 3772a21a51
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Jul 17 13:37:24 2024 -0700

    Move comment up

commit 04b6cb763f
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Jul 17 10:58:48 2024 -0700

    Add todo

commit dd32341502
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Tue Jul 16 17:21:18 2024 -0700

    Display message if attempting to delete non-existent file

commit f58e3114a2
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Tue Jul 16 17:17:45 2024 -0700

    Simplify destroy method and update list

commit eba494ad8c
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Tue Jul 16 17:03:42 2024 -0700

    Make $activeFile a computed property

commit 7e89b58746
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Tue Jul 16 16:08:42 2024 -0700

    Move files to computed property

commit b7744105a0
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Tue Jul 16 14:20:41 2024 -0700

    Migrate import type to component

commit 69263f0e5b
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Tue Jul 16 13:30:29 2024 -0700

    Migrate header row to component

commit 017530ba4b
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Tue Jul 16 12:02:50 2024 -0700

    Make updating hook more specific

commit c8dad528a8
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Jul 15 16:15:58 2024 -0700

    Migrate a couple items out of mount

commit 256e989ba1
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Jul 15 15:49:18 2024 -0700

    Add test for importer

commit 9793016603
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Jul 11 13:32:16 2024 -0700

    Remove unneeded AuthorizesRequests

commit 9e06f2d17f
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Jul 11 13:22:10 2024 -0700

    Remove commented code

commit d4d19569ee
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Jul 11 10:52:47 2024 -0700

    adds execution timer

commit 43c7504f89
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Jul 11 10:03:51 2024 -0700

    adds an all option, adds help context for all, seperates logic

commit 1fa6a763bc
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Jul 10 11:09:57 2024 -0700

    updated description

commit 726308bfd5
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Jul 10 10:58:45 2024 -0700

    removed typo

commit 22ddb695f2
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Jul 10 10:57:47 2024 -0700

    better description

commit 09b2feac54
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Jul 10 10:56:44 2024 -0700

    updates assets with selected model to inherit asset model eol

commit 57e1df86c8
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Jul 10 10:21:24 2024 -0700

    finds model and collects assets with such model

commit 3ea5d4ee40
Author: Robert-Azelis <82208283+Robert-Azelis@users.noreply.github.com>
Date:   Thu May 2 12:55:17 2024 +0200

    Update BulkAssetsController.php

    Fix for bulk updarte of purchase date to calculate new EOL

commit 5fa0c87ab0
Author: Godfrey M <godmartinz@gmail.com>
Date:   Tue Apr 30 12:02:11 2024 -0700

    null debugbar

commit 75aa01791a
Author: Godfrey M <godmartinz@gmail.com>
Date:   Tue Apr 30 11:54:33 2024 -0700

    adds location select to the create new user vice asset checkout

commit c62a022252
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Mar 21 14:34:47 2024 -0700

    replaced for loop with eloquent query update

commit 866f0a9f56
Author: Godfrey M <godmartinz@gmail.com>
Date:   Tue Mar 19 11:58:49 2024 -0700

    syncs assets location to users location

commit 05a8d3030b
Author: Godfrey M <godmartinz@gmail.com>
Date:   Sat Mar 16 19:54:48 2024 -0700

    correct column name

commit 595dad0f18
Author: Godfrey M <godmartinz@gmail.com>
Date:   Sat Mar 16 19:51:40 2024 -0700

    updates all assets assigned to user with new location

commit 697595d963
Merge: 0bdd8a591 9502525a4
Author: akemidx <116301219+akemidx@users.noreply.github.com>
Date:   Tue Nov 21 16:07:26 2023 -0500

    Merge branch 'develop' into eol_date_range_for_reports

commit 0bdd8a5917
Author: akemidx <kojotek.dx@gmail.com>
Date:   Wed Aug 2 16:40:38 2023 -0400

    fixing key names

commit e35dd2daa1
Author: akemidx <kojotek.dx@gmail.com>
Date:   Wed Jul 26 17:45:18 2023 -0400

    asset_eol_date stuff

commit f71b69a739
Author: akemidx <kojotek.dx@gmail.com>
Date:   Wed Jul 26 17:31:06 2023 -0400

    adding eol fields

commit 499a3debcd
Author: akemidx <kojotek.dx@gmail.com>
Date:   Tue Jul 11 14:08:55 2023 -0400

    this WILL break. i'm back to site not found which is something missing. otherwise the columns are either blank or another value like expected checkin i was using to test a bit

Signed-off-by: snipe <snipe@snipe.net>
2024-11-13 15:45:01 +00:00
snipe 503d044fb8 Don’t show new user welcome if location or asset model import
Signed-off-by: snipe <snipe@snipe.net>
2024-11-13 15:36:02 +00:00
snipe 752221ee84 Removed error log
Signed-off-by: snipe <snipe@snipe.net>
2024-11-13 15:35:34 +00:00
snipe f87ebb4710 Fixed tests
Signed-off-by: snipe <snipe@snipe.net>
2024-11-13 15:16:18 +00:00
snipe abab062756 Added fieldset and depreciation import
Signed-off-by: snipe <snipe@snipe.net>
2024-11-13 15:16:08 +00:00
snipe 6f25ed3c59 More nuance to human boolean check
Signed-off-by: snipe <snipe@snipe.net>
2024-11-13 15:15:34 +00:00
snipe 6c2cfe0405 Removed log line
Signed-off-by: snipe <snipe@snipe.net>
2024-11-13 14:48:24 +00:00
snipe d1ba16d0eb Added requestable to fillable
Signed-off-by: snipe <snipe@snipe.net>
2024-11-13 14:48:05 +00:00
snipe b3f84f7293 Added aliases, removed depreciation from import
Signed-off-by: snipe <snipe@snipe.net>
2024-11-13 14:47:55 +00:00
snipe e38c2139f8 Merge remote-tracking branch 'origin/develop' 2024-11-13 01:43:17 +00:00
snipe 615edbbd43 Updated seeder
Signed-off-by: snipe <snipe@snipe.net>
2024-11-13 01:42:39 +00:00
snipe c012bf0ece Merge pull request #15799 from Godmartinz/update_deprecated_trigger_for_ms_teams
Updated deprecated trigger for ms teams
2024-11-13 00:55:53 +00:00
Godfrey M 947351af67 removed unused variabl 2024-11-12 16:49:02 -08:00
Godfrey M 4e0d70e0b8 checkin notif was missing 2024-11-12 15:44:14 -08:00
Godfrey M 832ccc6aa3 updated deprecated trigger for ms teams 2024-11-12 15:35:09 -08:00
snipe 48713cbddf Added additional helper files to assetmodel importer
Signed-off-by: snipe <snipe@snipe.net>
2024-11-12 22:40:00 +00:00
snipe 787340b987 Merge pull request #14441 from Godmartinz/ldap_location-resync
Fixes Assets location not being resynced when Users location is updated via LDAP
2024-11-12 22:35:11 +00:00
Marcus Moore 53de97db4e Merge branch 'develop' into saving_custom_report_template 2024-11-12 10:36:07 -08:00
Marcus Moore 5574c5fa49 Improve comments 2024-11-12 10:35:22 -08:00
Marcus Moore 7373e2019c Improve comment 2024-11-12 10:01:32 -08:00
snipe 22c79d8e1b Squashed commit of the following:
commit 6bec573956
Merge: b6ad69fac 1fc5bb54e
Author: snipe <snipe@snipe.net>
Date:   Mon Nov 11 13:54:09 2024 +0000

    Merge pull request #15794 from snipe/check_for_file_on_asset_acceptance

    Check that the file exists before trying to download stored EULA

commit 1fc5bb54e1
Author: snipe <snipe@snipe.net>
Date:   Mon Nov 11 13:50:53 2024 +0000

    Check that the file exists before trying to download

    Signed-off-by: snipe <snipe@snipe.net>

commit b6ad69fac2
Merge: 357ef7e37 47b2cdb84
Author: snipe <snipe@snipe.net>
Date:   Sun Nov 10 18:05:20 2024 +0000

    Merge pull request #15793 from snipe/allow_eol_explicit

    Allow user to specify null for calculation or explicit on bulk edit

commit 47b2cdb846
Author: snipe <snipe@snipe.net>
Date:   Sun Nov 10 18:04:13 2024 +0000

    Allow user to specify null for calculation or explicit on bulk edit

    Signed-off-by: snipe <snipe@snipe.net>

commit 357ef7e375
Merge: 000f3171e 6928b1b27
Author: snipe <snipe@snipe.net>
Date:   Sun Nov 10 17:48:25 2024 +0000

    Merge pull request #15792 from snipe/edit_eol_from_bulk

    Added EOL date to bulk asset edit

commit 6928b1b273
Author: snipe <snipe@snipe.net>
Date:   Sun Nov 10 17:47:10 2024 +0000

    Added eol date to bulk asset edit

    Signed-off-by: snipe <snipe@snipe.net>

commit 000f3171e3
Author: snipe <snipe@snipe.net>
Date:   Fri Nov 8 10:28:01 2024 +0000

    Upgrade jspdf-autotable from 3.8.3 to 3.8.4 #15786

    Signed-off-by: snipe <snipe@snipe.net>

commit 5ef3183a52
Merge: a41529dbc 050831868
Author: snipe <snipe@snipe.net>
Date:   Thu Nov 7 11:44:06 2024 +0000

    Merge pull request #15783 from uberbrady/improve_user_and_location_manager_indexes

    Improved indexes on manager_id for locations and users, including del…

commit 050831868e
Author: Brady Wetherington <bwetherington@grokability.com>
Date:   Thu Nov 7 11:39:27 2024 +0000

    Improved indexes on manager_id for locations and users, including deleted_at

commit a41529dbc4
Merge: aa168fcb5 4fcf5ac7d
Author: snipe <snipe@snipe.net>
Date:   Wed Nov 6 21:22:45 2024 +0000

    Merge pull request #15780 from uberbrady/add_manager_indexes

    Add new indexes to locations and users for faster manager lookups

commit 4fcf5ac7da
Author: Brady Wetherington <bwetherington@grokability.com>
Date:   Wed Nov 6 21:19:41 2024 +0000

    Add new indexes to locations and users for faster manager lookups

commit aa168fcb5b
Author: snipe <snipe@snipe.net>
Date:   Wed Nov 6 18:41:52 2024 +0000

    Updated BS table to 1.23.5

    Signed-off-by: snipe <snipe@snipe.net>

commit 9c1c93ad52
Merge: b96a31253 ad99b8b45
Author: snipe <snipe@snipe.net>
Date:   Wed Nov 6 18:40:35 2024 +0000

    Merge pull request #15774 from marcusmoore/feature/sc-27350

    Added Checkout ID column to user accessory table

commit ad99b8b456
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Nov 6 10:37:31 2024 -0800

    Use generic ID translation

commit b96a312539
Merge: 654f67b6a bab1e58ea
Author: snipe <snipe@snipe.net>
Date:   Wed Nov 6 18:29:22 2024 +0000

    Merge pull request #15779 from ubc-cpsc/bugfix/CVE-2024-50345

    Fixes CVE-2024-50342, CVE-2024-50345, CVE-2024-51736

commit bab1e58ea4
Author: Joël Pittet <pittet@cs.ubc.ca>
Date:   Wed Nov 6 09:46:11 2024 -0800

    symfony/http-client CVE-2024-50342, symfony/http-foundation CVE-2024-50345, symfony/process CVE-2024-51736

commit 654f67b6ac
Author: snipe <snipe@snipe.net>
Date:   Wed Nov 6 14:05:42 2024 +0000

    Updated webpack

    Signed-off-by: snipe <snipe@snipe.net>

commit 3965bcd7c1
Merge: 287f4addf 2362cb5e5
Author: snipe <snipe@snipe.net>
Date:   Wed Nov 6 14:02:44 2024 +0000

    Merge pull request #15773 from Godmartinz/Fix_failing_failing_tests

    Fixed notifications for licenses and asset to asset checkoutables

commit 2362cb5e52
Author: Godfrey M <godmartinz@gmail.com>
Date:   Mon Nov 4 16:32:46 2024 -0800

    refactor to getNotifiables

commit e7cb4a75eb
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Nov 4 15:56:53 2024 -0800

    Show accessory checkout id in user accessory table

commit 93494ac554
Author: Godfrey M <godmartinz@gmail.com>
Date:   Mon Nov 4 15:17:58 2024 -0800

    put dataprovider back in for tests

commit 0d707a1851
Author: Godfrey M <godmartinz@gmail.com>
Date:   Mon Nov 4 15:13:10 2024 -0800

    fixes notifications for licenses and asset to asset checkouables

commit 287f4addf0
Merge: f32ebdc7a 2e96d478f
Author: snipe <snipe@snipe.net>
Date:   Mon Nov 4 20:06:24 2024 +0000

    Merge pull request #15771 from snipe/revert-15744-chore/action-tests-debugging

    Revert "Added the display of logs when tests fail in GitHub Actions"

commit 2e96d478f1
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Nov 4 11:04:17 2024 -0800

    Revert "Added the display of logs when tests fail in GitHub Actions"

commit f32ebdc7ac
Merge: 5897d37fc d6c7dc8e1
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 31 22:39:58 2024 +0000

    Merge pull request #15765 from marcusmoore/chore/add-missing-livewire-file

    Added missing Livewire file

commit d6c7dc8e1c
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Oct 31 15:37:01 2024 -0700

    Add missing livewire file

commit 5897d37fcf
Merge: 49de07045 21a27dcac
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 31 20:54:01 2024 +0000

    Merge pull request #15763 from Godmartinz/no_to_email_check

    Fixed emails not being send if target has no email or if not instance of User. Cc_emails will still be sent.

commit 21a27dcac1
Merge: 379138076 49de07045
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 31 12:55:46 2024 -0700

    fixed conflicts

commit 3791380764
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 31 12:52:47 2024 -0700

    remove unused uses

commit 7a0f79ecd2
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 31 12:51:22 2024 -0700

    remove test route

commit 97a449e80e
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 31 12:50:13 2024 -0700

    removes instanceof User check

commit e65942064e
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 31 12:45:29 2024 -0700

    send emails even if target has no email

commit 49de07045a
Merge: 7e996c40f 73772a013
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 31 17:53:17 2024 +0000

    Merge pull request #15731 from Godmartinz/refacto_ms_teams_notifs

    Fixed MS Team Notifications to utilize workflows after deprecation

commit 7e996c40f5
Merge: 73e8f160c 69e74bbdd
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 31 02:51:42 2024 +0000

    Merge pull request #15758 from snipe/jerm/fix-deprecation-warning

    Fix ${var} deprecation warning in License model

commit 69e74bbdd3
Author: Jeremy Price <jeremy@grokability.com>
Date:   Wed Oct 30 19:43:54 2024 -0700

    Fix ${var} deprecation warning in License model

    When upgrading to php8.3 i started getting deprecation warning about
    using ${var} instead of {$var} in 2 places in License.php

    PHP Deprecated:  Using ${var} in strings is deprecated, use {$var} instead in /var/www/snipe-it/app/Models/License.php on line 187
    PHP Deprecated:  Using ${var} in strings is deprecated, use {$var} instead in /var/www/snipe-it/app/Models/License.php on line 219

    This simple fix switches the offending statements to {$var} syntax.

commit 73e8f160cf
Merge: f68df1fa0 bd23772fe
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 30 19:29:09 2024 +0000

    Merge pull request #15756 from Godmartinz/cc-email-array

    changes `admin_cc_email` validation to allow an array

commit bd23772fe9
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 30 11:42:15 2024 -0700

    changes cc_email validation to allow array

commit 73772a0138
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 30 11:12:31 2024 -0700

    change button text

commit b26cae372c
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 30 10:40:23 2024 -0700

    merged in develop

commit d6ba303f39
Merge: 9a0eee8f0 f68df1fa0
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 30 10:27:45 2024 -0700

    Merge branch 'develop' into refacto_ms_teams_notifs

    # Conflicts:
    #	app/Listeners/CheckoutableListener.php

commit f68df1fa06
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 30 13:21:13 2024 +0000

    Made type searchable in action logs

    Signed-off-by: snipe <snipe@snipe.net>

commit f0813e03bf
Merge: 05875ebd1 58ff641f8
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 30 12:18:41 2024 +0000

    Merge pull request #15681 from Godmartinz/seperating_notification_n_mail

    Separated Notifications and Emails: Check ins and Check outs

commit 05875ebd1f
Author: snipe <snipe@snipe.net>
Date:   Mon Oct 28 22:04:35 2024 +0000

    Updated translations

    Signed-off-by: snipe <snipe@snipe.net>

commit 9a0eee8f03
Author: Godfrey M <godmartinz@gmail.com>
Date:   Mon Oct 28 15:03:43 2024 -0700

    revert testing variables

commit 6128765d1f
Author: Godfrey M <godmartinz@gmail.com>
Date:   Mon Oct 28 15:03:03 2024 -0700

    change wording on notification button

commit c24f79c025
Author: Godfrey M <godmartinz@gmail.com>
Date:   Mon Oct 28 14:58:43 2024 -0700

    update method comment

commit e7c4343c90
Author: Godfrey M <godmartinz@gmail.com>
Date:   Mon Oct 28 14:56:48 2024 -0700

    readd checkin accessory format

commit c0620c27ff
Author: Godfrey M <godmartinz@gmail.com>
Date:   Mon Oct 28 14:30:34 2024 -0700

    adds back laravels channel formats

commit ed81973fe6
Author: Godfrey M <godmartinz@gmail.com>
Date:   Mon Oct 28 13:57:42 2024 -0700

    adds notifications for deprecation

commit 2d318b394c
Merge: 86d784bd5 5c4971612
Author: snipe <snipe@snipe.net>
Date:   Mon Oct 28 18:41:49 2024 +0000

    Merge pull request #15744 from marcusmoore/chore/action-tests-debugging

    Added the display of logs when tests fail in GitHub Actions

commit b987b3dc00
Author: Godfrey M <godmartinz@gmail.com>
Date:   Mon Oct 28 10:57:48 2024 -0700

    adds back the laravel channels package and applies a deprecated check

commit 5c49716129
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Oct 28 10:24:35 2024 -0700

    Dump logs on test failure

commit 86d784bd59
Author: snipe <snipe@snipe.net>
Date:   Mon Oct 28 13:37:59 2024 +0000

    Fixed #15740 - use non-translated strings for icons

    Signed-off-by: snipe <snipe@snipe.net>

commit 589f9cccdf
Author: snipe <snipe@snipe.net>
Date:   Mon Oct 28 12:04:10 2024 +0000

    Fixed  #15732

    Signed-off-by: snipe <snipe@snipe.net>

commit 4d848e45e6
Author: snipe <snipe@snipe.net>
Date:   Mon Oct 28 11:55:24 2024 +0000

    Fixed #15736

    Signed-off-by: snipe <snipe@snipe.net>

commit 58ff641f82
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 24 22:53:53 2024 -0700

    removed unused variables

commit ce68f550d8
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 24 16:01:17 2024 -0700

    remove alert emails from cc

commit 6f0c1b12b1
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 24 15:04:54 2024 -0700

    this adds check out message for consumables

commit 278bc5e52a
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 24 14:59:10 2024 -0700

    ads check in and checkout message for license seats

commit cce75a8185
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 24 14:48:23 2024 -0700

    adds check in and checkout messag for accessories

commit e27ff13377
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 24 14:39:40 2024 -0700

    adds check in and checkout message for assets

commit 56365495a1
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 24 14:26:42 2024 -0700

    remove unnecessary fields in accessory checkout mail

commit 18da80e6de
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 24 14:24:00 2024 -0700

    fix checkoutable listener for microsoft teams

commit 18760e3fa1
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 24 12:21:51 2024 -0700

    replaces teams notification package, passes integration test

commit 57107c487c
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 24 09:40:10 2024 -0700

    fixed last test, definetly the last test

commit dfc63641dc
Merge: 07a51ec8b b6340532d
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 24 11:40:50 2024 +0100

    Merge pull request #15550 from uberbrady/fix_multi_create_partial_failure

    Fix multi create partial failure (fixes: [RB-18591])

commit 07a51ec8b1
Merge: e0ec6795b 727c0e458
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 24 10:03:10 2024 +0100

    Merge pull request #15712 from Godmartinz/fix_import-progress-bar

    Upgraded `livewire v3.5.9 => v3.5.12`

commit 6329f5b87e
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 23 17:33:23 2024 -0700

    removed unused variable from test

commit e0ec6795b5
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 24 01:27:50 2024 +0100

    Use crucial for seeded data

    Signed-off-by: snipe <snipe@snipe.net>

commit 15073a0d38
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 23 17:27:37 2024 -0700

    last test to fix

commit a80c09c16d
Merge: ab3b9c451 5509d756b
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 23 17:23:55 2024 -0700

    Merge branch 'develop' into seperating_notification_n_mail

commit 5509d756b7
Merge: 55ba6279a b16a978f1
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 24 01:12:11 2024 +0100

    Merge pull request #15722 from Godmartinz/fix_component_factory

    Fixed Component Factory: use manufacturer factory for `manufactuer_id`

commit b16a978f1b
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 23 16:25:51 2024 -0700

    uses manufacturer factory for manufactuer_id

commit ab3b9c4510
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 23 16:24:01 2024 -0700

    remove unnecessary code from checkinasset notification

commit 2cc2b2b1df
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 23 16:06:27 2024 -0700

    apply array_filter to cc emails to prevent errors

commit 62d06b44d6
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 23 15:43:42 2024 -0700

    set fallback from email address to service.snipe-it.io

commit f29a383179
Merge: fd74c3510 55ba6279a
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 23 15:15:14 2024 -0700

    Merge branch 'develop' into seperating_notification_n_mail

    # Conflicts:
    #	app/Notifications/CheckoutConsumableNotification.php

commit fd74c35102
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 23 15:08:29 2024 -0700

    remove old notify by mail from consumable notification

commit c681946b1d
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 23 15:05:39 2024 -0700

    added component markdown changes

commit 257d25bd9e
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 23 14:56:54 2024 -0700

    removed import notification from test, feature is not present in project

commit 6c34a5c52c
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 23 14:54:21 2024 -0700

    conditionally check cc emails, initiate variables

commit 1b5f4415ae
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 23 14:44:45 2024 -0700

    corrected cc email behavior

commit 55ba6279a4
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 23 19:14:17 2024 +0100

    Use trans_choice on alert menu

    Signed-off-by: snipe <snipe@snipe.net>

commit a9eea830e3
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 23 19:05:34 2024 +0100

    Added manufacturer and model number to component seeders

    Signed-off-by: snipe <snipe@snipe.net>

commit af564935d5
Merge: d58f87862 3ee76be7e
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 23 17:56:04 2024 +0100

    Merge pull request #15720 from snipe/15695_adds_manufacturer_and_model_number_to_components

    Fixed #15695 - Added manufacturer and model_number to components

commit 3ee76be7e3
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 23 17:50:22 2024 +0100

    Added manufacturer and model_number to components

    Signed-off-by: snipe <snipe@snipe.net>

commit d58f87862c
Merge: 5da3ce356 0b6859c49
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 23 15:09:50 2024 +0100

    Merge pull request #15719 from snipe/#15717_adds_qty_to_consumable

    Fixed #15717 - Added ability to checkout consumables in variable qty via API

commit 0b6859c491
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 23 15:05:35 2024 +0100

    Added ability to checkout consumables in variable qty

    Signed-off-by: snipe <snipe@snipe.net>

commit 1e9922a0b0
Author: Godfrey M <godmartinz@gmail.com>
Date:   Tue Oct 22 16:14:36 2024 -0700

    fix moar tests

commit ead27accac
Author: Godfrey M <godmartinz@gmail.com>
Date:   Tue Oct 22 15:45:52 2024 -0700

    fixed accessory tests and notifiable target

commit 727c0e458c
Author: Godfrey M <godmartinz@gmail.com>
Date:   Tue Oct 22 14:34:39 2024 -0700

    remove translation

commit 870dc747db
Author: Godfrey M <godmartinz@gmail.com>
Date:   Tue Oct 22 14:27:32 2024 -0700

    oops

commit 0fb3d83fac
Author: Godfrey M <godmartinz@gmail.com>
Date:   Tue Oct 22 14:26:54 2024 -0700

    revert controller change

commit 0d59ccd6a6
Author: Godfrey M <godmartinz@gmail.com>
Date:   Tue Oct 22 14:23:26 2024 -0700

    upgraded livewire v3.5.9 => v3.5.12

commit 5da3ce3564
Merge: c3bbca30a 5ecd2b629
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 22 22:10:20 2024 +0100

    Merge pull request #15711 from marcusmoore/fixes/custom-fieldset-checkboxes

    Fixed custom field checkboxes on asset edit page

commit c3bbca30ad
Merge: dccb788a8 37f14fff3
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 22 22:07:50 2024 +0100

    Merge pull request #15710 from snipe/fixes_lightbox_for_avif

    Fixes #15701 - load avif files properly in lightbox

commit 37f14fff3b
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 22 22:07:28 2024 +0100

    Fixed typo

    Signed-off-by: snipe <snipe@snipe.net>

commit eb6c51fabd
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 22 22:04:57 2024 +0100

    Fixes #15701 - load avif files properly in lightbox

    Signed-off-by: snipe <snipe@snipe.net>

commit 5ecd2b6293
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Tue Oct 22 14:04:05 2024 -0700

    Default checkbox elements to an empty array

commit 1e31592c55
Author: Godfrey M <godmartinz@gmail.com>
Date:   Tue Oct 22 11:49:06 2024 -0700

    messing with the tests

commit dccb788a88
Merge: 5e1d792bb d10fe77ee
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 22 17:44:30 2024 +0100

    Merge pull request #15691 from marcusmoore/fixes/get-id-for-current-user

    Updated `Company::getIdForCurrentUser()` to return null in certain scenarios

commit d10fe77ee7
Merge: e1882ee6d 5e1d792bb
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Tue Oct 22 09:38:31 2024 -0700

    Merge branch 'develop' into fixes/get-id-for-current-user

commit 5e1d792bba
Merge: 9cf71976f 780ed91a1
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 22 16:52:28 2024 +0100

    Merge pull request #15687 from NebelKreis/fix/dashboard-title-casing

    Fixed #15686: Corrected capitalization for dashboard section titles by removing strtolower()

commit 9cf71976f6
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 22 16:51:42 2024 +0100

    Fixed #15706 - Removed purchase order number from asset import

    Signed-off-by: snipe <snipe@snipe.net>

commit 15745d9737
Merge: bd97955b9 3f74ff25d
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 22 16:39:44 2024 +0100

    Merge pull request #15566 from Godmartinz/status-label-error-message

    Fixed Status Labels Error Message

commit bd97955b9e
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 22 16:38:46 2024 +0100

    Bumped hash

    Signed-off-by: snipe <snipe@snipe.net>

commit 252d99421c
Merge: 5767a98ad db8170162
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 22 16:26:48 2024 +0100

    Merge pull request #15689 from snipe/better_handle_inline_files

    Better handle inline files in file listing

commit 5767a98ad8
Merge: 0c820cbc0 524a44272
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 22 16:26:23 2024 +0100

    Merge pull request #15649 from bryanlopezinc/ImproveImporting

    Improve import performance

commit 0c820cbc0d
Merge: 147fcfb8e 3153bbb13
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 22 15:56:12 2024 +0100

    Merge pull request #15598 from spencerrlongg/bug/custom_field_validation_issue

    Custom Field Existence Validation Issue

commit db81701621
Merge: a05c33feb 147fcfb8e
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 22 15:44:24 2024 +0100

    Merge branch 'develop' into better_handle_inline_files

commit a05c33febf
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 22 15:43:19 2024 +0100

    Squashed commit of the following:

    commit 147fcfb8eb
    Merge: 58a3d09b5 fdcc17ca2
    Author: snipe <snipe@snipe.net>
    Date:   Tue Oct 22 15:12:55 2024 +0100

        Merge pull request #15676 from Toreg87/fixes/api_create_user_fmcs

        Fix user creation with FullMultipleCompanySupport enabled over API

    commit 58a3d09b5f
    Merge: 30a06a594 867fa2f36
    Author: snipe <snipe@snipe.net>
    Date:   Tue Oct 22 14:55:42 2024 +0100

        Merge pull request #15703 from marcusmoore/bug/sc-27188

        Linked accessory files in activity report

    commit 30a06a5942
    Merge: 6c6af78e0 ce3086317
    Author: snipe <snipe@snipe.net>
    Date:   Tue Oct 22 11:47:06 2024 +0100

        Merge pull request #15693 from marcusmoore/chore/remove-parallel-testing

        Removed brianium/paratest

    commit 6c6af78e08
    Merge: 9b06bbb6c 3f79fd7ea
    Author: snipe <snipe@snipe.net>
    Date:   Tue Oct 22 11:46:04 2024 +0100

        Merge pull request #15705 from marcusmoore/tests/icon-component-test

        Added test to ensure icon component does not end in newline

    commit 3f79fd7ea7
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Mon Oct 21 17:07:40 2024 -0700

        Add test to ensure icon component does not end in newline

    commit 9b06bbb6c3
    Merge: 46ad1d072 d7f70146f
    Author: snipe <snipe@snipe.net>
    Date:   Mon Oct 21 22:38:26 2024 +0100

        Merge pull request #15704 from marcusmoore/bug/remove-extra-icon

        Removed second icon in accessory file list

    commit ce30863177
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Mon Oct 21 13:57:04 2024 -0700

        Remove brianium/paratest dependency

    commit d7f70146f4
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Mon Oct 21 13:48:25 2024 -0700

        Remove extra icon in accessory file upload list

    commit 867fa2f36e
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Mon Oct 21 12:40:24 2024 -0700

        Display file in activity report for accessories

    commit 0933a2d4ea
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Thu Oct 17 18:01:48 2024 -0700

        Remove --parallel flag

    commit 46ad1d072f
    Merge: bcb4bd9eb 3cf746d7d
    Author: snipe <snipe@snipe.net>
    Date:   Thu Oct 17 15:29:47 2024 +0100

        Merge pull request #15680 from uberbrady/bulk_checkout_to_bulk_actions

        Bulk checkout to bulk actions

    commit bcb4bd9eb4
    Merge: 250037540 f50ccbcc4
    Author: snipe <snipe@snipe.net>
    Date:   Thu Oct 17 10:20:13 2024 +0100

        Merge pull request #15683 from Toreg87/fixes/outdated_comment

        Fix outdated comment in CompanyableTrait

    commit f50ccbcc49
    Author: Tobias Regnery <tobias.regnery@gmail.com>
    Date:   Thu Oct 17 11:07:28 2024 +0200

        Fix outdated comment in CompanyableTrait

        As of commit 5800e8d the user model uses CompanyableTrait so remove this clearly outdated comment

    commit 3cf746d7df
    Author: Brady Wetherington <bwetherington@grokability.com>
    Date:   Wed Oct 16 23:13:32 2024 +0100

        Rework the bulk checkout to not change how all checkouts work

    commit 6b7af802af
    Author: Brady Wetherington <bwetherington@grokability.com>
    Date:   Thu Oct 10 13:28:23 2024 +0100

        Add 'bulk checkout' as one of the bulk actions in the bulk actions toolbar

    commit fdcc17ca2c
    Author: Tobias Regnery <tobias.regnery@gmail.com>
    Date:   Wed Oct 16 11:18:24 2024 +0200

        Fix user creation with FullMultipleCompanySupport enabled over API

        It is currently possible as a non-superuser to create a new user or patch an existing user with arbitrary company over the API if FullMultipleCompanySupport is enabled.
        Altough a highly unlikely scenario as the user needs permission to create API keys and new users, it is a bug that should get fixed.

        Add a call to getIdForCurrentUser() to normalize the company_id if FullMultipleCompanySupport is enabled.

    Signed-off-by: snipe <snipe@snipe.net>

commit 147fcfb8eb
Merge: 58a3d09b5 fdcc17ca2
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 22 15:12:55 2024 +0100

    Merge pull request #15676 from Toreg87/fixes/api_create_user_fmcs

    Fix user creation with FullMultipleCompanySupport enabled over API

commit 58a3d09b5f
Merge: 30a06a594 867fa2f36
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 22 14:55:42 2024 +0100

    Merge pull request #15703 from marcusmoore/bug/sc-27188

    Linked accessory files in activity report

commit 30a06a5942
Merge: 6c6af78e0 ce3086317
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 22 11:47:06 2024 +0100

    Merge pull request #15693 from marcusmoore/chore/remove-parallel-testing

    Removed brianium/paratest

commit 6c6af78e08
Merge: 9b06bbb6c 3f79fd7ea
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 22 11:46:04 2024 +0100

    Merge pull request #15705 from marcusmoore/tests/icon-component-test

    Added test to ensure icon component does not end in newline

commit 3f79fd7ea7
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Oct 21 17:07:40 2024 -0700

    Add test to ensure icon component does not end in newline

commit 9b06bbb6c3
Merge: 46ad1d072 d7f70146f
Author: snipe <snipe@snipe.net>
Date:   Mon Oct 21 22:38:26 2024 +0100

    Merge pull request #15704 from marcusmoore/bug/remove-extra-icon

    Removed second icon in accessory file list

commit ce30863177
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Oct 21 13:57:04 2024 -0700

    Remove brianium/paratest dependency

commit d7f70146f4
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Oct 21 13:48:25 2024 -0700

    Remove extra icon in accessory file upload list

commit 867fa2f36e
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Oct 21 12:40:24 2024 -0700

    Display file in activity report for accessories

commit e1882ee6d2
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Oct 21 12:21:45 2024 -0700

    Add comment

commit 7eee239378
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Oct 21 12:20:28 2024 -0700

    use is_numeric instead of is_int

commit 4188849ae1
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Oct 21 12:19:48 2024 -0700

    Add failing test case

commit 787e651778
Author: snipe <snipe@snipe.net>
Date:   Mon Oct 21 16:52:21 2024 +0100

    Fixed todos with log message

    Signed-off-by: snipe <snipe@snipe.net>

commit ef9b6e3b07
Author: snipe <snipe@snipe.net>
Date:   Mon Oct 21 16:34:54 2024 +0100

    Code cleanup

    Signed-off-by: snipe <snipe@snipe.net>

commit 06c599cc17
Author: snipe <snipe@snipe.net>
Date:   Mon Oct 21 16:34:03 2024 +0100

    Added method to show or download file

    Signed-off-by: snipe <snipe@snipe.net>

commit 6105323877
Author: snipe <snipe@snipe.net>
Date:   Mon Oct 21 14:11:20 2024 +0100

    Use plural class name for src

    Signed-off-by: snipe <snipe@snipe.net>

commit 0933a2d4ea
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Oct 17 18:01:48 2024 -0700

    Remove --parallel flag

commit a8d853c44a
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Oct 17 15:26:27 2024 -0700

    Remove focus group tags

commit 7e1b47708e
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Oct 17 15:18:41 2024 -0700

    Fix failing test ensuring company id is an integer

commit 979e4502ff
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Oct 17 15:14:39 2024 -0700

    Have getIdForCurrentUser method return null if FMCS enabled, user is not super admin, and does not have company

commit ff113ef523
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 17 14:56:58 2024 -0700

    typo fix

commit 99dd51a965
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Oct 17 14:53:18 2024 -0700

    Improve name

commit 15c2169477
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Oct 17 14:31:05 2024 -0700

    Scaffold additional tests

commit 50fa6ce335
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Oct 17 14:12:22 2024 -0700

    Scaffold tests

commit 7ae76e7db9
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 17 13:55:03 2024 -0700

    remove viewdata array from 3 tests

commit b98058ca98
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 17 13:48:26 2024 -0700

    fix tests pt 3

commit 83e8186d9e
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 17 13:39:56 2024 -0700

    fix assertSent to AssertNotSent on some test

commit cdd4fef7df
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 17 13:34:55 2024 -0700

    attempt to fix tests p2

commit dceb8e305f
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 17 13:11:39 2024 -0700

    attempt to fix tests

commit 123cdeb858
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 17 12:39:48 2024 -0700

    add email check to listener

commit 496b44e887
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 17 12:28:57 2024 -0700

    merged composer lock from dev

commit a690cc3582
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 17 12:26:55 2024 -0700

    removing my composer stuff again..for the last time

commit ceb3f5cea6
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 17 12:19:50 2024 -0700

    added mail-gun and http-client to 8.1

commit 65735a31f1
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 17 12:18:34 2024 -0700

    removed symfony/mailgun-mailer symfony/http-client

commit 285d6897cf
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Oct 17 12:05:36 2024 -0700

    added a coulple test adjustments and moved mail send logic to listener

commit 159a1d3f43
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Oct 17 11:48:55 2024 -0700

    Be more explicit

commit d1149730be
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 17 16:31:17 2024 +0100

    Apply blade component to files views

    Signed-off-by: snipe <snipe@snipe.net>

commit 46ad1d072f
Merge: bcb4bd9eb 3cf746d7d
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 17 15:29:47 2024 +0100

    Merge pull request #15680 from uberbrady/bulk_checkout_to_bulk_actions

    Bulk checkout to bulk actions

commit 780ed91a10
Author: NebelKreis <leipold.johannes@web.de>
Date:   Thu Oct 17 16:09:25 2024 +0200

    Fix: Removed strtolower() from dashboard titles

    This fix ensures the correct capitalization in different languages.

commit bcb4bd9eb4
Merge: 250037540 f50ccbcc4
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 17 10:20:13 2024 +0100

    Merge pull request #15683 from Toreg87/fixes/outdated_comment

    Fix outdated comment in CompanyableTrait

commit f50ccbcc49
Author: Tobias Regnery <tobias.regnery@gmail.com>
Date:   Thu Oct 17 11:07:28 2024 +0200

    Fix outdated comment in CompanyableTrait

    As of commit 5800e8d the user model uses CompanyableTrait so remove this clearly outdated comment

commit 9a79483375
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 16 16:59:18 2024 -0700

    removed namespaces from routing

commit ed6034065b
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 16 16:47:36 2024 -0700

    removed test route

commit a7754c1a7f
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 16 16:46:52 2024 -0700

    fixed asset checkout markdown, and notifiable variable

commit 0e9b3c9119
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 17 00:27:39 2024 +0100

    Check for existence before trying to get the icon

    Signed-off-by: snipe <snipe@snipe.net>

commit 4933aa5784
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 17 00:27:04 2024 +0100

    Add StorageHelper to app config

    Signed-off-by: snipe <snipe@snipe.net>

commit d67addc69e
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 17 00:21:43 2024 +0100

    Removed filetype column - it’s dumb

    Signed-off-by: snipe <snipe@snipe.net>

commit 02c80ff18a
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 17 00:18:40 2024 +0100

    Added comment

    Signed-off-by: snipe <snipe@snipe.net>

commit c01190fac2
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 17 00:18:34 2024 +0100

    Conditionally add content-type

    Signed-off-by: snipe <snipe@snipe.net>

commit 017884f843
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 17 00:09:09 2024 +0100

    Added checks and filetype display

    Signed-off-by: snipe <snipe@snipe.net>

commit c49921f50f
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 17 00:08:54 2024 +0100

    Removed unused (maybe?) API endpoint

    Signed-off-by: snipe <snipe@snipe.net>

commit c49abb6aea
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 17 00:08:38 2024 +0100

    Refactor the UserFilesController show method for simpler inlining

    Signed-off-by: snipe <snipe@snipe.net>

commit ccd2019448
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 17 00:08:04 2024 +0100

    Removed unusded use statements

    Signed-off-by: snipe <snipe@snipe.net>

commit 96191a5e93
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 17 00:07:54 2024 +0100

    Added method to decide if the file should be inlinable

    Signed-off-by: snipe <snipe@snipe.net>

commit c56affd663
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 17 00:07:37 2024 +0100

    Added SVG icon

    Signed-off-by: snipe <snipe@snipe.net>

commit 02bda3cd95
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 16 15:53:05 2024 -0700

    adds Checkout Consumable mailable and slackwebhook channel to notifs

commit 02ff646da4
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 16 15:44:45 2024 -0700

    adds checkin license mailable

commit 4becdca8aa
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 16 15:39:20 2024 -0700

    removes toMail from license notificaqtion

commit 2584d60344
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 16 15:38:49 2024 -0700

    adds Licenses seat checkout Mailable

commit f1d83a3f28
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 16 15:30:53 2024 -0700

    forgot to add asset checkout markdown to projet

commit c39df34bdf
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 16 15:29:50 2024 -0700

    forgot to add accessory mail to project

commit dcdf600b78
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 16 15:27:34 2024 -0700

    adds Checkin and Checkout mailables and listner logic

commit 3cf746d7df
Author: Brady Wetherington <bwetherington@grokability.com>
Date:   Wed Oct 16 23:13:32 2024 +0100

    Rework the bulk checkout to not change how all checkouts work

commit 6b7af802af
Author: Brady Wetherington <bwetherington@grokability.com>
Date:   Thu Oct 10 13:28:23 2024 +0100

    Add 'bulk checkout' as one of the bulk actions in the bulk actions toolbar

commit 9710436d54
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 16 13:12:07 2024 -0700

    adds Mailables for asset checkin and out

commit 16cffe9a9d
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 16 12:53:35 2024 -0700

    simplified checkout webhook call

commit 9e1b86f586
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 16 12:51:19 2024 -0700

    sends checkout notification via webhook

commit 3ab2521cb0
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Oct 16 12:21:33 2024 -0700

    email comes through, no picture and html markup appear though.

commit 604a964462
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Oct 16 11:52:24 2024 -0700

    Improve scenario descriptions

commit 2f72c66614
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Oct 16 11:30:06 2024 -0700

    Add additional case

commit fdcc17ca2c
Author: Tobias Regnery <tobias.regnery@gmail.com>
Date:   Wed Oct 16 11:18:24 2024 +0200

    Fix user creation with FullMultipleCompanySupport enabled over API

    It is currently possible as a non-superuser to create a new user or patch an existing user with arbitrary company over the API if FullMultipleCompanySupport is enabled.
    Altough a highly unlikely scenario as the user needs permission to create API keys and new users, it is a bug that should get fixed.

    Add a call to getIdForCurrentUser() to normalize the company_id if FullMultipleCompanySupport is enabled.

commit cba1a56040
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Tue Oct 15 17:38:11 2024 -0700

    Improve readability?

commit d9afde4610
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Tue Oct 15 17:00:22 2024 -0700

    Write failing test

commit 9f06a0e441
Author: Godfrey M <godmartinz@gmail.com>
Date:   Tue Oct 15 14:01:28 2024 -0700

    handle some edge cases, null values clean up variable names

commit 42095c0167
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Tue Oct 15 13:02:22 2024 -0700

    Add reference link

commit f8476f7133
Author: Godfrey M <godmartinz@gmail.com>
Date:   Tue Oct 15 12:49:52 2024 -0700

    finished the construct and mail call in the listner

commit b29d032bf0
Author: Godfrey M <godmartinz@gmail.com>
Date:   Tue Oct 15 11:28:27 2024 -0700

    adds checkoutAssetMail class, and content method

commit 2500375400
Merge: 16c8264e7 e4e1d0d50
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 15 17:34:35 2024 +0100

    Merge pull request #15672 from uberbrady/ldap_location_fixes

    Clean up how we use the '$location' in LDAP sync command

commit e4e1d0d50a
Author: Brady Wetherington <bwetherington@grokability.com>
Date:   Tue Oct 15 17:26:31 2024 +0100

    Clean up how we use the '$location' in LDAP sync command

commit 16c8264e76
Merge: 914a64720 0ae9ce0aa
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 15 16:42:34 2024 +0100

    Merge pull request #15671 from snipe/bug/sc-27147

    Bug/sc 27147

commit 0ae9ce0aa9
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 15 16:41:45 2024 +0100

    Cannot sort by updated at on Users [sc-27147]

    Signed-off-by: snipe <snipe@snipe.net>

commit 50b8f180b3
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 15 16:41:39 2024 +0100

    More logical grouping in allow_columns

    Signed-off-by: snipe <snipe@snipe.net>

commit 914a647204
Merge: 69b6080bd e9225ff3e
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 15 12:47:15 2024 +0100

    Merge pull request #15669 from snipe/remlove_ou_requirenedess

    Fixed #15663 - remove requiredness for OU

commit e9225ff3ea
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 15 12:43:10 2024 +0100

    Switch to regular HTML for input form field

    Signed-off-by: snipe <snipe@snipe.net>

commit d0d4159088
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 15 12:42:09 2024 +0100

    Fixed typo

    Signed-off-by: snipe <snipe@snipe.net>

commit 69b6080bd8
Merge: ddead359d b997d728f
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 15 10:31:29 2024 +0100

    Merge pull request #15666 from snipe/updated_readme_llm

    Added LLM note

commit b997d728fb
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 15 10:30:34 2024 +0100

    Added LLM note

    Signed-off-by: snipe <snipe@snipe.net>

commit ddead359d0
Merge: 0d35335da f3c4e5566
Author: snipe <snipe@snipe.net>
Date:   Mon Oct 14 14:29:34 2024 +0100

    Merge pull request #15660 from Toreg87/fixes/api_asset_create_fmcs2

    Refactor asset creation with API

commit f3c4e55667
Author: Tobias Regnery <tobias.regnery@gmail.com>
Date:   Mon Oct 14 15:14:41 2024 +0200

    Refactor asset creation with API

    Commit fb4fe3004 restored the previous behaviour to check the company_id in case of FullMultipleCompanySupport.
    But after rereading the code and the laravel documentation, the check is already there where it belongs in AssetStoreRequest::prepareForValidation()
    The bug is the is_int-check of the request input in prepareForValidation(). Is is of type string even if it is a numeric value, so the call to getIdForCurrentUser() never happend.
    Fix this by removing the check and the now redundant call to getIdForCurrentUser().
    Wrong values will get caught by the model-level validation rules.

commit 0d35335da7
Author: snipe <snipe@snipe.net>
Date:   Fri Oct 11 16:06:17 2024 +0100

    Removed debugging

    Signed-off-by: snipe <snipe@snipe.net>

commit feaa714304
Author: snipe <snipe@snipe.net>
Date:   Fri Oct 11 14:23:57 2024 +0100

    Nicer disabled button

    Signed-off-by: snipe <snipe@snipe.net>

commit e1a70023b1
Merge: de62359c6 fb4fe3004
Author: snipe <snipe@snipe.net>
Date:   Fri Oct 11 11:45:48 2024 +0100

    Merge pull request #15655 from Toreg87/fixes/api_asset_create_fmcs

    Fixes #15654 Fix asset creation with API and FullMultipleCompanySupport

commit de62359c67
Merge: 12bda8fc7 3dc64cc5e
Author: snipe <snipe@snipe.net>
Date:   Fri Oct 11 11:29:34 2024 +0100

    Merge pull request #15533 from marcusmoore/testing/fmcs-accessories

    Added tests for accessory api controller

commit 12bda8fc7b
Merge: 8aa298f6b b054017c9
Author: snipe <snipe@snipe.net>
Date:   Fri Oct 11 11:27:18 2024 +0100

    Merge pull request #15653 from snipe/15651_admin_user_on_maintenances

    Fixed #15651 - admin user now displaying on maintenances page

commit fb4fe30049
Author: Tobias Regnery <tobias.regnery@gmail.com>
Date:   Fri Oct 11 12:09:09 2024 +0200

    Fix asset creation with API and FullMultipleCompanySupport

    It is currently possible to create an asset with arbitrary company without being superuser and FullMultipleCompanySupport enabled.
    This bug goes back to 75ac7f80b9 which is part of version 6.3.0.
    Fix this by restoring the previous behaviour to check the company_id with getIdForCurrentUser().

commit b054017c9f
Author: snipe <snipe@snipe.net>
Date:   Fri Oct 11 11:16:24 2024 +0100

    Fixed #15651 - admin user now displaying on maintenances page

    Signed-off-by: snipe <snipe@snipe.net>

commit 524a442724
Author: bryanlopezinc <bryanlopez2kul2@yahoo.com>
Date:   Thu Oct 10 23:32:07 2024 +0100

    Improved import performance

commit 8aa298f6b0
Merge: 1f3465773 b5b93fdd3
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 10 12:30:53 2024 +0100

    Merge pull request #15644 from snipe/form_requests_for_settings

    Form requests for settings

commit 1f34657734
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 10 12:30:35 2024 +0100

    Fixed test

    Signed-off-by: snipe <snipe@snipe.net>

commit 0856ee648e
Merge: 94a074a19 1dafc970d
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 10 12:23:14 2024 +0100

    Merge pull request #15648 from snipe/update_packages

    Updated livewire to 3.5.2

commit 1dafc970df
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 10 12:19:57 2024 +0100

    Updated livewire to 3.5.2

    Signed-off-by: snipe <snipe@snipe.net>

commit 94a074a193
Merge: 2d49e1eff b34a7c8aa
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 10 01:11:10 2024 +0100

    Merge pull request #15601 from snipe/check_db_on_healthcheck

    Fixed #15439 - check database on healthcheck

commit 2d49e1eff2
Merge: 705bc6f0c c2663ea1e
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 10 01:09:11 2024 +0100

    Merge pull request #15637 from akemidx/bug/sc-26614

    FIXED: Badge counter showing deleted assets on User page

commit 705bc6f0c0
Merge: 3ee571374 67a605c9a
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 10 01:08:25 2024 +0100

    Merge pull request #15642 from uberbrady/fix_bulk_checkout

    Fix bulk checkout to users, assets, and locations

commit b5b93fdd3a
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 10 00:27:00 2024 +0100

    Make ldap username required

    Signed-off-by: snipe <snipe@snipe.net>

commit d9432baf7a
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 9 23:51:20 2024 +0100

    Mlore ldap style improvements

    Signed-off-by: snipe <snipe@snipe.net>

commit 90be2a4498
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 9 22:26:30 2024 +0100

    Use newer naming convention for errors

    Signed-off-by: snipe <snipe@snipe.net>

commit 3886da8941
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 9 22:15:49 2024 +0100

    Remove form request from get LDAP method

    Signed-off-by: snipe <snipe@snipe.net>

commit 130e0c6242
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 9 22:15:37 2024 +0100

    More validation

    Signed-off-by: snipe <snipe@snipe.net>

commit 4361a10818
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 9 22:15:30 2024 +0100

    Added string

    Signed-off-by: snipe <snipe@snipe.net>

commit aa8048ac15
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 9 22:15:25 2024 +0100

    Blade changes for ldap

    Signed-off-by: snipe <snipe@snipe.net>

commit 710e738e8e
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 9 22:15:16 2024 +0100

    Fixed tests

    Signed-off-by: snipe <snipe@snipe.net>

commit 3705b91439
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 9 20:51:34 2024 +0100

    Added more validation

    Signed-off-by: snipe <snipe@snipe.net>

commit 707bdad192
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 9 20:33:56 2024 +0100

    Updated test

    Signed-off-by: snipe <snipe@snipe.net>

commit 242fe33f97
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 9 20:33:42 2024 +0100

    Switch to regular HTML input

    Signed-off-by: snipe <snipe@snipe.net>

commit ded79469c1
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 9 20:33:29 2024 +0100

    Remove unused controller method

    Signed-off-by: snipe <snipe@snipe.net>

commit d9fbf330e5
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 9 20:33:15 2024 +0100

    Fixed translations

    Signed-off-by: snipe <snipe@snipe.net>

commit 2cb9ac26cd
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 9 19:57:04 2024 +0100

    Renamed test

    Signed-off-by: snipe <snipe@snipe.net>

commit 185bc966e6
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 9 19:46:47 2024 +0100

    Cleaned up use statements in tests

    Signed-off-by: snipe <snipe@snipe.net>

commit a7f7e4938f
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 9 19:31:56 2024 +0100

    Added form action

    Signed-off-by: snipe <snipe@snipe.net>

commit 2883e79193
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 9 19:30:55 2024 +0100

    Removed unecessary assets creation

    Signed-off-by: snipe <snipe@snipe.net>

commit 9c4191ae0a
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 9 19:30:42 2024 +0100

    Basic tests

    Signed-off-by: snipe <snipe@snipe.net>

commit 3a77b83e9c
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 9 19:30:34 2024 +0100

    Added space

    Signed-off-by: snipe <snipe@snipe.net>

commit d9be2b5a5e
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 9 19:30:25 2024 +0100

    Trying to use the email_array translation

    Signed-off-by: snipe <snipe@snipe.net>

commit 69c43c610c
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 9 19:30:00 2024 +0100

    Fixed typo

    Signed-off-by: snipe <snipe@snipe.net>

commit 4f957bcf71
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 9 18:34:53 2024 +0100

    Required flag

    Signed-off-by: snipe <snipe@snipe.net>

commit 5cda7cce48
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 9 18:21:40 2024 +0100

    Only accept a positive number for thresholds

    Signed-off-by: snipe <snipe@snipe.net>

commit 41b94e7128
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 9 18:19:26 2024 +0100

    Fixed form input group

    Signed-off-by: snipe <snipe@snipe.net>

commit aa55fa6ff4
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 9 18:16:34 2024 +0100

    Switch to form requests for settings

    Signed-off-by: snipe <snipe@snipe.net>

commit 67a605c9a5
Author: Brady Wetherington <bwetherington@grokability.com>
Date:   Wed Oct 9 17:01:26 2024 +0100

    Fix bulk checkout to users, assets, and locations

commit c2663ea1e0
Author: akemidx <kojotek.dx@gmail.com>
Date:   Tue Oct 8 16:38:33 2024 -0400

    withouttrashed

commit 3ee5713740
Merge: ab8a22f77 56e7ea667
Author: snipe <snipe@snipe.net>
Date:   Mon Oct 7 23:13:15 2024 +0100

    Merge pull request #15631 from snipe/test/importer-tests

    Add importer tests

commit ab8a22f77e
Merge: 26d7572bc 8c9132aff
Author: snipe <snipe@snipe.net>
Date:   Mon Oct 7 22:56:23 2024 +0100

    Merge pull request #15630 from marcusmoore/bug/sc-27028

    Only show EULA when available on print users page

commit 56e7ea6677
Merge: 32551d55d 803532667
Author: snipe <snipe@snipe.net>
Date:   Mon Oct 7 22:29:35 2024 +0100

    Merge pull request #15616 from marcusmoore/test/importer-test-updates

    Improve importer tests

commit 26d7572bcc
Merge: 382ebef8c ee046a868
Author: snipe <snipe@snipe.net>
Date:   Mon Oct 7 22:28:53 2024 +0100

    Merge pull request #15603 from marcusmoore/fixes/add-reguard

    Added `Model::reguard()` to importer

commit 8c9132aff9
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Oct 7 14:22:49 2024 -0700

    Hide EULA text and button when nothing will be displayed

commit 382ebef8ca
Merge: 2be88cb95 f76da4844
Author: snipe <snipe@snipe.net>
Date:   Mon Oct 7 21:26:21 2024 +0100

    Merge pull request #15621 from sniff122/develop

    Docker Env: Change trusted proxies to RFC1918

commit 2be88cb955
Merge: 7fc498a59 3f36d5f9b
Author: snipe <snipe@snipe.net>
Date:   Mon Oct 7 11:14:24 2024 +0100

    Merge pull request #15624 from snipe/fixed_line_break_on_print_all_for_users

    Removed duplicate JS and removed line break before user section

commit 3f36d5f9b3
Author: snipe <snipe@snipe.net>
Date:   Mon Oct 7 11:08:02 2024 +0100

    Removed duplicate CSS and removed line break before user section

    Signed-off-by: snipe <snipe@snipe.net>

commit f76da48448
Author: Lewis Foster <lewis@sniff122.tech>
Date:   Sat Oct 5 18:27:42 2024 +0100

    Docker Env: Change trusted proxies to RFC1918

commit 8035326675
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Oct 3 16:53:19 2024 -0700

    Add test

commit dfdd85abb1
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Oct 3 15:14:07 2024 -0700

    Remove unused imports

commit 063ea1892b
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Oct 3 15:02:03 2024 -0700

    Add trait to clean up files after test runs

commit e213053775
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Oct 3 13:59:58 2024 -0700

    Swap factory syntax

commit 88d549e7c5
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Oct 3 13:40:37 2024 -0700

    Remove unused data provider method

commit 983a25aa5f
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Oct 3 13:39:54 2024 -0700

    Simplify permission tests

commit bde05d6ed9
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Oct 3 13:15:49 2024 -0700

    Use new() instead of times()

commit b5ffe54bd0
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Oct 3 13:15:02 2024 -0700

    Swap assertEquals parameter order

commit 863c0a8b60
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Oct 3 11:43:02 2024 -0700

    Fix import_type for accessory state

commit 32551d55d7
Merge: 7fc498a59 e807cfab8
Author: Marcus Moore <mmoore@grokability.com>
Date:   Thu Oct 3 11:39:21 2024 -0700

    Merge pull request #15579 from bryanlopezinc/ImportTests

    Add Import data tests

commit 7fc498a597
Merge: 78ca1026f cb281c640
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 3 17:39:18 2024 +0100

    Merge pull request #15613 from snipe/css_fixes_for_long_values

    Smarter word-wrapping on long text

commit cb281c6408
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 3 17:33:46 2024 +0100

    Tweaked line height

    Signed-off-by: snipe <snipe@snipe.net>

commit f483cd448f
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 3 17:27:37 2024 +0100

    Smarter work-wrapping on long text

    Signed-off-by: snipe <snipe@snipe.net>

commit 78ca1026fd
Merge: 3699d7936 722d5a58e
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 3 16:24:32 2024 +0100

    Merge pull request #15612 from snipe/fixes_print_assigned_in_profile

    Fixes print assigned in profile

commit 722d5a58e7
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 3 16:19:38 2024 +0100

    Added isset on users

    Signed-off-by: snipe <snipe@snipe.net>

commit 7461c3e0ca
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 3 16:19:27 2024 +0100

    Change controller to assume a collection. (This is dumb, but whatever)

    Signed-off-by: snipe <snipe@snipe.net>

commit 3c0f4181ae
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 3 16:19:06 2024 +0100

    Use the newer button style

    Signed-off-by: snipe <snipe@snipe.net>

commit 3699d79363
Merge: 54fbd0540 350b627ce
Author: snipe <snipe@snipe.net>
Date:   Thu Oct 3 14:34:00 2024 +0100

    Merge pull request #15610 from uberbrady/fix_numeric_sort_bug

    Fix numeric sort 'ambiguous order clause' error

commit 350b627ce1
Author: Brady Wetherington <bwetherington@grokability.com>
Date:   Thu Oct 3 14:23:40 2024 +0100

    Fix numeric sort 'ambiguous order clause' error

commit ee046a8688
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Oct 2 10:50:40 2024 -0700

    Add matching Model::reguard()

commit b34a7c8aad
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 2 15:48:35 2024 +0100

    Removed die()

    Signed-off-by: snipe <snipe@snipe.net>

commit f92bf5dc20
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 2 15:39:27 2024 +0100

    Updated language for failure

    Signed-off-by: snipe <snipe@snipe.net>

commit 4d9e85026a
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 2 15:36:01 2024 +0100

    Fixed #15439 - check database on healthcheck

    Signed-off-by: snipe <snipe@snipe.net>

commit 54fbd0540d
Merge: b483bb163 4db735808
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 2 12:40:49 2024 +0100

    Merge branch 'develop' of https://github.com/snipe/snipe-it into develop

commit b483bb1633
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 2 12:40:45 2024 +0100

    Bumped version

    Signed-off-by: snipe <snipe@snipe.net>

commit 4db7358086
Merge: 0dd6f41f6 b9cfdf2e5
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 2 12:38:46 2024 +0100

    Merge pull request #15593 from Godmartinz/Fixed-divide-by-zero-bug

    Fixed divide by zero bug in depreciation transformer

commit 0dd6f41f66
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 2 11:04:55 2024 +0100

    Simplified 2fa if/else

    Signed-off-by: snipe <snipe@snipe.net>

commit 684c20ae39
Author: snipe <snipe@snipe.net>
Date:   Wed Oct 2 11:00:49 2024 +0100

    Fixed parenthasis

    Signed-off-by: snipe <snipe@snipe.net>

commit 3153bbb13f
Author: spencerrlongg <spencer@spencerlong.com>
Date:   Tue Oct 1 17:04:18 2024 -0500

    dumb fix

commit 3dc64cc5e0
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Tue Oct 1 13:35:39 2024 -0700

    Reference accessory checkout and not the accessory

commit c32f4e34b4
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 1 20:35:49 2024 +0100

    Minor formatting fix

    Signed-off-by: snipe <snipe@snipe.net>

commit ca1886cebc
Merge: 45ab49eea a79dfea40
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 1 20:31:38 2024 +0100

    Merge pull request #15594 from snipe/localizations/update-2024-10-01

    Updated strings

commit a79dfea40a
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 1 20:30:58 2024 +0100

    Updated strings

    Signed-off-by: snipe <snipe@snipe.net>

commit 45ab49eeab
Merge: 97d00e5aa 8232618a9
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 1 20:26:42 2024 +0100

    Merge pull request #15592 from spencerrlongg/bug/catch_request_notify_errors

    Catch Errors Around Request Notifications

commit 8232618a9f
Author: spencerrlongg <spencer@spencerlong.com>
Date:   Tue Oct 1 14:26:32 2024 -0500

    change the other one too

commit 9a651b567d
Author: spencerrlongg <spencer@spencerlong.com>
Date:   Tue Oct 1 14:24:03 2024 -0500

    change error to warning

commit 97d00e5aa8
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 1 20:08:54 2024 +0100

    Fixed erroneous form tag on anchor

    Signed-off-by: snipe <snipe@snipe.net>

commit 5b90d79494
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Tue Oct 1 11:50:48 2024 -0700

    Use created_by

commit b9cfdf2e54
Author: Godfrey M <godmartinz@gmail.com>
Date:   Tue Oct 1 11:41:59 2024 -0700

    reworked monthly depreciation variable value

commit 1139acd9f3
Author: spencerrlongg <spencer@spencerlong.com>
Date:   Tue Oct 1 13:36:47 2024 -0500

    catch errors around request notifications

commit b7ad80bd31
Author: Godfrey M <godmartinz@gmail.com>
Date:   Tue Oct 1 11:24:24 2024 -0700

    fix monthly depreciation value

commit 5ffd1b8daa
Author: Godfrey M <godmartinz@gmail.com>
Date:   Tue Oct 1 11:02:39 2024 -0700

    fixes if statement in transformer

commit 9a2117466e
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 1 18:23:40 2024 +0100

    Removed placeholder

    Signed-off-by: snipe <snipe@snipe.net>

commit 7e3a062984
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 1 18:23:07 2024 +0100

    Use <th> for table header in bulk interstitial

    Signed-off-by: snipe <snipe@snipe.net>

commit d274fb6963
Merge: cfc04a1d1 27ba641aa
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 1 14:32:48 2024 +0100

    Merge pull request #15589 from snipe/adds_checkin_action_on_asset_delete

    Adds checkin action on asset delete via View UI

commit 27ba641aa5
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 1 14:30:34 2024 +0100

    Added checkin on delete to API

    Signed-off-by: snipe <snipe@snipe.net>

commit 5823197e6f
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 1 14:29:02 2024 +0100

    Added checkin action on delete for checked out assets

    Signed-off-by: snipe <snipe@snipe.net>

commit cfc04a1d12
Merge: 12da43303 cae8aa784
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 1 14:08:58 2024 +0100

    Merge pull request #15588 from snipe/added_more_maxlengths

    Added maxlengths to additional fields

commit cae8aa7840
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 1 14:02:54 2024 +0100

    Added maxlengths to additional fields

    Signed-off-by: snipe <snipe@snipe.net>

commit 12da43303f
Author: snipe <snipe@snipe.net>
Date:   Tue Oct 1 01:44:05 2024 +0100

    Fixed #15584 - regression with required css change

    Signed-off-by: snipe <snipe@snipe.net>

commit fdfea390fb
Merge: d609ed50a 5689e940b
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 30 12:59:27 2024 -0700

    Merge branch 'develop' into testing/fmcs-accessories

commit b04afbbc85
Merge: b964ce102 3f311ba2f
Author: snipe <snipe@snipe.net>
Date:   Mon Sep 30 19:26:08 2024 +0100

    Merge pull request #15564 from uberbrady/improve_autoclose

    Get us better debugging output for new Github Stale Action

commit b964ce1025
Merge: 6217cba20 68e3f375f
Author: snipe <snipe@snipe.net>
Date:   Mon Sep 30 19:25:05 2024 +0100

    Merge pull request #15583 from Godmartinz/remove-sortable-from-depreciations

    Removed sortablity for current value column in depreciations report

commit 6217cba201
Merge: 5689e940b b32ab6a06
Author: snipe <snipe@snipe.net>
Date:   Mon Sep 30 19:24:19 2024 +0100

    Merge pull request #15524 from Godmartinz/double-notif-bug

    Fixed double webhook notifications // Separated email and webhook notifications.

commit 68e3f375fc
Author: Godfrey M <godmartinz@gmail.com>
Date:   Mon Sep 30 11:15:49 2024 -0700

    removes sortablity from current value column

commit 5689e940b8
Author: snipe <snipe@snipe.net>
Date:   Mon Sep 30 18:23:12 2024 +0100

    Fixed #15581 - missing bracker

    Signed-off-by: snipe <snipe@snipe.net>

commit e807cfab86
Merge: 0b3f45856 001348c63
Author: bryanlopezinc <bryanlopez2kul2@yahoo.com>
Date:   Mon Sep 30 12:47:52 2024 +0100

    Merge branch 'develop' into importTests

commit 0b3f458561
Author: bryanlopezinc <bryanlopez2kul2@yahoo.com>
Date:   Mon Sep 30 12:42:41 2024 +0100

    Added tests for Import feature

commit 001348c638
Author: snipe <snipe@snipe.net>
Date:   Sun Sep 29 14:33:42 2024 +0100

    Unset required on checkout select :(

    Related to the discussion at #15552

    Signed-off-by: snipe <snipe@snipe.net>

commit 1b041af862
Merge: 260b15368 d120585f9
Author: snipe <snipe@snipe.net>
Date:   Sun Sep 29 11:25:01 2024 +0100

    Merge remote-tracking branch 'origin/master' into develop

    Signed-off-by: snipe <snipe@snipe.net>

    # Conflicts:
    #	public/css/build/app.css
    #	public/css/build/overrides.css
    #	public/css/dist/all.css
    #	public/mix-manifest.json

commit 260b153689
Merge: 36b27fcda 05d74f7a9
Author: snipe <snipe@snipe.net>
Date:   Sat Sep 28 16:09:51 2024 +0100

    Merge pull request #15573 from snipe/fixed_requiredness_indicator

    Fixes for requiredness indicator in UI

commit 05d74f7a92
Author: snipe <snipe@snipe.net>
Date:   Sat Sep 28 15:42:03 2024 +0100

    Covered setup pages too

    Signed-off-by: snipe <snipe@snipe.net>

commit dc85588d7f
Author: snipe <snipe@snipe.net>
Date:   Sat Sep 28 15:31:44 2024 +0100

    Don’t show password as required if editing

    Signed-off-by: snipe <snipe@snipe.net>

commit 585f998cae
Author: snipe <snipe@snipe.net>
Date:   Sat Sep 28 15:28:06 2024 +0100

    Fixes for requiredness display

    Signed-off-by: snipe <snipe@snipe.net>

commit d120585f94
Author: snipe <snipe@snipe.net>
Date:   Fri Sep 27 14:07:30 2024 +0100

    Check for valid eula for license, consumable

    Signed-off-by: snipe <snipe@snipe.net>

commit 166a700342
Merge: 6c85ba349 36b27fcda
Author: snipe <snipe@snipe.net>
Date:   Fri Sep 27 13:37:28 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 36b27fcda3
Author: snipe <snipe@snipe.net>
Date:   Fri Sep 27 13:37:14 2024 +0100

    Check for valid category before getting the eula

    Signed-off-by: snipe <snipe@snipe.net>

commit a44490e448
Author: snipe <snipe@snipe.net>
Date:   Fri Sep 27 13:07:24 2024 +0100

    Nowrap on files column

    Signed-off-by: snipe <snipe@snipe.net>

commit 9aada2ec70
Merge: ac6411743 ef82f954e
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 26 09:09:35 2024 +0100

    Merge pull request #15498 from Godmartinz/Modal_fix

    Refactoring modals with partials and fixing misalignments

commit 3f74ff25d2
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Sep 25 16:19:09 2024 -0700

    fixed error message

commit ef82f954e5
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Sep 25 15:47:57 2024 -0700

    fixed required css, and user input lengths

commit 3f311ba2fb
Author: Brady Wetherington <bwetherington@grokability.com>
Date:   Wed Sep 25 21:27:45 2024 +0100

    Get us better debugging output for new Github Stale Action

commit 96953aa2ed
Merge: e609b3976 b797c37ac
Author: Godfrey Martinez <47435081+Godmartinz@users.noreply.github.com>
Date:   Wed Sep 25 12:50:01 2024 -0700

    Merge pull request #23 from Godmartinz/Modal_fix_p3

    replace duplicate code with partials

commit b797c37acb
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Sep 25 12:48:05 2024 -0700

    replace duplicate code with partials

commit 6c85ba3495
Merge: 9f8473e25 ac6411743
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 25 20:45:02 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit ac6411743b
Merge: 9b03f4649 3f0245f88
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 25 20:35:58 2024 +0100

    Merge pull request #15563 from snipe/refined_gates_on_user_bulk

    Update for #15534 - Refined gates on user bulk

commit 3f0245f88f
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 25 20:33:00 2024 +0100

    Make controller gate match dropdown gate

    Signed-off-by: snipe <snipe@snipe.net>

commit c02647a0fa
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 25 20:32:03 2024 +0100

    Moved merge into delete gate, since they do technically delete

    Signed-off-by: snipe <snipe@snipe.net>

commit edca3f432c
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 25 20:30:58 2024 +0100

    Removed gate for delete

    Signed-off-by: snipe <snipe@snipe.net>

commit 2218c94aa3
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 25 20:29:23 2024 +0100

    Gates the dropdown based on user permissions

    Signed-off-by: snipe <snipe@snipe.net>

commit e609b39760
Merge: 0bc98e971 12522a379
Author: Godfrey Martinez <47435081+Godmartinz@users.noreply.github.com>
Date:   Wed Sep 25 12:09:26 2024 -0700

    Merge pull request #22 from Godmartinz/Modal_fix_p2

    Modal fix p2

commit 12522a3791
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Sep 25 12:07:15 2024 -0700

    fix spacing issues

commit f6d7ea19e4
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 25 19:44:39 2024 +0100

    Set view as base permission, drill down for more intrusive actions

    Signed-off-by: snipe <snipe@snipe.net>

commit 18ddffe8f9
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Sep 25 11:42:16 2024 -0700

    fix partial variable intialization, fix width of input fields

commit 9b03f46490
Merge: cb6e5042d fac4833b5
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 25 19:32:01 2024 +0100

    Merge pull request #15534 from marcusmoore/bulk-print-users

    Added the ability to bulk print users

commit 926a319552
Merge: 0bc98e971 cb6e5042d
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Sep 25 11:10:24 2024 -0700

    Merge branch 'develop' into Modal_fix_p2

commit 9f8473e254
Merge: 0e61d0b19 cb6e5042d
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 25 18:36:40 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit cb6e5042d9
Merge: c1a887b48 ba69259f2
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 25 18:32:59 2024 +0100

    Merge pull request #15547 from snipe/disallow_checkout_with_nondeployable_status

    Fixed #13396 - do not allow checkout to undeployable status types

commit c1a887b48b
Merge: ba1220484 658c94ad8
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 25 18:32:21 2024 +0100

    Merge pull request #15561 from snipe/fixes/adds_action_date_to_sorting

    Changed `action_date` to `created_at` in activity report

commit 658c94ad8b
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 25 17:25:15 2024 +0100

    Changed action_date to created_at

    Signed-off-by: snipe <snipe@snipe.net>

commit 0e61d0b195
Merge: abdddbec4 ba1220484
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 25 15:51:38 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit ba12204842
Merge: eeabc8dc9 1c3babaca
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 25 15:51:14 2024 +0100

    Merge pull request #15555 from snipe/fixes/user_file_upload

    Fixed case on `$logAction` for user file upload

commit 1c3babacaf
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 25 15:46:57 2024 +0100

    Fixed case on logAction for usewr file upload

    Signed-off-by: snipe <snipe@snipe.net>

commit abdddbec44
Merge: a425c2b76 eeabc8dc9
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 25 11:58:25 2024 +0100

    Merge remote-tracking branch 'origin/develop'

    Signed-off-by: snipe <snipe@snipe.net>

    # Conflicts:
    #	public/css/build/app.css
    #	public/css/build/overrides.css
    #	public/css/dist/all.css
    #	public/mix-manifest.json

commit eeabc8dc9d
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 25 11:33:45 2024 +0100

    Dev assets

    Signed-off-by: snipe <snipe@snipe.net>

commit 21f8ac8e52
Merge: c38222e95 2a2666be0
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 25 11:31:23 2024 +0100

    Merge pull request #15552 from Godmartinz/ragged-form-inputs

    Fixed input field misalignments

commit a425c2b765
Merge: 34eb10ff7 c38222e95
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 25 10:52:19 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 2a2666be0b
Author: Godfrey M <godmartinz@gmail.com>
Date:   Tue Sep 24 13:24:50 2024 -0700

    makes required a pseudo field

commit c38222e956
Merge: 8cf1e4dce 0ce5832b6
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 24 18:10:53 2024 +0100

    Merge pull request #15549 from snipe/fixes/#15548_unify_audit_api_endpoints

    Fixes #15548 - unify audit api endpoints

commit 0ce5832b6c
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 24 17:29:40 2024 +0100

    Removed debugging

    Signed-off-by: snipe <snipe@snipe.net>

commit b6340532d7
Author: Brady Wetherington <bwetherington@grokability.com>
Date:   Tue Sep 24 17:15:39 2024 +0100

    Improve the error and success messages and linking

commit 5fb43dd159
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 24 16:55:56 2024 +0100

    Handle `audit` *and* `audits` for urls

    Signed-off-by: snipe <snipe@snipe.net>

commit de57d71bf1
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 24 16:30:24 2024 +0100

    Fixed #15548 - unify audit due/overdue APIs

    Signed-off-by: snipe <snipe@snipe.net>

commit ba69259f2d
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 24 15:35:00 2024 +0100

    Fixed #13396 - do not allow checkout to undeployable status types

    Signed-off-by: snipe <snipe@snipe.net>

commit c71411465a
Author: Brady Wetherington <bwetherington@grokability.com>
Date:   Tue Sep 24 15:17:35 2024 +0100

    First pass at better-handling those annoying Rollbars we keep getting

commit 8cf1e4dceb
Merge: ab0c009c0 66249a37e
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 24 11:10:20 2024 +0100

    Merge pull request #15544 from snipe/bug/sc-26855

    Fixed app settings view on mobile

commit 66249a37ed
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 24 11:08:31 2024 +0100

    Tweaked styles

    Signed-off-by: snipe <snipe@snipe.net>

commit 96712cb398
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 24 10:55:26 2024 +0100

    Fixed app settings view on mobile

    Signed-off-by: snipe <snipe@snipe.net>

commit fac4833b58
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 23 17:15:16 2024 -0700

    Remove unused import

commit a12c9d053f
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 23 16:44:25 2024 -0700

    Hide label when printing

commit 8b3b68b308
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 23 16:43:14 2024 -0700

    Show or hide all eulas at once when printing multiple users

commit 4b02db5031
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 23 16:26:22 2024 -0700

    Add authorization check in bulk users controller

commit ab90c0cf05
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 23 16:10:40 2024 -0700

    Add missing eager load in bulk users controller

commit cef7ddc719
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 23 16:10:21 2024 -0700

    Add eager loads to userscontroller

commit 3870095a28
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 23 15:50:24 2024 -0700

    Fix Cannot read properties of undefined error by removing snipe-table class from eula table

commit a02e250b22
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 23 15:26:15 2024 -0700

    Add page breaks for each user

commit 8ac5c0e471
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 23 14:05:47 2024 -0700

    Re-combine layout and view

commit a2d4dcf6e8
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 23 12:49:36 2024 -0700

    Use bulk actions menu

commit 54044bfa5e
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 23 10:57:57 2024 -0700

    Add eager loads

commit e493cc964d
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 23 10:48:07 2024 -0700

    Remove AssetCountForSidebar middleware from print view

commit 29af210f4f
Merge: 5128fd49e ab0c009c0
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 23 10:26:20 2024 -0700

    Merge branch 'develop' into bulk-print-users

commit 34eb10ff73
Merge: 7d7d58769 ab0c009c0
Author: snipe <snipe@snipe.net>
Date:   Fri Sep 20 19:45:20 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit ab0c009c0d
Author: snipe <snipe@snipe.net>
Date:   Fri Sep 20 19:45:10 2024 +0100

    Fixed seeder

    Signed-off-by: snipe <snipe@snipe.net>

commit 7d7d58769c
Merge: 245d5dc46 b68805cf8
Author: snipe <snipe@snipe.net>
Date:   Fri Sep 20 19:13:00 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit b68805cf83
Author: snipe <snipe@snipe.net>
Date:   Fri Sep 20 19:11:52 2024 +0100

    Small fix for notifications checkout

    Signed-off-by: snipe <snipe@snipe.net>

commit 245d5dc469
Merge: 4ab478bb9 7d858129d
Author: snipe <snipe@snipe.net>
Date:   Fri Sep 20 17:28:15 2024 +0100

    Merge remote-tracking branch 'origin/develop'

    Signed-off-by: snipe <snipe@snipe.net>

    # Conflicts:
    #	config/version.php

commit 7d858129d9
Author: snipe <snipe@snipe.net>
Date:   Fri Sep 20 14:44:19 2024 +0100

    Bumped hash

    Signed-off-by: snipe <snipe@snipe.net>

commit 65ce63bc9b
Merge: 5eea9d195 54fba2f54
Author: snipe <snipe@snipe.net>
Date:   Fri Sep 20 14:42:07 2024 +0100

    Merge pull request #15537 from snipe/snyk/updated_jspdf_autotable

    Updated jspdf autotable

commit 54fba2f547
Author: snipe <snipe@snipe.net>
Date:   Fri Sep 20 14:40:41 2024 +0100

    Update jspdf autotable

    Signed-off-by: snipe <snipe@snipe.net>

commit 5eea9d1950
Author: snipe <snipe@snipe.net>
Date:   Fri Sep 20 14:33:56 2024 +0100

    Corrected text warning translation

    Signed-off-by: snipe <snipe@snipe.net>

commit b84a634ec7
Author: snipe <snipe@snipe.net>
Date:   Fri Sep 20 14:33:35 2024 +0100

    Corrected comment

    Signed-off-by: snipe <snipe@snipe.net>

commit 2fc88a0e08
Author: snipe <snipe@snipe.net>
Date:   Fri Sep 20 14:33:26 2024 +0100

    Eager load adminuser

    Signed-off-by: snipe <snipe@snipe.net>

commit bc540b6564
Author: snipe <snipe@snipe.net>
Date:   Fri Sep 20 14:02:28 2024 +0100

    Requestable status not saving with manual [sc-26848]

    Signed-off-by: snipe <snipe@snipe.net>

commit f53b852dff
Author: snipe <snipe@snipe.net>
Date:   Fri Sep 20 13:53:52 2024 +0100

    Make created_by equal one in the seeder

    Signed-off-by: snipe <snipe@snipe.net>

commit b83d1a043f
Merge: cdb7ccb8f b21c303e5
Author: snipe <snipe@snipe.net>
Date:   Fri Sep 20 13:47:31 2024 +0100

    Merge pull request #15519 from snipe/features/add_created_at_created_by

    Change `user_id` to `created_by`

commit 4ab478bb97
Merge: d96c5e1ba cdb7ccb8f
Author: snipe <snipe@snipe.net>
Date:   Fri Sep 20 13:44:45 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit b21c303e56
Merge: b88f2054d cdb7ccb8f
Author: snipe <snipe@snipe.net>
Date:   Fri Sep 20 13:43:50 2024 +0100

    Merge remote-tracking branch 'origin/develop' into features/add_created_at_created_by

commit 5128fd49e6
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 19 17:27:25 2024 -0700

    Allow printing all users

commit 2d2d5bdc7e
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 19 17:23:47 2024 -0700

    Pass user in array

commit 8364d26c9b
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 19 17:18:26 2024 -0700

    Extract parent layout

commit efd6d7625f
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 19 17:16:05 2024 -0700

    Remove bad closing tag

commit bdf5708bfc
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 19 17:10:43 2024 -0700

    Remove accidental line

commit e95703cb18
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 19 17:10:07 2024 -0700

    Use eager load

commit 7ad4a29970
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 19 16:54:39 2024 -0700

    Add eager loading

commit cdb7ccb8f3
Merge: 8270947ed d446773fd
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 21:54:03 2024 +0100

    Merge pull request #15532 from spencerrlongg/bug/15253

    Catch Exceptions on Checkout Notification

commit 8270947ed2
Merge: 4f7c8e0c3 8e1111c68
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 21:49:27 2024 +0100

    Merge pull request #13291 from akemidx/eol_date_range_for_reports

    Added date range for EOL in custom reports

commit 4f7c8e0c3d
Merge: d7bde3784 3ea5d4ee4
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 21:36:09 2024 +0100

    Merge pull request #14671 from Robert-Azelis/patch-6

    [FIX] Update EOL date when used bulk update of purchase date

commit d609ed50a4
Merge: d639d6fbc d7bde3784
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 19 13:20:55 2024 -0700

    Merge branch 'develop' into testing/fmcs-accessories

commit b88f2054dd
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 20:38:34 2024 +0100

    Refactor isDeletable on companies

    Signed-off-by: snipe <snipe@snipe.net>

commit d7914e238d
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 20:34:54 2024 +0100

    Added created by to company on save

    Signed-off-by: snipe <snipe@snipe.net>

commit d7bde37842
Merge: 454796e52 4facc4007
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 20:33:10 2024 +0100

    Merge pull request #15507 from setpill/setpill/feat/use_explicit_attributes_in_ldap_sync

    Added #15506: Explicitly request used LDAP attributes

commit 454796e52a
Merge: eef487d61 7c85ad54e
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 20:32:03 2024 +0100

    Merge pull request #15518 from snipe/sort_by_numeric_custom_fields

    Fixed #11634 - Sort by numeric columns for numeric custom fields

commit eef487d61b
Merge: dddbf27d7 71dbc7abb
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 20:31:02 2024 +0100

    Merge pull request #15531 from Godmartinz/status-doesnt-update-in-email

    Fixed mail notification field `status label` not updating

commit 71dbc7abb0
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Sep 19 12:23:07 2024 -0700

    refreshed the assetstatus relationship

commit d639d6fbc1
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 19 12:21:54 2024 -0700

    Add tests for accessory select list endpoint

commit 74088ea581
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 20:13:38 2024 +0100

    Optimize isDeletable counts

    Signed-off-by: snipe <snipe@snipe.net>

commit fff069824b
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 19 12:11:03 2024 -0700

    Add tests for update accessory endpoint

commit d446773fdd
Author: spencerrlongg <spencer@spencerlong.com>
Date:   Thu Sep 19 14:05:48 2024 -0500

    catch exceptions on notification

commit f283b5fbe8
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 19:56:39 2024 +0100

    Eager load adminuser

    Signed-off-by: snipe <snipe@snipe.net>

commit a5be18bb14
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 19 11:55:15 2024 -0700

    Add test for limit and offset

commit eb6f05faf7
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 19:41:46 2024 +0100

    Eager load adminuser

    Signed-off-by: snipe <snipe@snipe.net>

commit 118183ff58
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 19:41:39 2024 +0100

    Removed footer

    Signed-off-by: snipe <snipe@snipe.net>

commit 2137890496
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 19 11:33:20 2024 -0700

    Remove dead code

commit ebf6ce6980
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 19:27:10 2024 +0100

    Refactor for fewer queries

    Signed-off-by: snipe <snipe@snipe.net>

commit 9b22d6d493
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 19 11:24:01 2024 -0700

    Add tests for accessory checkouts endpoint

commit 5ebf0ed2b2
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 19:19:14 2024 +0100

    Updated variable

    Signed-off-by: snipe <snipe@snipe.net>

commit 836893cba5
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 18:35:00 2024 +0100

    Added id to report

    Signed-off-by: snipe <snipe@snipe.net>

commit cd98b3817d
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 18:26:08 2024 +0100

    Removed duplicate line

    Signed-off-by: snipe <snipe@snipe.net>

commit 727806372c
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 18:22:11 2024 +0100

    Added created_by to status label

    Signed-off-by: snipe <snipe@snipe.net>

commit 5e1c736d49
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 18:04:50 2024 +0100

    Added created_by for manufacturers

    Signed-off-by: snipe <snipe@snipe.net>

commit 6579fa72da
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 17:56:05 2024 +0100

    Added scoping for categories and companies

    Signed-off-by: snipe <snipe@snipe.net>

commit 82d6e1510f
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 17:41:05 2024 +0100

    Order by created_by for depreciations

    Signed-off-by: snipe <snipe@snipe.net>

commit 822ea96dfd
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 17:31:46 2024 +0100

    Use auth()->id() instead of Auth::id()

    Signed-off-by: snipe <snipe@snipe.net>

commit b247fc33b9
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 17:28:01 2024 +0100

    Added legacy comment

    Signed-off-by: snipe <snipe@snipe.net>

commit 2dcae780c0
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 17:26:21 2024 +0100

    Reapply deleted code

    Signed-off-by: snipe <snipe@snipe.net>

commit 5c3180ffa0
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 17:25:09 2024 +0100

    Removed duplicate code

    Signed-off-by: snipe <snipe@snipe.net>

commit 65eba30038
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 17:23:34 2024 +0100

    Fixed markdown in acceptance reminder

    Signed-off-by: snipe <snipe@snipe.net>

commit bbce7b40ca
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 17:20:56 2024 +0100

    Additional consistencies

    Signed-off-by: snipe <snipe@snipe.net>

commit 02a29c71ef
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 17:01:48 2024 +0100

    Added created_by

    Signed-off-by: snipe <snipe@snipe.net>

commit 6699995972
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 17:01:36 2024 +0100

    Added created_by to components

    Signed-off-by: snipe <snipe@snipe.net>

commit 951f03094a
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 17:01:17 2024 +0100

    Added created_by to kits

    Signed-off-by: snipe <snipe@snipe.net>

commit 354b00ef15
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 16:45:51 2024 +0100

    Made method name consistent

    Signed-off-by: snipe <snipe@snipe.net>

commit c93229179b
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 16:45:39 2024 +0100

    Added order by created_by to accessories

    Signed-off-by: snipe <snipe@snipe.net>

commit a77a7065d7
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 16:34:10 2024 +0100

    Added order by admin to assets

    Signed-off-by: snipe <snipe@snipe.net>

commit 4363e8b34c
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 16:20:42 2024 +0100

    Updated importer

    Signed-off-by: snipe <snipe@snipe.net>

commit 9adb2c24f3
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 16:06:36 2024 +0100

    Squashed commit of the following:

    commit dddbf27d78
    Author: snipe <snipe@snipe.net>
    Date:   Wed Sep 18 14:18:52 2024 +0100

        Updated language strings

        Signed-off-by: snipe <snipe@snipe.net>

    commit fcefcc8184
    Merge: 04bb3eec8 3519a82dd
    Author: snipe <snipe@snipe.net>
    Date:   Wed Sep 18 13:44:44 2024 +0100

        Merge pull request #15512 from marcusmoore/testing/fmcs

        Added tests for delete methods in api

    commit 04bb3eec83
    Merge: 154d5d8d9 f963b9a19
    Author: snipe <snipe@snipe.net>
    Date:   Wed Sep 18 13:41:37 2024 +0100

        Merge pull request #15521 from uberbrady/improve_country_selector

        Fix selected-index of Countries drop-down [fd-44144]

    commit f963b9a19f
    Author: Brady Wetherington <bwetherington@grokability.com>
    Date:   Wed Sep 18 13:24:26 2024 +0100

        Fix selected-index of Countries drop-down

    commit 154d5d8d91
    Merge: 6c996b775 9e5f6d656
    Author: snipe <snipe@snipe.net>
    Date:   Tue Sep 17 23:40:25 2024 +0100

        Merge pull request #15491 from uberbrady/numeric_prefixes_add_multiple_assets

        [Fixes fd-43940] Improve multi-asset create when using numeric prefixes to asset_tags

    commit 3519a82ddd
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Mon Sep 16 16:55:20 2024 -0700

        Fix name: TestsFullMultipleCompaniesSupport

    commit a629df07bf
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Mon Sep 16 14:49:08 2024 -0700

        Implement interfaces on existing test classes

    commit 9a13fcab23
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Mon Sep 16 14:38:38 2024 -0700

        Pluralize

    commit f5705a1dde
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Mon Sep 16 14:34:55 2024 -0700

        More unification

    commit f325c4afdb
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Mon Sep 16 14:32:38 2024 -0700

        Unify assertion method

    commit 1fddacd7d0
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Mon Sep 16 14:25:11 2024 -0700

        Re-order test methods

    commit 4af893df61
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Mon Sep 16 14:20:24 2024 -0700

        Improve assertions

    commit b8b3f91ce4
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Mon Sep 16 13:55:18 2024 -0700

        Formatting

    commit 7f40f55343
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Mon Sep 16 13:52:02 2024 -0700

        Add tests for delete supplier endpoint

    commit b06e8d442d
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Mon Sep 16 13:37:08 2024 -0700

        Add tests for delete status label endpoint

    commit c269184c60
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Mon Sep 16 13:29:41 2024 -0700

        Add tests for delete predefined kit endpoint

    commit 53c673dee2
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Mon Sep 16 13:13:12 2024 -0700

        Add tests for delete manufacturer endpoint

    commit 50730fc4fb
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Mon Sep 16 12:37:18 2024 -0700

        Add tests for delete location endpoint

    commit 60a54cee79
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Mon Sep 16 12:33:30 2024 -0700

        Add tests for delete license endpoint

    commit 446e962a50
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Mon Sep 16 10:38:51 2024 -0700

        Add tests for delete group endpoint

    commit 79a4bb7316
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Mon Sep 16 10:35:44 2024 -0700

        Add tests for delete depreciation endpoint

    commit 2f76c1bc5b
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Mon Sep 16 10:33:21 2024 -0700

        Add assertion

    commit 38b9f4a438
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Mon Sep 16 10:29:20 2024 -0700

        Add tests for delete departments endpoint

    commit 3105f53aff
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Thu Sep 12 16:54:29 2024 -0700

        Add tests for delete custom fieldsets endpoint

    commit 2047cfed09
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Thu Sep 12 16:20:32 2024 -0700

        Add tests for delete custom fields endpoint

    commit e3268d32df
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Thu Sep 12 16:00:02 2024 -0700

        Add tests for delete consumable endpoint

    commit 6df8b0ac0e
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Thu Sep 12 15:52:07 2024 -0700

        Add tests for delete component endpoint

    commit 910f13c1f7
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Thu Sep 12 15:38:30 2024 -0700

        Add tests for delete companies endpoint

    commit 8ce2512f55
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Thu Sep 12 13:54:44 2024 -0700

        Add tests for delete category endpoint

    commit 0ec415d4d0
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Thu Sep 12 13:46:22 2024 -0700

        Clean up

    commit 2044570e95
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Thu Sep 12 13:39:36 2024 -0700

        Add tests for delete asset model endpoint

    commit b336c6273d
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Thu Sep 12 13:32:42 2024 -0700

        Pluralize test classes

    commit 5299b3e9f0
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Thu Sep 12 13:29:44 2024 -0700

        Remove code handled by CompanyableChildTrait

    commit 872b76b45f
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Thu Sep 12 13:29:10 2024 -0700

        Add tests for delete asset maintenance endpoint

    commit 275cf4630e
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Thu Sep 12 13:16:37 2024 -0700

        Add tests for delete asset endpoint

    commit 5c2660bd34
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Thu Sep 12 13:02:32 2024 -0700

        Introduce interface

    commit c7ae9d9dfa
    Author: Marcus Moore <contact@marcusmoore.io>
    Date:   Thu Sep 12 12:58:47 2024 -0700

        Add tests for delete accessory endpoint

    commit 9e5f6d656a
    Author: Brady Wetherington <bwetherington@grokability.com>
    Date:   Wed Sep 11 15:45:01 2024 +0100

        Improve multi-asset create when using numeric prefixes to asset_tags

    Signed-off-by: snipe <snipe@snipe.net>

commit 634a4afa75
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 16:04:54 2024 +0100

    Fixed 1001 query on license

    Signed-off-by: snipe <snipe@snipe.net>

commit 7650628d30
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 16:00:59 2024 +0100

    Removed free seat count from fillable

    Signed-off-by: snipe <snipe@snipe.net>

commit 7f690a6238
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 19 15:58:32 2024 +0100

    Fixed variable name

    Signed-off-by: snipe <snipe@snipe.net>

commit b32ab6a06c
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Sep 18 16:36:24 2024 -0700

    import User model

commit 4ff5fc1ff9
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Sep 18 16:19:35 2024 -0700

    clean up variables

commit 86f13a9735
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Sep 18 16:13:34 2024 -0700

    Add index test

commit c40209f500
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Sep 18 15:23:44 2024 -0700

    seperates emails and webhook notifications

commit a071fff954
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Sep 18 12:32:14 2024 -0700

    Implement tests

commit 8b50ef077d
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Sep 18 11:58:33 2024 -0700

    Implement test

commit 607f29030f
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Sep 18 11:53:27 2024 -0700

    Stub out test

commit a6bcd3c0c2
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Sep 18 11:47:59 2024 -0700

    Add validation test

commit 9b293afaac
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Sep 18 11:28:29 2024 -0700

    Remove more dead code

commit 636c776620
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Sep 18 11:27:37 2024 -0700

    Remove dead code

commit d5f659024c
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Sep 18 11:27:09 2024 -0700

    Add test for logging

commit 832e50a71e
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Sep 18 11:19:41 2024 -0700

    Implement test

commit fa19686248
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Sep 18 11:18:21 2024 -0700

    Implement test

commit c021609c13
Merge: 7b31df7c1 dddbf27d7
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Sep 18 10:42:58 2024 -0700

    Merge branch 'develop' into testing/fmcs-accessories

commit 655abe8be5
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 18 14:32:59 2024 +0100

    Fixed requestable user_id

    Signed-off-by: snipe <snipe@snipe.net>

commit d96c5e1ba4
Merge: a807646d3 dddbf27d7
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 18 14:20:55 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit dddbf27d78
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 18 14:18:52 2024 +0100

    Updated language strings

    Signed-off-by: snipe <snipe@snipe.net>

commit bae9982833
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 18 14:18:14 2024 +0100

    Updated request methods

    Signed-off-by: snipe <snipe@snipe.net>

commit a807646d39
Merge: 83b4bf9cf fcefcc818
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 18 13:48:09 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit abe79df6dc
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 18 13:47:30 2024 +0100

    Added translation

    Signed-off-by: snipe <snipe@snipe.net>

commit fcefcc8184
Merge: 04bb3eec8 3519a82dd
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 18 13:44:44 2024 +0100

    Merge pull request #15512 from marcusmoore/testing/fmcs

    Added tests for delete methods in api

commit 04bb3eec83
Merge: 154d5d8d9 f963b9a19
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 18 13:41:37 2024 +0100

    Merge pull request #15521 from uberbrady/improve_country_selector

    Fix selected-index of Countries drop-down [fd-44144]

commit f963b9a19f
Author: Brady Wetherington <bwetherington@grokability.com>
Date:   Wed Sep 18 13:24:26 2024 +0100

    Fix selected-index of Countries drop-down

commit 154d5d8d91
Merge: 6c996b775 9e5f6d656
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 17 23:40:25 2024 +0100

    Merge pull request #15491 from uberbrady/numeric_prefixes_add_multiple_assets

    [Fixes fd-43940] Improve multi-asset create when using numeric prefixes to asset_tags

commit 1582d81e5b
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 17 22:16:41 2024 +0100

    Change `user_id` to `created_by`

    Signed-off-by: snipe <snipe@snipe.net>

commit 7c85ad54eb
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 17 19:44:03 2024 +0100

    Sort by numeric columns for numeric custom fields

    Signed-off-by: snipe <snipe@snipe.net>

commit 7b31df7c14
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Tue Sep 17 09:11:58 2024 -0700

    Begin additional test case

commit 83b4bf9cf8
Merge: 9ff211105 6c996b775
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 17 15:54:53 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 6c996b7759
Merge: fe5fc6e0c 9e957baeb
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 17 15:54:11 2024 +0100

    Merge pull request #15516 from snipe/fixes/fmcs_edit_user

    Fixed check for outside assets on user update validation

commit 9e957baeb5
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 17 15:46:45 2024 +0100

    Fixed check for outside assets on user update validation

    Signed-off-by: snipe <snipe@snipe.net>

commit 12fd9cd97a
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 17:00:08 2024 -0700

    Update interface name

commit 9e03c4ba6f
Merge: 8eb1c487b 3519a82dd
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 16:58:46 2024 -0700

    Merge branch 'testing/fmcs' into testing/fmcs-accessories

commit 3519a82ddd
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 16:55:20 2024 -0700

    Fix name: TestsFullMultipleCompaniesSupport

commit 8eb1c487bc
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 16:52:10 2024 -0700

    implement FMCS test for accessory index

commit e835637ef0
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 16:40:10 2024 -0700

    Add accessory checkin test

commit eb35608bb5
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 16:35:33 2024 -0700

    Remove call handled by form request

commit 3f07f682de
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 16:35:21 2024 -0700

    Migrate existing tests to TestsPermissionsRequirement

commit a629df07bf
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 14:49:08 2024 -0700

    Implement interfaces on existing test classes

commit 9a13fcab23
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 14:38:38 2024 -0700

    Pluralize

commit f5705a1dde
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 14:34:55 2024 -0700

    More unification

commit f325c4afdb
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 14:32:38 2024 -0700

    Unify assertion method

commit 1fddacd7d0
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 14:25:11 2024 -0700

    Re-order test methods

commit 4af893df61
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 14:20:24 2024 -0700

    Improve assertions

commit b8b3f91ce4
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 13:55:18 2024 -0700

    Formatting

commit 7f40f55343
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 13:52:02 2024 -0700

    Add tests for delete supplier endpoint

commit b06e8d442d
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 13:37:08 2024 -0700

    Add tests for delete status label endpoint

commit c269184c60
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 13:29:41 2024 -0700

    Add tests for delete predefined kit endpoint

commit 53c673dee2
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 13:13:12 2024 -0700

    Add tests for delete manufacturer endpoint

commit 50730fc4fb
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 12:37:18 2024 -0700

    Add tests for delete location endpoint

commit 60a54cee79
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 12:33:30 2024 -0700

    Add tests for delete license endpoint

commit 446e962a50
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 10:38:51 2024 -0700

    Add tests for delete group endpoint

commit 79a4bb7316
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 10:35:44 2024 -0700

    Add tests for delete depreciation endpoint

commit 2f76c1bc5b
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 10:33:21 2024 -0700

    Add assertion

commit 38b9f4a438
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 16 10:29:20 2024 -0700

    Add tests for delete departments endpoint

commit fe5fc6e0ce
Merge: 62747a009 15183c482
Author: snipe <snipe@snipe.net>
Date:   Mon Sep 16 15:56:31 2024 +0100

    Merge pull request #15471 from Godmartinz/Edit_side-panel

    Fixes margin for the sidebar menus while using rtl languages

commit 62747a0090
Merge: b465cc98d c6c5cb73c
Author: snipe <snipe@snipe.net>
Date:   Mon Sep 16 15:02:55 2024 +0100

    Merge pull request #15493 from Godmartinz/fix_consumables_media_sizing

    Fixed misalignment of consumables with smaller media

commit 9ff2111055
Merge: 1328366a4 b465cc98d
Author: snipe <snipe@snipe.net>
Date:   Mon Sep 16 14:52:48 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit b465cc98d8
Merge: 8774da392 4debaaea3
Author: snipe <snipe@snipe.net>
Date:   Mon Sep 16 14:45:06 2024 +0100

    Merge pull request #15510 from snipe/bulk_users_locale_fix

    Fixed #15504 - allow nulling/not changing locale in user bulk edit

commit 4debaaea39
Author: snipe <snipe@snipe.net>
Date:   Mon Sep 16 14:31:10 2024 +0100

    Fixed #15504 - allow nulling/not changing locale in user bulk edit

    Signed-off-by: snipe <snipe@snipe.net>

commit 1328366a48
Merge: 7e14f8c6d 8774da392
Author: snipe <snipe@snipe.net>
Date:   Mon Sep 16 12:38:56 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 4facc4007e
Author: setpill <37372069+setpill@users.noreply.github.com>
Date:   Fri Sep 13 17:05:48 2024 +0200

    feat: Explicitly request LDAP attributes during sync

commit 31da47e046
Author: setpill <37372069+setpill@users.noreply.github.com>
Date:   Fri Sep 13 17:05:28 2024 +0200

    refactor: Put LDAP attribute mapping in array

commit 3105f53aff
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 12 16:54:29 2024 -0700

    Add tests for delete custom fieldsets endpoint

commit 2047cfed09
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 12 16:20:32 2024 -0700

    Add tests for delete custom fields endpoint

commit e3268d32df
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 12 16:00:02 2024 -0700

    Add tests for delete consumable endpoint

commit 6df8b0ac0e
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 12 15:52:07 2024 -0700

    Add tests for delete component endpoint

commit 910f13c1f7
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 12 15:38:30 2024 -0700

    Add tests for delete companies endpoint

commit 8ce2512f55
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 12 13:54:44 2024 -0700

    Add tests for delete category endpoint

commit 0ec415d4d0
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 12 13:46:22 2024 -0700

    Clean up

commit 2044570e95
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 12 13:39:36 2024 -0700

    Add tests for delete asset model endpoint

commit b336c6273d
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 12 13:32:42 2024 -0700

    Pluralize test classes

commit 5299b3e9f0
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 12 13:29:44 2024 -0700

    Remove code handled by CompanyableChildTrait

commit 872b76b45f
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 12 13:29:10 2024 -0700

    Add tests for delete asset maintenance endpoint

commit 275cf4630e
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 12 13:16:37 2024 -0700

    Add tests for delete asset endpoint

commit 5c2660bd34
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 12 13:02:32 2024 -0700

    Introduce interface

commit c7ae9d9dfa
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Sep 12 12:58:47 2024 -0700

    Add tests for delete accessory endpoint

commit 0bc98e971f
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Sep 12 12:26:19 2024 -0700

    refactoring modals with partials and fixing misalignments

commit 8774da3921
Merge: ab3b65531 a97530367
Author: snipe <snipe@snipe.net>
Date:   Thu Sep 12 16:08:44 2024 +0100

    Merge pull request #15492 from snipe/fixes/edit_to_archived_warning

    Fix - warn user on changing status to undeployable when editing

commit c6c5cb73cf
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Sep 11 10:49:27 2024 -0700

    fixes consumables positioning with smaller media

commit a97530367d
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 11 17:29:22 2024 +0100

    Fixed tests again

    Signed-off-by: snipe <snipe@snipe.net>

commit 43250ae881
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 11 17:04:09 2024 +0100

    Updated tests

    Signed-off-by: snipe <snipe@snipe.net>

commit 04e96b8f20
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 11 16:43:41 2024 +0100

    Added tests

    Signed-off-by: snipe <snipe@snipe.net>

commit 98323185de
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 11 16:43:33 2024 +0100

    Null and warn if editing asset to a non-deployabe state

    Signed-off-by: snipe <snipe@snipe.net>

commit 9e5f6d656a
Author: Brady Wetherington <bwetherington@grokability.com>
Date:   Wed Sep 11 15:45:01 2024 +0100

    Improve multi-asset create when using numeric prefixes to asset_tags

commit 7e14f8c6d6
Merge: fddbdafb9 ab3b65531
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 11 12:25:28 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit ab3b655312
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 11 12:25:09 2024 +0100

    Fixed #15483 - show EOL by default

    Signed-off-by: snipe <snipe@snipe.net>

commit 601d8d7e5f
Merge: 4f0f72b29 ca01261c1
Author: snipe <snipe@snipe.net>
Date:   Wed Sep 11 09:46:58 2024 +0100

    Merge pull request #15486 from marcusmoore/fixes/custom-field-values

    Fixed a couple bugs in CustomFieldSetDefaultValuesForModel component

commit ca01261c1f
Merge: 6423df213 4f0f72b29
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Tue Sep 10 16:05:39 2024 -0700

    Merge branch 'develop' into fixes/custom-field-values

commit 15183c4822
Author: Godfrey M <godmartinz@gmail.com>
Date:   Tue Sep 10 11:05:03 2024 -0700

    rephrased the ternary <-correctly spelled

commit fddbdafb99
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 10 19:03:56 2024 +0100

    Fixed conflict

    Signed-off-by: snipe <snipe@snipe.net>

commit a5dbece1a9
Merge: 713bb104e 4f0f72b29
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 10 19:00:05 2024 +0100

    Merge remote-tracking branch 'origin/develop'

    Signed-off-by: snipe <snipe@snipe.net>

    # Conflicts:
    #	config/version.php
    #	public/css/build/app.css
    #	public/css/build/overrides.css
    #	public/css/dist/all.css
    #	public/mix-manifest.json

commit 4f0f72b29e
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 10 18:15:12 2024 +0100

    Fixed version

    Signed-off-by: snipe <snipe@snipe.net>

commit 4183d1834f
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 10 18:14:03 2024 +0100

    Pre-release assets

    Signed-off-by: snipe <snipe@snipe.net>

commit 713bb104ec
Merge: 7f2cae4f2 4998d60f3
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 10 14:46:15 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 4998d60f39
Merge: f6bf2d03c 7cf30003b
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 10 14:43:27 2024 +0100

    Merge pull request #15481 from snipe/localizations/2024-09-10

    Updated translations

commit 7cf30003b6
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 10 14:41:08 2024 +0100

    Updated strings

    Signed-off-by: snipe <snipe@snipe.net>

commit f6bf2d03c4
Merge: 6f44441a8 7c8955b12
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 10 11:04:58 2024 +0100

    Merge pull request #15445 from Godmartinz/eula_confusion

    Fixed priority for category eula vs default eula

commit 6f44441a8b
Merge: e7e5dfbdf 76c9015aa
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 10 11:04:23 2024 +0100

    Merge pull request #15469 from marcusmoore/accessory_tests

    Added UI tests for creating accessories

commit e7e5dfbdfa
Merge: d62315fbe 5d5f42129
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 10 11:04:08 2024 +0100

    Merge pull request #15470 from marcusmoore/company_tests

    Added UI tests for creating companies

commit d62315fbe4
Merge: 7f3f77dec 22a2cc025
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 10 11:03:55 2024 +0100

    Merge pull request #15472 from marcusmoore/testing/dashboard_counts

    Added test for dashboard counts

commit 7f3f77dec8
Merge: 82e56c683 0820dd9da
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 10 11:03:46 2024 +0100

    Merge pull request #15473 from marcusmoore/testing/accessory_api_tests

    Added some permission tests for accessory api endpoints

commit 82e56c6832
Merge: 549dec9f9 dc6a5bf99
Author: snipe <snipe@snipe.net>
Date:   Tue Sep 10 09:37:02 2024 +0100

    Merge pull request #15474 from marcusmoore/bug/sc-26730

    Fixed login success message not being displayed

commit 76c9015aa9
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 9 16:51:40 2024 -0700

    Add test case

commit 5d5f421294
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 9 16:49:43 2024 -0700

    Add test case

commit 367f02af86
Author: Godfrey M <godmartinz@gmail.com>
Date:   Mon Sep 9 16:34:04 2024 -0700

    more partials and includes

commit 7a1c721eca
Author: Godfrey M <godmartinz@gmail.com>
Date:   Mon Sep 9 16:22:56 2024 -0700

    making modal partials for reuse

commit 6423df2133
Merge: 51d63d57c 549dec9f9
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 9 16:07:37 2024 -0700

    Merge branch 'develop' into fixes/custom-field-values

    # Conflicts:
    #	resources/views/livewire/custom-field-set-default-values-for-model.blade.php

commit dc6a5bf998
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 9 14:54:19 2024 -0700

    Reflash session so login message is displayed

commit 0820dd9da4
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 9 14:36:32 2024 -0700

    Update test names

commit aa6ab2df60
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 9 14:35:38 2024 -0700

    Add permission tests for some accessory api endpoints

commit 22a2cc0256
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 9 13:21:10 2024 -0700

    Add test for dashboard counts

commit 57fab0268b
Author: Godfrey M <godmartinz@gmail.com>
Date:   Mon Sep 9 13:02:25 2024 -0700

    made it a terenary

commit ad5768d8b2
Author: Godfrey M <godmartinz@gmail.com>
Date:   Mon Sep 9 12:45:11 2024 -0700

    fixes margin for the sidebar using rtl languages

commit 35533c39d5
Merge: d4426e468 549dec9f9
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 9 12:18:02 2024 -0700

    Merge branch 'develop' into company_tests

commit de403f6e07
Merge: 010f66f4c 549dec9f9
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 9 12:17:53 2024 -0700

    Merge branch 'develop' into accessory_tests

commit 549dec9f9e
Merge: b2a634924 0e9f7153c
Author: snipe <snipe@snipe.net>
Date:   Mon Sep 9 20:13:01 2024 +0100

    Merge pull request #15468 from marcusmoore/coverage

    Added coverage commands for Herd users

commit d4426e4686
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Sep 9 11:03:00 2024 -0700

    Add simple tests for company creation via UI

commit b2a6349243
Merge: ce97e2a30 c5dbc5f6b
Author: snipe <snipe@snipe.net>
Date:   Mon Sep 9 10:06:42 2024 +0100

    Merge pull request #15465 from snipe/update_city_on_bulk_user_edit

    Correctly save user’s city on bulk edit

commit c5dbc5f6b8
Author: snipe <snipe@snipe.net>
Date:   Mon Sep 9 10:01:07 2024 +0100

    Correctly save user’s city on bulk edit

    Signed-off-by: snipe <snipe@snipe.net>

commit 7f2cae4f26
Merge: e34f549e4 ce97e2a30
Author: snipe <snipe@snipe.net>
Date:   Mon Sep 9 03:56:05 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit ce97e2a30f
Merge: e1fcfc8dc 7d9a0eba0
Author: snipe <snipe@snipe.net>
Date:   Mon Sep 9 03:54:28 2024 +0100

    Merge pull request #15463 from snipe/consumables_order_by_remaining

    Added ability to sort on qty and remaining for consumables

commit 7d9a0eba04
Author: snipe <snipe@snipe.net>
Date:   Mon Sep 9 03:49:58 2024 +0100

    Added ability to sort on qty and remaining for consumables

    Signed-off-by: snipe <snipe@snipe.net>

commit 010f66f4c9
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Sep 4 15:48:11 2024 -0700

    Add validation test

commit 9c6718b459
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Sep 4 15:46:35 2024 -0700

    Organize

commit 9f832a93c9
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Sep 4 15:44:52 2024 -0700

    Ensure user is stored

commit 487d88c012
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Sep 4 15:43:01 2024 -0700

    Add some ui tests for accessories

commit 0e9f7153c0
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Sep 4 15:13:45 2024 -0700

    Add composer commands for generating coverage reports via Herd

commit 7c8955b126
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Sep 4 12:38:35 2024 -0700

    revert changes to label view

commit 20fa4c39f9
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Sep 4 12:26:44 2024 -0700

    adds setEula to support\settings

commit f04a4a3cf5
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Sep 4 12:21:49 2024 -0700

    adds test

commit cf07186ae8
Author: Godfrey M <godmartinz@gmail.com>
Date:   Tue Sep 3 12:23:23 2024 -0700

    gives priority to default eula being checked vs catregory eula

commit 51d63d57c6
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Tue Sep 3 12:22:43 2024 -0700

    Hide the "Add default values" checkbox if no fieldset selected

commit e34f549e4c
Merge: a8813cca9 e1fcfc8dc
Author: snipe <snipe@snipe.net>
Date:   Mon Sep 2 19:16:23 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit e1fcfc8dc1
Merge: 13dbf9ee7 9fe8a866e
Author: snipe <snipe@snipe.net>
Date:   Mon Sep 2 19:14:49 2024 +0100

    Merge pull request #15440 from snipe/fixes/user_api_put_patch

    Fixes  #15435 - user api put patch API route regression

commit 9fe8a866e0
Author: snipe <snipe@snipe.net>
Date:   Mon Sep 2 19:07:21 2024 +0100

    Updated test

    Signed-off-by: snipe <snipe@snipe.net>

commit e8e3060a75
Author: snipe <snipe@snipe.net>
Date:   Mon Sep 2 18:51:22 2024 +0100

    Added tests

    Signed-off-by: snipe <snipe@snipe.net>

commit 6aaf2f623f
Author: snipe <snipe@snipe.net>
Date:   Mon Sep 2 18:49:55 2024 +0100

    Removed extra route

    Signed-off-by: snipe <snipe@snipe.net>

commit dfbccf50e8
Author: snipe <snipe@snipe.net>
Date:   Mon Sep 2 18:48:09 2024 +0100

    Added patch/put back into resource routes

    Signed-off-by: snipe <snipe@snipe.net>

commit a8813cca94
Merge: 9fef27a44 13dbf9ee7
Author: snipe <snipe@snipe.net>
Date:   Sat Aug 31 13:48:59 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 13dbf9ee74
Author: snipe <snipe@snipe.net>
Date:   Sat Aug 31 13:48:42 2024 +0100

    Added icon for dept

    Signed-off-by: snipe <snipe@snipe.net>

commit f8bbb7ad9b
Merge: 12fa50597 3c7d455ee
Author: snipe <snipe@snipe.net>
Date:   Sat Aug 31 13:47:25 2024 +0100

    Merge pull request #15431 from snipe/add_employee_num_to_asset_overview

    Added employee number to asset view

commit 3c7d455ee3
Author: snipe <snipe@snipe.net>
Date:   Sat Aug 31 13:38:38 2024 +0100

    Added employee number to asset view

    Signed-off-by: snipe <snipe@snipe.net>

commit 9fef27a448
Merge: d2b88a510 12fa50597
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 21:07:56 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 12fa505972
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 21:07:30 2024 +0100

    Disabmiguate licenses company_id

    Signed-off-by: snipe <snipe@snipe.net>

commit d2b88a5107
Merge: 4e35f389d 4e4930ba6
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 21:02:21 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 4e4930ba62
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 21:01:48 2024 +0100

    Check for array

    Signed-off-by: snipe <snipe@snipe.net>

commit 4e35f389df
Merge: e5b9d9a28 76301bc30
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 20:07:03 2024 +0100

    Merge remote-tracking branch 'origin/develop'

    Signed-off-by: snipe <snipe@snipe.net>

    # Conflicts:
    #	public/css/build/app.css
    #	public/css/build/overrides.css
    #	public/css/dist/all.css
    #	public/mix-manifest.json

commit 76301bc30d
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 20:05:03 2024 +0100

    Fixed typo

    Signed-off-by: snipe <snipe@snipe.net>

commit 964e105cf9
Merge: 6fd24c7e1 abb422153
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 19:20:03 2024 +0100

    Merge pull request #15415 from snipe/rules/prevent_company_switch

    Validation rules to prevent switching user companies if items are assigned to them

commit 6fd24c7e14
Merge: e4ebabdab 231bc1e2d
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 18:55:11 2024 +0100

    Merge pull request #15418 from snipe/added_multiple_for_custom_report

    Fixed #15416 - Added multiple selects for custom report

commit 231bc1e2de
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 18:31:34 2024 +0100

    Updated blade selectors

    Signed-off-by: snipe <snipe@snipe.net>

commit 37d04b7176
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 17:52:01 2024 +0100

    Some CSS tweaks for select2

    Signed-off-by: snipe <snipe@snipe.net>

commit e62a802926
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 17:51:44 2024 +0100

    Use whereIn instead of where =

    Signed-off-by: snipe <snipe@snipe.net>

commit 69e981364a
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 17:51:20 2024 +0100

    Made multiple select

    Signed-off-by: snipe <snipe@snipe.net>

commit e5b9d9a28b
Merge: 4111ef0d7 e4ebabdab
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 15:04:32 2024 +0100

    Merge remote-tracking branch 'origin/develop'

    Signed-off-by: snipe <snipe@snipe.net>

    # Conflicts:
    #	public/js/build/app.js
    #	public/js/build/vendor.js
    #	public/js/dist/all.js
    #	public/mix-manifest.json

commit abb4221539
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 14:55:18 2024 +0100

    Validation rules to prevent switchng user companies if assets are assigned

    Signed-off-by: snipe <snipe@snipe.net>

commit e4ebabdaba
Merge: b64ed254e da1e38329
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 14:19:51 2024 +0100

    Merge pull request #15414 from uberbrady/fix_create_user

    Use the null-safe property accessor for new-user creation

commit da1e383295
Author: Brady Wetherington <bwetherington@grokability.com>
Date:   Thu Aug 29 14:09:23 2024 +0100

    Use the null-safe property accessor for new-user creation

commit b64ed254e0
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 13:49:09 2024 +0100

    Fixed tests

    Signed-off-by: snipe <snipe@snipe.net>

commit ba291edc42
Merge: c197644ba ec2ea955d
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 13:18:52 2024 +0100

    Merge pull request #15412 from uberbrady/ImprovePatchPurchasePrice

    Fix [FD-43836] PATCH of purchase_cost for assets for comma as decimal separator

commit ec2ea955d8
Author: Brady Wetherington <bwetherington@grokability.com>
Date:   Thu Aug 29 12:35:14 2024 +0100

    Fix PATCH of purchase_cost for assets for comma as decimal separator

commit c197644ba7
Merge: 29b30cc5d a8cd1027f
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 11:38:15 2024 +0100

    Merge pull request #15284 from spencerrlongg/bug/sc-26584

    [Multi-Company] Fixes Users Being Moved With Items Still Assigned

commit 29b30cc5d3
Merge: a89f17a14 6af27516d
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 11:29:44 2024 +0100

    Merge pull request #15411 from snipe/snyk/upgrade-webpack

    Upgraded webpack

commit 6af27516dc
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 11:29:00 2024 +0100

    Upgraded webpack

    Signed-off-by: snipe <snipe@snipe.net>

commit a89f17a145
Merge: 68c708bde de0565f5b
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 11:25:56 2024 +0100

    Merge pull request #15410 from snipe/snyk/upgrade-jquery-ui

    Updated jquery UI

commit de0565f5b3
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 11:24:06 2024 +0100

    Updated jquery UI

    Signed-off-by: snipe <snipe@snipe.net>

commit 4111ef0d78
Merge: cfa56e221 68c708bde
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 11:20:21 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 68c708bdef
Merge: 58e366a06 5581950fe
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 11:18:34 2024 +0100

    Merge pull request #15409 from snipe/fixes-string

    Corrected language string

commit 5581950fee
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 11:17:17 2024 +0100

    Corrected language string

    Signed-off-by: snipe <snipe@snipe.net>

commit cfa56e2219
Merge: 7f1dfcc93 58e366a06
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 11:08:53 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 58e366a063
Merge: 26f28a862 b06c52776
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 11:08:02 2024 +0100

    Merge pull request #15408 from snipe/redirect-on-print-if-user-invalid

    Check that the user exists before trying to print

commit b06c527767
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 29 11:06:30 2024 +0100

    Check that the user exists before trying to print

    Signed-off-by: snipe <snipe@snipe.net>

commit 7f1dfcc935
Merge: 6f3fb21fe 26f28a862
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 28 14:29:06 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 26f28a862a
Merge: e8da7e2df 94c981e22
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 28 14:26:03 2024 +0100

    Merge pull request #15404 from snipe/bug/sc-26717-model-delete

    Set image to null if model is deleted

commit 94c981e22c
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 28 14:23:49 2024 +0100

    Set image to null if model is deleted

    Signed-off-by: snipe <snipe@snipe.net>

commit 6f3fb21fef
Merge: a48e79a1f e8da7e2df
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 28 12:50:19 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit e8da7e2df2
Merge: 7b5b559ba d635c86e0
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 28 12:46:48 2024 +0100

    Merge pull request #15403 from snipe/clean_up_depreciations

    Fixed #15392 - filter by depreciation when showing models

commit d635c86e00
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 28 12:46:30 2024 +0100

    Added tests

    Signed-off-by: snipe <snipe@snipe.net>

commit 406ff6984b
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 28 12:42:23 2024 +0100

    Added click to select on models table

    Signed-off-by: snipe <snipe@snipe.net>

commit c6ddc501c5
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 28 12:40:12 2024 +0100

    Filter by depreciation_id

    Signed-off-by: snipe <snipe@snipe.net>

commit 4839181beb
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 28 12:40:01 2024 +0100

    Added counts to API

    Signed-off-by: snipe <snipe@snipe.net>

commit 63a05c89a7
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 28 12:39:52 2024 +0100

    Added counts to show method

    Signed-off-by: snipe <snipe@snipe.net>

commit 385c4f69f7
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 28 12:39:43 2024 +0100

    Added counts to depreciation transformer

    Signed-off-by: snipe <snipe@snipe.net>

commit 486cd8c8c9
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 28 12:39:09 2024 +0100

    Nicer formatting for searchableAttributes

    Signed-off-by: snipe <snipe@snipe.net>

commit eb5d93b3c2
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 28 12:38:55 2024 +0100

    Added assets relationship

    Signed-off-by: snipe <snipe@snipe.net>

commit a5ff623484
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 28 12:38:43 2024 +0100

    Added asset, license, model count to API

    Signed-off-by: snipe <snipe@snipe.net>

commit b5a4389815
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 28 12:38:31 2024 +0100

    Added badge count, fixed model bulk edit menu

    Signed-off-by: snipe <snipe@snipe.net>

commit 7b5b559baa
Merge: 64c4433b9 67a992974
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 28 11:57:29 2024 +0100

    Merge pull request #15401 from snipe/fixes-15397-new-window-for-label

    Opens label new window

commit 67a9929745
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 28 11:56:54 2024 +0100

    Opens label new window

    Signed-off-by: snipe <snipe@snipe.net>

commit a48e79a1fc
Merge: c207d4843 64c4433b9
Author: snipe <snipe@snipe.net>
Date:   Tue Aug 27 07:37:53 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 64c4433b98
Merge: d3e8e0663 22bc088f6
Author: snipe <snipe@snipe.net>
Date:   Tue Aug 27 07:36:37 2024 +0100

    Merge pull request #15396 from snipe/add_start_end_date_to_users_edit

    Added `start_date` and `end_date` to user bulk edit

commit 22bc088f6f
Author: snipe <snipe@snipe.net>
Date:   Tue Aug 27 07:21:19 2024 +0100

    Added start_date and end_date to user bulk edit

    Signed-off-by: snipe <snipe@snipe.net>

commit d3e8e06638
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 26 14:07:06 2024 +0100

    Add @swift2512 as a contributor

commit c207d48430
Merge: 991e48696 1b933f7ad
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 26 14:01:38 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 1b933f7add
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 26 13:47:17 2024 +0100

    Added s to fa icons

    Signed-off-by: snipe <snipe@snipe.net>

commit 991e48696a
Merge: 797488504 3fe891a05
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 26 10:26:06 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 3fe891a05b
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 26 10:25:27 2024 +0100

    Removed a few more commas

    Signed-off-by: snipe <snipe@snipe.net>

commit 7974885041
Merge: 4ef85bd52 f4c5b712f
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 26 10:24:19 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit f4c5b712f4
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 26 10:24:07 2024 +0100

    Removed colons

    Signed-off-by: snipe <snipe@snipe.net>

commit 4ef85bd529
Merge: 6eab83a85 4c8dc7818
Author: snipe <snipe@snipe.net>
Date:   Fri Aug 23 17:58:08 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 4c8dc7818d
Merge: aa86e07cd 5c43a1f87
Author: snipe <snipe@snipe.net>
Date:   Fri Aug 23 17:57:00 2024 +0100

    Merge pull request #15389 from snipe/added_generate_label_to_button_stack

    Fixed #15388 - Moved generate label  button

commit 5c43a1f87c
Author: snipe <snipe@snipe.net>
Date:   Fri Aug 23 17:54:49 2024 +0100

    Use proper style for buttons

    Signed-off-by: snipe <snipe@snipe.net>

commit d3b265de8e
Author: snipe <snipe@snipe.net>
Date:   Fri Aug 23 17:48:36 2024 +0100

    Moved button on hardware

    Signed-off-by: snipe <snipe@snipe.net>

commit 263151658f
Author: snipe <snipe@snipe.net>
Date:   Fri Aug 23 17:44:09 2024 +0100

    Moved general label  button

    Signed-off-by: snipe <snipe@snipe.net>

commit 6eab83a85a
Merge: cce1f87da aa86e07cd
Author: snipe <snipe@snipe.net>
Date:   Fri Aug 23 15:22:53 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit aa86e07cd2
Author: snipe <snipe@snipe.net>
Date:   Fri Aug 23 15:22:39 2024 +0100

    Fixed #15385 - small icon tweaks

    Signed-off-by: snipe <snipe@snipe.net>

commit cce1f87da6
Merge: b460e8dc8 d92fa5de6
Author: snipe <snipe@snipe.net>
Date:   Fri Aug 23 15:18:30 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit d92fa5de65
Author: snipe <snipe@snipe.net>
Date:   Fri Aug 23 15:17:25 2024 +0100

    fa-fw on settings icon

    Signed-off-by: snipe <snipe@snipe.net>

commit b460e8dc83
Merge: 50cb7e65c c589140ea
Author: snipe <snipe@snipe.net>
Date:   Fri Aug 23 08:42:32 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit c589140ea0
Merge: cc2c8f76d 52894615c
Author: snipe <snipe@snipe.net>
Date:   Fri Aug 23 08:42:04 2024 +0100

    Merge pull request #15383 from snipe/re-adds-checkout-button

    Fixed #15378 - Corrected gate on checkin button on asset view

commit 52894615ce
Author: snipe <snipe@snipe.net>
Date:   Fri Aug 23 08:40:41 2024 +0100

    More specific gate for checkin

    Signed-off-by: snipe <snipe@snipe.net>

commit 8546bbdd65
Author: snipe <snipe@snipe.net>
Date:   Fri Aug 23 08:38:47 2024 +0100

    Fixed gate for checkout button

    Signed-off-by: snipe <snipe@snipe.net>

commit 50cb7e65c9
Merge: 821dd158d cc2c8f76d
Author: snipe <snipe@snipe.net>
Date:   Fri Aug 23 07:32:39 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit cc2c8f76d0
Merge: 1ffa69c43 3957d670d
Author: snipe <snipe@snipe.net>
Date:   Fri Aug 23 07:31:29 2024 +0100

    Merge pull request #15375 from Godmartinz/fix-acceptance-reminder-command

    Fixes the `acceptance-reminder` command

commit 1ffa69c43c
Merge: 78d355f13 f85ebd7ff
Author: snipe <snipe@snipe.net>
Date:   Fri Aug 23 07:28:20 2024 +0100

    Merge pull request #15380 from snipe/fixed/fixed_nav_bracket

    Added pull-right to angle bracket

commit f85ebd7ffd
Author: snipe <snipe@snipe.net>
Date:   Fri Aug 23 07:27:39 2024 +0100

    Added pull-right to angle bracket

    Signed-off-by: snipe <snipe@snipe.net>

commit 78d355f136
Merge: ec0346e4a af0a95be1
Author: snipe <snipe@snipe.net>
Date:   Fri Aug 23 07:20:23 2024 +0100

    Merge pull request #15377 from marcusmoore/fixes/custom-field-values-on-validation-error

    Fixed custom field defaults being prematurely updated

commit ec0346e4a8
Author: snipe <snipe@snipe.net>
Date:   Fri Aug 23 07:19:08 2024 +0100

    Add @setpill as a contributor

commit fc5eb37776
Merge: 833dace2b 1d7853cbf
Author: snipe <snipe@snipe.net>
Date:   Fri Aug 23 07:18:41 2024 +0100

    Merge pull request #15379 from setpill/fix/load-trustproxies-middleware

    fixed #15374: load TrustProxies middleware in Kernel.php

commit 9a73311a99
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Aug 22 17:04:04 2024 -0700

    Fix nested checkboxes being updated as a group

commit aec781e7df
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Aug 22 16:03:30 2024 -0700

    Be a little more explicit

commit 1d7853cbfe
Author: setpill <37372069+setpill@users.noreply.github.com>
Date:   Thu Aug 22 19:45:53 2024 +0200

    fixed #15374: load TrustProxies middleware in Kernel.php

commit 7f3c86165b
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Aug 22 13:58:31 2024 -0700

    Conditionally disable Add default values checkbox

commit 10b45812c4
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Aug 22 13:38:01 2024 -0700

    Improve id for checkboxes and radio buttons

commit c3165717ed
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Aug 22 13:20:04 2024 -0700

    Handle old input

commit d0a351a132
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Aug 22 12:59:03 2024 -0700

    Add comment

commit 68749e7e87
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Aug 22 12:58:35 2024 -0700

    Simplify logic

commit 0abb5637e0
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Aug 22 12:54:54 2024 -0700

    WIP: handle old input

commit af0a95be12
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Aug 21 17:00:32 2024 -0700

    Simplify assertions

commit d67975cb62
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Aug 21 16:59:44 2024 -0700

    Implement fix

commit 663b2fd844
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Aug 21 16:59:38 2024 -0700

    Add test case

commit bcace9d019
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Aug 21 16:54:16 2024 -0700

    Point test to correct endpoint

commit b59bf3e7dc
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Aug 21 16:49:29 2024 -0700

    Add failing test

commit 3957d670d0
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Aug 22 10:04:46 2024 -0700

    fixes send acceptance reminder query

commit 821dd158d1
Merge: 6c9a40268 833dace2b
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 22 15:50:20 2024 +0100

    Merge remote-tracking branch 'origin/develop'

    Signed-off-by: snipe <snipe@snipe.net>

    # Conflicts:
    #	public/css/build/app.css
    #	public/css/build/overrides.css
    #	public/css/dist/all.css
    #	public/js/build/app.js
    #	public/js/dist/all.js
    #	public/mix-manifest.json

commit 833dace2b4
Merge: ec365b080 56e31d230
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 22 15:00:16 2024 +0100

    Merge pull request #15373 from snipe/fixes/#15366_custom_fields

    Fixed #15366 use the non-admin edit encrypted custom fields permissions

commit 56e31d2303
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 22 14:58:09 2024 +0100

    Fixed #15366 - use permission for encrypted custom fields

    Signed-off-by: snipe <snipe@snipe.net>

commit ec365b0804
Merge: ca8864c06 aef0ac68c
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 22 14:49:13 2024 +0100

    Merge pull request #15372 from StarlessNights/update-docker-compose-files

    Fixed #15371: docker-compose files updated.

commit aef0ac68c3
Author: Iisakki Jaakkola <iihaja@utu.fi>
Date:   Thu Aug 22 16:10:00 2024 +0300

    Need to use the long format for redis too in docker-compose file.

commit f12f9a816f
Author: Iisakki Jaakkola <iihaja@utu.fi>
Date:   Thu Aug 22 15:47:12 2024 +0300

    Update the official docker-compose file too while at it.

commit a000d6454f
Author: Iisakki Jaakkola <iihaja@utu.fi>
Date:   Thu Aug 22 15:46:40 2024 +0300

    Fix non-functional development docker-compose file.

commit ca8864c061
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 22 13:28:52 2024 +0100

    Fixed small layout quirks in asset view

    Signed-off-by: snipe <snipe@snipe.net>

commit 423f4f9126
Merge: 456c7d8d9 5fa0c87ab
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 22 13:25:41 2024 +0100

    Merge pull request #14667 from Godmartinz/add_location_to_create_user_via_asset

    Adds location select to the create new user via asset checkout

commit 456c7d8d91
Merge: 54cfe3f6e d4d19569e
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 22 13:20:56 2024 +0100

    Merge pull request #15065 from Godmartinz/explicit_eol_removal_command

    Adds `snipeit:remove-explicit-eols` command

commit 54cfe3f6e6
Merge: 5e0b18104 bb465dbfa
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 22 13:20:10 2024 +0100

    Merge pull request #15156 from uberbrady/re-add-stalebot

    Re-add stalebot-esque github Action

commit 5e0b18104d
Merge: ec0b9b198 8b5d3f7fb
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 22 12:59:20 2024 +0100

    Merge pull request #15369 from snipe/fixes/checkbox_on_restore

    Fixed checkbox layout on modal from #15296

commit 8b5d3f7fbd
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 22 12:56:32 2024 +0100

    Fixed extra closing p tag

    Signed-off-by: snipe <snipe@snipe.net>

commit 744f43676d
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 22 12:53:16 2024 +0100

    Fixed checkbox layout on modal from #15296

    Signed-off-by: snipe <snipe@snipe.net>

commit ec0b9b198f
Merge: 94300d81d 738ef442f
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 22 12:43:07 2024 +0100

    Merge pull request #15296 from uberbrady/expose_restore_sanitize

    Expose the 'sanitize' system for backup restores to the web GUI

commit 6c9a402685
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 22 11:20:52 2024 +0100

    Updated prod assets

    Signed-off-by: snipe <snipe@snipe.net>

commit 1b310f3a24
Merge: c54bff0f8 94300d81d
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 22 11:20:42 2024 +0100

    Merge remote-tracking branch 'origin/develop'

    Signed-off-by: snipe <snipe@snipe.net>

    # Conflicts:
    #	public/css/build/app.css
    #	public/css/build/overrides.css
    #	public/css/dist/all.css
    #	public/mix-manifest.json

commit 94300d81d6
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 22 11:19:32 2024 +0100

    Updated dev assets

    Signed-off-by: snipe <snipe@snipe.net>

commit bc9ea5a2ec
Merge: 4635a6efc 963911f2e
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 22 11:18:06 2024 +0100

    Merge pull request #15352 from Godmartinz/mobile_breakpoint

    Fixed Mobile misalignment of info on Assets and Users view pages

commit 4635a6efc3
Merge: 9608414ea d29b3bfb9
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 22 11:17:49 2024 +0100

    Merge pull request #15360 from snipe/more_print_fixes

    More print fixes for asset view

commit 9608414eae
Merge: 47d8e2f8b 5efddf6f5
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 22 11:06:13 2024 +0100

    Merge pull request #15367 from snipe/fixes/15344_added_freeform_to_country_select2

    Fixed #15344 - make select2 for countries freeform-ish

commit 5efddf6f5b
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 22 11:01:39 2024 +0100

    Allow clear on country dropdown

    Signed-off-by: snipe <snipe@snipe.net>

commit 305dc049a4
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 22 11:01:28 2024 +0100

    Added asterisk help text

    Signed-off-by: snipe <snipe@snipe.net>

commit 3ac0702094
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 22 10:13:22 2024 +0100

    Fixed #15344 - make select2 for countries freeform-ish

    Signed-off-by: snipe <snipe@snipe.net>

commit 47d8e2f8b9
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 22 09:42:05 2024 +0100

    Add @Scarzy as a contributor

commit a2246b9645
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Aug 21 17:00:32 2024 -0700

    Simplify assertions

commit 1d89759706
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Aug 21 16:59:44 2024 -0700

    Implement fix

commit 206f8fe605
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Aug 21 16:59:38 2024 -0700

    Add test case

commit 21d2217619
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Aug 21 16:54:16 2024 -0700

    Point test to correct endpoint

commit 833bcb282f
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Aug 21 16:49:29 2024 -0700

    Add failing test

commit 83dd9ce20e
Merge: 6fdce3c53 a8eb76fd8
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 21 23:15:24 2024 +0100

    Merge pull request #15362 from r-xyz/model-files-api

    Added #9413: AssetModel files endpoints to API

commit a8eb76fd8d
Author: r-xyz <100710244+r-xyz@users.noreply.github.com>
Date:   Wed Aug 21 22:25:41 2024 +0200

    Fixed model files API routes.

commit cd7db5c4a8
Author: r-xyz <100710244+r-xyz@users.noreply.github.com>
Date:   Wed Aug 21 22:24:08 2024 +0200

    Fix some typos in models file handler.

commit da7313bc9d
Author: r-xyz <100710244+r-xyz@users.noreply.github.com>
Date:   Wed Aug 21 20:24:22 2024 +0200

    Fix models files API routes.

commit 4ec361c718
Author: r-xyz <100710244+r-xyz@users.noreply.github.com>
Date:   Wed Aug 21 19:49:51 2024 +0200

    Add AssetModel files endpoints to API

commit 738ef442fd
Author: Brady Wetherington <bwetherington@grokability.com>
Date:   Wed Aug 21 13:16:51 2024 +0100

    Rename .env var to have DB_ prefix for sanitize-by-default setting

commit d29b3bfb9a
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 21 13:06:16 2024 +0100

    Few more hidden-print classes

    Signed-off-by: snipe <snipe@snipe.net>

commit 6fdce3c536
Merge: 01c4fe611 1ab29ec3a
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 21 13:02:50 2024 +0100

    Merge pull request #15358 from r-xyz/rename-docker-startup

    Renamed  docker startup scripts coherently.

commit 912bbf0e32
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 21 13:02:21 2024 +0100

    More print fixes

    Signed-off-by: snipe <snipe@snipe.net>

commit c54bff0f83
Merge: d3f30ced9 01c4fe611
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 21 12:24:13 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 01c4fe6113
Merge: 7e475a078 0fa9f5797
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 21 12:12:23 2024 +0100

    Merge pull request #15359 from uberbrady/improve_windows_upgrade

    Fixed #15190 - Improvements to upgrade.php script to improve Windows experience

commit 0fa9f57971
Author: Brady Wetherington <bwetherington@grokability.com>
Date:   Wed Aug 21 11:53:38 2024 +0100

    Improvements to upgrade.php script to improve Windows experience

commit 1ab29ec3a4
Author: r-xyz <100710244+r-xyz@users.noreply.github.com>
Date:   Wed Aug 21 11:52:09 2024 +0200

    Rename  docker startup scripts coherently.

commit 7e475a0786
Merge: d0acf5b8a 26b3c62ab
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 21 10:41:17 2024 +0100

    Merge pull request #15357 from snipe/tighten_category_view_translations

    Fixed #15330 - Cleaned up category title

commit 26b3c62ab8
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 21 10:29:51 2024 +0100

    Cleaned up category title

    Signed-off-by: snipe <snipe@snipe.net>

commit d3f30ced94
Merge: 973e2e575 d0acf5b8a
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 21 10:13:57 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit d0acf5b8a6
Merge: 09033b19a 74fbc2382
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 21 10:12:58 2024 +0100

    Merge pull request #15356 from snipe/validate_location_parent

    Fixed #15341 - validate parent ID

commit 74fbc23823
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 21 10:09:35 2024 +0100

    Updated tests

    Signed-off-by: snipe <snipe@snipe.net>

commit a23dee52f2
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 21 09:58:47 2024 +0100

    Added tests

    Signed-off-by: snipe <snipe@snipe.net>

commit 4d03f1e110
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 21 09:46:18 2024 +0100

    Fixed #15341 - validate parent ID

    Signed-off-by: snipe <snipe@snipe.net>

commit 963911f2e1
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Aug 21 00:23:10 2024 -0700

    changed order of info stgack

commit 59832126cb
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Tue Aug 20 16:52:51 2024 -0700

    Improve comment

commit 680cce3ee2
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Tue Aug 20 16:42:29 2024 -0700

    Align indents

commit 6c5ec6a16c
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Tue Aug 20 16:41:24 2024 -0700

    Get datepicker working

commit 5d1f98bf93
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Tue Aug 20 15:38:43 2024 -0700

    Simplify by directly wire:modeling

commit 9d484077ae
Author: Godfrey M <godmartinz@gmail.com>
Date:   Tue Aug 20 14:24:37 2024 -0700

    missed a file

commit 9858b0f37f
Author: Godfrey M <godmartinz@gmail.com>
Date:   Tue Aug 20 14:23:55 2024 -0700

    fixes info tab for users and assets

commit 973e2e5756
Merge: 46ed07642 09033b19a
Author: snipe <snipe@snipe.net>
Date:   Tue Aug 20 19:45:53 2024 +0100

    Merge remote-tracking branch 'origin/develop'

    Signed-off-by: snipe <snipe@snipe.net>

    # Conflicts:
    #	config/version.php

commit 09033b19a7
Author: snipe <snipe@snipe.net>
Date:   Tue Aug 20 19:44:13 2024 +0100

    Bumped hash

    Signed-off-by: snipe <snipe@snipe.net>

commit 46ed076428
Merge: d3a555ce9 5fdeb9c41
Author: snipe <snipe@snipe.net>
Date:   Tue Aug 20 19:42:56 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 5fdeb9c413
Merge: 22d373407 6c450d133
Author: snipe <snipe@snipe.net>
Date:   Tue Aug 20 19:42:08 2024 +0100

    Merge pull request #15351 from snipe/localizations/new_translations_2024-08-20

    Updated languages

commit 22d3734075
Merge: d99b306ae eca6b03f4
Author: snipe <snipe@snipe.net>
Date:   Tue Aug 20 19:34:38 2024 +0100

    Merge pull request #15350 from marcusmoore/icon-component-updates

    Fixed icon not rotated and simplified component

commit eca6b03f44
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Tue Aug 20 11:08:53 2024 -0700

    Allow id to be rendered

commit bbdbec7197
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Tue Aug 20 11:00:39 2024 -0700

    Rely on $attributes behavior rendering passed attributes

commit 6c450d1338
Author: snipe <snipe@snipe.net>
Date:   Tue Aug 20 18:18:17 2024 +0100

    Updated languages

    Signed-off-by: snipe <snipe@snipe.net>

commit a8cd1027f3
Author: spencerrlongg <spencer@spencerlong.com>
Date:   Tue Aug 20 11:40:15 2024 -0500

    rm commented code

commit d3a555ce91
Author: snipe <snipe@snipe.net>
Date:   Tue Aug 20 11:49:39 2024 +0100

    Updated assets

    Signed-off-by: snipe <snipe@snipe.net>

commit 0f8e041809
Merge: e8a22f3c5 d99b306ae
Author: snipe <snipe@snipe.net>
Date:   Tue Aug 20 11:49:32 2024 +0100

    Merge remote-tracking branch 'origin/develop'

    Signed-off-by: snipe <snipe@snipe.net>

    # Conflicts:
    #	public/css/build/app.css
    #	public/css/build/overrides.css
    #	public/css/dist/all.css
    #	public/css/dist/bootstrap-table.css
    #	public/js/dist/bootstrap-table.js
    #	public/mix-manifest.json

commit d99b306ae9
Merge: f597d6433 74136761d
Author: snipe <snipe@snipe.net>
Date:   Tue Aug 20 11:46:55 2024 +0100

    Merge pull request #15345 from snipe/add_trim_strings_middleware

    Added TrimStrings middleware

commit 74136761df
Author: snipe <snipe@snipe.net>
Date:   Tue Aug 20 11:45:13 2024 +0100

    Added TrimStrings middleware

    Signed-off-by: snipe <snipe@snipe.net>

commit f597d64339
Merge: 64bed01a9 0072f1500
Author: snipe <snipe@snipe.net>
Date:   Tue Aug 20 10:17:26 2024 +0100

    Merge pull request #15342 from snipe/snyk/bs-tables

    [Snyk] Upgrade bootstrap-table from 1.23.0 to 1.23.2

commit 0072f1500e
Author: snipe <snipe@snipe.net>
Date:   Tue Aug 20 10:16:27 2024 +0100

    [Snyk] Upgrade bootstrap-table from 1.23.0 to 1.23.2

    Signed-off-by: snipe <snipe@snipe.net>

commit 64bed01a91
Merge: f8c72fb0a f6319e11e
Author: snipe <snipe@snipe.net>
Date:   Tue Aug 20 10:13:43 2024 +0100

    Merge pull request #15327 from snipe/update_button_style

    Update icons to use blade components, standardize button colors and format

commit f6319e11e7
Author: snipe <snipe@snipe.net>
Date:   Tue Aug 20 10:11:27 2024 +0100

    Added fa-fw to sidebar elements

    Signed-off-by: snipe <snipe@snipe.net>

commit 5d9f988df3
Author: snipe <snipe@snipe.net>
Date:   Tue Aug 20 10:01:49 2024 +0100

    Added fw class to topnav icons

    Signed-off-by: snipe <snipe@snipe.net>

commit f8c72fb0ac
Merge: 886514a25 fa765667f
Author: snipe <snipe@snipe.net>
Date:   Tue Aug 20 09:57:03 2024 +0100

    Merge pull request #15112 from marcusmoore/livewire-importer-improvements

    Improved handling attempted access of deleted files in importer

commit 8e1111c681
Merge: 697595d96 886514a25
Author: akemidx <kojotek.dx@gmail.com>
Date:   Mon Aug 19 19:33:44 2024 -0400

    Merge remote-tracking branch 'upstream/develop' into eol_date_range_for_reports

commit 886514a25f
Merge: cb40a82e7 434bdcd6d
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 19 22:46:08 2024 +0100

    Merge pull request #15336 from marcusmoore/fixes/remove-displayed-parentheses

    Fixed `)` being added to expected asset checkin report email header

commit fa765667f2
Merge: 94d8a547b cb40a82e7
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Aug 19 14:41:58 2024 -0700

    Merge branch 'develop' into livewire-importer-improvements

commit 434bdcd6d4
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Aug 19 14:31:47 2024 -0700

    Add missing parentheses to conditional

commit be5f3f38f8
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 19 14:48:12 2024 +0100

    Settings pages

    Signed-off-by: snipe <snipe@snipe.net>

commit 08c3a25b39
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 19 14:16:57 2024 +0100

    Little more padding

    Signed-off-by: snipe <snipe@snipe.net>

commit 34cd4b6244
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 19 14:15:36 2024 +0100

    Added links to apple/google maps

    Signed-off-by: snipe <snipe@snipe.net>

commit d89c8682be
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 19 13:46:31 2024 +0100

    Reversed location button ordering

    Signed-off-by: snipe <snipe@snipe.net>

commit 6f024849e9
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 19 13:39:24 2024 +0100

    Few more

    Signed-off-by: snipe <snipe@snipe.net>

commit e048f0955f
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 19 13:27:21 2024 +0100

    More icons

    Signed-off-by: snipe <snipe@snipe.net>

commit 479b2b4fd3
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 19 13:23:08 2024 +0100

    More icons

    Signed-off-by: snipe <snipe@snipe.net>

commit 84f14a05bd
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 19 13:20:19 2024 +0100

    Fixed logging for asset model restore

    Signed-off-by: snipe <snipe@snipe.net>

commit 8d52fa51b1
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 19 13:20:06 2024 +0100

    Fixed suppliers buttons

    Signed-off-by: snipe <snipe@snipe.net>

commit 229d8b9bf5
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 19 13:19:59 2024 +0100

    Added location restore

    Signed-off-by: snipe <snipe@snipe.net>

commit eb8d43a804
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 19 12:32:44 2024 +0100

    Updated buttons on models

    Signed-off-by: snipe <snipe@snipe.net>

commit f82266fade
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 19 11:58:31 2024 +0100

    Cleaned up presenters

    Signed-off-by: snipe <snipe@snipe.net>

commit b4b6f7a35f
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 19 11:58:21 2024 +0100

    Added css-consumable to overrides for table headers

    Signed-off-by: snipe <snipe@snipe.net>

commit 0bc995b87f
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 19 11:58:05 2024 +0100

    Updated more icons

    Signed-off-by: snipe <snipe@snipe.net>

commit 59725f2031
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 19 11:57:40 2024 +0100

    Removed extra debugging in test

    Signed-off-by: snipe <snipe@snipe.net>

commit 00bc9ac806
Author: snipe <snipe@snipe.net>
Date:   Sun Aug 18 22:39:14 2024 +0100

    Fixed spacing

    Signed-off-by: snipe <snipe@snipe.net>

commit f200960a57
Author: snipe <snipe@snipe.net>
Date:   Sun Aug 18 22:26:57 2024 +0100

    Aaaand more

    Signed-off-by: snipe <snipe@snipe.net>

commit c700127f1a
Author: snipe <snipe@snipe.net>
Date:   Sun Aug 18 22:09:00 2024 +0100

    Updated user view

    Signed-off-by: snipe <snipe@snipe.net>

commit ae2f9571b4
Author: snipe <snipe@snipe.net>
Date:   Sun Aug 18 21:57:37 2024 +0100

    And still more

    Signed-off-by: snipe <snipe@snipe.net>

commit a77dcad336
Author: snipe <snipe@snipe.net>
Date:   Sun Aug 18 20:30:53 2024 +0100

    More links

    Signed-off-by: snipe <snipe@snipe.net>

commit 7ace9324b4
Author: snipe <snipe@snipe.net>
Date:   Sun Aug 18 20:30:22 2024 +0100

    Added padlock sound

    Signed-off-by: snipe <snipe@snipe.net>

commit d2e889e927
Author: snipe <snipe@snipe.net>
Date:   Sun Aug 18 19:21:59 2024 +0100

    Still more

    Signed-off-by: snipe <snipe@snipe.net>

commit 803bdb457c
Author: snipe <snipe@snipe.net>
Date:   Sun Aug 18 18:48:19 2024 +0100

    Added calendar

    Signed-off-by: snipe <snipe@snipe.net>

commit 7c9b1f6e38
Author: snipe <snipe@snipe.net>
Date:   Sun Aug 18 18:39:22 2024 +0100

    Added the plus icon

    Signed-off-by: snipe <snipe@snipe.net>

commit d545537a43
Author: snipe <snipe@snipe.net>
Date:   Sun Aug 18 18:34:13 2024 +0100

    More icons

    Signed-off-by: snipe <snipe@snipe.net>

commit 4d8904938d
Author: snipe <snipe@snipe.net>
Date:   Sun Aug 18 18:24:26 2024 +0100

    Added calendar icon for datepickers

    Signed-off-by: snipe <snipe@snipe.net>

commit 0c09f2b2c0
Author: snipe <snipe@snipe.net>
Date:   Sun Aug 18 18:13:49 2024 +0100

    Moar icon replacement

    Signed-off-by: snipe <snipe@snipe.net>

commit bffba02511
Author: snipe <snipe@snipe.net>
Date:   Sun Aug 18 17:26:44 2024 +0100

    Updated icons

    Signed-off-by: snipe <snipe@snipe.net>

commit 901f4df7ee
Author: snipe <snipe@snipe.net>
Date:   Sun Aug 18 17:03:36 2024 +0100

    Added more icons

    Signed-off-by: snipe <snipe@snipe.net>

commit 9337cba340
Author: snipe <snipe@snipe.net>
Date:   Sun Aug 18 15:53:58 2024 +0100

    Added download

    Signed-off-by: snipe <snipe@snipe.net>

commit 2b0c67c263
Author: snipe <snipe@snipe.net>
Date:   Sun Aug 18 15:51:00 2024 +0100

    Load the icon helper

    Signed-off-by: snipe <snipe@snipe.net>

commit da71f031f5
Author: snipe <snipe@snipe.net>
Date:   Sun Aug 18 15:48:24 2024 +0100

    Use icon in hardware view

    Signed-off-by: snipe <snipe@snipe.net>

commit d2e585baa7
Author: snipe <snipe@snipe.net>
Date:   Sun Aug 18 15:47:45 2024 +0100

    Added icon blade

    Signed-off-by: snipe <snipe@snipe.net>

commit a102c085df
Author: snipe <snipe@snipe.net>
Date:   Sun Aug 18 15:47:37 2024 +0100

    Added icon helper

    Signed-off-by: snipe <snipe@snipe.net>

commit e8a22f3c5b
Merge: d843cf8dc cb40a82e7
Author: snipe <snipe@snipe.net>
Date:   Sun Aug 18 04:55:04 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit cb40a82e79
Merge: 7e6ff3cbe 4253acad4
Author: snipe <snipe@snipe.net>
Date:   Sun Aug 18 04:54:23 2024 +0100

    Merge pull request #15324 from snipe/jerk_prevention

    Prevent passing an array as login

commit 4253acad4c
Author: snipe <snipe@snipe.net>
Date:   Sun Aug 18 04:51:36 2024 +0100

    Prevent passing an array as login

    Signed-off-by: snipe <snipe@snipe.net>

commit d843cf8dcc
Merge: 1013dcae6 7e6ff3cbe
Author: snipe <snipe@snipe.net>
Date:   Sat Aug 17 00:52:10 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 1013dcae61
Merge: c30c649aa e7ef3bf51
Author: snipe <snipe@snipe.net>
Date:   Sat Aug 17 00:38:44 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 70e5e0f9df
Author: spencerrlongg <spencer@spencerlong.com>
Date:   Fri Aug 16 12:52:06 2024 -0500

    get rid of dd

commit dec4691c73
Author: spencerrlongg <spencer@spencerlong.com>
Date:   Fri Aug 16 12:50:09 2024 -0500

    should be good to go now

commit c30c649aaa
Merge: bb1385369 ad6d09b6a
Author: snipe <snipe@snipe.net>
Date:   Fri Aug 16 16:44:02 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit bb1385369c
Merge: c1caf6088 43b338d61
Author: snipe <snipe@snipe.net>
Date:   Fri Aug 16 16:18:00 2024 +0100

    Merge remote-tracking branch 'origin/develop'

    Signed-off-by: snipe <snipe@snipe.net>

    # Conflicts:
    #	public/css/build/app.css
    #	public/css/build/overrides.css
    #	public/css/dist/all.css
    #	public/mix-manifest.json

commit c1caf6088e
Author: snipe <snipe@snipe.net>
Date:   Fri Aug 16 13:12:13 2024 +0100

    Prod assets

    Signed-off-by: snipe <snipe@snipe.net>

commit 12dfe71ea8
Merge: ca8926871 ea2b1b074
Author: snipe <snipe@snipe.net>
Date:   Fri Aug 16 12:48:42 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit ca89268716
Merge: ec5731353 3167ee91d
Author: snipe <snipe@snipe.net>
Date:   Fri Aug 16 11:02:56 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 94d8a547b8
Merge: 6521c0252 b39a7c6f0
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Aug 15 13:47:49 2024 -0700

    Merge branch 'develop' into livewire-importer-improvements

commit 43b109fac0
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Aug 15 13:20:22 2024 -0700

    Use cached values for textarea and radio input

commit 75c1e7658f
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Aug 15 10:43:41 2024 -0700

    Improve method name

commit e7c9c799bb
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Aug 15 10:40:23 2024 -0700

    Add wire:keys

commit 6ab976f353
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Aug 15 10:32:33 2024 -0700

    Use cached values for text input

commit ec5731353a
Merge: 3283704fe b39a7c6f0
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 15 15:53:52 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 3283704fe8
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 15 12:25:08 2024 +0100

    Updated assets

    Signed-off-by: snipe <snipe@snipe.net>

commit 540df32046
Merge: 85486fa58 594f50664
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 15 12:24:59 2024 +0100

    Merge remote-tracking branch 'origin/develop'

    Signed-off-by: snipe <snipe@snipe.net>

    # Conflicts:
    #	public/js/build/app.js
    #	public/js/dist/all.js
    #	public/mix-manifest.json

commit 85486fa58c
Merge: 3618df2ec 10dc1f136
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 15 10:53:54 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 3618df2ec5
Merge: a201f22fd 8f7bce7aa
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 15 10:44:39 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit a201f22fdb
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 15 10:36:12 2024 +0100

    Bumped version

    Signed-off-by: snipe <snipe@snipe.net>

commit 6070d530cf
Merge: 6c0cf9447 4d66f7c93
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 15 10:35:33 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 6c0cf94473
Merge: bf4b91516 381003eea
Author: snipe <snipe@snipe.net>
Date:   Thu Aug 15 10:28:08 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 9622e05cf5
Author: spencerrlongg <spencer@spencerlong.com>
Date:   Wed Aug 14 18:41:06 2024 -0500

    correct api test

commit afaf53cdfc
Author: spencerrlongg <spencer@spencerlong.com>
Date:   Wed Aug 14 18:14:21 2024 -0500

    failing ui test

commit f031309f8f
Author: spencerrlongg <spencer@spencerlong.com>
Date:   Wed Aug 14 16:09:15 2024 -0500

    set up api controller for route/model binding

commit 20ec420ba3
Author: spencerrlongg <spencer@spencerlong.com>
Date:   Wed Aug 14 13:53:29 2024 -0500

    not quite done, api side needs some work

commit ab63a19aff
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Aug 14 11:01:51 2024 -0700

    Initialize concept of cached values

commit a70b94e707
Merge: 120cfd13c 3e2945709
Author: spencerrlongg <spencer@spencerlong.com>
Date:   Wed Aug 14 11:36:19 2024 -0500

    Merge branch 'refs/heads/develop' into bug/sc-26584

commit 008bf036b5
Author: Brady Wetherington <bwetherington@grokability.com>
Date:   Wed Aug 14 16:09:34 2024 +0100

    Got rid of weird namespace declaration and commented-out data-toggle line

commit cc5ad456e6
Author: Brady Wetherington <bwetherington@grokability.com>
Date:   Wed Aug 14 15:59:21 2024 +0100

    Expose the 'sanitize' system for backup restores to the web GUI

commit bf4b915168
Merge: 0a9c2e354 0f1e5181a
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 14 10:45:13 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 0a9c2e354f
Merge: 47f1b3b14 e54400718
Author: snipe <snipe@snipe.net>
Date:   Wed Aug 14 10:02:43 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 038e86954b
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Tue Aug 13 17:30:53 2024 -0700

    Improve property name

commit f6c1642bf2
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Tue Aug 13 17:01:35 2024 -0700

    Use computed fields in CustomFieldSetDefaultValuesForModel component

commit 120cfd13c5
Author: spencerrlongg <spencer@spencerlong.com>
Date:   Tue Aug 13 14:07:40 2024 -0500

    translation

commit 09f2739298
Author: spencerrlongg <spencer@spencerlong.com>
Date:   Tue Aug 13 13:45:41 2024 -0500

    works, un-reassignable licenses are an issue

commit 47f1b3b14e
Merge: 198b76ebc 3044af941
Author: snipe <snipe@snipe.net>
Date:   Tue Aug 13 16:48:06 2024 +0100

    Merge remote-tracking branch 'origin/develop'

    Signed-off-by: snipe <snipe@snipe.net>

    # Conflicts:
    #	public/css/build/app.css
    #	public/css/build/overrides.css
    #	public/css/dist/all.css
    #	public/mix-manifest.json

commit 198b76ebc2
Merge: 5546f9676 6e84c29ce
Author: snipe <snipe@snipe.net>
Date:   Tue Aug 13 15:47:00 2024 +0100

    Merge remote-tracking branch 'origin/develop'

    Signed-off-by: snipe <snipe@snipe.net>

    # Conflicts:
    #	public/css/build/app.css
    #	public/css/build/overrides.css
    #	public/css/dist/all.css
    #	public/mix-manifest.json

commit 5546f9676a
Merge: 46caa478d 9e73eaf95
Author: snipe <snipe@snipe.net>
Date:   Tue Aug 13 13:51:33 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit ec863df007
Author: spencerrlongg <spencer@spencerlong.com>
Date:   Mon Aug 12 16:58:53 2024 -0500

    rm conditional that might be unnecessary

commit cc3b8e0681
Author: spencerrlongg <spencer@spencerlong.com>
Date:   Mon Aug 12 16:58:21 2024 -0500

    this should more or less work, but i need to determine if this is the best way

commit ff145abbe7
Author: spencerrlongg <spencer@spencerlong.com>
Date:   Mon Aug 12 16:13:03 2024 -0500

    use array for eager loading, makes ide prettier

commit 46caa478d2
Merge: 4d8569e75 e6106aa7c
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 12 20:47:45 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 4d8569e754
Merge: 4dc57f95e c9f8a84d4
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 12 18:01:21 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 4dc57f95e2
Merge: 316ee6f81 9d354ca65
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 12 16:38:23 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 316ee6f810
Merge: 509cc812e 3f2139349
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 12 16:30:53 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 509cc812ea
Merge: d5f66bc0d e7fb29fce
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 12 15:58:40 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit d5f66bc0dd
Merge: 1e213c31e ce5be8ac2
Author: snipe <snipe@snipe.net>
Date:   Mon Aug 12 10:10:59 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 1e213c31ef
Merge: 91874dfe0 1777bb4b9
Author: snipe <snipe@snipe.net>
Date:   Sun Aug 11 10:26:16 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 91874dfe0b
Merge: 0e6eda5e8 5c6c655cd
Author: snipe <snipe@snipe.net>
Date:   Sat Aug 10 19:37:37 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 0e6eda5e8a
Merge: 24560b936 60eb60215
Author: snipe <snipe@snipe.net>
Date:   Sat Aug 10 18:29:41 2024 +0100

    Merge remote-tracking branch 'origin/develop'

commit 24560b9362
Author: snipe <snipe@snipe.net>
Date:   Sat Aug 10 18:24:49 2024 +0100

    Updated prod assets

    Signed-off-by: snipe <snipe@snipe.net>

commit 6521c02526
Merge: 8d1cc22c5 9350a2018
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Aug 7 15:20:39 2024 -0700

    Merge branch 'develop' into livewire-importer-improvements

    # Conflicts:
    #	resources/views/livewire/importer.blade.php

commit bb465dbfaa
Author: Brady Wetherington <bwetherington@grokability.com>
Date:   Wed Jul 24 15:09:23 2024 +0100

    Cut down run number to 100 from 1000

commit 8cbcc237c0
Author: Brady Wetherington <bwetherington@grokability.com>
Date:   Wed Jul 24 13:27:31 2024 +0100

    Cleanup of Stale workflow for GH - set to debug-mode to start

commit 97e3af8fc9
Author: Brady Wetherington <bwetherington@grokability.com>
Date:   Sat Jun 29 00:59:47 2024 +0100

    WIP on new GitHub-backed stalebot settings

commit 914e29210a
Author: Brady Wetherington <bwetherington@grokability.com>
Date:   Wed Jun 26 18:53:01 2024 +0100

    Initial rough stab at re-implementing stalebot

commit 8d1cc22c58
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Jul 18 12:00:01 2024 -0700

    Turn on legacy binding since other components still use it

commit 7685de45f2
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Jul 17 17:12:14 2024 -0700

    Turn off legacy binding

commit 199e68ff29
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Jul 17 17:10:12 2024 -0700

    Simplify computed propery

commit 81bffccf01
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Jul 17 16:28:26 2024 -0700

    Use better error message

commit cfca1514c0
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Jul 17 16:22:44 2024 -0700

    Swap file_id for activeFileId

commit b4ed01243b
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Jul 17 13:40:41 2024 -0700

    Add more details

commit 3772a21a51
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Jul 17 13:37:24 2024 -0700

    Move comment up

commit 04b6cb763f
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Wed Jul 17 10:58:48 2024 -0700

    Add todo

commit dd32341502
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Tue Jul 16 17:21:18 2024 -0700

    Display message if attempting to delete non-existent file

commit f58e3114a2
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Tue Jul 16 17:17:45 2024 -0700

    Simplify destroy method and update list

commit eba494ad8c
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Tue Jul 16 17:03:42 2024 -0700

    Make $activeFile a computed property

commit 7e89b58746
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Tue Jul 16 16:08:42 2024 -0700

    Move files to computed property

commit b7744105a0
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Tue Jul 16 14:20:41 2024 -0700

    Migrate import type to component

commit 69263f0e5b
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Tue Jul 16 13:30:29 2024 -0700

    Migrate header row to component

commit 017530ba4b
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Tue Jul 16 12:02:50 2024 -0700

    Make updating hook more specific

commit c8dad528a8
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Jul 15 16:15:58 2024 -0700

    Migrate a couple items out of mount

commit 256e989ba1
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Mon Jul 15 15:49:18 2024 -0700

    Add test for importer

commit 9793016603
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Jul 11 13:32:16 2024 -0700

    Remove unneeded AuthorizesRequests

commit 9e06f2d17f
Author: Marcus Moore <contact@marcusmoore.io>
Date:   Thu Jul 11 13:22:10 2024 -0700

    Remove commented code

commit d4d19569ee
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Jul 11 10:52:47 2024 -0700

    adds execution timer

commit 43c7504f89
Author: Godfrey M <godmartinz@gmail.com>
Date:   Thu Jul 11 10:03:51 2024 -0700

    adds an all option, adds help context for all, seperates logic

commit 1fa6a763bc
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Jul 10 11:09:57 2024 -0700

    updated description

commit 726308bfd5
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Jul 10 10:58:45 2024 -0700

    removed typo

commit 22ddb695f2
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Jul 10 10:57:47 2024 -0700

    better description

commit 09b2feac54
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Jul 10 10:56:44 2024 -0700

    updates assets with selected model to inherit asset model eol

commit 57e1df86c8
Author: Godfrey M <godmartinz@gmail.com>
Date:   Wed Jul 10 10:21:24 2024 -0700

    finds model and collects assets with such model

commit 3ea5d4ee40
Author: Robert-Azelis <82208283+Robert-Azelis@users.noreply.github.com>
Date:   Thu May 2 12:55:17 2024 +0200

    Update BulkAssetsController.php

    Fix for bulk updarte of purchase date to calculate new EOL

commit 5fa0c87ab0
Author: Godfrey M <godmartinz@gmail.com>
Date:   Tue Apr 30 12:02:11 2024 -0700

    null debugbar

commit 75aa01791a
Author: Godfrey M <godmartinz@gmail.com>
Date:   Tue Apr 30 11:54:33 2024 -0700

    adds location select to the create new user vice asset checkout

commit 697595d963
Merge: 0bdd8a591 9502525a4
Author: akemidx <116301219+akemidx@users.noreply.github.com>
Date:   Tue Nov 21 16:07:26 2023 -0500

    Merge branch 'develop' into eol_date_range_for_reports

commit 0bdd8a5917
Author: akemidx <kojotek.dx@gmail.com>
Date:   Wed Aug 2 16:40:38 2023 -0400

    fixing key names

commit e35dd2daa1
Author: akemidx <kojotek.dx@gmail.com>
Date:   Wed Jul 26 17:45:18 2023 -0400

    asset_eol_date stuff

commit f71b69a739
Author: akemidx <kojotek.dx@gmail.com>
Date:   Wed Jul 26 17:31:06 2023 -0400

    adding eol fields

commit 499a3debcd
Author: akemidx <kojotek.dx@gmail.com>
Date:   Tue Jul 11 14:08:55 2023 -0400

    this WILL break. i'm back to site not found which is something missing. otherwise the columns are either blank or another value like expected checkin i was using to test a bit

Signed-off-by: snipe <snipe@snipe.net>
2024-11-12 15:39:22 +00:00
snipe 9eed6cde43 Merge remote-tracking branch 'origin/develop' 2024-11-11 14:04:56 +00:00
snipe 6bec573956 Merge pull request #15794 from snipe/check_for_file_on_asset_acceptance
Check that the file exists before trying to download stored EULA
2024-11-11 13:54:09 +00:00
snipe 1fc5bb54e1 Check that the file exists before trying to download
Signed-off-by: snipe <snipe@snipe.net>
2024-11-11 13:50:53 +00:00
snipe 5d581752af Merge remote-tracking branch 'origin/develop' 2024-11-10 18:05:52 +00:00
snipe b6ad69fac2 Merge pull request #15793 from snipe/allow_eol_explicit
Allow user to specify null for calculation or explicit on bulk edit
2024-11-10 18:05:20 +00:00
snipe 47b2cdb846 Allow user to specify null for calculation or explicit on bulk edit
Signed-off-by: snipe <snipe@snipe.net>
2024-11-10 18:04:13 +00:00
snipe 7596717a15 Merge remote-tracking branch 'origin/develop' 2024-11-10 17:49:30 +00:00
snipe 357ef7e375 Merge pull request #15792 from snipe/edit_eol_from_bulk
Added EOL date to bulk asset edit
2024-11-10 17:48:25 +00:00
snipe 6928b1b273 Added eol date to bulk asset edit
Signed-off-by: snipe <snipe@snipe.net>
2024-11-10 17:47:10 +00:00
snipe c6b9556f60 Merge remote-tracking branch 'origin/develop' 2024-11-08 10:28:26 +00:00
snipe 000f3171e3 Upgrade jspdf-autotable from 3.8.3 to 3.8.4 #15786
Signed-off-by: snipe <snipe@snipe.net>
2024-11-08 10:28:01 +00:00
Marcus Moore 4bb19152c4 Move test 2024-11-07 17:01:47 -08:00
Marcus Moore dc0b8c7572 Inline route helpers in tests 2024-11-07 16:54:55 -08:00
Marcus Moore b8265d54bb Improve comment 2024-11-07 16:42:55 -08:00
Marcus Moore 0e3efdfe87 Add string to name validation 2024-11-07 16:40:54 -08:00
Marcus Moore 363ec841d1 Re-introduce soft deletes 2024-11-07 16:40:37 -08:00
Marcus Moore f8d0ddb3f7 Improve template name input 2024-11-07 14:17:20 -08:00
Marcus Moore 4aa5961860 Update page titles 2024-11-07 12:13:20 -08:00
Godfrey M ca4bafc04a adds a dark background to fieldsets, fixes right border 2024-11-07 11:34:12 -08:00
Marcus Moore 7862b74e99 Inline fields when updating 2024-11-07 11:03:03 -08:00
Marcus Moore c5710b858e Add test validation test for update method and remove name uniqueness constraint 2024-11-07 11:02:10 -08:00
snipe d489527e6d Merge remote-tracking branch 'origin/develop' 2024-11-07 13:19:52 +00:00
snipe 5ef3183a52 Merge pull request #15783 from uberbrady/improve_user_and_location_manager_indexes
Improved indexes on manager_id for locations and users, including del…
2024-11-07 11:44:06 +00:00
Brady Wetherington 050831868e Improved indexes on manager_id for locations and users, including deleted_at 2024-11-07 11:39:27 +00:00
Tobias Regnery 2db70379a6 Fix Indentation in UsersController
The indentation in the update-function of the UsersController is partially wrong.
Fix this to avoid confusion.
2024-11-07 09:22:42 +01:00
snipe aa080945f6 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	public/css/dist/all.css
#	public/css/dist/bootstrap-table.css
#	public/js/dist/bootstrap-table.js
#	public/mix-manifest.json
2024-11-06 21:26:21 +00:00
snipe a41529dbc4 Merge pull request #15780 from uberbrady/add_manager_indexes
Add new indexes to locations and users for faster manager lookups
2024-11-06 21:22:45 +00:00
Brady Wetherington 4fcf5ac7da Add new indexes to locations and users for faster manager lookups 2024-11-06 21:19:41 +00:00
Marcus Moore 8873137ed0 Scaffold updating template name 2024-11-06 12:29:31 -08:00
Marcus Moore 37d792352d Update page title dynamically 2024-11-06 12:11:35 -08:00
snipe aa168fcb5b Updated BS table to 1.23.5
Signed-off-by: snipe <snipe@snipe.net>
2024-11-06 18:41:52 +00:00
snipe 9c1c93ad52 Merge pull request #15774 from marcusmoore/feature/sc-27350
Added Checkout ID column to user accessory table
2024-11-06 18:40:35 +00:00
Marcus Moore ad99b8b456 Use generic ID translation 2024-11-06 10:37:31 -08:00
snipe b96a312539 Merge pull request #15779 from ubc-cpsc/bugfix/CVE-2024-50345
Fixes CVE-2024-50342, CVE-2024-50345, CVE-2024-51736
2024-11-06 18:29:22 +00:00
Joël Pittet bab1e58ea4 symfony/http-client CVE-2024-50342, symfony/http-foundation CVE-2024-50345, symfony/process CVE-2024-51736 2024-11-06 09:46:11 -08:00
snipe 9ce1e78c5c Merge remote-tracking branch 'origin/develop' 2024-11-06 14:16:09 +00:00
snipe 654f67b6ac Updated webpack
Signed-off-by: snipe <snipe@snipe.net>
2024-11-06 14:05:42 +00:00
snipe 3965bcd7c1 Merge pull request #15773 from Godmartinz/Fix_failing_failing_tests
Fixed notifications for licenses and asset to asset checkoutables
2024-11-06 14:02:44 +00:00
NebelKreis 52e4414bc5 Feature: Added asset ID option to 2D barcode in label generation 2024-11-05 13:41:34 +01:00
NebelKreis f96b7c5056 Feature: Added data type context for select options with "URL:" and "Data:" labels, including translations 2024-11-05 13:40:33 +01:00
akemidx 82c38a8b18 or statement for if/else 2024-11-04 20:43:18 -05:00
akemidx 2f5e468b3c this fixes the assigned to piece 2024-11-04 19:48:34 -05:00
Godfrey M 2362cb5e52 refactor to getNotifiables 2024-11-04 16:32:46 -08:00
Marcus Moore e7cb4a75eb Show accessory checkout id in user accessory table 2024-11-04 15:56:53 -08:00
Godfrey M 93494ac554 put dataprovider back in for tests 2024-11-04 15:17:58 -08:00
Godfrey M 0d707a1851 fixes notifications for licenses and asset to asset checkouables 2024-11-04 15:13:10 -08:00
Marcus Moore 4daa8e7c63 Indenting 2024-11-04 12:49:44 -08:00
Marcus Moore 41f25341fd Populate select with selected template 2024-11-04 12:32:05 -08:00
snipe 287f4addf0 Merge pull request #15771 from snipe/revert-15744-chore/action-tests-debugging
Revert "Added the display of logs when tests fail in GitHub Actions"
2024-11-04 20:06:24 +00:00
Marcus Moore 2e96d478f1 Revert "Added the display of logs when tests fail in GitHub Actions" 2024-11-04 11:04:17 -08:00
Tobias Regnery 651d1c735b Another slightly less ugly way for backward compatibility
Instead of using a constructor, add a special check in the boot-method for locations.
This seems to fit better in the system and does hopefully not break the existing tests.

Signed-off-by: Tobias Regnery <tobias.regnery@gmail.com>
2024-11-04 10:03:38 +01:00
Tobias Regnery 1318dc6111 Add a backward compatibility setting for locations with companies
Now that locations have a company_id they get restricted to the users company with FullMultipleCompanySupport.
This breaks backward compatibility, because before everyone can handle locations without restrictions.
Add a setting right below FullMultipleCompanySupport so that everyone can switch to the desired behaviour.
The default is off and the existing behaviour is preserved.
2024-11-04 10:03:38 +01:00
Tobias Regnery 1ccbf8942c Add ability to tie locations to companies
Locations are the last big part of the application that can't be tied to companies.
This can be a problem with FullMultipleCompanySupport, because you can't restrict the visibility of locations to the company of the users.

In order to change this, add a company_id to the locations table and wire everything up in the views and controllers.
Aditionally add a new formatter to filter the locations to a specific company, like it is done for assets.

Locations are properly scoped to the users company if FullMultipleCompanySupport is enabled.
If a parent location of a location has a different company than the user, the location does not show up.
2024-11-04 10:03:37 +01:00
snipe f32ebdc7ac Merge pull request #15765 from marcusmoore/chore/add-missing-livewire-file
Added missing Livewire file
2024-10-31 22:39:58 +00:00
Marcus Moore d6c7dc8e1c Add missing livewire file 2024-10-31 15:37:01 -07:00
Godfrey M de77eda33d another line indent 2024-10-31 14:38:32 -07:00
Godfrey M ee58fcc898 moved lines in for labels 2024-10-31 14:37:08 -07:00
Godfrey M ae3cb7b37b adds migration to update new with old if blank and remove old barcod variables 2024-10-31 14:35:13 -07:00
snipe 95dba6c426 Merge remote-tracking branch 'origin/develop' 2024-10-31 21:06:59 +00:00
snipe 5897d37fcf Merge pull request #15763 from Godmartinz/no_to_email_check
Fixed emails not being send if target has no email or if not instance of User. Cc_emails will still be sent.
2024-10-31 20:54:01 +00:00
Godfrey M 21a27dcac1 fixed conflicts 2024-10-31 12:55:46 -07:00
Godfrey M 3791380764 remove unused uses 2024-10-31 12:52:47 -07:00
Godfrey M 7a0f79ecd2 remove test route 2024-10-31 12:51:22 -07:00
Godfrey M 97a449e80e removes instanceof User check 2024-10-31 12:50:13 -07:00
Godfrey M e65942064e send emails even if target has no email 2024-10-31 12:45:29 -07:00
Marcus Moore 5f83cb6a14 Use route model binding 2024-10-31 12:34:06 -07:00
Marcus Moore ae24b73b32 Fix action_type from "created" to" create" 2024-10-31 12:19:41 -07:00
Marcus Moore 4aedbb52fa Implement activity logging transformer tests 2024-10-31 12:15:05 -07:00
snipe 49de07045a Merge pull request #15731 from Godmartinz/refacto_ms_teams_notifs
Fixed MS Team Notifications to utilize workflows after deprecation
2024-10-31 17:53:17 +00:00
snipe 7e996c40f5 Merge pull request #15758 from snipe/jerm/fix-deprecation-warning
Fix ${var} deprecation warning in License model
2024-10-31 02:51:42 +00:00
Jeremy Price 69e74bbdd3 Fix ${var} deprecation warning in License model
When upgrading to php8.3 i started getting deprecation warning about
using ${var} instead of {$var} in 2 places in License.php

PHP Deprecated:  Using ${var} in strings is deprecated, use {$var} instead in /var/www/snipe-it/app/Models/License.php on line 187
PHP Deprecated:  Using ${var} in strings is deprecated, use {$var} instead in /var/www/snipe-it/app/Models/License.php on line 219

This simple fix switches the offending statements to {$var} syntax.
2024-10-30 19:43:54 -07:00
Marcus Moore 20dab4d89d Simplify tests 2024-10-30 16:50:55 -07:00
Marcus Moore e871481042 Add group 2024-10-30 16:48:42 -07:00
akemidx f10807661d fixing bulk delete table 2024-10-30 19:26:52 -04:00
Marcus Moore d727b03d95 Implement activity log test 2024-10-30 14:25:07 -07:00
Marcus Moore 0cc3031864 Implement deleted log 2024-10-30 14:05:27 -07:00
Marcus Moore 59e6874a4a Scaffold test cases 2024-10-30 13:07:51 -07:00
snipe 73e8f160cf Merge pull request #15756 from Godmartinz/cc-email-array
changes `admin_cc_email` validation to allow an array
2024-10-30 19:29:09 +00:00
Marcus Moore 930ef3fd11 Work on tests for activity logging 2024-10-30 12:22:59 -07:00
Godfrey M bd23772fe9 changes cc_email validation to allow array 2024-10-30 11:42:15 -07:00
Godfrey M 73772a0138 change button text 2024-10-30 11:12:31 -07:00
Godfrey M b26cae372c merged in develop 2024-10-30 10:40:23 -07:00
Godfrey M d6ba303f39 Merge branch 'develop' into refacto_ms_teams_notifs
# Conflicts:
#	app/Listeners/CheckoutableListener.php
2024-10-30 10:27:45 -07:00
snipe 931ab103c1 Merge remote-tracking branch 'origin/develop' 2024-10-30 13:21:25 +00:00
snipe f68df1fa06 Made type searchable in action logs
Signed-off-by: snipe <snipe@snipe.net>
2024-10-30 13:21:13 +00:00
snipe f0813e03bf Merge pull request #15681 from Godmartinz/seperating_notification_n_mail
Separated Notifications and Emails: Check ins and Check outs
2024-10-30 12:18:41 +00:00
Marcus Moore 35f8a71c71 Test organization 2024-10-29 16:17:12 -07:00
Marcus Moore 86762c5e90 Remove marker test case 2024-10-29 16:12:34 -07:00
Marcus Moore 3c75fc2ced Move test 2024-10-29 16:12:13 -07:00
Marcus Moore 702edf7908 Remove x from select dropdown 2024-10-29 15:34:00 -07:00
Marcus Moore 54b4db86d2 Revert "Add soft deletes"
This reverts commit 0eadab49f1.
2024-10-29 15:33:49 -07:00
Marcus Moore 0eadab49f1 Add soft deletes 2024-10-29 15:26:18 -07:00
Marcus Moore 45e98e0282 Merge branch 'develop' into saving_custom_report_template 2024-10-29 15:20:52 -07:00
Marcus Moore b97c54a54b Improve handling of old data for text inputs 2024-10-29 11:25:54 -07:00
NebelKreis e22296fd79 Feature: Added serial number option to 2D barcode in label generation 2024-10-29 13:49:05 +01:00
NebelKreis 6c17d7d732 Fix: Corrected path in translation function
Updated the translation function to use the correct path, ensuring that instead of displaying the translation path as plain text, the appropriate translation is now shown as intended.
2024-10-29 11:45:29 +01:00
snipe 05875ebd1f Updated translations
Signed-off-by: snipe <snipe@snipe.net>
2024-10-28 22:04:35 +00:00
Godfrey M 9a0eee8f03 revert testing variables 2024-10-28 15:03:43 -07:00
Godfrey M 6128765d1f change wording on notification button 2024-10-28 15:03:03 -07:00
Godfrey M c24f79c025 update method comment 2024-10-28 14:58:43 -07:00
Godfrey M e7c4343c90 readd checkin accessory format 2024-10-28 14:56:48 -07:00
Marcus Moore 0d58ac61bc Make options required in model 2024-10-28 14:48:19 -07:00
Marcus Moore 7c08fbe144 Update test name 2024-10-28 14:43:05 -07:00
Marcus Moore 7777147af5 Add custom-reporting group 2024-10-28 14:42:44 -07:00
Marcus Moore 2042733dc0 Switch to array syntax 2024-10-28 14:37:52 -07:00
Godfrey M c0620c27ff adds back laravels channel formats 2024-10-28 14:30:34 -07:00
Marcus Moore d4cf392387 Organize tests 2024-10-28 14:24:47 -07:00
Marcus Moore c881727747 Add redirect for missing template 2024-10-28 14:12:19 -07:00
Godfrey M ed81973fe6 adds notifications for deprecation 2024-10-28 13:57:42 -07:00
Marcus Moore ee00699cb3 Remove unused strings 2024-10-28 13:07:29 -07:00
Marcus Moore b45749af16 Update translation strings 2024-10-28 13:06:19 -07:00
Marcus Moore 54dec8d30d Add translations 2024-10-28 12:56:42 -07:00
snipe 2d318b394c Merge pull request #15744 from marcusmoore/chore/action-tests-debugging
Added the display of logs when tests fail in GitHub Actions
2024-10-28 18:41:49 +00:00
Godfrey M b987b3dc00 adds back the laravel channels package and applies a deprecated check 2024-10-28 10:57:48 -07:00
Marcus Moore 5c49716129 Dump logs on test failure 2024-10-28 10:24:35 -07:00
NebelKreis 6f3fb47e4a Feature: Added asset tag option to barcode in label generation 2024-10-28 15:39:04 +01:00
snipe 755604677c Merge remote-tracking branch 'origin/develop' 2024-10-28 13:38:19 +00:00
snipe 86d784bd59 Fixed #15740 - use non-translated strings for icons
Signed-off-by: snipe <snipe@snipe.net>
2024-10-28 13:37:59 +00:00
snipe 65f4f3def2 Merge remote-tracking branch 'origin/develop' 2024-10-28 12:04:20 +00:00
snipe 589f9cccdf Fixed #15732
Signed-off-by: snipe <snipe@snipe.net>
2024-10-28 12:04:10 +00:00
snipe 42ec2fa05f Merge remote-tracking branch 'origin/develop' 2024-10-28 11:55:43 +00:00
snipe 4d848e45e6 Fixed #15736
Signed-off-by: snipe <snipe@snipe.net>
2024-10-28 11:55:24 +00:00
Godfrey M 58ff641f82 removed unused variables 2024-10-24 22:53:53 -07:00
Godfrey M ce68f550d8 remove alert emails from cc 2024-10-24 16:01:17 -07:00
Godfrey M 6f0c1b12b1 this adds check out message for consumables 2024-10-24 15:04:54 -07:00
Godfrey M 278bc5e52a ads check in and checkout message for license seats 2024-10-24 14:59:10 -07:00
Godfrey M cce75a8185 adds check in and checkout messag for accessories 2024-10-24 14:48:23 -07:00
Godfrey M e27ff13377 adds check in and checkout message for assets 2024-10-24 14:39:40 -07:00
Godfrey M 56365495a1 remove unnecessary fields in accessory checkout mail 2024-10-24 14:26:42 -07:00
Godfrey M 18da80e6de fix checkoutable listener for microsoft teams 2024-10-24 14:24:00 -07:00
akemidx b29a2a6ae4 removing header color from login button 2024-10-24 17:23:03 -04:00
Godfrey M 18760e3fa1 replaces teams notification package, passes integration test 2024-10-24 12:21:51 -07:00
Godfrey M 57107c487c fixed last test, definetly the last test 2024-10-24 09:40:10 -07:00
snipe 3445b543ea Merge remote-tracking branch 'origin/develop' 2024-10-24 10:04:02 +01:00
snipe 15ffd69ac0 Merge remote-tracking branch 'origin/develop' 2024-10-24 01:40:10 +01:00
Godfrey M 6329f5b87e removed unused variable from test 2024-10-23 17:33:23 -07:00
Godfrey M 15073a0d38 last test to fix 2024-10-23 17:27:37 -07:00
Godfrey M a80c09c16d Merge branch 'develop' into seperating_notification_n_mail 2024-10-23 17:23:55 -07:00
Marcus Moore 7238238d1f Use created_by instead of user_id 2024-10-23 16:40:03 -07:00
Godfrey M ab3b9c4510 remove unnecessary code from checkinasset notification 2024-10-23 16:24:01 -07:00
Marcus Moore 84f6638f50 Add authorization check 2024-10-23 16:11:10 -07:00
Godfrey M 2cc2b2b1df apply array_filter to cc emails to prevent errors 2024-10-23 16:06:27 -07:00
Godfrey M 62d06b44d6 set fallback from email address to service.snipe-it.io 2024-10-23 15:43:42 -07:00
Marcus Moore e390a95bd3 Improve back button behavior 2024-10-23 15:42:09 -07:00
Marcus Moore 3616c92148 Reflash template name 2024-10-23 15:40:54 -07:00
Marcus Moore 2fcc7e1188 Make template name required 2024-10-23 15:24:58 -07:00
Marcus Moore 8a06f4ad82 Improve label 2024-10-23 15:21:02 -07:00
Godfrey M f29a383179 Merge branch 'develop' into seperating_notification_n_mail
# Conflicts:
#	app/Notifications/CheckoutConsumableNotification.php
2024-10-23 15:15:14 -07:00
Godfrey M fd74c35102 remove old notify by mail from consumable notification 2024-10-23 15:08:29 -07:00
Godfrey M c681946b1d added component markdown changes 2024-10-23 15:05:39 -07:00
Godfrey M 257d25bd9e removed import notification from test, feature is not present in project 2024-10-23 14:56:54 -07:00
Godfrey M 6c34a5c52c conditionally check cc emails, initiate variables 2024-10-23 14:54:21 -07:00
Godfrey M 1b5f4415ae corrected cc email behavior 2024-10-23 14:44:45 -07:00
Marcus Moore 853e14f369 Fix width 2024-10-23 13:24:06 -07:00
Marcus Moore c1aa33862d Add error message for eol start and end fields 2024-10-23 13:22:21 -07:00
Marcus Moore 30dc5fa0cf Allow retrieving eol start and end dates 2024-10-23 13:21:44 -07:00
Marcus Moore 94e168fa15 Fix label 2024-10-23 13:17:20 -07:00
snipe 7bbe23995d Merge remote-tracking branch 'origin/develop' 2024-10-23 19:14:36 +01:00
spencerrlongg c76cccbb68 rm extraneous methods in exception 2024-10-23 12:56:36 -05:00
snipe 574f2e096d Merge remote-tracking branch 'origin/develop' 2024-10-23 17:57:37 +01:00
snipe e15e33b648 Merge remote-tracking branch 'origin/develop' 2024-10-23 15:14:29 +01:00
spencerrlongg fdb6970f36 this is pretty much done 2024-10-23 01:41:27 -05:00
spencerrlongg b0d7eb2168 cancel action finished 2024-10-22 22:44:28 -05:00
spencerrlongg 79e6eafafa cancelled scaffolded out 2024-10-22 22:33:29 -05:00
spencerrlongg 3ee008e871 revert 2024-10-22 20:54:20 -05:00
spencerrlongg 48c812d345 bunch of cleanup, split cancel out 2024-10-22 20:48:27 -05:00
Marcus Moore 4217d7402b Improve tests 2024-10-22 17:50:40 -07:00
Marcus Moore 3d28a9090c Improve test 2024-10-22 17:38:22 -07:00
Marcus Moore 271de1eceb Improve tests 2024-10-22 17:37:23 -07:00
Marcus Moore b6aae1f8a9 Group routes 2024-10-22 17:30:34 -07:00
Marcus Moore c313a78c3c Remove outdated @since annotations 2024-10-22 17:04:23 -07:00
Marcus Moore 37d65dac3d Add todo 2024-10-22 17:01:37 -07:00
Marcus Moore 5ebf013d4e Add comment 2024-10-22 16:54:38 -07:00
Marcus Moore 02c22c9efb Add test case 2024-10-22 16:52:59 -07:00
Godfrey M 1e9922a0b0 fix moar tests 2024-10-22 16:14:36 -07:00
Godfrey M ead27accac fixed accessory tests and notifiable target 2024-10-22 15:45:52 -07:00
spencerrlongg 8a99cc1391 test working 2024-10-22 17:25:58 -05:00
Marcus Moore d953519db6 Merge branch 'develop' into saving_custom_report_template 2024-10-22 15:11:18 -07:00
Marcus Moore dd97e4ea82 Update permission tests 2024-10-22 14:22:19 -07:00
snipe 1979ada656 Merge remote-tracking branch 'origin/develop' 2024-10-22 22:10:53 +01:00
snipe c536dbc741 Merge remote-tracking branch 'origin/develop' 2024-10-22 22:08:59 +01:00
spencerrlongg b59bf495e1 stuff 2024-10-22 15:09:35 -05:00
Godfrey M 1e31592c55 messing with the tests 2024-10-22 11:49:06 -07:00
snipe 7774dd0b7d Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	config/version.php
2024-10-22 16:53:47 +01:00
snipe 03b01689b5 Merge remote-tracking branch 'origin/develop' 2024-10-22 15:39:20 +01:00
Marcus Moore a20e03fce9 Merge branch 'develop' into saving_custom_report_template 2024-10-21 17:13:15 -07:00
spencerrlongg e40849c910 this stuff works 2024-10-21 17:31:26 -05:00
spencerrlongg 95a32864cf hm, lots to think about 🤔 2024-10-17 18:11:18 -05:00
Godfrey M ff113ef523 typo fix 2024-10-17 14:56:58 -07:00
Godfrey M 7ae76e7db9 remove viewdata array from 3 tests 2024-10-17 13:55:03 -07:00
Godfrey M b98058ca98 fix tests pt 3 2024-10-17 13:48:26 -07:00
Godfrey M 83e8186d9e fix assertSent to AssertNotSent on some test 2024-10-17 13:39:56 -07:00
Godfrey M cdd4fef7df attempt to fix tests p2 2024-10-17 13:34:55 -07:00
Godfrey M dceb8e305f attempt to fix tests 2024-10-17 13:11:39 -07:00
Godfrey M 123cdeb858 add email check to listener 2024-10-17 12:39:48 -07:00
Godfrey M 496b44e887 merged composer lock from dev 2024-10-17 12:28:57 -07:00
Godfrey M a690cc3582 removing my composer stuff again..for the last time 2024-10-17 12:26:55 -07:00
Godfrey M ceb3f5cea6 added mail-gun and http-client to 8.1 2024-10-17 12:19:50 -07:00
Godfrey M 65735a31f1 removed symfony/mailgun-mailer symfony/http-client 2024-10-17 12:18:34 -07:00
Godfrey M 285d6897cf added a coulple test adjustments and moved mail send logic to listener 2024-10-17 12:05:36 -07:00
spencerrlongg 1fd945c2d8 this works 2024-10-17 12:45:49 -05:00
spencerrlongg b2ff34260a hm, lots of thinking to do 2024-10-17 00:02:15 -05:00
Godfrey M 9a79483375 removed namespaces from routing 2024-10-16 16:59:18 -07:00
spencerrlongg a524c0b418 more work 2024-10-16 18:48:15 -05:00
Godfrey M ed6034065b removed test route 2024-10-16 16:47:36 -07:00
Godfrey M a7754c1a7f fixed asset checkout markdown, and notifiable variable 2024-10-16 16:46:52 -07:00
Godfrey M 02bda3cd95 adds Checkout Consumable mailable and slackwebhook channel to notifs 2024-10-16 15:53:05 -07:00
Godfrey M 02ff646da4 adds checkin license mailable 2024-10-16 15:44:45 -07:00
Godfrey M 4becdca8aa removes toMail from license notificaqtion 2024-10-16 15:39:20 -07:00
Godfrey M 2584d60344 adds Licenses seat checkout Mailable 2024-10-16 15:38:49 -07:00
akemidx f0d3a6e2d3 removing some comments/merging in develop 2024-10-16 18:35:31 -04:00
akemidx 5cb940c2ee Merge branch 'refs/heads/upstream/dev' into feature/sc-26415 2024-10-16 18:32:36 -04:00
Godfrey M f1d83a3f28 forgot to add asset checkout markdown to projet 2024-10-16 15:30:53 -07:00
Godfrey M c39df34bdf forgot to add accessory mail to project 2024-10-16 15:29:50 -07:00
Godfrey M dcdf600b78 adds Checkin and Checkout mailables and listner logic 2024-10-16 15:27:34 -07:00
spencerrlongg b1d62cc478 initial untested 2024-10-16 17:23:22 -05:00
Godfrey M 9710436d54 adds Mailables for asset checkin and out 2024-10-16 13:12:07 -07:00
Godfrey M 16cffe9a9d simplified checkout webhook call 2024-10-16 12:53:35 -07:00
Godfrey M 9e1b86f586 sends checkout notification via webhook 2024-10-16 12:51:19 -07:00
Godfrey M 3ab2521cb0 email comes through, no picture and html markup appear though. 2024-10-16 12:21:33 -07:00
Godfrey M 9f06a0e441 handle some edge cases, null values clean up variable names 2024-10-15 14:01:28 -07:00
Godfrey M f8476f7133 finished the construct and mail call in the listner 2024-10-15 12:49:52 -07:00
Marcus Moore 5306e1cd15 Merge branch 'develop' into saving_custom_report_template
# Conflicts:
#	resources/views/partials/forms/edit/location-select.blade.php
#	resources/views/partials/forms/edit/manufacturer-select.blade.php
#	resources/views/partials/forms/edit/model-select.blade.php
#	resources/views/partials/forms/edit/supplier-select.blade.php
#	resources/views/reports/custom.blade.php
2024-10-15 12:32:01 -07:00
Godfrey M b29d032bf0 adds checkoutAssetMail class, and content method 2024-10-15 11:28:27 -07:00
snipe 688260c8bb Merge remote-tracking branch 'origin/develop' 2024-10-15 18:31:16 +01:00
snipe b38c2d4660 Merge remote-tracking branch 'origin/develop' 2024-10-15 16:43:23 +01:00
snipe b256bea000 Merge remote-tracking branch 'origin/develop' 2024-10-15 13:10:55 +01:00
snipe 0a1716382e Merge remote-tracking branch 'origin/develop' 2024-10-11 16:07:01 +01:00
snipe 6554d0c787 Merge remote-tracking branch 'origin/develop' 2024-10-11 14:24:11 +01:00
snipe 41ffd55430 Merge remote-tracking branch 'origin/develop' 2024-10-11 11:30:09 +01:00
snipe 1338eaa4fa Merge remote-tracking branch 'origin/develop' 2024-10-11 11:28:06 +01:00
snipe b296afe050 Merge remote-tracking branch 'origin/develop' 2024-10-10 12:32:19 +01:00
snipe 14b8b3b37c Merge remote-tracking branch 'origin/develop' 2024-10-10 12:09:29 +01:00
akemidx 299e743848 weird requesting 2024-10-08 15:51:53 -04:00
snipe 5de608a6d2 Merge remote-tracking branch 'origin/develop' 2024-10-07 11:14:47 +01:00
snipe c56a5edddc Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	public/css/build/app.css
#	public/css/build/overrides.css
#	public/css/dist/all.css
#	public/mix-manifest.json
2024-10-03 17:41:07 +01:00
snipe 2de3bc92eb Merge remote-tracking branch 'origin/develop' 2024-10-03 16:29:14 +01:00
snipe f5d7b96503 Merge remote-tracking branch 'origin/develop' 2024-10-03 14:38:34 +01:00
akemidx 0c84904bf9 un'required'ing the rule. not sure what's breaking here but looking 2024-10-02 18:56:41 -04:00
akemidx e00a1aec02 note box is now missing when unchecking setting 2024-10-02 18:52:33 -04:00
akemidx 06e3bb7fd1 requested changes 2024-10-02 18:37:11 -04:00
akemidx 492e686b7a Merge remote-tracking branch 'origin/feature/sc-26415' into feature/sc-26415
# Conflicts:
#	app/Http/Controllers/Assets/AssetCheckinController.php
#	app/Http/Controllers/Assets/AssetCheckoutController.php
#	app/Http/Requests/AssetCheckinRequest.php
2024-10-02 18:17:38 -04:00
akemidx 17706f150e requested changes 2024-10-02 18:15:53 -04:00
akemidx 6fef127cd1 missing closing ) 2024-10-02 18:15:53 -04:00
akemidx f45b836010 backend form validation. +cleanup 2024-10-02 18:15:53 -04:00
akemidx 925aea8531 back to having tests pass. needed to comment out the notes rules() i added 2024-10-02 18:15:53 -04:00
akemidx bd6698de2a fixing some formatting 2024-10-02 18:15:53 -04:00
akemidx 515f59fed9 more test work 2024-10-02 18:15:52 -04:00
akemidx 5e74b109d9 front end changes/updates from gh 2024-10-02 18:15:52 -04:00
akemidx 8b643cb3b9 note field optional 2024-10-02 18:15:52 -04:00
akemidx 700647c53f setting created 2024-10-02 18:15:52 -04:00
akemidx 081c5706c4 required, but not optional 2024-10-02 18:15:52 -04:00
snipe 1695b8250f Bumped version for master
Signed-off-by: snipe <snipe@snipe.net>
2024-10-02 12:41:31 +01:00
snipe f42eeee666 Merge remote-tracking branch 'origin/develop' 2024-10-02 12:40:59 +01:00
snipe dc0949da78 Merge remote-tracking branch 'origin/develop' 2024-10-02 11:05:06 +01:00
snipe 0470a7c946 Merge remote-tracking branch 'origin/develop' 2024-10-02 11:01:05 +01:00
akemidx 73a059c9ac missing closing ) 2024-10-01 16:37:30 -04:00
snipe c8981f5031 Merge remote-tracking branch 'origin/develop' 2024-10-01 20:32:41 +01:00
snipe 9cf4b03f59 Merge remote-tracking branch 'origin/develop' 2024-10-01 14:33:29 +01:00
spencerrlongg 4f9f035c69 added a way to manipulate validator attribute names 2024-09-30 20:09:00 -05:00
snipe 5d5e999384 Merge remote-tracking branch 'origin/develop' 2024-10-01 01:44:24 +01:00
spencerrlongg cd3059f790 rm numbers too. :( 2024-09-30 13:38:52 -05:00
snipe 21af36b105 Merge remote-tracking branch 'origin/develop' 2024-09-30 18:24:19 +01:00
snipe d6d5dfb3d2 Merge remote-tracking branch 'origin/develop' 2024-09-29 14:33:50 +01:00
snipe 9e3997e0a1 Generated prod assets
Signed-off-by: snipe <snipe@snipe.net>
2024-09-29 11:25:47 +01:00
Marcus Moore e974c96eda Update to created_by 2024-09-26 12:41:16 -07:00
Marcus Moore 2004e58b53 Merge branch 'develop' into updated_ad_hoc_notes 2024-09-26 12:29:28 -07:00
Marcus Moore eb2d7b1f4f Move comment location 2024-09-26 12:14:00 -07:00
Marcus Moore 47763d1e1a Add tests for adding notes to assets 2024-09-26 12:13:36 -07:00
Godfrey M 44447b85c9 Merge branch 'develop' into barcode_settings_hide 2024-09-26 11:27:05 -07:00
akemidx b813dcd9d0 requested changes from github 2024-09-25 18:54:30 -04:00
spencerrlongg b69596a261 rm dump 2024-09-25 16:21:33 -05:00
spencerrlongg d02b9933e5 rm comment 2024-09-25 15:38:40 -05:00
spencerrlongg 852a56fa9b should be all good now 2024-09-25 15:30:41 -05:00
spencerrlongg 9df78a9ed0 working! need formatting for error messages etc 2024-09-25 14:00:50 -05:00
spencerrlongg f3ad89931f hm ok this kind of works 2024-09-25 13:00:35 -05:00
spencerrlongg 21906d8c27 world set up and idea in place 2024-09-25 12:47:56 -05:00
Maciej Poleszczyk d1e2f9db34 Fixing #15064 - to not fail ldap sync on single data issue with ldap manager 2024-09-25 17:56:49 +02:00
akemidx 3964296ae6 no payload 2024-09-18 17:06:21 -04:00
akemidx da9a61c28a no payload 2024-09-18 17:01:37 -04:00
Marcus Moore 6e16f589bd Remove reference to old trait 2024-09-17 17:00:06 -07:00
Marcus Moore 6b70443515 Formatting 2024-09-17 16:58:49 -07:00
Godfrey M c9854d43a5 fixes selection order 2024-09-17 16:56:02 -07:00
Godfrey M 04708ae2b2 only allows PDF417 for new label engine 2024-09-17 16:54:50 -07:00
Godfrey M bbb9babf27 one more finger 2024-09-17 16:40:18 -07:00
Godfrey M e5daf35f65 fat finger fix 2024-09-17 16:39:55 -07:00
Godfrey M 87c72953b2 udpated translation 2024-09-17 16:37:17 -07:00
Marcus Moore 89e2d03a81 Fix the deleted assets radio 2024-09-17 16:24:18 -07:00
Godfrey M fa5651f335 remove getbarcodes, postbarcodes, barcodes settings blade 2024-09-17 16:21:26 -07:00
akemidx 443447a068 added icon to button 2024-09-17 19:16:44 -04:00
Godfrey M b33c0fc4dd updates getbarcode method and labels view 2024-09-17 16:15:56 -07:00
Marcus Moore 8e0b718a4a Scope Select All checkbox to fields on left side of page 2024-09-17 16:00:32 -07:00
Marcus Moore b51c505d9e Fix department, manufacturer, and category multi-selects 2024-09-17 15:29:38 -07:00
Marcus Moore 8bba11e1bb Merge branch 'develop' into saving_custom_report_template
# Conflicts:
#	app/Http/Controllers/ReportsController.php
#	resources/views/partials/forms/edit/category-select.blade.php
#	resources/views/partials/forms/edit/company-select.blade.php
#	resources/views/partials/forms/edit/location-select.blade.php
#	resources/views/partials/forms/edit/manufacturer-select.blade.php
#	resources/views/partials/forms/edit/model-select.blade.php
#	resources/views/partials/forms/edit/status-select.blade.php
#	resources/views/reports/custom.blade.php
2024-09-17 15:26:35 -07:00
akemidx 4b54e980e2 added button 2024-09-17 17:56:22 -04:00
Godfrey M 033a56fe6d change variables in hardware labels edit post methods 2024-09-17 12:22:05 -07:00
Godfrey M 3682d9fa6c removed duplicate line from post labels 2024-09-17 11:23:59 -07:00
Godfrey M ce987b4f6d added front end barcodes to labels 2024-09-17 11:23:38 -07:00
akemidx 74efd850af redoing branch. old branch merge onflicts were waaay too gnarly 2024-09-16 19:30:26 -04:00
akemidx d262638a63 backend form validation. +cleanup 2024-09-04 18:23:36 -04:00
akemidx bebb72a04f back to having tests pass. needed to comment out the notes rules() i added 2024-09-04 17:53:19 -04:00
akemidx 77c5035cac fixing some formatting 2024-09-04 17:50:52 -04:00
Godfrey M df8b1c0240 hides barcode settings if new label engine enabled 2024-09-03 12:29:52 -07:00
akemidx 2901ecbf43 more test work 2024-09-03 15:02:27 -04:00
snipe 5cdb52a249 Corrected flag
Signed-off-by: snipe <snipe@snipe.net>
2024-08-29 21:33:08 +01:00
snipe ea38d6c2f3 Decode as integers
Signed-off-by: snipe <snipe@snipe.net>
2024-08-29 21:26:38 +01:00
akemidx 27c120a55e front end changes/updates from gh 2024-08-20 19:07:47 -04:00
akemidx 4e43fa6b9f Merge remote-tracking branch 'upstream/develop' into feature/sc-26415 2024-08-19 21:06:18 -04:00
snipe 5066eb58f4 Added asset model import to importer
Signed-off-by: snipe <snipe@snipe.net>
2024-08-17 02:31:03 +01:00
akemidx 0f0baa207d note field optional 2024-08-01 17:02:35 -04:00
akemidx 3ff1745f56 setting created 2024-08-01 16:44:02 -04:00
akemidx 552f90ae2c required, but not optional 2024-08-01 16:06:47 -04:00
Timo Schwarzer a2ff8f9609 Add Department Manager to single and multiple user views 2024-07-15 12:27:29 +02:00
Godfrey M c62a022252 replaced for loop with eloquent query update 2024-03-21 14:34:47 -07:00
Godfrey M 866f0a9f56 syncs assets location to users location 2024-03-19 11:58:49 -07:00
Godfrey M 05a8d3030b correct column name 2024-03-16 19:54:48 -07:00
Godfrey M 595dad0f18 updates all assets assigned to user with new location 2024-03-16 19:51:40 -07:00
Marcus Moore d65c0c8bea Remove comma 2024-01-23 15:22:00 -08:00
Marcus Moore 2d5631284b Indent 2024-01-23 15:19:36 -08:00
Marcus Moore 3952fc10a6 Re-render order number properly 2024-01-23 15:18:02 -08:00
Marcus Moore 0881301b6d Fix language strings 2024-01-23 13:55:20 -08:00
Marcus Moore 530ea474d1 Merge branch 'develop' into saving_custom_report_template
# Conflicts:
#	resources/lang/en/admin/reports/general.php
#	resources/views/reports/custom.blade.php
2024-01-23 13:55:07 -08:00
Marcus Moore 219540281f Add trailing commas 2024-01-22 12:42:01 -08:00
Marcus Moore b74115b604 Add docblocks 2024-01-18 15:42:52 -08:00
Marcus Moore 1630392953 Uncheck a couple boxes by default to match existing behavior 2024-01-18 13:30:51 -08:00
Marcus Moore 861ef6312e Use is_iterable for checks instead of is_array 2024-01-18 13:04:41 -08:00
Marcus Moore f64aa4dfd4 Improve variable name 2024-01-18 11:58:34 -08:00
Marcus Moore 786c41ad79 Add some type hints 2024-01-17 17:41:03 -08:00
Marcus Moore b24d80680e Add clarifying comments 2024-01-17 17:32:35 -08:00
Marcus Moore 1a1f417633 Change variable name to keep foreach scoped 2024-01-17 17:00:03 -08:00
Marcus Moore bbfee27fd3 Implement test 2024-01-17 16:40:05 -08:00
Marcus Moore 691e81d827 Implement some tests 2024-01-17 16:25:28 -08:00
Marcus Moore 0ac1dd314a Organize tests 2024-01-17 13:19:54 -08:00
Marcus Moore 82f4cc799b Improve variable name 2024-01-17 11:54:37 -08:00
Marcus Moore 4d8d069bbc Update placeholder 2024-01-17 11:43:34 -08:00
Marcus Moore 5a396cc997 Add assertion 2024-01-17 11:24:50 -08:00
Marcus Moore 0883321d9e Only limit template creator scope when authenticated 2024-01-17 11:24:38 -08:00
akemidx 2768f19b7c code cleanup 2024-01-16 18:56:29 -05:00
akemidx 20bd83232e standardizing naming to use Template 2024-01-11 19:41:19 -05:00
Marcus Moore d72970b5b6 Add global scope to limit template to current user 2024-01-11 13:59:51 -08:00
Marcus Moore 9c1bea00ad Add failing test 2024-01-11 13:51:18 -08:00
Marcus Moore 8d8bf73c1b Scaffold additional tests 2024-01-11 13:51:10 -08:00
Marcus Moore e5fb888d67 Implement test 2024-01-11 13:34:20 -08:00
Marcus Moore 82df7a66ec Add form label and remove info box from show and edit pages 2024-01-11 13:19:36 -08:00
Marcus Moore 0202a97e97 Add missing tag 2024-01-11 13:08:08 -08:00
Marcus Moore b34886ead6 Move box header into box 2024-01-11 13:04:46 -08:00
akemidx 6f6341bc09 about saved reports box 2024-01-10 16:33:35 -05:00
akemidx 5f8e91455f clarifying name box 2024-01-10 15:39:32 -05:00
akemidx a5099b5163 translations/messages on report template controller 2024-01-10 15:23:42 -05:00
akemidx 27103124bf messages/translations 2024-01-09 16:49:56 -05:00
Marcus Moore f2d34b2c03 Remove inline javascript 2024-01-02 18:23:57 -08:00
Marcus Moore 25cba65c6e Remove marker test case 2024-01-02 18:14:50 -08:00
Marcus Moore a756d2b765 Implement test 2024-01-02 18:14:17 -08:00
Marcus Moore 740d46a50e Repopulate report after validation error 2024-01-02 17:59:30 -08:00
Marcus Moore d8d92a6d2c Scaffold test case 2024-01-02 17:47:52 -08:00
Marcus Moore 137193ab12 Remove duplicate test 2024-01-02 17:44:22 -08:00
Marcus Moore fcef60445c Implement radioValue properly 2023-12-21 18:07:46 -08:00
Marcus Moore 9e0897b2cb Remove old comments 2023-12-21 17:40:26 -08:00
Marcus Moore a23a3b95d6 Partially implement test 2023-12-21 17:15:36 -08:00
Marcus Moore 1ac0be50a7 Remove test case 2023-12-21 17:06:40 -08:00
Marcus Moore 618bbc4bda Mark test as incomplete 2023-12-21 17:03:10 -08:00
Marcus Moore 8c434c7862 Implement and scaffold tests 2023-12-21 17:02:44 -08:00
Marcus Moore 7f153b32e4 Always return an array from selectValues method 2023-12-21 16:38:51 -08:00
Marcus Moore 4fc8e8dd61 Add todo 2023-12-21 14:27:31 -08:00
Marcus Moore 48e5ee2310 Add filtering to remaining selects 2023-12-21 14:19:16 -08:00
Marcus Moore 92e3a1e69e Update variable names 2023-12-21 13:46:27 -08:00
Marcus Moore 7f0e3e288e Scaffold additional test 2023-12-21 13:43:44 -08:00
Marcus Moore dc27e67b19 Remove edit and delete buttons from edit template view 2023-12-21 13:13:28 -08:00
Marcus Moore 4c62e8ade9 Add guard against attempting to access property on unsaved template 2023-12-21 13:11:44 -08:00
Marcus Moore 87853921c3 Formatting 2023-12-21 13:07:11 -08:00
Marcus Moore 8a496ccebc Formatting 2023-12-21 13:05:56 -08:00
Marcus Moore 3e5f804791 Display "Save" on the update template page button 2023-12-21 13:05:49 -08:00
Marcus Moore 62f8353bd7 Implement model filtering for selectValue method 2023-12-21 13:03:43 -08:00
Marcus Moore 1dd9273f70 Improve readability 2023-12-21 12:50:21 -08:00
Marcus Moore 2eeaef00e1 Improve readability 2023-12-21 12:15:00 -08:00
Marcus Moore 5c0c60a5b9 Formatting 2023-12-21 12:02:54 -08:00
Marcus Moore 6fcbb108c6 Implement test for filtering out invalid models from selectValues 2023-12-21 12:02:48 -08:00
Marcus Moore 71761a48ad A few more small clean ups 2023-12-20 17:50:55 -08:00
Marcus Moore 495d74f7c9 Formatting 2023-12-20 17:11:03 -08:00
Marcus Moore fda77179a3 Simplify url 2023-12-20 16:48:25 -08:00
Marcus Moore 578495bab6 Update tests 2023-12-20 16:37:27 -08:00
Marcus Moore 9a5c8c4ce6 Formatting and clean ups 2023-12-20 16:24:48 -08:00
Marcus Moore 0504c09a9a Implement ability to delete templates 2023-12-20 16:19:04 -08:00
Marcus Moore 9d062f9849 Make control statements more explicit 2023-12-20 16:08:25 -08:00
Marcus Moore 0527201ae5 Allow templates to be updated 2023-12-20 14:41:23 -08:00
Marcus Moore cf5c78029c Only show template name input on default screen 2023-12-20 14:12:42 -08:00
Marcus Moore 26cc4497eb Use dedicated show route for report templates 2023-12-20 14:01:46 -08:00
Marcus Moore c35179b098 Use existing class in place of inline styling 2023-12-20 13:48:31 -08:00
Marcus Moore b2d0cbb264 Display validation error for report name 2023-12-20 13:44:47 -08:00
akemidx ebf760a477 translations, UI fixes 2023-12-19 18:01:19 -05:00
Marcus Moore 9fcb1a2d0e Rename SavedReport to ReportTemplate 2023-12-18 12:55:48 -08:00
Marcus Moore 27bb938d9e WIP: add dedicated edit report page 2023-12-13 18:09:42 -08:00
Marcus Moore 75bd056bbe Display saved template name in header 2023-12-13 14:49:38 -08:00
akemidx ad202be374 update method (WIP ver) 2023-12-13 17:31:58 -05:00
akemidx ca35b66597 frontys 2023-12-12 19:03:09 -05:00
akemidx e9e68171bb frontend stuff 2023-12-12 18:56:21 -05:00
Marcus Moore e791ebbe76 Display report name in input 2023-12-11 16:36:32 -08:00
Marcus Moore d92893b2c7 Remove old javascript 2023-12-11 16:30:44 -08:00
Marcus Moore c68a2a36fa Add test case for saving custom reports 2023-12-11 16:25:36 -08:00
Marcus Moore 89c47c1879 Add validation for saving reports 2023-12-11 16:20:36 -08:00
Marcus Moore b9cda88363 Alphabetize saved reports list 2023-12-11 16:20:17 -08:00
Marcus Moore 52028ddef2 Add authorization to saving saved reports route 2023-12-11 15:34:17 -08:00
Marcus Moore c3845f4393 Add tests around loading saved reports 2023-12-11 14:29:33 -08:00
Marcus Moore c9157dc55d Update docblock 2023-12-11 14:20:33 -08:00
Marcus Moore c3b53b28e3 Allow saving custom reports 2023-12-11 14:19:03 -08:00
akemidx e636d7b9d5 multiple saved reports, beginning of dynamic dropdown listing/queried url 2023-12-11 15:28:34 -05:00
Marcus Moore bd86c5430c Add a few typehints 2023-12-11 11:27:56 -08:00
Marcus Moore 4a0bb31866 Scaffold two more test cases 2023-12-07 11:00:26 -08:00
akemidx b7f6c7df06 html work, code comments for tomorrow's tasks 2023-12-06 18:05:58 -05:00
Marcus Moore 327d27591f Merge branch 'saved-custom-reports' into saving_custom_report_template 2023-11-30 18:15:35 -08:00
Marcus Moore 5041c07c7e WIP: implement restoring checkbox inputs 2023-11-30 18:15:04 -08:00
Marcus Moore 505d601488 Implement restoring date ranges 2023-11-30 17:07:39 -08:00
Marcus Moore bca7f208a6 Implement restoring select values 2023-11-30 16:57:21 -08:00
Marcus Moore 4f031149e8 Scaffold a couple test cases 2023-11-30 12:12:57 -08:00
Marcus Moore b7011d853a WIP: add methods to restore settings from saved report 2023-11-02 17:10:50 -07:00
Marcus Moore 06186c9b12 WIP: Simply post the form to a different controller 2023-10-30 16:30:53 -07:00
Marcus Moore 7a5faa9619 Adjust margin on custom report page 2023-10-30 12:03:50 -07:00
akemidx e5792fd415 api/savereports controller 2023-10-25 14:42:23 -04:00
akemidx 45dbc02868 save commit 2023-09-05 15:01:20 -04:00
akemidx f1cc2c8d8b submitting form after capturing/formatting fixes 2023-08-29 16:55:21 -04:00
akemidx 734af87f2f template structuring 2023-08-28 19:26:31 -04:00
akemidx 78d589fe78 beginning of migrations 2023-08-24 14:32:37 -04:00
akemidx c9fcc906fb create saved reports migration 2023-08-23 19:32:19 -04:00
akemidx f9fc2a44cd alphatyping for layout 2023-08-22 15:19:12 -04:00
Matthias Mair 68dad1d3ae fixed wrong index reference in MoveUploadsToNewDisk.php
usage of undefined reference fixed
2023-08-22 20:39:21 +02:00
8371 changed files with 508797 additions and 574215 deletions
+1066 -12
View File
File diff suppressed because it is too large Load Diff
+15 -3
View File
@@ -11,12 +11,12 @@ MYSQL_ROOT_PASSWORD=changeme1234
# REQUIRED: BASIC APP SETTINGS
# --------------------------------------------
APP_ENV=develop
APP_DEBUG=false
APP_DEBUG=true
# please regenerate the APP_KEY value by calling `docker-compose run --rm snipeit bash` and then `php artisan key:generate --show` and then copy paste the value here
APP_KEY=base64:3ilviXqB9u6DX1NRcyWGJ+sjySF+H18CPDGb3+IVwMQ=
APP_URL=http://localhost:8000
APP_TIMEZONE='UTC'
APP_LOCALE=en
APP_LOCALE=en-US
MAX_RESULTS=500
# --------------------------------------------
@@ -35,6 +35,7 @@ DB_USERNAME=snipeit
DB_PASSWORD=changeme1234
DB_PREFIX=null
DB_DUMP_PATH='/usr/bin'
DB_DUMP_SKIP_SSL=true
DB_CHARSET=utf8mb4
DB_COLLATION=utf8mb4_unicode_ci
@@ -78,6 +79,13 @@ MAIL_BACKUP_NOTIFICATION_DRIVER=null
MAIL_BACKUP_NOTIFICATION_ADDRESS=null
BACKUP_ENV=true
# --------------------------------------------
# OPTIONAL: CHANGE PHP UPLOAD LIMITS (UNCOMMENT WHEN NEEDING TO BE CHANGED)
# --------------------------------------------
#PHP_UPLOAD_LIMIT=10
#PHP_POST_MAX_SIZE=10
#PHP_UPLOAD_MAX_FILESIZE=10
#PHP_MEMORY_LIMIT=10
# --------------------------------------------
# OPTIONAL: SESSION SETTINGS
@@ -129,6 +137,8 @@ PUBLIC_AWS_ACCESS_KEY_ID=null
PUBLIC_AWS_DEFAULT_REGION=null
PUBLIC_AWS_BUCKET=null
PUBLIC_AWS_URL=null
PUBLIC_AWS_ENDPOINT=null
PUBLIC_AWS_PATH_STYLE=null
PUBLIC_AWS_BUCKET_ROOT=null
# --------------------------------------------
@@ -139,6 +149,8 @@ PRIVATE_AWS_SECRET_ACCESS_KEY=null
PRIVATE_AWS_DEFAULT_REGION=null
PRIVATE_AWS_BUCKET=null
PRIVATE_AWS_URL=null
PRIVATE_AWS_ENDPOINT=null
PRIVATE_AWS_PATH_STYLE=null
PRIVATE_AWS_BUCKET_ROOT=null
# --------------------------------------------
@@ -158,7 +170,7 @@ RESET_PASSWORD_LINK_EXPIRES=900
# --------------------------------------------
# OPTIONAL: MISC
# --------------------------------------------
LOG_CHANNEL=stderr
LOG_CHANNEL=single
LOG_MAX_DAYS=10
APP_LOCKED=false
APP_CIPHER=AES-256-CBC
+18 -2
View File
@@ -1,7 +1,7 @@
# --------------------------------------------
# REQUIRED: DOCKER SPECIFIC SETTINGS
# --------------------------------------------
APP_VERSION=v6.4.1
APP_VERSION=
APP_PORT=8000
# --------------------------------------------
@@ -9,7 +9,7 @@ APP_PORT=8000
# --------------------------------------------
APP_ENV=production
APP_DEBUG=false
# Please regenerate the APP_KEY value by calling `docker compose run --rm snipeit php artisan key:generate --show`. Copy paste the value here
# Please regenerate the APP_KEY value by calling `docker compose run --rm app php artisan key:generate --show`. Copy paste the value here
APP_KEY=base64:3ilviXqB9u6DX1NRcyWGJ+sjySF+H18CPDGb3+IVwMQ=
APP_URL=http://localhost:8000
# https://en.wikipedia.org/wiki/List_of_tz_database_time_zones - TZ identifier
@@ -28,6 +28,7 @@ PUBLIC_FILESYSTEM_DISK=local_public
# --------------------------------------------
DB_CONNECTION=mysql
DB_HOST=db
DB_SOCKET=null
DB_PORT='3306'
DB_DATABASE=snipeit
DB_USERNAME=snipeit
@@ -35,6 +36,7 @@ DB_PASSWORD=changeme1234
MYSQL_ROOT_PASSWORD=changeme1234
DB_PREFIX=null
DB_DUMP_PATH='/usr/bin'
DB_DUMP_SKIP_SSL=true
DB_CHARSET=utf8mb4
DB_COLLATION=utf8mb4_unicode_ci
@@ -83,6 +85,15 @@ MAIL_BACKUP_NOTIFICATION_DRIVER=null
MAIL_BACKUP_NOTIFICATION_ADDRESS=null
BACKUP_ENV=true
# --------------------------------------------
# OPTIONAL: CHANGE PHP UPLOAD LIMITS (UNCOMMENT WHEN NEEDING TO BE CHANGED)
# --------------------------------------------
#PHP_UPLOAD_LIMIT=10
#PHP_POST_MAX_SIZE=10
#PHP_UPLOAD_MAX_FILESIZE=10
#PHP_MEMORY_LIMIT=10
# --------------------------------------------
# OPTIONAL: SESSION SETTINGS
# --------------------------------------------
@@ -133,6 +144,8 @@ PUBLIC_AWS_ACCESS_KEY_ID=null
PUBLIC_AWS_DEFAULT_REGION=null
PUBLIC_AWS_BUCKET=null
PUBLIC_AWS_URL=null
PUBLIC_AWS_ENDPOINT=null
PUBLIC_AWS_PATH_STYLE=null
PUBLIC_AWS_BUCKET_ROOT=null
# --------------------------------------------
@@ -143,6 +156,8 @@ PRIVATE_AWS_SECRET_ACCESS_KEY=null
PRIVATE_AWS_DEFAULT_REGION=null
PRIVATE_AWS_BUCKET=null
PRIVATE_AWS_URL=null
PRIVATE_AWS_ENDPOINT=null
PRIVATE_AWS_PATH_STYLE=null
PRIVATE_AWS_BUCKET_ROOT=null
# --------------------------------------------
@@ -158,6 +173,7 @@ AWS_DEFAULT_REGION=null
LOGIN_MAX_ATTEMPTS=5
LOGIN_LOCKOUT_DURATION=60
RESET_PASSWORD_LINK_EXPIRES=900
INVITE_PASSWORD_LINK_EXPIRES=1500
# --------------------------------------------
# OPTIONAL: MISC
+55 -3
View File
@@ -24,12 +24,14 @@ PUBLIC_FILESYSTEM_DISK=local_public
# --------------------------------------------
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_SOCKET=null
DB_PORT=3306
DB_DATABASE=null
DB_USERNAME=null
DB_PASSWORD=null
DB_PREFIX=null
DB_DUMP_PATH='/usr/bin'
DB_DUMP_SKIP_SSL=false
DB_CHARSET=utf8mb4
DB_COLLATION=utf8mb4_unicode_ci
DB_SANITIZE_BY_DEFAULT=false
@@ -38,12 +40,26 @@ DB_SANITIZE_BY_DEFAULT=false
# --------------------------------------------
# OPTIONAL: SSL DATABASE SETTINGS
# --------------------------------------------
# Enable SSL connection to database (true/false)
DB_SSL=false
# Set to true for cloud databases like AWS RDS, Azure Database, Google Cloud SQL
# Set to false for self-hosted databases with client certificates
DB_SSL_IS_PAAS=false
# Required when DB_SSL_IS_PAAS=false (client certificate authentication)
DB_SSL_KEY_PATH=null
DB_SSL_CERT_PATH=null
# Path to CA certificate bundle (required for SSL connections)
# For AWS RDS, download from: https://truststore.pki.rds.amazonaws.com/global/global-bundle.pem
DB_SSL_CA_PATH=null
# SSL cipher (optional, leave null for default)
DB_SSL_CIPHER=null
# Verify server certificate (true/false, defaults to false if not set)
# Set to false for development or when using self-signed certificates
DB_SSL_VERIFY_SERVER=null
# --------------------------------------------
@@ -74,12 +90,27 @@ IMAGE_LIB=gd
# --------------------------------------------
# OPTIONAL: BACKUP SETTINGS
# --------------------------------------------
# Backup filesystem configuration
# - BACKUP_FILESYSTEM_DRIVER: Driver to use (local, s3, etc.)
# Default: local (backward compatible)
# Set to s3 to use S3 for backups (requires PRIVATE_AWS_* credentials)
# - BACKUP_FILESYSTEM_ROOT: Root path/prefix
# For local driver: leave commented for default to storage_path("app")
# For S3 driver: empty string = bucket root, or specify prefix like "backups/"
#--------------------------------------------
BACKUP_FILESYSTEM_DRIVER=local
#BACKUP_FILESYSTEM_ROOT=
MAIL_BACKUP_NOTIFICATION_DRIVER=null
MAIL_BACKUP_NOTIFICATION_ADDRESS=null
BACKUP_ENV=true
ALLOW_BACKUP_DELETE=false
ALLOW_DATA_PURGE=false
ALL_BACKUP_KEEP_DAYS=7
DAILY_BACKUP_KEEP_DAYS=16
WEEKLY_BACKUP_KEEP_WEEKS=8
MONTHLY_BACKUP_KEEP_MONTHS=4
YEARLY_BACKUP_KEEP_YEARS=2
BACKUP_PURGE_OLDEST_AT_MEGS=5000
# --------------------------------------------
# OPTIONAL: SESSION SETTINGS
@@ -93,7 +124,7 @@ PASSPORT_COOKIE_NAME='snipeit_passport_token'
COOKIE_DOMAIN=null
SECURE_COOKIES=false
API_TOKEN_EXPIRATION_YEARS=15
BS_TABLE_STORAGE=cookieStorage
BS_TABLE_STORAGE=localStorage
BS_TABLE_DEEPLINK=true
# --------------------------------------------
@@ -127,6 +158,14 @@ REDIS_PORT=null
MEMCACHED_HOST=null
MEMCACHED_PORT=null
# --------------------------------------------
# OPTIONAL: S3 PROXY
# When enabled, public uploads (images, logos, avatars) are served through
# the application instead of directly from S3. This allows using a single
# fully private S3 bucket for all storage.
# --------------------------------------------
PUBLIC_S3_PROXY=false
# --------------------------------------------
# OPTIONAL: PUBLIC S3 Settings
# --------------------------------------------
@@ -135,6 +174,8 @@ PUBLIC_AWS_ACCESS_KEY_ID=null
PUBLIC_AWS_DEFAULT_REGION=null
PUBLIC_AWS_BUCKET=null
PUBLIC_AWS_URL=null
PUBLIC_AWS_ENDPOINT=null
PUBLIC_AWS_PATH_STYLE=null
PUBLIC_AWS_BUCKET_ROOT=null
# --------------------------------------------
@@ -145,6 +186,8 @@ PRIVATE_AWS_SECRET_ACCESS_KEY=null
PRIVATE_AWS_DEFAULT_REGION=null
PRIVATE_AWS_BUCKET=null
PRIVATE_AWS_URL=null
PRIVATE_AWS_ENDPOINT=null
PRIVATE_AWS_PATH_STYLE=null
PRIVATE_AWS_BUCKET_ROOT=null
# --------------------------------------------
@@ -167,11 +210,13 @@ LOGIN_AUTOCOMPLETE=false
RESET_PASSWORD_LINK_EXPIRES=15
PASSWORD_CONFIRM_TIMEOUT=10800
PASSWORD_RESET_MAX_ATTEMPTS_PER_MIN=50
INVITE_PASSWORD_LINK_EXPIRES=1500
# --------------------------------------------
# OPTIONAL: MISC
# --------------------------------------------
LOG_CHANNEL=single
LOG_DEPRECATIONS=false
LOG_MAX_DAYS=10
APP_LOCKED=false
APP_CIPHER=AES-256-CBC
@@ -180,13 +225,20 @@ APP_ALLOW_INSECURE_HOSTS=false
GOOGLE_MAPS_API=
LDAP_MEM_LIM=500M
LDAP_TIME_LIM=600
BACKUP_TIME_LIMIT=600
IMPORT_TIME_LIMIT=600
IMPORT_MEMORY_LIMIT=500M
REPORT_TIME_LIMIT=12000
REQUIRE_SAML=false
API_THROTTLE_PER_MINUTE=120
CSV_ESCAPE_FORMULAS=true
LIVEWIRE_URL_PREFIX=null
MAX_UNPAGINATED=5000
# --------------------------------------------
# OPTIONAL: SAML SETTINGS
# --------------------------------------------
REQUIRE_SAML=false
SAML_KEY_SIZE=2048
# --------------------------------------------
# OPTIONAL: HASHING
+66
View File
@@ -0,0 +1,66 @@
# Pint: Models
9623fa4d87e7fb38307028338c6991afb7d4e099
# Pint: Actions
a3c7410c35388af08997b1c52adebda1056488a6
# Pint: Console
8bce38b9187d23089a28a4f3a4ab960ac7471e90
# Pint: Enums and Events
f7b82ad1ff513a25d775c20b58e9a8ce23461ec2
# Pint: Exceptions
2e7046a810ce1f7562dec9d3ee4fee0cbc7262db
# Pint: Non-api controllers
9bc92f57c8a29ac0e89c2d3f72f23c6c64567dd8
# Pint: Api controllers
1e5d426e70dcd72fd7e87c2b11ff42fe3cc7a1a4
# Pint: Middleware
ec6caf9b5959c6c57bd7be047e91bbb70fc303a7
# Pint: Requests
93168326da54fa87880570c82df3ccbf3ff152e1
# Pint: Traits and Transformers
a613380811f63f51e2951d2f4b8454d5274d5cdf
# Pint: Importer
3e831bf9b3cc060f11c88ec69a9313131de8ee1f
# Pint: Jobs and Listeners
317b1a462e079bf96d492dd3782de38b7144be9f
# Pint: Livewire
53f2ef2ca11b0571de758b101f08f259de7830cf
# Pint: Mail
de607e7d83704b30f809238c44d3d759196a77db
# Pint: Notifications
31043d1f5cb5d287c0ab2ca2ba1ae08665bc6ad5
# Pint: Observers and policies
b2c0a21230977443536655e43e524773e2ad9e27
# Pint: Presenters
55d46cbefec5fe0bb7e28b859d540977d2cfee46
# Pint: Providers
8b658a19b9182bf9a19e34bc9101ee11a13ed85b
# Pint: Config
c1a93e3ac890ed1fc1c27ba6c431f6b58ff661d6
# Pint: Lang and resources
84fdb5d6c19bf7882cb91d42fe8768fc0db0ce67
# Pint: Database
b5a46a370f85c6e87c8a9fa4a4593424bb027712
# Pint: Tests
d84eb43278177a9bcdfffe04c94d933eb49f2c48
446f5f3cefdc1837a65fd4bc983741b29f821a78
-38
View File
@@ -1,38 +0,0 @@
#### Expected Behavior (or desired behavior if a feature request)
(what you expect to happen goes here)
-----
#### Actual Behavior
(what actually happens goes here)
-----
#### Please confirm you have done the following before posting your bug report:
- [ ] I have enabled debug mode
- [ ] I have read [checked the Common Issues page](https://snipe-it.readme.io/docs/common-issues)
-----
#### Provide answers to these questions:
- Is this a fresh install or an upgrade?
- Version of Snipe-IT you're running
- Version of PHP you're running
- Version of MySQL/MariaDB you're running
- What OS and web server you're running Snipe-IT on
- What method you used to install Snipe-IT (install.sh, manual installation, docker, etc)
- WITH DEBUG TURNED ON, if you're getting an error in your browser, include that error
- What specific Snipe-IT page you're on, and what specific element you're interacting with to trigger the error
- If a stacktrace is provided in the error, include that too.
- Any errors that appear in your browser's error console.
- Confirm whether the error is reproducible on the demo: https://snipeitapp.com/demo.
- Include any additional information you can find in `storage/logs` and your webserver's logs.
- Include what you've done so far in the installation, and if you got any error messages along the way.
- Indicate whether or not you've manually edited any data directly in the database
Please do not post an issue without answering the related questions above. If you have opened a different issue and already answered these questions, answer them again, once for every ticket. It will be next to impossible for us to help you.
https://snipe-it.readme.io/docs/getting-help
+163
View File
@@ -0,0 +1,163 @@
name: Bug Report
description: File a bug report.
title: "[Bug]: "
projects: ["grokability/snipe-it"]
type: bug
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to fill out this bug report! Most issues are documented in the [Snipe-IT repository's issues](https://github.com/grokability/snipe-it/issues) or in the official [Common Issues section of the Documentation](https://snipe-it.readme.io/docs/common-issues#/) and are due to the following:
- `.env` misconfiguration
- [Server Permissions](https://snipe-it.readme.io/docs/debugging-permissions#/)
- [Database Migrations](https://snipe-it.readme.io/docs/database-issues#run-migrations)
Please make sure you've checked these resources before submitting a new issue. If you find an existing issue, please add your context to it instead of opening a new issue. If your issue is more of a question, consider [opening a new discussion](https://github.com/grokability/snipe-it/discussions) or [pop by our Discord](https://discord.gg/yZFtShAcKk) instead of creating an issue.
**Please write your bug report in English.** You can use tools like [DeepL](https://www.deepl.com) or [Google Translate](https://translate.google.com/) to translate if necessary.
**If you choose to upload screenshots or videos (which we always encourage), please make sure they do not contain any sensitive information.**
- type: input
id: version
attributes:
label: Snipe-IT Version
description: What version of Snipe-IT are you seeing this issue on? You can find the version number in the footer of any page in Snipe-IT.
placeholder: ex. v8.3.2 - build 19577 (master)
validations:
required: true
- type: input
id: php-version
attributes:
label: PHP Version
description: What version of PHP are you running? You can find the version of PHP your webserver is running in the `Admin Settings` section in the footer, and the cli version by running `php -v` via command line .
placeholder: ex. v8.3.1 (web), PHP 8.4.12 (cli)
validations:
required: true
- type: input
id: composer-version
attributes:
label: Composer Version
description: What version of composer are you running? You can find the version number by running `composer --version`.
placeholder: ex. 2.8.10
validations:
required: true
- type: input
id: db-version
attributes:
label: MySQL/MariaDB version
description: What database are you using, and what version?
placeholder: ex. MySQL 5.7
validations:
required: true
- type: dropdown
id: install-method
attributes:
label: How did you install Snipe-IT?
options:
- Git install
- Manual install (downloading zip/tar.gz)
- Docker
- install.sh
- Hosted by Grokability
- Other
- Not sure
validations:
required: true
- type: dropdown
id: upgrade-or-fresh
attributes:
label: Is this a fresh install or an upgrade?
options:
- Fresh install
- Upgrade
- NA
validations:
required: true
- type: textarea
id: what-happened
attributes:
label: What happened?
description: Also tell us, what did you expect to happen?
placeholder: Tell us what you see! (Be nice!)
validations:
required: true
- type: dropdown
id: browsers
attributes:
label: What browsers are you seeing the problem on?
multiple: true
options:
- Firefox
- Chrome
- Safari
- Microsoft Edge
- Other
- type: dropdown
id: on-demo
attributes:
label: Can you reproduce this on the public demo?
description: You can check this at https://demo.snipeitapp.com.
options:
- 'Yes'
- 'No'
- N/A
validations:
required: true
- type: dropdown
id: fmcs
attributes:
label: Do you have full multiple company support enabled?
description: You can check this in your Snipe-IT installation at `Admin Settings > General Settings > Scoping`.
options:
- 'Yes'
- 'No'
validations:
required: true
- type: dropdown
id: fmcs-location
attributes:
label: If you have full multiple company support enabled, do you have location scoping to company enabled?
description: You can check this in your Snipe-IT installation at `Admin Settings > General Settings > Scoping`.
options:
- 'Yes'
- 'No'
- I do not have full multiple company support enabled
validations:
required: true
- type: textarea
id: server-logs
attributes:
label: Application log output
description: Please copy and paste any relevant log output from `storage/logs/laravel.log`. This will be automatically formatted into code, so no need for backticks.
render: shell
- type: textarea
id: browser-logs
attributes:
label: Browser console output
description: Please copy and paste any relevant log output from your browser console. This will be automatically formatted into code, so no need for backticks.
render: shell
- type: checkboxes
id: common-issues
attributes:
label: Common Issues
description: Please make sure you have done the following before submitting your issue.
options:
- label: I have searched this repo for existing issues related to my issue (including closed issues)
required: true
- label: My APP_URL is set correctly in my .env file (including http or https and no trailing slash)
required: true
- label: I have searched the official Snipe-IT documentation and have checked the Common Issues documentation (where applicable)
required: true
- label: I have run database migrations (where applicable).
required: true
- label: I have attached screenshots and/or videos of the issue (where applicable)
required: true
- type: checkboxes
id: terms
attributes:
label: Code of Conduct
description: By submitting this issue, you agree to follow our [Code of Conduct](https://github.com/grokability/snipe-it/blob/master/CODE_OF_CONDUCT.md).
options:
- label: I agree to follow this project's Code of Conduct
required: true
@@ -0,0 +1,38 @@
name: Feature Request
description: Request a new feature.
title: "[Feature]: "
projects: ["grokability/snipe-it"]
type: feature
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to fill out this feature request! Please make sure to search the existing issues in this repository to see if your feature has already been requested, and feel free to add your context to any existing requests.
**Please write your issue in English.** You can use tools like [DeepL](https://www.deepl.com) or [Google Translate](https://translate.google.com/) to translate if necessary.
**If you choose to upload screenshots or videos (which we always encourage), please make sure they do not contain any sensitive information.**
- type: input
id: version
attributes:
label: Snipe-IT Version
description: What version of Snipe-IT are you currently running? You can find the version number in the footer of any page in Snipe-IT.
placeholder: ex. v8.3.1 - build 19577 (master)
validations:
required: true
- type: textarea
id: feature-description
attributes:
label: How can we help?
description: Let us know in detail what feature you'd like to see added. While we can't promise to implement every feature request, we do read every one and take them into consideration when planning future releases.
placeholder: Tell us what you'd like to see in Snipe-IT! (Be nice!)
validations:
required: true
- type: checkboxes
id: terms
attributes:
label: Code of Conduct
description: By submitting this issue, you agree to follow our [Code of Conduct](https://github.com/grokability/snipe-it/blob/master/CODE_OF_CONDUCT.md).
options:
- label: I agree to follow this project's Code of Conduct
required: true
-129
View File
@@ -1,129 +0,0 @@
name: Bug Report
description: Create a report to help us improve
body:
- type: checkboxes
attributes:
label: Debug mode
description: Please confirm you have done the following before posting your bug report
options:
- label: I have enabled debug mode
required: true
- label: I have read [checked the Common Issues page](https://snipe-it.readme.io/docs/common-issues)
required: true
- type: textarea
attributes:
label: Describe the bug
description: A clear and concise description of what the bug is.
validations:
required: true
- type: textarea
attributes:
label: Reproduction steps
description: Steps to reproduce the behavior.
value: |
1.
2.
3.
...
validations:
required: true
- type: textarea
attributes:
label: Expected behavior
description: A clear and concise description of what you expected to happen.
validations:
required: true
- type: textarea
attributes:
label: Screenshots
description: 'If applicable, add screenshots to help explain your problem.'
- type: markdown
attributes:
value: "### Server"
- type: input
attributes:
label: Snipe-IT Version
validations:
required: true
- type: input
id: server_operatingSystem
attributes:
label: Operating System
description: 'e.g. Ubuntu, Windows'
validations:
required: true
- type: input
attributes:
label: Web Server
description: 'e.g. Apache, IIS'
validations:
required: true
- type: input
attributes:
label: PHP Version
validations:
required: true
- type: markdown
attributes:
value: "### Desktop"
- type: input
id: desktop_operatingSystem
attributes:
label: Operating System
description: 'e.g. Ubuntu, Windows'
- type: input
id: desktop_browser
attributes:
label: Browser
description: 'e.g. Google Chrome, Safari'
- type: input
id: desktop_version
attributes:
label: Version
description: 'e.g. 93'
- type: markdown
attributes:
value: "### Mobile"
- type: input
attributes:
label: Device
description: 'e.g. iPhone 6, Pixel 4a'
- type: input
id: mobile_operatingSystem
attributes:
label: Operating System
description: 'e.g. iOS 8.1, Android 9'
- type: input
id: mobile_browser
attributes:
label: Browser
description: 'e.g. Google Chrome, Safari'
- type: input
id: mobile_version
attributes:
label: Version
description: 'e.g. 93'
- type: textarea
attributes:
label: Error messages
description: |
WITH DEBUG TURNED ON, if you're getting an error in your browser, include that error
If a stacktrace is provided in the error, include that too.
Any errors that appear in your browser's error console.
Confirm whether the error is reproducible on the demo: https://snipeitapp.com/demo.
Include any additional information you can find in `storage/logs` and your webserver's logs.
Include the output from `php -m` (this should display what modules you have enabled.)
render: shell
- type: textarea
attributes:
label: Additional context
description: |
Is this a fresh install or an upgrade?
What OS and web server you're running Snipe-IT on
What method you used to install Snipe-IT (install.sh, manual installation, docker, etc)
Include what you've done so far in the installation, and if you got any error messages along the way.
Indicate whether or not you've manually edited any data directly in the database
Add any other context about the problem here.
- type: markdown
attributes:
value: Please do not post an issue without answering the related questions above. If you have opened a different issue and already answered these questions, answer them again, once for every ticket. It will be next to impossible for us to help you.
-1
View File
@@ -1 +0,0 @@
blank_issues_enabled: false
@@ -1,25 +0,0 @@
name: Feature Request
description: Suggest an idea for this project
title: "[Feature Request]: "
labels: ["feature request"]
body:
- type: textarea
attributes:
label: Is your feature request related to a problem? Please describe.
description: A clear and concise description of what the problem is. The more information you can provide about your use-case, the more liklely we are to consider your feature.
validations:
required: true
- type: textarea
attributes:
label: Describe the solution you'd like
description: A clear and concise description of what you want to happen.
validations:
required: true
- type: textarea
attributes:
label: Describe alternatives you've considered
description: A clear and concise description of any alternative solutions or features you've considered.
- type: textarea
attributes:
label: Additional context
description: Add any other context or screenshots about the feature request here.
+4 -3
View File
@@ -1,10 +1,11 @@
frontend: ["*.js", "*.css", "*.vue", "*.scss", "*.less", "*.blade.*", "resources/views/livewire/*"]
frontend: ["*.js", "*.css", "*.scss", "*.less", "*.blade.*", "resources/views/livewire/*","resources/views/layouts/default.blade.php"]
skins: ["*.js", "*.css", "*.scss", "*.less"]
css: ["*.css","*.scss", "*.less"]
javascript: ["*.js", "package.json", "package.lock"]
backend: ["/app/*", "composer.json", "composer.lock"]
translations: ["/resources/lang"]
translations: ["/resources/lang/*"]
livewire: ["/app/Http/Livewire/*", "resources/views/livewire/*"]
blade-components: ["resources/views/blade/*"]
backups: ["*backup*"]
restore: ["*restore*"]
saml: ["*saml*"]
@@ -16,7 +17,7 @@ api: ["/app/Http/Controllers/Api/*"]
notifications: ["/app/Notifications/*"]
importer: ["/app/Importer/*","/app/Http/Livewire/Importer.php", "resources/views/livewire/importer.php"]
cli / artisan: ["/app/Console/*"]
LDAP: ["*Ldap*", "/app/Console/Commands/Ldap*","/app/Models/Ldap.php"]
LDAP: ["*Ldap*", "/app/Console/Commands/Ldap*","/app/Models/Ldap.php", "/resources/views/users/ldap.blade.php","/resources/views/settings/ldap.blade.php"]
docker: ["*docker/*", "Dockerfile", "Dockerfile.alpine", "Dockerfile.fpm-alpine", ".dockerignore", ".env.docker"]
tests: ["/tests/*", "/database/factories/*", "/stubs"]
config: .github
+119
View File
@@ -0,0 +1,119 @@
# GitHub Copilot Custom Instructions for Snipe-IT
These instructions guide Copilot to generate code that aligns with modern Laravel 12 standards, PHP 8.2/8.4 features,
software engineering principles, and industry best practices to improve software quality, maintainability, and security.
## ✅ General Coding Standards
- Prefer short, expressive, and readable code.
- Use **meaningful, descriptive variable, function, class, and file names**.
- Apply proper PHPDoc blocks for classes, methods, and complex logic.
- Organize code into small, reusable functions or classes with single responsibility.
- Avoid magic numbers or hard-coded strings; use constants or config files.
## ✅ PHP 8.2/8.4 Best Practices
- Use **readonly properties** to enforce immutability where applicable.
- Use **Enums** instead of string or integer constants.
- Utilize **First-class callable syntax** for callbacks.
- Leverage **Constructor Property Promotion**.
- Use **Union Types**, **Intersection Types**, and **true/false return types** for strict typing.
- Apply **Static Return Type** where needed.
- Use the **Nullsafe Operator (?->)** for optional chaining.
- Adopt **final classes** where extension is not intended.
- Use **Named Arguments** for improved clarity when calling functions with multiple parameters.
## ✅ Laravel 12 Project Structure & Conventions
- Follow the official Laravel project structure:
- `app/Http/Controllers` - Controllers
- `app/Models` - Eloquent models
- `app/Http/Requests` - Form request validation
- `app/Http/Resources` - API resource responses
- `app/Enums` - Enums
- `app/Actions` - Single-responsibility action classes
- `app/Policies` - Authorization logic
- `app/Models/Builders` - Query scoping logic
- Controllers must:
- Use dependency injection.
- Use Form Requests for validation. The request class should utilize the rules set on the model.
- Return typed responses (e.g., `JsonResponse`).
- Use Transformers for API responses.
## ✅ Eloquent ORM & Database
- Use **Eloquent Models** with proper `$fillable` or `$guarded` attributes for mass assignment protection.
- Utilize **casts** for date, boolean, JSON, and custom data types.
- Apply **accessors & mutators** for attribute transformation.
- Avoid direct raw SQL unless absolutely necessary; prefer Eloquent or Query Builder.
- Migrations:
- Always use migrations for schema changes.
- Include proper constraints (foreign keys, unique indexes, etc.).
- Prefer UUIDs or ULIDs as primary keys where applicable.
## ✅ API Development
- Use **Transformer classes** for consistent and structured JSON responses.
- Apply **route model binding** where possible.
- Use Form Requests for input validation.
## ✅ Blade & Frontend (if applicable)
- Keep Blade templates clean and logic-free; use View Composers or dedicated View Models for complex data.
- Use `@props`, `@aware`, `@once` Blade features appropriately.
- Utilize Alpine.js or Livewire for interactive frontend logic (optional).
## ✅ Security Best Practices
- Never trust user input; always validate and sanitize inputs.
- Use prepared statements via Eloquent or Query Builder to prevent SQL injection.
- Use Laravel's built-in CSRF, XSS, and validation mechanisms.
- Store sensitive information in `.env`, never hard-code secrets.
- Apply proper authorization checks using Policies or Gates.
- Follow principle of least privilege for users, roles, and permissions.
## ✅ Testing Standards
- Use **factories** for test data setup.
- Include feature tests for user-facing functionality.
- Include unit tests for business logic, services, and helper classes.
- Mock external services using Laravel's `Http::fake()` or equivalent.
- Maintain high code coverage but focus on meaningful tests over 100% coverage obsession.
## ✅ Software Quality & Maintainability
- Follow **SOLID Principles**:
- Single Responsibility Principle (SRP)
- Open/Closed Principle (OCP)
- Liskov Substitution Principle (LSP)
- Interface Segregation Principle (ISP)
- Dependency Inversion Principle (DIP)
- Follow **DRY** (Don't Repeat Yourself) and **KISS** (Keep It Simple, Stupid) principles.
- Apply **YAGNI** (You Aren't Gonna Need It) to avoid overengineering.
- Document complex logic with PHPDoc and inline comments.
## ✅ Performance & Optimization
- Eager load relationships to avoid N+1 queries.
- Use caching with Laravel's Cache system for frequently accessed data.
- Paginate large datasets using `paginate()` instead of `get()`.
- Queue long-running tasks using Laravel Queues.
- Optimize database indexes for common queries.
## ✅ Modern Laravel Features to Use
- Use **Event Broadcasting** if real-time updates are needed.
- Use **Full-text search** if search functionality is required.
- Use **Rate Limiting** for API routes.
## ✅ Additional Copilot Behavior Preferences
- Generate **strictly typed**, modern PHP code using latest language features.
- Prioritize **readable, clean, maintainable** code over cleverness.
- Avoid legacy or deprecated Laravel patterns (facade overuse, logic-heavy views, etc.).
- Suggest proper class placement based on Laravel directory structure.
- Suggest tests alongside new features where applicable.
- Default to **immutability**, **dependency injection**, and **encapsulation** best practices.
No newline at end of file
-40
View File
@@ -1,40 +0,0 @@
# Description
Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context, providing screenshots where practical. List any dependencies that are required for this change.
Fixes # (issue)
## Type of change
Please delete options that are not relevant.
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
- [ ] This change requires a documentation update
# How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration
- [ ] Test A
- [ ] Test B
**Test Configuration**:
* PHP version:
* MySQL version
* Webserver version
* OS version
# Checklist:
- [ ] I have read the Contributing documentation available here: https://snipe-it.readme.io/docs/contributing-overview
- [ ] I have formatted this PR according to the project guidelines: https://snipe-it.readme.io/docs/contributing-overview#pull-request-guidelines
- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my own code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [ ] My changes generate no new warnings
- [ ] I have added tests that prove my fix is effective or that my feature works
- [ ] New and existing unit tests pass locally with my changes
-1
View File
@@ -1 +0,0 @@
memory_limit= 2048M
-7
View File
@@ -1,7 +0,0 @@
# Configuration for weekly-digest - https://github.com/apps/weekly-digest
publishDay: sun
canPublishIssues: true
canPublishPullRequests: true
canPublishContributors: true
canPublishStargazers: true
canPublishCommits: true
+4 -4
View File
@@ -26,14 +26,14 @@ jobs:
language: [ 'javascript' ]
steps:
- name: Checkout repository
uses: actions/checkout@v4
uses: actions/checkout@v6
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v3
uses: github/codeql-action/init@v4
with:
languages: ${{ matrix.language }}
- name: Autobuild
uses: github/codeql-action/autobuild@v3
uses: github/codeql-action/autobuild@v4
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3
uses: github/codeql-action/analyze@v4
-57
View File
@@ -1,57 +0,0 @@
# This workflow checks out code, performs a Codacy security scan
# and integrates the results with the
# GitHub Advanced Security code scanning feature. For more information on
# the Codacy security scan action usage and parameters, see
# https://github.com/codacy/codacy-analysis-cli-action.
# For more information on Codacy Analysis CLI in general, see
# https://github.com/codacy/codacy-analysis-cli.
name: Codacy Security Scan
on:
push:
branches: [ master ]
pull_request:
# The branches below must be a subset of the branches above
branches: [ master ]
schedule:
- cron: '36 23 * * 3'
permissions:
contents: read
jobs:
codacy-security-scan:
# Ensure schedule job never runs on forked repos. It's only executed for 'snipe/snipe-it'
permissions:
contents: read # for actions/checkout to fetch code
security-events: write # for github/codeql-action/upload-sarif to upload SARIF results
if: (github.repository == 'snipe/snipe-it') || ((github.repository != 'snipe/snipe-it') && (github.event_name != 'schedule'))
name: Codacy Security Scan
runs-on: ubuntu-latest
steps:
# Checkout the repository to the GitHub Actions runner
- name: Checkout code
uses: actions/checkout@v4
# Execute Codacy Analysis CLI and generate a SARIF output with the security issues identified during the analysis
- name: Run Codacy Analysis CLI
uses: codacy/codacy-analysis-cli-action@v4.4.5
with:
# Check https://github.com/codacy/codacy-analysis-cli#project-token to get your project token from your Codacy repository
# You can also omit the token and run the tools that support default configurations
project-token: ${{ secrets.CODACY_PROJECT_TOKEN }}
verbose: true
output: results.sarif
format: sarif
# Adjust severity of non-security issues
gh-code-scanning-compat: true
# Force 0 exit code to allow SARIF file generation
# This will handover control about PR rejection to the GitHub side
max-allowed-issues: 2147483647
# Upload the SARIF file generated in the previous step
- name: Upload SARIF results file
uses: github/codeql-action/upload-sarif@v3
with:
sarif_file: results.sarif
+1 -1
View File
@@ -9,7 +9,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v6
- name: Crowdin push
uses: crowdin/github-action@v2
+8 -8
View File
@@ -20,8 +20,8 @@ permissions:
jobs:
docker:
# Ensure this job never runs on forked repos. It's only executed for 'snipe/snipe-it'
if: github.repository == 'snipe/snipe-it'
# Ensure this job never runs on forked repos. It's only executed for 'grokability/snipe-it'
if: github.repository == 'grokability/snipe-it'
runs-on: ubuntu-latest
env:
# Define tags to use for Docker images based on Git tags/branches (for docker/metadata-action)
@@ -32,7 +32,7 @@ jobs:
type=raw,value=latest,enable=${{ endsWith(github.ref, github.event.repository.default_branch) }},suffix=-alpine
type=ref,event=branch,enable=${{ !endsWith(github.ref, github.event.repository.default_branch) }},suffix=-alpine
type=ref,event=tag,suffix=-alpine
type=semver,pattern=v{{major}}-latest-alpine
type=semver,pattern=v{{major}}-latest-alpine
# Define default tag "flavor" for docker/metadata-action per
# https://github.com/docker/metadata-action#flavor-input
# We turn off 'latest' tag by default.
@@ -42,17 +42,17 @@ jobs:
steps:
# https://github.com/actions/checkout
- name: Checkout codebase
uses: actions/checkout@v4
uses: actions/checkout@v6
# https://github.com/docker/setup-buildx-action
- name: Setup Docker Buildx
uses: docker/setup-buildx-action@v3
uses: docker/setup-buildx-action@v4
# https://github.com/docker/login-action
- name: Login to DockerHub
# Only login if not a PR, as PRs only trigger a Docker build and not a push
if: github.event_name != 'pull_request'
uses: docker/login-action@v3
uses: docker/login-action@v4
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_ACCESS_TOKEN }}
@@ -64,7 +64,7 @@ jobs:
# Get Metadata for docker_build step below
- name: Sync metadata (tags, labels) from GitHub to Docker for 'snipe-it' image
id: meta_build
uses: docker/metadata-action@v5
uses: docker/metadata-action@v6
with:
images: snipe/snipe-it
tags: ${{ env.IMAGE_TAGS }}
@@ -73,7 +73,7 @@ jobs:
# https://github.com/docker/build-push-action
- name: Build and push 'snipe-it' image
id: docker_build
uses: docker/build-push-action@v6
uses: docker/build-push-action@v7
with:
context: .
file: ./Dockerfile.alpine
+86
View File
@@ -0,0 +1,86 @@
# Snipe-IT Docker image build for hub.docker.com
name: Docker images (Ubuntu)
# Run this Build for all pushes to 'master' or develop branch, or tagged releases.
# Also run for PRs to ensure PR doesn't break Docker build process
on:
push:
branches:
- master
- develop
tags:
- 'v**'
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
pull_request:
permissions:
contents: read
jobs:
docker:
# Ensure this job never runs on forked repos. It's only executed for 'grokability/snipe-it'
if: github.repository == 'grokability/snipe-it'
runs-on: ubuntu-latest
env:
# Define tags to use for Docker images based on Git tags/branches (for docker/metadata-action)
# For a new commit on default branch (master), use the literal tag 'latest' on Docker image.
# For a new commit on other branches, use the branch name as the tag for Docker image.
# For a new tag, copy that tag name as the tag for Docker image.
IMAGE_TAGS: |
type=raw,value=latest,enable=${{ endsWith(github.ref, github.event.repository.default_branch) }}
type=ref,event=branch,enable=${{ !endsWith(github.ref, github.event.repository.default_branch) }}
type=ref,event=tag
type=semver,pattern=v{{major}}-latest
# Define default tag "flavor" for docker/metadata-action per
# https://github.com/docker/metadata-action#flavor-input
# We turn off 'latest' tag by default.
TAGS_FLAVOR: |
latest=false
steps:
# https://github.com/actions/checkout
- name: Checkout codebase
uses: actions/checkout@v6
# https://github.com/docker/setup-buildx-action
- name: Setup Docker Buildx
uses: docker/setup-buildx-action@v4
# https://github.com/docker/login-action
- name: Login to DockerHub
# Only login if not a PR, as PRs only trigger a Docker build and not a push
if: github.event_name != 'pull_request'
uses: docker/login-action@v4
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_ACCESS_TOKEN }}
###############################################
# Build/Push the 'snipe/snipe-it' image
###############################################
# https://github.com/docker/metadata-action
# Get Metadata for docker_build step below
- name: Sync metadata (tags, labels) from GitHub to Docker for 'snipe-it' image
id: meta_build
uses: docker/metadata-action@v6
with:
images: snipe/snipe-it
tags: ${{ env.IMAGE_TAGS }}
flavor: ${{ env.TAGS_FLAVOR }}
# https://github.com/docker/build-push-action
- name: Build and push 'snipe-it' image
id: docker_build
uses: docker/build-push-action@v7
with:
context: .
file: ./Dockerfile
platforms: linux/amd64,linux/arm64
# For pull requests, we run the Docker build (to ensure no PR changes break the build),
# but we ONLY do an image push to DockerHub if it's NOT a PR
push: ${{ github.event_name != 'pull_request' }}
# Use tags / labels provided by 'docker/metadata-action' above
tags: ${{ steps.meta_build.outputs.tags }}
labels: ${{ steps.meta_build.outputs.labels }}
-86
View File
@@ -1,86 +0,0 @@
# Snipe-IT Docker image build for hub.docker.com
name: Docker images
# Run this Build for all pushes to 'master' or develop branch, or tagged releases.
# Also run for PRs to ensure PR doesn't break Docker build process
on:
push:
branches:
- master
- develop
tags:
- 'v**'
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
pull_request:
permissions:
contents: read
jobs:
docker:
# Ensure this job never runs on forked repos. It's only executed for 'snipe/snipe-it'
if: github.repository == 'snipe/snipe-it'
runs-on: ubuntu-latest
env:
# Define tags to use for Docker images based on Git tags/branches (for docker/metadata-action)
# For a new commit on default branch (master), use the literal tag 'latest' on Docker image.
# For a new commit on other branches, use the branch name as the tag for Docker image.
# For a new tag, copy that tag name as the tag for Docker image.
IMAGE_TAGS: |
type=raw,value=latest,enable=${{ endsWith(github.ref, github.event.repository.default_branch) }}
type=ref,event=branch,enable=${{ !endsWith(github.ref, github.event.repository.default_branch) }}
type=ref,event=tag
type=semver,pattern=v{{major}}-latest
# Define default tag "flavor" for docker/metadata-action per
# https://github.com/docker/metadata-action#flavor-input
# We turn off 'latest' tag by default.
TAGS_FLAVOR: |
latest=false
steps:
# https://github.com/actions/checkout
- name: Checkout codebase
uses: actions/checkout@v4
# https://github.com/docker/setup-buildx-action
- name: Setup Docker Buildx
uses: docker/setup-buildx-action@v3
# https://github.com/docker/login-action
- name: Login to DockerHub
# Only login if not a PR, as PRs only trigger a Docker build and not a push
if: github.event_name != 'pull_request'
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_ACCESS_TOKEN }}
###############################################
# Build/Push the 'snipe/snipe-it' image
###############################################
# https://github.com/docker/metadata-action
# Get Metadata for docker_build step below
- name: Sync metadata (tags, labels) from GitHub to Docker for 'snipe-it' image
id: meta_build
uses: docker/metadata-action@v5
with:
images: snipe/snipe-it
tags: ${{ env.IMAGE_TAGS }}
flavor: ${{ env.TAGS_FLAVOR }}
# https://github.com/docker/build-push-action
- name: Build and push 'snipe-it' image
id: docker_build
uses: docker/build-push-action@v6
with:
context: .
file: ./Dockerfile
platforms: linux/amd64,linux/arm64
# For pull requests, we run the Docker build (to ensure no PR changes break the build),
# but we ONLY do an image push to DockerHub if it's NOT a PR
push: ${{ github.event_name != 'pull_request' }}
# Use tags / labels provided by 'docker/metadata-action' above
tags: ${{ steps.meta_build.outputs.tags }}
labels: ${{ steps.meta_build.outputs.labels }}
+1 -1
View File
@@ -11,7 +11,7 @@ jobs:
dockerHubDescription:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- name: Docker Hub Description
uses: grokability/dockerhub-description@7ea9d275c7cdbe2b676a093a0308c50665e3b8b4
+1 -1
View File
@@ -11,7 +11,7 @@ jobs:
issues: write
# pull-requests: write
steps:
- uses: actions/stale@v9
- uses: actions/stale@v10
with:
debug-only: true
ascending: true
+17 -4
View File
@@ -25,9 +25,10 @@ jobs:
fail-fast: false
matrix:
php-version:
- "8.1"
- "8.2"
- "8.3"
- "8.4"
- "8.5"
name: PHP ${{ matrix.php-version }}
@@ -37,13 +38,13 @@ jobs:
php-version: "${{ matrix.php-version }}"
coverage: none
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- name: Get Composer Cache Directory
id: composer-cache
run: |
echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
- uses: actions/cache@v4
- uses: actions/cache@v5
with:
path: ${{ steps.composer-cache.outputs.dir }}
key: ${{ runner.os }}-${{ matrix.php-version }}-composer-${{ hashFiles('**/composer.lock') }}
@@ -67,7 +68,7 @@ jobs:
run: |
php artisan key:generate
php artisan migrate --force
php artisan passport:install
php artisan passport:install --no-interaction
chmod -R 777 storage bootstrap/cache
- name: Execute tests (Unit and Feature tests) via PHPUnit
@@ -76,4 +77,16 @@ jobs:
DB_DATABASE: snipeit
DB_PORT: ${{ job.services.mysql.ports[3306] }}
DB_USERNAME: root
LOG_CHANNEL: single
LOG_LEVEL: debug
run: php artisan test
- name: Upload Laravel logs as artifacts
if: always()
uses: actions/upload-artifact@v7
with:
name: laravel-logs-php-${{ matrix.php-version }}-run-${{ github.run_attempt }}
path: |
storage/logs/*.log
if-no-files-found: ignore
retention-days: 7
+18 -4
View File
@@ -21,9 +21,11 @@ jobs:
fail-fast: false
matrix:
php-version:
- "8.1"
- "8.2"
- "8.3"
- "8.4"
- "8.5"
name: PHP ${{ matrix.php-version }}
@@ -33,13 +35,13 @@ jobs:
php-version: "${{ matrix.php-version }}"
coverage: none
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- name: Get Composer Cache Directory
id: composer-cache
run: |
echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
- uses: actions/cache@v4
- uses: actions/cache@v5
with:
path: ${{ steps.composer-cache.outputs.dir }}
key: ${{ runner.os }}-${{ matrix.php-version }}-composer-${{ hashFiles('**/composer.lock') }}
@@ -64,7 +66,7 @@ jobs:
run: |
php artisan key:generate
php artisan migrate --force
php artisan passport:install
php artisan passport:install --no-interaction
chmod -R 777 storage bootstrap/cache
- name: Execute tests (Unit and Feature tests) via PHPUnit
@@ -74,4 +76,16 @@ jobs:
DB_PORT: ${{ job.services.postgresql.ports[5432] }}
DB_USERNAME: snipeit
DB_PASSWORD: password
LOG_CHANNEL: single
LOG_LEVEL: debug
run: php artisan test
- name: Upload Laravel logs as artifacts
if: always()
uses: actions/upload-artifact@v7
with:
name: laravel-logs-php-${{ matrix.php-version }}-run-${{ github.run_attempt }}
path: |
storage/logs/*.log
if-no-files-found: ignore
retention-days: 7
+19 -4
View File
@@ -15,7 +15,7 @@ jobs:
fail-fast: false
matrix:
php-version:
- "8.1.1"
- "8.5"
name: PHP ${{ matrix.php-version }}
@@ -25,13 +25,13 @@ jobs:
php-version: "${{ matrix.php-version }}"
coverage: none
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- name: Get Composer Cache Directory
id: composer-cache
run: |
echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
- uses: actions/cache@v4
- uses: actions/cache@v5
with:
path: ${{ steps.composer-cache.outputs.dir }}
key: ${{ runner.os }}-${{ matrix.php-version }}-composer-${{ hashFiles('**/composer.lock') }}
@@ -43,6 +43,9 @@ jobs:
cp -v .env.testing.example .env
cp -v .env.testing.example .env.testing
- name: Create database file
run: touch database/database.sqlite
- name: Install Dependencies
run: composer install -q --no-ansi --no-interaction --no-scripts --no-progress --prefer-dist
@@ -57,5 +60,17 @@ jobs:
- name: Execute tests (Unit and Feature tests) via PHPUnit
env:
DB_CONNECTION: sqlite_testing
DB_CONNECTION: sqlite
LOG_CHANNEL: single
LOG_LEVEL: debug
run: php artisan test
- name: Upload Laravel logs as artifacts
if: always()
uses: actions/upload-artifact@v7
with:
name: laravel-logs-php-${{ matrix.php-version }}-run-${{ github.run_attempt }}
path: |
storage/logs/*.log
if-no-files-found: ignore
retention-days: 7
+240
View File
@@ -0,0 +1,240 @@
{
"standard": "WCAG2AA",
"level": "error",
"defaults": {
"useIncognitoBrowserContext": false,
"timeout": 500000,
"wait": 5000,
"ignore" : [
"WCAG2AA.Principle1.Guideline1_4.1_4_3.G145.Fail",
"WCAG2AA.Principle1.Guideline1_4.1_4_3.G18.Fail"
],
"viewport": {
"width": 1280,
"height": 1024
}
},
"urls": [
{
"__NOTE" : "this should always be FIRST (if browser context is preserved)",
"url": "https://snipe-it.test/login",
"actions": [
"navigate to https://snipe-it.test/login",
"screen capture tests/pa11y/login.png",
"set field input[name='username'] to admin",
"set field input[name='password'] to password",
"click element button[type=submit]",
"wait for url to be https://snipe-it.test/",
"screen capture tests/pa11y/dashboard.png"
]
},
{
"url" : "https://snipe-it.test/admin",
"actions" : [
"navigate to https://snipe-it.test/admin",
"screen capture tests/pa11y/admin-settings.png"
]
},
{
"url" : "https://snipe-it.test/admin/branding",
"actions" : [
"navigate to https://snipe-it.test/admin/branding",
"screen capture tests/pa11y/admin-branding.png"
]
},
{
"url" : "https://snipe-it.test/admin/general",
"actions" : [
"navigate to https://snipe-it.test/admin/general",
"screen capture tests/pa11y/admin-general.png"
]
},
{
"url" : "https://snipe-it.test/hardware/create",
"actions" : [
"navigate to https://snipe-it.test/hardware/create",
"screen capture tests/pa11y/asset-create.png"
]
},
{
"url" : "https://snipe-it.test/hardware",
"actions" : [
"navigate to https://snipe-it.test/hardware",
"screen capture tests/pa11y/asset-list.png"
]
},
{
"url" : "https://snipe-it.test/hardware/1",
"actions" : [
"navigate to https://snipe-it.test/hardware/1",
"screen capture tests/pa11y/asset-detail.png"
]
},
{
"url" : "https://snipe-it.test/account/view-assets",
"actions" : [
"navigate to https://snipe-it.test/account/view-assets",
"screen capture tests/pa11y/profile.png"
]
},
{
"url" : "https://snipe-it.test/licences",
"actions" : [
"navigate to https://snipe-it.test/licenses",
"screen capture tests/pa11y/license-list.png"
]
},
{
"url" : "https://snipe-it.test/licences/create",
"actions" : [
"navigate to https://snipe-it.test/licenses/create",
"screen capture tests/pa11y/license-create.png"
]
},
{
"url" : "https://snipe-it.test/licences/1",
"actions" : [
"navigate to https://snipe-it.test/licenses/1",
"screen capture tests/pa11y/license-view.png"
]
},
{
"url" : "https://snipe-it.test/consumables",
"actions" : [
"navigate to https://snipe-it.test/consumables",
"screen capture tests/pa11y/consumable-list.png"
]
},
{
"url" : "https://snipe-it.test/consumables/create",
"actions" : [
"navigate to https://snipe-it.test/consumables/create",
"screen capture tests/pa11y/consumable-create.png"
]
},
{
"url" : "https://snipe-it.test/consumables/1",
"actions" : [
"navigate to https://snipe-it.test/consumables/1",
"screen capture tests/pa11y/consumable-view.png"
]
},
{
"url" : "https://snipe-it.test/accessories",
"actions" : [
"navigate to https://snipe-it.test/accessories",
"screen capture tests/pa11y/accessory-list.png"
]
},
{
"url" : "https://snipe-it.test/accessories/create",
"actions" : [
"navigate to https://snipe-it.test/accessories/create",
"screen capture tests/pa11y/accessory-create.png"
]
},
{
"url" : "https://snipe-it.test/accessories/1",
"actions" : [
"navigate to https://snipe-it.test/accessories/1",
"screen capture tests/pa11y/accessory-view.png"
]
},
{
"url" : "https://snipe-it.test/locations",
"actions" : [
"navigate to https://snipe-it.test/locations",
"screen capture tests/pa11y/location-list.png"
]
},
{
"url" : "https://snipe-it.test/locations/create",
"actions" : [
"navigate to https://snipe-it.test/locations/create",
"screen capture tests/pa11y/location-create.png"
]
},
{
"url" : "https://snipe-it.test/locations/1",
"actions" : [
"navigate to https://snipe-it.test/locations/1",
"screen capture tests/pa11y/location-view.png"
]
},
{
"url" : "https://snipe-it.test/models",
"actions" : [
"navigate to https://snipe-it.test/models",
"screen capture tests/pa11y/model-list.png"
]
},
{
"url" : "https://snipe-it.test/models/create",
"actions" : [
"navigate to https://snipe-it.test/models/create",
"screen capture tests/pa11y/model-create.png"
]
},
{
"url" : "https://snipe-it.test/models/1",
"actions" : [
"navigate to https://snipe-it.test/models/1",
"screen capture tests/pa11y/model-view.png"
]
},
{
"url" : "https://snipe-it.test/companies",
"actions" : [
"navigate to https://snipe-it.test/companies",
"screen capture tests/pa11y/company-list.png"
]
},
{
"url" : "https://snipe-it.test/companies/create",
"actions" : [
"navigate to https://snipe-it.test/companies/create",
"screen capture tests/pa11y/company-create.png"
]
},
{
"url" : "https://snipe-it.test/companies/1",
"actions" : [
"navigate to https://snipe-it.test/companies/1",
"screen capture tests/pa11y/company-view.png"
]
},
{
"url" : "https://snipe-it.test/departments",
"actions" : [
"navigate to https://snipe-it.test/departments",
"screen capture tests/pa11y/department-list.png"
]
},
{
"url" : "https://snipe-it.test/departments/create",
"actions" : [
"navigate to https://snipe-it.test/departments/create",
"screen capture tests/pa11y/department-create.png"
]
},
{
"url" : "https://snipe-it.test/departments/1",
"actions" : [
"navigate to https://snipe-it.test/departments/1",
"screen capture tests/pa11y/department-view.png"
]
},
{
"url" : "https://snipe-it.test/invalid-url",
"actions" : [
"navigate to https://snipe-it.test/invalid-url",
"screen capture tests/pa11y/404.png"
]
}
]
}
+4 -4
View File
@@ -3,8 +3,8 @@
"DOC2": "In other words, what you see locally are the requirements for your _current_ install",
"DOC3": "Please don't rely on these versions for planning upgrades unless you've fetched the most recent version",
"DOC4": "You should really just ignore it and run upgrade.php. Really",
"php_min_version": "8.1.0",
"php_max_major_minor": "8.3",
"php_max_wontwork": "8.4.0",
"current_snipeit_version": "7.0"
"php_min_version": "8.2.0",
"php_max_major_minor": "8.4",
"php_max_wontwork": "8.5.0",
"current_snipeit_version": "8.0"
}
+28 -11
View File
@@ -42,17 +42,34 @@ Thanks goes to all of these wonderful people ([emoji key](https://github.com/ken
| [<img src="https://avatars.githubusercontent.com/u/1975640?v=4" width="110px;"/><br /><sub>Evan Taylor</sub>](https://github.com/Delta5)<br />[💻](https://github.com/snipe/snipe-it/commits?author=Delta5 "Code") | [<img src="https://avatars.githubusercontent.com/u/8735148?v=4" width="110px;"/><br /><sub>Petri Asikainen</sub>](https://github.com/PetriAsi)<br />[💻](https://github.com/snipe/snipe-it/commits?author=PetriAsi "Code") | [<img src="https://avatars.githubusercontent.com/u/11424540?v=4" width="110px;"/><br /><sub>derdeagle</sub>](https://github.com/derdeagle)<br />[💻](https://github.com/snipe/snipe-it/commits?author=derdeagle "Code") | [<img src="https://avatars.githubusercontent.com/u/176950?v=4" width="110px;"/><br /><sub>Mike Frysinger</sub>](https://wh0rd.org/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=vapier "Code") | [<img src="https://avatars.githubusercontent.com/u/22044358?v=4" width="110px;"/><br /><sub>ALPHA</sub>](https://github.com/AL4AL)<br />[💻](https://github.com/snipe/snipe-it/commits?author=AL4AL "Code") | [<img src="https://avatars.githubusercontent.com/u/1042587?v=4" width="110px;"/><br /><sub>FliegenKLATSCH</sub>](https://www.ifern.de)<br />[💻](https://github.com/snipe/snipe-it/commits?author=FliegenKLATSCH "Code") | [<img src="https://avatars.githubusercontent.com/u/442138?v=4" width="110px;"/><br /><sub>Jeremy Price</sub>](https://github.com/jerm)<br />[💻](https://github.com/snipe/snipe-it/commits?author=jerm "Code") |
| [<img src="https://avatars.githubusercontent.com/u/84392209?v=4" width="110px;"/><br /><sub>Toreg87</sub>](https://github.com/Toreg87)<br />[💻](https://github.com/snipe/snipe-it/commits?author=Toreg87 "Code") | [<img src="https://avatars.githubusercontent.com/u/67638596?v=4" width="110px;"/><br /><sub>Matthew Nickson</sub>](https://github.com/Computroniks)<br />[💻](https://github.com/snipe/snipe-it/commits?author=Computroniks "Code") | [<img src="https://avatars.githubusercontent.com/u/1646397?v=4" width="110px;"/><br /><sub>Jethro Nederhof</sub>](https://jethron.id.au)<br />[💻](https://github.com/snipe/snipe-it/commits?author=jethron "Code") | [<img src="https://avatars.githubusercontent.com/u/23289826?v=4" width="110px;"/><br /><sub>Oskar Stenberg</sub>](https://github.com/01ste02)<br />[💻](https://github.com/snipe/snipe-it/commits?author=01ste02 "Code") | [<img src="https://avatars.githubusercontent.com/u/82208283?v=4" width="110px;"/><br /><sub>Robert-Azelis</sub>](https://github.com/Robert-Azelis)<br />[💻](https://github.com/snipe/snipe-it/commits?author=Robert-Azelis "Code") | [<img src="https://avatars.githubusercontent.com/u/60648387?v=4" width="110px;"/><br /><sub>Alexander William Smith</sub>](https://github.com/alwism)<br />[💻](https://github.com/snipe/snipe-it/commits?author=alwism "Code") | [<img src="https://avatars.githubusercontent.com/u/24418301?v=4" width="110px;"/><br /><sub>LEITWERK AG</sub>](https://www.leitwerk.de/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=leitwerk-ag "Code") |
| [<img src="https://avatars.githubusercontent.com/u/1911435?v=4" width="110px;"/><br /><sub>Adam</sub>](http://www.aboutcher.co.uk)<br />[💻](https://github.com/snipe/snipe-it/commits?author=adamboutcher "Code") | [<img src="https://avatars.githubusercontent.com/u/16104273?v=4" width="110px;"/><br /><sub>Ian</sub>](https://snksrv.com)<br />[💻](https://github.com/snipe/snipe-it/commits?author=sneak-it "Code") | [<img src="https://avatars.githubusercontent.com/u/4023909?v=4" width="110px;"/><br /><sub>Shao Yu-Lung (Allen)</sub>](http://blog.bestlong.idv.tw/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=bestlong "Code") | [<img src="https://avatars.githubusercontent.com/u/76475453?v=4" width="110px;"/><br /><sub>Haxatron</sub>](https://github.com/Haxatron)<br />[💻](https://github.com/snipe/snipe-it/commits?author=Haxatron "Code") | [<img src="https://avatars.githubusercontent.com/u/88776392?v=4" width="110px;"/><br /><sub>PlaneNuts</sub>](https://github.com/PlaneNuts)<br />[💻](https://github.com/snipe/snipe-it/commits?author=PlaneNuts "Code") | [<img src="https://avatars.githubusercontent.com/u/3842948?v=4" width="110px;"/><br /><sub>Bradley Coudriet</sub>](http://bjcpgd.cias.rit.edu)<br />[💻](https://github.com/snipe/snipe-it/commits?author=exula "Code") | [<img src="https://avatars.githubusercontent.com/u/21966173?v=4" width="110px;"/><br /><sub>Dalton Durst</sub>](https://daltondur.st)<br />[💻](https://github.com/snipe/snipe-it/commits?author=UniversalSuperBox "Code") |
| [<img src="https://avatars.githubusercontent.com/u/38761237?v=4" width="110px;"/><br /><sub>Alex Janes</sub>](https://adagiohealth.org)<br />[💻](https://github.com/snipe/snipe-it/commits?author=adagioajanes "Code") | [<img src="https://avatars.githubusercontent.com/u/32387849?v=4" width="110px;"/><br /><sub>Nuraeil</sub>](https://github.com/nuraeil)<br />[💻](https://github.com/snipe/snipe-it/commits?author=nuraeil "Code") | [<img src="https://avatars.githubusercontent.com/u/48162670?v=4" width="110px;"/><br /><sub>TenOfTens</sub>](https://github.com/TenOfTens)<br />[💻](https://github.com/snipe/snipe-it/commits?author=TenOfTens "Code") | [<img src="https://avatars.githubusercontent.com/u/9415391?v=4" width="110px;"/><br /><sub>waffle</sub>](https://ditisjens.be/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=insert-waffle "Code") | [<img src="https://avatars.githubusercontent.com/u/19945501?v=4" width="110px;"/><br /><sub>Yevhenii Huzii</sub>](https://github.com/QveenSi)<br />[💻](https://github.com/snipe/snipe-it/commits?author=QveenSi "Code") | [<img src="https://avatars.githubusercontent.com/u/3839381?v=4" width="110px;"/><br /><sub>Achmad Fienan Rahardianto</sub>](https://github.com/veenone)<br />[💻](https://github.com/snipe/snipe-it/commits?author=veenone "Code") | [<img src="https://avatars.githubusercontent.com/u/19945501?v=4" width="110px;"/><br /><sub>Yevhenii Huzii</sub>](https://github.com/QveenSi)<br />[💻](https://github.com/snipe/snipe-it/commits?author=QveenSi "Code") |
| [<img src="https://avatars.githubusercontent.com/u/97299851?v=4" width="110px;"/><br /><sub>Christian Weirich</sub>](https://github.com/chrisweirich)<br />[💻](https://github.com/snipe/snipe-it/commits?author=chrisweirich "Code") | [<img src="https://avatars.githubusercontent.com/u/1294403?v=4" width="110px;"/><br /><sub>denzfarid</sub>](https://github.com/denzfarid)<br /> | [<img src="https://avatars.githubusercontent.com/u/94018771?v=4" width="110px;"/><br /><sub>ntbutler-nbcs</sub>](https://github.com/ntbutler-nbcs)<br />[💻](https://github.com/snipe/snipe-it/commits?author=ntbutler-nbcs "Code") | [<img src="https://avatars.githubusercontent.com/u/172697?v=4" width="110px;"/><br /><sub>Naveen</sub>](https://naveensrinivasan.dev)<br />[💻](https://github.com/snipe/snipe-it/commits?author=naveensrinivasan "Code") | [<img src="https://avatars.githubusercontent.com/u/55674383?v=4" width="110px;"/><br /><sub>Mike Roquemore</sub>](https://github.com/mikeroq)<br />[💻](https://github.com/snipe/snipe-it/commits?author=mikeroq "Code") | [<img src="https://avatars.githubusercontent.com/u/7991086?v=4" width="110px;"/><br /><sub>Daniel Reeder</sub>](https://github.com/reederda)<br />[🌍](#translation-reederda "Translation") [🌍](#translation-reederda "Translation") [💻](https://github.com/snipe/snipe-it/commits?author=reederda "Code") | [<img src="https://avatars.githubusercontent.com/u/109422491?v=4" width="110px;"/><br /><sub>vickyjaura183</sub>](https://github.com/vickyjaura183)<br />[💻](https://github.com/snipe/snipe-it/commits?author=vickyjaura183 "Code") |
| [<img src="https://avatars.githubusercontent.com/u/32363424?v=4" width="110px;"/><br /><sub>Peace</sub>](https://github.com/julian-piehl)<br />[💻](https://github.com/snipe/snipe-it/commits?author=julian-piehl "Code") | [<img src="https://avatars.githubusercontent.com/u/231528?v=4" width="110px;"/><br /><sub>Kyle Gordon</sub>](https://github.com/kylegordon)<br />[💻](https://github.com/snipe/snipe-it/commits?author=kylegordon "Code") | [<img src="https://avatars.githubusercontent.com/u/53009155?v=4" width="110px;"/><br /><sub>Katharina Drexel</sub>](http://www.bfh.ch)<br />[💻](https://github.com/snipe/snipe-it/commits?author=sunflowerbofh "Code") | [<img src="https://avatars.githubusercontent.com/u/1931963?v=4" width="110px;"/><br /><sub>David Sferruzza</sub>](https://david.sferruzza.fr/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=dsferruzza "Code") | [<img src="https://avatars.githubusercontent.com/u/19511639?v=4" width="110px;"/><br /><sub>Rick Nelson</sub>](https://github.com/rnelsonee)<br />[💻](https://github.com/snipe/snipe-it/commits?author=rnelsonee "Code") | [<img src="https://avatars.githubusercontent.com/u/94169344?v=4" width="110px;"/><br /><sub>BasO12</sub>](https://github.com/BasO12)<br />[💻](https://github.com/snipe/snipe-it/commits?author=BasO12 "Code") | [<img src="https://avatars.githubusercontent.com/u/111710123?v=4" width="110px;"/><br /><sub>Vautia</sub>](https://github.com/Vautia)<br />[💻](https://github.com/snipe/snipe-it/commits?author=Vautia "Code") |
| [<img src="https://avatars.githubusercontent.com/u/28321?v=4" width="110px;"/><br /><sub>Chris Hartjes</sub>](http://www.littlehart.net/atthekeyboard)<br />[💻](https://github.com/snipe/snipe-it/commits?author=chartjes "Code") | [<img src="https://avatars.githubusercontent.com/u/2404584?v=4" width="110px;"/><br /><sub>geo-chen</sub>](https://github.com/geo-chen)<br />[💻](https://github.com/snipe/snipe-it/commits?author=geo-chen "Code") | [<img src="https://avatars.githubusercontent.com/u/6006620?v=4" width="110px;"/><br /><sub>Phan Nguyen</sub>](https://github.com/nh314)<br />[💻](https://github.com/snipe/snipe-it/commits?author=nh314 "Code") | [<img src="https://avatars.githubusercontent.com/u/115993812?v=4" width="110px;"/><br /><sub>Iisakki Jaakkola</sub>](https://github.com/StarlessNights)<br />[💻](https://github.com/snipe/snipe-it/commits?author=StarlessNights "Code") | [<img src="https://avatars.githubusercontent.com/u/22633385?v=4" width="110px;"/><br /><sub>Ikko Ashimine</sub>](https://bandism.net/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=eltociear "Code") | [<img src="https://avatars.githubusercontent.com/u/56871540?v=4" width="110px;"/><br /><sub>Lukas Fehling</sub>](https://github.com/lukasfehling)<br />[💻](https://github.com/snipe/snipe-it/commits?author=lukasfehling "Code") | [<img src="https://avatars.githubusercontent.com/u/1975990?v=4" width="110px;"/><br /><sub>Fernando Almeida</sub>](https://github.com/fernando-almeida)<br />[💻](https://github.com/snipe/snipe-it/commits?author=fernando-almeida "Code") |
| [<img src="https://avatars.githubusercontent.com/u/116301219?v=4" width="110px;"/><br /><sub>akemidx</sub>](https://github.com/akemidx)<br />[💻](https://github.com/snipe/snipe-it/commits?author=akemidx "Code") | [<img src="https://avatars.githubusercontent.com/u/144778?v=4" width="110px;"/><br /><sub>Oguz Bilgic</sub>](http://oguz.site)<br />[💻](https://github.com/snipe/snipe-it/commits?author=oguzbilgic "Code") | [<img src="https://avatars.githubusercontent.com/u/9262438?v=4" width="110px;"/><br /><sub>Scooter Crawford</sub>](https://github.com/scoo73r)<br />[💻](https://github.com/snipe/snipe-it/commits?author=scoo73r "Code") | [<img src="https://avatars.githubusercontent.com/u/5957345?v=4" width="110px;"/><br /><sub>subdriven</sub>](https://github.com/subdriven)<br />[💻](https://github.com/snipe/snipe-it/commits?author=subdriven "Code") | [<img src="https://avatars.githubusercontent.com/u/658865?v=4" width="110px;"/><br /><sub>Andrew Savinykh</sub>](https://github.com/AndrewSav)<br />[💻](https://github.com/snipe/snipe-it/commits?author=AndrewSav "Code") | [<img src="https://avatars.githubusercontent.com/u/1155067?v=4" width="110px;"/><br /><sub>Tadayuki Onishi</sub>](https://kenchan0130.github.io)<br />[💻](https://github.com/snipe/snipe-it/commits?author=kenchan0130 "Code") | [<img src="https://avatars.githubusercontent.com/u/112496896?v=4" width="110px;"/><br /><sub>Florian</sub>](https://github.com/floschoepfer)<br />[💻](https://github.com/snipe/snipe-it/commits?author=floschoepfer "Code") |
| [<img src="https://avatars.githubusercontent.com/u/7305753?v=4" width="110px;"/><br /><sub>Spencer Long</sub>](http://spencerlong.com)<br />[💻](https://github.com/snipe/snipe-it/commits?author=spencerrlongg "Code") | [<img src="https://avatars.githubusercontent.com/u/1141514?v=4" width="110px;"/><br /><sub>Marcus Moore</sub>](https://github.com/marcusmoore)<br />[💻](https://github.com/snipe/snipe-it/commits?author=marcusmoore "Code") | [<img src="https://avatars.githubusercontent.com/u/570639?v=4" width="110px;"/><br /><sub>Martin Meredith</sub>](https://github.com/Mezzle)<br /> | [<img src="https://avatars.githubusercontent.com/u/5731963?v=4" width="110px;"/><br /><sub>dboth</sub>](http://dboth.de)<br />[💻](https://github.com/snipe/snipe-it/commits?author=dboth "Code") | [<img src="https://avatars.githubusercontent.com/u/87536651?v=4" width="110px;"/><br /><sub>Zachary Fleck</sub>](https://github.com/zacharyfleck)<br />[💻](https://github.com/snipe/snipe-it/commits?author=zacharyfleck "Code") | [<img src="https://avatars.githubusercontent.com/u/74609912?v=4" width="110px;"/><br /><sub>VIKAAS-A</sub>](https://github.com/vikaas-cyper)<br />[💻](https://github.com/snipe/snipe-it/commits?author=vikaas-cyper "Code") | [<img src="https://avatars.githubusercontent.com/u/88882041?v=4" width="110px;"/><br /><sub>Abdul Kareem</sub>](https://github.com/ak-piracha)<br />[💻](https://github.com/snipe/snipe-it/commits?author=ak-piracha "Code") |
| [<img src="https://avatars.githubusercontent.com/u/111287779?v=4" width="110px;"/><br /><sub>NojoudAlshehri</sub>](https://github.com/NojoudAlshehri)<br />[💻](https://github.com/snipe/snipe-it/commits?author=NojoudAlshehri "Code") | [<img src="https://avatars.githubusercontent.com/u/54367449?v=4" width="110px;"/><br /><sub>Stefan Stidl</sub>](https://github.com/stefanstidlffg)<br />[💻](https://github.com/snipe/snipe-it/commits?author=stefanstidlffg "Code") | [<img src="https://avatars.githubusercontent.com/u/87803479?v=4" width="110px;"/><br /><sub>Quentin Aymard</sub>](https://github.com/qay21)<br />[💻](https://github.com/snipe/snipe-it/commits?author=qay21 "Code") | [<img src="https://avatars.githubusercontent.com/u/5396871?v=4" width="110px;"/><br /><sub>Grant Le Roux</sub>](https://github.com/cram42)<br />[💻](https://github.com/snipe/snipe-it/commits?author=cram42 "Code") | [<img src="https://avatars.githubusercontent.com/u/58479551?v=4" width="110px;"/><br /><sub>Bogdan</sub>](http://@singrity)<br />[💻](https://github.com/snipe/snipe-it/commits?author=Singrity "Code") | [<img src="https://avatars.githubusercontent.com/u/3483684?v=4" width="110px;"/><br /><sub>mmanjos</sub>](https://github.com/mmanjos)<br />[💻](https://github.com/snipe/snipe-it/commits?author=mmanjos "Code") | [<img src="https://avatars.githubusercontent.com/u/7429229?v=4" width="110px;"/><br /><sub>Abdelaziz Faki</sub>](https://azooz2014.github.io/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=Azooz2014 "Code") |
| [<img src="https://avatars.githubusercontent.com/u/47315739?v=4" width="110px;"/><br /><sub>bilias</sub>](https://github.com/bilias)<br />[💻](https://github.com/snipe/snipe-it/commits?author=bilias "Code") | [<img src="https://avatars.githubusercontent.com/u/2565989?v=4" width="110px;"/><br /><sub>coach1988</sub>](https://github.com/coach1988)<br />[💻](https://github.com/snipe/snipe-it/commits?author=coach1988 "Code") | [<img src="https://avatars.githubusercontent.com/u/11910225?v=4" width="110px;"/><br /><sub>MrM</sub>](https://github.com/mauro-miatello)<br />[💻](https://github.com/snipe/snipe-it/commits?author=mauro-miatello "Code") | [<img src="https://avatars.githubusercontent.com/u/60405354?v=4" width="110px;"/><br /><sub>koiakoia</sub>](https://github.com/koiakoia)<br />[💻](https://github.com/snipe/snipe-it/commits?author=koiakoia "Code") | [<img src="https://avatars.githubusercontent.com/u/5323832?v=4" width="110px;"/><br /><sub>Mustafa Online</sub>](https://github.com/mustafa-online)<br />[💻](https://github.com/snipe/snipe-it/commits?author=mustafa-online "Code") | [<img src="https://avatars.githubusercontent.com/u/104601439?v=4" width="110px;"/><br /><sub>franceslui</sub>](https://github.com/franceslui)<br />[💻](https://github.com/snipe/snipe-it/commits?author=franceslui "Code") | [<img src="https://avatars.githubusercontent.com/u/125313163?v=4" width="110px;"/><br /><sub>Q4kK</sub>](https://github.com/Q4kK)<br />[💻](https://github.com/snipe/snipe-it/commits?author=Q4kK "Code") |
| [<img src="https://avatars.githubusercontent.com/u/55590532?v=4" width="110px;"/><br /><sub>squintfox</sub>](https://github.com/squintfox)<br />[💻](https://github.com/snipe/snipe-it/commits?author=squintfox "Code") | [<img src="https://avatars.githubusercontent.com/u/1380084?v=4" width="110px;"/><br /><sub>Jeff Clay</sub>](https://github.com/jeffclay)<br />[💻](https://github.com/snipe/snipe-it/commits?author=jeffclay "Code") | [<img src="https://avatars.githubusercontent.com/u/52716446?v=4" width="110px;"/><br /><sub>Phil J R</sub>](https://github.com/PP-JN-RL)<br />[💻](https://github.com/snipe/snipe-it/commits?author=PP-JN-RL "Code") | [<img src="https://avatars.githubusercontent.com/u/1496725?v=4" width="110px;"/><br /><sub>i_virus</sub>](https://www.corelight.com/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=chandanchowdhury "Code") | [<img src="https://avatars.githubusercontent.com/u/1020541?v=4" width="110px;"/><br /><sub>Paul Grime</sub>](https://github.com/gitgrimbo)<br />[💻](https://github.com/snipe/snipe-it/commits?author=gitgrimbo "Code") | [<img src="https://avatars.githubusercontent.com/u/922815?v=4" width="110px;"/><br /><sub>Lee Porte</sub>](https://leeporte.co.uk)<br />[💻](https://github.com/snipe/snipe-it/commits?author=LeePorte "Code") | [<img src="https://avatars.githubusercontent.com/u/23613427?v=4" width="110px;"/><br /><sub>BRYAN </sub>](https://github.com/bryanlopezinc)<br />[💻](https://github.com/snipe/snipe-it/commits?author=bryanlopezinc "Code") [⚠️](https://github.com/snipe/snipe-it/commits?author=bryanlopezinc "Tests") |
| [<img src="https://avatars.githubusercontent.com/u/64061710?v=4" width="110px;"/><br /><sub>U-H-T</sub>](https://github.com/U-H-T)<br />[💻](https://github.com/snipe/snipe-it/commits?author=U-H-T "Code") | [<img src="https://avatars.githubusercontent.com/u/5395363?v=4" width="110px;"/><br /><sub>Matt Tyree</sub>](https://github.com/Tyree)<br />[📖](https://github.com/snipe/snipe-it/commits?author=Tyree "Documentation") | [<img src="https://avatars.githubusercontent.com/u/292081?v=4" width="110px;"/><br /><sub>Florent Bervas</sub>](http://spoontux.net)<br />[💻](https://github.com/snipe/snipe-it/commits?author=FlorentDotMe "Code") | [<img src="https://avatars.githubusercontent.com/u/4498077?v=4" width="110px;"/><br /><sub>Daniel Albertsen</sub>](https://ditscheri.com)<br />[💻](https://github.com/snipe/snipe-it/commits?author=dbakan "Code") | [<img src="https://avatars.githubusercontent.com/u/100710244?v=4" width="110px;"/><br /><sub>r-xyz</sub>](https://github.com/r-xyz)<br />[💻](https://github.com/snipe/snipe-it/commits?author=r-xyz "Code") | [<img src="https://avatars.githubusercontent.com/u/47491036?v=4" width="110px;"/><br /><sub>Steven Mainor</sub>](https://github.com/DrekiDegga)<br />[💻](https://github.com/snipe/snipe-it/commits?author=DrekiDegga "Code") | [<img src="https://avatars.githubusercontent.com/u/65785975?v=4" width="110px;"/><br /><sub>arne-kroeger</sub>](https://github.com/arne-kroeger)<br />[💻](https://github.com/snipe/snipe-it/commits?author=arne-kroeger "Code") |
| [<img src="https://avatars.githubusercontent.com/u/167117705?v=4" width="110px;"/><br /><sub>Glukose1</sub>](https://github.com/Glukose1)<br />[💻](https://github.com/snipe/snipe-it/commits?author=Glukose1 "Code") | [<img src="https://avatars.githubusercontent.com/u/1197791?v=4" width="110px;"/><br /><sub>Scarzy</sub>](https://github.com/Scarzy)<br />[💻](https://github.com/snipe/snipe-it/commits?author=Scarzy "Code") | [<img src="https://avatars.githubusercontent.com/u/37372069?v=4" width="110px;"/><br /><sub>setpill</sub>](https://github.com/setpill)<br />[💻](https://github.com/snipe/snipe-it/commits?author=setpill "Code") | [<img src="https://avatars.githubusercontent.com/u/3755203?v=4" width="110px;"/><br /><sub>swift2512</sub>](https://github.com/swift2512)<br />[🐛](https://github.com/snipe/snipe-it/issues?q=author%3Aswift2512 "Bug reports") |
| [<img src="https://avatars.githubusercontent.com/u/38761237?v=4" width="110px;"/><br /><sub>Alex Janes</sub>](https://adagiohealth.org)<br />[💻](https://github.com/snipe/snipe-it/commits?author=adagioajanes "Code") | [<img src="https://avatars.githubusercontent.com/u/32387849?v=4" width="110px;"/><br /><sub>Nuraeil</sub>](https://github.com/nuraeil)<br />[💻](https://github.com/snipe/snipe-it/commits?author=nuraeil "Code") | [<img src="https://avatars.githubusercontent.com/u/48162670?v=4" width="110px;"/><br /><sub>TenOfTens</sub>](https://github.com/TenOfTens)<br />[💻](https://github.com/snipe/snipe-it/commits?author=TenOfTens "Code") | [<img src="https://avatars.githubusercontent.com/u/9415391?v=4" width="110px;"/><br /><sub>waffle</sub>](https://ditisjens.be/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=insert-waffle "Code") | [<img src="https://avatars.githubusercontent.com/u/19945501?v=4" width="110px;"/><br /><sub>Yevhenii Huzii</sub>](https://github.com/qveensi)<br />[💻](https://github.com/snipe/snipe-it/commits?author=qveensi "Code") | [<img src="https://avatars.githubusercontent.com/u/3839381?v=4" width="110px;"/><br /><sub>Achmad Fienan Rahardianto</sub>](https://github.com/veenone)<br />[💻](https://github.com/snipe/snipe-it/commits?author=veenone "Code") | [<img src="https://avatars.githubusercontent.com/u/97299851?v=4" width="110px;"/><br /><sub>Christian Weirich</sub>](https://github.com/chrisweirich)<br />[💻](https://github.com/snipe/snipe-it/commits?author=chrisweirich "Code") |
| [<img src="https://avatars.githubusercontent.com/u/1294403?v=4" width="110px;"/><br /><sub>denzfarid</sub>](https://github.com/denzfarid)<br /> | [<img src="https://avatars.githubusercontent.com/u/94018771?v=4" width="110px;"/><br /><sub>ntbutler-nbcs</sub>](https://github.com/ntbutler-nbcs)<br />[💻](https://github.com/snipe/snipe-it/commits?author=ntbutler-nbcs "Code") | [<img src="https://avatars.githubusercontent.com/u/172697?v=4" width="110px;"/><br /><sub>Naveen</sub>](https://naveensrinivasan.dev)<br />[💻](https://github.com/snipe/snipe-it/commits?author=naveensrinivasan "Code") | [<img src="https://avatars.githubusercontent.com/u/55674383?v=4" width="110px;"/><br /><sub>Mike Roquemore</sub>](https://github.com/mikeroq)<br />[💻](https://github.com/snipe/snipe-it/commits?author=mikeroq "Code") | [<img src="https://avatars.githubusercontent.com/u/7991086?v=4" width="110px;"/><br /><sub>Daniel Reeder</sub>](https://github.com/reederda)<br />[🌍](#translation-reederda "Translation") [🌍](#translation-reederda "Translation") [💻](https://github.com/snipe/snipe-it/commits?author=reederda "Code") | [<img src="https://avatars.githubusercontent.com/u/109422491?v=4" width="110px;"/><br /><sub>vickyjaura183</sub>](https://github.com/vickyjaura183)<br />[💻](https://github.com/snipe/snipe-it/commits?author=vickyjaura183 "Code") | [<img src="https://avatars.githubusercontent.com/u/32363424?v=4" width="110px;"/><br /><sub>Peace</sub>](https://github.com/julian-piehl)<br />[💻](https://github.com/snipe/snipe-it/commits?author=julian-piehl "Code") |
| [<img src="https://avatars.githubusercontent.com/u/231528?v=4" width="110px;"/><br /><sub>Kyle Gordon</sub>](https://github.com/kylegordon)<br />[💻](https://github.com/snipe/snipe-it/commits?author=kylegordon "Code") | [<img src="https://avatars.githubusercontent.com/u/53009155?v=4" width="110px;"/><br /><sub>Katharina Drexel</sub>](http://www.bfh.ch)<br />[💻](https://github.com/snipe/snipe-it/commits?author=sunflowerbofh "Code") | [<img src="https://avatars.githubusercontent.com/u/1931963?v=4" width="110px;"/><br /><sub>David Sferruzza</sub>](https://david.sferruzza.fr/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=dsferruzza "Code") | [<img src="https://avatars.githubusercontent.com/u/19511639?v=4" width="110px;"/><br /><sub>Rick Nelson</sub>](https://github.com/rnelsonee)<br />[💻](https://github.com/snipe/snipe-it/commits?author=rnelsonee "Code") | [<img src="https://avatars.githubusercontent.com/u/94169344?v=4" width="110px;"/><br /><sub>BasO12</sub>](https://github.com/BasO12)<br />[💻](https://github.com/snipe/snipe-it/commits?author=BasO12 "Code") | [<img src="https://avatars.githubusercontent.com/u/111710123?v=4" width="110px;"/><br /><sub>Vautia</sub>](https://github.com/Vautia)<br />[💻](https://github.com/snipe/snipe-it/commits?author=Vautia "Code") | [<img src="https://avatars.githubusercontent.com/u/28321?v=4" width="110px;"/><br /><sub>Chris Hartjes</sub>](http://www.littlehart.net/atthekeyboard)<br />[💻](https://github.com/snipe/snipe-it/commits?author=chartjes "Code") |
| [<img src="https://avatars.githubusercontent.com/u/2404584?v=4" width="110px;"/><br /><sub>geo-chen</sub>](https://github.com/geo-chen)<br />[💻](https://github.com/snipe/snipe-it/commits?author=geo-chen "Code") | [<img src="https://avatars.githubusercontent.com/u/6006620?v=4" width="110px;"/><br /><sub>Phan Nguyen</sub>](https://github.com/nh314)<br />[💻](https://github.com/snipe/snipe-it/commits?author=nh314 "Code") | [<img src="https://avatars.githubusercontent.com/u/115993812?v=4" width="110px;"/><br /><sub>Iisakki Jaakkola</sub>](https://github.com/StarlessNights)<br />[💻](https://github.com/snipe/snipe-it/commits?author=StarlessNights "Code") | [<img src="https://avatars.githubusercontent.com/u/22633385?v=4" width="110px;"/><br /><sub>Ikko Ashimine</sub>](https://bandism.net/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=eltociear "Code") | [<img src="https://avatars.githubusercontent.com/u/56871540?v=4" width="110px;"/><br /><sub>Lukas Fehling</sub>](https://github.com/lukasfehling)<br />[💻](https://github.com/snipe/snipe-it/commits?author=lukasfehling "Code") | [<img src="https://avatars.githubusercontent.com/u/1975990?v=4" width="110px;"/><br /><sub>Fernando Almeida</sub>](https://github.com/fernando-almeida)<br />[💻](https://github.com/snipe/snipe-it/commits?author=fernando-almeida "Code") | [<img src="https://avatars.githubusercontent.com/u/116301219?v=4" width="110px;"/><br /><sub>akemidx</sub>](https://github.com/akemidx)<br />[💻](https://github.com/snipe/snipe-it/commits?author=akemidx "Code") |
| [<img src="https://avatars.githubusercontent.com/u/144778?v=4" width="110px;"/><br /><sub>Oguz Bilgic</sub>](http://oguz.site)<br />[💻](https://github.com/snipe/snipe-it/commits?author=oguzbilgic "Code") | [<img src="https://avatars.githubusercontent.com/u/9262438?v=4" width="110px;"/><br /><sub>Scooter Crawford</sub>](https://github.com/scoo73r)<br />[💻](https://github.com/snipe/snipe-it/commits?author=scoo73r "Code") | [<img src="https://avatars.githubusercontent.com/u/5957345?v=4" width="110px;"/><br /><sub>subdriven</sub>](https://github.com/subdriven)<br />[💻](https://github.com/snipe/snipe-it/commits?author=subdriven "Code") | [<img src="https://avatars.githubusercontent.com/u/658865?v=4" width="110px;"/><br /><sub>Andrew Savinykh</sub>](https://github.com/AndrewSav)<br />[💻](https://github.com/snipe/snipe-it/commits?author=AndrewSav "Code") | [<img src="https://avatars.githubusercontent.com/u/1155067?v=4" width="110px;"/><br /><sub>Tadayuki Onishi</sub>](https://kenchan0130.github.io)<br />[💻](https://github.com/snipe/snipe-it/commits?author=kenchan0130 "Code") | [<img src="https://avatars.githubusercontent.com/u/112496896?v=4" width="110px;"/><br /><sub>Florian</sub>](https://github.com/floschoepfer)<br />[💻](https://github.com/snipe/snipe-it/commits?author=floschoepfer "Code") | [<img src="https://avatars.githubusercontent.com/u/7305753?v=4" width="110px;"/><br /><sub>Spencer Long</sub>](http://spencerlong.com)<br />[💻](https://github.com/snipe/snipe-it/commits?author=spencerrlongg "Code") |
| [<img src="https://avatars.githubusercontent.com/u/1141514?v=4" width="110px;"/><br /><sub>Marcus Moore</sub>](https://github.com/marcusmoore)<br />[💻](https://github.com/snipe/snipe-it/commits?author=marcusmoore "Code") | [<img src="https://avatars.githubusercontent.com/u/570639?v=4" width="110px;"/><br /><sub>Martin Meredith</sub>](https://github.com/Mezzle)<br /> | [<img src="https://avatars.githubusercontent.com/u/5731963?v=4" width="110px;"/><br /><sub>dboth</sub>](http://dboth.de)<br />[💻](https://github.com/snipe/snipe-it/commits?author=dboth "Code") | [<img src="https://avatars.githubusercontent.com/u/87536651?v=4" width="110px;"/><br /><sub>Zachary Fleck</sub>](https://github.com/zacharyfleck)<br />[💻](https://github.com/snipe/snipe-it/commits?author=zacharyfleck "Code") | [<img src="https://avatars.githubusercontent.com/u/74609912?v=4" width="110px;"/><br /><sub>VIKAAS-A</sub>](https://github.com/vikaas-cyper)<br />[💻](https://github.com/snipe/snipe-it/commits?author=vikaas-cyper "Code") | [<img src="https://avatars.githubusercontent.com/u/88882041?v=4" width="110px;"/><br /><sub>Abdul Kareem</sub>](https://github.com/ak-piracha)<br />[💻](https://github.com/snipe/snipe-it/commits?author=ak-piracha "Code") | [<img src="https://avatars.githubusercontent.com/u/111287779?v=4" width="110px;"/><br /><sub>NojoudAlshehri</sub>](https://github.com/NojoudAlshehri)<br />[💻](https://github.com/snipe/snipe-it/commits?author=NojoudAlshehri "Code") |
| [<img src="https://avatars.githubusercontent.com/u/54367449?v=4" width="110px;"/><br /><sub>Stefan Stidl</sub>](https://github.com/stefanstidlffg)<br />[💻](https://github.com/snipe/snipe-it/commits?author=stefanstidlffg "Code") | [<img src="https://avatars.githubusercontent.com/u/87803479?v=4" width="110px;"/><br /><sub>Quentin Aymard</sub>](https://github.com/qay21)<br />[💻](https://github.com/snipe/snipe-it/commits?author=qay21 "Code") | [<img src="https://avatars.githubusercontent.com/u/5396871?v=4" width="110px;"/><br /><sub>Grant Le Roux</sub>](https://github.com/cram42)<br />[💻](https://github.com/snipe/snipe-it/commits?author=cram42 "Code") | [<img src="https://avatars.githubusercontent.com/u/58479551?v=4" width="110px;"/><br /><sub>Bogdan</sub>](http://@singrity)<br />[💻](https://github.com/snipe/snipe-it/commits?author=Singrity "Code") | [<img src="https://avatars.githubusercontent.com/u/3483684?v=4" width="110px;"/><br /><sub>mmanjos</sub>](https://github.com/mmanjos)<br />[💻](https://github.com/snipe/snipe-it/commits?author=mmanjos "Code") | [<img src="https://avatars.githubusercontent.com/u/7429229?v=4" width="110px;"/><br /><sub>Abdelaziz Faki</sub>](https://azooz2014.github.io/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=Azooz2014 "Code") | [<img src="https://avatars.githubusercontent.com/u/47315739?v=4" width="110px;"/><br /><sub>bilias</sub>](https://github.com/bilias)<br />[💻](https://github.com/snipe/snipe-it/commits?author=bilias "Code") |
| [<img src="https://avatars.githubusercontent.com/u/2565989?v=4" width="110px;"/><br /><sub>coach1988</sub>](https://github.com/coach1988)<br />[💻](https://github.com/snipe/snipe-it/commits?author=coach1988 "Code") | [<img src="https://avatars.githubusercontent.com/u/11910225?v=4" width="110px;"/><br /><sub>MrM</sub>](https://github.com/mauro-miatello)<br />[💻](https://github.com/snipe/snipe-it/commits?author=mauro-miatello "Code") | [<img src="https://avatars.githubusercontent.com/u/60405354?v=4" width="110px;"/><br /><sub>koiakoia</sub>](https://github.com/koiakoia)<br />[💻](https://github.com/snipe/snipe-it/commits?author=koiakoia "Code") | [<img src="https://avatars.githubusercontent.com/u/5323832?v=4" width="110px;"/><br /><sub>Mustafa Online</sub>](https://github.com/mustafa-online)<br />[💻](https://github.com/snipe/snipe-it/commits?author=mustafa-online "Code") | [<img src="https://avatars.githubusercontent.com/u/104601439?v=4" width="110px;"/><br /><sub>franceslui</sub>](https://github.com/franceslui)<br />[💻](https://github.com/snipe/snipe-it/commits?author=franceslui "Code") | [<img src="https://avatars.githubusercontent.com/u/125313163?v=4" width="110px;"/><br /><sub>Q4kK</sub>](https://github.com/Q4kK)<br />[💻](https://github.com/snipe/snipe-it/commits?author=Q4kK "Code") | [<img src="https://avatars.githubusercontent.com/u/55590532?v=4" width="110px;"/><br /><sub>squintfox</sub>](https://github.com/squintfox)<br />[💻](https://github.com/snipe/snipe-it/commits?author=squintfox "Code") |
| [<img src="https://avatars.githubusercontent.com/u/1380084?v=4" width="110px;"/><br /><sub>Jeff Clay</sub>](https://github.com/jeffclay)<br />[💻](https://github.com/snipe/snipe-it/commits?author=jeffclay "Code") | [<img src="https://avatars.githubusercontent.com/u/52716446?v=4" width="110px;"/><br /><sub>Phil J R</sub>](https://github.com/PP-JN-RL)<br />[💻](https://github.com/snipe/snipe-it/commits?author=PP-JN-RL "Code") | [<img src="https://avatars.githubusercontent.com/u/1496725?v=4" width="110px;"/><br /><sub>i_virus</sub>](https://www.corelight.com/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=chandanchowdhury "Code") | [<img src="https://avatars.githubusercontent.com/u/1020541?v=4" width="110px;"/><br /><sub>Paul Grime</sub>](https://github.com/gitgrimbo)<br />[💻](https://github.com/snipe/snipe-it/commits?author=gitgrimbo "Code") | [<img src="https://avatars.githubusercontent.com/u/922815?v=4" width="110px;"/><br /><sub>Lee Porte</sub>](https://leeporte.co.uk)<br />[💻](https://github.com/snipe/snipe-it/commits?author=LeePorte "Code") | [<img src="https://avatars.githubusercontent.com/u/23613427?v=4" width="110px;"/><br /><sub>BRYAN </sub>](https://github.com/bryanlopezinc)<br />[💻](https://github.com/snipe/snipe-it/commits?author=bryanlopezinc "Code") [⚠️](https://github.com/snipe/snipe-it/commits?author=bryanlopezinc "Tests") | [<img src="https://avatars.githubusercontent.com/u/64061710?v=4" width="110px;"/><br /><sub>U-H-T</sub>](https://github.com/U-H-T)<br />[💻](https://github.com/snipe/snipe-it/commits?author=U-H-T "Code") |
| [<img src="https://avatars.githubusercontent.com/u/5395363?v=4" width="110px;"/><br /><sub>Matt Tyree</sub>](https://github.com/Tyree)<br />[📖](https://github.com/snipe/snipe-it/commits?author=Tyree "Documentation") | [<img src="https://avatars.githubusercontent.com/u/292081?v=4" width="110px;"/><br /><sub>Florent Bervas</sub>](http://spoontux.net)<br />[💻](https://github.com/snipe/snipe-it/commits?author=FlorentDotMe "Code") | [<img src="https://avatars.githubusercontent.com/u/4498077?v=4" width="110px;"/><br /><sub>Daniel Albertsen</sub>](https://ditscheri.com)<br />[💻](https://github.com/snipe/snipe-it/commits?author=dbakan "Code") | [<img src="https://avatars.githubusercontent.com/u/100710244?v=4" width="110px;"/><br /><sub>r-xyz</sub>](https://github.com/r-xyz)<br />[💻](https://github.com/snipe/snipe-it/commits?author=r-xyz "Code") | [<img src="https://avatars.githubusercontent.com/u/47491036?v=4" width="110px;"/><br /><sub>Steven Mainor</sub>](https://github.com/DrekiDegga)<br />[💻](https://github.com/snipe/snipe-it/commits?author=DrekiDegga "Code") | [<img src="https://avatars.githubusercontent.com/u/65785975?v=4" width="110px;"/><br /><sub>arne-kroeger</sub>](https://github.com/arne-kroeger)<br />[💻](https://github.com/snipe/snipe-it/commits?author=arne-kroeger "Code") | [<img src="https://avatars.githubusercontent.com/u/167117705?v=4" width="110px;"/><br /><sub>Glukose1</sub>](https://github.com/Glukose1)<br />[💻](https://github.com/snipe/snipe-it/commits?author=Glukose1 "Code") |
| [<img src="https://avatars.githubusercontent.com/u/1197791?v=4" width="110px;"/><br /><sub>Scarzy</sub>](https://github.com/Scarzy)<br />[💻](https://github.com/snipe/snipe-it/commits?author=Scarzy "Code") | [<img src="https://avatars.githubusercontent.com/u/37372069?v=4" width="110px;"/><br /><sub>setpill</sub>](https://github.com/setpill)<br />[💻](https://github.com/snipe/snipe-it/commits?author=setpill "Code") | [<img src="https://avatars.githubusercontent.com/u/3755203?v=4" width="110px;"/><br /><sub>swift2512</sub>](https://github.com/swift2512)<br />[🐛](https://github.com/snipe/snipe-it/issues?q=author%3Aswift2512 "Bug reports") [💻](https://github.com/snipe/snipe-it/commits?author=swift2512 "Code") | [<img src="https://avatars.githubusercontent.com/u/6136439?v=4" width="110px;"/><br /><sub>Darren Rainey</sub>](https://darrenraineys.co.uk)<br />[💻](https://github.com/snipe/snipe-it/commits?author=DarrenRainey "Code") | [<img src="https://avatars.githubusercontent.com/u/133033121?v=4" width="110px;"/><br /><sub>maciej-poleszczyk</sub>](https://github.com/maciej-poleszczyk)<br />[💻](https://github.com/snipe/snipe-it/commits?author=maciej-poleszczyk "Code") | [<img src="https://avatars.githubusercontent.com/u/143394709?v=4" width="110px;"/><br /><sub>Sebastian Groß</sub>](https://github.com/sgross-emlix)<br />[💻](https://github.com/snipe/snipe-it/commits?author=sgross-emlix "Code") | [<img src="https://avatars.githubusercontent.com/u/41107778?v=4" width="110px;"/><br /><sub>Anouar Touati</sub>](https://github.com/AnouarTouati)<br />[💻](https://github.com/snipe/snipe-it/commits?author=AnouarTouati "Code") |
| [<img src="https://avatars.githubusercontent.com/u/25596663?v=4" width="110px;"/><br /><sub>aHVzY2g</sub>](https://github.com/aHVzY2g)<br />[💻](https://github.com/snipe/snipe-it/commits?author=aHVzY2g "Code") | [<img src="https://avatars.githubusercontent.com/u/13408130?v=4" width="110px;"/><br /><sub>林博仁 Buo-ren Lin</sub>](https://brlin.me)<br />[💻](https://github.com/snipe/snipe-it/commits?author=brlin-tw "Code") | [<img src="https://avatars.githubusercontent.com/u/18550946?v=4" width="110px;"/><br /><sub>Adugna Gizaw</sub>](https://orbalia.pythonanywhere.com/)<br />[🌍](#translation-addex12 "Translation") | [<img src="https://avatars.githubusercontent.com/u/760989?v=4" width="110px;"/><br /><sub>Jesse Ostrander</sub>](https://github.com/jostrander)<br />[💻](https://github.com/snipe/snipe-it/commits?author=jostrander "Code") | [<img src="https://avatars.githubusercontent.com/u/31522486?v=4" width="110px;"/><br /><sub>James M</sub>](https://github.com/azmcnutt)<br />[💻](https://github.com/snipe/snipe-it/commits?author=azmcnutt "Code") | [<img src="https://avatars.githubusercontent.com/u/5183146?v=4" width="110px;"/><br /><sub>Fiala06</sub>](https://github.com/Fiala06)<br />[💻](https://github.com/snipe/snipe-it/commits?author=Fiala06 "Code") | [<img src="https://avatars.githubusercontent.com/u/28693782?v=4" width="110px;"/><br /><sub>Nathan Taylor</sub>](https://github.com/ntaylor-86)<br />[💻](https://github.com/snipe/snipe-it/commits?author=ntaylor-86 "Code") |
| [<img src="https://avatars.githubusercontent.com/u/16699443?v=4" width="110px;"/><br /><sub>fvollmer</sub>](https://github.com/fvollmer)<br />[💻](https://github.com/snipe/snipe-it/commits?author=fvollmer "Code") | [<img src="https://avatars.githubusercontent.com/u/109086466?v=4" width="110px;"/><br /><sub>36864</sub>](https://github.com/36864)<br />[💻](https://github.com/snipe/snipe-it/commits?author=36864 "Code") | [<img src="https://avatars.githubusercontent.com/u/365751?v=4" width="110px;"/><br /><sub>Daniel O'Connor</sub>](http://clockwerx.blogspot.com/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=CloCkWeRX "Code") | [<img src="https://avatars.githubusercontent.com/u/102852568?v=4" width="110px;"/><br /><sub>BeatSpark</sub>](https://github.com/BeatSpark)<br />[💻](https://github.com/snipe/snipe-it/commits?author=BeatSpark "Code") | [<img src="https://avatars.githubusercontent.com/u/59203607?v=4" width="110px;"/><br /><sub>mrdahbi</sub>](https://github.com/mrdahbi)<br />[💻](https://github.com/snipe/snipe-it/commits?author=mrdahbi "Code") | [<img src="https://avatars.githubusercontent.com/u/6661332?v=4" width="110px;"/><br /><sub>Fabian Schmid</sub>](http://sr.solutions)<br />[💻](https://github.com/snipe/snipe-it/commits?author=chfsx "Code") | [<img src="https://avatars.githubusercontent.com/u/1288116?v=4" width="110px;"/><br /><sub>Chris Olin</sub>](https://www.chrisolin.com)<br />[💻](https://github.com/snipe/snipe-it/commits?author=realchrisolin "Code") |
| [<img src="https://avatars.githubusercontent.com/u/3803132?v=4" width="110px;"/><br /><sub>Dan</sub>](https://github.com/mnemonicly)<br />[💻](https://github.com/snipe/snipe-it/commits?author=mnemonicly "Code") | [<img src="https://avatars.githubusercontent.com/u/43917728?v=4" width="110px;"/><br /><sub>Nebel</sub>](https://github.com/NebelKreis)<br />[💻](https://github.com/snipe/snipe-it/commits?author=NebelKreis "Code") | [<img src="https://avatars.githubusercontent.com/u/132433803?v=4" width="110px;"/><br /><sub>test1337ahp</sub>](https://github.com/test1337ahp)<br />[💻](https://github.com/snipe/snipe-it/commits?author=test1337ahp "Code") | [<img src="https://avatars.githubusercontent.com/u/1916566?v=4" width="110px;"/><br /><sub>Jonathon Reinhart</sub>](https://github.com/JonathonReinhart)<br />[💻](https://github.com/snipe/snipe-it/commits?author=JonathonReinhart "Code") | [<img src="https://avatars.githubusercontent.com/u/484742?v=4" width="110px;"/><br /><sub>aranar-pro</sub>](https://github.com/aranar-pro)<br />[💻](https://github.com/snipe/snipe-it/commits?author=aranar-pro "Code") | [<img src="https://avatars.githubusercontent.com/u/27019397?v=4" width="110px;"/><br /><sub>Phil</sub>](https://github.com/phil-flip)<br />[💻](https://github.com/snipe/snipe-it/commits?author=phil-flip "Code") | [<img src="https://avatars.githubusercontent.com/u/6473460?v=4" width="110px;"/><br /><sub>Steffy Fort</sub>](https://fe80.fr/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=fe80 "Code") |
| [<img src="https://avatars.githubusercontent.com/u/3302372?v=4" width="110px;"/><br /><sub>Jared Busch</sub>](https://github.com/sorvani)<br />[💻](https://github.com/snipe/snipe-it/commits?author=sorvani "Code") | [<img src="https://avatars.githubusercontent.com/u/111956991?v=4" width="110px;"/><br /><sub>seanborg-codethink</sub>](https://github.com/seanborg-codethink)<br />[💻](https://github.com/snipe/snipe-it/commits?author=seanborg-codethink "Code") | [<img src="https://avatars.githubusercontent.com/u/160669961?v=4" width="110px;"/><br /><sub>dkaatz</sub>](https://github.com/dkaatz)<br />[💻](https://github.com/snipe/snipe-it/commits?author=dkaatz "Code") | [<img src="https://avatars.githubusercontent.com/u/827205?v=4" width="110px;"/><br /><sub>Daniel Ruf</sub>](https://threema.id/74SF7MW6?text=)<br />[💻](https://github.com/snipe/snipe-it/commits?author=DanielRuf "Code") | [<img src="https://avatars.githubusercontent.com/u/38883201?v=4" width="110px;"/><br /><sub>ahpaleus</sub>](https://github.com/ahpaleus)<br />[💻](https://github.com/snipe/snipe-it/commits?author=ahpaleus "Code") | [<img src="https://avatars.githubusercontent.com/u/22906055?v=4" width="110px;"/><br /><sub>Anh DAO-DUY</sub>](https://github.com/mink-adao-duy)<br />[💻](https://github.com/snipe/snipe-it/commits?author=mink-adao-duy "Code") | [<img src="https://avatars.githubusercontent.com/u/4723453?v=4" width="110px;"/><br /><sub>Andres Gutierrez</sub>](https://github.com/Serdnad)<br />[💻](https://github.com/snipe/snipe-it/commits?author=Serdnad "Code") |
| [<img src="https://avatars.githubusercontent.com/u/111083379?v=4" width="110px;"/><br /><sub>Warren White</sub>](https://github.com/wewhite)<br />[💻](https://github.com/snipe/snipe-it/commits?author=wewhite "Code") | [<img src="https://avatars.githubusercontent.com/u/2809241?v=4" width="110px;"/><br /><sub>Robin Temme</sub>](https://robintemme.de/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=robintemme "Code") | [<img src="https://avatars.githubusercontent.com/u/47008367?v=4" width="110px;"/><br /><sub>herroworrd</sub>](https://github.com/herroworrd)<br />[💻](https://github.com/snipe/snipe-it/commits?author=herroworrd "Code") | [<img src="https://avatars.githubusercontent.com/u/28558609?v=4" width="110px;"/><br /><sub>vicleos</sub>](https://mubiu.com/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=vicleos "Code") | [<img src="https://avatars.githubusercontent.com/u/1016780?v=4" width="110px;"/><br /><sub>Bob Clough</sub>](http://thinkl33t.co.uk/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=thinkl33t "Code") | [<img src="https://avatars.githubusercontent.com/u/10648463?v=4" width="110px;"/><br /><sub>Brandon Daniel Bailey</sub>](https://github.com/brandon-bailey)<br />[💻](https://github.com/snipe/snipe-it/commits?author=brandon-bailey "Code") | [<img src="https://avatars.githubusercontent.com/u/23556080?v=4" width="110px;"/><br /><sub>Marc Bartelt</sub>](https://github.com/marcquark)<br />[💻](https://github.com/snipe/snipe-it/commits?author=marcquark "Code") |
| [<img src="https://avatars.githubusercontent.com/u/18286893?v=4" width="110px;"/><br /><sub>manu-crealytics</sub>](https://github.com/manu-crealytics)<br />[💻](https://github.com/snipe/snipe-it/commits?author=manu-crealytics "Code") | [<img src="https://avatars.githubusercontent.com/u/18245993?v=4" width="110px;"/><br /><sub>Konstantin Köhring</sub>](https://www.galaxy102.de/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=Galaxy102 "Code") | [<img src="https://avatars.githubusercontent.com/u/685167?v=4" width="110px;"/><br /><sub>Deloz</sub>](https://deloz.net/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=deloz "Code") | [<img src="https://avatars.githubusercontent.com/u/2682426?v=4" width="110px;"/><br /><sub>Martin Berg</sub>](https://github.com/mbrrg)<br />[💻](https://github.com/snipe/snipe-it/commits?author=mbrrg "Code") | [<img src="https://avatars.githubusercontent.com/u/3694534?v=4" width="110px;"/><br /><sub>Richard Schwab</sub>](https://github.com/Nothing4You)<br />[💻](https://github.com/snipe/snipe-it/commits?author=Nothing4You "Code") | [<img src="https://avatars.githubusercontent.com/u/8959676?v=4" width="110px;"/><br /><sub>Rick Heil</sub>](https://rickheil.com/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=rickheil "Code") | [<img src="https://avatars.githubusercontent.com/u/397106?v=4" width="110px;"/><br /><sub>Ross Crawford-d'Heureuse</sub>](https://github.com/rosscdh)<br />[💻](https://github.com/snipe/snipe-it/commits?author=rosscdh "Code") |
| [<img src="https://avatars.githubusercontent.com/u/1621107?v=4" width="110px;"/><br /><sub>Ryan McGuire</sub>](https://github.com/McG800)<br />[💻](https://github.com/snipe/snipe-it/commits?author=McG800 "Code") | [<img src="https://avatars.githubusercontent.com/u/77835667?v=4" width="110px;"/><br /><sub>SBrown2021</sub>](https://github.com/SBrown2021)<br />[💻](https://github.com/snipe/snipe-it/commits?author=SBrown2021 "Code") | [<img src="https://avatars.githubusercontent.com/u/8780913?v=4" width="110px;"/><br /><sub>Serkan</sub>](https://github.com/serkanerip)<br />[💻](https://github.com/snipe/snipe-it/commits?author=serkanerip "Code") | [<img src="https://avatars.githubusercontent.com/u/63188620?v=4" width="110px;"/><br /><sub>Shanks</sub>](https://www.yudelei.com/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=Shankschn "Code") | [<img src="https://avatars.githubusercontent.com/u/198525698?v=4" width="110px;"/><br /><sub>cendai-mis</sub>](https://github.com/cendai-mis)<br />[💻](https://github.com/snipe/snipe-it/commits?author=cendai-mis "Code") | [<img src="https://avatars.githubusercontent.com/u/8724583?v=4" width="110px;"/><br /><sub>Shaun McPeck</sub>](https://smcpeck.github.io/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=smcpeck "Code") | [<img src="https://avatars.githubusercontent.com/u/1378836?v=4" width="110px;"/><br /><sub>Stephen</sub>](https://github.com/snazy2000)<br />[💻](https://github.com/snipe/snipe-it/commits?author=snazy2000 "Code") |
| [<img src="https://avatars.githubusercontent.com/u/4462739?v=4" width="110px;"/><br /><sub>Steven</sub>](http://nevets82.github.io/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=Nevets82 "Code") | [<img src="https://avatars.githubusercontent.com/u/29017267?v=4" width="110px;"/><br /><sub>Mateus Villar</sub>](https://mateusvillar.com/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=Mateus-Romera "Code") | [<img src="https://avatars.githubusercontent.com/u/12749393?v=4" width="110px;"/><br /><sub>Matthew Zackschewski</sub>](https://github.com/mzack5020)<br />[💻](https://github.com/snipe/snipe-it/commits?author=mzack5020 "Code") | [<img src="https://avatars.githubusercontent.com/u/12660103?v=4" width="110px;"/><br /><sub>Matthias Frei</sub>](https://www.frei.media/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=firefrei "Code") | [<img src="https://avatars.githubusercontent.com/u/824840?v=4" width="110px;"/><br /><sub>Nenad Ticaric</sub>](https://github.com/nticaric)<br />[💻](https://github.com/snipe/snipe-it/commits?author=nticaric "Code") | [<img src="https://avatars.githubusercontent.com/u/706439?v=4" width="110px;"/><br /><sub>Nikolay Didenko</sub>](https://github.com/Scorcher)<br />[💻](https://github.com/snipe/snipe-it/commits?author=Scorcher "Code") | [<img src="https://avatars.githubusercontent.com/u/5457236?v=4" width="110px;"/><br /><sub>Nuno Maduro</sub>](https://nunomaduro.com/sponsorships)<br />[💻](https://github.com/snipe/snipe-it/commits?author=nunomaduro "Code") |
| [<img src="https://avatars.githubusercontent.com/u/8883074?v=4" width="110px;"/><br /><sub>Oliver Walerys</sub>](https://tektikhq.com/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=owalerys "Code") | [<img src="https://avatars.githubusercontent.com/u/3102039?v=4" width="110px;"/><br /><sub>R. Christian McDonald</sub>](https://keybase.io/rcmcdonald91)<br />[💻](https://github.com/snipe/snipe-it/commits?author=rcmcdonald91 "Code") | [<img src="https://avatars.githubusercontent.com/u/1525581?v=4" width="110px;"/><br /><sub>nix</sub>](https://nnix.net/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=nixn "Code") | [<img src="https://avatars.githubusercontent.com/u/55462380?v=4" width="110px;"/><br /><sub>octobunny</sub>](https://github.com/octobunny)<br />[💻](https://github.com/snipe/snipe-it/commits?author=octobunny "Code") | [<img src="https://avatars.githubusercontent.com/u/8558670?v=4" width="110px;"/><br /><sub>Ryan</sub>](https://github.com/sreyemnayr)<br />[💻](https://github.com/snipe/snipe-it/commits?author=sreyemnayr "Code") | [<img src="https://avatars.githubusercontent.com/u/1501022?v=4" width="110px;"/><br /><sub>p3nj</sub>](https://benji.ltd/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=p3nj "Code") | [<img src="https://avatars.githubusercontent.com/u/6201617?v=4" width="110px;"/><br /><sub>Tim White</sub>](https://github.com/timwsuqld)<br />[💻](https://github.com/snipe/snipe-it/commits?author=timwsuqld "Code") |
| [<img src="https://avatars.githubusercontent.com/u/22473767?v=4" width="110px;"/><br /><sub>yannikp</sub>](https://github.com/yannikp)<br />[💻](https://github.com/snipe/snipe-it/commits?author=yannikp "Code") | [<img src="https://avatars.githubusercontent.com/u/20525448?v=4" width="110px;"/><br /><sub>victoria</sub>](https://github.com/viclou)<br />[💻](https://github.com/snipe/snipe-it/commits?author=viclou "Code") | [<img src="https://avatars.githubusercontent.com/u/40685314?v=4" width="110px;"/><br /><sub>Valentyn Tulub</sub>](https://github.com/valentyntu)<br />[💻](https://github.com/snipe/snipe-it/commits?author=valentyntu "Code") | [<img src="https://avatars.githubusercontent.com/u/864520?v=4" width="110px;"/><br /><sub>Wouter van Os</sub>](http://wouter0100.nl/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=Wouter0100 "Code") | [<img src="https://avatars.githubusercontent.com/u/3946540?v=4" width="110px;"/><br /><sub>Wyatt Teeter</sub>](https://www.linkedin.com/in/wyatt-teeter)<br />[💻](https://github.com/snipe/snipe-it/commits?author=xWyatt "Code") | [<img src="https://avatars.githubusercontent.com/u/1596124?v=4" width="110px;"/><br /><sub>Yorick Terweijden</sub>](https://github.com/terwey)<br />[💻](https://github.com/snipe/snipe-it/commits?author=terwey "Code") | [<img src="https://avatars.githubusercontent.com/u/69298836?v=4" width="110px;"/><br /><sub>bmkalle</sub>](https://github.com/bmkalle)<br />[💻](https://github.com/snipe/snipe-it/commits?author=bmkalle "Code") |
| [<img src="https://avatars.githubusercontent.com/u/28403467?v=4" width="110px;"/><br /><sub>bricelabelle</sub>](https://github.com/bricelabelle)<br />[💻](https://github.com/snipe/snipe-it/commits?author=bricelabelle "Code") | [<img src="https://avatars.githubusercontent.com/u/97770090?v=4" width="110px;"/><br /><sub>corydlamb</sub>](https://github.com/corydlamb)<br />[💻](https://github.com/snipe/snipe-it/commits?author=corydlamb "Code") | [<img src="https://avatars.githubusercontent.com/u/1154133?v=4" width="110px;"/><br /><sub>Diogenes S. Jesus</sub>](http://twitter.com/splash)<br />[💻](https://github.com/snipe/snipe-it/commits?author=splashx "Code") | [<img src="https://avatars.githubusercontent.com/u/5826629?v=4" width="110px;"/><br /><sub>D M</sub>](https://github.com/dkmansion)<br />[💻](https://github.com/snipe/snipe-it/commits?author=dkmansion "Code") | [<img src="https://avatars.githubusercontent.com/u/14837699?v=4" width="110px;"/><br /><sub>Dustin B</sub>](https://github.com/Jarli01)<br />[💻](https://github.com/snipe/snipe-it/commits?author=Jarli01 "Code") | [<img src="https://avatars.githubusercontent.com/u/348344?v=4" width="110px;"/><br /><sub>Fabian Grutschus</sub>](https://github.com/fabiang)<br />[💻](https://github.com/snipe/snipe-it/commits?author=fabiang "Code") | [<img src="https://avatars.githubusercontent.com/u/1491053?v=4" width="110px;"/><br /><sub>MelonSmasher</sub>](https://github.com/MelonSmasher)<br />[💻](https://github.com/snipe/snipe-it/commits?author=MelonSmasher "Code") |
| [<img src="https://avatars.githubusercontent.com/u/80526133?v=4" width="110px;"/><br /><sub>AlexanderWPapyrus</sub>](https://github.com/AlexanderWPapyrus)<br />[💻](https://github.com/snipe/snipe-it/commits?author=AlexanderWPapyrus "Code") | [<img src="https://avatars.githubusercontent.com/u/306231?v=4" width="110px;"/><br /><sub>Alexandr Hacicheant</sub>](https://github.com/disc)<br />[💻](https://github.com/snipe/snipe-it/commits?author=disc "Code") | [<img src="https://avatars.githubusercontent.com/u/3032891?v=4" width="110px;"/><br /><sub>Hex</sub>](https://hex128.io/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=hex128 "Code") | [<img src="https://avatars.githubusercontent.com/u/8697942?v=4" width="110px;"/><br /><sub>Arunas Skirius</sub>](https://github.com/arukompas)<br />[💻](https://github.com/snipe/snipe-it/commits?author=arukompas "Code") | [<img src="https://avatars.githubusercontent.com/u/104396?v=4" width="110px;"/><br /><sub>Ben Periton</sub>](https://github.com/benperiton)<br />[💻](https://github.com/snipe/snipe-it/commits?author=benperiton "Code") | [<img src="https://avatars.githubusercontent.com/u/11906832?v=4" width="110px;"/><br /><sub>Byron Wolfman</sub>](https://wolfman.dev/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=byronwolfman "Code") | [<img src="https://avatars.githubusercontent.com/u/56485508?v=4" width="110px;"/><br /><sub>Calvin</sub>](https://github.com/CalvinSchwartz)<br />[💻](https://github.com/snipe/snipe-it/commits?author=CalvinSchwartz "Code") |
| [<img src="https://avatars.githubusercontent.com/u/181059?v=4" width="110px;"/><br /><sub>Juan Font</sub>](https://github.com/juanfont)<br />[💻](https://github.com/snipe/snipe-it/commits?author=juanfont "Code") | [<img src="https://avatars.githubusercontent.com/u/13137708?v=4" width="110px;"/><br /><sub>Juho Taipale</sub>](https://github.com/juhotaipale)<br />[💻](https://github.com/snipe/snipe-it/commits?author=juhotaipale "Code") | [<img src="https://avatars.githubusercontent.com/u/1007419?v=4" width="110px;"/><br /><sub>Korvin Szanto</sub>](https://github.com/KorvinSzanto)<br />[💻](https://github.com/snipe/snipe-it/commits?author=KorvinSzanto "Code") | [<img src="https://avatars.githubusercontent.com/u/8513053?v=4" width="110px;"/><br /><sub>Lewis Foster</sub>](https://lewisfoster.foo/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=sniff122 "Code") | [<img src="https://avatars.githubusercontent.com/u/33877541?v=4" width="110px;"/><br /><sub>Logan Swartzendruber</sub>](https://github.com/loganswartz)<br />[💻](https://github.com/snipe/snipe-it/commits?author=loganswartz "Code") | [<img src="https://avatars.githubusercontent.com/u/1156208?v=4" width="110px;"/><br /><sub>Lorenzo P.</sub>](https://github.com/lopezio)<br />[💻](https://github.com/snipe/snipe-it/commits?author=lopezio "Code") | [<img src="https://avatars.githubusercontent.com/u/33946590?v=4" width="110px;"/><br /><sub>Lukas Jung</sub>](https://github.com/m4us1ne)<br />[💻](https://github.com/snipe/snipe-it/commits?author=m4us1ne "Code") |
| [<img src="https://avatars.githubusercontent.com/u/10965027?v=4" width="110px;"/><br /><sub>Ellie</sub>](https://leafedfox.xyz/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=LeafedFox "Code") | [<img src="https://avatars.githubusercontent.com/u/20960555?v=4" width="110px;"/><br /><sub>GA Stamper</sub>](https://github.com/gastamper)<br />[💻](https://github.com/snipe/snipe-it/commits?author=gastamper "Code") | [<img src="https://avatars.githubusercontent.com/u/206553556?v=4" width="110px;"/><br /><sub>Guillaume Lefranc</sub>](https://github.com/gl-pup)<br />[💻](https://github.com/snipe/snipe-it/commits?author=gl-pup "Code") | [<img src="https://avatars.githubusercontent.com/u/733892?v=4" width="110px;"/><br /><sub>Hajo Möller</sub>](https://github.com/dasjoe)<br />[💻](https://github.com/snipe/snipe-it/commits?author=dasjoe "Code") | [<img src="https://avatars.githubusercontent.com/u/3420063?v=4" width="110px;"/><br /><sub>Istvan Basa</sub>](https://github.com/pottom)<br />[💻](https://github.com/snipe/snipe-it/commits?author=pottom "Code") | [<img src="https://avatars.githubusercontent.com/u/810824?v=4" width="110px;"/><br /><sub>JJ Asghar</sub>](https://jjasghar.github.io/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=jjasghar "Code") | [<img src="https://avatars.githubusercontent.com/u/40404495?v=4" width="110px;"/><br /><sub>James E. Msenga</sub>](https://github.com/JemCdo)<br />[💻](https://github.com/snipe/snipe-it/commits?author=JemCdo "Code") |
| [<img src="https://avatars.githubusercontent.com/u/6865786?v=4" width="110px;"/><br /><sub>Jan Felix Wiebe</sub>](https://github.com/jfwiebe)<br />[💻](https://github.com/snipe/snipe-it/commits?author=jfwiebe "Code") | [<img src="https://avatars.githubusercontent.com/u/43412008?v=4" width="110px;"/><br /><sub>Jo Drexl</sub>](https://www.nfon.com/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=drexljo "Code") | [<img src="https://avatars.githubusercontent.com/u/4807843?v=4" width="110px;"/><br /><sub>Austin Sasko</sub>](https://github.com/austinsasko)<br />[💻](https://github.com/snipe/snipe-it/commits?author=austinsasko "Code") | [<img src="https://avatars.githubusercontent.com/u/4875039?v=4" width="110px;"/><br /><sub>Jasson</sub>](http://jassoncordones.github.io)<br />[💻](https://github.com/snipe/snipe-it/commits?author=JassonCordones "Code") | [<img src="https://avatars.githubusercontent.com/u/76069640?v=4" width="110px;"/><br /><sub>Okean</sub>](https://github.com/Tinyblargon)<br />[💻](https://github.com/snipe/snipe-it/commits?author=Tinyblargon "Code") | [<img src="https://avatars.githubusercontent.com/u/6515064?v=4" width="110px;"/><br /><sub>Alejandro Medrano</sub>](https://www.lst.tfo.upm.es/alejandro-medrano/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=amedranogil "Code") | [<img src="https://avatars.githubusercontent.com/u/58696401?v=4" width="110px;"/><br /><sub>Lukas Kraic</sub>](https://github.com/lukaskraic)<br />[💻](https://github.com/snipe/snipe-it/commits?author=lukaskraic "Code") |
| [<img src="https://avatars.githubusercontent.com/u/1571724?v=4" width="110px;"/><br /><sub>Герхард PICCORO Lenz McKAY </sub>](https://github-readme-stats.vercel.app/api?username=mckaygerhard)<br />[💻](https://github.com/snipe/snipe-it/commits?author=mckaygerhard "Code") | [<img src="https://avatars.githubusercontent.com/u/15015119?v=4" width="110px;"/><br /><sub>Johannes Pollitt</sub>](https://github.com/FlorestanII)<br />[💻](https://github.com/snipe/snipe-it/commits?author=FlorestanII "Code") | [<img src="https://avatars.githubusercontent.com/u/14185442?v=4" width="110px;"/><br /><sub>Michael Strobel</sub>](https://strobelm.de)<br />[💻](https://github.com/snipe/snipe-it/commits?author=strobelm "Code") | [<img src="https://avatars.githubusercontent.com/u/634790?v=4" width="110px;"/><br /><sub>Nicky West</sub>](http://nickwest.me)<br />[💻](https://github.com/snipe/snipe-it/commits?author=nickwest "Code") | [<img src="https://avatars.githubusercontent.com/u/1347327?v=4" width="110px;"/><br /><sub>akaspeh1</sub>](https://github.com/akaspeh1)<br />[💻](https://github.com/snipe/snipe-it/commits?author=akaspeh1 "Code") | [<img src="https://avatars.githubusercontent.com/u/2880129?v=4" width="110px;"/><br /><sub>Sebastian Marsching</sub>](http://sebastian.marsching.com/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=smarsching "Code") | [<img src="https://avatars.githubusercontent.com/u/40658372?v=4" width="110px;"/><br /><sub>Mo</sub>](https://github.com/mohammad-ahmadi1)<br />[💻](https://github.com/snipe/snipe-it/commits?author=mohammad-ahmadi1 "Code") |
| [<img src="https://avatars.githubusercontent.com/u/20994684?v=4" width="110px;"/><br /><sub>Owen V. Hayes</sub>](https://github.com/MarvelousAnything)<br />[💻](https://github.com/snipe/snipe-it/commits?author=MarvelousAnything "Code") | [<img src="https://avatars.githubusercontent.com/u/75509373?v=4" width="110px;"/><br /><sub>Peter Gallwas</sub>](https://www.husky.nz)<br />[💻](https://github.com/snipe/snipe-it/commits?author=Husky-Devel "Code") |
<!-- ALL-CONTRIBUTORS-LIST:END -->
This project follows the [all-contributors](https://github.com/kentcdodds/all-contributors) specification. Contributions of any kind welcome!
+17 -23
View File
@@ -1,8 +1,8 @@
FROM ubuntu:22.04
FROM ubuntu:24.04
LABEL maintainer="Brady Wetherington <bwetherington@grokability.com>"
# No need to add `apt-get clean` here, reference:
# - https://github.com/snipe/snipe-it/pull/9201
# - https://github.com/grokability/snipe-it/pull/9201
# - https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#apt-get
RUN export DEBIAN_FRONTEND=noninteractive; \
@@ -14,16 +14,16 @@ RUN export DEBIAN_FRONTEND=noninteractive; \
apt-utils \
apache2 \
apache2-bin \
libapache2-mod-php8.1 \
php8.1-curl \
php8.1-ldap \
php8.1-mysql \
php8.1-gd \
php8.1-xml \
php8.1-mbstring \
php8.1-zip \
php8.1-bcmath \
php8.1-redis \
libapache2-mod-php8.3 \
php8.3-curl \
php8.3-ldap \
php8.3-mysql \
php8.3-gd \
php8.3-xml \
php8.3-mbstring \
php8.3-zip \
php8.3-bcmath \
php8.3-redis \
php-memcached \
patch \
curl \
@@ -40,8 +40,7 @@ autoconf \
libc-dev \
libldap-common \
pkg-config \
libmcrypt-dev \
php8.1-dev \
php8.3-dev \
ca-certificates \
unzip \
dnsutils \
@@ -51,18 +50,13 @@ dnsutils \
RUN curl -L -O https://github.com/pear/pearweb_phars/raw/master/go-pear.phar
RUN php go-pear.phar
RUN pecl install mcrypt
RUN bash -c "echo extension=/usr/lib/php/20210902/mcrypt.so > /etc/php/8.1/mods-available/mcrypt.ini"
RUN phpenmod mcrypt
RUN phpenmod gd
RUN phpenmod bcmath
RUN sed -i 's/variables_order = .*/variables_order = "EGPCS"/' /etc/php/8.1/apache2/php.ini
RUN sed -i 's/variables_order = .*/variables_order = "EGPCS"/' /etc/php/8.1/cli/php.ini
RUN sed -i 's/variables_order = .*/variables_order = "EGPCS"/' /etc/php/8.3/apache2/php.ini
RUN sed -i 's/variables_order = .*/variables_order = "EGPCS"/' /etc/php/8.3/cli/php.ini
RUN useradd -m --uid 1000 --gid 50 docker
RUN useradd -m --uid 10000 --gid 50 docker
RUN echo export APACHE_RUN_USER=docker >> /etc/apache2/envvars
RUN echo export APACHE_RUN_GROUP=staff >> /etc/apache2/envvars
@@ -116,7 +110,7 @@ COPY --from=composer:latest /usr/bin/composer /usr/bin/composer
# Get dependencies
USER docker
RUN composer install --no-dev --working-dir=/var/www/html
RUN COMPOSER_CACHE_DIR=/dev/null composer install --no-dev --working-dir=/var/www/html && rm -rf /var/www/html/vendor/*/*/.git
USER root
############### APPLICATION INSTALL/INIT #################
+31 -31
View File
@@ -1,35 +1,35 @@
FROM alpine:3.19
FROM alpine:3.23
# Apache + PHP
RUN apk add --no-cache \
apache2 \
php82 \
php82-common \
php82-apache2 \
php82-curl \
php82-ldap \
php82-mysqli \
php82-gd \
php82-xml \
php82-mbstring \
php82-zip \
php82-ctype \
php82-tokenizer \
php82-pdo_mysql \
php82-openssl \
php82-bcmath \
php82-phar \
php82-json \
php82-iconv \
php82-fileinfo \
php82-simplexml \
php82-session \
php82-dom \
php82-xmlwriter \
php82-xmlreader \
php82-sodium \
php82-redis \
php82-pecl-memcached \
php82-exif \
php84 \
php84-common \
php84-apache2 \
php84-curl \
php84-ldap \
php84-mysqli \
php84-gd \
php84-xml \
php84-mbstring \
php84-zip \
php84-ctype \
php84-tokenizer \
php84-pdo_mysql \
php84-openssl \
php84-bcmath \
php84-phar \
php84-json \
php84-iconv \
php84-fileinfo \
php84-simplexml \
php84-session \
php84-dom \
php84-xmlwriter \
php84-xmlreader \
php84-sodium \
php84-redis \
php84-pecl-memcached \
php84-exif \
curl \
wget \
vim \
@@ -42,7 +42,7 @@ COPY docker/column-statistics.cnf /etc/mysql/conf.d/column-statistics.cnf
# Where apache's PID lives
RUN mkdir -p /run/apache2 && chown apache:apache /run/apache2
RUN sed -i 's/variables_order = .*/variables_order = "EGPCS"/' /etc/php82/php.ini
RUN sed -i 's/variables_order = .*/variables_order = "EGPCS"/' /etc/php84/php.ini
COPY docker/000-default-2.4.conf /etc/apache2/conf.d/default.conf
# Enable mod_rewrite
@@ -73,7 +73,7 @@ RUN mkdir -p /var/www/.composer && chown apache /var/www/.composer
# Install dependencies
USER apache
RUN COMPOSER_CACHE_DIR=/dev/null composer install --no-dev --working-dir=/var/www/html
RUN COMPOSER_CACHE_DIR=/dev/null composer install --working-dir=/var/www/html
USER root
+1 -1
View File
@@ -70,7 +70,7 @@ COPY --from=composer /usr/bin/composer /usr/local/bin
ARG COMPOSER_ALLOW_SUPERUSER=1
RUN set -eux; \
# Download and extract snipeit tarball
curl -o snipeit.tar.gz -fL "https://github.com/snipe/snipe-it/archive/v$SNIPEIT_RELEASE.tar.gz"; \
curl -o snipeit.tar.gz -fL "https://github.com/grokability/snipe-it/archive/v$SNIPEIT_RELEASE.tar.gz"; \
tar -xzf snipeit.tar.gz --strip-components=1 -C /var/www/html/; \
rm snipeit.tar.gz; \
# Install composer php dependencies
+71 -25
View File
@@ -1,19 +1,34 @@
![snipe-it-by-grok](https://github.com/snipe/snipe-it/assets/197404/b515673b-c7c8-4d9a-80f5-9fa58829a602)
![snipe-it-by-grok](https://github.com/grokability/snipe-it/assets/197404/b515673b-c7c8-4d9a-80f5-9fa58829a602)
[![Crowdin](https://d322cqt584bo4o.cloudfront.net/snipe-it/localized.svg)](https://crowdin.com/project/snipe-it) [![Docker Pulls](https://img.shields.io/docker/pulls/snipe/snipe-it.svg)](https://hub.docker.com/r/snipe/snipe-it/) [![Twitter Follow](https://img.shields.io/twitter/follow/snipeitapp.svg?style=social)](https://twitter.com/snipeitapp) [![Codacy Badge](https://app.codacy.com/project/badge/Grade/553ce52037fc43ea99149785afcfe641)](https://app.codacy.com/gh/snipe/snipe-it/dashboard?utm_source=gh&utm_medium=referral&utm_content=&utm_campaign=Badge_grade) [![Tests](https://github.com/snipe/snipe-it/actions/workflows/tests.yml/badge.svg)](https://github.com/snipe/snipe-it/actions/workflows/tests.yml)
[![Crowdin](https://d322cqt584bo4o.cloudfront.net/snipe-it/localized.svg)](https://crowdin.com/project/snipe-it) [![Docker Pulls](https://img.shields.io/docker/pulls/snipe/snipe-it.svg)](https://hub.docker.com/r/snipe/snipe-it/) [![Tests in MySQL](https://github.com/grokability/snipe-it/actions/workflows/tests-mysql.yml/badge.svg)](https://github.com/grokability/snipe-it/actions/workflows/tests-mysql.yml)
[![All Contributors](https://img.shields.io/badge/all_contributors-331-orange.svg?style=flat-square)](#contributing) [![Discord](https://badgen.net/badge/icon/discord?icon=discord&label)](https://discord.gg/yZFtShAcKk)
## Snipe-IT - Open Source Asset Management System
This is a FOSS project for asset management in IT Operations. Knowing who has which laptop, when it was purchased in order to depreciate it correctly, handling software licenses, etc.
It is built on [Laravel 10](http://laravel.com).
It is built on [Laravel 11](http://laravel.com).
Snipe-IT is actively developed and we [release quite frequently](https://github.com/snipe/snipe-it/releases). ([Check out the live demo here](https://snipeitapp.com/demo/).)
Snipe-IT is actively developed and we [release quite frequently](https://github.com/grokability/snipe-it/releases). ([Check out the live demo here](https://snipeitapp.com/demo/).)
> [!TIP]
> __This is web-based software__. This means there is no executable file (aka no .exe files), and it must be run on a web server and accessed through a web browser. It runs on any Mac OSX, any flavor of Linux, as well as Windows, and we have a [Docker image](https://snipe-it.readme.io/docs/docker) available if that's what you're into.
-----
### Table of Contents
* [Installation](#installation)
* [User's Manual](#users-manual)
* [Bug Reports & Feature Requests](#bug-reports--feature-requests)
* [Security](#security)
* [Upgrading](#upgrading)
* [Translations!](#translations-)
* [Libraries, Modules & Related Projects](#libraries-modules--related-projects)
* [Join the Community!](#join-the-community)
* [Contributing](#contributing)
* [Announcement List](#announcement-list)
-----
### Installation
@@ -22,8 +37,6 @@ For instructions on installing and configuring Snipe-IT on your server, check ou
If you're having trouble with the installation, please check the [Common Issues](https://snipe-it.readme.io/docs/common-issues) and [Getting Help](https://snipe-it.readme.io/docs/getting-help) documentation, and search this repository's open *and* closed issues for help.
<!-- [![Deploy](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy) -->
-----
### User's Manual
For help using Snipe-IT, check out the [user's manual](https://snipe-it.readme.io/docs/overview).
@@ -31,24 +44,25 @@ For help using Snipe-IT, check out the [user's manual](https://snipe-it.readme.i
-----
### Bug Reports & Feature Requests
Feel free to check out the [GitHub Issues for this project](https://github.com/snipe/snipe-it/issues) to open a bug report or see what open issues you can help with. Please search through existing issues (open *and* closed) to see if your question has already been answered before opening a new issue.
Feel free to check out the [GitHub Issues for this project](https://github.com/grokability/snipe-it/issues) to open a bug report or see what open issues you can help with. Please search through existing issues (open *and* closed) to see if your question has already been answered before opening a new issue.
> [!IMPORTANT]
> **PLEASE see the [Getting Help Guidelines](https://snipe-it.readme.io/docs/getting-help) and [Common Issues](https://snipe-it.readme.io/docs/common-issues) before opening a ticket, and be sure to complete all of the questions in the Github Issue template to help us to help you as quickly as possible.**
>
-----
### Security
> [!IMPORTANT]
> **To report a security vulnerability, please email security@snipeitapp.com instead of using the issue tracker.**
-----
### Upgrading
Please see the [upgrading documentation](https://snipe-it.readme.io/docs/upgrading) for instructions on upgrading Snipe-IT.
------
### Announcement List
To be notified of important news (such as new releases, security advisories, etc), [sign up for our list](http://eepurl.com/XyZKz). We'll never sell or give away your info, and we'll only email you when it's important.
------
### Translations!
Please see the [translations documentation](https://snipe-it.readme.io/docs/translations) for information about available languages and how to add translations to Snipe-IT.
@@ -62,43 +76,75 @@ Since the release of the JSON REST API, several third-party developers have been
> [!NOTE]
> As these were created by third-parties, Snipe-IT cannot provide support for these project, and you should contact the developers directly if you need assistance. Additionally, Snipe-IT makes no guarantees as to the reliability, accuracy or maintainability of these libraries. Use at your own risk. :)
- [Python Module](https://github.com/jbloomer/SnipeIT-PythonAPI) by [@jbloomer](https://github.com/jbloomer)
#### Libraries & Modules
- [SnipeScheduler](https://github.com/JSY-Ben/SnipeScheduler) by [@JSY-Ben](https://github.com/JSY-Ben) - An Asset Reservation/Checkout System for Snipe-IT
- [Snipe-IT MCP Server](https://github.com/jameshgordy/snipeit-mcp) by [@jameshgordy](https://github.com/jameshgordy) - A Model Context Protocol (MCP) server for managing Snipe-IT inventory systems
- [SnipeSharp - .NET module in C#](https://github.com/barrycarey/SnipeSharp) by [@barrycarey](https://github.com/barrycarey)
- [InQRy -unmaintained-](https://github.com/Microsoft/InQRy) by [@Microsoft](https://github.com/Microsoft)
- [SnipeitPS](https://github.com/snazy2000/SnipeitPS) by [@snazy2000](https://github.com/snazy2000) - Powershell API Wrapper for Snipe-it
- [jamf2snipe](https://github.com/grokability/jamf2snipe) - Python script to sync assets between a JAMFPro instance and a Snipe-IT instance
- [jamf-snipe-rename](https://macblog.org/jamf-snipe-rename/) - Python script to rename computers in Jamf from Snipe-IT
- [Marksman](https://github.com/Scope-IT/marksman) - A Windows agent for Snipe-IT
- [Snipe-IT plugin for Jira Service Desk](https://marketplace.atlassian.com/apps/1220964/snipe-it-for-jira)
- [Rudder2Snipe](https://github.com/norbertoaquino/rudder2snipe) by [@norbertoaquino](https://github.com/norbertoaquino) - Rudder.io integration for Snipe-IT
- [Python 3 CSV importer](https://github.com/gastamper/snipeit-csvimporter) - allows importing assets into Snipe-IT based on Item Name rather than Asset Tag.
- [Snipe-IT Kubernetes Helm Chart](https://github.com/t3n/helm-charts/tree/master/snipeit) - For more information, [click here](https://hub.helm.sh/charts/t3n/snipeit).
- [Snipe-IT Bulk Edit](https://github.com/bricelabelle/snipe-it-bulkedit) - Google Script files to use Google Sheets as a bulk checkout/checkin/edit tool for Snipe-IT.
- [MosyleSnipeSync](https://github.com/RodneyLeeBrands/MosyleSnipeSync) by [@Karpadiem](https://github.com/Karpadiem) - Python script to synchronize information between Mosyle and Snipe-IT.
- [WWW::SnipeIT](https://github.com/SEDC/perl-www-snipeit) by [@SEDC](https://github.com/SEDC) - perl module for accessing the API
- [UniFi to Snipe-IT](https://github.com/RodneyLeeBrands/UnifiSnipeSync) by [@karpadiem](https://github.com/karpadiem) - Python script that synchronizes UniFi devices with Snipe-IT.
- [UniFi to Snipe-IT](https://www.edtechirl.com/p/snipe-it-and-azure-asset-management) originally by [@karpadiem](https://github.com/karpadiem) - Python script that synchronizes UniFi devices with Snipe-IT.
- [Kandji2Snipe](https://github.com/grokability/kandji2snipe) by [@briangoldstein](https://github.com/briangoldstein) - Python script that synchronizes Kandji with Snipe-IT.
- [SnipeAgent](https://github.com/ReticentRobot/SnipeAgent) by [@ReticentRobot](https://github.com/ReticentRobot) - Windows agent for Snipe-IT.
- [Gate Pass Generator](https://github.com/cha7uraAE/snipe-it-gate-pass-system) by [@cha7uraAE](https://github.com/cha7uraAE) - A Streamlit application for generating gate passes based on hardware data from a Snipe-IT API.
- [InQRy (archived)](https://github.com/Microsoft/InQRy) by [@Microsoft](https://github.com/Microsoft)
- [Marksman (archived)](https://github.com/Scope-IT/marksman) - A Windows agent for Snipe-IT
- [Python Module (archived)](https://github.com/jbloomer/SnipeIT-PythonAPI) by [@jbloomer](https://github.com/jbloomer)
We also have a handful of [Google Apps scripts](https://github.com/grokability/google-apps-scripts-for-snipe-it) to help with various tasks.
#### Mobile Apps
We're currently working on our own mobile app, but in the meantime, check out these third-party apps that work with Snipe-IT:
- [SnipeMate](https://snipemate.app/) (iOS, Google Play, Huawei AppGallery) by Mars Technology
- [Snipe-Scan](https://apps.apple.com/do/app/snipe-scan/id6744179400?uo=2) (iOS) by Nicolas Maton
- [Snipe-IT Assets Management](https://play.google.com/store/apps/details?id=com.diegogarciadev.assetsmanager.snipeit&hl=en&pli=1) (Google Play) by DiegoGarciaDEV
- [AssetX](https://apps.apple.com/my/app/assetx-for-snipe-it/id6741996196?uo=2) (iOS) for Snipe-IT by Rishi Gupta
-----
### Join the Community!
- **[Join our Discord](https://discord.gg/yZFtShAcKk)!** Its full of great people. We even wrote about it [here](https://grokstar.dev/culture/2024/06/the-unlikely-rise-of-discord-as-a-support-channel/)!
- **Follow us on Bluesky** at [@snipeitapp.com](https://bsky.app/profile/snipeitapp.com)
- **Follow us on Mastodon** at [hachyderm.io/@grokability](https://hachyderm.io/@grokability)
- **Follow our blog** at [Grokstar.Dev](https://grokstar.dev)
- **Subscribe here** on Github for notifications about new releases. (We recommend selecting "Releases" only for most users - this repo can get noisy.)
-----
### Contributing
Please refrain from submitting issues or pull requests generated by fully-automated tools. Maintainers reserve the right, at their sole discretion, to close such submissions and to block any account responsible for them.
**Please refrain from submitting issues or pull requests generated by fully-automated tools. Maintainers reserve the right, at their sole discretion, to close such submissions and to block any account responsible for them.** Please see our [AI Contribution Policy](https://snipe-it.readme.io/docs/contributing-overview#ai-usage-policy) for more information.
Ideally, contributions should follow from a human-to-human discussion in the form of an issue.
Contributions should follow from a human-to-human discussion in the form of an issue for the best chances of being merged into the core project. (Sometimes we might already be working on that feature, sometimes we've decided against )
Please see the complete documentation on [contributing and developing for Snipe-IT](https://snipe-it.readme.io/docs/contributing-overview).
Please note that this project is released with a [Contributor Code of Conduct](CODE_OF_CONDUCT.md). By participating in this project you agree to abide by its terms.
This project is released with a [Contributor Code of Conduct](CODE_OF_CONDUCT.md). By participating in this project you agree to abide by its terms.
The ERD is available [online here](https://drawsql.app/templates/snipe-it).
[Here is a list](CONTRIBUTORS.md) of the wonderful people that have contributed to the Snipe-IT.
Be sure to check out all of the [amazing people](CONTRIBUTORS.md) that have contributed to Snipe-IT over the years!
-----
### Security
### Star History
> [!IMPORTANT]
> **To report a security vulnerability, please email security@snipeitapp.com instead of using the issue tracker.**
[![Star History Chart](https://api.star-history.com/svg?repos=grokability/snipe-it&type=Date)](https://www.star-history.com/#grokability/snipe-it&Date)
------
### Announcement List
To be notified of important news (such as new releases, security advisories, etc), [sign up for our list](http://eepurl.com/XyZKz). We'll never sell or give away your info, and we'll only email you when it's important.
We also usually make smaller announcements on our social accounts, our Discord, and our blog, so be sure to subscribe to those if you're looking for more granular announcements.
+19 -5
View File
@@ -10,10 +10,13 @@ however there are times when library dependencies and/or PHP/MySQL dependencies
make it impossible to backport security fixes on older versions.
| Version | Supported |
| ------- | ------------------ |
| 5.1.x | :white_check_mark: |
|---------|--------------------|
| 8.x | :white_check_mark: |
| 7.x | :x: |
| 6.x | :x: |
| 5.1.x | :x: |
| 5.0.x | :x: |
| 4.0.x | :white_check_mark: |
| 4.0.x | :x: |
| < 4.0 | :x: |
## Reporting a Vulnerability
@@ -21,7 +24,18 @@ make it impossible to backport security fixes on older versions.
Security vulnerabilities should be sent to security@snipeitapp.com. You can typically expect a
response within two business days, and we typically have fixes out in under a week from the initial disclosure.
This obviously varies based on the severity of the security issue and the difficulty in remediation,
but those have historically been the timelines we worm around.
This obviously varies based on the severity of the security issue and the difficulty in remediation, but those have
historically been the timelines we work around.
We do ask that you do not disclose the vulnerability publicly until we have had a chance to address it and tag a release
so that we can protect our users, and we will work
with you to coordinate a public disclosure once we have a fix out. We will also work with you to ensure that you receive
appropriate credit for the discovery of the vulnerability, if you would like to be credited. (Please provide a GitHub
username or other information if you would like to be credited, and please let us know if you would like to remain
anonymous.)
For responsible disclosure, we ask that you give us at least __90 days__ to address the issue before disclosing it
publicly,
but we will work with you if you need to disclose it sooner than that.
For a full breakdown of our security policies, please see https://snipeitapp.com/security.
Vendored
+1 -1
View File
@@ -1,7 +1,7 @@
# -*- mode: ruby -*-
# vi: set ft=ruby :
SNIPEIT_SH_URL= "https://raw.githubusercontent.com/snipe/snipe-it/master/snipeit.sh"
SNIPEIT_SH_URL= "https://raw.githubusercontent.com/grokability/snipe-it/master/snipeit.sh"
NETWORK_BRIDGE= "en0: Wi-Fi (AirPort)"
Vagrant.configure("2") do |config|
+1 -1
View File
@@ -6,7 +6,7 @@
"it asset"
],
"website": "https://snipeitapp.com/",
"repository": "https://github.com/snipe/snipe-it",
"repository": "https://github.com/grokability/snipe-it",
"logo": "https://pbs.twimg.com/profile_images/976748875733020672/K-HnZCCK_400x400.jpg",
"success_url": "/setup",
"env": {
@@ -0,0 +1,109 @@
<?php
namespace App\Actions\Breadcrumbs;
use App\Models\Accessory;
use App\Models\Asset;
use App\Models\CheckoutAcceptance;
use App\Models\Consumable;
use App\Models\License;
use App\Models\LicenseSeat;
use App\Models\User;
use Tabuna\Breadcrumbs\Trail;
final class BuildAcceptanceBreadcrumbs
{
public static function forAcceptance(Trail $trail, CheckoutAcceptance|int|string $acceptance): void
{
$acceptance = self::resolveAcceptance($acceptance);
$trail->parent('home');
if (! $acceptance instanceof CheckoutAcceptance) {
self::appendProfileContext($trail);
return;
}
if (! self::isSignInPlaceFlow($acceptance)) {
self::appendProfileContext($trail);
$trail->push(trans('general.accept_item'), route('account.accept.item', $acceptance));
return;
}
self::appendCheckoutFlowContext($trail, $acceptance);
$trail->push(self::buildSignInPlaceLabel($acceptance));
}
private static function resolveAcceptance(CheckoutAcceptance|int|string $acceptance): ?CheckoutAcceptance
{
if ($acceptance instanceof CheckoutAcceptance) {
return $acceptance;
}
if (is_numeric($acceptance)) {
return CheckoutAcceptance::find((int) $acceptance);
}
return null;
}
private static function isSignInPlaceFlow(CheckoutAcceptance $acceptance): bool
{
return (int) session('sign_in_place_acceptance_id') === (int) $acceptance->id;
}
private static function appendProfileContext(Trail $trail): void
{
$trail->push(trans('general.profile'), route('account'));
$trail->push(trans('general.accept_items'), route('account.accept'));
}
private static function appendCheckoutFlowContext(Trail $trail, CheckoutAcceptance $acceptance): void
{
$checkoutable = $acceptance->checkoutable;
if ($checkoutable instanceof Asset) {
$trail->push(trans('general.assets'), route('hardware.index'));
$trail->push($checkoutable->display_name ?? trans('general.asset'), route('hardware.show', $checkoutable));
$trail->push(trans('general.checkout'));
return;
}
if ($checkoutable instanceof LicenseSeat) {
$license = $checkoutable->license;
if ($license instanceof License) {
$trail->push(trans('general.licenses'), route('licenses.index'));
$trail->push($license->display_name ?? trans('general.license'), route('licenses.show', $license));
$trail->push(trans('general.checkout'));
}
return;
}
if ($checkoutable instanceof Consumable) {
$trail->push(trans('general.consumables'), route('consumables.index'));
$trail->push($checkoutable->display_name ?? trans('general.consumable'), route('consumables.show', $checkoutable));
$trail->push(trans('general.checkout'));
return;
}
if ($checkoutable instanceof Accessory) {
$trail->push(trans('general.accessories'), route('accessories.index'));
$trail->push($checkoutable->display_name ?? trans('general.accessory'), route('accessories.show', $checkoutable));
$trail->push(trans('general.checkout'));
}
}
private static function buildSignInPlaceLabel(CheckoutAcceptance $acceptance): string
{
if ($acceptance->assignedTo instanceof User) {
return sprintf('%s for %s', trans('general.sign_in_place'), $acceptance->assignedTo->display_name);
}
return trans('general.sign_in_place');
}
}
@@ -0,0 +1,59 @@
<?php
namespace App\Actions\Categories;
use App\Exceptions\ItemStillHasAccessories;
use App\Exceptions\ItemStillHasAssetModels;
use App\Exceptions\ItemStillHasAssets;
use App\Exceptions\ItemStillHasComponents;
use App\Exceptions\ItemStillHasConsumables;
use App\Exceptions\ItemStillHasLicenses;
use App\Models\Category;
use Illuminate\Support\Facades\Storage;
class DestroyCategoryAction
{
/**
* @throws ItemStillHasAssets
* @throws ItemStillHasAssetModels
* @throws ItemStillHasComponents
* @throws ItemStillHasAccessories
* @throws ItemStillHasLicenses
* @throws ItemStillHasConsumables
*/
public static function run(Category $category): bool
{
$category->loadCount([
'assets as assets_count',
'accessories as accessories_count',
'consumables as consumables_count',
'components as components_count',
'licenses as licenses_count',
'models as models_count',
]);
if ($category->assets_count > 0) {
throw new ItemStillHasAssets($category);
}
if ($category->accessories_count > 0) {
throw new ItemStillHasAccessories($category);
}
if ($category->consumables_count > 0) {
throw new ItemStillHasConsumables($category);
}
if ($category->components_count > 0) {
throw new ItemStillHasComponents($category);
}
if ($category->licenses_count > 0) {
throw new ItemStillHasLicenses($category);
}
if ($category->models_count > 0) {
throw new ItemStillHasAssetModels($category);
}
Storage::disk('public')->delete('categories'.'/'.$category->image);
$category->delete();
return true;
}
}
@@ -0,0 +1,47 @@
<?php
namespace App\Actions\CheckoutRequests;
use App\Models\Actionlog;
use App\Models\Asset;
use App\Models\Company;
use App\Models\Setting;
use App\Models\User;
use App\Notifications\RequestAssetCancelation;
use Illuminate\Auth\Access\AuthorizationException;
class CancelCheckoutRequestAction
{
public static function run(Asset $asset, User $user)
{
if (! Company::isCurrentUserHasAccess($asset)) {
throw new AuthorizationException;
}
$asset->cancelRequest();
$asset->decrement('requests_counter', 1);
$data['item'] = $asset;
$data['target'] = $user;
$data['item_quantity'] = 1;
$settings = Setting::getSettings();
$logaction = new Actionlog;
$logaction->item_id = $data['asset_id'] = $asset->id;
$logaction->item_type = $data['item_type'] = Asset::class;
$logaction->created_at = $data['requested_date'] = date('Y-m-d H:i:s');
$logaction->target_id = $data['user_id'] = auth()->id();
$logaction->target_type = User::class;
$logaction->location_id = $user->location_id ?? null;
$logaction->logaction('request canceled');
try {
$settings->notify(new RequestAssetCancelation($data));
} catch (\Exception $e) {
\Log::warning($e);
}
return true;
}
}
@@ -0,0 +1,54 @@
<?php
namespace App\Actions\CheckoutRequests;
use App\Exceptions\AssetNotRequestable;
use App\Models\Actionlog;
use App\Models\Asset;
use App\Models\Company;
use App\Models\Setting;
use App\Models\User;
use App\Notifications\RequestAssetNotification;
use Illuminate\Auth\Access\AuthorizationException;
use Log;
class CreateCheckoutRequestAction
{
/**
* @throws AssetNotRequestable
* @throws AuthorizationException
*/
public static function run(Asset $asset, User $user): string
{
if (is_null(Asset::RequestableAssets()->find($asset->id))) {
throw new AssetNotRequestable($asset);
}
if (! Company::isCurrentUserHasAccess($asset)) {
throw new AuthorizationException;
}
$data['item'] = $asset;
$data['target'] = $user;
$data['item_quantity'] = 1;
$settings = Setting::getSettings();
$logaction = new Actionlog;
$logaction->item_id = $data['asset_id'] = $asset->id;
$logaction->item_type = $data['item_type'] = Asset::class;
$logaction->created_at = $data['requested_date'] = date('Y-m-d H:i:s');
$logaction->target_id = $data['user_id'] = auth()->id();
$logaction->target_type = User::class;
$logaction->location_id = $user->location_id ?? null;
$logaction->logaction('requested');
$asset->request();
$asset->increment('requests_counter', 1);
try {
$settings->notify((new RequestAssetNotification($data))->locale($settings->locale));
} catch (\Exception $e) {
Log::warning($e);
}
return true;
}
}
@@ -0,0 +1,62 @@
<?php
namespace App\Actions\Manufacturers;
use App\Exceptions\ItemStillHasAccessories;
use App\Exceptions\ItemStillHasAssets;
use App\Exceptions\ItemStillHasComponents;
use App\Exceptions\ItemStillHasConsumables;
use App\Exceptions\ItemStillHasLicenses;
use App\Models\Manufacturer;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Storage;
class DeleteManufacturerAction
{
/**
* @throws ItemStillHasAssets
* @throws ItemStillHasComponents
* @throws ItemStillHasAccessories
* @throws ItemStillHasLicenses
* @throws ItemStillHasConsumables
*/
public static function run(Manufacturer $manufacturer): bool
{
$manufacturer->loadCount([
'assets as assets_count',
'accessories as accessories_count',
'consumables as consumables_count',
'components as components_count',
'licenses as licenses_count',
]);
if ($manufacturer->assets_count > 0) {
throw new ItemStillHasAssets($manufacturer);
}
if ($manufacturer->accessories_count > 0) {
throw new ItemStillHasAccessories($manufacturer);
}
if ($manufacturer->consumables_count > 0) {
throw new ItemStillHasConsumables($manufacturer);
}
if ($manufacturer->components_count > 0) {
throw new ItemStillHasComponents($manufacturer);
}
if ($manufacturer->licenses_count > 0) {
throw new ItemStillHasLicenses($manufacturer);
}
if ($manufacturer->image) {
try {
Storage::disk('public')->delete('manufacturers/'.$manufacturer->image);
} catch (\Exception $e) {
Log::info($e);
}
}
$manufacturer->delete();
// dd($manufacturer);
return true;
}
}
@@ -0,0 +1,30 @@
<?php
namespace App\Actions\Permissions;
final class NormalizePermissionsPayloadAction
{
/**
* Normalize permissions payloads from request/model to a consistent associative array.
*
* @return array<string, mixed>
*/
public static function run(mixed $permissions): array
{
if (is_string($permissions)) {
$decoded = json_decode($permissions, true);
return is_array($decoded) ? $decoded : [];
}
if (is_array($permissions)) {
return $permissions;
}
if ($permissions instanceof \stdClass) {
return (array) $permissions;
}
return [];
}
}
@@ -0,0 +1,36 @@
<?php
namespace App\Actions\Permissions;
use App\Models\User;
final class PreserveUnauthorizedPrivilegedPermissionsAction
{
/**
* Preserve privileged permission keys unless the authenticated user may manage them.
*
* @param array<string, mixed> $requestedPermissions
* @param array<string, mixed> $originalPermissions
* @return array<string, mixed>
*/
public static function run(array $requestedPermissions, User $authenticatedUser, array $originalPermissions = []): array
{
if (! $authenticatedUser->isSuperUser()) {
if (array_key_exists('superuser', $originalPermissions)) {
$requestedPermissions['superuser'] = $originalPermissions['superuser'];
} else {
unset($requestedPermissions['superuser']);
}
}
if ((! $authenticatedUser->isAdmin()) && (! $authenticatedUser->isSuperUser())) {
if (array_key_exists('admin', $originalPermissions)) {
$requestedPermissions['admin'] = $originalPermissions['admin'];
} else {
unset($requestedPermissions['admin']);
}
}
return $requestedPermissions;
}
}
@@ -0,0 +1,71 @@
<?php
namespace App\Actions\Suppliers;
use App\Exceptions\ItemStillHasAccessories;
use App\Exceptions\ItemStillHasAssets;
use App\Exceptions\ItemStillHasComponents;
use App\Exceptions\ItemStillHasConsumables;
use App\Exceptions\ItemStillHasLicenses;
use App\Exceptions\ItemStillHasMaintenances;
use App\Models\Supplier;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Storage;
class DestroySupplierAction
{
/**
* @throws ItemStillHasLicenses
* @throws ItemStillHasAssets
* @throws ItemStillHasMaintenances
* @throws ItemStillHasAccessories
* @throws ItemStillHasConsumables
* @throws ItemStillHasComponents
*/
public static function run(Supplier $supplier): bool
{
$supplier->loadCount([
'maintenances as maintenances_count',
'assets as assets_count',
'licenses as licenses_count',
'accessories as accessories_count',
'consumables as consumables_count',
'components as components_count',
]);
if ($supplier->assets_count > 0) {
throw new ItemStillHasAssets($supplier);
}
if ($supplier->maintenances_count > 0) {
throw new ItemStillHasMaintenances($supplier);
}
if ($supplier->licenses_count > 0) {
throw new ItemStillHasLicenses($supplier);
}
if ($supplier->accessories_count > 0) {
throw new ItemStillHasAccessories($supplier);
}
if ($supplier->consumables_count > 0) {
throw new ItemStillHasConsumables($supplier);
}
if ($supplier->components_count > 0) {
throw new ItemStillHasComponents($supplier);
}
if ($supplier->image) {
try {
Storage::disk('public')->delete('suppliers/'.$supplier->image);
} catch (\Exception $e) {
Log::info($e->getMessage());
}
}
$supplier->delete();
return true;
}
}
@@ -4,9 +4,7 @@ namespace App\Console\Commands;
use App\Models\License;
use App\Models\LicenseSeat;
use App\Models\User;
use Illuminate\Console\Command;
use Illuminate\Database\Eloquent\Model;
class CheckinLicensesFromAllUsers extends Command
{
@@ -3,10 +3,8 @@
namespace App\Console\Commands;
use App\Models\License;
use App\Models\LicenseSeat;
use App\Models\User;
use Illuminate\Console\Command;
use Illuminate\Database\Eloquent\Model;
class CheckoutLicenseToAllUsers extends Command
{
@@ -75,6 +73,7 @@ class CheckoutLicenseToAllUsers extends Command
if ($user->licenses->where('id', '=', $license_id)->count()) {
$this->info($user->username.' already has this license checked out to them. Skipping... ');
continue;
}
@@ -0,0 +1,70 @@
<?php
namespace App\Console\Commands;
use App\Models\CheckoutAcceptance;
use App\Models\LicenseSeat;
use App\Models\User;
use Illuminate\Console\Command;
class CleanIncorrectCheckoutAcceptances extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'snipeit:clean-checkout-acceptances';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Delete checkout acceptances for checkouts to non-users';
/**
* Execute the console command.
*/
public function handle()
{
$deletions = 0;
$skips = 0;
// This walks *every* checkoutacceptance. That's gnarly. But necessary
$this->withProgressBar(CheckoutAcceptance::all(), function ($checkoutAcceptance) use (&$deletions, &$skips) {
$item = $checkoutAcceptance->checkoutable;
$checkout_to_id = $checkoutAcceptance->assigned_to_id;
if (is_null($item)) {
$this->info("'Checkoutable' Item is null, going to next record");
return; // 'false' allegedly breaks execution entirely, so 'true' maybe doesn't? hrm. just straight return maybe?
}
if (get_class($item) == LicenseSeat::class) {
$item = $item->license;
}
foreach ($item->assetlog()->where('action_type', 'checkout')->get() as $assetlog) {
if ($assetlog->target_id == $checkout_to_id && $assetlog->target_type != User::class) {
// We have a checkout-to an ID for a non-User, which matches to an ID in the checkout_acceptances table
// now, let's compare the _times_ - are they close?
// I'm picking `created_at` over `action_date` because I'm more interested in when the actionlogs
// were _created_, not when they were alleged to have happened - those created_at times need to be within 'X' seconds of
// each other (currently 5)
if ($assetlog->created_at->diffInSeconds($checkoutAcceptance->created_at, true) <= 5) { // we're allowing for five _ish_ seconds of slop
$deletions++;
$checkoutAcceptance->forceDelete(); // HARD delete this record; it should have never been
return;
} else {
// $this->info("The two records are too far apart");
}
} else {
// $this->info("No match! checkout to id: " . $checkout_to_id." target_id: ".$assetlog->target_id." target_type: ".$assetlog->target_type);
}
}
$skips++;
});
$this->error("Final deletion count: $deletions, and skip count: $skips");
}
}
@@ -0,0 +1,77 @@
<?php
namespace App\Console\Commands;
use App\Models\CheckoutRequest;
use Illuminate\Console\Command;
class CleanOldCheckoutRequests extends Command
{
private int $deletions = 0;
private int $skips = 0;
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'snipeit:clean-old-checkout-requests';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Removes checkout requests that reference deleted assets or users.';
/**
* Execute the console command.
*/
public function handle()
{
$requests = CheckoutRequest::with([
'user' => function ($query) {
$query->withTrashed();
},
'requestedItem' => function ($query) {
$query->withTrashed();
},
])->get();
$this->info("Processing {$requests->count()} checkout requests");
$this->withProgressBar($requests, function ($request) {
if ($this->shouldForceDelete($request)) {
$request->forceDelete();
$this->deletions++;
return;
}
if ($this->shouldSoftDelete($request)) {
$request->delete();
$this->deletions++;
return;
}
$this->skips++;
});
$this->info("Final deletion count: $this->deletions, and skip count: $this->skips");
return 0;
}
private function shouldForceDelete(CheckoutRequest $request)
{
// check if the requestable or user relationship is null
return ! $request->requestable || ! $request->user;
}
private function shouldSoftDelete(CheckoutRequest $request)
{
return $request->requestable->trashed() || $request->user->trashed();
}
}
+7 -13
View File
@@ -2,31 +2,28 @@
namespace App\Console\Commands;
use App\Models\User;
use Illuminate\Console\Command;
use \App\Models\User;
use Illuminate\Support\Carbon;
class CreateAdmin extends Command
{
/** @mixin User **/
/**
* App\Console\CreateAdmin
*
* @property mixed $first_name
* @property string $last_name
* @property string $username
* @property string $email
* @property string $permissions
* @property string $password
* @property boolean $activated
* @property boolean $show_in_list
* @property boolean $autoassign_licenses
* @property \Illuminate\Support\Carbon|null $created_at
* @property bool $activated
* @property bool $show_in_list
* @property bool $autoassign_licenses
* @property Carbon|null $created_at
* @property mixed $created_by
*/
protected $signature = 'snipeit:create-admin {--first_name=} {--last_name=} {--email=} {--username=} {--password=} {show_in_list?} {autoassign_licenses?}';
/**
@@ -46,7 +43,6 @@ class CreateAdmin extends Command
parent::__construct();
}
public function handle()
{
$first_name = $this->option('first_name');
@@ -57,8 +53,6 @@ class CreateAdmin extends Command
$show_in_list = $this->argument('show_in_list');
$autoassign_licenses = $this->argument('autoassign_licenses');
if (($first_name == '') || ($last_name == '') || ($username == '') || ($email == '') || ($password == '')) {
$this->info('ERROR: All fields are required.');
} else {
+53
View File
@@ -0,0 +1,53 @@
<?php
namespace App\Console\Commands;
use App\Models\Setting;
use Illuminate\Console\Command;
class DisableSAML extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'snipeit:saml-disable';
/**
* The console command description.
*
* @var string
*/
protected $description = 'This is a rescue command that can be used to turn off SAML settings in the event that you managed to lock yourself out using bad SAML settings.';
/**
* Create a new command instance.
*
* @return void
*/
public function __construct()
{
parent::__construct();
}
/**
* Execute the console command.
*
* @return mixed
*/
public function handle()
{
if ($this->confirm("\n****************************************************\nThis will disable SAML support. You will not be able \nto login with an account that does not exist \nlocally in the Snipe-IT local database. \n****************************************************\n\nDo you wish to continue? [y|N]")) {
$setting = Setting::getSettings();
$setting->saml_enabled = 0;
if ($setting->save()) {
$this->info('SAML has been set to disabled.');
} else {
$this->info('Unable to disable SAML.');
}
} else {
$this->info('Canceled. No actions taken.');
}
}
}
@@ -0,0 +1,153 @@
<?php
namespace App\Console\Commands;
use App\Models\Accessory;
use App\Models\Actionlog;
use Illuminate\Console\Command;
use Illuminate\Database\Eloquent\Model;
class FixBulkAccessoryCheckinActionLogEntries extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'snipeit:fix-bulk-accessory-action-log-entries {--dry-run : Run the sync process but don\'t update the database} {--skip-backup : Skip pre-execution backup}';
/**
* The console command description.
*
* @var string
*/
protected $description = 'This script attempts to fix timestamps and missing created_by values for bulk checkin entries in the log table';
private bool $dryrun = false;
private bool $skipBackup = false;
/**
* Execute the console command.
*/
public function handle()
{
$this->skipBackup = $this->option('skip-backup');
$this->dryrun = $this->option('dry-run');
if ($this->dryrun) {
$this->info('This is a DRY RUN - no changes will be saved.');
$this->newLine();
}
$logs = Actionlog::query()
// only look for accessory checkin logs
->where('item_type', Accessory::class)
// that were part of a bulk checkin
->where('note', 'Bulk checkin items')
// logs that were improperly timestamped should have created_at in the 1970s
->whereYear('created_at', '1970')
->get();
if ($logs->isEmpty()) {
$this->info('No logs found with incorrect timestamps.');
return 0;
}
$this->info('Found '.$logs->count().' logs with incorrect timestamps:');
$this->table(
['ID', 'Created By', 'Created At', 'Updated At'],
$logs->map(function ($log) {
return [
$log->id,
$log->created_by,
$log->created_at,
$log->updated_at,
];
})
);
if (! $this->dryrun && ! $this->confirm('Update these logs?')) {
return 0;
}
if (! $this->dryrun && ! $this->skipBackup) {
$this->info('Backing up the database before making changes...');
$this->call('snipeit:backup');
}
if ($this->dryrun) {
$this->newLine();
$this->info('DRY RUN. NOT ACTUALLY UPDATING LOGS.');
}
foreach ($logs as $log) {
$this->newLine();
$this->info('Processing log id:'.$log->id);
// created_by was not being set for accessory bulk checkins
// so let's see if there was another bulk checkin log
// with the same timestamp and a created_by value we can use.
if (is_null($log->created_by)) {
$createdByFromSimilarLog = $this->getCreatedByAttributeFromSimilarLog($log);
if ($createdByFromSimilarLog) {
$this->line(vsprintf('Updating log id:%s created_by to %s', [$log->id, $createdByFromSimilarLog]));
$log->created_by = $createdByFromSimilarLog;
} else {
$this->warn(vsprintf('No created_by found for log id:%s', [$log->id]));
$this->warn('Skipping updating this log since no similar log was found to update created_by from.');
// If we can't find a similar log then let's skip updating it
continue;
}
}
$this->line(vsprintf('Updating log id:%s from %s to %s', [$log->id, $log->created_at, $log->updated_at]));
$log->created_at = $log->updated_at;
if (! $this->dryrun) {
Model::withoutTimestamps(function () use ($log) {
$log->saveQuietly();
});
}
}
$this->newLine();
if ($this->dryrun) {
$this->info('DRY RUN. NO CHANGES WERE ACTUALLY MADE.');
}
return 0;
}
/**
* Hopefully the bulk checkin included other items like assets or licenses
* so we can use one of those logs to get the correct created_by value.
*
* This method attempts to find a bulk check in log that was
* created at the same time as the log passed in.
*/
private function getCreatedByAttributeFromSimilarLog(Actionlog $log): ?int
{
$similarLog = Actionlog::query()
->whereNotNull('created_by')
->where([
'action_type' => 'checkin from',
'note' => 'Bulk checkin items',
'target_id' => $log->target_id,
'target_type' => $log->target_type,
'created_at' => $log->updated_at,
])
->first();
if ($similarLog) {
return $similarLog->created_by;
}
return null;
}
}
+30 -15
View File
@@ -2,6 +2,21 @@
namespace App\Console\Commands;
use App\Models\Accessory;
use App\Models\Asset;
use App\Models\AssetModel;
use App\Models\Company;
use App\Models\Component;
use App\Models\Consumable;
use App\Models\Department;
use App\Models\Depreciation;
use App\Models\Group;
use App\Models\License;
use App\Models\Location;
use App\Models\Manufacturer;
use App\Models\Statuslabel;
use App\Models\Supplier;
use App\Models\User;
use Illuminate\Console\Command;
class FixDoubleEscape extends Command
@@ -38,21 +53,21 @@ class FixDoubleEscape extends Command
public function handle()
{
$tables = [
\App\Models\Asset::class => ['name'],
\App\Models\License::class => ['name'],
\App\Models\Consumable::class => ['name'],
\App\Models\Accessory::class => ['name'],
\App\Models\Component::class => ['name'],
\App\Models\Company::class => ['name'],
\App\Models\Manufacturer::class => ['name'],
\App\Models\Supplier::class => ['name'],
\App\Models\Statuslabel::class => ['name'],
\App\Models\Depreciation::class => ['name'],
\App\Models\AssetModel::class => ['name'],
\App\Models\Group::class => ['name'],
\App\Models\Department::class => ['name'],
\App\Models\Location::class => ['name'],
\App\Models\User::class => ['first_name', 'last_name'],
Asset::class => ['name'],
License::class => ['name'],
Consumable::class => ['name'],
Accessory::class => ['name'],
Component::class => ['name'],
Company::class => ['name'],
Manufacturer::class => ['name'],
Supplier::class => ['name'],
Statuslabel::class => ['name'],
Depreciation::class => ['name'],
AssetModel::class => ['name'],
Group::class => ['name'],
Department::class => ['name'],
Location::class => ['name'],
User::class => ['first_name', 'last_name'],
];
$count = [];
@@ -4,6 +4,7 @@ namespace App\Console\Commands;
use App\Models\Actionlog;
use App\Models\Asset;
use App\Models\User;
use Illuminate\Console\Command;
class FixMismatchedAssetsAndLogs extends Command
@@ -56,26 +57,26 @@ class FixMismatchedAssetsAndLogs extends Command
$mismatch_count = 0;
$assets = Asset::whereNotNull('assigned_to')
->where('assigned_type', '=', \App\Models\User::class)
->where('assigned_type', '=', User::class)
->orderBy('id', 'ASC')->get();
foreach ($assets as $asset) {
// get the last checkout of the asset
if ($checkout_log = Actionlog::where('target_type', '=', \App\Models\User::class)
if ($checkout_log = Actionlog::where('target_type', '=', User::class)
->where('action_type', '=', 'checkout')
->where('item_id', '=', $asset->id)
->orderBy('created_at', 'DESC')
->first()) {
// Now check for a subsequent checkin log - we want to ignore those
if (! $checkin_log = Actionlog::where('target_type', '=', \App\Models\User::class)
->where('action_type', '=', 'checkin from')
->where('item_id', '=', $asset->id)
->whereDate('created_at', '>', $checkout_log->created_at)
->orderBy('created_at', 'DESC')
->first()) {
// Now check for a subsequent checkin log - we want to ignore those
if (! $checkin_log = Actionlog::where('target_type', '=', User::class)
->where('action_type', '=', 'checkin from')
->where('item_id', '=', $asset->id)
->whereDate('created_at', '>', $checkout_log->created_at)
->orderBy('created_at', 'DESC')
->first()) {
//print_r($asset);
// print_r($asset);
if ($checkout_log->target_id != $asset->assigned_to) {
$this->error('Log ID: '.$checkout_log->id.' -- Asset ID '.$checkout_log->item_id.' SHOULD BE checked out to User '.$checkout_log->target_id.' but its assigned_to is '.$asset->assigned_to);
@@ -90,7 +91,7 @@ class FixMismatchedAssetsAndLogs extends Command
$mismatch_count++;
}
} else {
//$this->info('Asset ID '.$asset->id.': There is a checkin '.$checkin_log->created_at.' after this checkout '.$checkout_log->created_at);
// $this->info('Asset ID '.$asset->id.': There is a checkin '.$checkin_log->created_at.' after this checkout '.$checkout_log->created_at);
}
}
}
@@ -0,0 +1,32 @@
<?php
namespace App\Console\Commands;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\DB;
class FixUpAssignedTypeWithoutAssignedTo extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'snipeit:assigned-type-fixup';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Fixes up assets that have an assigned_type but no assigned_to';
/**
* Execute the console command.
*/
public function handle()
{
DB::table('assets')->whereNotNull('assigned_type')->whereNull('assigned_to')->update(['assigned_type' => null]);
$this->info('Assets with an assigned_type but no assigned_to are fixed');
}
}
@@ -27,40 +27,42 @@ class FixupAssignedToWithoutAssignedType extends Command
*/
public function handle()
{
$assets = Asset::whereNull("assigned_type")->whereNotNull("assigned_to")->withTrashed();
$assets = Asset::whereNull('assigned_type')->whereNotNull('assigned_to')->withTrashed();
$this->withProgressBar($assets->get(), function (Asset $asset) {
//now check each action log, from the most recent backwards, to find the last checkin or checkout
foreach($asset->log()->orderBy("id","desc")->get() as $action_log) {
if($this->option("debug")) {
$this->info("Asset id: " . $asset->id . " action log, action type is: " . $action_log->action_type);
// now check each action log, from the most recent backwards, to find the last checkin or checkout
foreach ($asset->log()->orderBy('id', 'desc')->get() as $action_log) {
if ($this->option('debug')) {
$this->info('Asset id: '.$asset->id.' action log, action type is: '.$action_log->action_type);
}
switch($action_log->action_type) {
switch ($action_log->action_type) {
case 'checkin from':
if($this->option("debug")) {
$this->info("Doing a checkin for ".$asset->id);
if ($this->option('debug')) {
$this->info('Doing a checkin for '.$asset->id);
}
$asset->assigned_to = null;
// if you have a required custom field, we still want to save, and we *don't* want an action_log
$asset->saveQuietly();
return;
case 'checkout':
if($this->option("debug")) {
$this->info("Doing a checkout for " . $asset->id . " picking target type: " . $action_log->target_type);
if ($this->option('debug')) {
$this->info('Doing a checkout for '.$asset->id.' picking target type: '.$action_log->target_type);
}
if($asset->assigned_to != $action_log->target_id) {
$this->error("Asset's assigned_to does *NOT* match Action Log's target_id. \$asset->assigned_to=".$asset->assigned_to." vs. \$action_log->target_id=".$action_log->target_id);
//FIXME - do we abort here? Do we try to keep looking? I don't know, this means your data is *really* messed up...
if ($asset->assigned_to != $action_log->target_id) {
$this->error("Asset's assigned_to does *NOT* match Action Log's target_id. \$asset->assigned_to=".$asset->assigned_to.' vs. $action_log->target_id='.$action_log->target_id);
// FIXME - do we abort here? Do we try to keep looking? I don't know, this means your data is *really* messed up...
}
$asset->assigned_type = $action_log->target_type;
$asset->saveQuietly(); // see above
return;
}
}
$asset->assigned_to = null; //asset was never checked in or out in its lifetime - it stays 'checked in'
$asset->saveQuietly(); //see above
$asset->assigned_to = null; // asset was never checked in or out in its lifetime - it stays 'checked in'
$asset->saveQuietly(); // see above
});
$this->newLine();
$this->info("Assets assigned_type are fixed");
$this->info('Assets assigned_type are fixed');
}
}
@@ -2,16 +2,13 @@
namespace App\Console\Commands;
use App\Helpers\Helper;
use Illuminate\Console\Command;
use App\Models\User;
use Laravel\Passport\TokenRepository;
use Illuminate\Contracts\Validation\Factory as ValidationFactory;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\DB;
use Laravel\Passport\TokenRepository;
class GeneratePersonalAccessToken extends Command
{
/**
* The name and signature of the console command.
*
@@ -29,23 +26,20 @@ class GeneratePersonalAccessToken extends Command
*/
protected $description = 'This console command allows you to generate Personal API tokens to be used with the Snipe-IT JSON REST API on behalf of a user.';
/**
* The token repository implementation.
*
* @var \Laravel\Passport\TokenRepository
* @var TokenRepository
*/
protected $tokenRepository;
/**
* Create a new command instance.
*
* @return void
*/
public function __construct(TokenRepository $tokenRepository, ValidationFactory $validation)
public function __construct(TokenRepository $tokenRepository)
{
$this->validation = $validation;
$this->tokenRepository = $tokenRepository;
parent::__construct();
}
@@ -59,11 +53,11 @@ class GeneratePersonalAccessToken extends Command
{
$accessTokenName = $this->option('name');
if ($accessTokenName=='') {
if ($accessTokenName == '') {
$accessTokenName = 'CLI Auth Token';
}
if ($this->option('user_id')=='') {
if ($this->option('user_id') == '') {
return $this->error('ERROR: user_id cannot be blank.');
}
@@ -76,9 +70,9 @@ class GeneratePersonalAccessToken extends Command
} else {
$this->warn('Your API Token has been created. Be sure to copy this token now, as it will not be accessible again.');
$this->warn('Your API Token has been created. Be sure to copy this token now, as it WILL NOT be accessible again.');
if ($token = DB::table('oauth_access_tokens')->where('user_id', '=', $user->id)->where('name','=',$accessTokenName)->orderBy('created_at', 'desc')->first()) {
if ($token = DB::table('oauth_access_tokens')->where('user_id', '=', $user->id)->where('name', '=', $accessTokenName)->orderBy('created_at', 'desc')->first()) {
$this->info('API Token ID: '.$token->id);
}
@@ -87,11 +81,8 @@ class GeneratePersonalAccessToken extends Command
$this->info('API Token: '.$createAccessToken);
}
} else {
return $this->error('ERROR: Invalid user. API key was not created.');
return $this->error('ERROR: Invalid user. API key was not created.');
}
}
}
+1 -1
View File
@@ -46,7 +46,7 @@ class ImportLocations extends Command
$filename = $this->argument('filename');
$csv = Reader::createFromPath(storage_path('private_uploads/imports/').$filename, 'r');
$this->info('Attempting to process: '.storage_path('private_uploads/imports/').$filename);
$csv->setHeaderOffset(0); //because we don't want to insert the header
$csv->setHeaderOffset(0); // because we don't want to insert the header
$results = $csv->getRecords();
// Import parent location names first if they don't exist
+7 -6
View File
@@ -38,22 +38,23 @@ class KillAllSessions extends Command
public function handle()
{
if (!$this->option('force') && !$this->confirm("****************************************************\nTHIS WILL FORCE A LOGIN FOR ALL LOGGED IN USERS.\n\nAre you SURE you wish to continue? ")) {
return $this->error("Session loss not confirmed");
if (! $this->option('force') && ! $this->confirm("****************************************************\nTHIS WILL FORCE A LOGIN FOR ALL LOGGED IN USERS.\n\nAre you SURE you wish to continue? ")) {
return $this->error('Session loss not confirmed');
}
$session_files = glob(storage_path("framework/sessions/*"));
$session_files = glob(storage_path('framework/sessions/*'));
$count = 0;
foreach ($session_files as $file) {
if (is_file($file))
if (is_file($file)) {
unlink($file);
$count++;
}
$count++;
}
\DB::table('users')->update(['remember_token' => null]);
$this->info($count. ' sessions cleared!');
$this->info($count.' sessions cleared!');
}
}
+208 -87
View File
@@ -2,13 +2,14 @@
namespace App\Console\Commands;
use App\Models\Asset;
use App\Models\Department;
use App\Models\Group;
use Illuminate\Console\Command;
use App\Models\Setting;
use App\Models\Ldap;
use App\Models\User;
use App\Models\Location;
use App\Models\Setting;
use App\Models\User;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\Log;
class LdapSync extends Command
@@ -18,7 +19,7 @@ class LdapSync extends Command
*
* @var string
*/
protected $signature = 'snipeit:ldap-sync {--location=} {--location_id=*} {--base_dn=} {--filter=} {--summary} {--json_summary}';
protected $signature = 'snipeit:ldap-sync {--location=} {--location_id=*} {--base_dn=} {--filter=} {--delete} {--summary} {--json_summary}';
/**
* The console command description.
@@ -46,27 +47,34 @@ class LdapSync extends Command
{
// If LDAP enabled isn't set to 1 (ldap_enabled!=1) then we should cut this short immediately without going any further
if (Setting::getSettings()->ldap_enabled!='1') {
if (Setting::getSettings()->ldap_enabled != '1') {
$this->error('LDAP is not enabled. Aborting. See Settings > LDAP to enable it.');
exit();
}
ini_set('max_execution_time', env('LDAP_TIME_LIM', 600)); //600 seconds = 10 minutes
ini_set('max_execution_time', env('LDAP_TIME_LIM', 600)); // 600 seconds = 10 minutes
ini_set('memory_limit', env('LDAP_MEM_LIM', '500M'));
// Map the LDAP attributes to the Snipe-IT user fields.
$ldap_map = [
"username" => Setting::getSettings()->ldap_username_field,
"last_name" => Setting::getSettings()->ldap_lname_field,
"first_name" => Setting::getSettings()->ldap_fname_field,
"active_flag" => Setting::getSettings()->ldap_active_flag,
"emp_num" => Setting::getSettings()->ldap_emp_num,
"email" => Setting::getSettings()->ldap_email,
"phone" => Setting::getSettings()->ldap_phone_field,
"jobtitle" => Setting::getSettings()->ldap_jobtitle,
"country" => Setting::getSettings()->ldap_country,
"location" => Setting::getSettings()->ldap_location,
"dept" => Setting::getSettings()->ldap_dept,
"manager" => Setting::getSettings()->ldap_manager,
'username' => Setting::getSettings()->ldap_username_field,
'last_name' => Setting::getSettings()->ldap_lname_field,
'first_name' => Setting::getSettings()->ldap_fname_field,
'active_flag' => Setting::getSettings()->ldap_active_flag,
'emp_num' => Setting::getSettings()->ldap_emp_num,
'email' => Setting::getSettings()->ldap_email,
'phone' => Setting::getSettings()->ldap_phone_field,
'mobile' => Setting::getSettings()->ldap_mobile,
'jobtitle' => Setting::getSettings()->ldap_jobtitle,
'address' => Setting::getSettings()->ldap_address,
'city' => Setting::getSettings()->ldap_city,
'state' => Setting::getSettings()->ldap_state,
'zip' => Setting::getSettings()->ldap_zip,
'country' => Setting::getSettings()->ldap_country,
'location' => Setting::getSettings()->ldap_location,
'dept' => Setting::getSettings()->ldap_dept,
'manager' => Setting::getSettings()->ldap_manager,
'display_name' => Setting::getSettings()->ldap_display_name,
];
$ldap_default_group = Setting::getSettings()->ldap_default_group;
@@ -86,19 +94,20 @@ class LdapSync extends Command
}
$summary = [];
$seen_ldap_usernames = [];
try {
/**
* if a location ID has been specified, use that OU
*/
if ( $this->option('location_id') ) {
if ($this->option('location_id')) {
foreach($this->option('location_id') as $location_id){
foreach ($this->option('location_id') as $location_id) {
$location_ou = Location::where('id', '=', $location_id)->value('ldap_ou');
$search_base = $location_ou;
Log::debug('Importing users from specified location OU: \"'.$search_base.'\".');
}
}
}
/**
@@ -124,6 +133,10 @@ class LdapSync extends Command
*/
$attributes = array_values(array_filter($ldap_map));
if (Setting::getSettings()->is_ad === 1 && is_null($ldap_map['active_flag'])) {
$attributes[] = 'useraccountcontrol';
}
$results = Ldap::findLdapUsers($search_base, -1, $filter, $attributes);
} catch (\Exception $e) {
@@ -140,21 +153,21 @@ class LdapSync extends Command
$default_location = null;
if ($this->option('location') != '') {
if ($default_location = Location::where('name', '=', $this->option('location'))->first()) {
Log::debug('Location name ' . $this->option('location') . ' passed');
Log::debug('Location name '.$this->option('location').' passed');
Log::debug('Importing to '.$default_location->name.' ('.$default_location->id.')');
}
} elseif ($this->option('location_id')) {
//TODO - figure out how or why this is an array?
foreach($this->option('location_id') as $location_id) {
// TODO - figure out how or why this is an array?
foreach ($this->option('location_id') as $location_id) {
if ($default_location = Location::where('id', '=', $location_id)->first()) {
Log::debug('Location ID ' . $location_id . ' passed');
Log::debug('Location ID '.$location_id.' passed');
Log::debug('Importing to '.$default_location->name.' ('.$default_location->id.')');
}
}
}
if (!isset($default_location)) {
if (! isset($default_location)) {
Log::debug('That location is invalid or a location was not provided, so no location will be assigned by default.');
}
@@ -177,7 +190,7 @@ class LdapSync extends Command
// Inject location information fields
for ($i = 0; $i < $results['count']; $i++) {
$results[$i]['ldap_location_override'] = false;
$results[$i]['location_id'] = 0;
$results[$i]['location_id'] = null;
}
// Grab subsets based on location-specific DNs, and overwrite location for these users.
@@ -195,17 +208,17 @@ class LdapSync extends Command
}
$usernames = [];
for ($i = 0; $i < $location_users['count']; $i++) {
if (array_key_exists($ldap_map["username"], $location_users[$i])) {
if (array_key_exists($ldap_map['username'], $location_users[$i])) {
$location_users[$i]['ldap_location_override'] = true;
$location_users[$i]['location_id'] = $ldap_loc['id'];
$usernames[] = $location_users[$i][$ldap_map["username"]][0];
$usernames[] = $location_users[$i][$ldap_map['username']][0];
}
}
// Delete located users from the general group.
foreach ($results as $key => $generic_entry) {
if ((is_array($generic_entry)) && (array_key_exists($ldap_map["username"], $generic_entry))) {
if (in_array($generic_entry[$ldap_map["username"]][0], $usernames)) {
if ((is_array($generic_entry)) && (array_key_exists($ldap_map['username'], $generic_entry))) {
if (in_array($generic_entry[$ldap_map['username']][0], $usernames)) {
unset($results[$key]);
}
}
@@ -219,35 +232,41 @@ class LdapSync extends Command
$manager_cache = [];
if($ldap_default_group != null) {
if ($ldap_default_group != null) {
$default = Group::find($ldap_default_group);
if (!$default) {
if (! $default) {
$ldap_default_group = null; // un-set the default group if that group doesn't exist
}
}
// Assign the mapped LDAP attributes for each user to the Snipe-IT user fields
for ($i = 0; $i < $results['count']; $i++) {
$item = [];
$item['username'] = $results[$i][$ldap_map["username"]][0] ?? '';
$item['employee_number'] = $results[$i][$ldap_map["emp_num"]][0] ?? '';
$item['lastname'] = $results[$i][$ldap_map["last_name"]][0] ?? '';
$item['firstname'] = $results[$i][$ldap_map["first_name"]][0] ?? '';
$item['email'] = $results[$i][$ldap_map["email"]][0] ?? '';
$item['ldap_location_override'] = $results[$i]['ldap_location_override'] ?? '';
$item['location_id'] = $results[$i]['location_id'] ?? '';
$item['telephone'] = $results[$i][$ldap_map["phone"]][0] ?? '';
$item['jobtitle'] = $results[$i][$ldap_map["jobtitle"]][0] ?? '';
$item['country'] = $results[$i][$ldap_map["country"]][0] ?? '';
$item['department'] = $results[$i][$ldap_map["dept"]][0] ?? '';
$item['manager'] = $results[$i][$ldap_map["manager"]][0] ?? '';
$item['location'] = $results[$i][$ldap_map["location"]][0] ?? '';
$location = $default_location; //initially, set '$location' to the default_location (which may just be `null`)
$item['username'] = $results[$i][$ldap_map['username']][0] ?? null;
$item['display_name'] = $results[$i][$ldap_map['display_name']][0] ?? null;
$item['employee_number'] = $results[$i][$ldap_map['emp_num']][0] ?? null;
$item['lastname'] = $results[$i][$ldap_map['last_name']][0] ?? null;
$item['firstname'] = $results[$i][$ldap_map['first_name']][0] ?? null;
$item['email'] = $results[$i][$ldap_map['email']][0] ?? null;
$item['ldap_location_override'] = $results[$i]['ldap_location_override'] ?? null;
$item['location_id'] = $results[$i]['location_id'] ?? null;
$item['telephone'] = $results[$i][$ldap_map['phone']][0] ?? null;
$item['mobile'] = $results[$i][$ldap_map['mobile']][0] ?? null;
$item['jobtitle'] = $results[$i][$ldap_map['jobtitle']][0] ?? null;
$item['address'] = $results[$i][$ldap_map['address']][0] ?? null;
$item['city'] = $results[$i][$ldap_map['city']][0] ?? null;
$item['state'] = $results[$i][$ldap_map['state']][0] ?? null;
$item['country'] = $results[$i][$ldap_map['country']][0] ?? null;
$item['zip'] = $results[$i][$ldap_map['zip']][0] ?? null;
$item['department'] = $results[$i][$ldap_map['dept']][0] ?? null;
$item['manager'] = $results[$i][$ldap_map['manager']][0] ?? null;
$item['location'] = $results[$i][$ldap_map['location']][0] ?? null;
$location = $default_location; // initially, set '$location' to the default_location (which may just be null)
// ONLY if you are using the "ldap_location" option *AND* you have an actual result
if ($ldap_map["location"] && $item['location']) {
if ($ldap_map['location'] && $item['location']) {
$location = Location::firstOrCreate([
'name' => $item['location'],
]);
@@ -256,8 +275,14 @@ class LdapSync extends Command
'name' => $item['department'],
]);
$user = User::where('username', $item['username'])->first();
$user = User::withTrashed()->where('username', $item['username'])->first();
if (! empty($item['username'])) {
$seen_ldap_usernames[] = $item['username'];
}
if ($user) {
if ($user->trashed()) {
$user->restore();
}
// Updating an existing user.
$item['createorupdate'] = 'updated';
} else {
@@ -269,40 +294,58 @@ class LdapSync extends Command
$item['createorupdate'] = 'created';
}
//If a sync option is not filled in on the LDAP settings don't populate the user field
if($ldap_map["username"] != null){
// If a sync option is not filled in on the LDAP settings don't populate the user field
if ($ldap_map['username'] != null) {
$user->username = $item['username'];
}
if($ldap_map["last_name"] != null){
if ($ldap_map['display_name'] != null) {
$user->display_name = $item['display_name'];
}
if ($ldap_map['last_name'] != null) {
$user->last_name = $item['lastname'];
}
if($ldap_map["first_name"] != null){
if ($ldap_map['first_name'] != null) {
$user->first_name = $item['firstname'];
}
if($ldap_map["emp_num"] != null){
if ($ldap_map['emp_num'] != null) {
$user->employee_num = e($item['employee_number']);
}
if($ldap_map["email"] != null){
if ($ldap_map['email'] != null) {
$user->email = $item['email'];
}
if($ldap_map["phone"] != null){
if ($ldap_map['phone'] != null) {
$user->phone = $item['telephone'];
}
if($ldap_map["jobtitle"] != null){
if ($ldap_map['mobile'] != null) {
$user->mobile = $item['mobile'];
}
if ($ldap_map['jobtitle'] != null) {
$user->jobtitle = $item['jobtitle'];
}
if($ldap_map["country"] != null){
if ($ldap_map['address'] != null) {
$user->address = $item['address'];
}
if ($ldap_map['city'] != null) {
$user->city = $item['city'];
}
if ($ldap_map['state'] != null) {
$user->state = $item['state'];
}
if ($ldap_map['country'] != null) {
$user->country = $item['country'];
}
if($ldap_map["dept"] != null){
if ($ldap_map['zip'] != null) {
$user->zip = $item['zip'];
}
if ($ldap_map['dept'] != null) {
$user->department_id = $department->id;
}
if($ldap_map["location"] != null){
if ($ldap_map['location'] != null) {
$user->location_id = $location?->id;
}
if($ldap_map["manager"] != null){
if($item['manager'] != null) {
if ($ldap_map['manager'] != null) {
if ($item['manager'] != null) {
// Check Cache first
if (isset($manager_cache[$item['manager']])) {
// found in cache; use that and avoid extra lookups
@@ -312,52 +355,64 @@ class LdapSync extends Command
try {
$ldap_manager = Ldap::findLdapUsers($item['manager'], -1, $this->option('filter'));
} catch (\Exception $e) {
Log::warning("Manager lookup caused an exception: " . $e->getMessage() . ". Falling back to direct username lookup");
Log::warning('Manager lookup caused an exception: '.$e->getMessage().'. Falling back to direct username lookup');
// Hail-mary for Okta manager 'shortnames' - will only work if
// Okta configuration is using full email-address-style usernames
$ldap_manager = [
"count" => 1,
'count' => 1,
0 => [
$ldap_map["username"] => [$item['manager']]
]
$ldap_map['username'] => [$item['manager']],
],
];
}
if ($ldap_manager["count"] > 0) {
$add_manager_to_cache = true;
if ($ldap_manager['count'] > 0) {
try {
// Get the Manager's username
// PHP LDAP returns every LDAP attribute as an array, and 90% of the time it's an array of just one item. But, hey, it's an array.
$ldapManagerUsername = $ldap_manager[0][$ldap_map['username']][0];
// Get the Manager's username
// PHP LDAP returns every LDAP attribute as an array, and 90% of the time it's an array of just one item. But, hey, it's an array.
$ldapManagerUsername = $ldap_manager[0][$ldap_map["username"]][0];
// Get User from Manager username.
$ldap_manager = User::where('username', $ldapManagerUsername)->first();
// Get User from Manager username.
$ldap_manager = User::where('username', $ldapManagerUsername)->first();
if ($ldap_manager && isset($ldap_manager->id)) {
// Link user to manager id.
$user->manager_id = $ldap_manager->id;
if ($ldap_manager && isset($ldap_manager->id)) {
// Link user to manager id.
$user->manager_id = $ldap_manager->id;
}
} catch (\Exception $e) {
$add_manager_to_cache = false;
\Log::warning('Handling ldap manager '.$item['manager'].' caused an exception: '.$e->getMessage().'. Continuing synchronization.');
}
}
$manager_cache[$item['manager']] = $ldap_manager && isset($ldap_manager->id) ? $ldap_manager->id : null; // Store results in cache, even if 'failed'
if ($add_manager_to_cache) {
$manager_cache[$item['manager']] = $ldap_manager && isset($ldap_manager->id) ? $ldap_manager->id : null; // Store results in cache, even if 'failed'
}
}
}
}
// Sync activated state for Active Directory.
if (!empty($ldap_map["active_flag"])) { // IF we have an 'active' flag set....
if (! empty($ldap_map['active_flag'])) { // IF we have an 'active' flag set....
// ....then *most* things that are truthy will activate the user. Anything falsey will deactivate them.
// (Specifically, we don't handle a value of '0.0' correctly)
$raw_value = @$results[$i][$ldap_map["active_flag"]][0];
$raw_value = @$results[$i][$ldap_map['active_flag']][0];
$filter_var = filter_var($raw_value, FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE);
$boolean_cast = (bool) $raw_value;
$user->activated = $filter_var ?? $boolean_cast; // if filter_var() was true or false, use that. If it's null, use the $boolean_cast
if (Setting::getSettings()->ldap_invert_active_flag === 1) {
// Because ldap_active_flag is set, if filter_var is true or boolean_cast is true, then user is suspended
$user->activated = ! ($filter_var ?? $boolean_cast);
} else {
$user->activated = $filter_var ?? $boolean_cast; // if filter_var() was true or false, use that. If it's null, use the $boolean_cast
}
} elseif (array_key_exists('useraccountcontrol', $results[$i])) {
// ....otherwise, (ie if no 'active' LDAP flag is defined), IF the UAC setting exists,
// ....then use the UAC setting on the account to determine can-log-in vs. cannot-log-in
/* The following is _probably_ the correct logic, but we can't use it because
some users may have been dependent upon the previous behavior, and this
could cause additional access to be available to users they don't want
@@ -383,7 +438,7 @@ class LdapSync extends Command
'262688', // 0x40220 NORMAL_ACCOUNT, PASSWD_NOTREQD, SMARTCARD_REQUIRED
'328192', // 0x50200 NORMAL_ACCOUNT, SMARTCARD_REQUIRED, DONT_EXPIRE_PASSWORD
'328224', // 0x50220 NORMAL_ACCOUNT, PASSWD_NOT_REQD, SMARTCARD_REQUIRED, DONT_EXPIRE_PASSWORD
'4194816',// 0x400200 NORMAL_ACCOUNT, DONT_REQ_PREAUTH
'4194816', // 0x400200 NORMAL_ACCOUNT, DONT_REQ_PREAUTH
'4260352', // 0x410200 NORMAL_ACCOUNT, DONT_EXPIRE_PASSWORD, DONT_REQ_PREAUTH
'1049088', // 0x100200 NORMAL_ACCOUNT, NOT_DELEGATED
'1114624', // 0x110200 NORMAL_ACCOUNT, DONT_EXPIRE_PASSWORD, NOT_DELEGATED,
@@ -394,14 +449,13 @@ class LdapSync extends Command
} /* implied 'else' here - leave the $user->activated flag alone. Newly-created accounts will be active.
already-existing accounts will be however the administrator has set them */
if ($item['ldap_location_override'] == true) {
$user->location_id = $item['location_id'];
} elseif ((isset($location)) && (!empty($location))) {
} elseif ((isset($location)) && (! empty($location))) {
if ((is_array($location)) && (array_key_exists('id', $location))) {
$user->location_id = $location['id'];
} elseif (is_object($location)) {
$user->location_id = $location->id; //THIS is the magic line, this should do it.
$user->location_id = $location->id; // THIS is the magic line, this should do it.
}
}
// TODO - should we be NULLING locations if $location is really `null`, and that's what we came up with?
@@ -413,10 +467,23 @@ class LdapSync extends Command
$errors = '';
if ($user->save()) {
$item['id'] = $user->id;
$item['note'] = $item['createorupdate'];
$item['status'] = 'success';
if ($item['createorupdate'] === 'created' && $ldap_default_group) {
$user->groups()->attach($ldap_default_group);
// Check if the relationship already exists
if (! $user->groups()->where('group_id', $ldap_default_group)->exists()) {
$user->groups()->attach($ldap_default_group);
}
}
// updates assets location based on user's location
if ($user->wasChanged('location_id')) {
foreach ($user->assets as $asset) {
$asset->location_id = $user->location_id;
// TODO: somehow add note? "Asset Location Changed because of thing"
$asset->save();
}
}
} else {
@@ -430,6 +497,41 @@ class LdapSync extends Command
array_push($summary, $item);
}
// Optionally soft-delete LDAP-imported users that are no longer present in LDAP.
// users with assests etc. are not deletable and skipped
if ($this->option('delete')) {
$missing_ldap_users = User::where('ldap_import', 1);
$missing_ldap_users = $missing_ldap_users->whereNotIn('username', $seen_ldap_usernames);
$missing_ldap_users = $missing_ldap_users->get();
foreach ($missing_ldap_users as $missing_user) {
$is_deletable = $this->isUserDeletable($missing_user);
$missing_item = [
'id' => $missing_user->id,
'username' => $missing_user->username,
'firstname' => $missing_user->first_name,
'lastname' => $missing_user->last_name,
'email' => $missing_user->email,
'createorupdate' => 'skipped',
'status' => 'info',
'deletable' => $is_deletable,
'note' => $is_deletable ? 'missing from LDAP' : 'missing from LDAP, but not deletable',
];
if ($is_deletable) {
$missing_user->delete();
$missing_item['createorupdate'] = 'deleted';
$missing_item['status'] = 'success';
$missing_item['note'] = 'deleted_missing_from_ldap';
}
$summary[] = $missing_item;
}
}
if ($this->option('summary')) {
for ($x = 0; $x < count($summary); $x++) {
if ($summary[$x]['status'] == 'error') {
@@ -445,4 +547,23 @@ class LdapSync extends Command
return $summary;
}
}
/**
* Checks if the user is deletable without gate check
*
* A user is considered deletable if they have no associated assets, accessories, licenses, consumables, managed users, or managed locations.
*
* @param User $user The user to check
*
* @return bool True if the user is deletable, false otherwise
*/
private function isUserDeletable(User $user): bool
{
return (($user->assets_count ?? $user->assets()->count()) === 0)
&& (($user->accessories_count ?? $user->accessories()->count()) === 0)
&& (($user->licenses_count ?? $user->licenses()->count()) === 0)
&& (($user->consumables_count ?? $user->consumables()->count()) === 0)
&& (($user->manages_users_count ?? $user->managesUsers()->count()) === 0)
&& (($user->manages_locations_count ?? $user->managedLocations()->count()) === 0);
}
}
+333 -200
View File
@@ -2,28 +2,32 @@
namespace App\Console\Commands;
use Illuminate\Console\Command;
use App\Models\Ldap;
use App\Models\Setting;
use Exception;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\Crypt;
/**
* Check if a given ip is in a network
* @param string $ip IP to check in IPV4 format eg. 127.0.0.1
* @param string $range IP/CIDR netmask eg. 127.0.0.0/24, also 127.0.0.1 is accepted and /32 assumed
* @return boolean true if the ip is in this range / false if not.
*
* @param string $ip IP to check in IPV4 format eg. 127.0.0.1
* @param string $range IP/CIDR netmask eg. 127.0.0.0/24, also 127.0.0.1 is accepted and /32 assumed
* @return bool true if the ip is in this range / false if not.
*/
function ip_in_range( $ip, $range ) {
if ( strpos( $range, '/' ) == false ) {
$range .= '/32';
}
// $range is in IP/CIDR format eg 127.0.0.1/24
list( $range, $netmask ) = explode( '/', $range, 2 );
$range_decimal = ip2long( $range );
$ip_decimal = ip2long( $ip );
$wildcard_decimal = pow( 2, ( 32 - $netmask ) ) - 1;
$netmask_decimal = ~ $wildcard_decimal;
return ( ( $ip_decimal & $netmask_decimal ) == ( $range_decimal & $netmask_decimal ) );
function ip_in_range($ip, $range)
{
if (strpos($range, '/') == false) {
$range .= '/32';
}
// $range is in IP/CIDR format eg 127.0.0.1/24
[$range, $netmask] = explode('/', $range, 2);
$range_decimal = ip2long($range);
$ip_decimal = ip2long($ip);
$wildcard_decimal = pow(2, (32 - $netmask)) - 1;
$netmask_decimal = ~$wildcard_decimal;
return ($ip_decimal & $netmask_decimal) == ($range_decimal & $netmask_decimal);
}
// NOTE - this function was shamelessly stolen from this gist: https://gist.github.com/tott/7684443
@@ -32,10 +36,10 @@ function ip_in_range( $ip, $range ) {
*/
function parenthesized_filter($filter)
{
if(substr($filter,0,1) == "(" ) {
if (substr($filter, 0, 1) == '(') {
return $filter;
} else {
return "(".$filter.")";
return '('.$filter.')';
}
}
@@ -73,41 +77,44 @@ class LdapTroubleshooter extends Command
/**
* Output something *only* if debug is enabled
*
*
* @return void
*/
public function debugout($string)
{
if($this->option('debug')) {
if ($this->option('debug')) {
$this->line($string);
}
}
/**
* Clean the results from ldap_get_entries into something useful
* @param array $array
*
* @param array $array
* @return array
*/
public function ldap_results_cleaner ($array) {
public function ldap_results_cleaner($array)
{
$cleaned = [];
for($i = 0; $i < $array['count']; $i++) {
for ($i = 0; $i < $array['count']; $i++) {
$row = $array[$i];
$clean_row = [];
foreach($row AS $key => $val ) {
$this->debugout("Key is: ".$key);
if($key == "count" || is_int($key) || $key == "dn") {
foreach ($row as $key => $val) {
$this->debugout('Key is: '.$key);
if ($key == 'count' || is_int($key) || $key == 'dn') {
$this->debugout(" and we're gonna skip it\n");
continue;
}
$this->debugout(" And that seems fine.\n");
if(array_key_exists('count',$val)) {
if($val['count'] == 1) {
if (array_key_exists('count', $val)) {
if ($val['count'] == 1) {
$clean_row[$key] = $val[0];
} else {
unset($val['count']); //these counts are annoying
unset($val['count']); // these counts are annoying
$elements = [];
foreach($val as $entry) {
if(isset($ldap_constants[$entry])) {
foreach ($val as $entry) {
if (isset($ldap_constants[$entry])) {
$elements[] = $ldap_constants[$entry];
} else {
$elements[] = $entry;
@@ -121,6 +128,7 @@ class LdapTroubleshooter extends Command
}
$cleaned[$i] = $clean_row;
}
return $cleaned;
}
@@ -131,56 +139,81 @@ class LdapTroubleshooter extends Command
*/
public function handle()
{
if($this->option('trace')) {
ldap_set_option(NULL, LDAP_OPT_DEBUG_LEVEL, 7);
if ($this->option('trace')) {
ldap_set_option(null, LDAP_OPT_DEBUG_LEVEL, 7);
}
$settings = Setting::getSettings();
$this->settings = $settings;
if($this->option('ldap-search')) {
if(!$this->option('force')) {
if ($this->option('ldap-search')) {
if (! $this->option('force')) {
$confirmation = $this->confirm('WARNING: This command will display your LDAP password on your terminal. Are you sure this is ok?');
if(!$confirmation) {
if (! $confirmation) {
$this->error('ABORTING');
exit(-1);
}
}
$output = [];
if($settings->ldap_server_cert_ignore) {
$this->line("# Ignoring server certificate validity");
$output[] = "LDAPTLS_REQCERT=never";
if ($settings->ldap_server_cert_ignore) {
$this->line('# Ignoring server certificate validity');
$output[] = 'LDAPTLS_REQCERT=never';
}
if($settings->ldap_client_tls_cert && $settings->ldap_client_tls_key) {
$this->line("# Adding LDAP Client Certificate and Key");
$output[] = "LDAPTLS_CERT=storage/ldap_client_tls.cert";
$output[] = "LDAPTLS_KEY=storage/ldap_client_tls.key";
if ($settings->ldap_client_tls_cert && $settings->ldap_client_tls_key) {
$this->line('# Adding LDAP Client Certificate and Key');
$output[] = 'LDAPTLS_CERT=storage/ldap_client_tls.cert';
$output[] = 'LDAPTLS_KEY=storage/ldap_client_tls.key';
}
$output[] = "ldapsearch";
$output[] = "-H ".$settings->ldap_server;
$output[] = "-x";
$output[] = "-b ".escapeshellarg($settings->ldap_basedn);
$output[] = "-D ".escapeshellarg($settings->ldap_uname);
$output[] = "-w ".escapeshellarg(Crypt::Decrypt($settings->ldap_pword));
$output[] = 'ldapsearch';
$output[] = '-H '.$settings->ldap_server;
$output[] = '-x';
$output[] = '-b '.escapeshellarg($settings->ldap_basedn);
$output[] = '-D '.escapeshellarg($settings->ldap_uname);
try {
$w = Crypt::Decrypt($settings->ldap_pword);
} catch (Exception $e) {
$this->warn('Could not decrypt password. This usually means an LDAP password was not set or the APP_KEY was changed since the LDAP pasword was last saved. Aborting.');
exit(0);
}
$output[] = '-w '.escapeshellarg($w);
$output[] = escapeshellarg(parenthesized_filter($settings->ldap_filter));
if($settings->ldap_tls) {
$this->line("# adding STARTTLS option");
$output[] = "-Z";
if ($settings->ldap_tls) {
$this->line('# adding STARTTLS option');
$output[] = '-Z';
}
$output[] = "-v";
$output[] = '-v';
$this->line("\n");
$this->line(implode(" \\\n",$output));
$this->line(implode(" \\\n", $output));
exit(0);
}
if(!$this->option('force')) {
// PHP Version check for warning
$php_version = phpversion();
[$major, $minor, $patch] = explode('.', $php_version);
if (
$major < 8 ||
($major == 8 && $minor < 3) ||
($major == 8 && $minor == 3 && $patch < 21) ||
($major == 8 && $minor == 4 && $patch < 7)
) {
$this->warn("PHP Version: $php_version WARNING - Versions before 8.3.21 or 8.4.7 will return INCONSISTENT results!");
if (! $this->confirm('Are you sure you wish to continue?')) {
$this->warn('ABORTING');
exit(-1);
}
}
if (! $this->option('force')) {
$confirmation = $this->confirm('WARNING: This command will make several attempts to connect to your LDAP server. Are you sure this is ok?');
if(!$confirmation) {
if (! $confirmation) {
$this->error('ABORTING');
exit(-1);
}
}
//$this->line(print_r($settings,true));
$this->info("STAGE 1: Checking settings");
if(!$settings->ldap_enabled) {
// $this->line(print_r($settings,true));
$this->line('STAGE 1: Checking settings');
if (! $settings->ldap_enabled) {
$this->error("WARNING: Snipe-IT's LDAP setting is not turned on. (That may be OK if you're still trying to figure out settings)");
}
@@ -188,328 +221,428 @@ class LdapTroubleshooter extends Command
try {
$ldap_conn = ldap_connect($settings->ldap_server);
} catch (Exception $e) {
$this->error("WARNING: Exception caught when executing 'ldap_connect()' - ".$e->getMessage().". We will try to guess.");
$this->error("WARNING: Exception caught when executing 'ldap_connect()' - ".$e->getMessage().'. We will try to guess.');
}
if(!$ldap_conn) {
$this->error("WARNING: LDAP Server setting of: ".$settings->ldap_server." cannot be parsed. We will try to guess.");
//exit(-1);
if (! $ldap_conn) {
$this->error('WARNING: LDAP Server setting of: '.$settings->ldap_server.' cannot be parsed. We will try to guess.');
// exit(-1);
}
//since we never use $ldap_conn again, we don't have to ldap_unbind() it (it's not even connected, tbh - that only happens at bind-time)
// since we never use $ldap_conn again, we don't have to ldap_unbind() it (it's not even connected, tbh - that only happens at bind-time)
$parsed = parse_url($settings->ldap_server);
if(@$parsed['scheme'] != 'ldap' && @$parsed['scheme'] != 'ldaps') {
if (@$parsed['scheme'] != 'ldap' && @$parsed['scheme'] != 'ldaps') {
$this->error("WARNING: LDAP URL Scheme of '".@$parsed['scheme']."' is probably incorrect; should usually be ldap or ldaps");
}
if(!@$parsed['host']) {
$this->error("ERROR: Cannot determine hostname or IP from ldap URL: ".$settings->ldap_server.". ABORTING.");
if (! @$parsed['host']) {
$this->error('ERROR: Cannot determine hostname or IP from ldap URL: '.$settings->ldap_server.'. ABORTING.');
exit(-1);
} else {
$this->info("Determined LDAP hostname to be: ".$parsed['host']);
$this->info('Determined LDAP hostname to be: '.$parsed['host']);
}
$this->info("Performing DNS lookup of: ".$parsed['host']);
$ips = dns_get_record($parsed['host']);
$raw_ips = [];
//$this->info("Host IP is: ".print_r($ips,true));
if (inet_pton($parsed['host']) !== false) {
$this->line($parsed['host'].' already looks like an address; skipping DNS lookup');
$raw_ips[] = $parsed['host'];
} else {
$this->line('Performing DNS lookup of: '.$parsed['host']);
$ips = dns_get_record($parsed['host']);
if(!$ips || count($ips) == 0) {
$this->error("ERROR: DNS lookup of host: ".$parsed['host']." has failed. ABORTING.");
exit(-1);
// $this->info("Host IP is: ".print_r($ips,true));
if (! $ips || count($ips) == 0) {
$this->error('ERROR: DNS lookup of host: '.$parsed['host'].' has failed. ABORTING.');
exit(-1);
}
$this->debugout("IP's? ".print_r($ips, true));
foreach ($ips as $ip) {
if (! isset($ip['ip'])) {
continue;
}
$raw_ips[] = $ip['ip'];
}
}
$this->debugout("IP's? ".print_r($ips,true));
foreach($ips as $ip) {
if(!isset($ip['ip'])) {
continue;
foreach ($raw_ips as $ip) {
if ($ip == '127.0.0.1') {
$this->error('WARNING: Using the localhost IP as the LDAP server. This is usually wrong');
}
$raw_ips[]=$ip['ip'];
if($ip['ip'] == "127.0.0.1") {
$this->error("WARNING: Using the localhost IP as the LDAP server. This is usually wrong");
}
if(ip_in_range($ip['ip'],'10.0.0.0/8') || ip_in_range($ip['ip'],'192.168.0.0/16') || ip_in_range($ip['ip'], '172.16.0.0/12')) {
$this->error("WARNING: Using an RFC1918 Private address for LDAP server. This may be correct, but it can be a problem if your Snipe-IT instance is not hosted on your private network");
if (ip_in_range($ip, '10.0.0.0/8') || ip_in_range($ip, '192.168.0.0/16') || ip_in_range($ip, '172.16.0.0/12')) {
$this->error('WARNING: Using an RFC1918 Private address for LDAP server. This may be correct, but it can be a problem if your Snipe-IT instance is not hosted on your private network');
}
}
$this->info("STAGE 2: Checking basic network connectivity");
$ports = [389,636];
if(@$parsed['port'] && !in_array($parsed['port'],$ports)) {
$this->line('STAGE 2: Checking basic network connectivity');
$ports = [636, 389];
if (@$parsed['port'] && ! in_array($parsed['port'], $ports)) {
$ports[] = $parsed['port'];
}
$open_ports=[];
foreach($ports as $port ) {
$open_ports = [];
foreach ($ports as $port) {
$errno = 0;
$errstr = '';
$timeout = 30.0;
$result = '';
$this->info("Attempting to connect to port: ".$port." - may take up to $timeout seconds");
$this->line('Attempting to connect to port: '.$port." - may take up to $timeout seconds");
try {
$result = fsockopen($parsed['host'], $port, $errno, $errstr, 30.0);
} catch(Exception $e) {
$this->error("Exception: ".$e->getMessage());
} catch (Exception $e) {
$this->error('Exception: '.$e->getMessage());
}
if($result) {
$this->info("Success!");
if ($result) {
$this->info('Success!');
$open_ports[] = $port;
} else {
$this->error("WARNING: Cannot connect to port: $port - $errstr ($errno)");
}
}
if(count($open_ports) == 0) {
$this->error("ERROR - no open ports. ABORTING.");
if (count($open_ports) == 0) {
$this->error('ERROR - no open ports. ABORTING.');
exit(-1);
}
$this->info("STAGE 3: Determine encryption algorithm, if any");
$this->line('STAGE 3: Determine encryption algorithm, if any');
$ldap_urls = [];
$ldap_urls = []; // [url, cert-check?, start_tls?]
$pretty_ldap_urls = [];
foreach($open_ports as $port) {
foreach ($open_ports as $port) {
$this->line("Trying TLS first for port $port");
$ldap_url = "ldaps://".$parsed['host'].":$port";
if($this->test_anonymous_bind($ldap_url)) {
$ldap_url = 'ldaps://'.$parsed['host'].":$port";
if ($this->test_anonymous_bind($ldap_url)) {
$this->info("Anonymous bind succesful to $ldap_url!");
$ldap_urls[] = [ $ldap_url, true, false ];
$pretty_ldap_urls[] = [ $ldap_url, "YES", "no" ];
$ldap_urls[] = [$ldap_url, true, false];
$pretty_ldap_urls[] = [$ldap_url, 'enabled', 'n/a (no)'];
continue; // TODO - lots of copypasta in these if(test_anonymous_bind()) routines...
} else {
$this->error("WARNING: Failed to bind to $ldap_url - trying without certificate checks.");
}
if($this->test_anonymous_bind($ldap_url, false)) {
$this->info("Anonymous bind succesful to $ldap_url with certifcate-checks disabled");
$ldap_urls[] = [ $ldap_url, false, false ];
$pretty_ldap_urls[] = [ $ldap_url, "no", "no" ];
if ($this->test_anonymous_bind($ldap_url, false)) {
$this->info("Anonymous bind successful to $ldap_url with certificate-checks disabled");
$ldap_urls[] = [$ldap_url, false, false];
$pretty_ldap_urls[] = [$ldap_url, 'DISABLED', 'n/a (no)'];
continue;
} else {
$this->error("WARNING: Failed to bind to $ldap_url with certificate checks disabled. Trying unencrypted with STARTTLS");
}
$ldap_url = "ldap://".$parsed['host'].":$port";
if($this->test_anonymous_bind($ldap_url, true, true)) {
// now switching to ldap:// URL's from ldaps://
$ldap_url = 'ldap://'.$parsed['host'].":$port";
if ($this->test_anonymous_bind($ldap_url, true, true)) {
$this->info("Plain connection to $ldap_url with STARTTLS succesful!");
$ldap_urls[] = [ $ldap_url, true, true ];
$pretty_ldap_urls[] = [ $ldap_url, "YES", "YES" ];
$ldap_urls[] = [$ldap_url, true, true];
$pretty_ldap_urls[] = [$ldap_url, 'enabled', 'STARTTLS ENABLED'];
continue;
} else {
$this->error("WARNING: Failed to bind to $ldap_url with STARTTLS enabled. Trying without STARTTLS");
$this->error("WARNING: Failed to bind to $ldap_url with STARTTLS enabled. Trying without certificate checks.");
}
if($this->test_anonymous_bind($ldap_url)) {
if ($this->test_anonymous_bind($ldap_url, false, true)) {
$this->info("Plain connection to $ldap_url with STARTTLS and cert checks *disabled* successful!");
$ldap_urls[] = [$ldap_url, false, true];
$pretty_ldap_urls[] = [$ldap_url, 'DISABLED', 'STARTTLS ENABLED'];
continue;
} else {
$this->error("WARNING: Failed to bind to $ldap_url with STARTTLS enabled, and cert checks disabled. Trying without STARTTLS");
}
if ($this->test_anonymous_bind($ldap_url)) {
$this->info("Plain connection to $ldap_url succesful!");
$ldap_urls[] = [ $ldap_url, true, false ];
$pretty_ldap_urls[] = [ $ldap_url, "YES", "no" ];
$ldap_urls[] = [$ldap_url, true, false];
$pretty_ldap_urls[] = [$ldap_url, 'n/a', 'starttls disabled'];
continue;
} else {
$this->error("WARNING: Failed to bind to $ldap_url. Giving up on port $port");
}
}
$this->debugout(print_r($ldap_urls,true));
$this->debugout(print_r($ldap_urls, true));
if(count($ldap_urls) > 0 ) {
$this->info("Found working LDAP URL's: ");
foreach($ldap_urls as $ldap_url) { // TODO maybe do this as a $this->table() instead?
$this->info("LDAP URL: ".$ldap_url[0]);
$this->info($ldap_url[0]. ($ldap_url[1] ? " certificate checks enabled" : " certificate checks disabled"). ($ldap_url[2] ? " STARTTLS Enabled ": " STARTTLS Disabled"));
if (count($ldap_urls) > 0) {
$this->debugout("Found working LDAP URL's: ");
foreach ($ldap_urls as $ldap_url) { // TODO maybe do this as a $this->table() instead?
$this->debugout('LDAP URL: '.$ldap_url[0]);
$this->debugout($ldap_url[0].($ldap_url[1] ? ' certificate checks enabled' : ' certificate checks disabled').($ldap_url[2] ? ' STARTTLS Enabled ' : ' STARTTLS Disabled'));
}
$this->table(["URL", "Cert Checks Enabled?", "STARTTLS Enabled?"],$pretty_ldap_urls);
$this->table(['URL', 'Cert Checks?', 'STARTTLS?'], $pretty_ldap_urls);
} else {
$this->error("ERROR - no valid LDAP URL's available - ABORTING");
exit(1);
}
$this->info("STAGE 4: Test Administrative Bind for LDAP Sync");
foreach($ldap_urls AS $ldap_url) {
$this->test_authed_bind($ldap_url[0], $ldap_url[1], $ldap_url[2], $settings->ldap_uname, Crypt::decrypt($settings->ldap_pword));
$this->line('STAGE 4: Test Administrative Bind for LDAP Sync');
foreach ($ldap_urls as $ldap_url) {
try {
$w = Crypt::Decrypt($settings->ldap_pword);
} catch (Exception $e) {
$this->warn('Could not decrypt password. This usually means an LDAP password was not set or the APP_KEY was changed since the LDAP pasword was last saved. Aborting.');
exit(0);
}
$this->test_authed_bind($ldap_url[0], $ldap_url[1], $ldap_url[2], $settings->ldap_uname, $w);
}
$this->info("STAGE 5: Test BaseDN");
//grab all LDAP_ constants and fill up a reversed array mapping from weird LDAP dotted-strings to (Constant Name)
$this->line('STAGE 5: Test BaseDN');
// grab all LDAP_ constants and fill up a reversed array mapping from weird LDAP dotted-strings to (Constant Name)
$all_defined_constants = get_defined_constants();
$ldap_constants = [];
foreach($all_defined_constants AS $key => $val) {
if(starts_with($key,"LDAP_") && is_string($val)) {
foreach ($all_defined_constants as $key => $val) {
if (starts_with($key, 'LDAP_') && is_string($val)) {
$ldap_constants[$val] = $key; // INVERT the meaning here!
}
}
$this->debugout("LDAP constants are: ".print_r($ldap_constants,true));
$this->debugout('LDAP constants are: '.print_r($ldap_constants, true));
foreach($ldap_urls AS $ldap_url) {
if($this->test_informational_bind($ldap_url[0],$ldap_url[1],$ldap_url[2],$settings->ldap_uname,Crypt::decrypt($settings->ldap_pword),$settings)) {
$this->info("Success getting informational bind!");
foreach ($ldap_urls as $ldap_url) {
try {
$w = Crypt::Decrypt($settings->ldap_pword);
} catch (Exception $e) {
$this->warn('Could not decrypt password. This usually means an LDAP password was not set or the APP_KEY was changed since the LDAP pasword was last saved. Aborting.');
exit(0);
}
if ($this->test_informational_bind($ldap_url[0], $ldap_url[1], $ldap_url[2], $settings->ldap_uname, $w, $settings)) {
$this->info('Success getting informational bind!');
} else {
$this->error("Unable to get information from bind.");
$this->error('Unable to get information from bind.');
}
}
$this->info("STAGE 6: Test LDAP Login to Snipe-IT");
foreach($ldap_urls AS $ldap_url) {
$this->info("Starting auth to ".$ldap_url[0]);
while(true) {
$with_tls = $ldap_url[1] ? "with": "without";
$with_startssl = $ldap_url[2] ? "using": "not using";
if(!$this->confirm('Do you wish to try to authenticate to this directory: '.$ldap_url[0]." $with_tls TLS and $with_startssl STARTSSL?")) {
$this->line('STAGE 6: Test LDAP Login to Snipe-IT');
foreach ($ldap_urls as $ldap_url) {
$this->line('Starting auth to '.$ldap_url[0]);
while (true) {
$with_tls = $ldap_url[1] ? 'with' : 'without';
$with_startssl = $ldap_url[2] ? 'using' : 'not using';
if (! $this->confirm('Do you wish to try to authenticate to this directory: '.$ldap_url[0]." $with_tls TLS and $with_startssl STARTSSL?")) {
break;
}
$username = $this->ask("Username");
$password = $this->secret("Password");
$this->test_authed_bind($ldap_url[0], $ldap_url[1], $ldap_url[2], $username, $password); // FIXME - should do some other stuff here, maybe with the concatenating or something? maybe? and/or should put up some results?
$username = $this->ask('Username');
$password = $this->secret('Password');
$results = $this->test_authed_bind($ldap_url[0], $ldap_url[1], $ldap_url[2], $username, $password); // FIXME - should do some other stuff here, maybe with the concatenating or something? maybe? and/or should put up some results?
if ($results) {
$this->info('Success authenticating with '.$username);
} else {
$this->error('Unable to authenticate with '.$username);
}
}
}
$this->info("LDAP TROUBLESHOOTING COMPLETE!");
$this->info('LDAP TROUBLESHOOTING COMPLETE!');
}
public function connect_to_ldap($ldap_url, $check_cert, $start_tls)
public function connect_to_ldap($ldap_url, $check_cert, $start_tls)
{
if ($check_cert) {
$this->line('we *ARE* checking certs');
Ldap::ignoreCertificates(false);
} else {
$this->line('we are IGNORING certs');
Ldap::ignoreCertificates(true);
}
$lconn = ldap_connect($ldap_url);
ldap_set_option($lconn, LDAP_OPT_PROTOCOL_VERSION, 3); // should we 'test' different protocol versions here? Does anyone even use anything other than LDAPv3?
// no - it's formally deprecated: https://tools.ietf.org/html/rfc3494
if(!$check_cert) {
putenv('LDAPTLS_REQCERT=never'); // This is horrible; is this *really* the only way to do it?
} else {
putenv('LDAPTLS_REQCERT'); // have to very explicitly and manually *UN* set the env var here to ensure it works
}
if($this->settings->ldap_client_tls_cert && $this->settings->ldap_client_tls_key) {
// no - it's formally deprecated: https://tools.ietf.org/html/rfc3494
if ($this->settings->ldap_client_tls_cert && $this->settings->ldap_client_tls_key) {
// client-side TLS certificate support for LDAP (Google Secure LDAP)
putenv('LDAPTLS_CERT=storage/ldap_client_tls.cert');
putenv('LDAPTLS_KEY=storage/ldap_client_tls.key');
}
if($start_tls) {
if(!ldap_start_tls($lconn)) {
$this->error("WARNING: Unable to start TLS");
if ($start_tls) {
if (! ldap_start_tls($lconn)) {
$this->error('WARNING: Unable to start TLS');
return false;
}
}
if(!$lconn) {
$this->error("WARNING: Failed to generate connection string - using: ".$ldap_url);
if (! $lconn) {
$this->error('WARNING: Failed to generate connection string - using: '.$ldap_url);
return false;
}
$net = ldap_set_option($lconn, LDAP_OPT_NETWORK_TIMEOUT, $this->option('timeout'));
$time = ldap_set_option($lconn, LDAP_OPT_TIMELIMIT, $this->option('timeout'));
if(!$net || !$time) {
$this->error("Unable to set timeouts!");
if (! $net || ! $time) {
$this->error('Unable to set timeouts!');
}
return $lconn;
}
public function test_anonymous_bind($ldap_url, $check_cert = true, $start_tls = false)
{
return $this->timed_boolean_execute(function () use ($ldap_url, $check_cert , $start_tls) {
return $this->timed_boolean_execute(function () use ($ldap_url, $check_cert, $start_tls) {
try {
$lconn = $this->connect_to_ldap($ldap_url, $check_cert, $start_tls);
$this->info("gonna try to bind now, this can take a while if we mess it up");
$this->line('Attempting to bind now, this can take a while if we mess it up');
$bind_results = ldap_bind($lconn);
$this->info("Bind results are: ".$bind_results." which translate into boolean: ".(bool)$bind_results);
return (bool)$bind_results;
$this->line('Bind results are: '.$bind_results.' which translate into boolean: '.(bool) $bind_results);
ldap_close($lconn);
return (bool) $bind_results;
} catch (Exception $e) {
$this->error("WARNING: Exception caught during bind - ".$e->getMessage());
$this->error('WARNING: Exception caught during bind - '.$e->getMessage());
return false;
}
});
}
public function test_authed_bind($ldap_url, $check_cert, $start_tls, $username, $password)
public function test_authed_bind($ldap_url, $check_cert, $start_tls, $username, $password)
{
return $this->timed_boolean_execute(function () use ($ldap_url, $check_cert, $start_tls, $username, $password) {
try {
$lconn = $this->connect_to_ldap($ldap_url, $check_cert, $start_tls);
$bind_results = ldap_bind($lconn, $username, $password);
if(!$bind_results) {
ldap_close($lconn);
if (! $bind_results) {
$this->error("WARNING: Failed to bind to $ldap_url as $username");
return false;
} else {
$this->info("SUCCESS - Able to bind to $ldap_url as $username");
return (bool)$lconn;
return (bool) $lconn;
}
} catch (Exception $e) {
$this->error("WARNING: Exception caught during Authed bind to $username - ".$e->getMessage());
return false;
}
});
}
public function test_informational_bind($ldap_url, $check_cert, $start_tls, $username, $password,$settings)
public function test_informational_bind($ldap_url, $check_cert, $start_tls, $username, $password, $settings)
{
return $this->timed_boolean_execute(function () use ($ldap_url, $check_cert, $start_tls, $username, $password, $settings) {
try { // TODO - copypasta'ed from test_authed_bind
$conn = $this->connect_to_ldap($ldap_url, $check_cert, $start_tls);
$bind_results = ldap_bind($conn, $username, $password);
if(!$bind_results) {
if (! $bind_results) {
$this->error("WARNING: Failed to bind to $ldap_url as $username");
return false;
}
$this->info("SUCCESS - Able to bind to $ldap_url as $username");
$result = ldap_read($conn, '', '(objectClass=*)'/* , ['supportedControl']*/);
$results = ldap_get_entries($conn, $result);
$cleaned_results = $this->ldap_results_cleaner($results);
$this->line(print_r($cleaned_results,true));
//okay, great - now how do we display those results? I have no idea.
// I don't see why this throws an Exception for Google LDAP, but I guess we ought to try and catch it?
$this->comment("I guess we're trying to do the ldap search here, but sometimes it takes too long?");
$this->debugout("Base DN is: ".$settings->ldap_basedn." and filter is: ".parenthesized_filter($settings->ldap_filter));
$search_results = ldap_search($conn, $settings->ldap_basedn, parenthesized_filter($settings->ldap_filter));
$this->info("Printing first 10 results: ");
for($i=0;$i<10;$i++) {
$this->info($search_results[$i]);
$cleaned_results = [];
try {
// This _may_ only work for Active Directory?
$result = ldap_read($conn, '', '(objectClass=*)'/* , ['supportedControl'] */);
$results = ldap_get_entries($conn, $result);
$cleaned_results = $this->ldap_results_cleaner($results);
// $this->line(print_r($cleaned_results,true));
$default_naming_contexts = $cleaned_results[0]['namingcontexts'];
$this->info('Default Naming Contexts:');
$this->info(implode(', ', $default_naming_contexts));
// okay, great - now how do we display those results? I have no idea.
} catch (Exception $e) {
$this->error("Unable to get base naming contexts - here's what we *did* get:");
$this->line(print_r($cleaned_results, true));
}
} catch (\Exception $e) {
// I don't see why this throws an Exception for Google LDAP, but I guess we ought to try and catch it?
$this->debugout("I guess we're trying to do the ldap search here, but sometimes it takes too long?");
$this->debugout('Base DN is: '.$settings->ldap_basedn.' and filter is: '.parenthesized_filter($settings->ldap_filter));
$search_results = ldap_search($conn, $settings->ldap_basedn, parenthesized_filter($settings->ldap_filter));
$entries = ldap_get_entries($conn, $search_results);
$this->info('Printing first 10 results: ');
$pretty_data = array_slice($this->ldap_results_cleaner($entries), 0, 10);
// print_r($data);
$headers = [];
foreach ($pretty_data as $row) {
// populate headers
foreach ($row as $key => $value) {
// skip objectsid and objectguid because it junks up output
if ($key == 'objectsid' || $key == 'objectguid') {
continue;
}
if (! in_array($key, $headers)) {
$headers[] = $key;
}
}
}
$table = [];
// repeat again to populate table
foreach ($pretty_data as $row) {
$newrow = [];
foreach ($headers as $header) {
if (is_array(@$row[$header])) {
$newrow[] = '['.implode(', ', $row[$header]).']';
} else {
$newrow[] = @$row[$header];
}
}
$table[] = $newrow;
}
$this->table($headers, $table);
} catch (Exception $e) {
$this->error("WARNING: Exception caught during Authed bind to $username - ".$e->getMessage());
return false;
} finally {
ldap_close($conn);
}
});
}
/***********************************************
*
* This function executes $function - which is expected to be some kind of executable function -
*
* This function executes $function - which is expected to be some kind of executable function -
* with a timeout set. It respects the timeout by forking execution and setting a strict timer
* for which to get back a SIGUSR1 or SIGUSR2 signal from the forked process.
*
*
***********************************************/
private function timed_boolean_execute($function)
{
if(!(function_exists('pcntl_sigtimedwait') && function_exists('posix_getpid') && function_exists('pcntl_fork') && function_exists('posix_kill') && function_exists('pcntl_wifsignaled'))) {
if (! (function_exists('pcntl_sigtimedwait') && function_exists('posix_getpid') && function_exists('pcntl_fork') && function_exists('posix_kill') && function_exists('pcntl_wifsignaled'))) {
// POSIX functions needed for forking aren't present, just run the function inline (ignoring timeout)
$this->info('WARNING: Unable to execute POSIX fork() commands, timeout may not be respected');
$this->line('WARNING: Unable to execute POSIX fork() commands, timeout may not be respected');
return $function();
} else {
$parent_pid = posix_getpid();
$pid = pcntl_fork();
switch($pid) {
switch ($pid) {
case 0:
//we're the 'child'
if($function()) {
//SUCCESS = SIGUSR1
// we're the 'child'
if ($function()) {
// SUCCESS = SIGUSR1
posix_kill($parent_pid, SIGUSR1);
} else {
//FAILURE = SIGUSR2
// FAILURE = SIGUSR2
posix_kill($parent_pid, SIGUSR2);
}
exit();
break; //yes I know we don't need it.
break; // yes I know we don't need it.
case -1:
//couldn't fork
$this->error("COULD NOT FORK - assuming failure");
// couldn't fork
$this->error('COULD NOT FORK - assuming failure');
return false;
break; //I still know that we don't need it
break; // I still know that we don't need it
default:
//we remain the 'parent', $pid is the PID of the forked process.
// we remain the 'parent', $pid is the PID of the forked process.
$siginfo = [];
$exit_status = pcntl_sigtimedwait ([SIGUSR1, SIGUSR2], $siginfo, $this->option('timeout'));
$exit_status = pcntl_sigtimedwait([SIGUSR1, SIGUSR2], $siginfo, $this->option('timeout'));
if ($exit_status == SIGUSR1) {
return true;
} else {
posix_kill($pid, SIGKILL); //make sure we don't have processes hanging around that might try and send signals during later executions, confusing us
posix_kill($pid, SIGKILL); // make sure we don't have processes hanging around that might try and send signals during later executions, confusing us
return false;
}
break; //Yeah I get it already, shush.
break; // Yeah I get it already, shush.
}
}
@@ -44,19 +44,15 @@ class MergeUsersByUsername extends Command
$users = User::where('username', 'LIKE', '%@%')->whereNull('deleted_at')->get();
$this->info($users->count().' total non-deleted users whose usernames contain a @ symbol.');
foreach ($users as $user) {
$parts = explode('@', trim($user->username));
$this->info('Checking against username '.trim($parts[0]).'.');
$bad_users = User::where('username', '=', trim($parts[0]))
->whereNull('deleted_at')
->with('assets', 'manager', 'userlog', 'licenses', 'consumables', 'accessories', 'managedLocations','uploads', 'acceptances')
->with('assets', 'manager', 'userlog', 'licenses', 'consumables', 'accessories', 'managedLocations', 'uploads', 'acceptances')
->get();
foreach ($bad_users as $bad_user) {
$this->info($bad_user->username.' ('.$bad_user->id.') will be merged into '.$user->username.' ('.$user->id.') ');
@@ -125,7 +121,6 @@ class MergeUsersByUsername extends Command
event(new UserMerged($bad_user, $user, null));
}
}
}
@@ -0,0 +1,73 @@
<?php
namespace App\Console\Commands;
use App\Enums\ActionType;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Str;
class MigrateLicenseSeatQuantitiesInActionLogs extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'snipeit:migrate-license-seat-quantities-in-action-logs
{--no-interaction: Do not ask any interactive question}';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Updates quantity field in action_logs table for license seats that were added or deleted.';
/**
* Execute the console command.
*/
public function handle()
{
$query = DB::table('action_logs')
->whereIn('action_type', [
ActionType::AddSeats->value,
ActionType::DeleteSeats->value,
])
->where('quantity', '=', 1)
->orderBy('id');
$count = $query->count();
if ($count === 0) {
$this->info('Nothing to update');
return 0;
}
$this->info("{$count} logs to update");
if ($this->option('no-interaction') || $this->confirm('Update quantities in the action log?')) {
$query->chunk(50, function ($logs) {
$logs->each(function ($log) {
$quantityFromNote = Str::between($log->note, 'ed ', ' seats');
if (! is_numeric($quantityFromNote)) {
$this->error('Could not parse quantity from ID: {id}', ['id' => $log->id]);
}
if ($log->quantity !== (int) $quantityFromNote) {
$this->info(vsprintf('Updating id: %s to quantity %s', [
'id' => $log->id,
'new_quantity' => $quantityFromNote,
]));
DB::table('action_logs')->where('id', $log->id)->update(['quantity' => (int) $quantityFromNote]);
}
});
});
}
return 0;
}
}
+41 -45
View File
@@ -3,8 +3,8 @@
namespace App\Console\Commands;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\Storage;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Storage;
class MoveUploadsToNewDisk extends Command
{
@@ -47,30 +47,29 @@ class MoveUploadsToNewDisk extends Command
}
$delete_local = $this->argument('delete_local');
$public_uploads['accessories'] = glob('public/uploads/accessories'."/*.*");
$public_uploads['assets'] = glob('public/uploads/assets'."/*.*");
$public_uploads['avatars'] = glob('public/uploads/avatars'."/*.*");
$public_uploads['categories'] = glob('public/uploads/categories'."/*.*");
$public_uploads['companies'] = glob('public/uploads/companies'."/*.*");
$public_uploads['components'] = glob('public/uploads/components'."/*.*");
$public_uploads['consumables'] = glob('public/uploads/consumables'."/*.*");
$public_uploads['departments'] = glob('public/uploads/departments'."/*.*");
$public_uploads['locations'] = glob('public/uploads/locations'."/*.*");
$public_uploads['manufacturers'] = glob('public/uploads/manufacturers'."/*.*");
$public_uploads['suppliers'] = glob('public/uploads/suppliers'."/*.*");
$public_uploads['assetmodels'] = glob('public/uploads/models'."/*.*");
$public_uploads['accessories'] = glob('public/uploads/accessories'.'/*.*');
$public_uploads['assets'] = glob('public/uploads/assets'.'/*.*');
$public_uploads['avatars'] = glob('public/uploads/avatars'.'/*.*');
$public_uploads['categories'] = glob('public/uploads/categories'.'/*.*');
$public_uploads['companies'] = glob('public/uploads/companies'.'/*.*');
$public_uploads['components'] = glob('public/uploads/components'.'/*.*');
$public_uploads['consumables'] = glob('public/uploads/consumables'.'/*.*');
$public_uploads['departments'] = glob('public/uploads/departments'.'/*.*');
$public_uploads['locations'] = glob('public/uploads/locations'.'/*.*');
$public_uploads['manufacturers'] = glob('public/uploads/manufacturers'.'/*.*');
$public_uploads['suppliers'] = glob('public/uploads/suppliers'.'/*.*');
$public_uploads['assetmodels'] = glob('public/uploads/models'.'/*.*');
// iterate files
foreach ($public_uploads as $public_type => $public_upload) {
$type_count = 0;
$this->info('- There are ' . count($public_upload) . ' PUBLIC ' . $public_type . ' files.');
$this->info('- There are '.count($public_upload).' PUBLIC '.$public_type.' files.');
for ($i = 0; $i < count($public_upload); $i++) {
$type_count++;
$filename = basename($public_upload[$i]);
try {
try {
Storage::disk('public')->put('uploads/'.$public_type.'/'.$filename, file_get_contents($public_upload[$i]));
$new_url = Storage::disk('public')->url('uploads/'.$public_type.'/'.$filename, $filename);
$this->info($type_count.'. PUBLIC: '.$filename.' was copied to '.$new_url);
@@ -81,49 +80,46 @@ class MoveUploadsToNewDisk extends Command
}
}
$logos = glob("public/uploads/setting*.*");
$this->info("- There are ".count($logos).' files that might be logos.');
$logos = glob('public/uploads/setting*.*');
$this->info('- There are '.count($logos).' files that might be logos.');
$type_count = 0;
foreach ($logos as $logo) {
$this->info($logo);
$type_count++;
$filename = basename($logo);
Storage::disk('public')->put('uploads/' . $filename, file_get_contents($logo));
$this->info($type_count . '. LOGO: ' . $filename . ' was copied to ' . env('PUBLIC_AWS_URL') . '/uploads/' . $filename);
Storage::disk('public')->put('uploads/'.$filename, file_get_contents($logo));
$this->info($type_count.'. LOGO: '.$filename.' was copied to '.env('PUBLIC_AWS_URL').'/uploads/'.$filename);
}
$private_uploads['assets'] = glob('storage/private_uploads/assets'."/*.*");
$private_uploads['signatures'] = glob('storage/private_uploads/signatures'."/*.*");
$private_uploads['audits'] = glob('storage/private_uploads/audits'."/*.*");
$private_uploads['assetmodels'] = glob('storage/private_uploads/assetmodels'."/*.*");
$private_uploads['imports'] = glob('storage/private_uploads/imports'."/*.*");
$private_uploads['licenses'] = glob('storage/private_uploads/licenses'."/*.*");
$private_uploads['users'] = glob('storage/private_uploads/users'."/*.*");
$private_uploads['backups'] = glob('storage/private_uploads/backups'."/*.*");
$private_uploads['assets'] = glob('storage/private_uploads/assets'.'/*.*');
$private_uploads['signatures'] = glob('storage/private_uploads/signatures'.'/*.*');
$private_uploads['audits'] = glob('storage/private_uploads/audits'.'/*.*');
$private_uploads['assetmodels'] = glob('storage/private_uploads/models'.'/*.*');
$private_uploads['imports'] = glob('storage/private_uploads/imports'.'/*.*');
$private_uploads['licenses'] = glob('storage/private_uploads/licenses'.'/*.*');
$private_uploads['users'] = glob('storage/private_uploads/users'.'/*.*');
$private_uploads['backups'] = glob('storage/private_uploads/backups'.'/*.*');
foreach ($private_uploads as $private_type => $private_upload) {
{
$this->info('- There are ' . count($private_upload) . ' PRIVATE ' . $private_type . ' files.');
$type_count = 0;
for ($x = 0; $x < count($private_upload); $x++) {
$type_count++;
$filename = basename($private_upload[$x]);
$this->info('- There are '.count($private_upload).' PRIVATE '.$private_type.' files.');
try {
Storage::put($private_type . '/' . $filename, file_get_contents($private_upload[$i]));
$new_url = Storage::url($private_type . '/' . $filename, $filename);
$this->info($type_count . '. PRIVATE: ' . $filename . ' was copied to ' . $new_url);
} catch (\Exception $e) {
Log::debug($e);
$this->error($e);
}
$type_count = 0;
for ($x = 0; $x < count($private_upload); $x++) {
$type_count++;
$filename = basename($private_upload[$x]);
try {
Storage::put($private_type.'/'.$filename, file_get_contents($private_upload[$x]));
$new_url = Storage::url($private_type.'/'.$filename, $filename);
$this->info($type_count.'. PRIVATE: '.$filename.' was copied to '.$new_url);
} catch (\Exception $e) {
Log::debug($e);
$this->error($e);
}
}
if ($delete_local == 'true') {
$public_delete_count = 0;
$private_delete_count = 0;
@@ -160,7 +156,7 @@ class MoveUploadsToNewDisk extends Command
}
}
$this->info($public_delete_count . ' PUBLIC local files and ' . $private_delete_count . ' PRIVATE local files were deleted from your filesystem.');
$this->info($public_delete_count.' PUBLIC local files and '.$private_delete_count.' PRIVATE local files were deleted from your filesystem.');
}
}
}
+7 -7
View File
@@ -2,8 +2,8 @@
namespace App\Console\Commands;
use Illuminate\Console\Command;
use App\Models\User;
use Illuminate\Console\Command;
class NormalizeUserNames extends Command
{
@@ -40,13 +40,13 @@ class NormalizeUserNames extends Command
{
$users = User::get();
$this->info($users->count() . ' users');
$this->info($users->count().' users');
foreach ($users as $user) {
$user->first_name = ucwords(strtolower($user->first_name));
$user->last_name = ucwords(strtolower($user->last_name));
$user->email = strtolower($user->email);
$user->save();
foreach ($users as $user) {
$user->first_name = ucwords(strtolower($user->first_name));
$user->last_name = ucwords(strtolower($user->last_name));
$user->email = strtolower($user->email);
$user->save();
}
}
}
+38 -25
View File
@@ -3,13 +3,10 @@
namespace App\Console\Commands;
use Illuminate\Console\Command;
use Symfony\Component\Console\Input\InputArgument;
use Symfony\Component\Console\Input\InputOption;
use Illuminate\Support\Facades\Log;
use Symfony\Component\Console\Helper\ProgressIndicator;
ini_set('max_execution_time', env('IMPORT_TIME_LIMIT', 600)); //600 seconds = 10 minutes
ini_set('memory_limit', env('IMPORT_MEMORY_LIMIT', '500M'));
use Symfony\Component\Console\Input\InputArgument;
use Symfony\Component\Console\Input\InputOption;
/**
* Class ObjectImportCommand
@@ -35,6 +32,11 @@ class ObjectImportCommand extends Command
*/
protected ProgressIndicator $progressIndicator;
/**
* Logger instance with configurable log path
*/
protected $logger;
/**
* Create a new command instance.
*
@@ -52,21 +54,26 @@ class ObjectImportCommand extends Command
*/
public function handle()
{
ini_set('max_execution_time', env('IMPORT_TIME_LIMIT', 600)); // 600 seconds = 10 minutes
ini_set('memory_limit', env('IMPORT_MEMORY_LIMIT', '500M'));
$this->progressIndicator = new ProgressIndicator($this->output);
$filename = $this->argument('filename');
$class = title_case($this->option('item-type'));
$class = ucfirst($this->option('item-type'));
$classString = "App\\Importer\\{$class}Importer";
$importer = new $classString($filename);
$importer->setCallbacks([$this, 'log'], [$this, 'progress'], [$this, 'errorCallback'])
->setUserId($this->option('user_id'))
->setUpdating($this->option('update'))
->setShouldNotify($this->option('send-welcome'))
->setUsernameFormat($this->option('username_format'));
->setCreatedBy($this->option('user_id'))
->setUpdating($this->option('update'))
->setShouldNotify($this->option('send-welcome'))
->setUsernameFormat($this->option('username_format'));
$this->logger = Log::build([
'driver' => 'single',
'path' => $this->option('logfile'),
]);
// This $logFile/useFiles() bit is currently broken, so commenting it out for now
// $logFile = $this->option('logfile');
// Log::useFiles($logFile);
$this->progressIndicator->start('======= Importing Items from '.$filename.' =========');
$importer->import();
@@ -91,17 +98,19 @@ class ObjectImportCommand extends Command
* If a warning message is passed, we'll spit it to the console as well.
*
* @author Daniel Melzter
*
* @since 3.0
* @param string $string
* @param string $level
*
* @param string $string
* @param string $level
*/
public function log($string, $level = 'info')
{
if ($level === 'warning') {
Log::warning($string);
$this->logger->warning($string);
$this->comment($string);
} else {
Log::Info($string);
$this->logger->Info($string);
if ($this->option('verbose')) {
$this->comment($string);
}
@@ -112,7 +121,9 @@ class ObjectImportCommand extends Command
* Get the console command arguments.
*
* @author Daniel Melzter
*
* @since 3.0
*
* @return array
*/
protected function getArguments()
@@ -126,20 +137,22 @@ class ObjectImportCommand extends Command
* Get the console command options.
*
* @author Daniel Melzter
*
* @since 3.0
*
* @return array
*/
protected function getOptions()
{
return [
['email_format', null, InputOption::VALUE_REQUIRED, 'The format of the email addresses that should be generated. Options are firstname.lastname, firstname, filastname', null],
['username_format', null, InputOption::VALUE_REQUIRED, 'The format of the username that should be generated. Options are firstname.lastname, firstname, filastname, email', null],
['logfile', null, InputOption::VALUE_REQUIRED, 'The path to log output to. storage/logs/importer.log by default', storage_path('logs/importer.log')],
['item-type', null, InputOption::VALUE_REQUIRED, 'Item Type To import. Valid Options are Asset, Consumable, Accessory, License, or User', 'Asset'],
['web-importer', null, InputOption::VALUE_NONE, 'Internal: packages output for use with the web importer'],
['user_id', null, InputOption::VALUE_REQUIRED, 'ID of user creating items', 1],
['update', null, InputOption::VALUE_NONE, 'If a matching item is found, update item information'],
['send-welcome', null, InputOption::VALUE_NONE, 'Whether to send a welcome email to any new users that are created.'],
['email_format', null, InputOption::VALUE_REQUIRED, 'The format of the email addresses that should be generated. Options are firstname.lastname, firstname, filastname', null],
['username_format', null, InputOption::VALUE_REQUIRED, 'The format of the username that should be generated. Options are firstname.lastname, firstname, filastname, email', null],
['logfile', null, InputOption::VALUE_REQUIRED, 'The path to log output to. storage/logs/importer.log by default', storage_path('logs/importer.log')],
['item-type', null, InputOption::VALUE_REQUIRED, 'Item Type To import. Valid Options are Asset, Consumable, Accessory, License, or User', 'Asset'],
['web-importer', null, InputOption::VALUE_NONE, 'Internal: packages output for use with the web importer'],
['user_id', null, InputOption::VALUE_REQUIRED, 'ID of user creating items', 1],
['update', null, InputOption::VALUE_NONE, 'If a matching item is found, update item information'],
['send-welcome', null, InputOption::VALUE_NONE, 'Whether to send a welcome email to any new users that are created.'],
];
}
}
+18 -16
View File
@@ -2,11 +2,10 @@
namespace App\Console\Commands;
use App\Models\Asset;
use App\Models\CustomField;
use Schema;
use Illuminate\Support\Facades\DB;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Schema;
class PaveIt extends Command
{
@@ -42,17 +41,16 @@ class PaveIt extends Command
public function handle()
{
if (!$this->option('force')) {
if (! $this->option('force')) {
$confirmation = $this->confirm("\n****************************************************\nTHIS WILL DELETE ALL OF THE DATA IN YOUR DATABASE. \nThere is NO undo. This WILL destroy ALL of your data, \nINCLUDING ANY non-Snipe-IT tables you have in this database. \n****************************************************\n\nDo you wish to continue? No backsies! ");
if (!$confirmation) {
if (! $confirmation) {
$this->error('ABORTING');
exit(-1);
}
}
// List all the tables in the database so we don't have to worry about missing some as the app grows
$tables = DB::connection()->getDoctrineSchemaManager()->listTableNames();
$tables = Schema::getTables();
$except_tables = [
'oauth_access_tokens',
'oauth_clients',
@@ -60,6 +58,9 @@ class PaveIt extends Command
'migrations',
'settings',
'users',
'telescope_entries',
'telescope_entries_tags',
'telescope_monitoring',
];
// We only need to find out what these are so we can nuke these columns on the assets table.
@@ -67,25 +68,26 @@ class PaveIt extends Command
foreach ($custom_fields as $custom_field) {
$this->info('DROP the '.$custom_field->db_column.' column from assets as well.');
if (\Schema::hasColumn('assets', $custom_field->db_column)) {
\Schema::table('assets', function ($table) use ($custom_field) {
if (Schema::hasColumn('assets', $custom_field->db_column)) {
Schema::table('assets', function ($table) use ($custom_field) {
$table->dropColumn($custom_field->db_column);
});
}
}
foreach ($tables as $table) {
foreach ($tables as $table_obj) {
$table = $table_obj['name'];
if (in_array($table, $except_tables)) {
$this->info($table. ' is SKIPPED.');
$this->info($table.' is SKIPPED.');
} else {
\DB::statement('truncate '.$table);
$this->info($table. ' is TRUNCATED.');
$this->info($table.' is TRUNCATED.');
}
}
// Leave in the demo oauth keys so we don't have to reset them every day in the demos
\DB::statement('delete from oauth_clients WHERE id > 2');
\DB::statement('delete from oauth_access_tokens WHERE id > 2');
DB::statement('delete from oauth_clients WHERE id > 2');
DB::statement('delete from oauth_access_tokens WHERE user_id > 2');
}
}
}
+9 -9
View File
@@ -62,19 +62,19 @@ class Purge extends Command
$assetcount = $assets->count();
$this->info($assets->count().' assets purged.');
$asset_assoc = 0;
$asset_maintenances = 0;
$maintenances = 0;
foreach ($assets as $asset) {
$this->info('- Asset "'.$asset->present()->name().'" deleted.');
$this->info('- Asset "'.$asset->display_name.'" deleted.');
$asset_assoc += $asset->assetlog()->count();
$asset->assetlog()->forceDelete();
$asset_maintenances += $asset->assetmaintenances()->count();
$asset->assetmaintenances()->forceDelete();
$maintenances += $asset->maintenances()->count();
$asset->maintenances()->forceDelete();
$asset->forceDelete();
}
$this->info($asset_assoc.' corresponding log records purged.');
$this->info($asset_maintenances.' corresponding maintenance records purged.');
$this->info($maintenances.' corresponding maintenance records purged.');
$locations = Location::whereNotNull('deleted_at')->withTrashed()->get();
$this->info($locations->count().' locations purged.');
@@ -149,13 +149,13 @@ class Purge extends Command
$filenames = Actionlog::where('action_type', 'uploaded')
->where('item_id', $user->id)
->pluck('filename');
foreach($filenames as $filename) {
foreach ($filenames as $filename) {
try {
if (Storage::exists($rel_path . '/' . $filename)) {
Storage::delete($rel_path . '/' . $filename);
if (Storage::exists($rel_path.'/'.$filename)) {
Storage::delete($rel_path.'/'.$filename);
}
} catch (\Exception $e) {
Log::info('An error occurred while deleting files: ' . $e->getMessage());
Log::info('An error occurred while deleting files: '.$e->getMessage());
}
}
$this->info('- User "'.$user->username.'" deleted.');
+155
View File
@@ -0,0 +1,155 @@
<?php
namespace App\Console\Commands;
use App\Models\CheckoutAcceptance;
use Carbon\Carbon;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\Storage;
class PurgeEulaPDFs extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'snipeit:purge-eula-pdfs
{--older-than-days= : The number of days we should delete before }
{--company-id= : Only purge acceptances for users in this company}
{--only-deleted-users : Only purge acceptances for deleted users, including soft-deleted or missing users}
{--force : Skip the interactive yes/no prompt for confirmation}
{--dryrun : Show the records that would be deleted but don\'t update the database or delete files from disk}
{--with-output : Display the results in a table in your console}';
/**
* The console command description.
*
* @var string
*/
protected $description = 'This purges signature files and EULAs from the system if they are older than the date passed with --older-than-days=.';
/**
* Execute the console command.
*/
public function handle()
{
$before = $this->option('older-than-days');
if (($before == '') || (! is_numeric($before))) {
return $this->error('ERROR: You must pass a valid number for --older-than-days (example: snipeit:purge-eula-pdfs --older-than-days=365.)');
}
$interval_date = Carbon::now()->subDays($before);
$signature_path = 'private_uploads/signatures/';
$eula_path = 'private_uploads/eula-pdfs/';
if (! Storage::exists($eula_path)) {
$this->fail('The storage directory "'.$eula_path.'" does not exist. No EULA files will be deleted.');
}
if (! Storage::exists($signature_path)) {
$this->fail('The storage directory "'.$signature_path.'" does not exist. No signature files will be deleted.');
}
if ($this->option('dryrun')) {
$this->info('This script is being run with the --dryrun option. No files or records will be deleted.');
}
$companyId = $this->option('company-id');
$query = CheckoutAcceptance::HasFiles()->where('updated_at', '<', $interval_date)
->with([
'assignedTo' => function ($query) {
$query->withTrashed();
},
]);
if ($this->option('only-deleted-users')) {
$query->where(function ($query) use ($companyId) {
$query->whereHas('assignedTo', function ($q) use ($companyId) {
$q->withTrashed()->whereNotNull('deleted_at');
if ($companyId) {
$q->where('company_id', $companyId);
}
});
$query->orWhereDoesntHave('assignedTo');
});
} else {
if ($companyId) {
$query->whereHas('assignedTo', function ($query) use ($companyId) {
$query->withTrashed()->where('company_id', $companyId);
});
}
}
$acceptances = $query->get();
if (! $this->option('force')) {
if ($this->confirm("\n****************************************************\nTHIS WILL DELETE ALL OF THE SIGNATURES AND EULA PDF FILES SINCE $interval_date. \nThere is NO undo! \n****************************************************\n\nDo you wish to continue? No backsies! [y|N]")) {
}
}
if ($acceptances->count() == 0) {
return $this->warn('There are no item acceptances with signatures or EULA PDFs from before '.$interval_date);
}
$this->info(number_format($acceptances->count()).' EULA PDFs from before '.$interval_date.' will be purged');
if (! $this->option('with-output')) {
$this->info('Run this command with the --with-output option to see the full list in the console.');
} else {
$this->table(
[
trans('general.user'),
trans('general.type'),
trans('general.item'),
trans('general.category'),
trans('general.accepted_date'),
trans('general.declined_date'),
trans('general.signature'),
trans('general.filename'),
],
$acceptances->map(fn ($acceptance) => [
trans('general.user') => $acceptance->assignedTo->display_name,
trans('general.type') => $acceptance->display_checkoutable_type,
trans('general.item') => $acceptance->checkoutable_type::find($acceptance->checkoutable_id)->display_name,
trans('general.category') => $acceptance->checkoutable_category_name,
trans('general.accepted_date') => $acceptance->accepted_at,
trans('general.declined_date') => $acceptance->declined_at,
trans('general.signature') => $acceptance->signature_filename,
trans('general.filename') => $acceptance->stored_eula_file,
])
);
}
foreach ($acceptances as $acceptance) {
$signature_file = $signature_path.$acceptance->signature_filename;
$eula_file = $eula_path.$acceptance->stored_eula_file;
if (Storage::exists($signature_file)) {
if (! $this->option('dryrun')) {
Storage::delete($signature_file);
}
} else {
$this->error('The file "'.$signature_file.'" does not exist.');
}
if (Storage::exists($eula_file)) {
if (! $this->option('dryrun')) {
Storage::delete($eula_file);
}
} else {
$this->error('The file "'.$eula_file.'" does not exist.');
}
if (! $this->option('dryrun')) {
$acceptance->delete();
}
}
}
}
@@ -82,10 +82,10 @@ class ReEncodeCustomFieldNames extends Command
if ($field->db_column == $field->convertUnicodeDbSlug() && \Schema::hasColumn('assets', $field->convertUnicodeDbSlug())) {
$this->info('-- ✓ This field exists on the assets table and the value for db_column matches in the custom_fields table.');
/**
* There is a mismatch between the fieldname on the assets table and
* what $field->convertUnicodeDbSlug() is *now* expecting.
*/
/**
* There is a mismatch between the fieldname on the assets table and
* what $field->convertUnicodeDbSlug() is *now* expecting.
*/
} else {
if ($field->db_column != $field->convertUnicodeDbSlug()) {
@@ -96,7 +96,6 @@ class ReEncodeCustomFieldNames extends Command
}
/** Make sure the custom_field_columns array has the ID */
if (array_key_exists($field->id, $custom_field_columns)) {
@@ -114,7 +113,6 @@ class ReEncodeCustomFieldNames extends Command
$field->db_column = $field->convertUnicodeDbSlug();
$field->save();
} else {
$this->warn('-- ✘ WARNING: There is no field on the assets table ending in '.$field->id.'. This may require more in-depth investigation and may mean the schema was altered manually.');
}
-157
View File
@@ -1,157 +0,0 @@
<?php
namespace App\Console\Commands;
use App\LegacyEncrypter\McryptEncrypter;
use App\Models\Asset;
use App\Models\CustomField;
use App\Models\Setting;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\Storage;
class RecryptFromMcrypt extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'snipeit:legacy-recrypt
{--force : Force a re-crypt of encrypted data from MCRYPT.}';
/**
* The console command description.
*
* @var string
*/
protected $description = 'This command allows upgrading users to de-encrypt their deprecated mcrypt encrypted fields and re-encrypt them using the current OpenSSL encryption.';
/**
* Create a new command instance.
*
* @return void
*/
public function __construct()
{
parent::__construct();
}
/**
* Execute the console command.
*
* @return mixed
*/
public function handle()
{
// Check and see if they have a legacy app key listed in their .env
// If not, we can try to use the current APP_KEY if looks like it's old
$legacy_key = env('LEGACY_APP_KEY');
$key_parts = explode(':', $legacy_key);
$legacy_cipher = env('LEGACY_CIPHER', 'rijndael-256');
$errors = [];
if (! $legacy_key) {
$this->error('ERROR: You do not have a LEGACY_APP_KEY set in your .env file. Please locate your old APP_KEY and ADD a line to your .env file like: LEGACY_APP_KEY=YOUR_OLD_APP_KEY');
return false;
}
// Do some basic legacy app key length checks
if (strlen($legacy_key) == 32) {
$legacy_length_check = true;
} elseif (array_key_exists('1', $key_parts) && (strlen($key_parts[1]) == 44)) {
$legacy_key = base64_decode($key_parts[1], true);
$legacy_length_check = true;
} else {
$legacy_length_check = false;
}
// Check that the app key is 32 characters
if ($legacy_length_check === true) {
$this->comment('INFO: Your LEGACY_APP_KEY looks correct. Okay to continue.');
} else {
$this->error('ERROR: Your LEGACY_APP_KEY is not the correct length (32 characters or base64 followed by 44 characters for later versions). Please locate your old APP_KEY and use that as your LEGACY_APP_KEY in your .env file to continue.');
return false;
}
$this->error('================================!!!! WARNING !!!!================================');
$this->error('================================!!!! WARNING !!!!================================');
$this->comment("This tool will attempt to decrypt your old Snipe-IT (mcrypt, now deprecated) encrypted data and re-encrypt it using OpenSSL. \n\nYou should only continue if you have backed up any and all old APP_KEYs and have backed up your data.");
$force = ($this->option('force')) ? true : false;
if ($force || ($this->confirm('Are you SURE you wish to continue?'))) {
$backup_file = 'backups/env-backups/'.'app_key-'.date('Y-m-d-gis');
try {
Storage::disk('local')->put($backup_file, 'APP_KEY: '.config('app.key'));
Storage::disk('local')->append($backup_file, 'LEGACY_APP_KEY: '.$legacy_key);
} catch (\Exception $e) {
$this->info('WARNING: Could not backup app keys');
}
if ($legacy_cipher) {
$mcrypter = new McryptEncrypter($legacy_key, $legacy_cipher);
} else {
$mcrypter = new McryptEncrypter($legacy_key);
}
$settings = Setting::getSettings();
if ($settings->ldap_pword == '') {
$this->comment('INFO: No LDAP password found. Skipping... ');
} else {
$decrypted_ldap_pword = $mcrypter->decrypt($settings->ldap_pword);
$settings->ldap_pword = Crypt::encrypt($decrypted_ldap_pword);
$settings->save();
}
/** @var CustomField[] $custom_fields */
$custom_fields = CustomField::where('field_encrypted', '=', 1)->get();
$this->comment('INFO: Retrieving encrypted custom fields...');
$query = Asset::withTrashed();
foreach ($custom_fields as $custom_field) {
$this->comment('FIELD TO RECRYPT: '.$custom_field->name.' ('.$custom_field->db_column.')');
$query->orWhereNotNull($custom_field->db_column);
}
// Get all assets with a value in any of the fields that were encrypted
/** @var Asset[] $assets */
$assets = $query->get();
$bar = $this->output->createProgressBar(count($assets));
foreach ($assets as $asset) {
foreach ($custom_fields as $encrypted_field) {
$columnName = $encrypted_field->db_column;
// Make sure the value isn't null
if ($asset->{$columnName} != '') {
// Try to decrypt the payload using the legacy app key
try {
$decrypted_field = $mcrypter->decrypt($asset->{$columnName});
$asset->{$columnName} = Crypt::encrypt($decrypted_field);
$this->comment($decrypted_field);
} catch (\Exception $e) {
$errors[] = ' - ERROR: Could not decrypt field ['.$encrypted_field->name.']: '.$e->getMessage();
}
}
}
$asset->save();
$bar->advance();
}
$bar->finish();
if (count($errors) > 0) {
$this->comment("\n\n");
$this->error("The decrypter encountered some errors: \n");
foreach ($errors as $error) {
$this->error($error);
}
}
}
}
}
+1 -1
View File
@@ -4,8 +4,8 @@ namespace App\Console\Commands;
use App\Models\Asset;
use App\Models\Setting;
use Illuminate\Support\Facades\Artisan;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\Artisan;
class RegenerateAssetTags extends Command
{
+2 -2
View File
@@ -44,7 +44,7 @@ class RemoveExplicitEols extends Command
}
$endTime = microtime(true);
$executionTime = ($endTime - $startTime);
$this->info('Command executed in ' . round($executionTime, 2) . ' seconds.');
$this->info('Command executed in '.round($executionTime, 2).' seconds.');
}
private function updateAssets($assets)
@@ -55,6 +55,6 @@ class RemoveExplicitEols extends Command
$asset->save();
}
$this->info($assets->count() . ' Assets updated successfully');
$this->info($assets->count().' Assets updated successfully');
}
}
@@ -0,0 +1,56 @@
<?php
namespace App\Console\Commands;
use App\Models\Actionlog;
use Illuminate\Console\Command;
class RemoveInvalidUploadDeleteActionLogItems extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'snipeit:remove-invalid-upload-delete-action-log-items';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Permanently remove invalid "upload deleted" action log items that have a null filename. This command can potentially result in deleted files being "resurrected" in the UI.';
/**
* Execute the console command.
*/
public function handle()
{
$invalidLogs = Actionlog::query()
->where('action_type', 'upload deleted')
->whereNull('filename')
->withTrashed()
->get();
$this->info("{$invalidLogs->count()} invalid log items found.");
if ($invalidLogs->count() === 0) {
return 0;
}
$this->table(['ID', 'Action Type', 'Item Type', 'Item ID', 'Created At', 'Deleted At'], $invalidLogs->map(fn ($log) => [
$log->id,
$log->action_type,
$log->item_type,
$log->item_id,
$log->created_at,
$log->deleted_at,
])->toArray());
if ($this->confirm("Do you wish to remove {$invalidLogs->count()} log items?")) {
$invalidLogs->each(fn ($log) => $log->forceDelete());
}
return 0;
}
}
+9 -8
View File
@@ -2,7 +2,6 @@
namespace App\Console\Commands;
use App\Models\Setting;
use App\Models\User;
use Illuminate\Console\Command;
@@ -49,14 +48,16 @@ class ResetDemoSettings extends Command
$settings->logo = 'snipe-logo.png';
$settings->alert_email = 'service@snipe-it.io';
$settings->login_note = 'Use `admin` / `password` to login to the demo.';
$settings->header_color = null;
$settings->barcode_type = 'QRCODE';
$settings->header_color = '#3c8dbc';
$settings->link_dark_color = '#5fa4cc';
$settings->link_light_color = '#296282;';
$settings->nav_link_color = '#FFFFFF';
$settings->label2_2d_type = 'QRCODE';
$settings->default_currency = 'USD';
$settings->brand = 2;
$settings->ldap_enabled = 0;
$settings->full_multiple_companies_support = 0;
$settings->alt_barcode = 'C128';
$settings->skin = '';
$settings->label2_1d_type = 'C128';
$settings->email_domain = 'snipeitapp.com';
$settings->email_format = 'filastname';
$settings->username_format = 'filastname';
@@ -65,7 +66,7 @@ class ResetDemoSettings extends Command
$settings->thumbnail_max_h = '30';
$settings->locale = 'en-US';
$settings->version_footer = 'on';
$settings->support_footer = null;
$settings->support_footer = 'on';
$settings->saml_enabled = '0';
$settings->saml_sp_x509cert = null;
$settings->saml_idp_metadata = null;
@@ -75,11 +76,12 @@ class ResetDemoSettings extends Command
$settings->saml_custom_settings = null;
$settings->default_avatar = 'default.png';
$settings->save();
if ($user = User::where('username', '=', 'admin')->first()) {
$user->locale = 'en-US';
$user->enable_confetti = 1;
$user->enable_sounds = 1;
$user->save();
}
@@ -87,5 +89,4 @@ class ResetDemoSettings extends Command
\Storage::disk('public')->put('snipe-logo-lg.png', file_get_contents(public_path('img/demo/snipe-logo-lg.png')));
}
}
+2 -2
View File
@@ -6,9 +6,9 @@ use App\Models\Actionlog;
use App\Models\Asset;
use App\Models\License;
use App\Models\User;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\Artisan;
use Illuminate\Support\Facades\DB;
use Illuminate\Console\Command;
class RestoreDeletedUsers extends Command
{
@@ -75,7 +75,7 @@ class RestoreDeletedUsers extends Command
DB::table('assets')
->where('id', $user_log->item_id)
->update(['assigned_to' => $user->id, 'assigned_type'=> User::class]);
->update(['assigned_to' => $user->id, 'assigned_type' => User::class]);
$this->info(' ** Asset '.$user_log->item->id.' ('.$user_log->item->asset_tag.') restored to user '.$user->id.'');
} elseif ($user_log->item_type == License::class) {
+201 -122
View File
@@ -2,13 +2,17 @@
namespace App\Console\Commands;
use enshrined\svgSanitize\Sanitizer;
use Illuminate\Console\Command;
use ZipArchive;
use Illuminate\Support\Facades\Log;
use ZipArchive;
class SQLStreamer {
class SQLStreamer
{
private $input;
private $output;
// embed the prefix here?
public ?string $prefix;
@@ -17,104 +21,112 @@ class SQLStreamer {
public static $buffer_size = 1024 * 1024; // use a 1MB buffer, ought to work fine for most cases?
public array $tablenames = [];
private bool $should_guess = false;
private bool $statement_is_permitted = false;
public function __construct($input, $output, string $prefix = null)
public function __construct($input, $output, ?string $prefix = null)
{
$this->input = $input;
$this->output = $output;
$this->prefix = $prefix;
}
public function parse_sql(string $line): string {
public function parse_sql(string $line): string
{
// take into account the 'start of line or not' setting as an instance variable?
// 'continuation' lines for a permitted statement are PERMITTED.
// remove *only* line-feeds & carriage-returns; helpful for regexes against lines from
// Windows dumps
$line = trim($line, "\r\n");
if($this->statement_is_permitted && $line[0] === ' ') {
return $line . "\n"; //re-add the newline
if ($this->statement_is_permitted && $line[0] === ' ') {
return $line."\n"; // re-add the newline
}
$table_regex = '`?([a-zA-Z0-9_]+)`?';
$allowed_statements = [
"/^(DROP TABLE (?:IF EXISTS )?)`$table_regex(.*)$/" => false,
"/^(CREATE TABLE )$table_regex(.*)$/" => true, //sets up 'continuation'
"/^(CREATE TABLE )$table_regex(.*)$/" => true, // sets up 'continuation'
"/^(LOCK TABLES )$table_regex(.*)$/" => false,
"/^(INSERT INTO )$table_regex(.*)$/" => false,
"/^UNLOCK TABLES/" => false,
'/^UNLOCK TABLES/' => false,
// "/^\\) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;/" => false, // FIXME not sure what to do here?
"/^\\)[a-zA-Z0-9_= ]*;$/" => false,
'/^\\)[a-zA-Z0-9_= ]*;$/' => false,
// ^^^^^^ that bit should *exit* the 'permitted' block
"/^\\(.*\\)[,;]$/" => false, //older MySQL dump style with one set of values per line
'/^\\(.*\\)[,;]$/' => false, // older MySQL dump style with one set of values per line
/* we *could* have made the ^INSERT INTO blah VALUES$ turn on the capturing state, and closed it with
a ^(blahblah);$ but it's cleaner to not have to manage the state machine. We're just going to
assume that (blahblah), or (blahblah); are values for INSERT and are always acceptable. */
"<^/\*![0-9]{5} SET NAMES '?[a-zA-Z0-9_-]+'? \*/;$>" => false, // using weird delimiters (<,>) for readability. allow quoted or unquoted charsets
"<^/\*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' \*/;$>" => false, // same, now handle zero-values
];
foreach($allowed_statements as $statement => $statechange) {
// $this->info("Checking regex: $statement...\n");
foreach ($allowed_statements as $statement => $statechange) {
// $this->info("Checking regex: $statement...\n");
$matches = [];
if (preg_match($statement,$line,$matches)) {
if (preg_match($statement, $line, $matches)) {
$this->statement_is_permitted = $statechange;
// matches are: 1 => first part of the statement, 2 => tablename, 3 => rest of statement
// (with of course 0 being "the whole match")
if (@$matches[2]) {
// print "Found a tablename! It's: ".$matches[2]."\n";
// print "Found a tablename! It's: ".$matches[2]."\n";
if ($this->should_guess) {
@$this->tablenames[$matches[2]] += 1;
continue; //oh? FIXME
continue; // oh? FIXME
} else {
$cleaned_tablename = \DB::getTablePrefix().preg_replace('/^'.$this->prefix.'/','',$matches[2]);
$line = preg_replace($statement,'$1`'.$cleaned_tablename.'`$3' , $line);
$cleaned_tablename = \DB::getTablePrefix().preg_replace('/^'.$this->prefix.'/', '', $matches[2]);
$line = preg_replace($statement, '$1`'.$cleaned_tablename.'`$3', $line);
}
} else {
// no explicit tablename in this one, leave the line alone
}
//how do we *replace* the tablename?
// print "RETURNING LINE: $line";
return $line . "\n"; //re-add newline
// how do we *replace* the tablename?
// print "RETURNING LINE: $line";
return $line."\n"; // re-add newline
}
}
// all that is not allowed is denied.
return "";
return '';
}
//this is used in exactly *TWO* places, and in both cases should return a prefix I think?
// this is used in exactly *TWO* places, and in both cases should return a prefix I think?
// first - if you do the --sanitize-only one (which is mostly for testing/development)
// next - when you run *without* a guessed prefix, this is run first to figure out the prefix
// I think we have to *duplicate* the call to be able to run it again?
public static function guess_prefix($input):string
public static function guess_prefix($input): string
{
$parser = new self($input, null);
$parser->should_guess = true;
$parser->line_aware_piping(); // <----- THIS is doing the heavy lifting!
$check_tables = ['settings' => null, 'migrations' => null /* 'assets' => null */]; //TODO - move to statics?
//can't use 'users' because the 'accessories_checkout' table?
$check_tables = ['settings' => null, 'migrations' => null /* 'assets' => null */]; // TODO - move to statics?
// can't use 'users' because the 'accessories_checkout' table?
// can't use 'assets' because 'ver1_components_assets'
foreach($check_tables as $check_table => $_ignore) {
foreach ($check_tables as $check_table => $_ignore) {
foreach ($parser->tablenames as $tablename => $_count) {
// print "Comparing $tablename to $check_table\n";
if (str_ends_with($tablename,$check_table)) {
// print "Found one!\n";
$check_tables[$check_table] = substr($tablename,0,-strlen($check_table));
// print "Comparing $tablename to $check_table\n";
if (str_ends_with($tablename, $check_table)) {
// print "Found one!\n";
$check_tables[$check_table] = substr($tablename, 0, -strlen($check_table));
}
}
}
$guessed_prefix = null;
foreach ($check_tables as $clean_table => $prefix_guess) {
if(is_null($prefix_guess)) {
print("Couldn't find table $clean_table\n");
die();
if (is_null($prefix_guess)) {
echo "Couldn't find table $clean_table\n";
exit();
}
if(is_null($guessed_prefix)) {
if (is_null($guessed_prefix)) {
$guessed_prefix = $prefix_guess;
} else {
if ($guessed_prefix != $prefix_guess) {
print("Prefix mismatch! Had guessed $guessed_prefix but got $prefix_guess\n");
die();
echo "Prefix mismatch! Had guessed $guessed_prefix but got $prefix_guess\n";
exit();
}
}
}
@@ -127,7 +139,7 @@ class SQLStreamer {
{
$bytes_read = 0;
if (! $this->input) {
throw new \Exception("No Input available for line_aware_piping");
throw new \Exception('No Input available for line_aware_piping');
}
while (($buffer = fgets($this->input, SQLStreamer::$buffer_size)) !== false) {
@@ -139,25 +151,24 @@ class SQLStreamer {
$bytes_written = fwrite($this->output, $cleaned_buffer);
if ($bytes_written === false) {
throw new \Exception("Unable to write to pipe");
throw new \Exception('Unable to write to pipe');
}
}
}
// if we got a newline at the end of this, then the _next_ read is the beginning of a line
if($buffer[strlen($buffer)-1] === "\n") {
if ($buffer[strlen($buffer) - 1] === "\n") {
$this->reading_beginning_of_line = true;
} else {
$this->reading_beginning_of_line = false;
}
}
return $bytes_read;
}
}
class RestoreFromBackup extends Command
{
/**
@@ -199,7 +210,7 @@ class RestoreFromBackup extends Command
public function handle()
{
$dir = getcwd();
if( $dir != base_path() ) { // usually only the case when running via webserver, not via command-line
if ($dir != base_path()) { // usually only the case when running via webserver, not via command-line
Log::debug("Current working directory is: $dir, changing directory to: ".base_path());
chdir(base_path()); // TODO - is this *safe* to change on a running script?!
}
@@ -218,7 +229,7 @@ class RestoreFromBackup extends Command
return $this->error('DB_CONNECTION must be MySQL in order to perform a restore. Detected: '.config('database.default'));
}
$za = new ZipArchive();
$za = new ZipArchive;
$errcode = $za->open($filename/* , ZipArchive::RDONLY */); // that constant only exists in PHP 7.4 and higher
if ($errcode !== true) {
@@ -237,16 +248,19 @@ class RestoreFromBackup extends Command
return $this->error('Could not access file: '.$filename.' - '.array_key_exists($errcode, $errors) ? $errors[$errcode] : " Unknown reason: $errcode");
}
$private_dirs = [
'storage/private_uploads/accessories',
'storage/private_uploads/assetmodels',
'storage/private_uploads/assetmodels' => 'storage/private_uploads/models', // this was changed from assetmodels => models Aug 10 2025
'storage/private_uploads/asset_maintenances' => 'storage/private_uploads/maintenances', // this was changed from asset_maintenances => maintenances Aug 10 2025
'storage/private_uploads/maintenances', // but let 'maintenances' take precedence
'storage/private_uploads/models', // and let 'models' take precedence
'storage/private_uploads/assets', // these are asset _files_, not the pictures.
'storage/private_uploads/audits',
'storage/private_uploads/components',
'storage/private_uploads/consumables',
'storage/private_uploads/eula-pdfs',
'storage/private_uploads/imports',
'storage/private_uploads/locations',
'storage/private_uploads/licenses',
'storage/private_uploads/signatures',
'storage/private_uploads/users',
@@ -257,9 +271,10 @@ class RestoreFromBackup extends Command
];
$public_dirs = [
'public/uploads/accessories',
// 'public/uploads/assetmodels' => 'public/uploads/models', //according to git, this was _never_ a thing... (see below)
'public/uploads/maintenances',
'public/uploads/assets', // these are asset _pictures_, not asset files
'public/uploads/avatars',
//'public/uploads/barcodes', // we don't want this, let the barcodes be regenerated
'public/uploads/categories',
'public/uploads/companies',
'public/uploads/components',
@@ -267,7 +282,7 @@ class RestoreFromBackup extends Command
'public/uploads/departments',
'public/uploads/locations',
'public/uploads/manufacturers',
'public/uploads/models',
'public/uploads/models', // ...it's been this way for 9 years (as of late 2025)
'public/uploads/suppliers',
];
@@ -280,76 +295,122 @@ class RestoreFromBackup extends Command
'public/uploads/favicon-uploaded.*',
];
$all_files = $private_dirs + $public_dirs;
$sqlfiles = [];
$sqlfile_indices = [];
$interesting_files = [];
$boring_files = [];
$unsafe_files = [];
$good_extensions = config('filesystems.allowed_upload_extensions_array');
$private_extensions = array_merge($good_extensions, ['csv', 'key']); // add csv, and 'key'
$public_extensions = array_diff($good_extensions, ['xml']); // remove xml
$sanitizer = new Sanitizer;
/**
* TODO: I _hate_ the "continue 3" thing we keep doing here
* I think a better approach might be to have the "each file" stuff be in a method on this class, and the
* boring_files and interesting_files be properties on it that we fill out. Then, in that method, we could
* just do a 'return' once the file is actually handled (yay or nay). We could also start to break out some of
* the _other_ things that we do into their own methods too? But I don't care about that as much.
*/
for ($i = 0; $i < $za->numFiles; $i++) {
$stat_results = $za->statIndex($i);
// echo "index: $i\n";
// print_r($stat_results);
$raw_path = $stat_results['name'];
if (strpos($raw_path, '\\') !== false) { //found a backslash, swap it to forward-slash
if (strpos($raw_path, '\\') !== false) { // found a backslash, swap it to forward-slash
$raw_path = strtr($raw_path, '\\', '/');
//print "Translating file: ".$stat_results['name']." to: ".$raw_path."\n";
// print "Translating file: ".$stat_results['name']." to: ".$raw_path."\n";
}
// skip macOS resource fork files (?!?!?!)
if (strpos($raw_path, '__MACOSX') !== false && strpos($raw_path, '._') !== false) {
//print "SKIPPING macOS Resource fork file: $raw_path\n";
$boring_files[] = $raw_path;
// print "SKIPPING macOS Resource fork file: $raw_path\n";
// $boring_files[] = $raw_path; //stop adding this to the boring files list; it's just confusing
continue;
}
if (@pathinfo($raw_path, PATHINFO_EXTENSION) == 'sql') {
Log::debug("Found a sql file!");
Log::debug('Found a sql file!');
$sqlfiles[] = $raw_path;
$sqlfile_indices[] = $i;
continue;
}
if ($raw_path[-1] == '/') {
// last character is '/' - this is a directory, and we don't need it, and we don't need to warn about it
continue;
}
if (in_array(basename($raw_path), ['.gitkeep', '.gitignore', '.DS_Store'])) {
// skip these boring files silently without reporting on them; they're stupid
continue;
}
$extension = strtolower(pathinfo($raw_path, PATHINFO_EXTENSION));
foreach (array_merge($private_dirs, $public_dirs) as $dir) {
$last_pos = strrpos($raw_path, $dir . '/');
if ($last_pos !== false) {
//print("INTERESTING - last_pos is $last_pos when searching $raw_path for $dir - last_pos+strlen(\$dir) is: ".($last_pos+strlen($dir))." and strlen(\$rawpath) is: ".strlen($raw_path)."\n");
//print("We would copy $raw_path to $dir.\n"); //FIXME append to a path?
$interesting_files[$raw_path] = ['dest' => $dir, 'index' => $i];
continue 2;
if ($last_pos + strlen($dir) + 1 == strlen($raw_path)) {
// we don't care about that; we just want files with the appropriate prefix
//print("FOUND THE EXACT DIRECTORY: $dir AT: $raw_path!!!\n");
foreach (['public' => $public_dirs, 'private' => $private_dirs] as $purpose => $dirs) {
$allowed_extensions = match ($purpose) {
'public' => $public_extensions,
'private' => $private_extensions,
};
foreach ($dirs as $dir => $destdir) {
if (is_int($dir)) {
$dir = $destdir;
}
$last_pos = strrpos($raw_path, $dir.'/');
if ($last_pos !== false) {
// print("INTERESTING - last_pos is $last_pos when searching $raw_path for $dir - last_pos+strlen(\$dir) is: ".($last_pos+strlen($dir))." and strlen(\$rawpath) is: ".strlen($raw_path)."\n");
// print("We would copy $raw_path to $dir.\n"); //FIXME append to a path?
// the CSV bit, below, is because we store CSV files as "blahcsv" - without an extension
if (! in_array($extension, $allowed_extensions) && ! ($dir == 'storage/private_uploads/imports' && substr($raw_path, -3) == 'csv' && $extension == '')) {
$unsafe_files[] = $raw_path;
Log::debug($raw_path.' from directory '.$dir.' is being skipped');
} else {
if ($dir != $destdir) {
Log::debug("Getting ready to save file $raw_path to new directory $destdir");
}
$interesting_files[$raw_path] = ['dest' => $destdir, 'index' => $i];
}
continue 3;
}
}
}
$good_extensions = ['png', 'gif', 'jpg', 'svg', 'jpeg', 'doc', 'docx', 'pdf', 'txt',
'zip', 'rar', 'xls', 'xlsx', 'lic', 'xml', 'rtf', 'webp', 'key', 'ico',];
foreach (array_merge($private_files, $public_files) as $file) {
$has_wildcard = (strpos($file, '*') !== false);
if ($has_wildcard) {
$file = substr($file, 0, -1); //trim last character (which should be the wildcard)
}
$last_pos = strrpos($raw_path, $file); // no trailing slash!
if ($last_pos !== false) {
$extension = strtolower(pathinfo($raw_path, PATHINFO_EXTENSION));
if (!in_array($extension, $good_extensions)) {
$this->warn('Potentially unsafe file ' . $raw_path . ' is being skipped');
$boring_files[] = $raw_path;
continue 2;
foreach (['public' => $public_files, 'private' => $private_files] as $purpose => $files) {
$allowed_extensions = match ($purpose) {
'public' => $public_extensions,
'private' => $private_extensions,
};
foreach ($files as $file) {
$has_wildcard = (strpos($file, '*') !== false);
if ($has_wildcard) {
$file = substr($file, 0, -1); // trim last character (which should be the wildcard)
}
//print("INTERESTING - last_pos is $last_pos when searching $raw_path for $file - last_pos+strlen(\$file) is: ".($last_pos+strlen($file))." and strlen(\$rawpath) is: ".strlen($raw_path)."\n");
//no wildcards found in $file, process 'normally'
if ($last_pos + strlen($file) == strlen($raw_path) || $has_wildcard) { //again, no trailing slash. or this is a wildcard and we just take it.
// print("FOUND THE EXACT FILE: $file AT: $raw_path!!!\n"); //we *do* care about this, though.
$interesting_files[$raw_path] = ['dest' => dirname($file), 'index' => $i];
continue 2;
$last_pos = strrpos($raw_path, $file); // no trailing slash!
if ($last_pos !== false) {
if (! in_array($extension, $allowed_extensions)) {
// gathering potentially unsafe files here to return at exit
$unsafe_files[] = $raw_path;
Log::debug('Potentially unsafe file '.$raw_path.' is being skipped');
$boring_files[] = $raw_path;
continue 3;
}
// print("INTERESTING - last_pos is $last_pos when searching $raw_path for $file - last_pos+strlen(\$file) is: ".($last_pos+strlen($file))." and strlen(\$rawpath) is: ".strlen($raw_path)."\n");
// no wildcards found in $file, process 'normally'
if ($last_pos + strlen($file) == strlen($raw_path) || $has_wildcard) { // again, no trailing slash. or this is a wildcard and we just take it.
// print("FOUND THE EXACT FILE: $file AT: $raw_path!!!\n"); //we *do* care about this, though.
$interesting_files[$raw_path] = ['dest' => dirname($file), 'index' => $i];
continue 3;
}
}
}
}
$boring_files[] = $raw_path; //if we've gotten to here and haven't continue'ed our way into the next iteration, we don't want this file
$boring_files[] = $raw_path; // if we've gotten to here and haven't continue'ed our way into the next iteration, we don't want this file
} // end of pre-processing the ZIP file for-loop
// print_r($interesting_files);exit(-1);
@@ -358,46 +419,52 @@ class RestoreFromBackup extends Command
}
if (strpos($sqlfiles[0], 'db-dumps') === false) {
//return $this->error("SQL backup file is missing 'db-dumps' component of full pathname: ".$sqlfiles[0]);
//older Snipe-IT installs don't have the db-dumps subdirectory component
// return $this->error("SQL backup file is missing 'db-dumps' component of full pathname: ".$sqlfiles[0]);
// older Snipe-IT installs don't have the db-dumps subdirectory component
}
$sql_stat = $za->statIndex($sqlfile_indices[0]);
//$this->info("SQL Stat is: ".print_r($sql_stat,true));
// $this->info("SQL Stat is: ".print_r($sql_stat,true));
$sql_contents = $za->getStream($sql_stat['name']); // maybe copy *THIS* thing?
// OKAY, now that we *found* the sql file if we're doing just the guess-prefix thing, we can do that *HERE* I think?
if ($this->option('sanitize-guess-prefix')) {
$prefix = SQLStreamer::guess_prefix($sql_contents);
$this->line($prefix);
return $this->info("Re-run this command with '--sanitize-with-prefix=".$prefix."' to see an attempt to sanitze your SQL.");
return $this->info("Re-run this command with '--sanitize-with-prefix=".$prefix."' to see an attempt to sanitize your SQL.");
}
// If we're doing --sql-stdout-only, handle that now so we don't have to open pipes to mysql and all of that silliness
if ($this->option('sql-stdout-only')) {
$sql_importer = new SQLStreamer($sql_contents, STDOUT, $this->option('sanitize-with-prefix'));
$bytes_read = $sql_importer->line_aware_piping();
return $this->warn("$bytes_read total bytes read");
//TODO - it'd be nice to dump this message to STDERR so that STDOUT is just pure SQL,
// TODO - it'd be nice to dump this message to STDERR so that STDOUT is just pure SQL,
// which would be good for redirecting to a file, and not having to trim the last line off of it
}
//how to invoke the restore?
// how to invoke the restore?
$pipes = [];
$env_vars = getenv();
$env_vars['MYSQL_PWD'] = config('database.connections.mysql.password');
// TODO notes: we are stealing the dump_binary_path (which *probably* also has your copy of the mysql binary in it. But it might not, so we might need to extend this)
// we unilaterally prepend a slash to the `mysql` command. This might mean your path could look like /blah/blah/blah//mysql - which should be fine. But maybe in some environments it isn't?
$mysql_binary = config('database.connections.mysql.dump.dump_binary_path').\DIRECTORY_SEPARATOR.'mysql'.(\DIRECTORY_SEPARATOR == '\\' ? ".exe" : "");
if( ! file_exists($mysql_binary) ) {
$mysql_binary = config('database.connections.mysql.dump.dump_binary_path').\DIRECTORY_SEPARATOR.'mysql'.(\DIRECTORY_SEPARATOR == '\\' ? '.exe' : '');
if (! file_exists($mysql_binary)) {
return $this->error("mysql tool at: '$mysql_binary' does not exist, cannot restore. Please edit DB_DUMP_PATH in your .env to point to a directory that contains the mysqldump and mysql binary");
}
$proc_results = proc_open("$mysql_binary -h ".escapeshellarg(config('database.connections.mysql.host')).' -u '.escapeshellarg(config('database.connections.mysql.username')).' '.escapeshellarg(config('database.connections.mysql.database')), // yanked -p since we pass via ENV
[0 => ['pipe', 'r'], 1 => ['pipe', 'w'], 2 => ['pipe', 'w']],
$pipes,
null,
$env_vars); // this is not super-duper awesome-secure, but definitely more secure than showing it on the CLI, or dropping temporary files with passwords in them.
$proc_results = proc_open("$mysql_binary -h " .
escapeshellarg(config('database.connections.mysql.host')) .
' -u ' . escapeshellarg(config('database.connections.mysql.username')) . ' ' .
' -P ' . escapeshellarg(config('database.connections.mysql.port')) . ' ' .
escapeshellarg(config('database.connections.mysql.database')), // yanked -p since we pass via ENV
[0 => ['pipe', 'r'], 1 => ['pipe', 'w'], 2 => ['pipe', 'w']],
$pipes,
null,
$env_vars); // this is not super-duper awesome-secure, but definitely more secure than showing it on the CLI, or dropping temporary files with passwords in them.
if ($proc_results === false) {
return $this->error('Unable to invoke mysql via CLI');
}
@@ -411,7 +478,7 @@ class RestoreFromBackup extends Command
// should we read stdout?
// fwrite($pipes[0],config("database.connections.mysql.password")."\n"); //this doesn't work :(
//$sql_contents = fopen($sqlfiles[0], "r"); //NOPE! This isn't a real file yet, silly-billy!
// $sql_contents = fopen($sqlfiles[0], "r"); //NOPE! This isn't a real file yet, silly-billy!
// FIXME - this feels like it wants to go somewhere else?
// and it doesn't seem 'right' - if you can't get a stream to the .sql file,
@@ -426,7 +493,7 @@ class RestoreFromBackup extends Command
}
try {
if ( $this->option('sanitize-with-prefix') === null) {
if ($this->option('sanitize-with-prefix') === null) {
// "Legacy" direct-piping
$bytes_read = 0;
while (($buffer = fgets($sql_contents, SQLStreamer::$buffer_size)) !== false) {
@@ -435,7 +502,7 @@ class RestoreFromBackup extends Command
$bytes_written = fwrite($pipes[0], $buffer);
if ($bytes_written === false) {
throw new Exception("Unable to write to pipe");
throw new Exception('Unable to write to pipe');
}
}
} else {
@@ -443,37 +510,37 @@ class RestoreFromBackup extends Command
$bytes_read = $sql_importer->line_aware_piping();
}
} catch (\Exception $e) {
Log::error("Error during restore!!!! ".$e->getMessage());
Log::error('Error during restore!!!! '.$e->getMessage());
// FIXME - put these back and/or put them in the right places?!
$err_out = fgets($pipes[1]);
$err_err = fgets($pipes[2]);
Log::error("Error OUTPUT: ".$err_out);
Log::error('Error OUTPUT: '.$err_out);
$this->info($err_out);
Log::error("Error ERROR : ".$err_err);
Log::error('Error ERROR : '.$err_err);
$this->error($err_err);
throw $e;
}
if (!feof($sql_contents) || $bytes_read == 0) {
return $this->error("Not at end of file for sql file, or zero bytes read. aborting!");
if (! feof($sql_contents) || $bytes_read == 0) {
return $this->error('Not at end of file for sql file, or zero bytes read. aborting!');
}
fclose($pipes[0]);
fclose($sql_contents);
$this->line(stream_get_contents($pipes[1]));
fclose($pipes[1]);
$this->error(stream_get_contents($pipes[2]));
fclose($pipes[2]);
//wait, have to do fclose() on all pipes first?
// wait, have to do fclose() on all pipes first?
$close_results = proc_close($proc_results);
if ($close_results != 0) {
return $this->error('There may have been a problem with the database import: Error number '.$close_results);
}
//and now copy the files over too (right?)
//FIXME - we don't prune the filesystem space yet!!!!
// and now copy the files over too (right?)
// FIXME - we don't prune the filesystem space yet!!!!
if ($this->option('no-progress')) {
$bar = null;
} else {
@@ -481,18 +548,25 @@ class RestoreFromBackup extends Command
}
foreach ($interesting_files as $pretty_file_name => $file_details) {
$ugly_file_name = $za->statIndex($file_details['index'])['name'];
$fp = $za->getStream($ugly_file_name);
//$this->info("Weird problem, here are file details? ".print_r($file_details,true));
if (!is_dir($file_details['dest'])) {
mkdir($file_details['dest'], 0755, true); //0755 is what Laravel uses, so we do that
$migrated_file_name = $file_details['dest'].'/'.basename($pretty_file_name);
if (strcasecmp(substr($pretty_file_name, -4), '.svg') === 0) {
$svg_contents = $za->getFromIndex($file_details['index']);
$cleaned_svg = $sanitizer->sanitize($svg_contents);
file_put_contents($migrated_file_name, $cleaned_svg);
} else {
$fp = $za->getStream($ugly_file_name);
// $this->info("Weird problem, here are file details? ".print_r($file_details,true));
if (! is_dir($file_details['dest'])) {
mkdir($file_details['dest'], 0755, true); // 0755 is what Laravel uses, so we do that
}
$migrated_file = fopen($migrated_file_name, 'w');
while (($buffer = fgets($fp, SQLStreamer::$buffer_size)) !== false) {
fwrite($migrated_file, $buffer);
}
fclose($migrated_file);
fclose($fp);
// $this->info("Wrote $ugly_file_name to $pretty_file_name");
}
$migrated_file = fopen($file_details['dest'].'/'.basename($pretty_file_name), 'w');
while (($buffer = fgets($fp, SQLStreamer::$buffer_size)) !== false) {
fwrite($migrated_file, $buffer);
}
fclose($migrated_file);
fclose($fp);
//$this->info("Wrote $ugly_file_name to $pretty_file_name");
if ($bar) {
$bar->advance();
}
@@ -503,6 +577,11 @@ class RestoreFromBackup extends Command
} else {
$this->info(count($interesting_files).' files were succesfully transferred');
}
if (count($unsafe_files) > 0) {
foreach ($unsafe_files as $unsafe_file) {
$this->warn('Potentially unsafe file '.$unsafe_file.' was skipped');
}
}
foreach ($boring_files as $boring_file) {
$this->warn($boring_file.' was skipped.');
}
+15 -13
View File
@@ -5,10 +5,10 @@ namespace App\Console\Commands;
use App\Models\Asset;
use App\Models\CustomField;
use App\Models\Setting;
use Illuminate\Support\Facades\Artisan;
use Illuminate\Console\Command;
use Illuminate\Contracts\Encryption\DecryptException;
use Illuminate\Encryption\Encrypter;
use Illuminate\Support\Facades\Artisan;
class RotateAppKey extends Command
{
@@ -46,12 +46,13 @@ class RotateAppKey extends Command
*/
public function handle()
{
//make sure they specify only exactly one of --emergency, or a filename. Not neither, and not both.
if ( (!$this->option('emergency') && !$this->argument('previous_key')) || ( $this->option('emergency') && $this->argument('previous_key'))) {
$this->error("Specify only one of --emergency, or an app key value, in order to rotate keys");
// make sure they specify only exactly one of --emergency, or a filename. Not neither, and not both.
if ((! $this->option('emergency') && ! $this->argument('previous_key')) || ($this->option('emergency') && $this->argument('previous_key'))) {
$this->error('Specify only one of --emergency, or an app key value, in order to rotate keys');
return 1;
}
if ( $this->option('emergency') ) {
if ($this->option('emergency')) {
$msg = "\n****************************************************\nTHIS WILL MODIFY YOUR APP_KEY AND DE-CRYPT YOUR ENCRYPTED CUSTOM FIELDS AND \nRE-ENCRYPT THEM WITH A NEWLY GENERATED KEY. \n\nThere is NO undo. \n\nMake SURE you have a database backup and a backup of your .env generated BEFORE running this command. \n\nIf you do not save the newly generated APP_KEY to your .env in this process, \nyour encrypted data will no longer be decryptable. \n\nAre you SURE you wish to continue, and have confirmed you have a database backup and an .env backup? ";
} else {
$msg = "\n****************************************************\nTHIS WILL DE-CRYPT YOUR ENCRYPTED CUSTOM FIELDS AND RE-ENCRYPT THEM WITH YOUR\nAPP_KEY.\n\nThere is NO undo. \n\nMake SURE you have a database backup BEFORE running this command. \n\nAre you SURE you wish to continue, and have confirmed you have a database backup? ";
@@ -79,9 +80,9 @@ class RotateAppKey extends Command
$new_app_key = config('app.key');
}
$this->warn('Your app cipher is: ' . $cipher);
$this->warn('Your old APP_KEY is: ' . $old_app_key);
$this->warn('Your new APP_KEY is: ' . $new_app_key);
$this->warn('Your app cipher is: '.$cipher);
$this->warn('Your old APP_KEY is: '.$old_app_key);
$this->warn('Your new APP_KEY is: '.$new_app_key);
// Manually create an old encrypter instance using the old app key
// and also create a new encrypter instance so we can re-crypt the field
@@ -97,12 +98,13 @@ class RotateAppKey extends Command
foreach ($assets as $asset) {
try {
$asset->{$field->db_column} = $oldEncrypter->decrypt($asset->{$field->db_column});
$this->line('DECRYPTED: ' . $field->db_column);
$this->line('DECRYPTED: '.$field->db_column);
} catch (DecryptException $e) {
$this->line('Could not decrypt '. $field->db_column.' using "old key" - skipping...');
$this->line('Could not decrypt '.$field->db_column.' using "old key" - skipping...');
continue;
} catch (\Exception $e) {
$this->error("Error decrypting ".$field->db_column.", reason: ".$e->getMessage().". Aborting key rotation");
$this->error('Error decrypting '.$field->db_column.', reason: '.$e->getMessage().'. Aborting key rotation');
throw $e;
}
$asset->{$field->db_column} = $newEncrypter->encrypt($asset->{$field->db_column});
@@ -119,8 +121,8 @@ class RotateAppKey extends Command
$setting->ldap_pword = $newEncrypter->encrypt($setting->ldap_pword);
$setting->save();
$this->warn('LDAP password has been re-encrypted.');
} catch(DecryptException $e) {
$this->warn("Unable to decrypt old LDAP password; skipping");
} catch (DecryptException $e) {
$this->warn('Unable to decrypt old LDAP password; skipping');
}
}
} else {
@@ -2,8 +2,8 @@
namespace App\Console\Commands;
use Illuminate\Console\Command;
use App\Models\SamlNonce;
use Illuminate\Console\Command;
class SamlClearExpiredNonces extends Command
{
@@ -38,7 +38,8 @@ class SamlClearExpiredNonces extends Command
*/
public function handle()
{
SamlNonce::where('not_valid_after','<=',now())->delete();
SamlNonce::where('not_valid_after', '<=', now())->delete();
return 0;
}
}
+64 -47
View File
@@ -2,15 +2,17 @@
namespace App\Console\Commands;
use App\Mail\UnacceptedAssetReminderMail;
use App\Models\Accessory;
use App\Models\Asset;
use App\Models\CheckoutAcceptance;
use App\Models\Setting;
use App\Models\Component;
use App\Models\Consumable;
use App\Models\LicenseSeat;
use App\Models\User;
use App\Notifications\CheckoutAssetNotification;
use App\Notifications\CurrentInventory;
use App\Notifications\UnacceptedAssetReminderNotification;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\Notification;
use Illuminate\Database\Eloquent\Relations\MorphTo;
use Illuminate\Support\Facades\Mail;
class SendAcceptanceReminder extends Command
{
@@ -26,7 +28,7 @@ class SendAcceptanceReminder extends Command
*
* @var string
*/
protected $description = 'This will resend users with unaccepted assets a reminder to accept or decline them.';
protected $description = 'This will resend users with unaccepted items a reminder to accept or decline them.';
/**
* Create a new command instance.
@@ -45,62 +47,77 @@ class SendAcceptanceReminder extends Command
*/
public function handle()
{
$pending = CheckoutAcceptance::pending()->where('checkoutable_type', 'App\Models\Asset')
->whereHas('checkoutable', function($query) {
$query->where('accepted_at', null)
->where('declined_at', null);
})
->with(['assignedTo', 'checkoutable.assignedTo', 'checkoutable.model', 'checkoutable.adminuser'])
->get();
$pending = CheckoutAcceptance::query()
->with([
'checkoutable' => function (MorphTo $morph) {
$morph->morphWith([
Asset::class => ['model.category', 'assignedTo', 'adminuser', 'company', 'checkouts'],
Accessory::class => ['category', 'company', 'checkouts'],
LicenseSeat::class => ['user', 'license', 'checkouts'],
Component::class => ['assignedTo', 'company', 'checkouts'],
Consumable::class => ['company', 'checkouts'],
]);
},
'assignedTo',
])
->whereHasMorph(
'checkoutable',
[Asset::class, Accessory::class, LicenseSeat::class, Component::class, Consumable::class],
fn ($q) => $q->whereNull('accepted_at')
->whereNull('declined_at')
)
->pending()
->get();
$count = 0;
$unacceptedAssetGroups = $pending
->filter(function($acceptance) {
return $acceptance->checkoutable_type == 'App\Models\Asset';
})
->map(function($acceptance) {
->map(function ($acceptance) {
return ['assetItem' => $acceptance->checkoutable, 'acceptance' => $acceptance];
})
->groupBy(function($item) {
->groupBy(function ($item) {
return $item['acceptance']->assignedTo ? $item['acceptance']->assignedTo->id : '';
});
$no_email_list = [];
$no_mail_address = [];
foreach ($unacceptedAssetGroups as $unacceptedAssetGroup) {
// The [0] is weird, but it allows for the item_count to work and grabs the appropriate info for each user.
// Collapsing and flattening the collection doesn't work above.
$acceptance = $unacceptedAssetGroup[0]['acceptance'];
foreach($unacceptedAssetGroups as $unacceptedAssetGroup) {
$locale = $acceptance->assignedTo?->locale;
$email = $acceptance->assignedTo?->email;
if (! $email) {
$no_email_list[] = [
'id' => $acceptance->assignedTo?->id,
'name' => $acceptance->assignedTo?->display_name,
];
} else {
$count++;
}
$item_count = $unacceptedAssetGroup->count();
foreach ($unacceptedAssetGroup as $unacceptedAsset) {
// if ($unacceptedAsset['acceptance']->assignedTo->email == ''){
// $no_mail_address[] = $unacceptedAsset['checkoutable']->assignedTo->present()->fullName;
// }
if ($unacceptedAsset['acceptance']->assignedTo) {
if (!$unacceptedAsset['acceptance']->assignedTo->locale) {
Notification::locale(Setting::getSettings()->locale)->send(
$unacceptedAsset['acceptance']->assignedTo,
new UnacceptedAssetReminderNotification($unacceptedAsset['assetItem'], $count)
);
} else {
Notification::send(
$unacceptedAsset['acceptance']->assignedTo,
new UnacceptedAssetReminderNotification($unacceptedAsset, $item_count)
);
}
$count++;
}
}
}
if (!empty($no_mail_address)) {
foreach($no_mail_address as $user) {
return $user.' has no email.';
if ($locale && $email) {
Mail::to($email)->send((new UnacceptedAssetReminderMail($acceptance, $item_count))->locale($locale));
} elseif ($email) {
Mail::to($email)->send((new UnacceptedAssetReminderMail($acceptance, $item_count)));
}
}
$this->info($count.' users notified.');
$headers = ['ID', 'Name'];
$rows = [];
foreach ($no_email_list as $user) {
$rows[] = [$user['id'], $user['name']];
}
if (! empty($rows)) {
$this->info('The following users do not have an email address:');
$this->table($headers, $rows);
}
return 0;
}
}
@@ -2,6 +2,7 @@
namespace App\Console\Commands;
use App\Helpers\Helper;
use App\Models\Asset;
use App\Models\Recipients\AlertRecipient;
use App\Models\Setting;
@@ -9,6 +10,7 @@ use App\Notifications\ExpectedCheckinAdminNotification;
use App\Notifications\ExpectedCheckinNotification;
use Carbon\Carbon;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\Notification;
class SendExpectedCheckinAlerts extends Command
{
@@ -17,7 +19,7 @@ class SendExpectedCheckinAlerts extends Command
*
* @var string
*/
protected $name = 'snipeit:expected-checkin';
protected $signature = 'snipeit:expected-checkin {--with-output : Display the results in a table in your console in addition to sending the email}';
/**
* The console command description.
@@ -42,19 +44,46 @@ class SendExpectedCheckinAlerts extends Command
public function handle()
{
$settings = Setting::getSettings();
$interval = $settings->audit_warning_days ?? 0;
$interval = $settings->due_checkin_days ?? 0;
$today = Carbon::now();
$interval_date = $today->copy()->addDays($interval);
$count = 0;
if (! $this->option('with-output')) {
$this->info('Run this command with the --with-output option to see the full list in the console.');
}
$assets = Asset::whereNull('deleted_at')->DueOrOverdueForCheckin($settings)->orderBy('assets.expected_checkin', 'desc')->get();
$this->info($assets->count().' assets must be checked in on or before '.$interval_date.' is deadline');
$this->info($assets->count().' assets must be checked on or before '.Helper::getFormattedDateObject($interval_date, 'date', false));
foreach ($assets as $asset) {
if ($asset->assignedTo && (isset($asset->assignedTo->email)) && ($asset->assignedTo->email!='') && $asset->checkedOutToUser()) {
$this->info('Sending User ExpectedCheckinNotification to: '.$asset->assignedTo->email);
if ($asset->assignedTo && (isset($asset->assignedTo->email)) && ($asset->assignedTo->email != '') && $asset->checkedOutToUser()) {
$asset->assignedTo->notify((new ExpectedCheckinNotification($asset)));
$count++;
}
}
if ($this->option('with-output')) {
if (($assets) && ($assets->count() > 0) && ($settings->alert_email != '')) {
$this->table(
[
trans('general.id'),
trans('admin/hardware/form.tag'),
trans('admin/hardware/form.model'),
trans('general.model_no'),
trans('general.purchase_date'),
trans('admin/hardware/form.expected_checkin'),
],
$assets->map(fn ($assets) => [
trans('general.id') => $assets->id,
trans('admin/hardware/form.tag') => $assets->asset_tag,
trans('admin/hardware/form.model') => $assets->model->name,
trans('general.model_no') => $assets->model->model_number,
trans('general.purchase_date') => $assets->purchase_date_formatted,
trans('admin/hardware/form.eol_date') => $assets->expected_checkin_formattedDate ? $assets->expected_checkin_formattedDate.' ('.$assets->expected_checkin_diff_for_humans.')' : '',
])
);
}
}
@@ -63,10 +92,11 @@ class SendExpectedCheckinAlerts extends Command
$recipients = collect(explode(',', $settings->alert_email))->map(function ($item) {
return new AlertRecipient($item);
});
$this->info('Sending Admin ExpectedCheckinNotification to: '.$settings->alert_email);
\Notification::send($recipients, new ExpectedCheckinAdminNotification($assets));
Notification::send($recipients, new ExpectedCheckinAdminNotification($assets));
}
$this->info('Sent checkin reminders to to '.$count.' users.');
}
}
+71 -17
View File
@@ -2,22 +2,22 @@
namespace App\Console\Commands;
use App\Mail\ExpiringAssetsMail;
use App\Mail\ExpiringLicenseMail;
use App\Models\Asset;
use App\Models\License;
use App\Models\Recipients\AlertRecipient;
use App\Models\Setting;
use App\Notifications\ExpiringAssetsNotification;
use App\Notifications\ExpiringLicenseNotification;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\Mail;
class SendExpirationAlerts extends Command
{
/**
* The console command name.
* The name and signature of the console command.
*
* @var string
*/
protected $name = 'snipeit:expiring-alerts';
protected $signature = 'snipeit:expiring-alerts {--expired-licenses}';
/**
* The console command description.
@@ -42,32 +42,86 @@ class SendExpirationAlerts extends Command
public function handle()
{
$settings = Setting::getSettings();
$threshold = $settings->alert_interval;
$alert_interval = $settings->alert_interval;
if (($settings->alert_email != '') && ($settings->alerts_enabled == 1)) {
// Send a rollup to the admin, if settings dictate
$recipients = collect(explode(',', $settings->alert_email))->map(function ($item, $key) {
return new AlertRecipient($item);
});
$recipients = collect(explode(',', $settings->alert_email))
->map(fn ($item) => trim($item)) // Trim each email
->filter(fn ($item) => ! empty($item))
->all();
// Expiring Assets
$assets = Asset::getExpiringWarrantee($threshold);
$assets = Asset::getExpiringWarrantyOrEol($alert_interval);
$assets->load(['assignedTo', 'supplier']);
if ($assets->count() > 0) {
$this->info(trans_choice('mail.assets_warrantee_alert', $assets->count(), ['count' => $assets->count(), 'threshold' => $threshold]));
\Notification::send($recipients, new ExpiringAssetsNotification($assets, $threshold));
Mail::to($recipients)->send(new ExpiringAssetsMail($assets, $alert_interval));
$this->table(
[
trans('general.id'),
trans('admin/hardware/form.tag'),
trans('admin/hardware/form.model'),
trans('general.model_no'),
trans('general.purchase_date'),
trans('admin/hardware/form.eol_rate'),
trans('admin/hardware/form.eol_date'),
trans('admin/hardware/form.warranty_expires'),
],
$assets->map(fn ($item) => [
trans('general.id') => $item->id,
trans('admin/hardware/form.tag') => $item->asset_tag,
trans('admin/hardware/form.model') => $item->model->name,
trans('general.model_no') => $item->model->model_number,
trans('general.purchase_date') => $item->purchase_date_formatted,
trans('admin/hardware/form.eol_rate') => $item->model->eol,
trans('admin/hardware/form.eol_date') => $item->eol_date ? $item->eol_formatted_date.' ('.$item->eol_diff_for_humans.')' : '',
trans('admin/hardware/form.warranty_expires') => $item->warranty_expires ? $item->warranty_expires_formatted_date.' ('.$item->warranty_expires_diff_for_humans.')' : '',
])
);
}
// Expiring licenses
$licenses = License::getExpiringLicenses($threshold);
$licenses = License::query()->ExpiringLicenses($alert_interval, $this->option('expired-licenses'))
->with('manufacturer', 'category')
->orderBy('expiration_date', 'ASC')
->orderBy('termination_date', 'ASC')
->get();
if ($licenses->count() > 0) {
$this->info(trans_choice('mail.license_expiring_alert', $licenses->count(), ['count' => $licenses->count(), 'threshold' => $threshold]));
\Notification::send($recipients, new ExpiringLicenseNotification($licenses, $threshold));
Mail::to($recipients)->send(new ExpiringLicenseMail($licenses, $alert_interval));
$this->table(
[
trans('general.id'),
trans('general.name'),
trans('general.purchase_date'),
trans('admin/licenses/form.expiration'),
trans('mail.expires'),
trans('admin/licenses/form.termination_date'),
trans('mail.terminates')],
$licenses->map(fn ($item) => [
trans('general.id') => $item->id,
trans('general.name') => $item->name,
trans('general.purchase_date') => $item->purchase_date_formatted,
trans('admin/licenses/form.expiration') => $item->expires_formatted_date,
trans('mail.expires') => $item->expires_formatted_date ? $item->expires_diff_for_humans : '',
trans('admin/licenses/form.termination_date') => $item->terminates_formatted_date,
trans('mail.terminates') => $item->terminates_diff_for_humans,
])
);
}
// Send a message even if the count is 0
$this->info(trans_choice('mail.assets_warrantee_alert', $assets->count(), ['count' => $assets->count(), 'threshold' => $alert_interval]));
$this->info(trans_choice('mail.license_expiring_alert', $licenses->count(), ['count' => $licenses->count(), 'threshold' => $alert_interval]));
} else {
if ($settings->alert_email == '') {
$this->error('Could not send email. No alert email configured in settings');
} elseif (1 != $settings->alerts_enabled) {
} elseif ($settings->alerts_enabled != 1) {
$this->info('Alerts are disabled in the settings. No mail will be sent');
}
}
+4 -2
View File
@@ -52,12 +52,14 @@ class SendInventoryAlerts extends Command
return new AlertRecipient($item);
});
\Notification::send($recipients, new InventoryAlert($items, $settings->alert_threshold));
Notification::send($recipients, new InventoryAlert($items, $settings->alert_threshold));
} else {
$this->info('No low inventory items found. No mail sent.');
}
} else {
if ($settings->alert_email == '') {
$this->error('Could not send email. No alert email configured in settings');
} elseif (1 != $settings->alerts_enabled) {
} elseif ($settings->alerts_enabled != 1) {
$this->info('Alerts are disabled in the settings. No mail will be sent');
}
}
@@ -2,13 +2,12 @@
namespace App\Console\Commands;
use App\Mail\SendUpcomingAuditMail;
use App\Models\Asset;
use App\Models\Recipients\AlertRecipient;
use App\Models\Setting;
use App\Notifications\SendUpcomingAuditNotification;
use Carbon\Carbon;
use Illuminate\Support\Facades\DB;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\Mail;
class SendUpcomingAuditReport extends Command
{
@@ -17,7 +16,7 @@ class SendUpcomingAuditReport extends Command
*
* @var string
*/
protected $signature = 'snipeit:upcoming-audits';
protected $signature = 'snipeit:upcoming-audits {--with-output : Display the results in a table in your console in addition to sending the email}';
/**
* The console command description.
@@ -48,19 +47,62 @@ class SendUpcomingAuditReport extends Command
$today = Carbon::now();
$interval_date = $today->copy()->addDays($interval);
$assets = Asset::whereNull('deleted_at')->DueOrOverdueForAudit($settings)->orderBy('assets.next_audit_date', 'desc')->get();
$this->info($assets->count().' assets must be audited in on or before '.$interval_date.' is deadline');
$assets_query = Asset::whereNull('deleted_at')->dueOrOverdueForAudit($settings)->orderBy('assets.next_audit_date', 'asc')->with('supplier');
$asset_count = $assets_query->count();
$this->info(number_format($asset_count).' assets must be audited on or before '.$interval_date);
if (! $this->option('with-output')) {
$this->info('Run this command with the --with-output option to see the full list in the console.');
}
if ($asset_count > 0) {
$assets_for_email = $assets_query->limit(30)->get();
if (($assets) && ($assets->count() > 0) && ($settings->alert_email != '')) {
// Send a rollup to the admin, if settings dictate
$recipients = collect(explode(',', $settings->alert_email))->map(function ($item) {
return new AlertRecipient($item);
});
if ($settings->alert_email != '') {
$this->info('Sending Admin SendUpcomingAuditNotification to: '.$settings->alert_email);
\Notification::send($recipients, new SendUpcomingAuditNotification($assets, $settings->audit_warning_days));
$recipients = collect(explode(',', $settings->alert_email))
->map(fn ($item) => trim($item))
->filter(fn ($item) => ! empty($item))
->all();
Mail::to($recipients)->send(new SendUpcomingAuditMail($assets_for_email, $settings->audit_warning_days, $asset_count));
$this->info('Audit notification sent to: '.$settings->alert_email);
} else {
$this->info('There is no admin alert email set so no email will be sent.');
}
if ($this->option('with-output')) {
// Get the full list if the user wants output in the console
$assets_for_output = $assets_query->limit(null)->get();
$this->table(
[
trans('general.id'),
trans('general.name'),
trans('general.last_audit'),
trans('general.next_audit_date'),
trans('mail.Days'),
trans('mail.supplier'),
trans('mail.assigned_to'),
],
$assets_for_output->map(fn ($item) => [
trans('general.id') => $item->id,
trans('general.name') => $item->display_name,
trans('general.last_audit') => $item->last_audit_formatted_date,
trans('general.next_audit_date') => $item->next_audit_formatted_date,
trans('mail.Days') => round($item->next_audit_diff_in_days),
trans('mail.supplier') => $item->supplier ? $item->supplier->name : '',
trans('mail.assigned_to') => $item->assignedTo ? $item->assignedTo->display_name : '',
])
);
}
} else {
$this->info('There are no assets due for audit in the next '.$interval.' days.');
}
}
+4 -6
View File
@@ -63,16 +63,14 @@ class SyncAssetCounters extends Command
}
} else {
$this->info('No assets to sync');
}
});
} else {
$this->info('No assets to sync');
}
});
$bar->finish();
$time_elapsed_secs = microtime(true) - $start;
$this->info("\nSync of ".$assets_count.' assets executed in '.$time_elapsed_secs.' seconds');
}
}
+6 -4
View File
@@ -3,6 +3,8 @@
namespace App\Console\Commands;
use App\Models\Asset;
use App\Models\Location;
use App\Models\User;
use Illuminate\Console\Command;
class SyncAssetLocations extends Command
@@ -57,7 +59,7 @@ class SyncAssetLocations extends Command
$bar->advance();
}
$assigned_user_assets = Asset::where('assigned_type', \App\Models\User::class)->whereNotNull('assigned_to')->whereNull('deleted_at')->get();
$assigned_user_assets = Asset::where('assigned_type', User::class)->whereNotNull('assigned_to')->whereNull('deleted_at')->get();
$output['info'][] = 'There are '.$assigned_user_assets->count().' assets checked out to users.';
foreach ($assigned_user_assets as $assigned_user_asset) {
if (($assigned_user_asset->assignedTo) && ($assigned_user_asset->assignedTo->userLoc)) {
@@ -73,7 +75,7 @@ class SyncAssetLocations extends Command
$bar->advance();
}
$assigned_location_assets = Asset::where('assigned_type', \App\Models\Location::class)
$assigned_location_assets = Asset::where('assigned_type', Location::class)
->whereNotNull('assigned_to')->whereNull('deleted_at')->get();
$output['info'][] = 'There are '.$assigned_location_assets->count().' assets checked out to locations.';
@@ -90,13 +92,13 @@ class SyncAssetLocations extends Command
}
// Assigned to assets
$assigned_asset_assets = Asset::where('assigned_type', \App\Models\Asset::class)
$assigned_asset_assets = Asset::where('assigned_type', Asset::class)
->whereNotNull('assigned_to')->whereNull('deleted_at')->get();
$output['info'][] = 'Asset-assigned assets: '.$assigned_asset_assets->count();
foreach ($assigned_asset_assets as $assigned_asset_asset) {
// Check to make sure there aren't any invalid relationships
// Check to make sure there aren't any invalid relationships
if ($assigned_asset_asset->assetLoc()) {
$assigned_asset_asset->location_id = $assigned_asset_asset->assetLoc()->id;
$output['info'][] = 'Setting Asset Assigned asset '.$assigned_asset_asset->assetLoc()->id.' ('.$assigned_asset_asset->asset_tag.') location to: '.$assigned_asset_asset->assetLoc()->id;
+3 -1
View File
@@ -37,11 +37,13 @@ class SystemBackup extends Command
*/
public function handle()
{
ini_set('max_execution_time', env('BACKUP_TIME_LIMIT', 600)); // 600 seconds = 10 minutes
if ($this->option('filename')) {
$filename = $this->option('filename');
// Make sure the filename ends in .zip
if (!ends_with($filename, '.zip')) {
if (! ends_with($filename, '.zip')) {
$filename = $filename.'.zip';
}
@@ -0,0 +1,50 @@
<?php
namespace App\Console\Commands;
use App\Helpers\Helper;
use Illuminate\Console\Command;
class TestLocationsFMCS extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'snipeit:test-locations-fmcs {--location_id=}';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Test for company ID inconsistencies if FullMultipleCompanySupport with scoped locations will be used.';
/**
* Execute the console command.
*/
public function handle()
{
$this->info('This script checks for company ID inconsistencies if Full Multiple Company Support with scoped locations will be used.');
$this->info('This could take a few moments if have a very large dataset.');
$this->newLine();
// if parameter location_id is set, only test this location
$location_id = null;
if ($this->option('location_id')) {
$location_id = $this->option('location_id');
}
$mismatched = Helper::test_locations_fmcs(true, $location_id);
$this->warn(trans_choice('admin/settings/message.location_scoping.mismatch', count($mismatched)));
$this->newLine();
$this->info('Edit your locations to associate them with the correct company.');
$header = ['Type', 'ID', 'Name', 'Checkout Type', 'Company ID', 'Item Company', 'Item Location', 'Location Company', 'Location Company ID'];
sort($mismatched);
$this->table($header, $mismatched);
}
}
@@ -17,7 +17,6 @@ class ToggleCustomfieldEncryption extends Command
protected $signature = 'snipeit:customfield-encryption
{fieldname : the db_column_name of the field}';
/**
* The console command description.
*
@@ -61,15 +60,15 @@ class ToggleCustomfieldEncryption extends Command
$field->field_encrypted = 1;
$field->save();
// This field is already encrypted. Do nothing.
// This field is already encrypted. Do nothing.
} else {
$this->error('The custom field ' . $field->db_column.' is already encrypted. No action was taken.');
$this->error('The custom field '.$field->db_column.' is already encrypted. No action was taken.');
}
});
// No matching column name found
// No matching column name found
} else {
$this->error('No matching results for unencrypted custom fields with db_column name: ' . $fieldname.'. Please check the fieldname.');
$this->error('No matching results for unencrypted custom fields with db_column name: '.$fieldname.'. Please check the fieldname.');
}
}
+92
View File
@@ -0,0 +1,92 @@
<?php
namespace App\Console\Commands;
use App\Models\Asset;
use Illuminate\Console\Command;
use Illuminate\Support\MessageBag;
class ValidateAssets extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'snipeit:validate-assets {--all : Display the valid assets in your table output as well} ';
/**
* The console command description.
*
* @var string
*/
protected $description = 'This runs through the list of assets and checks for any validation errors that would prevent it from being updated or checked in or out. ';
/**
* Execute the console command.
*/
public function handle()
{
$showAll = (bool) $this->option('all');
$assets = Asset::query()
->whereNull('deleted_at')
->with('model')
->orderBy('assets.created_at', 'desc')
->get();
if (! $showAll) {
$this->info('Run this command with the --all option to see the full list in the console.');
}
$rows = $assets
->filter(fn (Asset $asset) => $showAll || ! $asset->isValid())
->map(fn (Asset $asset) => [
trans('general.id') => $asset->id,
trans('admin/hardware/form.tag') => $asset->asset_tag,
trans('admin/hardware/form.serial') => $asset->serial ?? '',
trans('admin/hardware/form.model') => $asset->model?->name ?? '',
trans('general.model_no') => $asset->model?->model_number ?? '',
trans('general.error') => $asset->isValid() ? '√ valid' : $this->formatValidationErrors($asset),
])
->values()
->all();
$this->table(
[
trans('general.id'),
trans('admin/hardware/form.tag'),
trans('admin/hardware/form.serial'),
trans('admin/hardware/form.model'),
trans('general.model_no'),
trans('general.error'),
],
$rows
);
return self::SUCCESS;
}
private function formatValidationErrors(Asset $asset): string
{
$errors = $asset->getErrors();
$messages = [];
if ($errors instanceof MessageBag) {
$messages = $errors->all();
} elseif (is_array($errors)) {
$messages = $errors;
} else {
$messages = [(string) $errors];
}
$prefixedMessages = collect($messages)
->map(fn ($message) => trim((string) $message))
->filter()
->map(fn (string $message) => str_starts_with($message, '✘') ? $message : '✘ '.$message)
->values()
->all();
return implode(PHP_EOL, $prefixedMessages);
}
}
+1 -1
View File
@@ -87,7 +87,7 @@ class Version extends Command
$app_version = 'v'."$maj.".($min + 1).".$patch";
} elseif ($use_type == 'patch') {
$app_version = 'v'."$maj.$min.".($patch + 1);
// If nothing is passed, leave the version as it is, just increment the build
// If nothing is passed, leave the version as it is, just increment the build
} else {
$app_version = 'v'."$maj.$min.".$patch;
}
+7 -8
View File
@@ -2,9 +2,7 @@
namespace App\Console;
use App\Console\Commands\ImportLocations;
use App\Console\Commands\ReEncodeCustomFieldNames;
use App\Console\Commands\RestoreDeletedUsers;
use App\Models\Setting;
use Illuminate\Console\Scheduling\Schedule;
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
@@ -13,17 +11,18 @@ class Kernel extends ConsoleKernel
/**
* Define the application's command schedule.
*
* @param \Illuminate\Console\Scheduling\Schedule $schedule
* @return void
*/
protected function schedule(Schedule $schedule)
{
$schedule->command('snipeit:inventory-alerts')->daily();
$schedule->command('snipeit:expiring-alerts')->daily();
$schedule->command('snipeit:expected-checkin')->daily();
if (Setting::getSettings()?->alerts_enabled === 1) {
$schedule->command('snipeit:inventory-alerts')->daily();
$schedule->command('snipeit:expiring-alerts')->daily();
$schedule->command('snipeit:expected-checkin')->daily();
$schedule->command('snipeit:upcoming-audits')->daily();
}
$schedule->command('snipeit:backup')->weekly();
$schedule->command('backup:clean')->daily();
$schedule->command('snipeit:upcoming-audits')->daily();
$schedule->command('auth:clear-resets')->everyFifteenMinutes();
$schedule->command('saml:clear_expired_nonces')->weekly();
}
+37
View File
@@ -0,0 +1,37 @@
<?php
namespace App\Enums;
enum ActionType: string
{
// General
case Create = 'create';
case Update = 'update';
case Delete = 'delete';
case Restore = 'restore';
// Assets/Accessories/Components/Licenses/Consumables
case Checkout = 'checkout';
case CheckinFrom = 'checkin from';
case ForceCheckin = 'force checkin';
case Requested = 'requested';
case RequestCanceled = 'request canceled';
case Accepted = 'accepted';
case Declined = 'declined';
case Audit = 'audit';
case NoteAdded = 'note added';
// Users
case TwoFactorReset = '2FA reset';
case Merged = 'merged';
case TokenRevoked = 'token revoked';
case TokenUnrevoked = 'token unrevoked';
// Licenses
case DeleteSeats = 'delete seats';
case AddSeats = 'add seats';
// File Uploads
case Uploaded = 'uploaded';
case UploadDeleted = 'upload deleted';
}
-1
View File
@@ -3,7 +3,6 @@
namespace App\Events;
use App\Models\CheckoutAcceptance;
use App\Models\Contracts\Acceptable;
use Illuminate\Foundation\Events\Dispatchable;
use Illuminate\Queue\SerializesModels;
-1
View File
@@ -3,7 +3,6 @@
namespace App\Events;
use App\Models\CheckoutAcceptance;
use App\Models\Contracts\Acceptable;
use Illuminate\Foundation\Events\Dispatchable;
use Illuminate\Queue\SerializesModels;
+6 -1
View File
@@ -11,10 +11,15 @@ class CheckoutableCheckedIn
use Dispatchable, SerializesModels;
public $checkoutable;
public $checkedOutTo;
public $checkedInBy;
public $note;
public $action_date; // Date setted in the hardware.checkin view at the checkin_at input, for the action log
public $originalValues;
/**
@@ -28,7 +33,7 @@ class CheckoutableCheckedIn
$this->checkedOutTo = $checkedOutTo;
$this->checkedInBy = $checkedInBy;
$this->note = $note;
$this->action_date = $action_date ?? date('Y-m-d');
$this->action_date = $action_date ?? date('Y-m-d H:i:s');
$this->originalValues = $originalValues;
}
}
+11 -1
View File
@@ -11,22 +11,32 @@ class CheckoutableCheckedOut
use Dispatchable, SerializesModels;
public $checkoutable;
public $checkedOutTo;
public $checkedOutBy;
public $note;
public $originalValues;
public int $quantity;
public bool $signInPlace;
/**
* Create a new event instance.
*
* @return void
*/
public function __construct($checkoutable, $checkedOutTo, User $checkedOutBy, $note, $originalValues = [])
public function __construct($checkoutable, $checkedOutTo, User $checkedOutBy, $note, $originalValues = [], $quantity = 1, bool $signInPlace = false)
{
$this->checkoutable = $checkoutable;
$this->checkedOutTo = $checkedOutTo;
$this->checkedOutBy = $checkedOutBy;
$this->note = $note;
$this->originalValues = $originalValues;
$this->quantity = $quantity;
$this->signInPlace = $signInPlace;
}
}
@@ -0,0 +1,23 @@
<?php
namespace App\Events;
use App\Models\User;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Foundation\Events\Dispatchable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Support\Collection;
class CheckoutablesCheckedOutInBulk
{
use Dispatchable, SerializesModels;
public function __construct(
public Collection $assets,
public Model $target,
public User $admin,
public string $checkout_at,
public string $expected_checkin,
public string $note,
) {}
}
+4 -4
View File
@@ -2,9 +2,9 @@
namespace App\Events;
use App\Models\User;
use Illuminate\Foundation\Events\Dispatchable;
use Illuminate\Queue\SerializesModels;
use App\Models\User;
class UserMerged
{
@@ -17,8 +17,8 @@ class UserMerged
*/
public function __construct(User $from_user, User $to_user, ?User $admin)
{
$this->merged_from = $from_user;
$this->merged_to = $to_user;
$this->admin = $admin;
$this->merged_from = $from_user;
$this->merged_to = $to_user;
$this->admin = $admin;
}
}
+7
View File
@@ -0,0 +1,7 @@
<?php
namespace App\Exceptions;
use Exception;
class AssetNotRequestable extends Exception {}

Some files were not shown because too many files have changed in this diff Show More