⚠️ IMPORTANT: Future versions of Snipe-IT will require PHP 8.1 or greater
Happy New Year, everyone! This update is a big one as we ramp up for the release of v7. We've got tons of bug-fixes, big and small, and we're stoked to announce support for Microsoft Teams in the notification integrations. As we continue work on v7, expect even more improvements and flexibility in notifications down the line.
We've also added the ability to specify custom fields that you would like to appear on the requestable assets page, and added user edit logging to track changes to users in the system (minus passwords, 2fa tokens, etc, of course), along with some bulk editing, LDAP and SAML improvements.
The full list of changes is below - enjoy!
What's Changed
- Check that the location is valid before debugging by @snipe in #13753
- Fixed #13652 - Labels Using Wrong Logo by @spencerrlongg in #13756
- Fixed RB-17334 - ErrorException: Undefined variable
$user_formatted_array
by @snipe in #13757 - Check for true/false explicitly on api table view by @snipe in #13759
- Check for valid date in custom report by @snipe in #13761
- Make sure order number is not an array by @snipe in #13762
- Fixed ErrorException: Array to String Conversion rb17355 by @inietov in #13758
- Fixed custom report date fields error by @Robert-Azelis in #13777
- Fixed accessory not found string by @snipe in #13784
- Map Snipe-IT logs to storage logs folder in Docker by @svpernova09 in #13786
- Fixed ErrorException: Undefined array key in importer blade [sc-23864] by @inietov in #13787
- Added an option to bulk edit location & fixed location bug by @Godmartinz in #13584
- Added optional custom fields to requestable assets page by @snipe in #13796
- Added employee number as a searchable field to the asset table by @Godmartinz in #13797
- Fixed #13795 Unlogged checkin action post updating the username of an asset through the CSV import by @inietov in #13799
- Improvements to EOL rate and EOL date by @Robert-Azelis in #13776
- Fixed FD-38641 - Bulk asset edit unable to update
model_id
, misc other bugs by @snipe in #13800 - Fixes EOL on Custom Report by @spencerrlongg in #13802
- Added User Phone & Address Fields to Custom Asset Report by @spencerrlongg in #13803
- Added
min_amt
value to model detail page by @snipe in #13809 - Fixed #11179:
APP_FORCE_TLS
missing from the example.env.docker
by @mmanjos in #13810 - Added
trim()
to import values by @snipe in #13731 - Added missing translation string by @Godmartinz in #13811
- Handle redirect from after
POST
request from backup restore by @snipe in #13812 - Added additional fields to Download All in Activity Report by @snipe in #13815
- Added checkboxes to intentionally remove field values in bulk user edit by @snipe in #13817
- Fixed validation handling on backup uploads by @snipe in #13818
- Check that the category exists on user print page by @snipe in #13819
- Fixed Attempt to read property fields on null [sc-23903] by @inietov in #13820
- Fixed datetime displayed on license edit for fields that should be date by @snipe in #13816
- More graceful failure if
ldap_results
JSON decode isn’t set by @snipe in #13821 - Fixed ldap location sync by @Godmartinz in #13828
- Added employee number to user merge screen by @snipe in #13837
- Removed Refresh button on Client Tables by @spencerrlongg in #13847
- Fixed notes not saving to action log when licenses are checked in/out by @marcusmoore in #13842
- Added #13754 - asset history tab to locations view by @ntbutler-nbcs in #13814
- New translation strings for Custom Asset report by @spencerrlongg in #13823
- Clarified address column under locations by @Godmartinz in #13769
- Fixed URL to favicon on default blade (used in 404 messages) by @snipe in #13852
- Fixed
undefined array key 266
in dashboard pie when over 265 status labels exist by @akemidx in #13857 - Security upgrade alpine from 3.17.3 to 3.17.5 by @snipe in #13871
- Link back to asset on create by @snipe in #13853
- Fixed exception when an array is incorrectly submitted and the exception occurs before validation by @spencerrlongg in #13830
- Added multi-location sync for ldap by @Godmartinz in #13831
- Fixed error
Attempt to read property "id" on bool
[sc-23945] by @inietov in #13859 - Changed data source input to select in new label engine by @marcusmoore in #13680
- Added default map back to the importer by @snipe in #13876
- Clarified upload error text by @snipe in #13878
- Fix for Unique Serial validation by @spencerrlongg in #13887
- Added
empty()
aroundlocation_id
to fix ldap sync bug by @Godmartinz in #13892 - Redirect if category is missing or invalid by @snipe in #13903
- Redirect back to the specific consumable for correction by @snipe in #13904
- Fixed #13850:
Too few arguments to function in App\Importer\UserImporter::fetchManager()
by @Azooz2014 in #13898 - Fixed #13905 - Use
unique_undeleted
instead ofunique_serial
by @snipe in #13913 - Fixed missing translation string for
validation.two_column_unique_undeleted
by @snipe in #13914 - Created mutator on category checkin_email by @snipe in #13922
- Quick revert for #13830 by @snipe in #13923
- Fixed issue where delete then restore could result in duplicate asset tags by @snipe in #13926
- Fixes double logging on asset restore by @snipe in #13928
- Added user observer by @snipe in #13930
- Use updated icons for activity report by @snipe in #13931
- Use allowlist for user observer logging by @snipe in #13932
- Removed extra return statement in consumables API checkout method by @snipe in #13933
- Escape the asset tag before passing it to the view by @snipe in #13934
- Added default location to user view assets by @snipe in #13940
- Upgraded webpack to 5.89.0 by @snipe in #13941
- Updated acorn to 8.11.2 by @snipe in #13942
- Upgrade alpinejs from 3.12.3 to 3.13.2 #13936 by @snipe in #13943
- Upgrade jspdf-autotable from 3.5.31 to 3.7.1 #13937 by @snipe in #13944
- Higher contrast on green dark skin (#13915 for develop) by @snipe in #13945
- SCIM active flag must be a boolean by @uberbrady in #13948
- Refactored checkout for items with bad or missing category by @snipe in #13947
- Check for the array key in
$activeFile->first_row
in importer by @snipe in #13950 - Hiding Order Column in Custom Fieldsets by @akemidx in #13909
- Updated language strings by @snipe in #13953
- Modified re-crypter to also work when given a CLI old-key by @uberbrady in #13958
- Fixed sqlite exception in migration by @marcusmoore in #13955
- Translation of No Group notice on User edit page by @akemidx in #13965
- Fixed status and model in bulk edit by @snipe in #13959
- Fixed user total asset cost to appear conditionally by @Godmartinz in #13954
- Created mutator for requestable attribute by @snipe in #13970
- Fixes CVE-2023-49316 by upgrading
phpseclib/phpseclib
by @joelpittet in #13975 - Fixed black dark theme, contrast issues etc by @Godmartinz in #13976
- Fixed the Column header Serial to Product Key for Licenses by @Godmartinz in #13981
- Added test suite for LDAP by @uberbrady in #13978
- Added eula-pdfs to allow-list on restore by @snipe in #13992
- Changed the column header Serial to Product Key on a User View by @Godmartinz in #13993
- Added help text to RTD location field by @snipe in #13998
- Updated to alpine 3.18.5 (PR to #13989) by @snipe in #13999
- Improve backup directory array by @uberbrady in #14005
- Fixed maintenances patch endpoint by @snipe in #14007
- Change log level on status label colors above 256 by @akemidx in #14008
- Updated importer icons by @snipe in #14015
- Set default sorting on backups to latest first by @snipe in #14016
- Smaller icon size for activity reports, other action icons by @snipe in #14017
- Added model name and number to quickscan by @snipe in #14018
- Added
$user->created_by
to API user create method by @snipe in #14020 - Fixed HTML double-encoded on checkout emails. by @snipe in #14021
- Added GH test action status badge by @snipe in #14022
- Added a missing table header on requested table for checkout by @Godmartinz in #14014
- Fixed checkbox/radio button display on models edit for default fields by @snipe in #14026
- Upgrade alpinejs from 3.12.3 to 3.13.3 #14013 by @snipe in #14028
- Added
user agent
,remote_ip
,action_source
toaction_logs
table by @snipe in #14036 - Fixed
undefined $search_base
by @snipe in #14031 - Removed jquery-ui-bundle by @marcusmoore in #13966
- Fixed #14037 - record current time on accessory checkin by @snipe in #14042
- Added Status Label names to Asset history/Action log by @Godmartinz in #14001
- Bump
github/codeql-action
from 2 to 3 by @dependabot in #14047 - Added log message for who is being sent expected checkin notifications by @marcusmoore in #14050
- Added licensed to name and email in user profile license view by @Godmartinz in #13994
- Make sure we're getting an object instead of a collection on Asset API for model_id by @snipe in #14055
- Fixes CVE-2023-43655 Composer Remote Code Execution vulnerability public composer.phar by @joelpittet in #14039
- Fixes CVE-2023-50251 and CVE-2023-50262 DoS on parsing SVG by @joelpittet in #14038
- Implement 1D barcode for label "Tapes\Dymo\LabelWriter_30252" #13987 by @snipe in #14056
- Fixed bad migration namespace by @snipe in #14060
- Added back-migration for Big Locale Refactoring by @uberbrady in #14062
- Normalize language codes, updated strings by @snipe in #14059
- Set fallback locale to new locale code by @snipe in #14064
- Update ResetSettings command to en-US vs en by @snipe in #14072
- Tests For API Asset Store + Refactor For Auto Increment & Form Requests by @spencerrlongg in #13964
- Syncs readme to DockerHub description by @marcusmoore in #14092
- Fixes language source directory for crowdin by @marcusmoore in #14093
- Updated language strings by @snipe in #14094
- Upgrade @fortawesome/fontawesome-free from 6.4.0 to 6.5.0 by @snipe in #14095
- Upgrade jspdf-autotable from 3.5.31 to 3.8.0 by @snipe in #14096
- Use Query Builder instead of Model for Update to Skip Observer in EOL de-normalization migration by @spencerrlongg in #14097
- Fixed invalid query with null values by @marcusmoore in #14101
- Fixed
departmentNameLinkFormatter
url by @Godmartinz in #14100 - Run sqlite tests in GitHub action by @marcusmoore in #14090
- Moved limit and offset in user API to after additional qualifiers by @snipe in #14103
- Moved Google Login prompt higher, made it bigger by @snipe in #14104
- Check that the asset exists before trying to get properties by @snipe in #14107
- Added supplier name as a searchable relation on the asset maintenance report by @Godmartinz in #14108
- Moved contributors to dedicated file by @marcusmoore in #14109
- Added license expiration date in "view asset" by @mauro-miatello in #14115
- Fixed CVE-2023-51651 Potential URI resolution path traversal in the AWS SDK for PHP by @joelpittet in #14087
- Guard against passing non-integer for
company_id
when creating asset by @marcusmoore in #14116 - Search on supplier name attached to maintenance by @snipe in #14118
- Fixed multiple click checkouts for consumables, accessories and components by @Godmartinz in #14121
- Added way to preserve sort order when generating asset labels by @uberbrady in #14114
- Added
REDIS_DATABASE
support by @fe80 in #14143 - Updated URL for apple manufacturer by @snipe in #14144
- Fix for LDAP syncing with
base_dn
andlocation_id
andlocation
[FD-39651] by @uberbrady in #14155 - Bump
actions/cache
from 3 to 4 by @dependabot in #14149 - Improved radio button values in custom report form by @marcusmoore in #14132
- Adds translations for Label example by @Godmartinz in #14131
- Moved URL string to general by @snipe in #14158
- Fixed license seats id turning to zero when sorting by department by @Godmartinz in #14102
- Fixed english and attribute placeholder by @snipe in #14159
- Updated language strings by @snipe in #14161
- Email in License Seat Table by @akemidx in #14051
- Set
qty
mutators by @snipe in #13924 - Fixed Ldap sync test table and table data from overflowing by @Godmartinz in #14058
- Added overflow scroll to ldap test table by @Godmartinz in #14163
- Fixed #14114 - correctly sort related fields for labels by @snipe in #14162
- Avoid unnecessarily hydrating models on asset model show page by @marcusmoore in #14164
- Added support for Microsoft Teams Notifications by @Godmartinz in #14153
- Enforce SAML assertion ID uniqueness and notValidOnOrAfter attribute [FD-37019] by @uberbrady in #14170
- Removed attribute assigning blank EOL as 0 by @snipe in #14171
- Fixed #14173: Use new SnipeTranslator to handle pluralized localizations by @uberbrady in #14175
New Contributors
- @mmanjos made their first contribution in #13810
- @Azooz2014 made their first contribution in #13898
- @mauro-miatello made their first contribution in #14115
- @fe80 made their first contribution in #14143
Full Changelog: v6.2.3...v6.3.0