⚠️ IMPORTANT: Future versions of Snipe-IT will require PHP8.0 or greater
Happy Friday everyone! Version 6.1.0 is out! As you can see from the changelog below, it's a big one! (It will be less dramatic if you've been pulling from master
this whole time, but some folks only use tagged releases.)
We've made a ton of bug fixes and query optimizations in this release, and enhanced many aspects of the UI, including some big improvements to the importer UI (with more on the way.) Additionally, we've made lots more progress in replacing hard-coded English strings with translatable strings (much more work on that to come as well.)
We've also introduced a new "Merge Users" tool for those unfortunate scenarios where users were importer or added manually but the usernames didn't match, so duplicates were created by LDAP sync or SCIM:
Which writes to the action log:
Since our last release, we've added two new developers to the team, @marcusmoore and @spencerrlongg! We're excited to see what great contributions they make to the project!
This will be the last release (barring emergency bugfixes and security patches) in the v6 line. Next up is v7 of Snipe-IT, which will bring even more good stuff like expanding webhooks, improved notifications, more logging and tons more.
What's Changed
- Fixed #12215 - string for “Hello, :name” in pt-BR was using
%
by @snipe in #12233 - Add email in assigned_to on asset transformer by @snipe in #12238
- Adds asset age to asset index and asset view pages by @Godmartinz in #12181
- Added: serial to components tab of assets by @Godmartinz in #12247
- Fixed: Grey out email inventory button if user has nothing assigned by @akemidx in #12243
- Adds remote field to the user importer by @Godmartinz in #12205
- Upgraded font awesome to 6.2.1 by @snipe in #12251
- Fixed #9875: Make locations deletable for non Superuser-Accounts with FullMultipleCompanySupport by @Toreg87 in #9876
- Adds a permission group selection for directory sync by @Godmartinz in #11736
- Fixed: Grey out password reset button for consistency by @akemidx in #12250
- Removed extra logging case that was very noisy by @snipe in #12188
- Added
purchase_cost
to user's default view [sc-19680] by @inietov in #12242 - Fixed 500 when downloading the Unaccepted Assets report [sc-19555] by @inietov in #12209
- Bump actions/checkout from 3.1.0 to 3.2.0 by @dependabot in #12260
- Commenting on a scope in Models/Company.php by @akemidx in #12254
- Fixed: Bug with BS tables' select-all which showed an incorrect list of elements by @uberbrady in #12266
- Fixed: Dashboard user count scoping when full company support is enabled by @inietov in #12268
- Added: notes to the accessories tab for user detail view by @Godmartinz in #12264
- Added: validation for department names at Company locations by @Godmartinz in #12090
- Fixed db seeder when company id is not present by @snipe in #12298
- Fixed: Change license_seat changing method to properly 'true up' license seats by @uberbrady in #12305
- Fixed incomplete sentence in translation file for audit interval by @snipe in #12306
- Updated less-loader and css-loader libraries by @snipe in #12307
- Fixed missing translation string by @snipe in #12308
- Fixed: page-break and padding at the end of document for labels by @Godmartinz in #12263
- Added default values to model api GET endpoint by @snipe in #12315
- Chunk sync script by @snipe in #12316
- Truncate URL with ellipsis if too long by @snipe in #12317
- Bump actions/checkout from 3.2.0 to 3.3.0 by @dependabot in #12320
- Updated language strings by @snipe in #12323
- Fixed #12288 - LDAP default group feature refactor by @uberbrady in #12325
- Added username to display in asset listings by @snipe in #12324
- The cache system in getSettings() cached values "forever." That's bad. by @uberbrady in #12326
- Fixed #12236 - Determine which transformer to use based on number of assets in byTag and bySerial API endpoint by @snipe in #12327
- Fixed bySerial endpoint to always return a list by @snipe in #12328
- Fixed UX issue where assets sidenav would collapse if custom status label is selected by @snipe in #12330
- Updated installer script for multiple fixes and features by @subdriven in #12158
- Fixed rollbar integration if ROLLBAR_TOKEN is provided by @snipe in #12329
- Refactor category API for fewer queries by @snipe in #12336
- Added jamf-snipe-rename script to third party list by @snipe in #12337
- Fixed #12004: Snipe-IT restore didn't work on Windows by @uberbrady in #12335
- Check that the
$use_db_field
has a value before attempting a delete by @snipe in #12351 - Added South Sudan to country list by @snipe in #12352
- Only add rollbar to the logging array if the app is in production by @snipe in #12353
- Backed out less-loader version requirement so that builds still work by @uberbrady in #12354
- Added categories to default visiable set on asset models by @snipe in #12355
- Fixed #12362: Bug With Passwords Including Ampersands? by @corydlamb in #12363
- BREAKING: Partial fix for #12356: Make 2FA sortable in user list by @snipe in #12364
- Fixed file uploads for accessories, components, and consumables by @marcusmoore in #12370
- Added BYOD to assets by @snipe in #12369
- Fixed #12340 Deleting imported files visually drops first element in table. by @inietov in #12377
- Allow users to set a blank asset name during checkout by @marcusmoore in #12378
- Updated dev assets by @snipe in #12380
- Fix minor visual bug on asset show page by @marcusmoore in #12379
- Fixed #12388 - Add CSS to the div to correct the weird indenting by @snipe in #12389
- Fixed "Backup before importing?" checkbox on import page by @jerm in #12400
- Fixed: translations for EULA Acceptance Summary by @akemidx in #12398
- Updated - Refactored ImageHandler request to be more re-usable, and checkboxes with missing
minimal
class for iCheck by @snipe in #12387 - Fixed buttons colors in high contrast theme by @Godmartinz in #12405
- Resolved Rollbar error 16746 - missing array key 'extension' by @uberbrady in #12411
- Redo SCIM config; use latest laravel-scim-server from our fork by @uberbrady in #12341
- Fixed the endpoint for user notification with all their assigned assets by @lukasfehling in #12435
- Fixed #9694 Replace iOS "Add to homescreen icon" by @inietov in #12438
- Fixed: username doubles on 'checked-out-to' column if display is resized [sc-19869], [fd-33242] by @uberbrady in #12439
- Cherry-picked Feature: Add DB_PORT to pgsql connection by @svpernova09 in #12429
- Fixed Invalid date value on assets acceptance mail notification by @inietov in #12433
- Fixed #12382 - added checked out count to accessories by @snipe in #12386
- Fixed: Checkin limit string translation for components by @akemidx in #12409
- Fixed: Active Directory "not-delegated+dont-expire-password+normal-accounts" can now login by @uberbrady in #12437
- Fixed #12418 - added ability to edit custom field names via GUI by @snipe in #12423
- Fixed: translation for slack message notification by @akemidx in #12407
- Fixed: Short-circuit the LDAP sync if LDAP is disabled by @snipe in #12444
- Added an exit for the LDAP disabled sync short-circuit by @snipe in #12445
- Fixed Dusk Test Suite by @marcusmoore in #12342
- Handle missing userfiles more gracefully by @snipe in #12454
- Fixed #12449 - Added checkout/checkin note to user history by @snipe in #12456
- Fixed: translations added for the hardware blades by @akemidx in #12421
- Fixed regression in fieldset -> field association by @snipe in #12457
- Updated model restore route by @snipe in #12459
- Fixed mismatched field/fieldset by @snipe in #12474
- Fixed UI bug where download button was missing for non-images by @snipe in #12480
- Fixed #12064 Mail-Template missing translation strings by @inietov in #12478
- Improve error messaging around invalid characters in import by @marcusmoore in #12489
- Fixed: Removed "required" marker for manufacturer on asset models (since it is not actually required) by @akemidx in #12490
- Fixed: Translated the QuickStart screens by @akemidx in #12498
- Added functionality to Apple Warranty link by @akemidx in #12477
- Use translation strings for importer exceptions by @marcusmoore in #12506
- Fixed #12503 - asset names being removed during API checkout requests by @marcusmoore in #12514
- Added a red icon next to the undeployable status by @Godmartinz in #12513
- Fixed #12252 Quotes in Custom Field regex are being HTML-escaped by @inietov in #12516
- Style fixes by @snipe in #12466
- Silence E_WARNING "exceptions" by @uberbrady in #12517
- Fixed ErrorException: Attempt to read property "id" on null [sc-19855] by @inietov in #12473
- Fixed Rollbar 16883 Error: Attempt to assign property "assigned_to" on null by @inietov in #12470
- Enforce Y-m-d as date format for date fields by @snipe in #12408
- Adds Livewire slack inputs by @Godmartinz in #12446
- Fixes slack livewire translations, UI by @snipe in #12522
- Fixed awkward checkout text in checkedout side panel by @akemidx in #12521
- Fixes slack settings submit button availability by @Godmartinz in #12523
- Cleanup some small UI bugaboos (padding, etc) by @snipe in #12524
- Have acceptance result notifications adhere to alerts enabled setting by @marcusmoore in #12422
- Added ability for users to clear their slack settings by @Godmartinz in #12529
- Fixed #12531: hotfix by @snipe in #12533
- Updated translations with new strings and new translations by @snipe in #12541
- Updated the general translation file with new strings by @snipe in #12544
- Two more translations by @snipe in #12545
- Add libsodium shim, and mark the sodium extension as 'optional' by @uberbrady in #12525
- Added #12532: add version endpoint by @AndrewSav in #12538
- Fixed translations on the User Creation setup page by @akemidx in #12447
- Adds Boolean to Users Table for Auto Assigning Licenses by @Godmartinz in #12124
- Correct assignedusers relation setting by @nh314 in #11984
- Added images to emailed user inventory report [sc-19801] by @inietov in #12509
- Fixed #12531 Expected Checkin Date on Asset Checkout throws an error by @inietov in #12537
- Properly close tag in mail template by @marcusmoore in #12550
- Fix full company scoping in user selects by @marcusmoore in #12467
- Added a checkbox to notate VIP status by @akemidx in #12406
- Paginate accessories report by @uberbrady in #12410
- Update dompdf by @snipe in #12555
- Fix purchase date field in asset seeder by @marcusmoore in #12556
- Fixed ErrorException: A non-numeric value encountered in app/Models/License [sc-20187] by @inietov in #12558
- Pass the existing asset name to the bulk checkout form by @snipe in #12560
- Fixed #12559 Unable to import Purchase Date field by @inietov in #12561
- Upgrade Acorn by @uberbrady in #12564
- Added max results limit to report index by @snipe in #12572
- Added table aliases to fix ambiguous SQL clause by @snipe in #12573
- Fixed Address in mailbox given does not comply with RFC 2822, 3.6.2. [sc-202022] by @inietov in #12574
- Adding ability to see boolean values when using normal table export by @akemidx in #12582
- Fixed User start and end date throws validation error [sc-20228] by @inietov in #12583
- Convert string to date object for formatting by @snipe in #12584
- Fix license seeder by @marcusmoore in #12585
- Fixed: TypeError: get_class(): Argument #1 ($object) must be of type object, null given by @inietov in #12575
- Added EOL as de-normed and sortable on assets by @snipe in #12393
- Add GitHub Action to push translation sources to Crowdin by @marcusmoore in #12580
- Fixes the sidebar margin top by @Godmartinz in #12579
- Compiled dev assets by @snipe in #12586
- Fixed Undefined variable
$total
by @inietov in #12578 - Updated font-awesome to ^6.3.0 by @snipe in #12589
- Check for array in linux setup by @snipe in #12590
- Actually display name of company in Accessories Report by @uberbrady in #12591
- The 'download activity report' displayed the wrong value for 'admin' (fixes FD-33368) by @uberbrady in #12592
- Added ability to clone location by @snipe in #12593
- Fixed #12601 Error checkin license seats by @inietov in #12602
- enable sortable for ID column by @veenone in #12610
- Fixed #10779: Add Reverse Proxy support to Pre-Flight URL check by @manuteleco in #12611
- Fixed #11800: Include path in the expected URL during Pre-Flight by @manuteleco in #12612
- Fixes depreciation model rule for months by @Godmartinz in #12621
- Suppress SCIMExceptions from cluttering up Rollbar by @uberbrady in #12625
- Check that the file exists before trying to stat it for filesize by @snipe in #12623
- Fix seeder so assets are checked out to users by @marcusmoore in #12626
- Added
vip
andbyod
to importer by @snipe in #12624 - Maintain asset name during import with checkout by @marcusmoore in #12628
- Dynamically determine target route for expected checkin emails by @snipe in #12631
- Fixed 500 when admin erroneously tries to upload a tiff as logo, cleaned up logo upload layout by @snipe in #12633
- Fixed #12249: fix csv importer for serial_number field by @kenchan0130 in #12617
- Fixes unit and feature test suite by @marcusmoore in #12640
- Fixed #12647: fix translation and adds icon on property reassignable by @floschoepfer in #12648
- Fixed #12635 - dashboard category should not show archived by @snipe in #12638
- fixes alerts to notifications in notification settings by @Godmartinz in #12659
- Bumped codacy workflow by @snipe in #12660
- Adds General option to the webhooks settings by @Godmartinz in #12570
- fixes webhook variables to lowercase by @Godmartinz in #12663
- Removed loading and reduced chunking to 10 by @snipe in #12665
- Small visual tweaks to slack/webhook UI by @snipe in #12667
- Fixed Column not found: 1054 Unknown column '0' in 'field list' [sc-20004] by @inietov in #12599
- Catch Duplicate Headers in Asset History Import by @spencerrlongg in #12670
- Fixed Consumable Factory Seeder by @inietov in #12672
- Fixed Component factory by @marcusmoore in #12673
- The final lowercase in webhooks by @Godmartinz in #12664
- Fixed ErrorException: Undefined array key 0 [sc-20424] by @inietov in #12668
- Fixed missing variable in Slack hook test by @snipe in #12674
- Updated webpack by @snipe in #12675
- Fixed #12607 - Datestamp on "Print All Assigned" generated form by @akemidx in #12636
- Handle already-deleted license files more gracefully by @snipe in #12679
- Added additional sort ordering for first_name, last_name in users API by @snipe in #12683
- Added console command to normalize capitalization on names by @snipe in #12684
- Added user merge by @snipe in #12685
- Added email and username to merge user confirmation screen by @snipe in #12686
- Made the table wider, used icons to compact space by @snipe in #12687
- Added password lock restriction and and uses new strings in user merge by @snipe in #12689
- More merge-user polishing by @snipe in #12690
- Small cleanup for bulk delete checkin by @snipe in #12691
- Corrected gates, added fillable by @snipe in #12692
- Updates the Gate “use” statement to be more specific by @snipe in #12693
- Fixed #12671: Re-enable config:cache when there's no Rollbar by @uberbrady in #12694
- Bump docker/build-push-action from 3 to 4 by @dependabot in #12696
- Clone accessories by @akemidx in #12680
- Fixed #12682 - add default location to maintenance report by @snipe in #12701
- Added next audit date override in bulk asset edit by @snipe in #12704
- Purifies model factories by @marcusmoore in #12700
- adds clear and save button, save button updates accordingly by @Godmartinz in #12703
- Slack webhook UI tweaks, added select2 by @snipe in #12705
- Forgot the static method declaration in new isDemoMode method - derp by @snipe in #12706
- Fixes back-in-time Slack v slack migration by @snipe in #12707
- Made asset checkinbytag consistent with existingAPI by @ntbutler-nbcs in #11431
- Ability to remove user location from users by @snipe in #12709
- Livewire importer without subcomponent by @uberbrady in #12708
- Handled a few more hard-coded strings by @snipe in #12710
- #20178: Added Dell and Lenovo to warranty link function by @akemidx in #12669
- Fixes calls to changed webhook properties names by @marcusmoore in #12717
- Fixes the migration of sqlite databases by @marcusmoore in #12721
- Fixed Undefined array key 266 rollbar 17086 by @inietov in #12720
- Fixed Trying to access array offset on value of type null [sc-20528] by @inietov in #12713
- Fixed #12724 - fieldset not saving on model by @snipe in #12726
- Fixed #12655 - Adds translations for category types to index and edit of categories by @Godmartinz in #12661
- Use single “accessory” translation by @snipe in #12728
- Fixed #12641 - added JSON to mimes by @snipe in #12727
- Fixed translation string for importer by @snipe in #12729
- User preflight fix translation strings w/ bad path by @svpernova09 in #12732
- Changed log level to debug vs info/error in the new Livewire importer by @snipe in #12743
- Use named route with params for requestable asset model links by @snipe in #12744
- Pre-Flight String fixes for step 2 by @svpernova09 in #12747
- Added links to kandji2snipe and UnifiSnipeSync by @snipe in #12750
- Added link to SnipeAgent by @snipe in #12751
- Fixed ErrorException: Attempt to read property "rtd_location_id" on null [sc-20562] by @inietov in #12752
- Fixes translation strong for "group not found" error by @snipe in #12753
- Fixes potential unwanted overwrites in asset imports by @marcusmoore in #12764
- Fixed Call to a member function present() on null [sc-20594] by @inietov in #12758
- Bulk Restore from Deleted by @spencerrlongg in #12762
- Updating Apple warranty link to match current Apple webpage by @akemidx in #12760
- Fixed Call to a Member Function Licenses() on null [sc-20606] by @inietov in #12763
- Quick fix for bulk restore menu by @snipe in #12767
- Color picker UI fix by @snipe in #12781
- Publishes test stubs by @marcusmoore in #12769
- Change protected $dates to casts by @spencerrlongg in #12765
- Update CrowdIn configuration to allow nested translations by @marcusmoore in #12782
- Updated support URL by @snipe in #12790
- Fixed #12776 - larger EOL field by @snipe in #12792
- Fixed #12772 - use the APP_URL config more consistently by @snipe in #12793
- Move from iCheck to pure CSS for radio and checkboxes by @snipe in #12779
- Added unavailable message to prevent over-checkout of Accessories by @Godmartinz in #12787
- Fixed accessories verifying that enough remain to be checked out by @snipe in #12800
- Added BM JS by @snipe in #12799
- Translations updated for v6.1.0 by @snipe in #12801
- Check for available quantity on consumables before checkout by @snipe in #12802
- Removed extraneous text from bpay.blade.php by @insert-waffle in #12804
- Small component UI/validation/API fixes by @snipe in #12803
- Echo out the array values in withInput() by @snipe in #12807
New Contributors
- @subdriven made their first contribution in #12158
- @corydlamb made their first contribution in #12363
- @marcusmoore made their first contribution in #12370
- @AndrewSav made their first contribution in #12538
- @manuteleco made their first contribution in #12611
- @kenchan0130 made their first contribution in #12617
- @floschoepfer made their first contribution in #12648
- @spencerrlongg made their first contribution in #12670
Full Changelog: v6.0.14...v6.1.0