Compare commits

...

7644 Commits

Author SHA1 Message Date
snipe
1abd669de5 Refactor custom fields handling for storage
Signed-off-by: snipe <snipe@snipe.net>
2024-07-08 14:00:15 +01:00
snipe
ac9df2fc08 Merge pull request #15043 from snipe/fixes/custom_fields_on_audit
Fixed #15037 - Removed custom fieldsets on auditing - it’s not used (yet)
2024-07-08 13:20:59 +01:00
snipe
eba24b9242 Removed custom fieldsets on auditing - it’s not used
Signed-off-by: snipe <snipe@snipe.net>
2024-07-08 13:19:05 +01:00
snipe
edd61705dc Merge pull request #15027 from snipe/feature/sc-26112/allow_default_avatar
Added #15015 - ability for admins to select default avatar
2024-07-04 17:10:10 +01:00
snipe
3f20e29901 Moved gthe settings for remote loading to the branding section
Signed-off-by: snipe <snipe@snipe.net>
2024-07-04 16:55:47 +01:00
snipe
36ae162626 Changed my mind :)
Signed-off-by: snipe <snipe@snipe.net>
2024-07-04 16:48:05 +01:00
snipe
00f7cb9dbb Reverse the order for default gravatar
Signed-off-by: snipe <snipe@snipe.net>
2024-07-04 16:46:12 +01:00
snipe
1ca3dc26eb Removed extra debugging
Signed-off-by: snipe <snipe@snipe.net>
2024-07-04 16:36:48 +01:00
snipe
2f3be267b3 Added some logic around deleting images
Signed-off-by: snipe <snipe@snipe.net>
2024-07-04 16:33:22 +01:00
snipe
5b8f6910fb Marked tests as incomplete :(
Signed-off-by: snipe <snipe@snipe.net>
2024-07-04 16:33:08 +01:00
snipe
9fe26ba814 Reverted the validation - might have an impact on quickstart setup
Signed-off-by: snipe <snipe@snipe.net>
2024-07-04 13:25:39 +01:00
snipe
5e97ed1c7e Added migration
Signed-off-by: snipe <snipe@snipe.net>
2024-07-04 13:24:11 +01:00
snipe
947fb7af7a Added tests
Signed-off-by: snipe <snipe@snipe.net>
2024-07-04 13:24:03 +01:00
snipe
44bcc157e5 Updated icon
Signed-off-by: snipe <snipe@snipe.net>
2024-07-04 13:23:46 +01:00
snipe
278bf3da13 Updated language
Signed-off-by: snipe <snipe@snipe.net>
2024-07-04 13:23:38 +01:00
snipe
446bc81d3a Updated presenter to use new avatar
Signed-off-by: snipe <snipe@snipe.net>
2024-07-04 13:23:31 +01:00
snipe
9527aac242 Make site name required at the model
Signed-off-by: snipe <snipe@snipe.net>
2024-07-04 13:23:17 +01:00
snipe
c57f1f9d7d Use null coalescence
Signed-off-by: snipe <snipe@snipe.net>
2024-07-04 13:22:56 +01:00
snipe
e372527d13 Added default_avatar to settings
Signed-off-by: snipe <snipe@snipe.net>
2024-07-04 13:22:36 +01:00
snipe
96be1e1275 Removed duplicate locale directive
Signed-off-by: snipe <snipe@snipe.net>
2024-07-04 02:14:10 +01:00
snipe
8ce17d0585 Merge pull request #15025 from snipe/security/upgrade_webpack
Upgrade webpack from 5.91.0 to 5.92.0 #15008
2024-07-04 01:08:17 +01:00
snipe
6af1eaa4e4 Updated webpack to 5.92
Signed-off-by: snipe <snipe@snipe.net>
2024-07-04 01:07:26 +01:00
snipe
da01487301 Merge pull request #15023 from snipe/improvements/optimize_queries_for_user_bulk_actions
Added files column to bulk user delete, optimized queries
2024-07-03 23:45:09 +01:00
snipe
708d7b5fc5 Use icons for consistency
Signed-off-by: snipe <snipe@snipe.net>
2024-07-03 23:43:44 +01:00
snipe
62b5a159a9 Added files column
Signed-off-by: snipe <snipe@snipe.net>
2024-07-03 23:31:09 +01:00
snipe
a6d04509a5 Merge pull request #15016 from snipe/improved_user_merge
Fixed #15005 - Improvements  on user merge
2024-07-03 23:19:50 +01:00
snipe
0071596274 Added upload count
Signed-off-by: snipe <snipe@snipe.net>
2024-07-03 23:18:43 +01:00
snipe
59f66051f8 More eager loading
Signed-off-by: snipe <snipe@snipe.net>
2024-07-03 23:18:37 +01:00
snipe
9f1e59cf78 Marcus’ nitpicks
Signed-off-by: snipe <snipe@snipe.net>
2024-07-03 23:01:41 +01:00
snipe
f1f68b8ef6 Merge pull request #15022 from spencerrlongg/livewire-delete-button
Resolved Potential Issue when Deleting Personal Access Tokens
2024-07-03 22:24:25 +01:00
snipe
f22c3cdda9 Merge pull request #15021 from snipe/fixes/removed_non_counts
Removed non-counts from allowed array
2024-07-03 22:21:17 +01:00
snipe
5e15cc3bbe Added markIncompleteIfSqlite() method
Signed-off-by: snipe <snipe@snipe.net>
2024-07-03 22:18:31 +01:00
spencerrlongg
a6690493b0 resolved 2024-07-03 16:12:55 -05:00
snipe
17a6335d13 Added test
Signed-off-by: snipe <snipe@snipe.net>
2024-07-03 22:12:06 +01:00
akemidx
ca57f6de85 adding in item=>asset, missed in first commit 2024-07-03 17:07:50 -04:00
snipe
aefaabdb1a Removed non-counts from allowed array
Signed-off-by: snipe <snipe@snipe.net>
2024-07-03 21:40:43 +01:00
snipe
9211c8d3b1 Fixed test
Signed-off-by: snipe <snipe@snipe.net>
2024-07-03 20:57:21 +01:00
snipe
eff1980df5 Added console test
Signed-off-by: snipe <snipe@snipe.net>
2024-07-03 20:52:22 +01:00
snipe
1553ba5630 Added null coalescence for admin id in case via cli
Signed-off-by: snipe <snipe@snipe.net>
2024-07-03 20:52:12 +01:00
snipe
ec24120d2a Allow admin to be nullable (for cli)
Signed-off-by: snipe <snipe@snipe.net>
2024-07-03 20:50:35 +01:00
snipe
50df750202 Add merge event
Signed-off-by: snipe <snipe@snipe.net>
2024-07-03 20:50:23 +01:00
snipe
dab4aced48 Renamed test
Signed-off-by: snipe <snipe@snipe.net>
2024-07-03 20:50:09 +01:00
snipe
1774952312 Added additional assertions
Signed-off-by: snipe <snipe@snipe.net>
2024-07-03 20:19:12 +01:00
snipe
d66d6e70a6 Added checkedOutToUser factory for consumables
Signed-off-by: snipe <snipe@snipe.net>
2024-07-03 20:18:53 +01:00
snipe
4635e9269d Added user update log factory
Signed-off-by: snipe <snipe@snipe.net>
2024-07-03 20:18:34 +01:00
snipe
574867536d Standardize query for merging
Signed-off-by: snipe <snipe@snipe.net>
2024-07-03 19:41:34 +01:00
snipe
5488a4d118 One more test
Signed-off-by: snipe <snipe@snipe.net>
2024-07-03 14:36:27 +01:00
snipe
e34f3c7c2c Fixed typo
Signed-off-by: snipe <snipe@snipe.net>
2024-07-03 14:32:41 +01:00
snipe
ceaff7b645 Added tests
Signed-off-by: snipe <snipe@snipe.net>
2024-07-03 14:30:11 +01:00
snipe
d27a025347 Added factories
Signed-off-by: snipe <snipe@snipe.net>
2024-07-03 14:30:06 +01:00
snipe
2b2853a183 Added acceptance model
Signed-off-by: snipe <snipe@snipe.net>
2024-07-03 14:29:58 +01:00
snipe
a25263f868 Transfer files and acceptances on merge
Signed-off-by: snipe <snipe@snipe.net>
2024-07-03 14:29:49 +01:00
snipe
4b9727067b Merge pull request #15010 from snipe/fixes/translation_strings
Added missing translations
2024-07-03 12:43:50 +01:00
snipe
00fc392a12 Added missing traslations
Signed-off-by: snipe <snipe@snipe.net>
2024-07-03 12:41:04 +01:00
snipe
1da90fe1ec Bumped version
Signed-off-by: snipe <snipe@snipe.net>
2024-07-02 09:37:05 +01:00
snipe
25ba50d6f7 Merge pull request #14870 from Galaxy102/feature/rotate-labels
Add Label Template: Use with endless 62mm Brother printer rolls
2024-07-02 08:45:42 +01:00
snipe
f22e99aec8 Merge pull request #14983 from snipe/fixes/use_more_modern_request_syntax_in_blades
Use more modern reference for input text
2024-07-02 08:43:34 +01:00
snipe
f027fd5f21 Merge pull request #14986 from marcusmoore/bug/sc-25926
Fixed extension requirement checking in upgrade script
2024-07-02 08:42:45 +01:00
snipe
37a038c24f Merge pull request #15001 from marcusmoore/features/link-user-table-counts-to-section
Added links on user table to tabs on show user page
2024-07-02 08:37:05 +01:00
Marcus Moore
3a8f825de5 Link user table counts to section in user show 2024-07-01 14:06:05 -07:00
snipe
d2df83cf2f Merge pull request #14999 from marcusmoore/fixes/hide-edit-profile-button
Removed "Edit Your Profile" button from View Assets page if user is not able to edit their profile
2024-07-01 18:15:47 +01:00
Marcus Moore
d481850d4c Add @can around Edit Your Profile button on view assets page 2024-07-01 10:11:27 -07:00
Konstantin Köhring
6c55e2bd9d Add a Brother compatible 62mm wide label.
Tested with QL-600. Set print mode to landscape.
2024-06-28 09:49:53 +02:00
Konstantin Köhring
2fd357c346 Add rotation attribute to Label class to allow rotation of the generated label PDF.
This is necessary when printing labels with width = label width.
2024-06-28 09:49:53 +02:00
Marcus Moore
0a5e58201a Correctly account for "or" dependent extensions in upgrade script 2024-06-27 12:38:50 -07:00
snipe
d687b20467 Use more modern reference for input text
Signed-off-by: snipe <snipe@snipe.net>
2024-06-27 15:05:47 +01:00
snipe
7dbcedad40 Merge pull request #14981 from uberbrady/fix_backup_translations
Fixed #14976, #14975, #14973 - Translation strings aren't always working
2024-06-27 14:36:52 +01:00
snipe
b6e8d28ed3 Merge pull request #14982 from snipe/fixes/check_for_user_on_patch_api
Check that the user exists before trying to fill the request
2024-06-27 14:36:21 +01:00
snipe
85ce47f5bb Updated tests
Signed-off-by: snipe <snipe@snipe.net>
2024-06-27 14:21:27 +01:00
snipe
55c98cc27a Check that the user exists before trying to fill the request
Signed-off-by: snipe <snipe@snipe.net>
2024-06-27 14:05:28 +01:00
snipe
422f3ec81e Updated assets
Signed-off-by: snipe <snipe@snipe.net>
2024-06-27 13:53:38 +01:00
snipe
54fb91c03b Merge pull request #14831 from marcusmoore/chore/sc-23725/livewire3
Updated Livewire to v3
2024-06-27 13:21:52 +01:00
Brady Wetherington
6df9742664 Built a workaround for backup notification translations 2024-06-27 13:17:16 +01:00
snipe
f23a221750 Merge pull request #14942 from snipe/updates/start_moving_from_collective_forms
WIP - First start at switching to regular html labels
2024-06-27 13:12:29 +01:00
snipe
4637accb51 Built assets, bumped version
Signed-off-by: snipe <snipe@snipe.net>
2024-06-26 13:35:24 +01:00
snipe
74f067d893 Merge pull request #14974 from uberbrady/improve_saml_behind_proxy
Fixed #14895 and #14919 - set SAML baseurl to a sensible default for docker users and users behind a reverse proxy
2024-06-26 13:34:18 +01:00
snipe
43773954cd Merge pull request #14966 from Godmartinz/css_issue
Fixed importer table background color
2024-06-26 13:33:14 +01:00
Brady Wetherington
30cafef9f2 Add a reasonable-looking SAML baseurl, mosty for users behind proxies 2024-06-26 13:25:11 +01:00
snipe
251f2d82b3 Updated language strings
Signed-off-by: snipe <snipe@snipe.net>
2024-06-26 12:53:03 +01:00
snipe
e905550778 Merge pull request #14971 from snipe/fixes/updated_translation_string
Fixes #14968 - translate forbidden page
2024-06-26 11:25:51 +01:00
snipe
adee99db34 Fixes #14968 - translate forbidden page
Signed-off-by: snipe <snipe@snipe.net>
2024-06-26 11:21:56 +01:00
Godfrey M
eda2eb2283 fixes all dark modes 2024-06-25 10:24:35 -07:00
Godfrey M
a7123a04ba fixes importer background color 2024-06-25 10:19:18 -07:00
Marcus Moore
8a562f1d15 Bump Livewire to 3.5.1 2024-06-25 10:16:44 -07:00
Marcus Moore
d4861a74df Merge branch 'develop' into chore/sc-23725/livewire3
# Conflicts:
#	composer.lock
2024-06-25 10:15:50 -07:00
snipe
8971cc4b8b Merge pull request #14963 from snipe/fixes/updated_translation_string
Added avif to translation string
2024-06-25 13:45:10 +01:00
snipe
bca6dd41d2 Added avif to translation string
Signed-off-by: snipe <snipe@snipe.net>
2024-06-25 13:39:36 +01:00
snipe
221c4eeb0c Dev assets
Signed-off-by: snipe <snipe@snipe.net>
2024-06-24 21:59:27 +01:00
snipe
bbb1fbfbe8 Bumped version
Signed-off-by: snipe <snipe@snipe.net>
2024-06-24 21:59:09 +01:00
snipe
5a874a90ac Merge pull request #14951 from snipe/features/disallow_profile_editing
Added ability to disallow profile editing
2024-06-24 14:11:48 +01:00
snipe
1c14c2fdef Added gates to controller
Signed-off-by: snipe <snipe@snipe.net>
2024-06-24 14:05:21 +01:00
snipe
73a038afd4 Save new setting
Signed-off-by: snipe <snipe@snipe.net>
2024-06-24 14:03:01 +01:00
snipe
4d55765e28 Added checkbox to settings
Signed-off-by: snipe <snipe@snipe.net>
2024-06-24 14:02:53 +01:00
snipe
2b43f3cb84 Added gate to auth service provider
Signed-off-by: snipe <snipe@snipe.net>
2024-06-24 14:02:40 +01:00
snipe
52c4885335 Added method for checking if the user can edit their own profile
Signed-off-by: snipe <snipe@snipe.net>
2024-06-24 14:02:17 +01:00
snipe
aa5fe52e89 Added gate in blade
Signed-off-by: snipe <snipe@snipe.net>
2024-06-24 14:01:56 +01:00
snipe
ce107dd688 New strings
Signed-off-by: snipe <snipe@snipe.net>
2024-06-24 14:01:39 +01:00
snipe
72affd7a5b Added migration
Signed-off-by: snipe <snipe@snipe.net>
2024-06-24 14:01:31 +01:00
snipe
ba4c51dd68 Removed duplicate key
Signed-off-by: snipe <snipe@snipe.net>
2024-06-24 14:01:25 +01:00
snipe
294fb1f774 Merge pull request #14925 from snipe/fixes/added_2fa_string
Additional translation strings
2024-06-24 12:11:45 +01:00
snipe
a846afe733 Merge pull request #14950 from snipe/localization/updated_strings_20240621
Updated translations
2024-06-24 11:44:06 +01:00
snipe
5fb3cea0bb Updated translations
Signed-off-by: snipe <snipe@snipe.net>
2024-06-24 11:41:20 +01:00
snipe
4ae89c23cd Merge pull request #14947 from snipe/dependabot/github_actions/develop/docker/build-push-action-6
Bump docker/build-push-action from 5 to 6
2024-06-24 11:27:04 +01:00
snipe
3d32fe662b Merge pull request #14949 from snipe/fixes/depreciation_format
Check that there is a depreciation date before formatting
2024-06-24 11:11:43 +01:00
snipe
468674a517 Check that there is a depreciation date before formatting
Signed-off-by: snipe <snipe@snipe.net>
2024-06-24 11:07:41 +01:00
dependabot[bot]
ebe4354a85 Bump docker/build-push-action from 5 to 6
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 5 to 6.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v5...v6)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-24 08:14:34 +00:00
snipe
f47bc5ea7d Updated hardware checkin
Signed-off-by: snipe <snipe@snipe.net>
2024-06-23 19:40:52 +01:00
snipe
427615f627 Fiest start at switching to regular html labels
Signed-off-by: snipe <snipe@snipe.net>
2024-06-23 18:24:23 +01:00
snipe
829b560794 Merge pull request #14941 from snipe/updates/updated_phpunit
Updated PHPunit
2024-06-23 17:43:29 +01:00
snipe
f97a15c5c3 Updated PHPunit
Signed-off-by: snipe <snipe@snipe.net>
2024-06-23 17:33:01 +01:00
snipe
25fcf523e3 Merge pull request #14937 from snipe/fixes/user_improvements
Fixed #14935 - improvements and more tests around user deletion
2024-06-22 21:41:07 +01:00
snipe
c1be94c4ad Added another base test
Signed-off-by: snipe <snipe@snipe.net>
2024-06-22 20:37:49 +01:00
snipe
3a05d72124 Based restore API test
Signed-off-by: snipe <snipe@snipe.net>
2024-06-22 20:35:40 +01:00
snipe
7ec44e46ce Added ability check for restoring users at all
Signed-off-by: snipe <snipe@snipe.net>
2024-06-22 20:35:28 +01:00
snipe
060b17df01 Pulled duplicated test
Signed-off-by: snipe <snipe@snipe.net>
2024-06-22 20:34:49 +01:00
snipe
74c78d7577 Added back in commented out test
Signed-off-by: snipe <snipe@snipe.net>
2024-06-22 20:09:04 +01:00
snipe
1ef0c1adac Fixed tests! And added more!!
Signed-off-by: snipe <snipe@snipe.net>
2024-06-22 20:07:46 +01:00
snipe
c2e649e2bf Fixed small permissions issue
Signed-off-by: snipe <snipe@snipe.net>
2024-06-22 20:07:37 +01:00
snipe
196db9718e Use class name instead
Signed-off-by: snipe <snipe@snipe.net>
2024-06-22 19:55:58 +01:00
snipe
9f5b264e04 Normalize the tests between UI and API
Signed-off-by: snipe <snipe@snipe.net>
2024-06-22 19:51:56 +01:00
snipe
3825f5fb61 Added more permissions tests to user delete UI
Signed-off-by: snipe <snipe@snipe.net>
2024-06-22 19:47:59 +01:00
snipe
e60dbc883c Removed test code
Signed-off-by: snipe <snipe@snipe.net>
2024-06-22 19:42:34 +01:00
snipe
bbbfa91db9 Fixed wonky rule
Signed-off-by: snipe <snipe@snipe.net>
2024-06-22 19:40:26 +01:00
snipe
5ec8e2da66 Breaking tests :(
Signed-off-by: snipe <snipe@snipe.net>
2024-06-22 19:33:44 +01:00
snipe
9e59bd5687 Cleaned up controller code a bit
Signed-off-by: snipe <snipe@snipe.net>
2024-06-22 19:33:36 +01:00
snipe
1d26ccac4e Check for the additional auth for that user
Signed-off-by: snipe <snipe@snipe.net>
2024-06-22 19:33:06 +01:00
snipe
0e2526f627 Removed comment
Signed-off-by: snipe <snipe@snipe.net>
2024-06-22 19:32:49 +01:00
snipe
dd9e9c7a6d Fixed return types
Signed-off-by: snipe <snipe@snipe.net>
2024-06-22 18:49:49 +01:00
snipe
e19922abd0 Cleaned up UI controller
Signed-off-by: snipe <snipe@snipe.net>
2024-06-22 18:49:35 +01:00
snipe
d27bde6047 Added deleted factory for tests
Signed-off-by: snipe <snipe@snipe.net>
2024-06-22 18:36:24 +01:00
snipe
61f76dedc6 Added test
Signed-off-by: snipe <snipe@snipe.net>
2024-06-22 18:36:08 +01:00
snipe
06737f45ad Added test
Signed-off-by: snipe <snipe@snipe.net>
2024-06-22 18:36:02 +01:00
snipe
65e8765bdd Added tests
Signed-off-by: snipe <snipe@snipe.net>
2024-06-22 17:45:42 +01:00
snipe
c6a0212384 Merge remote-tracking branch 'origin/master' into develop 2024-06-22 17:33:12 +01:00
snipe
e03614d91b Added withtrashed back in
Signed-off-by: snipe <snipe@snipe.net>
2024-06-22 16:40:32 +01:00
snipe
b82770d0a8 One more small fix
Signed-off-by: snipe <snipe@snipe.net>
2024-06-22 16:38:29 +01:00
snipe
55e1326164 Fixed #14935 - user does not exist
Signed-off-by: snipe <snipe@snipe.net>
2024-06-22 16:24:18 +01:00
snipe
b0aff68c8b Merge pull request #14934 from snipe/tests/added_workflow_for_php_8_3
Added php 8.3 test
2024-06-21 22:04:05 +01:00
snipe
6a99855c8c Added php 8.3 test
Signed-off-by: snipe <snipe@snipe.net>
2024-06-21 21:47:40 +01:00
snipe
665aa6eb23 Merge pull request #14924 from snipe/fixes/possible_nicer_handling_for_defaultStatusLabel
Possible fix for #14915 - error on import when status label is not provided and no deployable statuses can be found
2024-06-21 21:37:22 +01:00
snipe
42caacbaf9 Merge pull request #14932 from snipe/fixes/small_deprecations
Fixed small deprecation warnings for PHP8.2
2024-06-21 21:26:16 +01:00
snipe
3531256c3f Fixed deprecations
Signed-off-by: snipe <snipe@snipe.net>
2024-06-21 21:06:43 +01:00
snipe
9a0db72eb4 More strings
Signed-off-by: snipe <snipe@snipe.net>
2024-06-20 15:40:38 +01:00
snipe
e11a42cf68 Re-use login string
Signed-off-by: snipe <snipe@snipe.net>
2024-06-20 15:32:00 +01:00
snipe
114769c2d9 Made requestable items more generic in translations
Signed-off-by: snipe <snipe@snipe.net>
2024-06-20 15:26:45 +01:00
snipe
9594596b8a Fixed another hard-coded string
Signed-off-by: snipe <snipe@snipe.net>
2024-06-20 15:22:27 +01:00
snipe
69cf697aa3 Added 2fa translation string
Signed-off-by: snipe <snipe@snipe.net>
2024-06-20 15:20:52 +01:00
snipe
45dbe5cb77 Return the id, not the entire status label
Signed-off-by: snipe <snipe@snipe.net>
2024-06-20 15:05:38 +01:00
snipe
a1ff35f6ce Possible fix for #14915
Signed-off-by: snipe <snipe@snipe.net>
2024-06-20 14:47:46 +01:00
snipe
077a6949e2 docs: add @Tyree as a contributor 2024-06-20 14:42:19 +01:00
snipe
44022f07ca docs: update @bryanlopezinc as a contributor 2024-06-20 14:41:22 +01:00
snipe
30c1e1e86a Merge remote-tracking branch 'origin/develop' 2024-06-20 14:32:46 +01:00
snipe
9a90813877 Merge pull request #14923 from snipe/localizations/updated_strings
Updated language strings
2024-06-20 14:29:13 +01:00
snipe
1113218c6c Updated strings
Signed-off-by: snipe <snipe@snipe.net>
2024-06-20 14:23:15 +01:00
snipe
2556c80250 Merge pull request #14922 from snipe/fixes/incorrect_translation_path
Fixed incorrect translation path
2024-06-20 14:10:32 +01:00
snipe
8f8a5c639b Updated profile translation string path
Signed-off-by: snipe <snipe@snipe.net>
2024-06-20 14:09:25 +01:00
snipe
9e9c37c1e8 Fixed weird linebreaks
Signed-off-by: snipe <snipe@snipe.net>
2024-06-20 14:09:11 +01:00
snipe
6cbdbcb1f1 Merge pull request #14791 from Godmartinz/label-option-limit
Added some  style changes in label field selector for the `DefaultLabel` template
2024-06-20 13:51:49 +01:00
snipe
c8835bf5db Merge remote-tracking branch 'origin/develop' 2024-06-20 13:40:37 +01:00
snipe
6dfedac7a7 Merge pull request #14912 from bryanlopezinc/addIsWritableTest
Add storage path permissions test
2024-06-20 13:38:56 +01:00
snipe
83794eaf33 Merge pull request #14921 from snipe/fixes/14918_added_lastname_dot_firstname
Added lastname.firstname as email format
2024-06-20 13:38:30 +01:00
snipe
bd1f43f9ee Added lastname.firstname as email format
Signed-off-by: snipe <snipe@snipe.net>
2024-06-20 13:36:48 +01:00
snipe
66ffe21ce2 Merge remote-tracking branch 'origin/develop' 2024-06-20 13:09:54 +01:00
snipe
f2e86b7d30 Merge pull request #14920 from snipe/fixes/backup_notifications
Fixed backup notification translations
2024-06-20 13:09:26 +01:00
snipe
5251e6787d Use two-letter fallback code
Ugh, I hate this

Signed-off-by: snipe <snipe@snipe.net>
2024-06-20 12:58:00 +01:00
snipe
856aee0a72 Updated laravel-backup
Signed-off-by: snipe <snipe@snipe.net>
2024-06-20 12:57:35 +01:00
snipe
6b4c71f966 Updated config
Signed-off-by: snipe <snipe@snipe.net>
2024-06-20 12:57:25 +01:00
snipe
dd6d040da5 Added translations
Signed-off-by: snipe <snipe@snipe.net>
2024-06-20 12:56:43 +01:00
bryanlopezinc
203b60383f Added storage path permissions test for SettingsController@getSetupIndex 2024-06-19 17:46:59 +01:00
snipe
61ced0b221 Merge remote-tracking branch 'origin/develop' 2024-06-19 11:41:11 +01:00
snipe
ae7675fee0 Added audit date validation back in
Signed-off-by: snipe <snipe@snipe.net>
2024-06-19 11:37:15 +01:00
snipe
66ed26fbf9 Merge remote-tracking branch 'origin/develop' 2024-06-19 11:13:47 +01:00
snipe
98662c2a77 Merge pull request #14908 from snipe/fixes/importer_audit_date
Fixes/importer audit date
2024-06-19 11:12:12 +01:00
snipe
7099358985 Added accessor/mutator
Signed-off-by: snipe <snipe@snipe.net>
2024-06-19 11:11:50 +01:00
snipe
9a706b3e3e Removed datetime validation
Signed-off-by: snipe <snipe@snipe.net>
2024-06-19 11:05:31 +01:00
snipe
71c9b03779 Fixed incorrect field name
Signed-off-by: snipe <snipe@snipe.net>
2024-06-19 11:05:22 +01:00
snipe
dc7b9315b5 Merge remote-tracking branch 'origin/develop' 2024-06-19 10:35:54 +01:00
snipe
6c17b141db Removed duplicate locations_id search
Signed-off-by: snipe <snipe@snipe.net>
2024-06-19 10:35:21 +01:00
snipe
5d2cca855e Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	config/version.php
2024-06-19 10:31:04 +01:00
snipe
61e10be04d Bumped version
Signed-off-by: snipe <snipe@snipe.net>
2024-06-19 10:29:50 +01:00
snipe
20d5587851 Merge remote-tracking branch 'origin/develop' 2024-06-19 10:23:18 +01:00
snipe
d8eccf03f1 Merge pull request #14896 from snipe/fixes/tls_loading
Possible fix for proxy/reverse proxy
2024-06-19 10:22:36 +01:00
snipe
6e40b58dc5 Merge remote-tracking branch 'origin/develop' 2024-06-19 01:21:52 +01:00
Marcus Moore
30dd8bcf2b Update Livewire 2024-06-18 15:10:59 -07:00
Marcus Moore
f0a11be0b8 Merge branch 'develop' into chore/sc-23725/livewire3
# Conflicts:
#	composer.lock
2024-06-18 15:10:46 -07:00
snipe
b8882fa00e Merge pull request #14900 from marcusmoore/fixes/81-install
Fixed unable to install on PHP 8.1
2024-06-18 21:53:30 +01:00
Marcus Moore
af337b7018 Move debugbar back to dev dependencies but without updating other packages 2024-06-18 09:46:08 -07:00
Marcus Moore
f60267d208 Revert "Reverted debugbar back into require vs require-dev"
This reverts commit ce338c632d.
2024-06-18 09:42:21 -07:00
snipe
a0c844f4f6 Merge remote-tracking branch 'origin/develop' 2024-06-18 16:12:20 +01:00
snipe
7b84b92e72 Merge pull request #14899 from snipe/fixes/revert_debugbar_dev
Fixed #14898 - (regression) Reverted debugbar back into require vs require-dev
2024-06-18 16:09:51 +01:00
snipe
ce338c632d Reverted debugbar back into require vs require-dev
Signed-off-by: snipe <snipe@snipe.net>
2024-06-18 16:06:38 +01:00
snipe
d9f70c16f7 Possible fix proxy/reverse proxy
Signed-off-by: snipe <snipe@snipe.net>
2024-06-18 14:44:35 +01:00
snipe
d0299de898 Merge remote-tracking branch 'origin/develop' 2024-06-18 11:25:55 +01:00
snipe
9380c9ec81 Merge pull request #14894 from snipe/fixes/14882_archived_scoping_on_models
Fixed #14882 - Properly scope archived based on settings
2024-06-18 11:24:55 +01:00
snipe
941582ac2a Properly scope archived based on settings
Signed-off-by: snipe <snipe@snipe.net>
2024-06-18 10:27:11 +01:00
snipe
04560b4475 Merge remote-tracking branch 'origin/develop' 2024-06-18 10:13:57 +01:00
snipe
0b30ad0da2 Removed test file - #14890
Signed-off-by: snipe <snipe@snipe.net>
2024-06-18 10:12:57 +01:00
snipe
cb6ea2c6fb Merge remote-tracking branch 'origin/develop' 2024-06-18 09:59:43 +01:00
snipe
89a5bbb10e Merge pull request #14893 from snipe/fixes/rb_3792_ambiguous_query
Prefaced fields with “users” for clarity
2024-06-18 09:58:44 +01:00
snipe
2f59bb74cd Prefaced fields with “users” for clarity
Signed-off-by: snipe <snipe@snipe.net>
2024-06-18 09:52:41 +01:00
snipe
6c6a3649ea Production assets
Signed-off-by: snipe <snipe@snipe.net>
2024-06-18 09:33:07 +01:00
snipe
05b97db747 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	config/version.php
2024-06-18 09:32:30 +01:00
snipe
543e4c0666 Bumped version file
Signed-off-by: snipe <snipe@snipe.net>
2024-06-18 09:31:49 +01:00
snipe
e28619f769 Bumped papaparse library
Signed-off-by: snipe <snipe@snipe.net>
2024-06-18 09:30:24 +01:00
snipe
4d8c2d3f4e Merge pull request #14886 from marcusmoore/fixes/debugbar
Bumped debugbar from v3.13.0 to v3.13.5 to fix issue with session messages
2024-06-18 09:22:18 +01:00
snipe
f53eeb8b33 Merge pull request #14887 from marcusmoore/fixes/fix-test-namespace
Fixed namespace for ViewUserTest
2024-06-18 09:20:58 +01:00
snipe
aba6d9b338 Merge pull request #14885 from marcusmoore/tests/asset-model-test-improvements
Added more tests around Asset Model
2024-06-18 09:20:45 +01:00
snipe
cd5bef414c Merge pull request #14884 from marcusmoore/fix/actionlogcontroller-fix
Fixed missing `}`
2024-06-18 09:20:26 +01:00
Marcus Moore
4f2d2ae4b8 Fix namespace for ViewUserTest 2024-06-17 16:37:24 -07:00
Marcus Moore
1bd0ab7389 Move barryvdh/laravel-debugbar from require to require-dev 2024-06-17 16:28:08 -07:00
Marcus Moore
8799276c6e Bump debugbar from v3.13.0 to v3.13.5 2024-06-17 16:25:39 -07:00
Marcus Moore
672aabf4ac Add more tests for Asset Model index and store methods 2024-06-17 14:51:59 -07:00
Marcus Moore
796d6909d5 Add missing } 2024-06-17 14:40:06 -07:00
Marcus Moore
a3dea99bbb Fix category edit form component 2024-06-17 14:24:16 -07:00
Marcus Moore
fc351a1896 Remove .live from oauth clients 2024-06-17 13:03:27 -07:00
Marcus Moore
d9164281ab Merge branch 'develop' into chore/sc-23725/livewire3
# Conflicts:
#	resources/views/livewire/oauth-clients.blade.php
2024-06-17 12:57:04 -07:00
snipe
cbb5b6e846 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	config/version.php
2024-06-17 15:58:27 +01:00
snipe
08bd39dbba Bumped version
Signed-off-by: snipe <snipe@snipe.net>
2024-06-17 15:57:32 +01:00
snipe
430808e180 Merge remote-tracking branch 'origin/develop' 2024-06-17 15:52:13 +01:00
snipe
6976dc2b26 Merge pull request #14879 from snipe/fixes/better_ui_for_oauth
Fixed weird layout in admin oauth [sc-25673]
2024-06-17 15:51:11 +01:00
snipe
27063d5bae Fix weird layout in admin oauth [sc-25673]
Signed-off-by: snipe <snipe@snipe.net>
2024-06-17 15:44:07 +01:00
snipe
5be86b9dbb Merge remote-tracking branch 'origin/develop' 2024-06-17 13:43:45 +01:00
snipe
afc78524fc Merge pull request #14877 from snipe/fixes/spatie-backup-config
Updated config
2024-06-17 13:42:02 +01:00
snipe
eb33a2451f Updated config
Signed-off-by: snipe <snipe@snipe.net>
2024-06-17 13:36:52 +01:00
snipe
891a0a0965 Merge branch 'develop' of https://github.com/snipe/snipe-it into develop 2024-06-17 13:05:31 +01:00
snipe
50f0797850 Added aria hidden to icon
Signed-off-by: snipe <snipe@snipe.net>
2024-06-17 13:05:27 +01:00
snipe
36cdf0e0be Merge pull request #14876 from snipe/fixes/small_footer_issues
Fixed small footer issues
2024-06-17 12:53:52 +01:00
snipe
d9cc3c3ec7 Removed extra divs
Signed-off-by: snipe <snipe@snipe.net>
2024-06-17 12:52:23 +01:00
snipe
069a1608de Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	config/version.php
2024-06-17 12:10:13 +01:00
snipe
60accfd601 Bumped version file
Signed-off-by: snipe <snipe@snipe.net>
2024-06-17 12:09:30 +01:00
snipe
b1f2051b43 Merge remote-tracking branch 'origin/develop' 2024-06-17 11:58:11 +01:00
snipe
233e4af7f8 Added base asset models test
Signed-off-by: snipe <snipe@snipe.net>
2024-06-17 11:57:30 +01:00
snipe
dc1b808a28 Fixed static request
Signed-off-by: snipe <snipe@snipe.net>
2024-06-17 11:47:21 +01:00
snipe
91a423e60e Bumped php max version
Signed-off-by: snipe <snipe@snipe.net>
2024-06-17 11:27:55 +01:00
snipe
bd03a6d206 Production assets
Signed-off-by: snipe <snipe@snipe.net>
2024-06-17 11:18:44 +01:00
snipe
d87da78eb5 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	app/Http/Controllers/Users/UsersController.php
#	config/version.php
#	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/js/build/app.js
#	public/js/build/vendor.js
#	public/js/dist/all-defer.js
#	public/js/dist/all.js
#	public/js/dist/bootstrap-table.js
#	public/mix-manifest.json
2024-06-17 11:18:33 +01:00
snipe
f3e82c2c80 Updated languages
Signed-off-by: snipe <snipe@snipe.net>
2024-06-17 10:59:17 +01:00
snipe
569f05a99e Built prod assets
Signed-off-by: snipe <snipe@snipe.net>
2024-06-17 10:45:04 +01:00
snipe
ece7c22df9 Bumped version
Signed-off-by: snipe <snipe@snipe.net>
2024-06-17 10:44:20 +01:00
snipe
4eefd39172 Bumped requirements
Signed-off-by: snipe <snipe@snipe.net>
2024-06-17 10:42:59 +01:00
snipe
daae5d6859 Merge pull request #14724 from phil-flip/develop
Added Proper Docker Compose and .env.docker-setup files
2024-06-16 15:49:15 +01:00
snipe
df76769a29 Merge pull request #14871 from marcusmoore/chore/move-test
Moved `AssetFilesTest`
2024-06-13 23:10:36 +01:00
Marcus Moore
fe72639925 Move AssetFilesTest 2024-06-13 14:25:25 -07:00
Marcus Moore
c3e6e1144f Merge branch 'develop' into chore/sc-23725/livewire3 2024-06-12 15:12:40 -07:00
snipe
cacb5d62dc Merge pull request #14800 from snipe/fixes/importer_tweaks
Importer tweaks
2024-06-12 12:51:11 +01:00
snipe
a8b47a55bc Merge pull request #14801 from snipe/fixes/companyable_trait_on_users
Allow CompanyableTrait trait on users
2024-06-12 12:42:56 +01:00
snipe
3159fdec9f FFS
Signed-off-by: snipe <snipe@snipe.net>
2024-06-12 12:40:43 +01:00
snipe
ea990a5381 Fixed tests
Signed-off-by: snipe <snipe@snipe.net>
2024-06-12 12:31:41 +01:00
snipe
134183ef16 Shuffled tests around again
Signed-off-by: snipe <snipe@snipe.net>
2024-06-12 12:12:15 +01:00
snipe
67ab2536bc Updated test names
Signed-off-by: snipe <snipe@snipe.net>
2024-06-12 12:03:33 +01:00
snipe
756a2ac25c Added API tests
Signed-off-by: snipe <snipe@snipe.net>
2024-06-12 11:58:12 +01:00
snipe
acaceb4103 Moved tests
Signed-off-by: snipe <snipe@snipe.net>
2024-06-12 11:57:50 +01:00
snipe
7e3d66ec53 Merge branch 'develop' into fixes/companyable_trait_on_users 2024-06-12 11:27:26 +01:00
snipe
1ca9bb5aa8 Merge pull request #14698 from Scarzy/features/asset_file_upload_from_api
Added #9413: Asset file upload from API
2024-06-12 11:18:06 +01:00
snipe
c641b733e1 Merge pull request #14834 from bryanlopezinc/AddAppUrlTest
Added test for app url config
2024-06-12 11:14:17 +01:00
snipe
16cf6bc852 Merge pull request #14843 from marcusmoore/chore/sc-25767
Added GitHub workflow for tests in Postgres
2024-06-12 09:53:55 +01:00
Marcus Moore
c51b7d7104 Inline variable 2024-06-10 12:22:23 -07:00
Marcus Moore
5c0ca92fd7 Switch to using workflow_dispatch for PostgreSQL tests 2024-06-10 10:24:10 -07:00
snipe
241e9bc253 Merge pull request #14847 from uberbrady/users_index_api_optimization
Optimization for listings of large numbers of users
2024-06-10 13:57:49 +01:00
Brady Wetherington
c8820adb56 Add two new 'with()' relationships to Users API index query 2024-06-10 13:29:53 +01:00
snipe
0f4c6dd5b0 Merge pull request #14830 from snipe/chore/sc-25756/better_validation_for_relations_on_delete
Better validation for relations on delete
2024-06-07 18:10:41 +01:00
snipe
f8ab9f62f6 Merge pull request #14842 from Godmartinz/adjust-preview-window
Fixed label preview window position
2024-06-07 18:09:56 +01:00
Phil
217ed03b8e add DB_PORT 2024-06-07 12:04:10 +02:00
Godfrey M
77e6058e4c remembers chosen label 2024-06-06 13:55:15 -07:00
Godfrey M
4a60026162 moves preview down by field definitions 2024-06-06 13:42:06 -07:00
Godfrey M
3621292a0e removes unnecessary height 2024-06-06 13:28:05 -07:00
Marcus Moore
6c296ccf8e Use "postgres" instead of "postgres:14" 2024-06-06 13:27:39 -07:00
Godfrey M
6df1c36011 oops 2024-06-06 13:24:02 -07:00
Marcus Moore
924da00f3e Add Postgres GitHub workflow for tests 2024-06-06 13:21:00 -07:00
Godfrey M
44dae22a3c adjust label preview window 2024-06-06 13:18:19 -07:00
bryanlopezinc
d35e251d6e Added test for app url config 2024-06-05 21:46:43 +01:00
snipe
e19d2d6ec9 Merge pull request #14832 from snipe/fixes/added_consumables_to_inventory_email
Fixed #14812 - added consumables to individual inventory report
2024-06-05 20:42:35 +01:00
snipe
871255f28c Fixed #14812 - added consumables to individual inventory report
Signed-off-by: snipe <snipe@snipe.net>
2024-06-05 20:40:45 +01:00
Marcus Moore
9044aa4ed9 Import class 2024-06-05 11:48:47 -07:00
Marcus Moore
60c7efae3c Remove commented code 2024-06-05 11:48:10 -07:00
Marcus Moore
48fc6ca60e Remove commented code 2024-06-05 11:46:57 -07:00
snipe
7ac315e1eb Fixed tests
Signed-off-by: snipe <snipe@snipe.net>
2024-06-05 14:50:45 +01:00
snipe
374c6845d6 Added test if user has assets
Signed-off-by: snipe <snipe@snipe.net>
2024-06-05 14:16:28 +01:00
snipe
c5cbe37007 Added view permissions for the redirects
Signed-off-by: snipe <snipe@snipe.net>
2024-06-05 14:13:51 +01:00
snipe
a2346e4666 Changed numbers
Signed-off-by: snipe <snipe@snipe.net>
2024-06-05 14:09:57 +01:00
snipe
2479ccc4c6 Fixed accessory assignment
Signed-off-by: snipe <snipe@snipe.net>
2024-06-05 14:07:18 +01:00
snipe
64dd8f5d65 Missed a use statement
Signed-off-by: snipe <snipe@snipe.net>
2024-06-05 14:03:33 +01:00
snipe
47420a802a More (failing) tests
Signed-off-by: snipe <snipe@snipe.net>
2024-06-05 14:02:04 +01:00
snipe
5cdb2b7163 Check that the user was not aready deleted
Signed-off-by: snipe <snipe@snipe.net>
2024-06-05 14:00:35 +01:00
snipe
d4c080c7e4 Use the form request on the UI controller
Signed-off-by: snipe <snipe@snipe.net>
2024-06-05 13:40:32 +01:00
snipe
065a47a446 Use the DeleteUser request
Signed-off-by: snipe <snipe@snipe.net>
2024-06-05 13:28:44 +01:00
snipe
5bd9ecb8df Created DeleteUser request
Signed-off-by: snipe <snipe@snipe.net>
2024-06-05 13:28:37 +01:00
snipe
1cdec61be6 Use more modern mutator/accessory syntax
Signed-off-by: snipe <snipe@snipe.net>
2024-06-05 10:56:54 +01:00
snipe
b0ddb26e73 Fixed variable name, $field
Signed-off-by: snipe <snipe@snipe.net>
2024-06-05 10:28:35 +01:00
snipe
181bafd012 Fixed tests
Signed-off-by: snipe <snipe@snipe.net>
2024-06-05 10:28:35 +01:00
snipe
e054fc1ef1 Removed noisy import debugging, made nicer output
Signed-off-by: snipe <snipe@snipe.net>
2024-06-05 10:28:35 +01:00
snipe
9d9ad86dd5 Added mutators and accessors for dates
Signed-off-by: snipe <snipe@snipe.net>
2024-06-05 10:28:35 +01:00
snipe
afe4e5d62e Added date parser
Signed-off-by: snipe <snipe@snipe.net>
2024-06-05 10:28:35 +01:00
snipe
52950f1322 Refactored date parsing
Signed-off-by: snipe <snipe@snipe.net>
2024-06-05 10:28:35 +01:00
snipe
026c80992e Pull the log reference
Signed-off-by: snipe <snipe@snipe.net>
2024-06-05 10:28:35 +01:00
snipe
0ee2b74ff3 Added date parsers for new date fields
Signed-off-by: snipe <snipe@snipe.net>
2024-06-05 10:28:35 +01:00
snipe
3a0f7eca54 Put asset EOL date back in the Item Importer
I have no idea why this is necessary

Signed-off-by: snipe <snipe@snipe.net>
2024-06-05 10:28:35 +01:00
snipe
f4d530b4b1 Removed filename column since it’s never worked
Signed-off-by: snipe <snipe@snipe.net>
2024-06-05 10:28:35 +01:00
snipe
4ccbfb56a4 Make sure the status label is deployable
Signed-off-by: snipe <snipe@snipe.net>
2024-06-05 10:28:35 +01:00
snipe
d02904c9a3 Added new fields
Signed-off-by: snipe <snipe@snipe.net>
2024-06-05 10:28:35 +01:00
snipe
c8279c0b99 Moved asset-only date stuff into the asset importer
Signed-off-by: snipe <snipe@snipe.net>
2024-06-05 10:28:35 +01:00
snipe
f4f184e115 Removed noisy debugging
Signed-off-by: snipe <snipe@snipe.net>
2024-06-05 10:28:35 +01:00
snipe
b2a86e312b Added last_checkout and last_checkin as fillable
Signed-off-by: snipe <snipe@snipe.net>
2024-06-05 10:28:35 +01:00
snipe
9d56617caf Moved expected checkin date on view
Signed-off-by: snipe <snipe@snipe.net>
2024-06-05 10:28:35 +01:00
snipe
de7b8940fe Merge pull request #14828 from fe80/fix/controller-signature-s3
fix(ActionlogController): add missin class Illuminate\Support\Facades…
2024-06-05 09:58:03 +01:00
snipe
09e94ec176 Reordered withTrashed() and find()
Signed-off-by: snipe <snipe@snipe.net>
2024-06-05 09:57:24 +01:00
snipe
832ceeba56 Fixed missing endpush
Signed-off-by: snipe <snipe@snipe.net>
2024-06-05 09:57:10 +01:00
fe80
ea7c3c8485 fix(ActionlogController): add missing class Illuminate\Support\Facades\Storage 2024-06-05 10:55:27 +02:00
snipe
bc36c8074e Merge pull request #14807 from bryanlopezinc/AddTestToCheckEnvVisibility
Added test for .env visibility for setup page
2024-06-05 09:50:54 +01:00
snipe
9fccafa3ac Merge pull request #14816 from uberbrady/hotfix_autoincrement_workaround
Don't save next autoincrement base if it's going to fail, next
2024-06-05 09:47:40 +01:00
snipe
fa083098fc Merge pull request #14819 from snipe/localization/new_strings_2024_06_03
Updated strings
2024-06-05 09:46:41 +01:00
snipe
7688c437c0 Merge pull request #14824 from Godmartinz/select-2-redirect-fix
Fixed select 2 Behavior
2024-06-05 09:46:25 +01:00
snipe
697ac83040 Merge pull request #14825 from marcusmoore/chore/test-organization
Re-organized test suite
2024-06-05 09:46:08 +01:00
snipe
a742105c21 Merge pull request #14827 from fe80/fix/controller-signature-s3
fix(ActionlogController): correct signature image for s3 bucket
2024-06-05 09:40:21 +01:00
fe80
7a76ec9e02 fix(ActionlogController): correct signature image for s3 bucket 2024-06-05 10:08:15 +02:00
Marcus Moore
b2a0e7958b Inject alpine on label engine page 2024-06-04 17:03:36 -07:00
Marcus Moore
99439f0a5c Define property 2024-06-04 16:14:07 -07:00
Marcus Moore
ef91c8123e Remove unneeded re-render of select2 2024-06-04 15:49:57 -07:00
Marcus Moore
5eb5742b3d Define property 2024-06-04 15:49:39 -07:00
Marcus Moore
296cf3e34b Update OauthClients component 2024-06-04 15:37:41 -07:00
Marcus Moore
e98c3f92c1 Update domain name 2024-06-04 10:49:29 -07:00
Marcus Moore
d202dfc225 Organize API tests into domains 2024-06-04 10:48:53 -07:00
Godfrey M
6202f6157a fix select2 behavior 2024-06-04 08:41:00 -07:00
Marcus Moore
b1e8e5389b Make most test names singular 2024-06-03 16:54:59 -07:00
Marcus Moore
95f6381da4 Update tests names to VerbNounTest 2024-06-03 16:53:15 -07:00
Marcus Moore
b07e3b4a91 Remove API from test class name 2024-06-03 16:50:56 -07:00
Marcus Moore
86bd9a2674 Move test method to existing test 2024-06-03 16:49:44 -07:00
Marcus Moore
29a36839aa Move existing API checkin and checkout tests under domain directory 2024-06-03 16:29:53 -07:00
snipe
85cb7c92e7 Updated strings
Signed-off-by: snipe <snipe@snipe.net>
2024-06-03 20:44:40 +01:00
Brady Wetherington
e827bc9a07 Tests on asset tags that are maximum integers and *almost* maximum... 2024-06-03 17:31:56 +01:00
snipe
a6f19a1657 docs: add @U-H-T as a contributor 2024-06-03 17:06:43 +01:00
snipe
6229d0c616 Merge pull request #14758 from U-H-T/features/add_logo_support_for_Brother_TZe24
add logo support for Brother TZe24mm labels
2024-06-03 17:02:18 +01:00
snipe
bc6c969f21 Merge pull request #14814 from snipe/dependabot/github_actions/develop/crowdin/github-action-2
Bump crowdin/github-action from 1 to 2
2024-06-03 16:58:10 +01:00
snipe
8f4ede7785 Merge pull request #14817 from snipe/fixes/hotfix_for_14815
Fixes #14815 - Fixed translation string
2024-06-03 16:48:54 +01:00
snipe
877adb082c Fixed translation string
Signed-off-by: snipe <snipe@snipe.net>
2024-06-03 16:40:52 +01:00
Brady Wetherington
90818bb147 Don't save next autoincrement base if it's going to fail, next 2024-06-03 15:58:57 +01:00
dependabot[bot]
f767a94c84 Bump crowdin/github-action from 1 to 2
Bumps [crowdin/github-action](https://github.com/crowdin/github-action) from 1 to 2.
- [Release notes](https://github.com/crowdin/github-action/releases)
- [Commits](https://github.com/crowdin/github-action/compare/v1...v2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-03 08:18:51 +00:00
bryanlopezinc
89e50b94d3 Fix Failing sqlite test 2024-06-03 08:09:05 +01:00
snipe
c4d97d095f Merge pull request #14809 from snipe/features/more_tests
Added a few more tests
2024-06-01 04:25:19 +01:00
snipe
67fb3f10d5 Tightened up tests with better checks
Signed-off-by: snipe <snipe@snipe.net>
2024-06-01 04:24:47 +01:00
snipe
ea8d390596 MOAR TESTS
Signed-off-by: snipe <snipe@snipe.net>
2024-06-01 04:01:09 +01:00
snipe
cff382605c Fixed some missing strings and checks
Signed-off-by: snipe <snipe@snipe.net>
2024-06-01 04:01:04 +01:00
snipe
52af8afac2 Added company scoping test
Signed-off-by: snipe <snipe@snipe.net>
2024-06-01 03:10:29 +01:00
snipe
03b0268dc2 Fixed typo
Signed-off-by: snipe <snipe@snipe.net>
2024-06-01 03:00:45 +01:00
snipe
c09e93e288 Updated delete users API tests, moved non-API tests
Signed-off-by: snipe <snipe@snipe.net>
2024-06-01 02:59:04 +01:00
snipe
694e3b7f3a Fixed typo
Signed-off-by: snipe <snipe@snipe.net>
2024-06-01 00:42:16 +01:00
snipe
32c367090b Updated test names
Signed-off-by: snipe <snipe@snipe.net>
2024-05-31 23:13:27 +01:00
snipe
abcfe2b757 Derp. Spelling.
Signed-off-by: snipe <snipe@snipe.net>
2024-05-31 23:12:13 +01:00
snipe
f7687008b7 Added more tests
Signed-off-by: snipe <snipe@snipe.net>
2024-05-31 23:10:59 +01:00
snipe
b156264684 Tidied up scoping to be better for testing
Signed-off-by: snipe <snipe@snipe.net>
2024-05-31 23:10:53 +01:00
snipe
3f9a80942e Removed manual companyable from non-API views
Signed-off-by: snipe <snipe@snipe.net>
2024-05-31 23:10:23 +01:00
snipe
dc62e393c3 Hotfix for user permissions
Signed-off-by: snipe <snipe@snipe.net>
2024-05-31 21:22:21 +01:00
snipe
46be0f6610 Merge pull request #14808 from snipe/fixes/small_redirect_tweaks
Small UI tweaks and redirects when asset model is invalid
2024-05-31 20:46:07 +01:00
snipe
dd0a16c3d5 Added tests
Signed-off-by: snipe <snipe@snipe.net>
2024-05-31 20:42:32 +01:00
snipe
a15ed6eaee Wrap disabled <a> links in a span for tooltips
Signed-off-by: snipe <snipe@snipe.net>
2024-05-31 19:29:29 +01:00
snipe
3005565bba Slight tweak to language
Signed-off-by: snipe <snipe@snipe.net>
2024-05-31 19:29:12 +01:00
snipe
cf45e7536f Redirect with error if model is invalid
Signed-off-by: snipe <snipe@snipe.net>
2024-05-31 18:51:58 +01:00
snipe
1d97d95c10 UI and styling tweaks
Signed-off-by: snipe <snipe@snipe.net>
2024-05-31 18:48:34 +01:00
snipe
4a1b1675cb Use storage helper
Signed-off-by: snipe <snipe@snipe.net>
2024-05-31 18:48:09 +01:00
snipe
8c5249ba4b Disable buttons on view page if model is invalid
Signed-off-by: snipe <snipe@snipe.net>
2024-05-31 18:47:53 +01:00
snipe
b936591240 Warn and disable on checkout if model is invalid
Signed-off-by: snipe <snipe@snipe.net>
2024-05-31 18:47:34 +01:00
snipe
76e664d647 Warn and disable the checkout button if model is invalid
Signed-off-by: snipe <snipe@snipe.net>
2024-05-31 18:47:18 +01:00
snipe
0253c2a756 Lauout tweaks, warn and disable button if model is invalid
Signed-off-by: snipe <snipe@snipe.net>
2024-05-31 18:46:57 +01:00
snipe
d27613f55c Updated strings
Signed-off-by: snipe <snipe@snipe.net>
2024-05-31 18:46:41 +01:00
snipe
ca8d478e87 Redirect if model is invalid
Signed-off-by: snipe <snipe@snipe.net>
2024-05-31 18:46:32 +01:00
bryanlopezinc
c63c17d49f Added test for .env visibility for setup page 2024-05-31 17:33:57 +01:00
snipe
801e58d52e Removed manual scoping
Signed-off-by: snipe <snipe@snipe.net>
2024-05-31 06:58:15 +01:00
snipe
06e9625c64 Use hasUser() to avoid table collisions and infinite loop
Signed-off-by: snipe <snipe@snipe.net>
2024-05-31 06:58:07 +01:00
snipe
5800e8d8e9 Added companyable trait
Signed-off-by: snipe <snipe@snipe.net>
2024-05-31 06:57:34 +01:00
snipe
623aa58163 Removed unused statement
Signed-off-by: snipe <snipe@snipe.net>
2024-05-31 06:57:25 +01:00
snipe
45cfec5b29 Merge pull request #14797 from bryanlopezinc/AddTestsForSettings
Added test for setup page
2024-05-31 02:31:35 +01:00
Marcus Moore
5a9a231359 Remove alpinejs 2024-05-30 16:57:20 -07:00
Marcus Moore
1736bf5510 Merge branch 'develop' into chore/sc-23725/livewire3
# Conflicts:
#	app/Livewire/LoginForm.php
#	package.json
#	resources/views/livewire/login-form.blade.php
2024-05-30 16:56:50 -07:00
snipe
ee8931f886 Merge pull request #14799 from marcusmoore/chore/remove-unused-component
Removed unused Livewire component
2024-05-31 00:54:43 +01:00
Marcus Moore
1a1b891309 Remove unused Login Livewire component 2024-05-30 16:49:05 -07:00
Marcus Moore
2eaac3d381 Fix select2 re-renders 2024-05-30 16:20:04 -07:00
Marcus Moore
f03249898a Update id syntax in custom fields component 2024-05-30 16:12:52 -07:00
snipe
0981cfa902 Built assets
Signed-off-by: snipe <snipe@snipe.net>
2024-05-30 20:22:50 +01:00
snipe
37fbcfa22b Merge pull request #14798 from Godmartinz/redirect_back_to_asset_fix
Fixed checkin option from appearing
2024-05-30 19:41:02 +01:00
Godfrey M
0ee441a976 adds hidden as well 2024-05-30 11:19:06 -07:00
Godfrey M
cf8de3baa9 fix checkin option from appearing 2024-05-30 11:11:35 -07:00
bryanlopezinc
404ee238a3 Added test for setup page 2024-05-30 14:37:24 +01:00
snipe
5a5d171ba2 Put session facade back - derp
Signed-off-by: snipe <snipe@snipe.net>
2024-05-30 14:15:08 +01:00
snipe
aadee068b3 Merge pull request #14740 from Godmartinz/redirect_back_to_asset
Added Redirect options to asset check in/out
2024-05-30 14:14:04 +01:00
snipe
a46e2ebfd8 Small tweaks to user export, user view translations
Signed-off-by: snipe <snipe@snipe.net>
2024-05-30 13:59:00 +01:00
snipe
f710b1aac3 Merge pull request #14614 from akemidx/feature/sc-19796
ADDED: Export User Permissions (Superuser & Admin)
2024-05-30 13:41:26 +01:00
snipe
f6fe6e70b9 Merge branch 'develop' into redirect_back_to_asset 2024-05-30 13:38:11 +01:00
snipe
bed8861179 Merge pull request #14796 from snipe/chore/sc-25715/axios
Upgraded axios
2024-05-30 13:17:23 +01:00
snipe
180d7b1b5b Upgraded axios
Signed-off-by: snipe <snipe@snipe.net>
2024-05-30 13:13:25 +01:00
snipe
386416ee5d Merge pull request #14795 from snipe/bug/sc-25687/papaparse
Upgraded papaparse
2024-05-30 13:04:00 +01:00
snipe
6b5aa91f3d Upgraded papaparse
Signed-off-by: snipe <snipe@snipe.net>
2024-05-30 13:00:57 +01:00
Marcus Moore
e80b80f5d1 Remove manual livewire tags 2024-05-29 16:04:05 -07:00
Marcus Moore
9e35441281 Importer fixes 2024-05-29 15:50:42 -07:00
Godfrey M
e28ad50bec fixes the color change 2024-05-29 15:34:08 -07:00
Scarzy
f48c5ee252 Fix an error message 2024-05-29 22:32:45 +01:00
Scarzy
98a94dec29 Change some errors to be 404
The asset or file was not found, so 500 wasn't the best choice of error
code
2024-05-29 22:17:36 +01:00
Marcus Moore
7d95e7765d Add a few .prevents 2024-05-29 14:13:29 -07:00
Marcus Moore
ee75b30683 Enable legacy_model_binding 2024-05-29 14:06:27 -07:00
Scarzy
ca9d4e3155 Get the tests for download and delete working 2024-05-29 22:01:49 +01:00
Scarzy
633bcbb6c4 Get the file upload test working
Added the upload functionality to the get and delete tests, but I
currently don't seem to be able to reference the correct file ID
2024-05-29 22:01:49 +01:00
Scarzy
2d4af61e6c Begin to add some tests
There is currently only really a test for listing, and only for the
empty list response
2024-05-29 22:01:49 +01:00
Scarzy
45329912e6 Give a better response to listing no files on an asset
HTTP500 was never a good choice. Now it sends back an empty array
2024-05-29 22:01:49 +01:00
Scarzy
b9d56a8ecc Fix some routes
Names of some of the routes overlapped with others in an incompatible
way. This makes the names more distinct
2024-05-29 22:01:48 +01:00
Scarzy
91c1e53e52 Fix the test file location 2024-05-29 22:01:48 +01:00
Scarzy
73a87a8ea8 Add the framework of a test 2024-05-29 22:01:48 +01:00
Scarzy
bb0a614c39 Update some comments 2024-05-29 22:01:48 +01:00
Scarzy
f11ea79406 Add some sanity checks that the asset actually exists 2024-05-29 22:01:48 +01:00
Scarzy
e817b20840 Fix some responses to be more appropriate
Error/success was mixed up
2024-05-29 22:01:48 +01:00
Scarzy
516f766a44 Remove some debug code 2024-05-29 22:01:48 +01:00
Scarzy
f5791c79a5 Change the returns to be API appropriate 2024-05-29 22:01:48 +01:00
Scarzy
f6a1a76095 Add an endpoint for deleting a file 2024-05-29 22:01:48 +01:00
Scarzy
bbb9145744 Add an API endpoint to download files 2024-05-29 22:01:48 +01:00
Scarzy
194853d860 Remove a redundant line 2024-05-29 22:01:48 +01:00
Scarzy
92670d5711 Add the ability to list files for an asset 2024-05-29 22:01:48 +01:00
Scarzy
8a2ea971e1 Add an API assets files controller
Based heavily on the Assets assets files controller.
Added errors related to to the files management.
Added the API endpoints for file upload and show, but only upload is
currently tested/works.
2024-05-29 22:01:48 +01:00
Marcus Moore
8d924b60d7 Replace references to @this in importer 2024-05-29 13:51:57 -07:00
Marcus Moore
34595c266d Update script tag 2024-05-29 13:16:30 -07:00
Marcus Moore
638ae9bdd5 Use new id method 2024-05-29 13:15:59 -07:00
Godfrey M
713ce7836f add some css in label field selector 2024-05-29 13:07:33 -07:00
Marcus Moore
093c6652a8 Update select2 snippet for Livewire 3 2024-05-29 12:58:24 -07:00
Marcus Moore
17f0ac1eae Set view correctly 2024-05-29 12:57:43 -07:00
Marcus Moore
43616d1874 Remove alpine reference from webpack 2024-05-29 12:30:20 -07:00
Marcus Moore
9dc4f2ca80 Migrate config 2024-05-29 12:24:17 -07:00
Marcus Moore
73e3ac7dd8 Migrate to $dispatch 2024-05-29 12:18:31 -07:00
Marcus Moore
8ff639913d Migrate away from dispatchBrowserEvent() 2024-05-29 12:17:36 -07:00
Marcus Moore
45419586fe Migrate away from wire:model.prevent 2024-05-29 12:11:33 -07:00
Marcus Moore
d8a480b2a8 Migrate to wire:model.blur 2024-05-29 12:11:02 -07:00
Marcus Moore
29d87246a2 Migrate away from wire:model.defer 2024-05-29 12:10:46 -07:00
Marcus Moore
58e638d3cb Migrate to wire:model.live 2024-05-29 12:08:25 -07:00
Marcus Moore
b52380f376 Migrate to new namespace 2024-05-29 12:07:48 -07:00
Marcus Moore
4ae74fb7f6 Remove alpinejs from package.json 2024-05-29 12:06:54 -07:00
Marcus Moore
7d1acd3d79 Update Livewire via composer 2024-05-29 12:04:06 -07:00
snipe
12e107a71b Merge pull request #13062 from ak-piracha/feature/snipe-12892-bulk-consumable-checkout
Bulk Consumable Checkout
2024-05-29 19:42:25 +01:00
snipe
fba72e1e8d Merge pull request #14789 from snipe/fixes/14781_broken_wrench_icon
Fixed #14781 - Fixed broken wrench icon on some browsers in manufacturer section
2024-05-29 19:23:21 +01:00
snipe
7bbee053c6 Updated fa icon call
Signed-off-by: snipe <snipe@snipe.net>
2024-05-29 19:19:45 +01:00
snipe
6ea1a3bacf Merge pull request #14788 from snipe/security/Snyk-Upgrade-jquery-ui-from-1.13.2-to-1.13.3-#14735
Updated jquery-UI
2024-05-29 18:47:39 +01:00
snipe
603afe4466 Updated jquery-UI
Signed-off-by: snipe <snipe@snipe.net>
2024-05-29 18:44:39 +01:00
snipe
037ee8c07a Merge pull request #14787 from snipe/fixes/return_redirect_fixes_for_docblock
Fixes path for redirect response
2024-05-29 18:28:00 +01:00
snipe
df1cef59d5 Fixes path for redirect response
Signed-off-by: snipe <snipe@snipe.net>
2024-05-29 18:01:40 +01:00
snipe
3fcd196c04 Merge pull request #14786 from snipe/security/upgrade_bs_tables
#14743 - Upgrade bootstrap-table from 1.22.3 to 1.22.5
2024-05-29 13:12:07 +01:00
snipe
8ee5e7cd0a #14743 - Upgrade bootstrap-table from 1.22.3 to 1.22.5
Signed-off-by: snipe <snipe@snipe.net>
2024-05-29 13:10:46 +01:00
snipe
1ec85063ee Merge pull request #14785 from snipe/fixes/updates_facade_paths
Fixed/updated facade paths
2024-05-29 13:03:13 +01:00
snipe
92ba889cae Updated/removed facades
Signed-off-by: snipe <snipe@snipe.net>
2024-05-29 12:53:51 +01:00
snipe
f17162c2e2 Use artisan facade
Signed-off-by: snipe <snipe@snipe.net>
2024-05-29 12:40:05 +01:00
snipe
fb233c0aa4 Cleaned up facade names and references
Signed-off-by: snipe <snipe@snipe.net>
2024-05-29 12:38:15 +01:00
snipe
369c819a27 Merge pull request #14754 from Godmartinz/footer_user_bug
Removed extra div from User Details.
2024-05-29 11:29:02 +01:00
snipe
f1eb4bd3a5 Merge pull request #14349 from snipe/jerm/update-mailer-configs
Update mailer configurations for Symfony mailer
2024-05-29 11:25:55 +01:00
snipe
2f828683da Merge pull request #14783 from snipe/fixes/fixed_category_test_depreciation_warning
Fixed deprecation warning on category test
2024-05-29 11:19:31 +01:00
snipe
13db151297 Fixed deprecation warning on category test
Signed-off-by: snipe <snipe@snipe.net>
2024-05-29 11:06:51 +01:00
snipe
bb95c231e5 Merge branch 'develop' of https://github.com/snipe/snipe-it into develop 2024-05-29 10:55:12 +01:00
snipe
dcea14fb99 Merge pull request #14778 from uberbrady/fix_8_3_compat
Allows Snipe-ITv7 to install on PHPv8.1-8.3
2024-05-29 10:55:02 +01:00
snipe
282fed27da Add @bryanlopezinc as a contributor 2024-05-29 10:46:59 +01:00
snipe
cf3ffe9c74 Merge pull request #14782 from bryanlopezinc/ReduceIDeErrors
Reduce IDE errors in App\Http\Controllers\SettingsController
2024-05-29 10:46:03 +01:00
bryanlopezinc
5d01a06245 Reduce IDE errors in App\Http\Controllers\SettingsController 2024-05-29 08:07:49 +01:00
snipe
02cdda56e2 Merge branch 'develop' of https://github.com/snipe/snipe-it into develop 2024-05-29 02:00:25 +01:00
snipe
ffecd97665 Bumped laravel in readme
Signed-off-by: snipe <snipe@snipe.net>
2024-05-29 02:00:21 +01:00
snipe
779cf9418e Merge pull request #14780 from marcusmoore/fixes/sqlite-tests-in-gh
Fixed sqlite tests in GitHub Actions
2024-05-29 01:59:12 +01:00
Marcus Moore
34b4452645 Skip "migrating" and run passport:keys for sqlite testing in GH 2024-05-28 17:41:01 -07:00
snipe
da1c4c23e6 Merge branch 'develop' of https://github.com/snipe/snipe-it into develop 2024-05-29 00:26:37 +01:00
snipe
a5d0a21757 Fixed string path
Signed-off-by: snipe <snipe@snipe.net>
2024-05-29 00:26:33 +01:00
snipe
29454f7288 Merge pull request #14779 from marcusmoore/fixes/fix-group-create-endpoint
Fixed Array to string conversion exception in group create api endpoint
2024-05-28 23:26:34 +01:00
Brady Wetherington
e271711c5b Added the clock-lts repo which allows use on php8.1-8.3 2024-05-28 22:50:09 +01:00
Marcus Moore
4c78da3bbf Re-add json encoding of permissions 2024-05-28 13:03:09 -07:00
Marcus Moore
71bab2c315 Improve test case 2024-05-28 13:02:44 -07:00
snipe
fceba13b03 Merge pull request #14777 from snipe/fixes/reportscontroller_optimizations
Reports controller query optimizations
2024-05-28 18:08:27 +01:00
snipe
8ac3937bf4 Commented model loading on asset model
Signed-off-by: snipe <snipe@snipe.net>
2024-05-28 18:03:19 +01:00
snipe
1c1729854e Use statics for location, supplier, etc
Signed-off-by: snipe <snipe@snipe.net>
2024-05-28 18:02:22 +01:00
snipe
14c78d9065 Use static for custom fields
Signed-off-by: snipe <snipe@snipe.net>
2024-05-28 18:02:09 +01:00
snipe
b1cb9259da Re-use total to avoid duplicate count
Signed-off-by: snipe <snipe@snipe.net>
2024-05-28 18:01:47 +01:00
snipe
7d2af61989 Merge pull request #14775 from snipe/bug/sc-25676/groups_api
Fixed #14771: improvements to groups API
2024-05-28 15:33:36 +01:00
snipe
03b5c2e246 Fixed bad translation string
Signed-off-by: snipe <snipe@snipe.net>
2024-05-28 15:21:28 +01:00
snipe
33d5d5e24f Added tests
Signed-off-by: snipe <snipe@snipe.net>
2024-05-28 15:21:13 +01:00
snipe
3df2a4a70b Removed debugging
Signed-off-by: snipe <snipe@snipe.net>
2024-05-28 15:16:44 +01:00
snipe
6b41970e97 Check that selected is an array
Signed-off-by: snipe <snipe@snipe.net>
2024-05-28 15:15:31 +01:00
snipe
92eb6eb1b6 Add unique constraint to name
Signed-off-by: snipe <snipe@snipe.net>
2024-05-28 15:09:31 +01:00
snipe
206238e83f Merge pull request #14773 from snipe/bug/sc-25674/location_currency_on_edit
Pass accessory's currency if set by location
2024-05-28 10:29:20 +01:00
snipe
df882bbcbc Pass item’s currency if set by location
Signed-off-by: snipe <snipe@snipe.net>
2024-05-28 10:24:10 +01:00
snipe
6c1c3a99dd Bumped current_snipeit_version
Signed-off-by: snipe <snipe@snipe.net>
2024-05-27 19:22:24 +01:00
snipe
54067ec449 Fixed pre-version in version.php
Signed-off-by: snipe <snipe@snipe.net>
2024-05-27 18:21:46 +01:00
snipe
4c11e97922 Bumped version to dev, bumped hash
Signed-off-by: snipe <snipe@snipe.net>
2024-05-27 18:20:32 +01:00
Brady Wetherington
8df9007a8e Merge branch 'snipeit_v7_laravel10' into develop 2024-05-27 18:08:27 +01:00
snipe
702b944698 Merge remote-tracking branch 'origin/develop' 2024-05-27 15:46:07 +01:00
snipe
172d24fd3c Merge pull request #14770 from uberbrady/add_locations_parent_index
Add index to 'parent_id' for users with large number of locations
2024-05-27 15:43:49 +01:00
Brady Wetherington
28b450fd3c Add index to 'parent_id' for users with large number of locations 2024-05-27 15:38:42 +01:00
snipe
485caf1d92 Merge pull request #14755 from marcusmoore/chore/sc-25103/add-tests-around-asset-checkout
Added tests around asset checkout
2024-05-25 11:33:33 +01:00
snipe
29cd75a6d2 Merge pull request #14766 from snipe/chore/sc-25656/minus_icon_for_fieldsets
Changed icon, added translation
2024-05-25 11:19:56 +01:00
snipe
b3fe10baa8 Merge branch 'snipeit_v7_laravel10' into chore/sc-25656/minus_icon_for_fieldsets 2024-05-25 11:19:43 +01:00
snipe
093cc9faf0 Merge pull request #14767 from snipe/chore/sc-25657/improved-translations
Improved translations
2024-05-25 11:19:14 +01:00
snipe
be4e809254 Merge pull request #14762 from marcusmoore/chore/update-v7-test
Fixed test by removing non-existent trait
2024-05-25 11:18:54 +01:00
snipe
dc5e15f919 Added translation for external link
Signed-off-by: snipe <snipe@snipe.net>
2024-05-25 11:02:07 +01:00
snipe
ad7b291062 Added translations
Signed-off-by: snipe <snipe@snipe.net>
2024-05-25 10:55:48 +01:00
snipe
b54c1caa74 Improved translation
Signed-off-by: snipe <snipe@snipe.net>
2024-05-25 10:43:28 +01:00
snipe
c3cf123189 Better translation for custom fields
Signed-off-by: snipe <snipe@snipe.net>
2024-05-25 10:39:47 +01:00
snipe
3a2900621c Changed icon, added translation
Signed-off-by: snipe <snipe@snipe.net>
2024-05-25 10:20:52 +01:00
Marcus Moore
639cbf6d53 Remove passport:install command 2024-05-23 15:56:58 -07:00
Marcus Moore
e03b5754a8 Combine steps 2024-05-23 15:54:32 -07:00
Marcus Moore
4ce86a061f Set DB_CONNECTION 2024-05-23 15:43:59 -07:00
Marcus Moore
fa6e170feb Install passport 2024-05-23 14:01:06 -07:00
Marcus Moore
51f72daba1 Debugging step 2024-05-23 13:55:03 -07:00
Marcus Moore
a130033480 Revert "Add Install Passport step"
This reverts commit ef95ede833.
2024-05-23 12:45:38 -07:00
Marcus Moore
ef95ede833 Add Install Passport step 2024-05-23 12:32:34 -07:00
Marcus Moore
d06e5f25b0 Remove old trait from test 2024-05-23 11:51:08 -07:00
U-H-T
2777ac96cc add logo support for Brother TZe24mm labels 2024-05-23 11:10:23 +02:00
snipe
fd42f1ef24 Merge remote-tracking branch 'origin/develop' 2024-05-23 08:39:31 +01:00
snipe
8b3ff5a82d Handle potentially deleted admin users in license export
Signed-off-by: snipe <snipe@snipe.net>
2024-05-23 08:39:15 +01:00
Marcus Moore
482ebfbb68 Implement test 2024-05-22 17:21:29 -07:00
Marcus Moore
67c4fa2966 Improve event assertions 2024-05-22 17:14:10 -07:00
Marcus Moore
a3389a31cd Update test name and add todo 2024-05-22 17:10:16 -07:00
Marcus Moore
8d74a976a1 Merge branch 'develop' into chore/sc-25103/add-tests-around-asset-checkout 2024-05-22 16:09:27 -07:00
Marcus Moore
6d104251b3 Remove todo 2024-05-22 15:40:54 -07:00
Marcus Moore
f16c79bb9a Improve event assertions 2024-05-22 15:38:23 -07:00
Marcus Moore
1fe22e4b7b Re-order scenarios 2024-05-22 13:33:41 -07:00
Marcus Moore
c7fa2c04ad Add scenario 2024-05-22 13:33:12 -07:00
Marcus Moore
8ca882d1c8 Complete a scenario 2024-05-22 13:23:49 -07:00
Marcus Moore
5d368990dc Fix assertion 2024-05-22 13:15:51 -07:00
Brady Wetherington
4adbd7af4c Merge branch 'develop' into snipeit_v7_laravel10 2024-05-22 21:02:11 +01:00
Marcus Moore
1935a4aca3 Improve scenario naming 2024-05-22 12:47:33 -07:00
Godfrey M
c4d96f6ea3 removed extra div 2024-05-22 12:35:32 -07:00
snipe
986d5641f6 Merge remote-tracking branch 'origin/develop' 2024-05-22 18:39:25 +01:00
snipe
e163d5cfc7 Merge pull request #14753 from snipe/chore/sc-24895/add_exif_to_upgrade_php_file
Added exif to required extensions
2024-05-22 18:31:47 +01:00
snipe
b1e7c772ae Added exif to required extensions
Signed-off-by: snipe <snipe@snipe.net>
2024-05-22 18:27:52 +01:00
snipe
dce1854ac4 Merge remote-tracking branch 'origin/develop' 2024-05-22 18:04:53 +01:00
snipe
c4b4923ff8 Add @LeePorte as a contributor 2024-05-22 18:04:24 +01:00
snipe
c20d10d4f2 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	config/version.php
2024-05-22 17:50:14 +01:00
snipe
b0479d543d Merge branch 'develop' of https://github.com/snipe/snipe-it into develop 2024-05-22 17:49:33 +01:00
snipe
81704c1d40 Bumped version
Signed-off-by: snipe <snipe@snipe.net>
2024-05-22 17:49:29 +01:00
snipe
d3798bf251 Merge pull request #14752 from snipe/fixes/better_handle_data_file_mismatch_in_user_files
Nicer handling of erroring when filename+log do not match
2024-05-22 17:47:39 +01:00
snipe
4bb7c1701f Fiddled with storage facade a little more
Signed-off-by: snipe <snipe@snipe.net>
2024-05-22 17:44:49 +01:00
snipe
5fd0f56258 Use proper storage facade for checking if the file exists
Signed-off-by: snipe <snipe@snipe.net>
2024-05-22 17:38:49 +01:00
snipe
37d7e89e93 Fixed error message
Signed-off-by: snipe <snipe@snipe.net>
2024-05-22 17:29:43 +01:00
snipe
3ab197075a Nicer handling of erroring when filename+log do not match
Signed-off-by: snipe <snipe@snipe.net>
2024-05-22 17:20:03 +01:00
Brady Wetherington
12e8ac8b41 Merge pull request #14751 from uberbrady/docker-permissions-fix-rebased
Fixed #12299: permissions on storage dir in Docker (rebased)
2024-05-22 16:57:35 +01:00
Lee Porte
6783dc1312 Fixed #12299: permissions on storage dir in Docker
Fixes #12299, where currently there is no recursive permissions set on
/var/www/html/storage/ during build time. As a result this requires
users to run an exec into the container and change the permissions
before they are able to initiate the setup. Without this a 500 error is
thrown and little is evident in the docker logs as to what the issue
is.
2024-05-22 16:54:07 +01:00
snipe
b489c71fa2 Removed generated file
Signed-off-by: snipe <snipe@snipe.net>
2024-05-22 13:09:02 +01:00
snipe
cf5f6f9b13 Created by OWASP Threat Dragon 2024-05-22 13:06:32 +01:00
snipe
860432acc5 Merge remote-tracking branch 'origin/develop' 2024-05-22 12:45:26 +01:00
snipe
c9f7847fb3 Merge pull request #14745 from snipe/fixes/self_api_endpoint
Refactor group syncing on user edit API endpoint
2024-05-22 12:43:22 +01:00
snipe
6fad085a7d Removed debug in test
Signed-off-by: snipe <snipe@snipe.net>
2024-05-22 12:37:49 +01:00
snipe
4b23ef4021 Added new test
Signed-off-by: snipe <snipe@snipe.net>
2024-05-22 12:35:03 +01:00
snipe
bb96a190fd Moved validator
Signed-off-by: snipe <snipe@snipe.net>
2024-05-22 12:34:48 +01:00
snipe
e1eb457f3d Update tests/Feature/Api/Users/UpdateUserApiTest.php
Co-authored-by: Marcus Moore <contact@marcusmoore.io>
2024-05-22 11:03:46 +01:00
snipe
51025aad57 Update tests/Feature/Api/Users/UpdateUserApiTest.php
Co-authored-by: Marcus Moore <contact@marcusmoore.io>
2024-05-22 11:03:38 +01:00
snipe
14c4765be2 Update tests/Feature/Api/Users/UpdateUserApiTest.php
Co-authored-by: Marcus Moore <contact@marcusmoore.io>
2024-05-22 11:00:52 +01:00
snipe
3afe996755 Update tests/Feature/Api/Users/UpdateUserApiTest.php
Co-authored-by: Marcus Moore <contact@marcusmoore.io>
2024-05-22 11:00:47 +01:00
snipe
0891bd747a Update tests/Feature/Api/Users/UpdateUserApiTest.php
Co-authored-by: Marcus Moore <contact@marcusmoore.io>
2024-05-22 11:00:31 +01:00
Godfrey M
f2693ee957 conditionally fixed redirect select option 2024-05-21 14:08:35 -07:00
Godfrey M
0327e71f0f made message the keys, cleaned up array 2024-05-21 13:26:29 -07:00
Godfrey M
69c2cf2c4f fixed assetcheckin test, created redirect option test 2024-05-21 13:13:25 -07:00
Godfrey M
9f02be0823 removed extra div 2024-05-21 10:15:18 -07:00
Godfrey M
b5553af8ed rename variable 2024-05-21 10:11:53 -07:00
Godfrey M
4d6f4303f5 fixed partial up 2024-05-21 10:11:01 -07:00
snipe
34f1ea1c0e Re-order gating and refactor group syncing
Signed-off-by: snipe <snipe@snipe.net>
2024-05-21 10:00:49 +01:00
snipe
e3561ad38e Added tests
Signed-off-by: snipe <snipe@snipe.net>
2024-05-21 09:56:57 +01:00
snipe
a7ccf0efff Added translation
Signed-off-by: snipe <snipe@snipe.net>
2024-05-21 09:56:51 +01:00
snipe
f422c2ecad Merge pull request #14741 from Godmartinz/footer-issue
removed extra div tags
2024-05-20 20:44:27 +01:00
Godfrey M
db9c435ae0 removed extra div tags 2024-05-20 10:48:57 -07:00
Godfrey M
a53f89cd2c remove license checkout changes p2 2024-05-20 10:26:45 -07:00
Godfrey M
280c03dcad remove license checkout changes 2024-05-20 10:25:59 -07:00
Godfrey M
e70fb42f87 remove license redirects 2024-05-20 10:22:01 -07:00
Brady Wetherington
f633dbba64 Merge branch 'develop' into snipeit_v7_laravel10 2024-05-20 12:55:29 +01:00
snipe
cc0f2d7074 Merge remote-tracking branch 'origin/develop' 2024-05-20 11:22:34 +01:00
snipe
a820f248c8 Merge pull request #14736 from snipe/fixes/small_translation_additions
Fixes/small translation additions
2024-05-20 11:21:47 +01:00
snipe
6a6272ace3 Translate no records found message
Signed-off-by: snipe <snipe@snipe.net>
2024-05-20 11:19:47 +01:00
snipe
bcb747f886 Added string
Signed-off-by: snipe <snipe@snipe.net>
2024-05-20 11:19:37 +01:00
snipe
771c85e347 Translated account save message
Signed-off-by: snipe <snipe@snipe.net>
2024-05-20 11:19:31 +01:00
snipe
e5c358a1fe Merge pull request #14731 from snipe/features/csp_env
Fixed #14664 - allow additional urls in env for CSP
2024-05-16 22:25:11 +01:00
snipe
52c906f6b8 Added to env.example
Signed-off-by: snipe <snipe@snipe.net>
2024-05-16 22:21:52 +01:00
snipe
ca1555d962 Fixed #14664 - allow additional urls in env for CSP
Signed-off-by: snipe <snipe@snipe.net>
2024-05-16 22:19:18 +01:00
snipe
0d4f13219b Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	config/version.php
2024-05-16 22:00:07 +01:00
snipe
7fdbbc846e Bumped hash
Signed-off-by: snipe <snipe@snipe.net>
2024-05-16 21:59:38 +01:00
snipe
dbbbb103a0 Merge pull request #14730 from snipe/localizations/updated_strings
Updated translations
2024-05-16 21:58:24 +01:00
snipe
2182ea1ce8 Updated translations
Signed-off-by: snipe <snipe@snipe.net>
2024-05-16 21:57:19 +01:00
snipe
f2cc9ec1dd Merge remote-tracking branch 'origin/develop' 2024-05-16 19:57:46 +01:00
snipe
54b24434e1 Set file name variable
Signed-off-by: snipe <snipe@snipe.net>
2024-05-16 19:56:58 +01:00
snipe
653ad562a4 Updated codacy link
Signed-off-by: snipe <snipe@snipe.net>
2024-05-16 18:56:44 +01:00
snipe
7743b03129 Merge remote-tracking branch 'origin/develop' 2024-05-16 18:51:27 +01:00
snipe
84a601f364 Merge pull request #14729 from snipe/fixes/attribute_for_purchase_date
Sets purchase date as date (versus datetime) in labels
2024-05-16 18:49:49 +01:00
snipe
88d131666c Sets purchase date as date (versus datetime) in labels
Signed-off-by: snipe <snipe@snipe.net>
2024-05-16 18:40:49 +01:00
snipe
d691f3b315 Merge remote-tracking branch 'origin/develop' 2024-05-16 16:37:47 +01:00
snipe
00a9d5f33e Merge pull request #14719 from snipe/fixes/add_next_audit_date_to_assets_form
Added next audit date to assets form
2024-05-16 16:33:49 +01:00
snipe
eb0fd2f519 Removed stricter validation :(
Signed-off-by: snipe <snipe@snipe.net>
2024-05-16 16:29:11 +01:00
snipe
81efaa7481 Merge branch 'develop' into fixes/add_next_audit_date_to_assets_form 2024-05-16 16:13:21 +01:00
snipe
2539c9e697 Updated assets
Signed-off-by: snipe <snipe@snipe.net>
2024-05-16 16:01:41 +01:00
snipe
3dfd471fa4 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	public/js/dist/all-defer.js
#	public/mix-manifest.json
2024-05-16 15:33:50 +01:00
snipe
4119526889 Merge pull request #14728 from snipe/fixes/smarter_decryption_in_activity
Only attempt to decrypt custom fields in activity log if the value is not empty
2024-05-16 15:31:18 +01:00
snipe
6b3346d90c Only attempt to decrypt if there is a value
Signed-off-by: snipe <snipe@snipe.net>
2024-05-16 15:28:25 +01:00
snipe
312ce51de6 Removed more debugging
Signed-off-by: snipe <snipe@snipe.net>
2024-05-16 15:25:57 +01:00
snipe
09914f508f Removed more debugging
Signed-off-by: snipe <snipe@snipe.net>
2024-05-16 15:16:52 +01:00
snipe
45eda0f611 Removed debug lines
Signed-off-by: snipe <snipe@snipe.net>
2024-05-16 15:09:27 +01:00
snipe
de088d452f Merge pull request #14451 from Godmartinz/add_decline_note_to_acceptance
Adds a note text area to asset acceptances/declines
2024-05-16 15:06:05 +01:00
snipe
2f18430ce4 Merge pull request #14725 from snipe/features/added_security_dot_txt
Added security.txt file
2024-05-16 09:59:46 +01:00
snipe
8d67e02d63 Added security.txt file
Signed-off-by: snipe <snipe@snipe.net>
2024-05-16 09:56:11 +01:00
Phil
1b85eea28e added new compose and env files 2024-05-16 02:13:31 +02:00
Godfrey M
fb9a5f928f removed license changes 2024-05-15 16:39:26 -07:00
Phil
4459483862 moved env. to own dev-file 2024-05-16 01:06:47 +02:00
Phil
a0cf7ecc98 moved file to dev-specific naming-scheme 2024-05-16 00:05:59 +02:00
snipe
8e35a56386 Updated dev assets
Signed-off-by: snipe <snipe@snipe.net>
2024-05-15 20:01:04 +01:00
snipe
30f738646e Merge pull request #14700 from marcusmoore/chore/sc-25471
Updated alpine to the latest version (3.13.10)
2024-05-15 19:59:51 +01:00
snipe
55281313d8 Merge pull request #14474 from Godmartinz/asset-location-update-bug
Fixed user assets not updating when a user changes location
2024-05-15 19:20:14 +01:00
Godfrey M
786799225c remove dd 2024-05-15 10:37:07 -07:00
snipe
c137fafa97 Updated language
Signed-off-by: snipe <snipe@snipe.net>
2024-05-15 18:10:43 +01:00
snipe
cb22a3d556 Updated comments again :-/
Signed-off-by: snipe <snipe@snipe.net>
2024-05-15 17:52:50 +01:00
snipe
c7accb4599 Added comments
Signed-off-by: snipe <snipe@snipe.net>
2024-05-15 17:38:42 +01:00
snipe
72c85f93b6 Fixed test
Signed-off-by: snipe <snipe@snipe.net>
2024-05-15 16:47:45 +01:00
snipe
c1d5b8713b Removed debugging
Signed-off-by: snipe <snipe@snipe.net>
2024-05-15 16:33:48 +01:00
snipe
8310b91e00 Use UploadFileRequest for audit files
Signed-off-by: snipe <snipe@snipe.net>
2024-05-15 16:33:48 +01:00
snipe
71b5bf2eef Added visual on the hardware view screen
Signed-off-by: snipe <snipe@snipe.net>
2024-05-15 16:33:48 +01:00
snipe
ab8b40745e Added next audit date to create/edit asset screen
Signed-off-by: snipe <snipe@snipe.net>
2024-05-15 16:33:48 +01:00
snipe
16ec47573b Added help text to bulk edit blade
Signed-off-by: snipe <snipe@snipe.net>
2024-05-15 16:33:48 +01:00
snipe
556d0b44a3 Added asset
Signed-off-by: snipe <snipe@snipe.net>
2024-05-15 16:33:48 +01:00
snipe
0734d5b0b6 Added help text
Signed-off-by: snipe <snipe@snipe.net>
2024-05-15 16:33:48 +01:00
snipe
f158a369a4 Added/updated string
Signed-off-by: snipe <snipe@snipe.net>
2024-05-15 16:33:47 +01:00
snipe
bdbfb0f2a1 Added accessor and mutator for next_audit_date
Signed-off-by: snipe <snipe@snipe.net>
2024-05-15 16:33:47 +01:00
snipe
e5653eaa93 Save new data
Signed-off-by: snipe <snipe@snipe.net>
2024-05-15 16:33:47 +01:00
snipe
3c4098038d Fail early if no tag
Signed-off-by: snipe <snipe@snipe.net>
2024-05-15 16:33:47 +01:00
snipe
8841e21dc9 Removed quickscan header
Signed-off-by: snipe <snipe@snipe.net>
2024-05-15 16:33:47 +01:00
snipe
f5e03b264f Show additional help text if help text is given
Signed-off-by: snipe <snipe@snipe.net>
2024-05-15 16:33:47 +01:00
snipe
eb09a99eb0 Merge pull request #14707 from spencerrlongg/bug/sc-24912
Bulk Edit Tests and Tweaks
2024-05-15 11:22:31 +01:00
Godfrey M
dc418a7033 need to make variables names uniform 2024-05-14 14:09:54 -07:00
Godfrey M
15cc4345ab adds dynamic redirects to Assets 2024-05-14 13:25:52 -07:00
Godfrey Martinez
5272824d85 Merge branch 'develop' into asset-location-update-bug 2024-05-13 10:47:25 -07:00
snipe
9bce0f2ff7 Format fix
Signed-off-by: snipe <snipe@snipe.net>
2024-05-13 18:19:14 +01:00
snipe
d2e7e11dca Removed debug line
Signed-off-by: snipe <snipe@snipe.net>
2024-05-13 12:48:28 +01:00
snipe
6823aabf92 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	config/version.php
2024-05-13 10:53:07 +01:00
snipe
f2dddc1226 Bumped version
Signed-off-by: snipe <snipe@snipe.net>
2024-05-13 10:51:44 +01:00
snipe
957becabb9 Merge pull request #14715 from snipe/dependabot/github_actions/develop/codacy/codacy-analysis-cli-action-4.4.1
Bump codacy/codacy-analysis-cli-action from 4.4.0 to 4.4.1
2024-05-13 10:26:33 +01:00
dependabot[bot]
7df03722ee Bump codacy/codacy-analysis-cli-action from 4.4.0 to 4.4.1
Bumps [codacy/codacy-analysis-cli-action](https://github.com/codacy/codacy-analysis-cli-action) from 4.4.0 to 4.4.1.
- [Release notes](https://github.com/codacy/codacy-analysis-cli-action/releases)
- [Commits](https://github.com/codacy/codacy-analysis-cli-action/compare/v4.4.0...v4.4.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-13 08:53:06 +00:00
snipe
4642f50d6b Merge remote-tracking branch 'origin/develop' 2024-05-11 15:14:57 +01:00
snipe
2decc3d6d3 Merge pull request #14711 from snipe/jerm/fix-all-query-in-sidebar-middleware
Fix memory-hog query in AssetCountForSidebar middleware
2024-05-11 01:35:09 +01:00
Jeremy Price
2adc4ffa96 Fix memory-hog query in AssetCountForSidebar middleware
https://github.com/snipe/snipe-it/pull/14702/files introduced a bug
where instead of doing a quick `select count(*)` of assets, it did a `select *` of
assets, moving the count from the database to the PHP process.

This caused OOM issues in memory-constrained environments with lots of
assets, and also presented a speed issue even when memory limited were
increased.

Additionally, given this populates the sidebar, this was likely an issue
on every page load that included the sidebar.

The fix is simply removing the `all()->`, ending up with Asset::count(),
which yields the desired `select count(*)` DB query.
2024-05-10 12:54:40 -07:00
snipe
c8fbf7640c 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-05-08 12:16:17 +01:00
snipe
46779ca865 Merge pull request #14697 from snipe/bug/sc-25502/disable_delete_if_not_deletable_user
Fixed UI where delete button was not disabled even if the user couldn't be deleted
2024-05-08 12:06:33 +01:00
snipe
86661e79d1 Merge pull request #14702 from Toreg87/fixes/total_asset_count
Fixes #14701 - wrong total asset count
2024-05-08 11:52:46 +01:00
Tobias Regnery
b2a5d86e30 Fixes #14701 - wrong total asset count
The total asset count in the sidenav shows the ready to deploy count instead of the total count.
Fix this by adjusting the query to all assets. Also respect the setting for archived assets.
Add a default value for total assets, since we are now using the settings-variable, which is not available during the setup process.

While at it, move the block for total assets before the ready to deploy assets to match the ordering of the sidenav.

Signed-off-by: Tobias Regnery <tobias.regnery@gmail.com>
2024-05-08 09:34:35 +02:00
Marcus Moore
d7f0ee49b7 Update Alpine to 3.13.10
Includes fix to new label engine.
2024-05-07 17:08:05 -07:00
spencerrlongg
5b86ee7291 a couple more tests 2024-05-07 17:19:00 -05:00
spencerrlongg
ad2ba252ee two new test 2024-05-07 15:11:33 -05:00
spencerrlongg
17ef20ea92 alright, in a working place 2024-05-07 14:08:47 -05:00
snipe
8c327e6523 Handle user not found properly
Signed-off-by: snipe <snipe@snipe.net>
2024-05-07 19:16:56 +01:00
snipe
386b2839e8 Added tests
Signed-off-by: snipe <snipe@snipe.net>
2024-05-07 18:59:24 +01:00
snipe
934593e0b6 Updated icon
Signed-off-by: snipe <snipe@snipe.net>
2024-05-07 18:09:55 +01:00
snipe
a7aa178f24 Used localized strings
Signed-off-by: snipe <snipe@snipe.net>
2024-05-07 17:56:07 +01:00
snipe
69122034e7 Fixed icon table headers
Signed-off-by: snipe <snipe@snipe.net>
2024-05-07 17:55:33 +01:00
snipe
1117f4289d Added string
Signed-off-by: snipe <snipe@snipe.net>
2024-05-07 17:55:10 +01:00
snipe
97bc4a092f Removed debugging
Signed-off-by: snipe <snipe@snipe.net>
2024-05-07 17:40:48 +01:00
snipe
d942b8f1fb Fixed alias names
Signed-off-by: snipe <snipe@snipe.net>
2024-05-07 17:40:35 +01:00
snipe
49dc9767b6 Added debugging :(
Signed-off-by: snipe <snipe@snipe.net>
2024-05-07 15:54:43 +01:00
snipe
482965197d Added users, locations to presenter, transformer
Signed-off-by: snipe <snipe@snipe.net>
2024-05-07 12:07:41 +01:00
snipe
410b547f3c Added users and locatipon count to API
Signed-off-by: snipe <snipe@snipe.net>
2024-05-07 12:07:28 +01:00
snipe
f769e8247f Added ManagedUsers method, additional checks in isDeletable()
Signed-off-by: snipe <snipe@snipe.net>
2024-05-07 12:07:15 +01:00
snipe
2b4a536f85 Added CSS for users, locations
Signed-off-by: snipe <snipe@snipe.net>
2024-05-07 12:06:54 +01:00
snipe
92ae069629 Disable button in UI if user cannot be deleted
Signed-off-by: snipe <snipe@snipe.net>
2024-05-07 12:06:35 +01:00
snipe
6f40b21986 Merge remote-tracking branch 'origin/develop' 2024-05-07 08:38:09 +01:00
snipe
3084521521 Merge pull request #14693 from snipe/fixes/14692_view_share_undefined
Fixes #14692 - set default variables for sidebar totals
2024-05-07 08:37:10 +01:00
snipe
4f12c86e74 Fixes #14692 - set default variables for sidebar totals
Signed-off-by: snipe <snipe@snipe.net>
2024-05-07 08:34:22 +01:00
snipe
204de99a64 Merge remote-tracking branch 'origin/develop' 2024-05-07 08:12:31 +01:00
snipe
fd929f5dd9 Merge pull request #14690 from marcusmoore/import-settings-properly
Load settings in `SendUpcomingAuditReport` command
2024-05-07 07:42:34 +01:00
Marcus Moore
7e9c8ba290 Remove duplicate settings call 2024-05-06 17:08:16 -07:00
Marcus Moore
6f639f7bf0 Load settings properly in SendUpcomingAuditReport command 2024-05-06 16:44:14 -07:00
snipe
3594ed67d1 Removed back buttons on settings index
Signed-off-by: snipe <snipe@snipe.net>
2024-05-06 20:48:32 +01:00
snipe
d36a06d8e1 Merge remote-tracking branch 'origin/develop' 2024-05-06 20:34:49 +01:00
snipe
c816b960b5 Fixed stray closing paren
Signed-off-by: snipe <snipe@snipe.net>
2024-05-06 20:34:36 +01:00
Brady Wetherington
5b02a43957 Merge branch 'develop' into snipeit_v7_laravel10 2024-05-06 18:44:03 +01:00
snipe
4913e56086 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	config/version.php
2024-05-06 18:43:48 +01:00
snipe
4d00bb98d1 Bumped version
Signed-off-by: snipe <snipe@snipe.net>
2024-05-06 18:39:55 +01:00
snipe
db2baae758 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	public/css/dist/all.css
#	public/js/dist/bootstrap-table.js
#	public/mix-manifest.json
2024-05-06 18:37:52 +01:00
snipe
fdecdf4b15 Merge pull request #14689 from KorvinSzanto/develop
Capitalize `N` instead of `y` since no is default
2024-05-06 17:48:16 +01:00
Korvin Szanto
5c1d4aff23 Capitalize N instead of y since no is default 2024-05-06 09:00:33 -07:00
snipe
bf0edcb92e docs: add @gitgrimbo as a contributor 2024-05-06 12:59:26 +01:00
snipe
39fa8ef3c0 docs: add @chandanchowdhury as a contributor 2024-05-06 12:55:47 +01:00
snipe
9e8a369bc8 docs: add @PP-JN-RL as a contributor 2024-05-06 12:54:35 +01:00
snipe
3f3fe8935f docs: add @jeffclay as a contributor 2024-05-06 12:54:20 +01:00
snipe
82387630c7 docs: add @squintfox as a contributor 2024-05-06 12:54:06 +01:00
snipe
16c5033514 docs: add @Q4kK as a contributor 2024-05-06 12:53:34 +01:00
snipe
46ffaee1e4 docs: add @franceslui as a contributor 2024-05-06 12:53:06 +01:00
snipe
d936f92a7d docs: add @mustafa-online as a contributor 2024-05-06 12:52:46 +01:00
snipe
b424ddf42d docs: add @koiakoia as a contributor 2024-05-06 12:51:40 +01:00
snipe
b3d5a893fc Fixed text
via (@koiakoia )

Signed-off-by: snipe <snipe@snipe.net>
2024-05-06 12:49:54 +01:00
snipe
69ea6eebae Merge pull request #14688 from snipe/security/Upgrade-tableexport.jquery.plugin-from-1.28.0-to-1.30.0
[Snyk] Upgrade tableexport.jquery.plugin from 1.28.0 to 1.30.0 #14656
2024-05-06 12:47:01 +01:00
snipe
0892c34125 [Snyk] Upgrade tableexport.jquery.plugin from 1.28.0 to 1.30.0 #14656
Signed-off-by: snipe <snipe@snipe.net>
2024-05-06 12:45:33 +01:00
snipe
52e14d501f Merge pull request #14687 from snipe/security/upgrade_fontawesome_from-6.5.1-to-6.5.2
Upgrade fontawesome from 6.5.1 to 6.5.2
2024-05-06 12:22:50 +01:00
snipe
4d093160fc Upgrade @fortawesome/fontawesome-free from 6.5.1 to 6.5.2 #14647
Signed-off-by: snipe <snipe@snipe.net>
2024-05-06 12:21:34 +01:00
snipe
0bcca99573 Merge pull request #14686 from snipe/security/upgrade_alpine_to_3.13.8
[Snyk] Upgrade alpinejs from 3.13.5 to 3.13.8 #14646
2024-05-06 12:16:00 +01:00
snipe
63516c4a4f [Snyk] Upgrade alpinejs from 3.13.5 to 3.13.8 #14646
Signed-off-by: snipe <snipe@snipe.net>
2024-05-06 12:12:59 +01:00
snipe
19fb79ffff Merge pull request #14661 from ubc-cpsc/bugfix/CVE-2024-32489
Upgrade tecnickcom/tcpdf from version 6.7.4 to 6.7.5 to address the security vulnerability CVE-2024-22640
2024-05-06 11:58:31 +01:00
snipe
02835de13d Merge pull request #14679 from mustafa-online/develop
Improve RTL support
2024-05-04 15:47:14 +01:00
Mustafa Online
55b004d53d Improve RTL support 2024-05-04 13:32:42 +02:00
Mustafa Online
c1b72a8ce6 Revert "Improve RTL support"
This reverts commit fa0bea87e6.
2024-05-04 13:31:52 +02:00
Mustafa Online
fa0bea87e6 Improve RTL support
I'm starting to make some improvements to RTL support, more PR's to come to address other parts.
2024-05-04 13:17:48 +02:00
Godfrey M
c94a7613ca dropdown redirect options, helper function and session variable added 2024-05-02 12:16:20 -07:00
snipe
d146426dd8 Updated prod assets
Signed-off-by: snipe <snipe@snipe.net>
2024-05-02 14:02:53 +01:00
snipe
1e1782c232 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-05-02 14:02:36 +01:00
snipe
dab5874fd7 Merge pull request #14391 from snipe/features/add_Brother_188mm_tape_label
Added Brother 18mm label type
2024-05-02 13:14:04 +01:00
snipe
4850227c04 Merge pull request #14655 from snipe/feature/sc-25381/simpler_overdue_endpoints
Refactored due/overdue for audit, added due/overdue for checkin API endpoint and GUI
2024-05-02 13:11:51 +01:00
snipe
eb9a654cc3 Moved settings call higher
Signed-off-by: snipe <snipe@snipe.net>
2024-05-02 12:37:41 +01:00
snipe
4224bc0c43 Removed extra settings param
Signed-off-by: snipe <snipe@snipe.net>
2024-05-02 12:36:57 +01:00
snipe
f893b23129 Refactored title blade areas
Signed-off-by: snipe <snipe@snipe.net>
2024-05-02 12:35:52 +01:00
snipe
8c65880504 Changed badge to span in default blade
Signed-off-by: snipe <snipe@snipe.net>
2024-05-02 12:35:41 +01:00
snipe
53cadf80fa Removed assertions for factories
Signed-off-by: snipe <snipe@snipe.net>
2024-05-02 12:24:31 +01:00
spencerrlongg
e177993bcc notes and some playing around, push for eod 2024-05-01 16:57:11 -05:00
spencerrlongg
6a7f3ecc2e new test not quite working, almost there 2024-05-01 16:12:56 -05:00
spencerrlongg
39cc99c89b all initial attributes set in test 2024-04-30 22:22:59 -05:00
spencerrlongg
25480293dc change keys to values, add test 2024-04-30 18:03:26 -05:00
Frances Lui
8b3bfc6bc9 Fixes CVE-2024-32489 2024-04-29 16:33:00 -07:00
snipe
19cff25300 Merge pull request #14651 from marcusmoore/bug/sc-25402
Fixed `purchase_cost` not being allowed to be a string when creating asset via api
2024-04-27 03:39:10 +01:00
snipe
848e1fe1f6 Refactored audit alerts
Signed-off-by: snipe <snipe@snipe.net>
2024-04-26 21:26:00 +01:00
snipe
fe147adec3 Refactor checkin alert
Signed-off-by: snipe <snipe@snipe.net>
2024-04-26 21:10:54 +01:00
snipe
103809b65f Removed debugging
Signed-off-by: snipe <snipe@snipe.net>
2024-04-26 21:01:43 +01:00
snipe
a398496dd4 Added comments
Signed-off-by: snipe <snipe@snipe.net>
2024-04-26 21:01:27 +01:00
snipe
839db8ef44 Refactored due-or-overdue methods
Signed-off-by: snipe <snipe@snipe.net>
2024-04-26 20:59:27 +01:00
snipe
bfd0530597 Fixed notification
Signed-off-by: snipe <snipe@snipe.net>
2024-04-26 20:59:13 +01:00
snipe
494ec5cd9c Added tests for due-or-overdue
Signed-off-by: snipe <snipe@snipe.net>
2024-04-26 20:59:04 +01:00
snipe
fc61a4b88d Fixed badge HTML
Signed-off-by: snipe <snipe@snipe.net>
2024-04-26 19:50:58 +01:00
snipe
50d8b02f8b Removed unused scope
Signed-off-by: snipe <snipe@snipe.net>
2024-04-26 19:23:27 +01:00
snipe
860764a436 Use totals for sidebar
Signed-off-by: snipe <snipe@snipe.net>
2024-04-26 19:12:21 +01:00
snipe
52d6a8990a Check that the asset is not already checked in
Signed-off-by: snipe <snipe@snipe.net>
2024-04-26 19:06:46 +01:00
snipe
87de67e4a9 Fixed test for checkin
Signed-off-by: snipe <snipe@snipe.net>
2024-04-26 19:06:26 +01:00
snipe
8356b57fb4 Added translations
Signed-off-by: snipe <snipe@snipe.net>
2024-04-26 19:01:34 +01:00
snipe
3f04afee5c Removed unused method
Signed-off-by: snipe <snipe@snipe.net>
2024-04-26 19:01:26 +01:00
snipe
2117f61e8c More view sharing for sidebar
Signed-off-by: snipe <snipe@snipe.net>
2024-04-26 19:01:15 +01:00
snipe
d40604b574 Removed debugging, added date cast
Signed-off-by: snipe <snipe@snipe.net>
2024-04-26 19:01:05 +01:00
snipe
76129e9011 Use trans_choice for title
Signed-off-by: snipe <snipe@snipe.net>
2024-04-26 18:59:13 +01:00
snipe
9c8411c7ff Added checkin due blade
Signed-off-by: snipe <snipe@snipe.net>
2024-04-26 18:58:56 +01:00
snipe
c661d732b3 Refactored sidenav links for audit
Signed-off-by: snipe <snipe@snipe.net>
2024-04-26 18:58:44 +01:00
snipe
fbe9daace6 Use pattern in API route
Signed-off-by: snipe <snipe@snipe.net>
2024-04-26 18:58:29 +01:00
snipe
651001bf6e Removed duplicate routes
Signed-off-by: snipe <snipe@snipe.net>
2024-04-26 18:58:15 +01:00
snipe
9167f8a3ba Cleaned up tests
Signed-off-by: snipe <snipe@snipe.net>
2024-04-26 18:57:07 +01:00
snipe
6dc9ccffcd Refactor api for handling audit/expected checkins
Signed-off-by: snipe <snipe@snipe.net>
2024-04-26 18:56:57 +01:00
snipe
4b4e3badb7 Removed hardware audit overdue blade
Signed-off-by: snipe <snipe@snipe.net>
2024-04-26 18:53:36 +01:00
snipe
fe4dd23d39 Removed “all” text
Signed-off-by: snipe <snipe@snipe.net>
2024-04-26 15:49:12 +01:00
snipe
de6d71cc3b Use plural api endpoints in blades
Signed-off-by: snipe <snipe@snipe.net>
2024-04-26 15:47:19 +01:00
snipe
9e44052709 Switch to plural route name for API endpoint
Signed-off-by: snipe <snipe@snipe.net>
2024-04-26 15:46:58 +01:00
snipe
2d112f227a Call the asset factory directly
Signed-off-by: snipe <snipe@snipe.net>
2024-04-26 15:44:37 +01:00
snipe
bd8737d986 Changed sidenav badge class
Signed-off-by: snipe <snipe@snipe.net>
2024-04-26 15:44:21 +01:00
snipe
4b6d236eb7 Added class for sidebar menu badges
Signed-off-by: snipe <snipe@snipe.net>
2024-04-26 15:44:06 +01:00
snipe
bf058bd5c6 Use updated scopes
Signed-off-by: snipe <snipe@snipe.net>
2024-04-26 14:02:56 +01:00
snipe
dfaf01e8aa Updated asset counters
Signed-off-by: snipe <snipe@snipe.net>
2024-04-26 14:02:47 +01:00
snipe
2888dd6fd8 Added translation
Signed-off-by: snipe <snipe@snipe.net>
2024-04-26 14:02:37 +01:00
snipe
2e92ee8eee Switch to whereBetween so tests run on sqlite
Signed-off-by: snipe <snipe@snipe.net>
2024-04-26 14:02:23 +01:00
snipe
14b6a75507 Updated routes
Signed-off-by: snipe <snipe@snipe.net>
2024-04-26 14:01:38 +01:00
snipe
2484a9db2c Added tests
Signed-off-by: snipe <snipe@snipe.net>
2024-04-26 14:01:29 +01:00
snipe
bfc30794c5 Updated badge styling
Signed-off-by: snipe <snipe@snipe.net>
2024-04-26 14:01:22 +01:00
snipe
27bc7a847b Updated routes
Signed-off-by: snipe <snipe@snipe.net>
2024-04-26 14:01:11 +01:00
Marcus Moore
2a71877bec Add additional condition 2024-04-25 17:04:07 -07:00
Marcus Moore
30bd920497 Add conditional 2024-04-25 16:24:12 -07:00
Marcus Moore
1d5b48b88d Add comment and improve method 2024-04-25 16:22:15 -07:00
Marcus Moore
4295bad12f Separate test cases 2024-04-25 14:07:56 -07:00
Marcus Moore
3a2eeaea7a WIP: Future-proof rules being converted to array syntax 2024-04-24 17:40:40 -07:00
Marcus Moore
12418ae91b WIP: allow EU style purchase cost via api 2024-04-24 17:18:29 -07:00
Marcus Moore
783a24eb68 Add test for ParseCurrencyMethod 2024-04-24 17:17:42 -07:00
Brady Wetherington
3f5c5cbe82 Merge branch 'develop' into snipeit_v7_laravel10 2024-04-24 16:24:43 +01:00
snipe
2439758ef3 Merge pull request #14587 from Godmartinz/License-export-button
Added a License Export function and button
2024-04-24 04:42:56 +01:00
akemidx
ac4aa97103 develop reheading 2024-04-23 17:05:50 -04:00
akemidx
0bc93c6a1e space 2024-04-23 15:31:37 -04:00
snipe
685f1cbfb8 Merge pull request #14499 from Godmartinz/remove_encrpyt_from_labels
Removed encrypted fields from label options
2024-04-23 13:31:38 +01:00
snipe
e2d1e6b0c5 Merge pull request #14608 from akemidx/bug/sc-25232
Left Sidebar Was Not Respecting Theme
2024-04-23 12:32:48 +01:00
snipe
56cb9a0f4e Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	config/version.php
#	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-04-23 10:28:50 +01:00
snipe
c8c81a360c Dev assets
Signed-off-by: snipe <snipe@snipe.net>
2024-04-23 10:26:43 +01:00
snipe
bdd43b7134 Merge pull request #14602 from uberbrady/fix_saving_encrypted_custom_fields
Re-enabled updating encrypted custom fields via API [sc-41465]
2024-04-23 10:20:55 +01:00
snipe
c50d5a678a Merge pull request #14616 from akemidx/bug/sc-25235
REMOVED: Dark Theme Button Text Coloring
2024-04-23 09:20:57 +01:00
Godfrey M
96b3af7cbc fixed view from sending all custom fields 2024-04-22 18:27:34 -07:00
Godfrey Martinez
9e7bbc968d Merge pull request #15 from Godmartinz/License-export-button_p2
adds licenses available, updated teranslations
2024-04-22 17:59:52 -07:00
Godfrey M
5fc6771543 adds licenses available, updated teranslations 2024-04-22 17:58:49 -07:00
akemidx
0d049a0be7 conflict resolution 2024-04-22 20:09:40 -04:00
akemidx
01c24ab4cd translating text 2024-04-22 19:16:14 -04:00
Marcus Moore
155f5f35cd Remove todo 2024-04-22 15:47:05 -07:00
snipe
7ad6caf30a Merge pull request #14632 from marcusmoore/bug/sc-25384
Added "select" option to top of data sources in new label engine
2024-04-22 20:40:31 +01:00
Marcus Moore
ac8aab0043 Add default "select an option" to data source options 2024-04-22 12:22:10 -07:00
Godfrey M
14ddf36d46 removed two duplicate translations 2024-04-22 10:43:11 -07:00
Godfrey M
25f1167c9d adds company scoping to license export 2024-04-22 10:38:55 -07:00
Godfrey M
420225c2d5 Merge branch 'refs/heads/develop' into License-export-button 2024-04-22 10:33:30 -07:00
Marcus Moore
45f5eaac5b Extract CanSkipTests trait 2024-04-22 10:32:37 -07:00
snipe
5229dd65ce Merge remote-tracking branch 'origin/develop' 2024-04-22 15:02:51 +01:00
snipe
cfe39afc11 Merge pull request #14630 from snipe/bug/sc-25377/double_encoding_assets_and_model_notes_on_upload
Removed escaping on notes for file uploads
2024-04-22 14:59:55 +01:00
snipe
2aa3ce15bd Removed escaping on notes for file uploads
Signed-off-by: snipe <snipe@snipe.net>
2024-04-22 14:55:02 +01:00
snipe
c9873da732 Merge pull request #14628 from snipe/bug/sc-25375/icon_mimetype_validation_fix
Added `ico`, `image/x-icon`, `image/vnd.microsoft.icon` to favicon validation
2024-04-22 13:58:08 +01:00
snipe
8dd71f99cc Added ico, image/x-icon,image/vnd.microsoft.icon to favicon validation
Signed-off-by: snipe <snipe@snipe.net>
2024-04-22 13:54:19 +01:00
Brady Wetherington
ab45975883 Mark custom fields tests as 'incomplete' if the DB is mysql 2024-04-22 13:11:36 +01:00
snipe
7f38ca239e 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-04-19 16:24:32 +01:00
snipe
c3b982e759 Merge pull request #14622 from snipe/bug/sc-25363/z-index-bs-table-check-boxes-fix
Reeduced z-index of bs table override
2024-04-19 16:11:21 +01:00
snipe
e330e80c46 Reeduced z-index of bs table override
Signed-off-by: snipe <snipe@snipe.net>
2024-04-19 16:06:43 +01:00
akemidx
f0836d4d3a changes for button hover, removing text color changes. also added in a border for yellow and black themes 2024-04-18 19:36:35 -04:00
akemidx
1289920217 black button border 2024-04-18 19:29:56 -04:00
snipe
a6a58094c9 Merge remote-tracking branch 'origin/develop' 2024-04-18 14:26:53 +01:00
snipe
424cbd3248 Removed noisy debug
Signed-off-by: snipe <snipe@snipe.net>
2024-04-18 14:25:54 +01:00
snipe
e59b9627c7 Merge pull request #14511 from jeffclay/features/14508_pdo_ssl_verify
Fixed #14508: Added PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT options to database.php …
2024-04-18 14:23:00 +01:00
snipe
f080c0cdcd Merge pull request #14578 from Q4kK/features/add_no_interactive
Feat: add no-interactive flag for `upgrade.php`
2024-04-18 14:19:38 +01:00
snipe
29bda2ef7d Merge pull request #14613 from marcusmoore/additional-test-cases
Added test cases around modifying user groups via api
2024-04-18 13:53:03 +01:00
akemidx
e8d9701a26 array key existing 2024-04-17 19:16:25 -04:00
Marcus Moore
1d64692fd6 Add two test cases 2024-04-17 15:23:26 -07:00
snipe
6f195cb8ec Merge pull request #14591 from snipe/bug/sc-25258/naive_fix_for_user_scoping
First fix for user FMCS scoping
2024-04-17 21:49:53 +01:00
snipe
4c02a63acc Removed activated attribute on test users
Signed-off-by: snipe <snipe@snipe.net>
2024-04-17 20:29:51 +01:00
snipe
0fc9fc7516 Minor updates to tests
Signed-off-by: snipe <snipe@snipe.net>
2024-04-17 20:29:01 +01:00
snipe
4450351b75 Only sync groups if API user is superadmin
Signed-off-by: snipe <snipe@snipe.net>
2024-04-17 11:06:50 +01:00
snipe
9bb15aaf1b Added individual gates to keep response consistent with other company-ed things
Signed-off-by: snipe <snipe@snipe.net>
2024-04-17 10:57:49 +01:00
snipe
65dd729e19 Additional gates
Signed-off-by: snipe <snipe@snipe.net>
2024-04-17 10:57:20 +01:00
snipe
c21142605d Added strings
Signed-off-by: snipe <snipe@snipe.net>
2024-04-17 10:47:56 +01:00
snipe
86e274faa3 Added API tests
Signed-off-by: snipe <snipe@snipe.net>
2024-04-17 10:47:48 +01:00
snipe
5e8c129c7f Revert accidental commit
Signed-off-by: snipe <snipe@snipe.net>
2024-04-17 09:26:50 +01:00
snipe
ab3b5ca4ef Fixed tests
Signed-off-by: snipe <snipe@snipe.net>
2024-04-17 09:26:07 +01:00
Marcus Moore
60a5afd752 Merge branch 'factory-refactors' into fix_saving_encrypted_custom_fields 2024-04-16 17:15:22 -07:00
Marcus Moore
9d0ea857fe Import facade 2024-04-16 17:14:17 -07:00
Marcus Moore
f763aea4fc Update tests to send post request 2024-04-16 17:13:18 -07:00
Marcus Moore
e16c04250e Improve model factories 2024-04-16 16:58:28 -07:00
Marcus Moore
ad99aa460b Remove unneeded imports 2024-04-16 15:09:49 -07:00
Marcus Moore
e47f64f62d Separate test methods 2024-04-16 15:03:05 -07:00
Marcus Moore
c6d9da1571 Remove unneeded fields in factory state 2024-04-16 12:36:41 -07:00
Marcus Moore
ab561d1ce8 Simplify factory state 2024-04-16 12:36:13 -07:00
akemidx
f39ba0136c errant carraige return 2024-04-16 14:26:18 -04:00
akemidx
df60045bfe sidebar hover fix 2024-04-16 14:21:47 -04:00
akemidx
5e122f780f sidebar_hover_color 2024-04-16 14:00:20 -04:00
Marcus Moore
eefe377159 Correct order of arguments 2024-04-16 10:51:33 -07:00
q4kK
20920c262d Feat: add no-interactive flag for upgrade.php
Having a no-interactive flag is useful because attempting
to automate snipe-it upgrades is currently extremely janky.
You have to either:
  a) read the prompts and pass in the input (the "correct" way)
  b) pipe in input, e.g. `yes` and hope no new prompts
  are added.

With the `no-interactive` flag, this can be fixed by both
allowing new prompts to be added without conflict
to user prompts, but also allowing automated upgrades (you could
choose to crash, or assign defaults).
2024-04-16 11:54:50 -05:00
Brady Wetherington
870612be1c Break 'update' API statements into its own test file. Split tests up 2024-04-16 15:34:28 +01:00
Brady Wetherington
266424ff0e Some simple renames for better readability as suggested by Marcus 2024-04-16 15:17:02 +01:00
snipe
a8d48b758e Merge pull request #14594 from marcusmoore/bug/sc-25314/multiple-label-fields-on-one-row
Fixed label fields only showing first option
2024-04-15 18:53:03 +01:00
Brady Wetherington
67a8e0b5c6 This re-enables the ability to update encrypted custom fields via the API 2024-04-15 18:46:11 +01:00
snipe
7b7d424962 Merge pull request #13880 from Godmartinz/department-validation-bug
Fixed department validation to allow updates
2024-04-12 10:50:26 +01:00
Marcus Moore
a4e959818a Add comment 2024-04-11 17:23:28 -07:00
Marcus Moore
c3a71cc182 Improve variable names and add comment 2024-04-11 16:44:13 -07:00
Marcus Moore
da03cfdbe5 Formatting 2024-04-11 16:39:29 -07:00
Marcus Moore
2b137d76fa Trim string to avoid leading whitespace if label is empty 2024-04-11 16:38:22 -07:00
Marcus Moore
81b8c111ca Allow multiple fields to be displayed in one row 2024-04-11 15:00:14 -07:00
snipe
fce98b9ca4 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	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-04-11 18:58:50 +01:00
snipe
c0dcae16f7 Updated dev assets
Signed-off-by: snipe <snipe@snipe.net>
2024-04-11 18:57:06 +01:00
snipe
c604f08749 Small tweaks for troubleshooting :(
Signed-off-by: snipe <snipe@snipe.net>
2024-04-11 18:47:55 +01:00
snipe
da21424416 Merge pull request #14581 from marcusmoore/bug/sc-25237
Fixed assigned to field in new label engine
2024-04-11 15:36:18 +01:00
snipe
b5c83721ad Merge pull request #14577 from Godmartinz/signature_pad_upgrade
Upgraded Signature-pad.js  && Fixed Resizing Canvas on mobile
2024-04-11 15:35:47 +01:00
snipe
9b21fca1a0 Merge pull request #14558 from akemidx/bug/sc-25192
Fixed: Header Dropdown Menus had no hover coloring in dark themes
2024-04-11 15:35:33 +01:00
snipe
af94b07771 Merge pull request #14582 from akemidx/feature/sc-25288
Reduce Extra Space in Header Dropdown
2024-04-11 15:35:11 +01:00
snipe
0d23d28a65 Added comments
Signed-off-by: snipe <snipe@snipe.net>
2024-04-11 15:15:56 +01:00
snipe
710370ac24 Added scoping for destroy
Signed-off-by: snipe <snipe@snipe.net>
2024-04-11 14:58:25 +01:00
snipe
ed0a441e4d Refactor destroy method
Signed-off-by: snipe <snipe@snipe.net>
2024-04-11 14:52:03 +01:00
snipe
24e87cc0bb Updated comment
Signed-off-by: snipe <snipe@snipe.net>
2024-04-11 14:51:49 +01:00
snipe
460693c153 Added comment
Signed-off-by: snipe <snipe@snipe.net>
2024-04-11 14:40:13 +01:00
snipe
f54a94bd4c Refactorered methods
Signed-off-by: snipe <snipe@snipe.net>
2024-04-11 14:40:00 +01:00
snipe
a19b86add0 Re-ordered scoping for admins, added comments
Signed-off-by: snipe <snipe@snipe.net>
2024-04-11 14:39:37 +01:00
snipe
570944a48b Updated translation
Signed-off-by: snipe <snipe@snipe.net>
2024-04-11 14:38:52 +01:00
snipe
5829b02323 Added translation
Signed-off-by: snipe <snipe@snipe.net>
2024-04-11 14:38:47 +01:00
Marcus Moore
5567a1e9ac Formatting 2024-04-10 17:37:11 -07:00
Marcus Moore
fa5016713f Implement test 2024-04-10 17:29:44 -07:00
Marcus Moore
f28a82de71 Implement some tests, scaffold others 2024-04-10 17:27:07 -07:00
Marcus Moore
7c2fae7b9d Scaffold api test cases 2024-04-10 17:08:45 -07:00
Marcus Moore
70934e54cf Remove unneeded comment 2024-04-10 16:34:14 -07:00
Marcus Moore
f6ad275030 Clean ups 2024-04-10 16:28:48 -07:00
Marcus Moore
6666a78936 Organization 2024-04-10 16:19:04 -07:00
Marcus Moore
bbb2cdcceb Add note 2024-04-10 16:15:43 -07:00
Marcus Moore
6b6e18695f Account for null asset in factory state 2024-04-10 16:12:47 -07:00
Marcus Moore
b63962e90b Add additional assertions 2024-04-10 16:01:15 -07:00
Marcus Moore
4434de6241 Add test case 2024-04-10 15:47:26 -07:00
Godfrey M
a2bca0e358 fixed comments 2024-04-10 15:05:21 -07:00
Marcus Moore
6d572424ac Add validation around dates 2024-04-10 14:02:25 -07:00
Marcus Moore
d371d14c1f Implement test 2024-04-10 13:49:07 -07:00
Marcus Moore
72eda1e909 Improve naming 2024-04-10 13:29:31 -07:00
Marcus Moore
7dbf8a8a8e Add tests for asset and location check out 2024-04-10 13:28:52 -07:00
Godfrey M
133fdd7a37 fix conditional 2024-04-10 12:31:04 -07:00
Godfrey M
0849262243 fixed notes 2024-04-10 12:19:34 -07:00
Godfrey M
17095feb33 fix typo 2024-04-10 12:15:48 -07:00
Godfrey M
f42ae46338 exports all licenses 2024-04-10 12:14:44 -07:00
Marcus Moore
37ebf1827f Organization 2024-04-10 12:12:44 -07:00
Marcus Moore
e65252725a Add simple test for LogListener 2024-04-10 11:52:59 -07:00
Marcus Moore
6f53f2ac64 Finish implementing test case 2024-04-10 11:43:50 -07:00
Godfrey M
e2679852ce added export button, half the logic for export method 2024-04-10 11:31:30 -07:00
Marcus Moore
deaba46e1c Merge branch 'develop' into chore/sc-25103/add-tests-around-asset-checkout 2024-04-10 11:01:35 -07:00
snipe
989dab6259 Moved company scoping methods to group them together
Signed-off-by: snipe <snipe@snipe.net>
2024-04-10 14:35:13 +01:00
snipe
adacdc038d Apply company scoping for users
Signed-off-by: snipe <snipe@snipe.net>
2024-04-10 12:34:32 +01:00
akemidx
f0aefaac42 padding fix 2024-04-09 17:51:42 -04:00
Marcus Moore
1aeaa0094a Fix assigned to in labels 2024-04-09 13:52:54 -07:00
akemidx
6d3fa12f37 white texty for dropdown lists 2024-04-09 14:52:43 -04:00
Godfrey M
052f1eedd0 fixes signature canvas refresh on mobile 2024-04-09 10:30:33 -07:00
Godfrey M
858da800be attempting to lock screen orientation 2024-04-09 09:40:39 -07:00
snipe
954cac3af7 Merge remote-tracking branch 'origin/develop' 2024-04-08 10:56:04 +01:00
snipe
d0f171ebc6 Merge pull request #14567 from snipe/bug/sc-25257
Remove city as required field on location modal
2024-04-08 10:54:09 +01:00
snipe
90cf612ac7 Remove city as required field on location modal
Signed-off-by: snipe <snipe@snipe.net>
2024-04-08 10:50:52 +01:00
snipe
802b5863ab Merge remote-tracking branch 'origin/develop' 2024-04-08 08:49:54 +01:00
snipe
4baa949a99 Merge pull request #14557 from Godmartinz/add-audit-date-to-labels
Added audit dates to label options
2024-04-08 04:59:53 +01:00
snipe
3bed04a6d3 Merge pull request #14559 from Godmartinz/ldap_location_bug
Fixed  ldap location syncing incorrect locations for users.
2024-04-08 04:59:27 +01:00
Godfrey M
d548b800d5 nullifies location after ldap user sync 2024-04-04 15:43:33 -07:00
akemidx
f7f199d929 black hover bg for dark yellow theme 2024-04-04 15:51:46 -04:00
akemidx
5519fddb78 new clean branch for color change 2024-04-04 15:50:30 -04:00
Godfrey M
a9ed748fb2 adds audit dates to label options 2024-04-04 11:39:49 -07:00
snipe
dcba2bfd25 Merge pull request #14529 from mauro-miatello/develop
Hide/Show encrypted values in hardware list
2024-04-04 15:07:58 +01:00
snipe
72c91ead8b 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-04-04 15:06:37 +01:00
snipe
774d0aa90c Updated dev assets
Signed-off-by: snipe <snipe@snipe.net>
2024-04-04 15:05:35 +01:00
snipe
2eea67ce34 Merge pull request #14547 from Godmartinz/user-dropdown-media-change
Fixed alignment of dropdown menu for user in nav bar
2024-04-04 15:04:36 +01:00
snipe
db1c44f921 Merge pull request #14552 from snipe/bug/sc-25229/redirect_if_already_checked_in
Redirect on checkin if the asset is already checked in
2024-04-04 15:01:43 +01:00
snipe
e11287ec25 Redirect on checkin if the asset is already checked in
Signed-off-by: snipe <snipe@snipe.net>
2024-04-04 15:00:55 +01:00
snipe
4f10adfb76 Merge remote-tracking branch 'origin/develop' 2024-04-04 14:27:35 +01:00
snipe
f22803c59f Merge pull request #14551 from snipe/bug/sc-25221/ambiguous_id_in_custom_report
Fixed ambiguous id clause in custom report
2024-04-04 14:25:43 +01:00
snipe
a72d4e5dc1 Fixed ambiguous id clause in custom report
Signed-off-by: snipe <snipe@snipe.net>
2024-04-04 14:23:58 +01:00
Godfrey M
08f9aae8ae adds note to log listener and checkout accept notif 2024-04-03 11:59:47 -07:00
Godfrey M
43c32fa1bf fix class name in migration 2024-04-03 11:47:08 -07:00
Godfrey M
5afe024644 changed translation on asset acceptancen blade 2024-04-03 11:40:48 -07:00
Godfrey M
c01bdb42fc renamed migration 2024-04-03 11:39:17 -07:00
Godfrey M
e3ef8d295f Merge remote-tracking branch 'origin/add_decline_note_to_acceptance' into add_decline_note_to_acceptance 2024-04-03 11:37:05 -07:00
Godfrey M
ce1d677cdc adds note to acceptance 2024-04-03 11:36:03 -07:00
Godfrey M
df5cacf8a2 removed front end if statement 2024-04-03 11:06:05 -07:00
Godfrey M
bb2c73348d only grabs custom Fields that are not encrpyted 2024-04-03 11:03:58 -07:00
Godfrey M
4327653d70 remove db cleaner for encrypted selections 2024-04-03 10:57:41 -07:00
Godfrey M
5f7f4c9b91 aligns dropdown menu for user in nav 2024-04-03 10:41:50 -07:00
snipe
d44202e55b 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-04-03 13:09:48 +01:00
snipe
df95447ea4 New dev assets
Signed-off-by: snipe <snipe@snipe.net>
2024-04-03 13:08:08 +01:00
snipe
01852c7188 Merge pull request #14520 from Godmartinz/loading_overlap_bug
fixes z-index of table load
2024-04-03 13:07:14 +01:00
snipe
79c5697042 Fixed dev - take 2!
Signed-off-by: snipe <snipe@snipe.net>
2024-04-03 13:06:49 +01:00
Brady Wetherington
65e21faa3e Merge branch 'develop' into snipeit_v7_laravel10
Hopefully, last merge?
2024-04-02 20:34:04 +01:00
MrM
658ba092e2 Hide encrypted values in hardware list
Encrypted values are now hidden also in hardware list, clicking on them show the decrypted value
2024-03-31 18:55:58 +02:00
MrM
b221d99e7b Encrypted values enhancement
Show asterisks instead of the value, respecting the length of the field
2024-03-31 12:27:35 +02:00
snipe
b7af049589 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	config/version.php
2024-03-29 13:20:22 +00:00
snipe
c2d863da99 Bumped version
Signed-off-by: snipe <snipe@snipe.net>
2024-03-29 13:19:22 +00:00
snipe
6f9ba6ede4 Merge remote-tracking branch 'origin/develop' 2024-03-29 12:49:22 +00:00
snipe
df4e6a0023 Fixed typo in Polish
I will fix this in CrowdIn shortly

Signed-off-by: snipe <snipe@snipe.net>
2024-03-29 12:47:43 +00:00
snipe
d60fa65f85 Merge remote-tracking branch 'origin/develop' 2024-03-28 21:59:36 +00:00
snipe
8081a82fe4 Merge branch 'develop' of https://github.com/snipe/snipe-it into develop 2024-03-28 21:58:58 +00:00
snipe
f42e5d5292 Reverting the store/update asset API responses for now
This currently breaks the Jamf integration - need a better longer term plan.

Signed-off-by: snipe <snipe@snipe.net>
2024-03-28 21:58:49 +00:00
snipe
5a3f5b03d0 Merge pull request #14456 from akemidx/feature/sc-25079/legacy-locations
Default Locale value changed to en-US
2024-03-28 21:47:40 +00:00
akemidx
721902c2d4 committed for later 2024-03-28 16:44:44 -04:00
Godfrey M
a450530c74 fixes z-index of table load 2024-03-28 11:44:55 -07:00
snipe
2b4886f37f Commented out Heroic deploy for now 2024-03-28 17:43:18 +00:00
snipe
b45de3e17f Update README.md
Added alert notations
2024-03-28 17:41:46 +00:00
snipe
b2eea3e5a5 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	public/js/dist/all-defer.js
#	public/mix-manifest.json
2024-03-28 13:02:51 +00:00
snipe
f411c0fdd8 Merge pull request #14518 from snipe/fixes/downgrade_alpine
Downgrade alpine to 3.13.5
2024-03-28 12:59:52 +00:00
snipe
74d8431d01 Downgrade alpine to 3.13.5
Signed-off-by: snipe <snipe@snipe.net>
2024-03-28 12:58:43 +00:00
snipe
3ea0cd75a5 Merge remote-tracking branch 'origin/develop' 2024-03-28 12:27:24 +00:00
snipe
5f6c746d25 Merge pull request #14517 from snipe/bug/sc-25186/label_index
Check that the array key exists in the label engine
2024-03-28 12:26:20 +00:00
snipe
1f2d30ebf4 Check that the array key exists
Signed-off-by: snipe <snipe@snipe.net>
2024-03-28 12:25:29 +00:00
akemidx
e6b366020a lots of attempts and syntax, but no go 2024-03-27 19:05:59 -04:00
snipe
6dd6b45829 Merge remote-tracking branch 'origin/develop' 2024-03-27 20:43:34 +00:00
snipe
e5800a2dac Merge pull request #14516 from snipe/fixes/fixed_sorting_on_last_checkin_assets_api
Fixes/fixed sorting on last checkin assets api
2024-03-27 20:39:12 +00:00
snipe
0d3d172108 Make last_checkin searchable and fillable
Signed-off-by: snipe <snipe@snipe.net>
2024-03-27 20:37:40 +00:00
snipe
86677b5f13 Make last_checkin sortable
Signed-off-by: snipe <snipe@snipe.net>
2024-03-27 20:37:25 +00:00
snipe
3f5b94f8ad Merge remote-tracking branch 'origin/develop' 2024-03-27 19:52:23 +00:00
snipe
cf8cb8521b Merge pull request #14515 from squintfox/fixes-results-not-limited-by-api-params
Fixes #14289: /reports/activity API endpoint returns too many results due to orwhere
2024-03-27 19:51:58 +00:00
Robert Spadaro
ccd00caa70 Wrap where logic in additional where statement to protect appended params 2024-03-27 15:36:00 -04:00
snipe
57010b4c23 Merge pull request #14500 from Godmartinz/add-accessory-signature-to-print-all
Added signature to user print report for Accessories and Consumables
2024-03-27 19:02:59 +00:00
snipe
545a185614 Merge pull request #14262 from akemidx/bug/sc-24812
Last Checkin Date added to Hardware View and Index
2024-03-27 19:02:25 +00:00
snipe
1572e339f9 Merge pull request #14514 from snipe/localizations/new_translations_march_224
Updated translations
2024-03-27 19:01:23 +00:00
snipe
7782e5cc93 Updated translations
Signed-off-by: snipe <snipe@snipe.net>
2024-03-27 18:59:28 +00:00
Godfrey Martinez
bcdda551b3 Merge pull request #12 from Godmartinz/remove_jquery
removes jquery and updates translation
2024-03-27 11:58:11 -07:00
Godfrey M
bc66c0f223 removes jquery and updates translation 2024-03-27 11:56:47 -07:00
Jeff Clay
1b8c7ff4ec Added PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT options to database.php and updated .env files to provide value for the new option. 2024-03-27 11:38:13 -05:00
snipe
3bb81d1e4d Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	public/js/dist/all-defer.js
#	public/mix-manifest.json
2024-03-27 16:18:28 +00:00
snipe
756c44fcba Merge pull request #14510 from snipe/snyk/Upgrade-alpinejs-from-3.13.5-to-3.13.6
[Snyk] Upgrade alpinejs from 3.13.5 to 3.13.6
2024-03-27 16:14:53 +00:00
snipe
befa4428d0 Merge pull request #14509 from snipe/feature/sc-25173/filter_assigned_user_assets_by_category_id
Added ability to filter in user's assigned assets by category ID and model ID
2024-03-27 16:13:51 +00:00
snipe
60c678680a [Snyk] Upgrade alpinejs from 3.13.5 to 3.13.6
Signed-off-by: snipe <snipe@snipe.net>
2024-03-27 16:12:57 +00:00
snipe
8bc9688d71 Added ability to filter on category ID and model ID from user’s asset API
Signed-off-by: snipe <snipe@snipe.net>
2024-03-27 16:04:00 +00:00
Godfrey M
aa8af2220c trying to remove an encrypted field but not all fields 2024-03-26 16:10:08 -07:00
akemidx
b124b9af4d adding in change to settings table 2024-03-26 16:50:39 -04:00
snipe
ae403da8c1 Merge pull request #14502 from marcusmoore/bug/sc-25004/pwd_secure_complexity-validation
Added validation around `pwd_secure_complexity`
2024-03-26 20:05:04 +00:00
Marcus Moore
b5b8777c94 Extract translation string 2024-03-26 12:23:57 -07:00
snipe
850f85ff59 Merge pull request #14369 from spencerrlongg/bug/sc-24343
Add new validator for custom field checkboxes and fix asset model default updates
2024-03-26 19:22:29 +00:00
Godfrey M
84cc88831d adds signature for components 2024-03-26 12:18:10 -07:00
Godfrey M
f4f9b165a7 moves signature check inside of td 2024-03-26 11:24:34 -07:00
Godfrey M
3222d4c8df adds signature check 2024-03-26 09:18:34 -07:00
Godfrey M
3173ead2e7 adds accessory signature to user print report 2024-03-26 09:11:54 -07:00
Godfrey M
040f826c52 removes encrypted fields as a selectable option for labels 2024-03-26 08:57:18 -07:00
snipe
89d733d442 Merge remote-tracking branch 'origin/develop' 2024-03-26 14:53:24 +00:00
snipe
df49e8350f Merge pull request #14498 from snipe/features/limit_report_by_admin
Fixed #14495 - Allow user_id to be passed to limit to only specific admins
2024-03-26 14:52:03 +00:00
snipe
3ced85080a Fixed #14495 - Allow user_id to be passed to limit to only specific admins
Signed-off-by: snipe <snipe@snipe.net>
2024-03-26 14:45:20 +00:00
snipe
0611ab9b4c Merge remote-tracking branch 'origin/develop' 2024-03-26 12:29:39 +00:00
snipe
f450cafe3e Fixed missing div
Signed-off-by: snipe <snipe@snipe.net>
2024-03-26 12:29:25 +00:00
snipe
1f29eb1875 Merge pull request #14494 from snipe/features/add_supplier_address_to_licenses
Added supplier details to license view
2024-03-26 12:20:57 +00:00
snipe
a4e5ae0938 Removed duplicates
Signed-off-by: snipe <snipe@snipe.net>
2024-03-26 12:20:27 +00:00
snipe
77dacfcc30 Show if deleted supplier
Signed-off-by: snipe <snipe@snipe.net>
2024-03-26 12:19:29 +00:00
snipe
0d9b6eaf71 Added supplier details to license view
Signed-off-by: snipe <snipe@snipe.net>
2024-03-26 12:18:04 +00:00
snipe
7060ffaf34 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	config/version.php
#	public/js/dist/bootstrap-table.js
#	public/mix-manifest.json
2024-03-26 11:17:07 +00:00
snipe
02a37e2f89 Bumped hash
Signed-off-by: snipe <snipe@snipe.net>
2024-03-26 10:16:46 +00:00
snipe
9c1b1bc2b5 Removed fre-order columns - it’s not currently used
Signed-off-by: snipe <snipe@snipe.net>
2024-03-26 10:15:46 +00:00
snipe
b34156ca25 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	public/js/dist/bootstrap-table.js
#	public/mix-manifest.json
2024-03-26 09:58:35 +00:00
snipe
61bdb57b5d Merge pull request #14492 from snipe/feature/sc-25142/deeplink_search_urls
Fixed #14483 - adds deeplinking to search/sort/pagination
2024-03-26 09:55:50 +00:00
snipe
9df84e235c Check for config variable
Signed-off-by: snipe <snipe@snipe.net>
2024-03-26 09:54:40 +00:00
snipe
566ba4783e Fixed #14483 - adds deeplinking to search/sort/pagination
Signed-off-by: snipe <snipe@snipe.net>
2024-03-26 09:50:01 +00:00
snipe
b41b4b1732 Merge remote-tracking branch 'origin/develop' 2024-03-26 08:48:44 +00:00
snipe
ccf9457c45 Merge pull request #14491 from PP-JN-RL/patch-1
Added Dymo Labelwriter 1933081
2024-03-26 08:46:03 +00:00
snipe
53aabdab66 Merge remote-tracking branch 'origin/develop' 2024-03-26 08:33:40 +00:00
snipe
8ff85c952e Fixed labelwriter 2112283 namespace
Signed-off-by: snipe <snipe@snipe.net>
2024-03-26 08:33:30 +00:00
Phil J R
afe1cb8234 Create LabelWriter_1933081.php
Added a longer version of the existing label (25 x 54mm vs. 25 x 89mm) due to better availability and to support longer asset names.
2024-03-26 08:29:47 +00:00
snipe
bd42505799 Merge remote-tracking branch 'origin/develop' 2024-03-26 08:23:40 +00:00
snipe
6c735c97c6 Merge pull request #14490 from snipe/bug/sc-25141/bad_method_call_model_restore_from_view
Fixed #14482 - bad method call model restore from view
2024-03-26 08:21:27 +00:00
snipe
31a57cdf14 Fixed #14482 - bad method call on restore from view
Signed-off-by: snipe <snipe@snipe.net>
2024-03-26 08:18:59 +00:00
snipe
7ebbef25e7 Standardize button styling
Signed-off-by: snipe <snipe@snipe.net>
2024-03-26 08:18:36 +00:00
Phil J R
f836342194 Rename Label_Writer_2112283.php to LabelWriter_2112283.php
Fix the name of LabelWWriter_2112283 to be consistent with the existing one.
2024-03-26 08:16:00 +00:00
spencerrlongg
5cf1a6c300 new validator for radio buttons 2024-03-25 21:03:13 -05:00
Marcus Moore
bd506820b7 Display error message 2024-03-25 17:59:39 -07:00
Marcus Moore
5815607924 Add validation for pwd_secure_complexity 2024-03-25 17:45:41 -07:00
spencerrlongg
9b40c9788f rm commented tests 2024-03-25 18:58:49 -05:00
snipe
67b5e9093e Merge pull request #14488 from marcusmoore/bug/pass-last-audit-date-through-for-validation
Handle badly formatted `last_audit_date` in `StoreAssetRequest`
2024-03-25 20:57:20 +00:00
Marcus Moore
57d1c036ec Improve method name 2024-03-25 13:53:30 -07:00
Marcus Moore
71722b753d Little bit of clean up 2024-03-25 13:49:03 -07:00
Marcus Moore
a2625c889a Improve comment 2024-03-25 13:48:32 -07:00
Marcus Moore
c98b9da612 Pass last_audit_date through for model level validation if not a date 2024-03-25 13:47:24 -07:00
Marcus Moore
675717ff82 Add failing test 2024-03-25 13:46:22 -07:00
snipe
83ef7c6fe8 Merge pull request #14486 from marcusmoore/bug/sc-25139
Fixes `last_audit_date` not being stored via API correctly
2024-03-25 19:49:54 +00:00
Marcus Moore
5f4c964309 Account for last_audit_date not being provided 2024-03-25 12:45:11 -07:00
Marcus Moore
66ba96d531 Set last_audit_date to valid format in StoreAssetRequest 2024-03-25 12:38:12 -07:00
snipe
d67b2da064 Merge pull request #14485 from PP-JN-RL/patch-1
Created Dymo LabelWriter Label 2112283
2024-03-25 16:50:10 +00:00
Phil J R
e45fd4088f Created Dymo LabelWriter Label 2112283
I have added the layout for the Dymo LabelWriter 2112283 Labels.
They are: DYMO 2112283 DURABLE SMALL MULTI PURPOSE LABELS (160 LABELS) - 25 X 54MM
2024-03-25 16:31:20 +00:00
spencerrlongg
7e4a0eedf0 rm dumb note 2024-03-25 10:46:26 -05:00
snipe
3f812f696d Merge pull request #14472 from snipe/fixes/last_audit_date_via_api
Added validation for last_audit_date and next_audit_date
2024-03-25 14:35:42 +00:00
Godfrey M
633249b08a user assets get updated when a user changes location 2024-03-21 15:15:40 -07:00
Godfrey M
21c3b1fbd2 rename declined message to note, increased width of textarea 2024-03-21 14:03:25 -07:00
snipe
e9e6f925bf Updated validation
Signed-off-by: snipe <snipe@snipe.net>
2024-03-21 18:34:39 +00:00
snipe
828b84084d Added validation for last_audit_date and next_audit_date
Signed-off-by: snipe <snipe@snipe.net>
2024-03-21 18:29:38 +00:00
snipe
a6a0bfacc2 Merge remote-tracking branch 'origin/develop' 2024-03-21 18:03:19 +00:00
snipe
c4b7e77498 Merge pull request #14089 from spencerrlongg/bug/escaped_quotes_in_listbox
Use `htmlentities()` instead of `htmlspecialcharacters()` on Custom Field Listbox Values
2024-03-21 12:55:25 +00:00
snipe
91c7180bfd Merge pull request #14469 from snipe/feature/sc-19515/2fa_reset_log
Added 2FA reset log entry
2024-03-21 12:52:22 +00:00
Marcus Moore
b368acf941 Implement test case 2024-03-20 17:46:09 -07:00
snipe
7c39f516b9 Merge pull request #14421 from marcusmoore/fixes/add-minimal-validation-around-asset-tags
Adds a minimal amount of validation around asset_tags in AssetsController
2024-03-21 00:04:44 +00:00
snipe
ce1ddcfcee Merge pull request #14438 from marcusmoore/chore/sc-25071
Removed the need to add `InteractsWithSettings` to each test case
2024-03-21 00:03:34 +00:00
snipe
945e8b402f Only offer the 2FA reset if the user already has 2FA set up
Signed-off-by: snipe <snipe@snipe.net>
2024-03-20 23:52:51 +00:00
snipe
5ed2bd0fb7 Skip the normal edit observer
Signed-off-by: snipe <snipe@snipe.net>
2024-03-20 23:52:22 +00:00
snipe
bc908b854d Added icon
Signed-off-by: snipe <snipe@snipe.net>
2024-03-20 23:44:47 +00:00
snipe
2067b1138a Added the log item
Signed-off-by: snipe <snipe@snipe.net>
2024-03-20 23:43:58 +00:00
snipe
1ffbdee156 Updated 2FA text to not be google authenticator specific
Signed-off-by: snipe <snipe@snipe.net>
2024-03-20 23:43:30 +00:00
snipe
bd2812cac1 Added new string
Signed-off-by: snipe <snipe@snipe.net>
2024-03-20 23:43:12 +00:00
snipe
f2a5eac256 Tightened up 2FA text
Signed-off-by: snipe <snipe@snipe.net>
2024-03-20 23:43:05 +00:00
snipe
b4e647dbd1 Merge remote-tracking branch 'origin/develop' 2024-03-20 21:31:04 +00:00
Marcus Moore
530291f81c Implement some tests 2024-03-20 14:28:27 -07:00
snipe
de18e449a6 Merge pull request #14464 from snipe/features/toggle_all_columns
Added "toggle all" to column selector
2024-03-20 21:26:23 +00:00
snipe
dce19e0bea Set names and actions to switchable = false
Signed-off-by: snipe <snipe@snipe.net>
2024-03-20 21:25:50 +00:00
snipe
1f586d3102 Removed data-show-columns-toggle-all data attribute
Signed-off-by: snipe <snipe@snipe.net>
2024-03-20 21:25:16 +00:00
snipe
e5d01170d2 Fixed locale, added showColumnsToggleAll and minimumCountColumns
Signed-off-by: snipe <snipe@snipe.net>
2024-03-20 21:24:59 +00:00
Marcus Moore
393dc51167 Add assertions around the event dispatch 2024-03-20 13:44:26 -07:00
Marcus Moore
984cc7a4f2 Scaffold tests around asset checkout via web 2024-03-20 13:29:25 -07:00
snipe
0f11963127 Merge remote-tracking branch 'origin/develop' 2024-03-20 19:01:03 +00:00
snipe
d8378f2a10 Merge pull request #14468 from snipe/features/added_default_location_to_print_all_assigned
Added default location to print all assigned
2024-03-20 18:57:01 +00:00
snipe
a0a5480c97 Added default location to print all assigned
Signed-off-by: snipe <snipe@snipe.net>
2024-03-20 18:55:47 +00:00
snipe
3391108551 Merge remote-tracking branch 'origin/develop' 2024-03-20 12:57:30 +00:00
snipe
52551dad0f Merge pull request #14465 from snipe/features/14460_add_avif_format
Added #14460 add avif format
2024-03-20 12:39:14 +00:00
snipe
321414f6e3 Updated comment
Signed-off-by: snipe <snipe@snipe.net>
2024-03-20 12:38:48 +00:00
snipe
7787fe42c8 Added avif to helpers
Signed-off-by: snipe <snipe@snipe.net>
2024-03-20 12:30:28 +00:00
snipe
3b66912742 Fixed #14460 - added support for avif
Signed-off-by: snipe <snipe@snipe.net>
2024-03-20 12:25:02 +00:00
snipe
278a25c63b Added toggle all to column selector
Signed-off-by: snipe <snipe@snipe.net>
2024-03-20 12:14:41 +00:00
snipe
0d124bb5a1 Fixed indent
Signed-off-by: snipe <snipe@snipe.net>
2024-03-20 12:08:35 +00:00
snipe
417caae589 Added translation
Signed-off-by: snipe <snipe@snipe.net>
2024-03-20 12:07:18 +00:00
snipe
3d306aacc5 Fixed mismatched HTML tag
Signed-off-by: snipe <snipe@snipe.net>
2024-03-20 11:52:51 +00:00
snipe
ea4ecaea03 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-03-20 11:04:34 +00:00
snipe
6c90f9e395 Merge pull request #14462 from snipe/fixes/small_ui_tweaks_for_country_dropdown
Wider country dropdown
2024-03-20 11:01:39 +00:00
snipe
ddf81ba135 Wider country dropdown
Signed-off-by: snipe <snipe@snipe.net>
2024-03-20 11:00:06 +00:00
snipe
8ebb41caa6 Merge pull request #14461 from snipe/security/update_bs_tables
[Snyk] Upgrade bootstrap-table from 1.22.2 to 1.22.3 #14455
2024-03-20 10:39:05 +00:00
snipe
faf48b1684 [Snyk] Upgrade bootstrap-table from 1.22.2 to 1.22.3 #14455
Signed-off-by: snipe <snipe@snipe.net>
2024-03-20 10:37:53 +00:00
snipe
b8232d205b Merge pull request #14457 from Godmartinz/bulk_delete_locations_bug
Fixed Bulk delete locations bug
2024-03-20 10:35:45 +00:00
Godfrey M
62745923cf fixes API location delete 2024-03-19 15:25:28 -07:00
Godfrey M
090466123f add withCount to query instead 2024-03-19 15:18:18 -07:00
Godfrey M
38a3e36cd6 fixes translation usage 2024-03-19 14:32:21 -07:00
Godfrey M
e8dc634a40 fixes translation usage 2024-03-19 14:30:53 -07:00
Godfrey M
0d0984a400 Bulk Delete Locations does not work [sc-25100] 2024-03-19 14:26:40 -07:00
akemidx
8640cad033 was using lcoations and not locale. fixed 2024-03-19 16:11:32 -04:00
akemidx
dc29717623 fixing default 2024-03-19 15:51:05 -04:00
snipe
814914924f Merge remote-tracking branch 'origin/develop' 2024-03-19 15:51:07 +00:00
snipe
c7083488b2 Merge pull request #14447 from snipe/feature/sc-25020_better_print_view
Add additional options to print all assigned view
2024-03-19 15:01:50 +00:00
snipe
4b4d383509 Removed - it’s for another PR
Signed-off-by: snipe <snipe@snipe.net>
2024-03-19 15:00:26 +00:00
Godfrey M
b9986033cc removed abbr. of variable, changed variable types in migration 2024-03-18 16:03:40 -07:00
akemidx
3680e04817 migration to set legacy locations to an standardized format 2024-03-18 18:29:59 -04:00
snipe
21e23baa37 Fixed ternary
Signed-off-by: snipe <snipe@snipe.net>
2024-03-18 21:28:46 +00:00
snipe
fcd130ae15 Layout improvements
Signed-off-by: snipe <snipe@snipe.net>
2024-03-18 21:17:46 +00:00
Godfrey M
8b52d5da85 fixed typos, reordered jquery, fixed migrations 2024-03-18 12:36:54 -07:00
Marcus Moore
d1dffb84dc Remove InteractsWithSettings trait for remaining tests 2024-03-18 12:33:45 -07:00
Marcus Moore
541350916d Merge branch 'develop' into chore/sc-25071
# Conflicts:
#	tests/Feature/Api/Users/UpdateUserApiTest.php
#	tests/Feature/Notifications/AccessoryWebhookTest.php
#	tests/Feature/Notifications/AssetWebhookTest.php
#	tests/Feature/Notifications/ComponentWebhookTest.php
#	tests/Feature/Notifications/ConsumableWebhookTest.php
#	tests/Feature/Notifications/LicenseWebhookTest.php
2024-03-18 12:33:31 -07:00
Godfrey M
01afa9a749 declined notes are reflected in the action logs 2024-03-18 10:50:15 -07:00
Godfrey M
57f5d4a570 deleted_msg saves to db 2024-03-18 10:45:47 -07:00
Godfrey M
4588393b76 adds declined msg to mail notif, updates lang files and checkout acceptance controller 2024-03-18 10:25:55 -07:00
Godfrey M
0fd99d410e adds a text field and jquery to show/hide text field 2024-03-18 09:36:09 -07:00
snipe
002fd4ce30 Nicer formatting for signoff
Signed-off-by: snipe <snipe@snipe.net>
2024-03-18 13:44:51 +00:00
snipe
7b4ecb275f Use trans choice for language
Signed-off-by: snipe <snipe@snipe.net>
2024-03-18 13:29:01 +00:00
snipe
2df5d3a8ff Fixed column selector
Signed-off-by: snipe <snipe@snipe.net>
2024-03-18 13:06:08 +00:00
snipe
7070bad53b 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-03-18 12:32:22 +00:00
snipe
da62d6af26 Merge pull request #14445 from snipe/fixes/check_for_valid_license_category_on_view_assets
Make sure the category is still valid before displaying on view assets
2024-03-18 12:30:15 +00:00
snipe
d0d4d14787 Make sure the category is still valid before displaying on view assets
Signed-off-by: snipe <snipe@snipe.net>
2024-03-18 12:29:00 +00:00
snipe
09d69b214b Merge pull request #14436 from marcusmoore/chore/sc-24901
Organized notification test cases
2024-03-18 12:20:23 +00:00
snipe
0e2aaebda4 Merge pull request #14406 from mauro-miatello/develop
Hide/Show ecnrypted values when click on the lock icon
2024-03-18 12:19:54 +00:00
snipe
ec2c58163f Merge pull request #14437 from marcusmoore/chore/sc-25070
Removed dead test code
2024-03-18 12:19:35 +00:00
Marcus Moore
a28bee86ba Extract method 2024-03-14 16:33:49 -07:00
Marcus Moore
fb64892971 Re-order 2024-03-14 16:26:27 -07:00
Marcus Moore
95ff692b14 Improve InteractsWithSettings name 2024-03-14 15:06:52 -07:00
Marcus Moore
8003615b1f Move InteractsWithSettings to TestCase 2024-03-14 14:15:11 -07:00
Marcus Moore
948dc3c974 Remove duplicate trait 2024-03-14 13:11:53 -07:00
Marcus Moore
1afb724606 Remove commented (and old) test cases 2024-03-14 13:11:43 -07:00
Marcus Moore
451281d833 Delete test cases with only commented code 2024-03-14 13:11:27 -07:00
Marcus Moore
485f11c945 Move trait usage to parent TestCase 2024-03-14 12:56:49 -07:00
Marcus Moore
dbc79655b0 Cleanup 2024-03-14 12:02:56 -07:00
Marcus Moore
02f6aa6161 Add group tag for new test case 2024-03-14 11:19:36 -07:00
Marcus Moore
07c5264b41 Organize email check in notifications test 2024-03-14 11:17:47 -07:00
Marcus Moore
7c178a6a78 Merge branch 'develop' into chore/sc-24901
# Conflicts:
#	tests/Feature/Notifications/AssetWebhookTest.php
2024-03-14 11:13:14 -07:00
snipe
f56d53d7c1 Prod assets
Signed-off-by: snipe <snipe@snipe.net>
2024-03-14 17:14:33 +00:00
snipe
4cd4a936d8 Updated dev assets
Signed-off-by: snipe <snipe@snipe.net>
2024-03-14 15:43:47 +00:00
snipe
7bae4c39c6 Merge pull request #14401 from uberbrady/fix_locale_warning
Fix [sc-25008] - correct and improve legacy language warnings
2024-03-14 15:42:28 +00:00
snipe
d55d95bbea Merge pull request #14415 from Godmartinz/date_picker_z_order
Fixed z-index of date-picker
2024-03-14 15:39:11 +00:00
snipe
5e48d56561 Merge pull request #14427 from marcusmoore/bug/sc-25014
Removes the unused `mediconesystems/livewire-datatables` package
2024-03-14 15:35:53 +00:00
snipe
6a5098fb0c Merge remote-tracking branch 'origin/develop' 2024-03-14 13:26:38 +00:00
snipe
4e835e1772 Merge pull request #14430 from snipe/bug/sc-25066/fixed_requestable_search
Move requestable scope below sorting, etc
2024-03-14 13:25:44 +00:00
snipe
cce8cb4f5e Move requestable scope below sorting, etc
Signed-off-by: snipe <snipe@snipe.net>
2024-03-14 13:24:22 +00:00
Marcus Moore
8aed26aab1 Remove unneeded test cases 2024-03-13 16:56:54 -07:00
Marcus Moore
01d5d4c2c8 Improve data provider name 2024-03-13 16:37:50 -07:00
Marcus Moore
592385cb07 Remove mediconesystems/livewire-datatables package 2024-03-13 11:58:03 -07:00
snipe
85123b3e66 Rework print page
Still seeing a weird error tho, not done yet

Signed-off-by: snipe <snipe@snipe.net>
2024-03-13 12:36:17 +00:00
Marcus Moore
0fcf223960 Add minimal validation for asset_tags 2024-03-12 12:00:10 -07:00
Godfrey M
bf0bd06f20 put important back 2024-03-11 15:56:53 -07:00
Godfrey M
f07b0b6bd7 removed important 2024-03-11 15:54:59 -07:00
Godfrey M
717b26c834 fixes z-index of date-picker 2024-03-11 15:53:59 -07:00
snipe
8bb8eab69b Merge remote-tracking branch 'origin/develop' 2024-03-11 15:00:38 +00:00
snipe
693d1c9452 Merge pull request #14413 from snipe/fixes/deprecation_on_strtoupper
Fixed deprecation warning on `strtoupper()`
2024-03-11 14:59:55 +00:00
snipe
b049bb1d5c Check for null on select
Signed-off-by: snipe <snipe@snipe.net>
2024-03-11 14:55:49 +00:00
snipe
c5c6b3bbc6 Starting the revised print page
Signed-off-by: snipe <snipe@snipe.net>
2024-03-11 14:23:25 +00:00
snipe
1df56a7cab Merge pull request #14407 from snipe/bug/sc-25019_added_created_at_pivot
Added created_at to license pivot
2024-03-10 16:40:56 +00:00
snipe
3f5cc2507d Used updated_at instead
Signed-off-by: snipe <snipe@snipe.net>
2024-03-10 16:39:49 +00:00
snipe
5a85424295 Added created_at to license pivot
Signed-off-by: snipe <snipe@snipe.net>
2024-03-10 16:33:04 +00:00
snipe
a53a8cca74 Merge remote-tracking branch 'origin/develop' 2024-03-10 14:40:41 +00:00
snipe
3fdee881f9 Merge pull request #14404 from snipe/fixes/Uninitialized-string-offset-0-in-labels
Fixed uninitialized offset in labels in new label engine
2024-03-10 14:40:12 +00:00
snipe
a289dfaf88 Cleanup
Signed-off-by: snipe <snipe@snipe.net>
2024-03-10 14:33:53 +00:00
MrM
8abd359b5b Script to hide / show encrypted values in web ui
added a function to show/hide encrypted values with a simple trick because ClipboardJS can't copy display:none element's value
2024-03-10 15:18:54 +01:00
MrM
9359809b4f Hide / Show encrypted values in web ui
added a span element to hide encrypted values
2024-03-10 15:09:46 +01:00
snipe
cde5502f94 Handle blank labels on asset label fields
Signed-off-by: snipe <snipe@snipe.net>
2024-03-10 14:03:21 +00:00
spencerrlongg
04e0a9d4a5 commented tests for now 2024-03-08 13:14:59 -06:00
snipe
28ec0b8ebb Removed debugging console lines
Signed-off-by: snipe <snipe@snipe.net>
2024-03-08 17:19:31 +00:00
snipe
37dfecf098 Fixed uninitialized offset in labels
Signed-off-by: snipe <snipe@snipe.net>
2024-03-08 16:46:56 +00:00
snipe
9d8ce872a4 Merge remote-tracking branch 'origin/develop' 2024-03-08 14:56:21 +00:00
snipe
07880dfe50 Merge pull request #14400 from snipe/localizations/updated_strings
Updated language strings, added Somali
2024-03-08 14:07:32 +00:00
snipe
7eed9f8542 Added Somali
Signed-off-by: snipe <snipe@snipe.net>
2024-03-08 14:06:21 +00:00
Brady Wetherington
a2e70dd6b2 Fix [sc-25008] - correct and improve legacy language warnings
The legacy language warning was misfiring when a user's language
didn't match the APP_LOCALE from .env.

Additionally, we weren't properly warning when the legacy-language
came from Settings or from the user themselves. Both of which should
be impossible but still probably not a bad idea to warn on it, anyways
2024-03-08 14:04:21 +00:00
snipe
b9aeded957 Updated strings
Signed-off-by: snipe <snipe@snipe.net>
2024-03-08 14:01:34 +00:00
snipe
027361f079 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	config/version.php
2024-03-08 10:01:21 +00:00
snipe
ff10d1540f Bumped version
Signed-off-by: snipe <snipe@snipe.net>
2024-03-08 10:00:00 +00:00
snipe
0f63fa23e0 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	package-lock.json
2024-03-08 09:08:29 +00:00
snipe
22ef569e5e Merge branch 'security/snyc_Upgrade-webpack-from-5.90.1-to-5.90.2_14395' into develop 2024-03-08 08:50:26 +00:00
snipe
f3663f0983 [Snyk] Upgrade webpack from 5.90.1 to 5.90.2 #14395
Signed-off-by: snipe <snipe@snipe.net>
2024-03-08 08:45:49 +00:00
snipe
112ddaf55b Merge pull request #14394 from marcusmoore/fixes/check-endpoint-is-set-for-checkout-in-notifications
Ensure Chat and Teams endpoints are not blank before attempting to send webhook on checkout and check in
2024-03-08 08:44:52 +00:00
snipe
bda6fdf09c Merge pull request #14395 from snipe/snyk-upgrade-9e465161f7c9fd096a214ca3ad2fae7b
[Snyk] Upgrade webpack from 5.90.1 to 5.90.2
2024-03-08 08:44:07 +00:00
snyk-bot
a62198f33f fix: upgrade webpack from 5.90.1 to 5.90.2
Snyk has created this PR to upgrade webpack from 5.90.1 to 5.90.2.

See this package in npm:
https://www.npmjs.com/package/webpack

See this project in Snyk:
https://app.snyk.io/org/snipe/project/3d53e1dd-b8bf-46b5-ba61-18ce26933166?utm_source=github&utm_medium=referral&page=upgrade-pr
2024-03-08 06:20:14 +00:00
Marcus Moore
4b0bfc52b4 Ensure webhook endpoint is set before attempting to send to google or microsoft 2024-03-07 18:10:10 -08:00
snipe
78868813b1 Merge remote-tracking branch 'origin/develop' 2024-03-08 01:05:07 +00:00
snipe
e8be178ac7 Merge pull request #14393 from marcusmoore/bug/sc-24862
Guard against checking require acceptance on non-existent relationship in accessory model
2024-03-08 01:04:26 +00:00
Marcus Moore
695428cd44 Guard against unrelated category 2024-03-07 16:59:01 -08:00
snipe
9ae779e442 Merge remote-tracking branch 'origin/develop' 2024-03-07 23:44:30 +00:00
snipe
db92febdc7 Merge pull request #14392 from snipe/fixes/removed_unneeded_starts_with_validation_string
Removed unneeded validation message
2024-03-07 23:42:58 +00:00
snipe
5cf10cec34 Remloved unneeded validation message
Signed-off-by: snipe <snipe@snipe.net>
2024-03-07 23:40:30 +00:00
snipe
7939c691f7 Added Brother 18mm label type
Signed-off-by: snipe <snipe@snipe.net>
2024-03-07 22:04:12 +00:00
snipe
ea2d54b0f7 Merge remote-tracking branch 'origin/develop' 2024-03-07 21:22:01 +00:00
snipe
c66267a0f9 Merge pull request #14389 from Godmartinz/remove-pdf-for-old-labels
old engine works as intended
2024-03-07 21:06:57 +00:00
snipe
f1d2f24534 Merge pull request #14388 from marcusmoore/bug/sc-25001
Fixed attempting to run bulk actions on an empty asset collection
2024-03-07 21:03:45 +00:00
Godfrey M
d83974e07f old engine works as intended 2024-03-07 13:03:10 -08:00
Marcus Moore
f270f30728 Redirect if no assets are returned from query 2024-03-07 12:30:08 -08:00
snipe
55c237913c Merge remote-tracking branch 'origin/develop' 2024-03-07 15:11:33 +00:00
snipe
806671df7c Merge pull request #14385 from snipe/feature/sc-24971_convert_unencrypted_custom_fields
Added console command to encrypt previously unencrypted fields
2024-03-07 15:08:19 +00:00
snipe
d64ee42ec3 Wrapped in a transaction
Signed-off-by: snipe <snipe@snipe.net>
2024-03-07 15:04:08 +00:00
snipe
fe08f39900 Fixed typo
Signed-off-by: snipe <snipe@snipe.net>
2024-03-07 14:43:06 +00:00
snipe
5123ab57c9 Added console command to encrypt previously unencrypted fields
Signed-off-by: snipe <snipe@snipe.net>
2024-03-07 14:40:52 +00:00
snipe
313b327cd7 Bumped hash for master
Signed-off-by: snipe <snipe@snipe.net>
2024-03-07 11:34:38 +00:00
snipe
855d922a3e Merge remote-tracking branch 'origin/develop' 2024-03-07 11:31:38 +00:00
snipe
cbe07ad23b Bumped hash
Signed-off-by: snipe <snipe@snipe.net>
2024-03-07 11:30:54 +00:00
snipe
b3aba4ad99 Merge pull request #14379 from chandanchowdhury/master
Fix #13515: Cannot restore backup
2024-03-07 11:30:06 +00:00
snipe
21ad7f549d Merge remote-tracking branch 'origin/develop' 2024-03-07 10:34:30 +00:00
snipe
4b13fa45c5 Merge pull request #14320 from Godmartinz/default_label_bug
Default label setup with custom fields
2024-03-07 10:33:43 +00:00
snipe
485d40c752 Merge remote-tracking branch 'origin/develop' 2024-03-07 10:30:31 +00:00
snipe
8346ae8235 Merge pull request #14370 from ubc-cpsc/bugfix/CVE-2024-27354
Fixes CVE-2024-27354 and CVE-2024-27355 in phpseclib/phpseclib
2024-03-07 10:28:31 +00:00
snipe
109c0f202a Merge remote-tracking branch 'origin/develop' 2024-03-07 10:19:06 +00:00
snipe
4231058aa1 Merge pull request #14371 from Godmartinz/RB17900_notification_bug
Adds User email check when sending Asset acceptance reminder
2024-03-07 10:18:19 +00:00
snipe
6156d67e4a Merge remote-tracking branch 'origin/develop' 2024-03-07 10:17:05 +00:00
snipe
58bf036f52 Merge pull request #14380 from Godmartinz/1dbarcode_unselected_bug
Fixed 1dbarcodes to populate based on settings
2024-03-07 10:16:37 +00:00
Godfrey M
ff7d25c0f2 simplified 1dbarcode logic 2024-03-06 15:30:53 -08:00
Godfrey M
5f0b7f328c if statement order change 2024-03-06 15:24:03 -08:00
Godfrey M
6559581bad conditions 1dbarcode to populate based on settings 2024-03-06 15:10:42 -08:00
Godfrey M
d78262f52b resolved merge conflicts 2024-03-06 14:48:47 -08:00
snipe
bd566324ed Updated assets
Signed-off-by: snipe <snipe@snipe.net>
2024-03-06 20:20:23 +00:00
chandanchowdhury
b65bf5082d Fix #13515: create directories expected by RestoreFromBackup.php 2024-03-06 15:11:41 -05:00
snipe
939e4cba3e Updated prod assets
Signed-off-by: snipe <snipe@snipe.net>
2024-03-06 20:05:16 +00:00
snipe
015a8763a0 Merge remote-tracking branch 'origin/develop' 2024-03-06 20:04:48 +00:00
snipe
02862d80eb Updated dev assets
Signed-off-by: snipe <snipe@snipe.net>
2024-03-06 20:04:31 +00:00
snipe
7b0a3fc6d3 Merge remote-tracking branch 'origin/develop' 2024-03-06 20:01:23 +00:00
snipe
b40b31b7b1 Merge pull request #14378 from snipe/security/snyk_Upgrade-jspdf-autotable-from-3.8.1-to-3.8.2-14365
Upgrade jspdf-autotable from 3.8.1 to 3.8.2 #14365
2024-03-06 19:55:59 +00:00
snipe
149d3d13d1 Upgrade jspdf-autotable from 3.8.1 to 3.8.2 #14365
Signed-off-by: snipe <snipe@snipe.net>
2024-03-06 19:55:19 +00:00
snipe
0f64d66cd8 Merge remote-tracking branch 'origin/develop' 2024-03-06 19:48:55 +00:00
snipe
a85e2f7aad Merge pull request #14372 from snipe/bug/sc-24158
Added route parameter
2024-03-06 19:45:33 +00:00
snipe
4f883b1264 Merge pull request #14375 from Godmartinz/Label-info_fix
Fixed Labels: bulk actions are handled before sorting
2024-03-06 19:44:59 +00:00
Godfrey M
feb78d00cf conditionally shows label fields if on old label engine only 2024-03-06 11:25:49 -08:00
Godfrey M
c9d54baa10 bulk actions are handled before sorting 2024-03-05 15:47:52 -08:00
Godfrey M
940f54dab1 revert some changes 2024-03-05 15:45:35 -08:00
Godfrey M
d83827a44e bulk actions are handled before sorting 2024-03-05 15:43:41 -08:00
spencerrlongg
3a0a13d06d tests written but something not working... 2024-03-05 16:35:06 -06:00
snipe
23f8e35716 Added route parameter
Signed-off-by: snipe <snipe@snipe.net>
2024-03-05 20:39:56 +00:00
spencerrlongg
a251e61d73 rm commented code and add comment 2024-03-05 13:40:44 -06:00
spencerrlongg
af06b1cd06 hide encryption option for checkbox and radio 2024-03-05 13:37:30 -06:00
Brady Wetherington
5b9120ba6c Merge branch 'develop' into snipeit_v7_laravel10 2024-03-05 19:22:37 +00:00
snipe
7769a93a10 Bumped version
Signed-off-by: snipe <snipe@snipe.net>
2024-03-05 19:07:40 +00:00
snipe
95a6c7058f Bumped version
Signed-off-by: snipe <snipe@snipe.net>
2024-03-05 19:06:55 +00:00
Godfrey M
6c3a668400 checks to see if a user has an email before sending them a reminder email. 2024-03-05 10:30:24 -08:00
spencerrlongg
ad0f873ece rm validation stuff 2024-03-05 11:58:00 -06:00
Joël Pittet
3008a4ed7a Fixes CVE-2024-27354 and CVE-2024-27355 2024-03-05 09:55:56 -08:00
Godfrey M
95ef3a336b Merge branch 'develop' into default_label_bug 2024-03-04 12:03:54 -08:00
snipe
9a5c1b8126 Merge pull request #14362 from Godmartinz/labels-not-generating-properly
Fixes inconsistencies with generating labels
2024-03-04 18:49:44 +00:00
Godfrey M
e926db76a0 fixes inconsistencies with generating labels 2024-03-04 10:26:38 -08:00
snipe
9419c7fdeb Fixed contributing link
Signed-off-by: snipe <snipe@snipe.net>
2024-03-01 12:42:26 +00:00
snipe
9dbb4abe7e Fixed tests
Signed-off-by: snipe <snipe@snipe.net>
2024-03-01 12:30:05 +00:00
snipe
19e0fb7955 Reverting CSP change
Signed-off-by: snipe <snipe@snipe.net>
2024-03-01 12:25:14 +00:00
snipe
5b9b21a7d1 Merge pull request #14357 from snipe/fixes/stricter_csp_rules
Removed unsafe-inline and unsafe-eval
2024-03-01 11:48:51 +00:00
snipe
93e69ab0c6 Removed unsafe-inline and unsafe-eval
Signed-off-by: snipe <snipe@snipe.net>
2024-03-01 11:44:49 +00:00
snipe
bc5c559413 Merge pull request #14356 from snipe/fixes/set_csp_rule_to_true_by_default
Set CSP headers to true by default
2024-03-01 11:37:53 +00:00
snipe
9b2fcbff08 Set CSP headers to true by default
Signed-off-by: snipe <snipe@snipe.net>
2024-03-01 11:36:37 +00:00
snipe
ad2674d20b Merge pull request #14355 from snipe/localization/new_strings
Updated language strings
2024-03-01 11:18:12 +00:00
snipe
10ac2c830f Updated language strings
Signed-off-by: snipe <snipe@snipe.net>
2024-03-01 11:17:02 +00:00
snipe
df3053eafb Merge pull request #14354 from snipe/bug/sc-24911
Use SVG cleaner on favicons
2024-03-01 10:19:59 +00:00
snipe
aaae952acb Use SVG cleaner on favicons
Signed-off-by: snipe <snipe@snipe.net>
2024-03-01 10:17:57 +00:00
Jeremy Price
8ace30ee23 Update mailer configurations for Symfony mailer
Newer Laravel uses Symfony mailer instead of SwiftMailer, and that means
that some configs and functionality have changed

In this change, we update config/mail.php with the new config layout and
name/functionality changes

of note:

* New configuration layout supporting lots of new/different mailers
* MAIL_DRIVER has become MAIL_MAILER, though we'll support both
* MAIL_ENCRYPTION is mostly useless, and we mark it as such -- symfony
  mailer detects which type of encryption to use automagically.
* MAIL_TLS_VERIFY_PEER is now available in case of self-signed
  certificates on the mail server, of if you want to access it by a
  different name, or by IP

Accordingly, we also update the .env examples, docker configs, and
the .env builder in the snipeit.sh installation script with the above
changes
2024-02-28 23:37:52 -08:00
akemidx
eb0657c953 Merge branch 'develop' into bug/sc-24812 2024-02-28 17:22:16 -05:00
snipe
b1cd44341b Merge pull request #14347 from snipe/feature/sc-24856_requestable_page
Dynamically show models/assets on requestable page
2024-02-28 15:04:48 +00:00
snipe
3da47cdacd Removed header for consistency
Signed-off-by: snipe <snipe@snipe.net>
2024-02-28 15:03:34 +00:00
snipe
658dda916c Changed operator
Signed-off-by: snipe <snipe@snipe.net>
2024-02-28 15:01:00 +00:00
snipe
7c3d8b896b Updated asset transformers/presenters to display requestable status
Signed-off-by: snipe <snipe@snipe.net>
2024-02-28 14:59:55 +00:00
snipe
1ce9df7998 New translation
Signed-off-by: snipe <snipe@snipe.net>
2024-02-28 14:59:27 +00:00
snipe
a0cbf66c81 Only show tabs if there are requestable assets/models
Signed-off-by: snipe <snipe@snipe.net>
2024-02-28 14:59:20 +00:00
snipe
a4941031cb Merge pull request #14260 from marcusmoore/chore/sc-24808
Added tests around asset check in and added missing actions to the api controller action
2024-02-28 13:34:12 +00:00
snipe
9fd6aea325 Merge pull request #14281 from Godmartinz/preview-label-fields
Added better label previews with the new label engine
2024-02-28 11:48:05 +00:00
snipe
a52181c995 Merge pull request #14283 from akemidx/bug/sc-24788
FIXED: Checked in Assets Did Not Show in Custom Report when Selecting a Valid Checked Out Date
2024-02-28 11:47:46 +00:00
snipe
ee75df0f0a Merge pull request #14346 from snipe/feature/sc-18728
Added `min_amt` functionality to licenses
2024-02-28 11:26:25 +00:00
snipe
92eff653f1 Removed logging
Signed-off-by: snipe <snipe@snipe.net>
2024-02-28 11:26:03 +00:00
snipe
1e66985a78 Merge pull request #14344 from snipe/features/added_created_by_to_groups
Added created_by to groups table
2024-02-28 11:19:52 +00:00
snipe
a059a42799 Added use Auth to API controller
Signed-off-by: snipe <snipe@snipe.net>
2024-02-28 11:14:48 +00:00
snipe
b5603fbfe9 Added min amt to license blade
Signed-off-by: snipe <snipe@snipe.net>
2024-02-28 11:09:07 +00:00
snipe
a0423a9cc3 Added translations
Signed-off-by: snipe <snipe@snipe.net>
2024-02-28 11:08:56 +00:00
snipe
4ab7112988 Added validation and fillable attributes for min_amt
Signed-off-by: snipe <snipe@snipe.net>
2024-02-28 11:08:47 +00:00
snipe
767cf96010 Added min_amt to form
Signed-off-by: snipe <snipe@snipe.net>
2024-02-28 11:08:33 +00:00
snipe
4ffb7790df Added min_amt to API transformer/presenter
Signed-off-by: snipe <snipe@snipe.net>
2024-02-28 11:07:18 +00:00
snipe
3ccc55a78f Added license min amt formatter for BS table
Signed-off-by: snipe <snipe@snipe.net>
2024-02-28 11:06:50 +00:00
snipe
d0d29e03db Migration for min_amt on licenses
Signed-off-by: snipe <snipe@snipe.net>
2024-02-28 11:06:01 +00:00
snipe
92b7c4b5ec Allow sorting on min_amt
Signed-off-by: snipe <snipe@snipe.net>
2024-02-28 11:05:13 +00:00
snipe
dff7c43aed Added minimum account check for licenses
Signed-off-by: snipe <snipe@snipe.net>
2024-02-28 11:05:02 +00:00
snipe
9efbcbbd5e Added min_amt to licenses
Signed-off-by: snipe <snipe@snipe.net>
2024-02-28 11:04:42 +00:00
snipe
31fa0a7044 Removed logging
Signed-off-by: snipe <snipe@snipe.net>
2024-02-28 11:04:32 +00:00
snipe
fcb2bf7fea Merge pull request #14335 from mauro-miatello/develop
Copy encrypted custom fields
2024-02-28 09:04:11 +00:00
snipe
0bd27d61b0 Added created_by to groups table
Signed-off-by: snipe <snipe@snipe.net>
2024-02-28 08:15:59 +00:00
snipe
369ecfa490 Merge pull request #14341 from marcusmoore/chore/sc-24900
Generate unique department names in factory
2024-02-28 07:07:45 +00:00
Marcus Moore
551354b1bb Add group annotation for tests 2024-02-27 18:05:18 -08:00
Marcus Moore
03b7891edc Remove unneeded factory states 2024-02-27 18:03:53 -08:00
Marcus Moore
8978dff054 Consolidate helpers into trait 2024-02-27 18:01:08 -08:00
Marcus Moore
d20844fefa Improve readability by extracting additional helpers 2024-02-27 17:57:12 -08:00
Marcus Moore
cd579a04dd Improve readability by extracting fireCheckOutEvent method 2024-02-27 17:52:18 -08:00
Marcus Moore
15b8140bff Fix test helper 2024-02-27 17:48:17 -08:00
Marcus Moore
9a93ad2e06 Remove unneeded factory state 2024-02-27 17:46:27 -08:00
Marcus Moore
bd4d3aa52b Improve readability by extracting additional helpers 2024-02-27 17:44:19 -08:00
Marcus Moore
bf32ab177f Improve readability by extracting fireCheckInEvent method 2024-02-27 17:37:07 -08:00
Marcus Moore
2ea883aa15 Move Notification::fake() to setUp method 2024-02-27 17:23:30 -08:00
Marcus Moore
43cc296582 Consolidate additional tests 2024-02-27 17:14:35 -08:00
Marcus Moore
4c1aadd74e Improve naming and inline helper 2024-02-27 17:09:22 -08:00
Marcus Moore
7d3719bf70 Consolidate some slack notification tests 2024-02-27 17:07:40 -08:00
Marcus Moore
c08164d864 Update test names 2024-02-27 16:48:17 -08:00
Marcus Moore
b156aa74a5 Update helper name 2024-02-27 16:45:49 -08:00
Marcus Moore
87ba2cb407 Generate unique names for departments 2024-02-27 12:47:56 -08:00
Marcus Moore
5084e5d3ef Improve variable type 2024-02-27 12:23:26 -08:00
Marcus Moore
a5516e3511 Improve trait name 2024-02-27 12:06:29 -08:00
Marcus Moore
0e460baf82 Improve readability 2024-02-27 12:03:36 -08:00
Godfrey M
ef52777ffb removed conditional 2024-02-27 11:33:00 -08:00
Godfrey M
b67ceab849 fields appear in preview, but not bulk generate labels 2024-02-27 11:29:19 -08:00
Marcus Moore
69022bb8b6 Implement test 2024-02-27 11:12:35 -08:00
akemidx
5ffade663a unstash 2024-02-26 18:41:58 -05:00
Marcus Moore
29d729171c Align test with actual values passed from the web 2024-02-26 11:13:39 -08:00
MrM
9475871edb Fix multiple tooltip issue
If there are multiple tooltips, they all report the message "copied" because there is no element selection. This fix resolves the issue.
2024-02-25 14:48:05 +01:00
MrM
b69364d5ff Add copy of encrypted custom fields
Encrypted custom fields may contain sensitive or important information, and it may be useful to have the ability to copy them.
2024-02-25 14:47:06 +01:00
snipe
10dad8e6e6 Merge pull request #14327 from snipe/fixes/better_ui_for_history_importer
Nicer UI for history importer
2024-02-23 11:43:15 +00:00
snipe
a184b4e67c Nicer UI for history importer
Signed-off-by: snipe <snipe@snipe.net>
2024-02-23 11:40:10 +00:00
snipe
8cd0a90ecd Merge pull request #14325 from snipe/fixes/RB-17890
Check for valid supplier in license view
2024-02-23 10:49:56 +00:00
snipe
4a37632ef3 Check for valid supplier in license view
Signed-off-by: snipe <snipe@snipe.net>
2024-02-23 10:48:53 +00:00
snipe
3271d020e9 Merge pull request #14319 from snipe/fixes/RB-17889
Check for activeFile before trying to get header on import
2024-02-23 08:19:21 +00:00
snipe
e494a2670f Merge pull request #14321 from akemidx/accessory_pdf_dl_link
Adding in PDF download to Accesories/Asset/License Histories
2024-02-23 08:18:55 +00:00
snipe
d3a0a337b9 Merge pull request #14323 from ubc-cpsc/bugfix/CVE-2024-25117
Fixes CVE-2024-25117 php-svg-lib lacks path validation on font through SVG inline styles
2024-02-23 08:05:03 +00:00
Joël Pittet
3951ee746d Fixes CVE-2024-25117, no other dependencies 2024-02-22 16:49:02 -08:00
Joël Pittet
84e4257e75 Fixes CVE-2024-25117 2024-02-22 16:40:08 -08:00
Marcus Moore
c401c88702 Scope event fake 2024-02-22 16:19:33 -08:00
Godfrey M
550f9e2afa removes visibility checkmarks for certain fields when in new label engine 2024-02-22 16:19:28 -08:00
Marcus Moore
b55a19cebb Add assertion event is dispatched with correct timestamp 2024-02-22 13:50:46 -08:00
Marcus Moore
4caadcfa19 Clear pending checkout acceptances when checking in asset via api 2024-02-22 13:33:16 -08:00
Marcus Moore
dba837b1d2 Move location migration logic to trait 2024-02-22 13:21:52 -08:00
Marcus Moore
714fc63050 Have legacy locations updated upon api asset checkin 2024-02-22 13:14:30 -08:00
spencerrlongg
b6fa6cba22 note before switching tasks 2024-02-22 15:01:14 -06:00
Marcus Moore
2df026bcb5 Allow updating asset default location when checking in asset via api 2024-02-22 12:40:14 -08:00
Godfrey M
6ee24a7527 remove unnecessary code reformat 2024-02-22 12:36:27 -08:00
Godfrey M
e2dcee1959 cleans up dead code 2024-02-22 12:26:57 -08:00
Godfrey M
4fbea9512f puts textY inside of the forloop 2024-02-22 12:08:47 -08:00
Godfrey M
b7850ab839 puts textY outside of the forloop 2024-02-22 12:08:04 -08:00
Godfrey M
c0215baca5 minor changes 2024-02-22 11:41:04 -08:00
Godfrey M
c62758c5b5 adds custom field select to default label view 2024-02-22 11:36:39 -08:00
spencerrlongg
14358651e4 pushing to test other branches 2024-02-22 13:28:23 -06:00
snipe
f04aeb9f2b Fixed spacing
Signed-off-by: snipe <snipe@snipe.net>
2024-02-22 18:31:02 +00:00
snipe
dc902e7a5a Fixed return type
Signed-off-by: snipe <snipe@snipe.net>
2024-02-22 18:30:23 +00:00
snipe
4fc66e19bb Check for activeFile before trying to get header
Signed-off-by: snipe <snipe@snipe.net>
2024-02-22 18:28:01 +00:00
snipe
e12d2b2a42 Merge pull request #14317 from snipe/fixes/make_website_searchable_on_users_list
Made website searchable on users table
2024-02-22 17:01:58 +00:00
snipe
cb78451d6c Made website searchable on users table
Signed-off-by: snipe <snipe@snipe.net>
2024-02-22 16:13:54 +00:00
snipe
7979bc63ae Merge pull request #14316 from snipe/feature/sc-24871
Added email, phone icons
2024-02-22 14:50:46 +00:00
snipe
e8ad8a7448 Added email, phone icons
Signed-off-by: snipe <snipe@snipe.net>
2024-02-22 14:48:01 +00:00
snipe
eb61f5aa9e Merge pull request #14315 from snipe/fixes/rb-3565
Only send notification if the item is assigned to a person
2024-02-22 12:05:59 +00:00
snipe
3351998efd Only send notification if the item is assigned to a person
Signed-off-by: snipe <snipe@snipe.net>
2024-02-22 12:03:07 +00:00
spencerrlongg
20dbacd22f store good, update needs work 2024-02-21 21:33:34 -06:00
akemidx
0f3be4fdf8 adding in eula pdf dl link. mimics activity log 2024-02-21 17:45:10 -05:00
Marcus Moore
3ae8adfbf9 Remove incomplete flag on test case 2024-02-21 12:33:32 -08:00
Marcus Moore
aa2632fe46 Merge branch 'develop' into chore/sc-24808 2024-02-21 12:33:06 -08:00
Brady Wetherington
8f2843bfcf Merge branch 'develop' into snipeit_v7_laravel10
Had to re-generate composer.lock, and re-do package.json and rebuild assets as well.
2024-02-21 20:22:28 +00:00
Godfrey M
14c86d447b added filter to collectifunction 2024-02-21 11:38:03 -08:00
Godfrey M
bee016e0be keeps example values in the example preview, fixes indent 2024-02-21 09:31:01 -08:00
snipe
54552fc95c Merge pull request #14192 from inietov/fixes/api_issue_checkin_licenses
Fixed #14183  API /hardware/:id/checkin doesn't return Licenses
2024-02-21 11:35:06 +00:00
akemidx
9397372f87 permissions, but they are now all in their own column because reasons??? 2024-02-20 18:48:17 -05:00
akemidx
8bbf6da052 user block, trying to pick out ONLY permissions we wanna see 2024-02-20 18:25:41 -05:00
snipe
ffa7d25fc0 Merge pull request #14308 from snipe/fixes/eager_load_relations_on_locations
Eager load relations to determine deletability on locations
2024-02-20 22:28:39 +00:00
snipe
a37d3b00d0 Merge pull request #14307 from marcusmoore/bug/sc-24867
Fixed title not appearing in new label engine
2024-02-20 22:25:45 +00:00
snipe
04891c7c61 Eager load relations to determine
Signed-off-by: snipe <snipe@snipe.net>
2024-02-20 22:25:00 +00:00
spencerrlongg
d67ff54f4b temporary decrypt, almost there 2024-02-20 16:20:03 -06:00
Marcus Moore
ccec190985 Set label title properly 2024-02-20 13:59:50 -08:00
spencerrlongg
26728a85ad this seems to work for patches 2024-02-20 13:18:40 -06:00
spencerrlongg
c6d85a1b0b allows arrays on checkbox values 2024-02-20 12:23:24 -06:00
snipe
71610fb20f Merge pull request #14304 from snipe/feature/sc-24018
Added ability to bulk delete locations
2024-02-20 18:14:51 +00:00
snipe
cb0f9024b1 Fixed gate
Signed-off-by: snipe <snipe@snipe.net>
2024-02-20 17:56:40 +00:00
snipe
1797480128 Few more translations
Signed-off-by: snipe <snipe@snipe.net>
2024-02-20 17:27:56 +00:00
snipe
972b198248 Removed debugging
Signed-off-by: snipe <snipe@snipe.net>
2024-02-20 17:27:16 +00:00
snipe
9010b7acd0 Use isDeletable instead of asset count
Signed-off-by: snipe <snipe@snipe.net>
2024-02-20 17:27:10 +00:00
snipe
b57b68571e Added blade views
Signed-off-by: snipe <snipe@snipe.net>
2024-02-20 16:44:45 +00:00
snipe
1ca9420baa Fixed incorrect gate
Signed-off-by: snipe <snipe@snipe.net>
2024-02-20 16:44:29 +00:00
snipe
0383938536 API-ify the managed locations tab in user view
Signed-off-by: snipe <snipe@snipe.net>
2024-02-20 16:44:20 +00:00
snipe
50b841d54d Added table data-dash attributes to make the checkbox stuff work
Signed-off-by: snipe <snipe@snipe.net>
2024-02-20 16:43:57 +00:00
snipe
8f71460fa1 Formatting changes only
Signed-off-by: snipe <snipe@snipe.net>
2024-02-20 16:43:27 +00:00
snipe
d5324bce6a Added more generic bulk translations for trans_choice
Signed-off-by: snipe <snipe@snipe.net>
2024-02-20 16:43:07 +00:00
snipe
660f3ccba1 Removed duplicate key
Signed-off-by: snipe <snipe@snipe.net>
2024-02-20 16:42:28 +00:00
snipe
bc8db3deab Added bulk delete routes
Signed-off-by: snipe <snipe@snipe.net>
2024-02-20 16:42:14 +00:00
snipe
b2c8fbf349 Removed debugging
Signed-off-by: snipe <snipe@snipe.net>
2024-02-20 16:42:04 +00:00
snipe
c3f21d9292 Removed new checkbox selectability on users and assets - more complicated work to be done
Signed-off-by: snipe <snipe@snipe.net>
2024-02-20 16:41:58 +00:00
snipe
9b146ae1d2 Formatting for API response
Signed-off-by: snipe <snipe@snipe.net>
2024-02-20 16:40:51 +00:00
snipe
a32c679519 Removed debugging
Signed-off-by: snipe <snipe@snipe.net>
2024-02-20 16:40:31 +00:00
snipe
1e602793b2 Added manager ID to filter
Signed-off-by: snipe <snipe@snipe.net>
2024-02-20 16:40:23 +00:00
snipe
a6a65b7523 Fixed locations isDeletable check
Signed-off-by: snipe <snipe@snipe.net>
2024-02-20 16:40:09 +00:00
snipe
04c1d9cbff Merge pull request #14302 from uberbrady/fix_uploaded_file_extensions
Clean up the file extension on image file uploads
2024-02-19 16:53:47 +00:00
Brady Wetherington
a6dfd67cd7 Clean up the file extension on image file uploads 2024-02-19 16:51:23 +00:00
snipe
7d178da61c Merge pull request #14301 from snipe/bug/sc-24375
Disallow branding uploads in demo mode
2024-02-19 16:27:20 +00:00
snipe
30f9acfcf3 Disallow uploads in demo mode
Signed-off-by: snipe <snipe@snipe.net>
2024-02-19 16:11:17 +00:00
snipe
1e351b4d63 Merge pull request #14299 from snipe/fixes/fix_crash_on_purged_models_in_activity_report
Check that the model exists before trying to access properties
2024-02-19 15:36:44 +00:00
snipe
cb5b691ec1 Check that the model exists before trying to access properties
Signed-off-by: snipe <snipe@snipe.net>
2024-02-19 15:34:57 +00:00
snipe
b47b401245 Merge pull request #14298 from uberbrady/docker_fix_alpine_exif
Add missing EXIF PHP library for Alpine Docker image
2024-02-19 15:09:02 +00:00
Brady Wetherington
119e79e248 Add missing EXIF PHP library for Alpine Docker image 2024-02-19 15:00:13 +00:00
snipe
d7254053b6 Merge pull request #14297 from snipe/feature/sc-24855
Added `/backups/latest` to API endpoint
2024-02-19 14:40:13 +00:00
snipe
8f8edd4126 Added /backups/latest endpoint
Signed-off-by: snipe <snipe@snipe.net>
2024-02-19 14:35:09 +00:00
snipe
10bb844087 Added comment
Signed-off-by: snipe <snipe@snipe.net>
2024-02-19 14:34:51 +00:00
snipe
ba3baabb50 Fixed @return
Signed-off-by: snipe <snipe@snipe.net>
2024-02-19 14:34:36 +00:00
snipe
c76fbe4edb Return 404 if download file isn’t found
Signed-off-by: snipe <snipe@snipe.net>
2024-02-19 13:05:44 +00:00
snipe
cae2de4fc9 Merge remote-tracking branch 'origin/develop' 2024-02-19 12:25:26 +00:00
snipe
7c346d977a Merge pull request #14296 from snipe/fixes/return_download_for_backup_api
Better handle large downloads on backup API
2024-02-19 12:22:49 +00:00
snipe
9847934de9 Better handle large downloads on backup API
Signed-off-by: snipe <snipe@snipe.net>
2024-02-19 12:20:37 +00:00
snipe
db73f80058 Starting off
Signed-off-by: snipe <snipe@snipe.net>
2024-02-16 18:57:50 +00:00
akemidx
4dd479dad7 formatting 2024-02-15 19:59:26 -05:00
akemidx
d01e1e8eeb query works, but still only shows the asset once even if it's been checked out multiple times 2024-02-15 19:56:08 -05:00
akemidx
e3ef737ac4 query first go 2024-02-15 19:15:27 -05:00
Godfrey M
69317fb403 Marcus is a beast and condensed everything into 4 lines 2024-02-15 13:26:47 -08:00
Godfrey M
1b80c8938a removed unnecessary if statement 2024-02-15 13:04:00 -08:00
Godfrey M
dc77c01fd3 removes spacing 2024-02-15 13:00:38 -08:00
Godfrey M
83474d6e59 moves the array manipulation up the page where it should be 2024-02-15 12:59:47 -08:00
Godfrey M
529310c93a fixed typo in comment 2024-02-15 12:41:31 -08:00
Godfrey M
70f26f33a5 does a collect and map instead of a for loop for the array solution 2024-02-15 12:34:09 -08:00
Godfrey M
414bc10c40 removes the double for loop with a better solution 2024-02-15 12:02:08 -08:00
Godfrey M
250b0a7afb gives a better example with custom fields in label preview 2024-02-15 11:50:41 -08:00
snipe
e5355db672 Merge remote-tracking branch 'origin/develop' 2024-02-15 18:39:57 +00:00
snipe
aef45a90b2 Merge pull request #14278 from uberbrady/allowlist_and_db_prefix_for_restore
Allowlist and db prefix for restore
2024-02-15 14:50:44 +00:00
snipe
9221641bba Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	config/version.php
2024-02-15 14:50:37 +00:00
snipe
6bca1e3b22 Bumped version
Signed-off-by: snipe <snipe@snipe.net>
2024-02-15 14:48:07 +00:00
snipe
00cea3eb3c Merge remote-tracking branch 'origin/develop' 2024-02-15 14:45:30 +00:00
snipe
19b52a2f24 Merge pull request #14279 from snipe/fixes/clearer_ui_for_fieldsets
Improved UI for fieldsets
2024-02-15 14:19:34 +00:00
snipe
6237f6192c Added fieldset button
Signed-off-by: snipe <snipe@snipe.net>
2024-02-15 14:14:18 +00:00
snipe
cc58d4c3ad Nicer form UI
Signed-off-by: snipe <snipe@snipe.net>
2024-02-15 14:08:06 +00:00
Brady Wetherington
6a78706a3e New 'sanitize' version of backup-restore tool. Optional. 2024-02-15 13:27:18 +00:00
snipe
060c59bf9d Merge remote-tracking branch 'origin/develop' 2024-02-15 12:30:22 +00:00
snipe
6fd3c494be Merge pull request #14277 from snipe/fixes/change_log_level_to_info
Lower log level to warning on webhook failure
2024-02-15 12:28:57 +00:00
snipe
8adfa8dd83 Change exceptions to warnings
Signed-off-by: snipe <snipe@snipe.net>
2024-02-15 12:28:12 +00:00
snipe
6c9001df09 Changed log level in checkoutable listener to info
Signed-off-by: snipe <snipe@snipe.net>
2024-02-15 12:20:14 +00:00
snipe
d6159d8cb5 Merge remote-tracking branch 'origin/develop' 2024-02-15 09:59:23 +00:00
snipe
81b9753b79 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	public/js/dist/all-defer.js
#	public/mix-manifest.json
2024-02-15 09:58:09 +00:00
snipe
d8b1eec91b Merge pull request #14197 from inietov/fixes/component_licenses_checkouts_not_displayed_in_asset_history
Fixes #14010 Adds Components and Licenses logs to Assets history view
2024-02-15 09:57:46 +00:00
snipe
b871813cfd Merge pull request #14172 from spencerrlongg/bug/sc-23514
Resolve Duplicate Activity Logs for Imports
2024-02-15 09:54:43 +00:00
snipe
6f7dce53cc Merge pull request #14276 from snipe/bug/sc-24828
Fixed ambiguous query on supplier_id in maintenances
2024-02-15 09:52:23 +00:00
snipe
13d2af2155 Fixed ambiguous query on supplier_id in maintenances
Signed-off-by: snipe <snipe@snipe.net>
2024-02-15 09:51:14 +00:00
snipe
bf3794822c Updated assets
Signed-off-by: snipe <snipe@snipe.net>
2024-02-15 09:47:45 +00:00
snipe
1fa8fba5fe Merge pull request #14268 from Godmartinz/checked-out-notif-fix
Fixed the notification listener
2024-02-15 08:29:15 +00:00
snipe
3d7697da6f Merge pull request #14275 from snipe/snyk/14270
Upgrade webpack from 5.89.0 to 5.90.0
2024-02-15 08:28:26 +00:00
snipe
42cf17d3bf Upgrade webpack from 5.89.0 to 5.90.0
Signed-off-by: snipe <snipe@snipe.net>
2024-02-15 08:27:52 +00:00
snipe
783e37f06d Merge pull request #14274 from snipe/snyk/14269
Upgrade alpinejs from 3.13.3 to 3.13.5
2024-02-15 08:21:58 +00:00
snipe
9a4cda0bf6 Upgrade alpinejs from 3.13.3 to 3.13.5
Signed-off-by: snipe <snipe@snipe.net>
2024-02-15 08:21:19 +00:00
snipe
b6279af1d8 Merge pull request #14272 from marcusmoore/testing/update-state-helper-name
Updated testing helper name
2024-02-15 08:19:40 +00:00
Marcus Moore
bc0a7542ac Change enableWebhook to enableSlackWebhook 2024-02-14 18:17:34 -08:00
akemidx
232fad0145 query and progress notes 2024-02-14 20:00:23 -05:00
Godfrey M
5cbcac28b1 adds custom fields as an example in label settings 2024-02-14 16:53:38 -08:00
Marcus Moore
aec59f2da6 Update assertion to be more correct 2024-02-14 12:27:42 -08:00
Marcus Moore
905df5ec25 Consolidate test cases 2024-02-14 12:14:27 -08:00
Marcus Moore
bacfdc5049 Scaffold additional tests 2024-02-14 11:33:03 -08:00
Marcus Moore
3cc72021b6 Move notification test to notifications test suite 2024-02-14 11:16:31 -08:00
spencerrlongg
115e0fc119 implode submitted arrays to save 2024-02-14 13:15:23 -06:00
Marcus Moore
4354e126b1 Scaffold tests 2024-02-14 11:11:08 -08:00
Marcus Moore
02f39472f9 Remove duplicate test 2024-02-14 11:10:59 -08:00
Marcus Moore
d7aed2edc9 Remove unneeded code 2024-02-14 11:10:45 -08:00
Marcus Moore
af513946a2 Implement test 2024-02-14 10:48:49 -08:00
Marcus Moore
7bfd02054b Remove duplicate authorization check 2024-02-14 10:48:41 -08:00
spencerrlongg
1ceb703129 rm var 2024-02-14 12:44:09 -06:00
spencerrlongg
fb28882f65 trim potential spaces 2024-02-14 11:59:14 -06:00
spencerrlongg
d9c61fdb02 validation msg 2024-02-14 11:52:25 -06:00
spencerrlongg
72c118a70f cleanup 2024-02-14 11:41:46 -06:00
Godfrey M
b136e9e29d fix the listener to fire when checking in 2024-02-14 09:16:20 -08:00
snipe
50c910461a Merge remote-tracking branch 'origin/develop' 2024-02-14 11:36:28 +00:00
snipe
88a84e9350 Merge pull request #14264 from snipe/feature/sc-24816
Added serial and status label to asset maintenances page and API
2024-02-14 10:37:01 +00:00
snipe
43bb8ae0a8 Added string
Signed-off-by: snipe <snipe@snipe.net>
2024-02-14 10:14:44 +00:00
snipe
638071dadd Check the asset is not deleted when creating the permissions array
Signed-off-by: snipe <snipe@snipe.net>
2024-02-14 10:14:38 +00:00
snipe
8a4c90ade8 Check that the asset is not deleted
Signed-off-by: snipe <snipe@snipe.net>
2024-02-14 10:14:25 +00:00
snipe
1dfa1da0ee Disable the edit button if permission is not allowed
Signed-off-by: snipe <snipe@snipe.net>
2024-02-14 10:14:10 +00:00
snipe
71ebade641 Added serial and status to searchable relations
Signed-off-by: snipe <snipe@snipe.net>
2024-02-14 09:59:10 +00:00
snipe
b86b05c4fc Added serial and status fields to presenter
Signed-off-by: snipe <snipe@snipe.net>
2024-02-14 09:58:55 +00:00
snipe
35a70988cb Added sorting by status label
Signed-off-by: snipe <snipe@snipe.net>
2024-02-14 09:58:39 +00:00
snipe
56ba26eb45 Disallow editing of deleted assets
Signed-off-by: snipe <snipe@snipe.net>
2024-02-14 09:58:07 +00:00
snipe
adb8be9345 Added bootstrap formatting to show deleted assets more clearly
Signed-off-by: snipe <snipe@snipe.net>
2024-02-14 09:57:57 +00:00
snipe
abc9ee22c6 Added serial and status to transformer
Signed-off-by: snipe <snipe@snipe.net>
2024-02-14 09:48:02 +00:00
snipe
e5ee9760c0 I don’t think we use these anyore because of the modifiers on date
Signed-off-by: snipe <snipe@snipe.net>
2024-02-14 09:47:33 +00:00
snipe
7868a8c174 Added serial for API controller
Signed-off-by: snipe <snipe@snipe.net>
2024-02-14 09:47:13 +00:00
snipe
03df4cec45 Fixed typo
Signed-off-by: snipe <snipe@snipe.net>
2024-02-14 09:46:43 +00:00
spencerrlongg
25241542d2 progress, going to sleep 2024-02-14 02:12:31 -06:00
spencerrlongg
57a75e68b9 maybe i do the inverse here? 2024-02-14 00:52:50 -06:00
Marcus Moore
ad1846fed6 Implement tests 2024-02-13 17:50:26 -08:00
spencerrlongg
dcf2168454 initial stuff, need to switch branches 2024-02-13 19:35:37 -06:00
Marcus Moore
9ab56fe9ca Implement tests 2024-02-13 17:04:53 -08:00
Marcus Moore
f708b8b299 Implement test 2024-02-13 14:30:26 -08:00
akemidx
c5e8d1c276 custom report tinker 2024-02-13 17:09:51 -05:00
akemidx
4093327b7f adding in Last Checkin Date to Hardware view and index 2024-02-13 16:52:12 -05:00
Marcus Moore
391b832613 Implement test 2024-02-13 13:34:55 -08:00
Marcus Moore
b653d19579 Implement test 2024-02-13 13:29:54 -08:00
akemidx
4a57cfaf3e commenting out the nulling of last checkout date on checkin page and API 2024-02-13 16:21:18 -05:00
Marcus Moore
31a75bd252 Add some assertions 2024-02-13 13:17:02 -08:00
snipe
e2c3386c33 Merge remote-tracking branch 'origin/develop' 2024-02-13 20:37:17 +00:00
Marcus Moore
0506f3bef9 Scaffold additional tests 2024-02-13 12:35:31 -08:00
snipe
a866d6b16e Merge pull request #14261 from snipe/fixed/missing_location_string
Fixed incorrect string for location not existing
2024-02-13 20:29:32 +00:00
snipe
a76a69d085 Fixed incorrect string for location not existing
Signed-off-by: snipe <snipe@snipe.net>
2024-02-13 20:23:32 +00:00
Marcus Moore
852b0b3f11 Scaffold additional tests 2024-02-13 12:15:59 -08:00
Marcus Moore
307b39bd38 Implement tests around asset check in 2024-02-13 12:03:27 -08:00
spencerrlongg
d55358652b cleanup for pr 2024-02-13 13:45:56 -06:00
Brady Wetherington
955f75f733 Fixes for the prefix-guessing and sanitizing. 2024-02-13 16:45:24 +00:00
snipe
280e778749 Merge remote-tracking branch 'origin/develop' 2024-02-13 13:46:52 +00:00
snipe
60ba898167 Merge pull request #14255 from marcusmoore/chore/sc-24805
Added LDAP group tag to LDAP tests
2024-02-13 13:42:51 +00:00
snipe
2c9d5b9ea3 Merge pull request #14247 from ubc-cpsc/bugfix/CVE-2023-37260
Fixes CVE-2023-37260 upgrading league/oauth2-server
2024-02-13 13:40:53 +00:00
snipe
eb6e2636b5 Merge pull request #14246 from ubc-cpsc/bugfix/CVE-2022-24894
Fixes CVE-2022-24894 by upgrading symfony/http-kernel
2024-02-13 13:40:33 +00:00
snipe
4c1964d509 Merge pull request #14245 from ubc-cpsc/bugfix/CVE-2024-24821
Fixes CVE-2024-24821 by upgrading composer/composer
2024-02-13 13:39:16 +00:00
snipe
7547277352 Merge pull request #14236 from snipe/jerm/upgrade-script-enhancements
Change how we check forward-looking upgrade requirements
2024-02-13 13:38:35 +00:00
snipe
3e00bc49fd Merge pull request #14250 from mauro-miatello/develop
Cleaned up navbar-custom-menu
2024-02-13 13:33:03 +00:00
snipe
99e0b65de7 Merge pull request #14256 from marcusmoore/bug/sc-24790
Fixed accessory check in emails being sent when setting disabled
2024-02-13 13:32:42 +00:00
Brady Wetherington
70ef904951 Actually got this pretty close to being able to do a restore 2024-02-13 12:16:15 +00:00
Brady Wetherington
fcf023e3d2 WIP: trying to get prefixing and sanitization working 2024-02-13 12:16:15 +00:00
Brady Wetherington
8c882ddead Starting to abstract out the SQL Streaming logic into its own class 2024-02-13 12:16:15 +00:00
Brady Wetherington
7d136f9970 Initial rough stabs at prefix removal and SQL sanitization 2024-02-13 12:16:15 +00:00
Jeremy Price
f4c1460c2b remove help text options until i put together the help text 2024-02-12 19:18:26 -08:00
Jeremy Price
bb2e1de0a8 Change how we check forward-looking upgrade requirements
In https://github.com/snipe/snipe-it/pull/14128 we added the capability
for the upgrade.php script to check version requirements _before_
downloading the new source, to help keep from breaking installations.

Turns out, `file_get_contents()` isn't a reliable way to grab a url, because
some systems have `allow_url_fopen` turned off in their PHP
configurations.

In this iteration, we swap that out for a curl function, while also
adding more error handling, the ability to entirely skip the
PHP version checks if for some reason you Just Can't query the upgrade
json correctly, as well as adding a lot of helpful text around the whole
issue.

Additionally, I've added some error checking around DB backups and
initial artisan down-ing, since shell_exec would happily march right
past any errors.
2024-02-12 19:18:26 -08:00
Marcus Moore
c81bc1d2ee Scaffold tests around asset check in 2024-02-12 17:54:22 -08:00
Marcus Moore
7154d23759 Pass the correct variable to the route helper 2024-02-12 16:45:18 -08:00
Marcus Moore
df23fd0dee Remove usused import 2024-02-12 16:35:54 -08:00
Marcus Moore
adfb8895df Improve factory state name 2024-02-12 16:31:32 -08:00
Marcus Moore
c8e12ddb5c Remove bug in factory state 2024-02-12 16:30:09 -08:00
Marcus Moore
5b181ecea7 Remove old comment 2024-02-12 16:29:34 -08:00
Marcus Moore
728aaaab20 Ensure accessory check in emails are not sent when the setting is disabled 2024-02-12 16:22:59 -08:00
akemidx
f7d0cecdac permissions query starto 2024-02-12 19:01:06 -05:00
Marcus Moore
095a7d9b34 Scaffold tests around accessory check in 2024-02-12 12:54:48 -08:00
Marcus Moore
cf53f2778f Add LDAP test cases to group 2024-02-12 12:28:27 -08:00
snipe
65e20282b6 Merge pull request #14251 from snipe/dependabot/github_actions/develop/codacy/codacy-analysis-cli-action-4.4.0
Bump codacy/codacy-analysis-cli-action from 4.3.0 to 4.4.0
2024-02-12 08:35:30 +00:00
dependabot[bot]
405c5b5ad0 Bump codacy/codacy-analysis-cli-action from 4.3.0 to 4.4.0
Bumps [codacy/codacy-analysis-cli-action](https://github.com/codacy/codacy-analysis-cli-action) from 4.3.0 to 4.4.0.
- [Release notes](https://github.com/codacy/codacy-analysis-cli-action/releases)
- [Commits](https://github.com/codacy/codacy-analysis-cli-action/compare/v4.3.0...v4.4.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-12 08:33:17 +00:00
MrM
6f0fe16b87 Update default.blade.php
removed some repeated attributes
2024-02-11 18:45:37 +01:00
snipe
111daffc17 Merge pull request #14188 from spencerrlongg/bug/14146
Fixes Default Location Being Set During Asset Creation and Checkout
2024-02-10 11:47:46 +00:00
Joël Pittet
b8a478f558 Fixes by CVE-2023-37260 upgrading league/oauth2-server 2024-02-09 17:24:07 -08:00
Joël Pittet
9f7084d077 Revert "Fixes by CVE-2022-24894 upgrading league/oauth2-server"
This reverts commit 0840cd3df3.
2024-02-09 17:22:36 -08:00
Joël Pittet
0840cd3df3 Fixes by CVE-2022-24894 upgrading league/oauth2-server 2024-02-09 17:21:24 -08:00
Joël Pittet
cefdaf9a9b Fixes CVE-2022-24894 2024-02-09 17:17:44 -08:00
Joël Pittet
13335b19e9 Fixes CVE-2024-24821 2024-02-09 17:04:34 -08:00
snipe
6e471a27e7 Merge remote-tracking branch 'origin/develop' 2024-02-09 21:10:27 +00:00
snipe
513ea67e7d Merge pull request #14244 from snipe/fixes/null_barcode_if_hard_deleted
Return null if asset was hard-deleted/purged
2024-02-09 21:09:17 +00:00
snipe
3868e711f4 Return null if asset was hard-deleted/purged
Signed-off-by: snipe <snipe@snipe.net>
2024-02-09 21:08:07 +00:00
snipe
f33f712de7 Merge remote-tracking branch 'origin/develop' 2024-02-09 21:00:16 +00:00
snipe
c12e1f6d6c Merge pull request #14243 from snipe/fixes/reports_controller_when_item_is_deleted
Fixed ReportsController to not try to return a serial if the item doesn’t exist
2024-02-09 20:54:37 +00:00
snipe
479abd5231 Do not try to return a serial if the item doesn’t exist
Signed-off-by: snipe <snipe@snipe.net>
2024-02-09 20:53:33 +00:00
snipe
a60a24a4a8 Merge remote-tracking branch 'origin/develop' 2024-02-09 20:42:48 +00:00
snipe
55b3050ca8 Re-applied previous withTrashed PR
Signed-off-by: snipe <snipe@snipe.net>
2024-02-09 20:37:18 +00:00
snipe
2c996a8508 Merge pull request #14241 from snipe/revert-14240-feature/sc-24786
Revert "Fixed barcodes crashing if asset was deleted"
2024-02-09 20:36:02 +00:00
snipe
84f8eee869 Revert "Fixed barcodes crashing if asset was deleted" 2024-02-09 20:35:45 +00:00
snipe
590c19dbd7 Merge pull request #14240 from snipe/feature/sc-24786
Feature/sc 24786
2024-02-09 20:28:31 +00:00
snipe
fa47707974 Use withTrashed() to get the barcode on deleted assets
Signed-off-by: snipe <snipe@snipe.net>
2024-02-09 20:26:49 +00:00
snipe
ca62481083 Added button and route
Signed-off-by: snipe <snipe@snipe.net>
2024-02-09 20:23:13 +00:00
snipe
1c3306046c 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
2024-02-08 23:14:54 +00:00
snipe
f4fc845375 Updated dev assets
Signed-off-by: snipe <snipe@snipe.net>
2024-02-08 23:06:47 +00:00
snipe
a7af987322 Merge pull request #14229 from Godmartinz/select2-target-fix
Fixed select inputs un-select2-ifying on mobile
2024-02-08 23:04:55 +00:00
Godfrey M
c4eaae923a removed vue comments since they do not apply anymore 2024-02-08 15:02:47 -08:00
snipe
849ba02516 Merge pull request #14187 from Godmartinz/general-hook_fix
Fixed the general webhook not notifying anymore
2024-02-08 23:01:36 +00:00
Godfrey Martinez
9dcd14a712 Merge branch 'develop' into general-hook_fix 2024-02-08 14:59:25 -08:00
snipe
3412b4dc5a Merge remote-tracking branch 'origin/develop' 2024-02-08 14:58:24 +00:00
snipe
a3b96aff1f Merge pull request #14233 from uberbrady/prevent_svg_injection_with_fake_extensions_rebased
Fixes file upload XSS vulnerability [sc-24156]
2024-02-08 14:56:59 +00:00
Brady Wetherington
9bb191f29f Fixes file upload XSS vulnerability [sc-24156] 2024-02-08 14:30:40 +00:00
snipe
4a43ccfa92 Merge pull request #14228 from akemidx/bug/sc-23516
Fixed: 404 Error on Importer When Uploading a .csv Under Certain Circumstance
2024-02-08 13:43:07 +00:00
spencerrlongg
bcfa913450 condition makes this work, needs more testing 2024-02-07 20:03:37 -06:00
spencerrlongg
43d8474caa a note to remember this tomorrow 2024-02-06 17:45:46 -06:00
Godfrey M
b73e8642d3 removed unnecessary changes 2024-02-06 13:06:21 -08:00
Godfrey M
cfe2277a64 forgot to remove comment line 2024-02-06 13:05:04 -08:00
akemidx
e776c2cffa formatting the button tag 2024-02-06 15:51:04 -05:00
Godfrey M
ca59bc3c9c removes if statement that prevents select2-ifying inputs 2024-02-06 12:46:17 -08:00
akemidx
575362f4dc adding in line to null out the active file on click of button 2024-02-06 15:38:07 -05:00
snipe
f0139c5e41 Merge remote-tracking branch 'origin/develop' 2024-02-06 18:25:19 +00:00
snipe
5f8ac66036 Merge pull request #14223 from Godmartinz/user-bulk-edit
Fixed Select2 functionality in User bulk check-in Delete User
2024-02-06 18:22:46 +00:00
snipe
a49e66c689 Merge remote-tracking branch 'origin/develop' 2024-02-06 16:42:16 +00:00
snipe
1630e4bc2f Merge pull request #14227 from snipe/fixes/bulk_update_by_audit_interval
Switch to bulk updating to handle audit interval updates
2024-02-06 16:06:08 +00:00
snipe
bf674a0f4d Removed backticks
Signed-off-by: snipe <snipe@snipe.net>
2024-02-06 15:58:36 +00:00
snipe
b170755c3d Switch to bulk updating to handle audit interval updates
Signed-off-by: snipe <snipe@snipe.net>
2024-02-06 15:52:46 +00:00
snipe
b25612bbac Merge remote-tracking branch 'origin/develop' 2024-02-06 09:09:39 +00:00
snipe
a43183ff96 Increased chunk
Signed-off-by: snipe <snipe@snipe.net>
2024-02-06 09:09:27 +00:00
Godfrey M
5aa34695a1 z 2024-02-05 16:41:29 -08:00
snipe
3b36372a66 Merge pull request #14222 from marcusmoore/tests/company-get-id-for-current-user
Added tests around getIdForCurrentUser method
2024-02-05 22:04:08 +00:00
snipe
e763693829 Merge remote-tracking branch 'origin/develop' 2024-02-05 20:51:37 +00:00
snipe
e08d60ed18 Merge pull request #14221 from snipe/bug/sc-24749
Chunk data to reduce memory on large datasets when updating `next_audit_date`
2024-02-05 20:50:41 +00:00
Marcus Moore
9e6e2de71e Add docblock 2024-02-05 12:49:29 -08:00
snipe
b49935701b Chunk data to reduce memory on large datasets when updating next_audit_date
Signed-off-by: snipe <snipe@snipe.net>
2024-02-05 20:48:24 +00:00
Marcus Moore
76cc5995d9 Write tests around getIdForCurrentUser method [sc-24748] 2024-02-05 12:38:33 -08:00
snipe
c0fbf106ed Merge remote-tracking branch 'origin/develop' 2024-02-05 19:13:17 +00:00
snipe
7b4020c5e9 Updated string paths for URL
Signed-off-by: snipe <snipe@snipe.net>
2024-02-05 19:09:16 +00:00
snipe
383e3829e5 Merge remote-tracking branch 'origin/develop' 2024-02-05 19:04:40 +00:00
snipe
91356af838 Merge pull request #14220 from snipe/bug/sc-24740
Removed loading of assets for label count
2024-02-05 19:02:10 +00:00
snipe
4c967a43a7 Removed loading of assets for label count
Signed-off-by: snipe <snipe@snipe.net>
2024-02-05 18:56:51 +00:00
snipe
deca842eb0 Merge remote-tracking branch 'origin/develop' 2024-02-05 18:35:56 +00:00
snipe
44366746dd Merge pull request #14219 from snipe/fixes/resurface_load_remote
Fixed #14185 - Resurfaced `load_remote` in admin
2024-02-05 18:33:11 +00:00
snipe
3806cec10e Updated language
Signed-off-by: snipe <snipe@snipe.net>
2024-02-05 18:28:05 +00:00
snipe
a800fa07f9 Removed duplicate string
Signed-off-by: snipe <snipe@snipe.net>
2024-02-05 18:27:58 +00:00
snipe
32c360f032 Re-added UI for load_remote
Signed-off-by: snipe <snipe@snipe.net>
2024-02-05 18:23:52 +00:00
snipe
25f1445afc Merge branch 'master' of https://github.com/snipe/snipe-it 2024-02-05 17:26:54 +00:00
snipe
0042359e5f Prod assets
Signed-off-by: snipe <snipe@snipe.net>
2024-02-05 17:23:30 +00:00
snipe
cf2e2bfbc1 Updated prod assets
Signed-off-by: snipe <snipe@snipe.net>
2024-02-05 17:23:21 +00:00
snipe
60f9a8be9a 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-02-05 17:22:58 +00:00
snipe
8316db9702 Merge pull request #13805 from gitgrimbo/more_line_based_markdown
Use parseEscapedMarkedownInline for more views
2024-02-05 17:19:41 +00:00
snipe
1a480435de Merge pull request #14190 from marcusmoore/bug/sc-24685
Fixed consumable checkout via API not sending notification
2024-02-05 17:16:57 +00:00
snipe
ebc373744a Merge pull request #14218 from snipe/security/alpine_3_18_6
Security upgrade alpine from 3.18.5 to 3.18.6 #14178
2024-02-05 17:16:18 +00:00
snipe
650aa25659 Merge pull request #14191 from Godmartinz/googlechat_webhook
Added support for Google Chat notifications
2024-02-05 17:10:54 +00:00
snipe
212dd06948 Security upgrade alpine from 3.18.5 to 3.18.6 #14178
Signed-off-by: snipe <snipe@snipe.net>
2024-02-05 17:07:31 +00:00
snipe
b6eea2e170 Merge pull request #14217 from snipe/security/snyk_bs_table_14199
Upgrade bootstrap-table from 1.22.1 to 1.22.2 #14199
2024-02-05 16:59:51 +00:00
snipe
688017bd8a Upgrade bootstrap-table from 1.22.1 to 1.22.2
Signed-off-by: snipe <snipe@snipe.net>
2024-02-05 16:59:01 +00:00
snipe
58a9c27342 Merge remote-tracking branch 'origin/develop' 2024-02-05 16:31:32 +00:00
snipe
f52b00256d Merge pull request #14213 from snipe/fixes/orientate_on_exif
Fixed FD-40296 - mobile uploads sometimes uploading with incorrect orientation
2024-02-05 16:22:03 +00:00
snipe
2d48d96b3c Merge remote-tracking branch 'origin/develop' 2024-02-05 16:10:54 +00:00
snipe
abd13a1140 Merge pull request #14216 from snipe/bug/sc-24727
Fixed company asset counts for dashboard widget
2024-02-05 16:07:40 +00:00
snipe
5882d71f9b Fix company asset counts for dashboard widget
Signed-off-by: snipe <snipe@snipe.net>
2024-02-05 15:55:53 +00:00
snipe
dc92bbf61e Merge pull request #14215 from snipe/bug/sc-24726
Removed initial check for assets, licenses, etc
2024-02-05 15:54:45 +00:00
snipe
e6fdeb0e8a Removed initial check for assets, licenses, etc
Signed-off-by: snipe <snipe@snipe.net>
2024-02-05 15:30:18 +00:00
snipe
3b948c7b7e Add orientate to image upload
Signed-off-by: snipe <snipe@snipe.net>
2024-02-05 14:29:43 +00:00
snipe
d965fe759a Fixed #14211 - duplicate array key ldap_emp_num
Signed-off-by: snipe <snipe@snipe.net>
2024-02-05 12:28:24 +00:00
Ivan Nieto Vivanco
5e4a3379a9 Adds Components and Licenses logs to Assets history view 2024-02-01 01:35:25 -06:00
Godfrey M
9dc428b720 ran composer update on the package since the version was explicitized 2024-01-31 17:30:56 -08:00
Godfrey M
8a5b469ff8 adds # to webhook channel trigger 2024-01-31 12:54:30 -08:00
Godfrey M
ed06f32a7a adds # to webhook channel trigger 2024-01-31 12:53:56 -08:00
Godfrey M
a876703f8f spacing 2024-01-31 10:48:48 -08:00
Godfrey M
01bb8d8c9a spacing 2024-01-31 10:48:23 -08:00
Godfrey M
f452204d62 applies a conditional to have the the integration test button function properly 2024-01-31 10:47:25 -08:00
Ivan Nieto Vivanco
51ae485f20 When asset is checked-in the assigned licenses also are taken from the user 2024-01-30 19:44:38 -06:00
Godfrey M
0eabb147b2 adds google notif to consumable check out 2024-01-30 13:19:28 -08:00
Marcus Moore
2e0e39ccc8 Ensure notification is sent when consumable is checked out via api 2024-01-30 13:19:20 -08:00
spencerrlongg
63e733f0d6 changes from a note to a source 2024-01-30 15:14:59 -06:00
Godfrey M
2406d2cfdb adds google notifs to license seats check in and out 2024-01-30 13:14:24 -08:00
Godfrey M
e074ca0bf9 adds google notifs to accessories check in and out 2024-01-30 12:57:45 -08:00
Marcus Moore
13c37e708f Implement tests around consumable checkout 2024-01-30 12:43:20 -08:00
Marcus Moore
3f76d65b95 Improve test method name 2024-01-30 12:43:07 -08:00
Godfrey M
87bce0c097 adds google notifs for asset check in and out 2024-01-30 12:38:17 -08:00
Marcus Moore
6d41c8cf67 Merge branch 'develop' into bug/sc-24685 2024-01-30 11:44:36 -08:00
Godfrey M
22385a8e35 fix for general webhook not notifiying anymore 2024-01-30 10:47:18 -08:00
snipe
77fa213ccd Merge pull request #14181 from marcusmoore/bug/sc-24671
Fixed accessory checkout via API not sending notification and not adhering to qty limit
2024-01-30 14:24:42 +00:00
spencerrlongg
d0a82adc3f changed condition 2024-01-29 20:44:26 -06:00
Marcus Moore
de2aa903c5 Scaffold tests 2024-01-29 17:56:55 -08:00
Marcus Moore
42ec2548c9 Fire event when accessory checked out via API
Brings behavior in line with GUI controller
2024-01-29 17:03:19 -08:00
Marcus Moore
a2cba67f4e Improve assertion 2024-01-29 16:59:57 -08:00
Marcus Moore
7d45cfff2c Ensure accessory available when checking out via api 2024-01-29 16:49:09 -08:00
Marcus Moore
f1ab8253f0 Implement tests included two currently failing tests 2024-01-29 16:48:40 -08:00
Marcus Moore
e5d3df7d24 Scaffold accessory checkout tests for api 2024-01-29 15:59:23 -08:00
Marcus Moore
987676df08 Implement additional tests 2024-01-29 15:56:18 -08:00
Marcus Moore
f16f62f76c Scaffold and implement some tests around accessory checkout 2024-01-29 14:21:30 -08:00
Brady Wetherington
8a2f3405d5 Merge branch 'develop' into snipeit_v7_laravel10
A lot of changes here, but hopefully this works?
2024-01-29 22:12:58 +00:00
Godfrey M
dfa33f651a webhook test works 2024-01-29 12:58:09 -08:00
Godfrey M
30c2927987 merged develope 2024-01-29 11:21:00 -08:00
Godfrey M
e8159d97fa changes 2024-01-29 11:12:25 -08:00
snipe
86c625ed8f Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	config/version.php
2024-01-27 15:12:03 +00:00
snipe
3da7876631 Bumped version
Signed-off-by: snipe <snipe@snipe.net>
2024-01-27 15:08:52 +00:00
spencerrlongg
1248260df3 i don't think the output needs to separately escaped, the entire statement is already wrapped in {{}} 2024-01-26 12:33:35 -06:00
spencerrlongg
4cb804cf03 get rid of e() on store and update 2024-01-26 11:56:02 -06:00
spencerrlongg
2b0dd8851c probably needs more testing... but should work 2024-01-26 11:47:09 -06:00
snipe
9136415bb2 Merge remote-tracking branch 'origin/develop' 2024-01-26 15:58:21 +00:00
snipe
c0241a8421 Merge pull request #14175 from uberbrady/rebased_snipe_translator
Fixed #14173: Use new SnipeTranslator to handle pluralized localizations
2024-01-26 15:54:11 +00:00
Brady Wetherington
401e1842ee Fixed pluralization bug due to dashed-locale names instead of underscored
Our locale directories are named things like 'en-US'. But the pluralization
code used by Laravel (through Symfony) requires locale names to be
in the format en_US. This change introduces a new Translator,
SnipeTranslator, which is a tiny set of changes against the built-in
one. It additionally adds a SnipeTranslationServiceProvider, which
loads up the new Translator.
2024-01-26 15:40:55 +00:00
snipe
ad2e0cc7f3 Fixed typo
Signed-off-by: snipe <snipe@snipe.net>
2024-01-26 15:17:59 +00:00
spencerrlongg
2deba17d91 that's all of 'em 2024-01-25 20:04:02 -06:00
spencerrlongg
3574ef5bb9 a few more imports, component sample 2024-01-25 19:54:53 -06:00
spencerrlongg
abf13f1619 revert spacing 2024-01-25 19:37:59 -06:00
spencerrlongg
4a7df470f0 this works 2024-01-25 19:34:41 -06:00
spencerrlongg
c9101f4d97 initial work, not working yet 2024-01-25 18:18:24 -06:00
snipe
14db425725 Merge remote-tracking branch 'origin/develop' 2024-01-25 21:45:49 +00:00
snipe
b39d11cc06 Merge pull request #14171 from snipe/fixes/fd-39934
Removed attribute assigning blank EOL as 0
2024-01-25 21:41:18 +00:00
snipe
d6c61e1429 Removed attribute assigning blank EOL as 0
Signed-off-by: snipe <snipe@snipe.net>
2024-01-25 21:34:20 +00:00
snipe
aa14d5e6b6 Merge remote-tracking branch 'origin/develop' 2024-01-25 20:18:36 +00:00
snipe
85a158eaef Merge pull request #14170 from uberbrady/saml_nonce_storage
Enforce SAML assertion ID uniqueness and notValidOnOrAfter attribute [FD-37019]
2024-01-25 20:14:40 +00:00
Brady Wetherington
d3815ddce7 Remove commented-out timestamps on the saml_nonces table 2024-01-25 20:13:49 +00:00
Brady Wetherington
b39b575fec Add table-check; add command-description for Artisan command 2024-01-25 20:07:18 +00:00
Brady Wetherington
81b8243e1d Enforce SAML assertion ID uniqueness and notValidOnOrAfter attribute 2024-01-25 19:53:24 +00:00
Jeremy Price
43c8e98ec7 Set v6 upgrade requirements in .upgrade_requirements.json -- REVERT FOR v7
This was originally created on the v7 branch, and had v7 requirements,
but we're backporting it so that people have it in-hand before v7 launches.
Since v7 hasn't launched yet, and people can use it for upgrading to new
v6's potentially, we'll make it v6 happy for now.
2024-01-25 10:12:08 -08:00
snipe
9d1abb0aa7 Merge pull request #14127 from snipe/jerm/upgrade-deps-file
Add php version requirements file for future-proofing upgrades
2024-01-25 10:09:35 -08:00
snipe
4e59b83885 Merge pull request #14128 from snipe/jerm/upgrade-dot-php
Add remote requirements checking to upgrade.php
2024-01-25 10:09:03 -08:00
snipe
d8a9d93b1d Merge remote-tracking branch 'origin/develop' 2024-01-25 08:30:56 +00:00
snipe
ab926f2e33 Merge pull request #14153 from Godmartinz/ms_teams_webhook
Added support for Microsoft Teams Notifications
2024-01-25 08:27:17 +00:00
snipe
b76500e32d Merge remote-tracking branch 'origin/develop' 2024-01-25 00:22:18 +00:00
snipe
45b253a57d Merge pull request #14164 from marcusmoore/bug/sc-20686
Avoid unnecessarily hydrating models on asset show page
2024-01-25 00:20:30 +00:00
Marcus Moore
f5dafc477a Avoid unnecessary model hydration on asset model show page 2024-01-24 16:14:51 -08:00
Godfrey M
6e9a46e582 working on Chat integration test 2024-01-24 15:50:36 -08:00
Godfrey M
c65b32bcdb removed translation fixed via method 2024-01-24 14:49:42 -08:00
Godfrey M
1d3124f89f adding a test variable for test methods 2024-01-24 14:38:45 -08:00
snipe
57a8630e99 Merge pull request #14162 from snipe/bug/sc-24511
Fixed #14114 - correctly sort related fields for labels
2024-01-24 21:37:20 +00:00
snipe
105d4899f5 Removed debug line
Signed-off-by: snipe <snipe@snipe.net>
2024-01-24 20:33:13 +00:00
snipe
0715f68c0e Merge remote-tracking branch 'origin/develop' 2024-01-24 20:18:43 +00:00
snipe
5909654fd4 Merge pull request #14163 from Godmartinz/ldap_test_table_fix
Added overflow scroll to ldap test table
2024-01-24 20:18:08 +00:00
Godfrey M
e175cdbfd7 adds table overflow scroll 2024-01-24 12:13:40 -08:00
snipe
896b16d4d5 Merge remote-tracking branch 'origin/develop' 2024-01-24 19:49:50 +00:00
snipe
5f8e63717d Merge pull request #14058 from Godmartinz/ldap_test_table_fix
Fixed Ldap sync test table and table data from overflowing
2024-01-24 19:31:04 +00:00
Godfrey M
ada1a593a4 add google placeholder 2024-01-24 11:29:32 -08:00
snipe
2c7bbfa637 Added additional sort/order hidden fields
Signed-off-by: snipe <snipe@snipe.net>
2024-01-24 19:09:20 +00:00
snipe
ba680126bc Properly sort the results based on non-asset fields
Signed-off-by: snipe <snipe@snipe.net>
2024-01-24 19:09:06 +00:00
snipe
dd3b2da670 Updated variable names for clarity, remove the concat of order and sort
Signed-off-by: snipe <snipe@snipe.net>
2024-01-24 19:08:47 +00:00
Godfrey M
00f07ac2ce add translations, brush up code 2024-01-24 10:38:06 -08:00
snipe
165f9545ac Merge pull request #13924 from snipe/bug/sc-20167
Set qty mutators
2024-01-24 18:21:06 +00:00
snipe
fff21416be Merge pull request #14051 from akemidx/email_in_license_table
Email in License Seat Table
2024-01-24 15:37:43 +00:00
snipe
f760397837 Merge remote-tracking branch 'origin/develop' 2024-01-24 15:36:45 +00:00
snipe
dc84e0f3ae Merge pull request #14161 from snipe/localizations/updated_with_new_strings
Updated language strings
2024-01-24 15:31:09 +00:00
snipe
8ca4c51186 Updated strings
Signed-off-by: snipe <snipe@snipe.net>
2024-01-24 15:29:39 +00:00
snipe
f247661f07 Merge pull request #14159 from snipe/fixes/not_array_typo
Fixed english and attribute placeholder
2024-01-24 14:59:57 +00:00
snipe
f73a55f9ab Fixed english and attribute placeholder
Signed-off-by: snipe <snipe@snipe.net>
2024-01-24 14:58:06 +00:00
snipe
7668a6767d Merge pull request #14102 from Godmartinz/seat-id-is-zero
Fixed license seats id turning to zero when sorting by department
2024-01-24 14:49:33 +00:00
snipe
684264dac7 Merge pull request #14158 from snipe/fixes/moved_url_string_again
Moved URL string to general
2024-01-24 14:48:26 +00:00
snipe
e6f94cfebf Missed one
Signed-off-by: snipe <snipe@snipe.net>
2024-01-24 14:47:54 +00:00
snipe
c54eb22754 Moved URL string to general
Signed-off-by: snipe <snipe@snipe.net>
2024-01-24 14:46:52 +00:00
snipe
661cc2b460 Merge pull request #14131 from Godmartinz/label_engine_translations
Adds translations for Label example
2024-01-24 13:36:40 +00:00
snipe
36f8311204 Merge remote-tracking branch 'origin/develop' 2024-01-24 13:35:04 +00:00
snipe
25db35e41e Merge pull request #14128 from snipe/jerm/upgrade-dot-php
Add remote requirements checking to upgrade.php
2024-01-24 13:23:10 +00:00
snipe
49dc1dd37a Merge pull request #14132 from marcusmoore/chore/sc-24501
Improved radio button values in custom report form
2024-01-24 13:22:48 +00:00
snipe
bfc9be6b97 Merge pull request #14149 from snipe/dependabot/github_actions/develop/actions/cache-4
Bump actions/cache from 3 to 4
2024-01-24 13:22:08 +00:00
snipe
1b7885677a Merge pull request #14155 from uberbrady/ldap_location_fixes
Fix for LDAP syncing with base_dn and location_id and location [FD-39651]
2024-01-24 13:21:46 +00:00
Brady Wetherington
3bc1b9038d Fix for LDAP syncing with base_dn and location_id and location 2024-01-24 11:54:29 +00:00
Godfrey M
49021d277c if not location add default location 2024-01-23 13:33:57 -08:00
Godfrey M
f270672a3d added a location check, to prevent notif blowing up 2024-01-23 13:05:39 -08:00
Godfrey Martinez
b797795d37 Merge pull request #11 from Godmartinz/license_checkable
adds consumable checkout  ms notification
2024-01-23 11:22:02 -08:00
Godfrey M
7c529df49b adds consumable checkout ms notification 2024-01-23 11:21:20 -08:00
Godfrey Martinez
81e92228f3 Merge pull request #10 from Godmartinz/license_checkable
adds licenses ms notifications
2024-01-23 11:12:02 -08:00
Godfrey M
e969f8808c adds licenses ms notifications 2024-01-23 11:10:04 -08:00
Godfrey M
5a46ef5d5b adds Accessory Check in out Notifcations, 2024-01-22 15:30:15 -08:00
Godfrey M
f049cf5b06 adds Asset Check Out Notification 2024-01-22 10:57:22 -08:00
dependabot[bot]
a1ccea4e34 Bump actions/cache from 3 to 4
Bumps [actions/cache](https://github.com/actions/cache) from 3 to 4.
- [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/v3...v4)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-22 08:50:37 +00:00
snipe
2fa5eb4365 Merge pull request #14144 from snipe/fixes/updated_apple_url
Updated URL for apple manufacturer
2024-01-18 11:53:28 +00:00
snipe
aceb072a1b Updated URL for apple manufacturer
Signed-off-by: snipe <snipe@snipe.net>
2024-01-18 11:49:30 +00:00
snipe
0fbf154187 Merge remote-tracking branch 'origin/develop' 2024-01-18 10:50:12 +00:00
snipe
2a7be4dfd5 Merge pull request #14143 from fe80/feat/redis-database
feat(config): add REDIS_DATABASE support
2024-01-18 10:49:32 +00:00
fe80
f52b17cca6 feat(config): add REDIS_DATABASE support
Add the possibility to set the redis database to use.
The default value is still 0
2024-01-18 11:32:51 +01:00
Godfrey M
befab608f2 cha cha cha changes 2024-01-17 17:59:20 -08:00
Godfrey M
cdcd868162 formats check in message for MS Teams 2024-01-17 17:31:23 -08:00
Godfrey M
ce02e43ab2 fixed integration link, added some conditionals 2024-01-17 16:30:27 -08:00
Godfrey M
9f2af40ef2 adds MS teams integration test 2024-01-17 13:41:45 -08:00
Godfrey M
93ef8317e8 added payload, new MS webhook test method 2024-01-17 11:49:31 -08:00
snipe
99000fada1 Merge pull request #14127 from snipe/jerm/upgrade-deps-file
Add php version requirements file for future-proofing upgrades
2024-01-17 13:15:56 +00:00
Marcus Moore
8aa5cf530b Improve radio button values in custom report form 2024-01-16 12:33:16 -08:00
Godfrey M
6be8c063a9 added moar translations 2024-01-16 12:05:09 -08:00
Godfrey M
74dc17b4b9 adds translations for Label example 2024-01-16 10:47:45 -08:00
snipe
2ae5029bc4 Merge remote-tracking branch 'origin/develop' 2024-01-15 16:11:59 +00:00
snipe
adba2d5b6c Remove 7 day padding for expected assets
Signed-off-by: snipe <snipe@snipe.net>
2024-01-15 16:11:31 +00:00
Jeremy Price
58b2f8ca17 typo 2024-01-11 19:12:24 -08:00
Jeremy Price
8be3c1aaf2 Quit the script when we hit hard errors
a found a few other points where we talk about exiting and re-running
the script once fixed, but never actually exit. So i'm adding-in the
missing exits, and updating any existing exits to make sure we return a
failing return code to the shell
2024-01-11 18:20:09 -08:00
Jeremy Price
2ee8639eaf Check to make sure there's a .env file
While i was testing this, i noticed that it ran right by the .env check,
even though i don't have a .env file at all. The script checks for a
_bad_ .env, but not a missing one.

Now it does
2024-01-11 18:18:41 -08:00
Jeremy Price
32605578dd Add remote requirements checking to upgrade.php
quoted from https://github.com/snipe/snipe-it/pull/14127
    There is a race condition in the upgrade.php file where it can't
    currently know the hard requirements for the version it's upgrading to
    until it does a git pull. By that time, it will have pulled new source
    code that possibly relies on an incompatible version of php, leaving you
    with a broken installation.

    Example: You're running v6.2.x on PHP 7.4, which is fine. v7 requires
    PHP 8.1 or 8.2, but we couldn't know that when we released v6. or v5 for
    that matter. We could change the requirements in the most-recent v6
    version of upgrade.php, but that doesn't help anyone who doesn't upgrade
    first to the most recent v6.

With this change, we implement fetching and incorporating the
requirements data from the remote file.

It's just fetching/decoding a couple of json values that replace the
hard-coded version requirements.

We move the branch checking higher than the php version checking so that
we can use the defined/overridden $branch to decide what branch to pull
the requirements from.
2024-01-11 18:13:59 -08:00
Jeremy Price
fe0bba6df6 rename upgrade requirements file and add snipeit version differentiation
the latter mostly for testing and san checking.. but it doesn't really
matter because it's just json.. if we don't use it we don't use it
2024-01-11 16:52:39 -08:00
Jeremy Price
5fdcd6298f rename php_max_major, because it's not.. it's major_minor, even if it sounds ridiculous 2024-01-11 16:50:16 -08:00
Jeremy Price
55943dbff6 add comments and php_max_wontwork because that's what we use rigth now and MVP, dammit 2024-01-11 16:47:47 -08:00
Jeremy Price
d12e571b20 undoing versioning.. doesn't make sense 2024-01-11 16:32:17 -08:00
Jeremy Price
0c15f05316 Initial upgrade_requirements.json file
for fetching before upgrades, to check major prereqs -- mainly php -- before
pulling down new, possibly breaking, code.
2024-01-11 16:27:03 -08:00
snipe
73ddc0f669 Merge remote-tracking branch 'origin/develop' 2024-01-11 21:46:20 +00:00
snipe
66c24e152f Merge pull request #14114 from uberbrady/preserve_sort_in_label_generation
Fixed [FD-39640]: preserve sort order when generating asset labels
2024-01-11 21:46:01 +00:00
snipe
f610afb1b8 Merge pull request #14121 from Godmartinz/checkout_bug_fix
Fixed multiple click checkouts for consumables, accessories and components
2024-01-11 11:15:48 +00:00
Godfrey M
1f7f9717c5 fixes checkout bug 2024-01-10 11:35:32 -08:00
snipe
5beeaa237b Merge remote-tracking branch 'origin/develop' 2024-01-10 13:20:36 +00:00
snipe
f151de2adc Merge pull request #14118 from snipe/fixes/_supplier_searchable_on_maintenances
Search on supplier name attached to maintenance
2024-01-10 13:18:47 +00:00
snipe
b94aaad9b5 Search on supplier name attached to maintenance
Signed-off-by: snipe <snipe@snipe.net>
2024-01-10 13:16:07 +00:00
snipe
9c9af12e83 Merge remote-tracking branch 'origin/develop' 2024-01-10 13:06:38 +00:00
snipe
1a48790dfe Merge pull request #14116 from marcusmoore/bug/sc-24475
Guard against passing non-integer for company_id when creating asset
2024-01-09 19:08:14 +00:00
Marcus Moore
423b636db9 Guard against non-integers being passed for company_id 2024-01-09 10:57:43 -08:00
snipe
be32152394 Merge remote-tracking branch 'origin/develop' 2024-01-09 17:44:19 +00:00
snipe
824c3e6ecf Merge pull request #14087 from ubc-cpsc/bugfix/CVE-2023-51651
Fixes CVE-2023-51651 Potential URI resolution path traversal in the AWS SDK for PHP
2024-01-09 17:44:04 +00:00
snipe
4053b75f49 Merge branch 'develop' of https://github.com/snipe/snipe-it into develop 2024-01-09 17:43:11 +00:00
snipe
ea4a0c2293 docs: add @mauro-miatello as a contributor 2024-01-09 17:43:03 +00:00
snipe
10ee6ee5c4 Merge pull request #14115 from mauro-miatello/develop
Added license expiration date in "view asset"
2024-01-09 17:38:51 +00:00
MrM
9d16eacad5 Added license expiration date in "view asset"
I've added the expiration date of the license associated with an asset in hardware/ID#software, it is useful to see all of them on the asset page instead of having to open the license details page. I've also fixed a space formatting issue.
2024-01-09 18:30:51 +01:00
Brady Wetherington
4b90f85372 Fixed [FD-39640]: preserve sort order when generating asset labels 2024-01-09 16:37:33 +00:00
snipe
8001ed8436 Merge remote-tracking branch 'origin/develop' 2024-01-08 22:30:05 +00:00
snipe
eaf6d56253 Merge pull request #14109 from marcusmoore/chore/sc-24397
Moved contributors to dedicated file
2024-01-08 22:28:52 +00:00
snipe
8541a342cb Merge pull request #14108 from Godmartinz/asset_maintenance_scope
Added supplier name as a searchable relation on the asset maintenance report
2024-01-08 22:25:55 +00:00
Godfrey M
4184b271f7 adds Supplier as a searchable relation on the asset maintenance report 2024-01-08 14:22:35 -08:00
Marcus Moore
6b105ba8f0 Move link 2024-01-08 14:17:42 -08:00
Marcus Moore
348ed1e555 Add link to contributors file 2024-01-08 14:16:15 -08:00
Marcus Moore
8314047bfb Add newline to start of contributors file 2024-01-08 14:02:09 -08:00
Marcus Moore
1bd4b3827d Add missing comma 2024-01-08 13:47:43 -08:00
Marcus Moore
a2463c2a71 Reference correct file 2024-01-08 13:43:26 -08:00
Marcus Moore
f4d568bf89 Add missing config key 2024-01-08 13:40:57 -08:00
Marcus Moore
eb862c27b8 Add config keys 2024-01-08 13:31:30 -08:00
Marcus Moore
18f79ad924 Move contributors from readme to dedicated files 2024-01-08 13:29:18 -08:00
Marcus Moore
afb396ed65 Add contributor commands to package.json 2024-01-08 13:26:58 -08:00
Marcus Moore
8ea15fc6aa Run generate command to migrate to new style
(from markdown style tables and images to html style)

./node_modules/.bin/all-contributors generate
2024-01-08 12:42:45 -08:00
Marcus Moore
064ec1c22d Add missing markers 2024-01-08 12:39:40 -08:00
Marcus Moore
2f47217003 Add all-contributors-cli as dev dependency 2024-01-08 12:26:52 -08:00
Jermops
25c9f8e038 Merge pull request #14105 from snipe/jerm/snipeit-sh
Update snipeit.sh for v7 Requirements
2024-01-08 11:48:21 -08:00
Jeremy Price
a3811371cc remove removal of installation scripts 2024-01-08 11:41:30 -08:00
Brady Wetherington
f734e196e5 Merge branch 'develop' into snipeit_v7_laravel10 2024-01-08 18:57:55 +00:00
Jeremy Price
6129f4722f Oops! Don't checkout my custom branch
using master until we make the switch to main. As master will keep
working after we switch branches, main will _not_ work _until_ we switch, and if
for some reason we have to delay the branch migration, this will remain
broken until we fix it.
2024-01-08 10:08:52 -08:00
snipe
d71a04e489 Merge remote-tracking branch 'origin/develop' 2024-01-08 17:24:47 +00:00
snipe
4f8defb67d Merge pull request #14107 from snipe/bug/sc-24471
Check that the asset exists before trying to get properties
2024-01-08 12:43:13 +00:00
snipe
2707c399ea Check that the asset exists before trying to get properties
Signed-off-by: snipe <snipe@snipe.net>
2024-01-08 12:42:05 +00:00
Jeremy Price
585d7d0b87 replace some tabs with spaces. don't @ me 2024-01-05 12:09:03 -08:00
snipe
012fe57ca1 Updated assets
Signed-off-by: snipe <snipe@snipe.net>
2024-01-05 15:16:14 +00:00
snipe
f5960388f1 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-01-05 15:05:22 +00:00
snipe
6ebbd2dc30 Merge pull request #14104 from snipe/feature/google_login_more_prominent
Move Google Login prompt higher, made it bigger
2024-01-05 15:03:12 +00:00
snipe
7c5d29ccd9 Move Google Login prompt higher, made it bigger
Signed-off-by: snipe <snipe@snipe.net>
2024-01-05 14:56:34 +00:00
snipe
93712ec417 Merge pull request #14103 from snipe/bug/user_api_limit_offset_order
Moved limit and offset in user API to after additional qualifiers
2024-01-05 12:02:18 +00:00
snipe
f8a21bdb2d Moved limit and offset to after additional qualifiers
Signed-off-by: snipe <snipe@snipe.net>
2024-01-05 11:59:31 +00:00
Jeremy Price
cdfc198f28 update changelog 2024-01-05 00:09:06 -08:00
Jeremy Price
6fcb3d3d5e re-add missing progress bar to ensure correct command ordering 2024-01-05 00:09:06 -08:00
Jeremy Price
358d9ec06d fix enterprise linux version in remi repo for v9 distros 2024-01-05 00:09:06 -08:00
Jeremy Price
322c8c1cf3 install php-sodium on al2. fix snipeit database name 2024-01-05 00:09:06 -08:00
Jeremy Price
47eb0c34a2 remove fedora surpport, add amazon and alma 2024-01-05 00:09:06 -08:00
Jeremy Price
4a290a85e6 awsl2 support, php8.2 support in centos/alma, new mysql user creation code 2024-01-05 00:09:06 -08:00
Jeremy Price
5489c50cc0 remove remaining 8.2 references in Ubuntu 23* block
different vim config confusion made my regex misbehave :-/
2024-01-05 00:09:06 -08:00
Jeremy Price
066e40dada update Ubuntu versions comment in code block 2024-01-05 00:09:06 -08:00
Jeremy Price
123d04ff7b split-out ubuntu 23* versions
since 2023 didn't produce and LTS ubuntu versions

the Ondrej repo we use for installing arbitrary PHP versions doesn't
(easily) support non-LTS versions of ubuntu, which means that 23.04 and
23.10 are problematic using the repo

However, these versions ship with  php8.1 and php8.2 (respectively), so
we don't even need the Ondrej repo for these, so we'll remove it

In general, we'll only support LTS Ubuntu repos because of this, but if
they happen to ship with our preferred PHP versions and otherwise work
w/o heroics, we'll include nominal support in the script
2024-01-05 00:09:06 -08:00
Jeremy Price
d5881736cf stop quoting run_as_app_user args
because "$@" splits positional parameters, but quoting the args makes
them one arg, which doesn't work
2024-01-05 00:09:06 -08:00
Jeremy Price
5e539da3da Debian 12 2024-01-05 00:09:06 -08:00
Jeremy Price
ba58ca9d5c fix up ondrej repo 2024-01-05 00:09:06 -08:00
Jeremy Price
117007dfa1 add new ubuntu/debian versions, change php to 8.2 2024-01-05 00:09:06 -08:00
snipe
10ef47fe87 Merge remote-tracking branch 'origin/develop' 2024-01-04 23:37:36 +00:00
snipe
d29b3633d1 Merge pull request #14063 from marcusmoore/chore/sc-24353
Removed unused files in assets directory
2024-01-04 22:41:49 +00:00
snipe
98ef687e9c Merge pull request #14090 from marcusmoore/chore/sc-24386
Run sqlite tests in GitHub action
2024-01-04 22:41:37 +00:00
snipe
432f05586e Merge pull request #14100 from Godmartinz/fix-license-seat-department-link
fixed `departmentNameLinkFormatter` url
2024-01-04 22:40:24 +00:00
snipe
dbcf7e3fd1 Merge pull request #14101 from marcusmoore/bug/sc-24398
Fixes creating invalid query with null values
2024-01-04 22:36:46 +00:00
Godfrey M
43737263d4 removed that clause 2024-01-04 14:32:03 -08:00
Godfrey M
07eeaea3bf adds an additional clause 2024-01-04 14:30:59 -08:00
Godfrey M
249ff868e5 removes empty seats when sorting by department 2024-01-04 14:26:07 -08:00
Marcus Moore
742e183b02 Add guard against adding null values to query
Since $request->filled(null) returns true
2024-01-04 14:04:00 -08:00
Godfrey M
a110b5fcca ugh 2024-01-04 12:37:53 -08:00
Godfrey M
1f1e58eb1e remove unintentional change 2024-01-04 12:36:57 -08:00
Godfrey M
32b34ca9b9 departmentNameLinkFormatter had a bad url 2024-01-04 12:33:33 -08:00
snipe
3a6d626aa1 Merge remote-tracking branch 'origin/develop' 2024-01-04 00:36:50 +00:00
snipe
0c6611d6bd Merge pull request #14097 from spencerrlongg/hotfix/migration_model_issue
Use Query Builder instead of Model for Update to Skip Observer
2024-01-04 00:36:30 +00:00
spencerrlongg
0d853f931d use query builder instead of model for update to skip observer 2024-01-03 18:32:13 -06:00
snipe
c8816354ae Updated assets for master
Signed-off-by: snipe <snipe@snipe.net>
2024-01-03 23:28:54 +00:00
snipe
42d35174b2 Updated hash
Signed-off-by: snipe <snipe@snipe.net>
2024-01-03 23:25:56 +00:00
snipe
00718d7a4b Merge pull request #14096 from snipe/security/snyk_14075
Upgrade jspdf-autotable from 3.5.31 to 3.8.0
2024-01-03 23:23:10 +00:00
snipe
ab32c42ac8 Upgrade jspdf-autotable from 3.5.31 to 3.8.0
Signed-off-by: snipe <snipe@snipe.net>
2024-01-03 23:21:27 +00:00
snipe
bbdc8383e1 Updated assets
Signed-off-by: snipe <snipe@snipe.net>
2024-01-03 23:17:44 +00:00
snipe
e711d68de1 Merge pull request #14095 from snipe/security/snyk_14066_Upgrade_fortawesome/fontawesome-free
Upgrade @fortawesome/fontawesome-free from 6.4.0 to 6.5.0
2024-01-03 23:16:39 +00:00
snipe
b29df4a610 Upgrade @fortawesome/fontawesome-free from 6.4.0 to 6.5.0
Signed-off-by: snipe <snipe@snipe.net>
2024-01-03 23:15:49 +00:00
snipe
93273d301a Merge pull request #14094 from snipe/localizations/updated_strings
Updated language strings
2024-01-03 23:13:15 +00:00
snipe
50eb257cec Updated language strings
Signed-off-by: snipe <snipe@snipe.net>
2024-01-03 23:12:29 +00:00
snipe
b23ce6cfc6 Merge pull request #14093 from marcusmoore/bug/sc-24389
Fixes language source directory for crowdin
2024-01-03 22:11:20 +00:00
Marcus Moore
08c16b4435 Fix language source directory 2024-01-03 14:02:36 -08:00
snipe
0d697629aa Merge pull request #14092 from marcusmoore/chore/sc-24383
Syncs readme to DockerHub description
2024-01-03 21:36:34 +00:00
Marcus Moore
1f7e7b20e9 Sync readme to dockerhub 2024-01-03 13:26:49 -08:00
Marcus Moore
4894f524a0 Update action name 2024-01-03 12:30:10 -08:00
Marcus Moore
f819e1469a Run sqlite tests in GitHub action 2024-01-03 12:27:13 -08:00
snipe
cce9540316 Merge pull request #13964 from spencerrlongg/refactor/store_asset_form_request
Tests For API Asset Store + Refactor For Auto Increment & Form Requests
2024-01-03 19:26:11 +00:00
spencerrlongg
41e0275c95 htmlentities() 2024-01-03 12:42:36 -06:00
Joël Pittet
771e3ad0ad Fixes CVE-2023-51651 aws/aws-sdk-php with depdendencies 2024-01-02 17:31:10 -08:00
Joël Pittet
7ce37d0ffb Fixes CVE-2023-51651 aws/aws-sdk-php 2024-01-02 17:22:22 -08:00
spencerrlongg
901b1b83d0 rm code, was probably fixed through rules at some point 2024-01-02 18:27:17 -06:00
spencerrlongg
9e84521098 fix auto-increment settings for test settings 2024-01-02 18:10:59 -06:00
Spencer Long
8546407083 Merge branch 'develop' into refactor/store_asset_form_request 2024-01-02 18:05:15 -06:00
spencerrlongg
7c30261ec8 add marcus' migration changes to branch 2024-01-02 17:28:41 -06:00
snipe
8bc5f08da5 Fixed a few more small localization issues
Signed-off-by: snipe <snipe@snipe.net>
2023-12-24 20:14:49 +00:00
snipe
38bd530fae Update en defaults for controllers
Signed-off-by: snipe <snipe@snipe.net>
2023-12-24 19:44:20 +00:00
snipe
02d35449d2 Updated seeder with en to en-US
Signed-off-by: snipe <snipe@snipe.net>
2023-12-24 19:41:48 +00:00
snipe
eead7b49e3 Fixed language code
Signed-off-by: snipe <snipe@snipe.net>
2023-12-24 19:07:11 +00:00
snipe
a31bef7b9e Merge pull request #14072 from snipe/fixes/also_update_settings_console_command
Update ResetSettings command to en-US vs en
2023-12-24 18:33:23 +00:00
snipe
ed9473c8ff Update ResetSettings command to en-US vs en
Signed-off-by: snipe <snipe@snipe.net>
2023-12-24 18:32:21 +00:00
snipe
780269850a Merge pull request #14064 from snipe/bug/set_fallback_locale_to_new_locale_code
Bug/set fallback locale to new locale code
2023-12-20 01:04:43 +00:00
snipe
2a4eff2e90 Remove env var option for config on fallback
Signed-off-by: snipe <snipe@snipe.net>
2023-12-20 01:03:11 +00:00
snipe
a0553f4c33 Update fallback locale to new locale code
Signed-off-by: snipe <snipe@snipe.net>
2023-12-20 01:01:59 +00:00
snipe
4ee5ba4496 Merge pull request #14059 from snipe/localizations/new_strings_pre-6.3.0
Normalize language codes, updated strings
2023-12-20 00:02:47 +00:00
snipe
97ba023152 Moved return
Signed-off-by: snipe <snipe@snipe.net>
2023-12-19 20:47:06 +00:00
snipe
a5947b8109 Added warning in middleware
Signed-off-by: snipe <snipe@snipe.net>
2023-12-19 20:34:45 +00:00
snipe
4a0d4f5862 Moved static var up above
Signed-off-by: snipe <snipe@snipe.net>
2023-12-19 20:27:11 +00:00
snipe
5e0128c9dc Include trashed per @marcusmoore
Signed-off-by: snipe <snipe@snipe.net>
2023-12-19 20:23:19 +00:00
snipe
1a0e1b5f6c Added default to helper per @marcusmoore
Signed-off-by: snipe <snipe@snipe.net>
2023-12-19 20:23:11 +00:00
snipe
493ffc10c1 Defaulted to en-US on quickstart
Signed-off-by: snipe <snipe@snipe.net>
2023-12-19 20:16:00 +00:00
snipe
de62e2775e Merge pull request #14062 from uberbrady/add_down_migration_for_new_localization_refactor
Added back-migration for Big Locale Refactoring
2023-12-19 20:08:27 +00:00
Brady Wetherington
12ed8800d1 Changed some spacing and added a comment as per Snipe 2023-12-19 20:06:48 +00:00
Brady Wetherington
82dd601661 Added back-migration for Big Locale Refactoring 2023-12-19 19:54:04 +00:00
snipe
70b8b7e4be Check for a value for settings (this mostly matters in tests)
Signed-off-by: snipe <snipe@snipe.net>
2023-12-19 19:00:11 +00:00
snipe
1b3a4617b7 Merge pull request #14060 from snipe/bug/fix_bad_migration_namespace
Fixed bad migration namespace
2023-12-19 18:49:24 +00:00
snipe
9dbc38e2ca Drop the down()
Signed-off-by: snipe <snipe@snipe.net>
2023-12-19 18:25:21 +00:00
snipe
ab2c85778a Fixed migration namespace :(
Signed-off-by: snipe <snipe@snipe.net>
2023-12-19 18:22:06 +00:00
snipe
98e6f7e14c Updated form marco with new locale codes
Signed-off-by: snipe <snipe@snipe.net>
2023-12-19 18:12:02 +00:00
snipe
02f24d3332 WTF
Signed-off-by: snipe <snipe@snipe.net>
2023-12-19 17:57:17 +00:00
Godfrey M
4b071745fa prevents tables and table data from overflowing 2023-12-19 09:49:40 -08:00
snipe
6801caaa0d Added backl vendors directory
Signed-off-by: snipe <snipe@snipe.net>
2023-12-19 17:49:10 +00:00
snipe
db138479aa Updated locale middleware for mapping
Signed-off-by: snipe <snipe@snipe.net>
2023-12-19 17:43:22 +00:00
snipe
081bd69d5a Added helper method to map values
Signed-off-by: snipe <snipe@snipe.net>
2023-12-19 17:43:05 +00:00
snipe
c306ba550c Migration to update what we can for locales
Signed-off-by: snipe <snipe@snipe.net>
2023-12-19 17:42:56 +00:00
snipe
b9a877d92d Fixed donked dir tree
Signed-off-by: snipe <snipe@snipe.net>
2023-12-19 17:42:39 +00:00
snipe
3a6f26f241 Update example envs to use correct code for language
Signed-off-by: snipe <snipe@snipe.net>
2023-12-19 17:36:21 +00:00
Godfrey M
c0dba95426 testing ldap test table fix 2023-12-19 09:32:26 -08:00
snipe
026ea41dee Use correct language codes, updated strings
Signed-off-by: snipe <snipe@snipe.net>
2023-12-19 17:23:16 +00:00
snipe
b07133a008 Add @coach1988 as a contributor 2023-12-19 14:05:54 +00:00
snipe
f07ae45fc0 Merge pull request #14056 from snipe/bug/retarget_of_13987_dymo_fix
Implement 1D barcode for label "Tapes\Dymo\LabelWriter_30252" #13987
2023-12-19 14:05:22 +00:00
snipe
2226bd2cd7 Implement 1D barcode for label "Tapes\Dymo\LabelWriter_30252" #13987
Signed-off-by: snipe <snipe@snipe.net>
2023-12-19 14:03:55 +00:00
snipe
aca51d992b Merge pull request #14038 from ubc-cpsc/bugfix/CVE-2023-50251
Fixes CVE-2023-50251 and CVE-2023-50262 DoS on parsing SVG
2023-12-19 14:00:13 +00:00
snipe
fee0956832 Merge pull request #14039 from ubc-cpsc/bugfix/CVE-2023-43655
Fixes CVE-2023-43655 Composer Remote Code Execution vulnerability public composer.phar
2023-12-19 13:59:48 +00:00
snipe
36a76084da Merge remote-tracking branch 'origin/master' into develop 2023-12-19 13:31:10 +00:00
snipe
fe51d0ef79 Merge pull request #14055 from snipe/bug/disallow_arrays_for_model_id_in_api_hardware_update
Make sure we're getting an object instead of a collection on Asset API for model_id
2023-12-19 13:30:54 +00:00
snipe
f9139e0f10 Changed to use instanceof
Signed-off-by: snipe <snipe@snipe.net>
2023-12-19 13:25:32 +00:00
snipe
1063dcfb7b Merge pull request #13994 from Godmartinz/add_license_to_info_for_activation
Added licensed to name and email in user profile license view
2023-12-19 13:16:34 +00:00
snipe
79ad598673 Merge pull request #14050 from marcusmoore/add-logging-to-checking-alerts-command
Added log message for who is being sent expected checkin notifications
2023-12-19 13:14:04 +00:00
snipe
f13c1a53ef Get an object instead of a collection
Signed-off-by: snipe <snipe@snipe.net>
2023-12-19 12:51:35 +00:00
snipe
aef95e2218 Merge remote-tracking branch 'origin/develop' 2023-12-19 12:32:19 +00:00
snipe
f08ce34036 Fixed translation string in JSON
Signed-off-by: snipe <snipe@snipe.net>
2023-12-19 12:31:55 +00:00
Marcus Moore
7cf4baa92a Remove unused vendor less from resources directory 2023-12-18 17:58:47 -08:00
Marcus Moore
6c3dfdfe6d Remove unused vendor css files 2023-12-18 17:48:52 -08:00
akemidx
85bfbf8bc4 email in table, shows in export 2023-12-18 20:15:06 -05:00
Marcus Moore
1708897726 Add log message for who is being sent expected checkin notifications 2023-12-18 17:14:03 -08:00
akemidx
3fe3697a29 adding column, needs table join 2023-12-18 18:26:47 -05:00
snipe
ac8926abc2 Merge pull request #14047 from snipe/dependabot/github_actions/develop/github/codeql-action-3
Bump github/codeql-action from 2 to 3
2023-12-18 22:57:10 +00:00
snipe
e1d2fdcfb7 Merge pull request #14001 from Godmartinz/feature/sc-18577
Added Status Label names to Asset history/ Action log
2023-12-18 22:41:02 +00:00
Marcus Moore
149d159c05 Remove unused bootstrap resources 2023-12-18 11:49:52 -08:00
Marcus Moore
c0ad16f497 Remove unused vendor js files 2023-12-18 11:48:28 -08:00
dependabot[bot]
2305224221 Bump github/codeql-action from 2 to 3
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 2 to 3.
- [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/v2...v3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-18 08:13:48 +00:00
snipe
ea8181d3ec Merge remote-tracking branch 'origin/develop' 2023-12-15 16:41:55 +00:00
snipe
05bc9f117c Merge pull request #14042 from snipe/bug/sc-24356
Fixed #14037 - record current time on accessory checkin
2023-12-15 16:41:42 +00:00
snipe
444c41bedb Fixed #14037 - record current time on accessory checkin
Signed-off-by: snipe <snipe@snipe.net>
2023-12-15 16:39:18 +00:00
snipe
ec3c4674de Updated prod assets
Signed-off-by: snipe <snipe@snipe.net>
2023-12-15 13:58:45 +00:00
snipe
61a1fed0a2 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	public/css/dist/all.css
#	public/js/build/vendor.js
#	public/js/dist/all.js
#	public/mix-manifest.json
2023-12-15 13:58:25 +00:00
snipe
2427cb787b Updated assets
Signed-off-by: snipe <snipe@snipe.net>
2023-12-15 13:57:37 +00:00
snipe
e3d6d48e04 Merge pull request #13966 from marcusmoore/feature/sc-24120
Removed jquery-ui-bundle
2023-12-15 13:55:56 +00:00
snipe
0bb5abd24d Merge remote-tracking branch 'origin/develop' 2023-12-15 13:45:02 +00:00
snipe
130be26820 Merge pull request #14031 from snipe/bug/ldap_undefined_search_base
Fixed undefined $search_base
2023-12-15 13:33:34 +00:00
snipe
2d85eeface Added indexes for reports
Signed-off-by: snipe <snipe@snipe.net>
2023-12-15 13:24:01 +00:00
snipe
56f9c7f2f5 Merge pull request #14036 from snipe/feature/sc-24355
Added user agent, remote_ip, action_source to action_logs
2023-12-15 11:18:46 +00:00
snipe
421802893e Added new fields to action report
Signed-off-by: snipe <snipe@snipe.net>
2023-12-15 10:45:22 +00:00
Joël Pittet
32aedabfe5 Force update with PHP 7.4.3 platform requirement and update lock 2023-12-14 09:59:11 -08:00
Joël Pittet
b746c7d371 Fixes CVE-2023-43655 Composer Remote Code Execution vulnerability via web-accessible composer.phar 2023-12-14 09:34:25 -08:00
Joël Pittet
0a5eca53db Fixes CVE-2023-50251 and CVE-2023-50262 DoS on parsing SVG 2023-12-14 09:28:21 -08:00
snipe
7aabf94a35 Added comments
Signed-off-by: snipe <snipe@snipe.net>
2023-12-14 14:43:38 +00:00
snipe
e71080ef37 Make action date sortable on asset history view
Signed-off-by: snipe <snipe@snipe.net>
2023-12-14 14:41:15 +00:00
snipe
14c70ee6c4 Removed BS th classes
Signed-off-by: snipe <snipe@snipe.net>
2023-12-14 14:37:47 +00:00
snipe
8fc470c978 Added fields to activity report
Signed-off-by: snipe <snipe@snipe.net>
2023-12-14 14:34:44 +00:00
snipe
f5f136b9b5 Added fields to history views
Signed-off-by: snipe <snipe@snipe.net>
2023-12-14 14:34:31 +00:00
snipe
a90b04c905 Allowed sorting on user_agent, etc
Signed-off-by: snipe <snipe@snipe.net>
2023-12-14 14:34:08 +00:00
snipe
93c7108eda Added action source to translations
Signed-off-by: snipe <snipe@snipe.net>
2023-12-14 14:33:49 +00:00
snipe
40052e99a7 Added user agent to log method
Signed-off-by: snipe <snipe@snipe.net>
2023-12-14 14:33:39 +00:00
snipe
70303c2b2d Added searchable fields, improved formatting
Signed-off-by: snipe <snipe@snipe.net>
2023-12-14 14:33:25 +00:00
snipe
4dac3712a6 Added DB migration for remote_ip, action_source, user_agent in logs
Signed-off-by: snipe <snipe@snipe.net>
2023-12-14 14:32:26 +00:00
Brady Wetherington
430f1b0212 Merge branch 'develop' into feature/sc-24120 2023-12-14 13:28:17 +00:00
snipe
5df6575c37 Fixed undefinted $search_base
Signed-off-by: snipe <snipe@snipe.net>
2023-12-14 00:11:02 +00:00
snipe
cb18606b2e Merge remote-tracking branch 'origin/develop' 2023-12-13 17:55:57 +00:00
snipe
6b4bc9723c Added logo to readme
Signed-off-by: snipe <snipe@snipe.net>
2023-12-13 17:55:46 +00:00
spencerrlongg
e028145ad9 Add new asset tests for archive, depreciate, and physical fields 2023-12-13 09:16:08 -06:00
snipe
547d58cf14 Merge remote-tracking branch 'origin/develop' 2023-12-13 14:15:36 +00:00
snipe
b92906b071 Merge pull request #14028 from snipe/security/snyk_14013
[Snyk] Upgrade alpinejs from 3.12.3 to 3.13.3 #14013
2023-12-13 14:15:07 +00:00
snipe
b1d4d89b19 [Snyk] Upgrade alpinejs from 3.12.3 to 3.13.3 #14013
Signed-off-by: snipe <snipe@snipe.net>
2023-12-13 14:14:04 +00:00
snipe
4f56c2e9d6 Added radio to seeder for custom fields
Signed-off-by: snipe <snipe@snipe.net>
2023-12-13 14:03:13 +00:00
snipe
70250191ed Merge pull request #14026 from snipe/bug/sc-23599
Fixed checkbox/radio button display on models edit for default fields
2023-12-13 14:00:27 +00:00
snipe
337d863330 Missed closing label on radio buttons
Signed-off-by: snipe <snipe@snipe.net>
2023-12-13 13:52:31 +00:00
snipe
7b85a30b64 Fixed checkbox seeder
Signed-off-by: snipe <snipe@snipe.net>
2023-12-13 13:16:45 +00:00
snipe
ac96bad4a1 Merge pull request #14014 from Godmartinz/requested_assets_table_missing_header
added a missing table header on requested table for checkout
2023-12-13 12:57:20 +00:00
snipe
3834221589 Fixed radio button display
Signed-off-by: snipe <snipe@snipe.net>
2023-12-13 06:30:08 +00:00
snipe
016ca1adc1 Fixed HTML for checkboxes
Signed-off-by: snipe <snipe@snipe.net>
2023-12-13 06:27:50 +00:00
snipe
9edb631d52 Merge pull request #14024 from spencerrlongg/chore/last_vue_component
Last Vue Components
2023-12-13 04:35:35 +00:00
spencerrlongg
58d2f0a41e quick note 2023-12-12 15:49:57 -06:00
spencerrlongg
255d9427b6 make edit a button 2023-12-12 15:41:29 -06:00
spencerrlongg
d29f4489de fix 2023-12-12 14:09:12 -06:00
spencerrlongg
4367fc54bf remove vue from webpack steps 2023-12-12 13:43:05 -06:00
spencerrlongg
b89116eb55 submit on enter for edit 2023-12-12 13:33:51 -06:00
spencerrlongg
9430e9c8e2 autofocus, package-lock.json 2023-12-12 13:28:04 -06:00
snipe
7743b3a0fa Merge remote-tracking branch 'origin/develop' 2023-12-12 14:02:18 +00:00
snipe
8d4a4ccdab Merge pull request #14022 from snipe/chore/sc-24329
Added GH test action status badge
2023-12-12 14:01:56 +00:00
snipe
c5c3000a38 Added GH test action status badge
Signed-off-by: snipe <snipe@snipe.net>
2023-12-12 13:59:45 +00:00
snipe
46c0d38c6d Removed huntr.dev badge
They refocused their company to only AI now :(

Signed-off-by: snipe <snipe@snipe.net>
2023-12-12 13:44:11 +00:00
snipe
f9697887e8 Removed extraneous test
Signed-off-by: snipe <snipe@snipe.net>
2023-12-12 13:41:35 +00:00
snipe
c2896c034d Merge remote-tracking branch 'origin/develop' 2023-12-12 13:33:50 +00:00
snipe
0241e66f2d Merge pull request #14021 from snipe/bug/sc-24328
Fixed HTML double-encoded on checkout emails.
2023-12-12 13:31:41 +00:00
snipe
b53a4c366e Removed escaping on notes on checkout
Signed-off-by: snipe <snipe@snipe.net>
2023-12-12 13:26:41 +00:00
snipe
1572d5c3cc Merge remote-tracking branch 'origin/develop' 2023-12-12 12:27:15 +00:00
snipe
6bb842f52c Merge pull request #14020 from snipe/bug/sc-24326
Added $user->created_at to API user create method
2023-12-12 12:26:58 +00:00
snipe
e894138fd4 Added $user->created_at to API user create method
Signed-off-by: snipe <snipe@snipe.net>
2023-12-12 12:26:02 +00:00
snipe
f8a56f6dc2 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
2023-12-12 04:33:04 +00:00
snipe
068f64a78e Merge pull request #14018 from snipe/features/more_info_in_quickscan
Added model name and number to quickscan
2023-12-12 04:30:11 +00:00
snipe
631dd58de1 Added model name and number to quickscan
Signed-off-by: snipe <snipe@snipe.net>
2023-12-12 04:23:04 +00:00
snipe
bbe5c7c6e8 Merge pull request #14017 from snipe/bug/sc-24323
Smaller icon size for activity reports, other action icons
2023-12-12 01:02:45 +00:00
snipe
41f1c5c1e3 Smaller icon size for activity reports, other action icons
Signed-off-by: snipe <snipe@snipe.net>
2023-12-12 00:58:20 +00:00
spencerrlongg
b01d53a247 one more 2023-12-11 18:43:46 -06:00
snipe
8100f11a36 Merge pull request #14016 from snipe/feature/sc-24184
Set default sorting on backups to latest first
2023-12-12 00:36:28 +00:00
snipe
65dae836c6 Set default sorting on backups to latest first
Signed-off-by: snipe <snipe@snipe.net>
2023-12-12 00:35:08 +00:00
snipe
1689c7f9b6 Merge remote-tracking branch 'origin/develop' 2023-12-12 00:15:35 +00:00
snipe
1084382654 Merge pull request #14015 from snipe/bug/sc-24322
Updated importer icons
2023-12-12 00:15:15 +00:00
snipe
456e6979f0 Updated import icons
Signed-off-by: snipe <snipe@snipe.net>
2023-12-12 00:12:06 +00:00
spencerrlongg
65cbba3c2e completely kill vue 2023-12-11 18:09:22 -06:00
Godfrey M
5eb08d9568 added a missing table header for checkout 2023-12-11 11:14:55 -08:00
snipe
e7a9c7ec99 Merge pull request #14008 from akemidx/sc20532_change_log_level
Change log level on status label colors above 256
2023-12-08 09:01:28 +00:00
snipe
cf242d8b86 Merge remote-tracking branch 'origin/develop' 2023-12-08 08:59:17 +00:00
snipe
aa4aaf69b0 Fixed typo
Signed-off-by: snipe <snipe@snipe.net>
2023-12-08 08:58:45 +00:00
akemidx
f112e31b46 changing log level from ERROR to LOG 2023-12-07 17:56:10 -05:00
akemidx
dc83689553 changing log level from ERROR to LOG 2023-12-07 17:50:25 -05:00
snipe
16ea459eca Merge remote-tracking branch 'origin/develop' 2023-12-07 19:49:25 +00:00
snipe
e483e910fe Merge pull request #14007 from snipe/bug/sc-24315
Fixed maintenances patch endpoint
2023-12-07 19:48:43 +00:00
snipe
778e45c9fd Fixed maintenances patch endpoint
Signed-off-by: snipe <snipe@snipe.net>
2023-12-07 19:36:12 +00:00
snipe
4e96c8d05d Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	Dockerfile.alpine
2023-12-07 14:12:56 +00:00
snipe
2c5c97fd7e Merge pull request #14005 from uberbrady/restore_more_directories
Improve backup directory array
2023-12-07 14:12:04 +00:00
Brady Wetherington
6bd351c5d8 Whoops, didn't even add changes - duh 2023-12-07 14:08:15 +00:00
spencerrlongg
f93e7b91ff that's all folks 2023-12-06 16:20:30 -06:00
spencerrlongg
04069bab82 remove comment 2023-12-05 20:50:07 -06:00
spencerrlongg
3106035ef9 delete, comment 2023-12-05 20:41:34 -06:00
spencerrlongg
18720b3302 safety stuff 2023-12-05 20:36:59 -06:00
spencerrlongg
12e546e63a everything working, cleanup 2023-12-05 20:22:20 -06:00
spencerrlongg
c28936fefb almost there... problem with update button 2023-12-05 17:39:35 -06:00
spencerrlongg
080d196138 buttons work now after style tags removed 2023-12-05 16:41:25 -06:00
spencerrlongg
d3967b37cd this is a start, buttons not working? 2023-12-05 14:52:14 -06:00
Godfrey M
b90cfba796 adds status label id to line change 2023-12-05 11:56:54 -08:00
Godfrey M
49342a4542 added status names to asset history 2023-12-05 11:50:43 -08:00
Godfrey M
a95f0b8862 remove column sizes 2023-12-05 11:07:52 -08:00
Godfrey M
7a1d5e11cc Merge remote-tracking branch 'origin/add_license_to_info_for_activation' into add_license_to_info_for_activation 2023-12-05 11:07:34 -08:00
Godfrey M
15af64a355 fixed the bootstrap column sizes 2023-12-05 10:07:58 -08:00
snipe
0089ea2321 Merge pull request #13882 from marcusmoore/fixes/jquery-validation
Fix client side validation in the v7 branch
2023-12-05 17:26:48 +00:00
snipe
3f35124838 Merge pull request #13888 from spencerrlongg/chore/sc-16907
Convert Vue Personal Access Tokens to Livewire
2023-12-05 16:45:16 +00:00
spencerrlongg
6ca5fb6b20 remove token scope html 2023-12-05 09:44:03 -06:00
snipe
34bf6818ca Merge pull request #13999 from snipe/security/alpine
Updated to alpine 3.18.5 (PR to #13989)
2023-12-05 15:01:07 +00:00
snipe
a0de9eb343 Updated to alpine 3.18.5
Signed-off-by: snipe <snipe@snipe.net>
2023-12-05 15:00:04 +00:00
snipe
b4d747550c Merge pull request #13998 from snipe/feature/add_help_text_for_rtd
Added help text to RTD location field
2023-12-05 14:42:07 +00:00
snipe
7258af20fc Added help text to RTD location field
Signed-off-by: snipe <snipe@snipe.net>
2023-12-05 14:40:49 +00:00
Marcus Moore
a3b0273445 Remove comment 2023-12-04 15:21:04 -08:00
Godfrey Martinez
dd68182d08 Merge branch 'develop' into add_license_to_info_for_activation 2023-12-04 11:17:07 -08:00
Godfrey M
0e9e31f68b adds info needed for license self activation 2023-12-04 11:12:30 -08:00
snipe
174a3398d1 Merge pull request #13993 from Godmartinz/license_product_key_serial_swap
Fixed the Column header Serial to Product Key on a User View
2023-12-04 19:09:03 +00:00
Godfrey M
4fd43799b4 missed one view 2023-12-04 10:56:03 -08:00
spencerrlongg
cef1c5d4d2 cleanup test 2023-12-04 12:47:46 -06:00
snipe
09ec8d1d5c Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	public/css/dist/skins/skin-black-dark.css
#	public/css/dist/skins/skin-black-dark.min.css
#	public/mix-manifest.json
2023-12-04 15:42:58 +00:00
snipe
5d60be97af Merge pull request #13992 from snipe/bug/sc-24182
Added eula-pdfs to allow-list on restore
2023-12-04 15:35:34 +00:00
snipe
1e46ecc2ee Added eula-pdfs to allow-list
Signed-off-by: snipe <snipe@snipe.net>
2023-12-04 15:33:56 +00:00
spencerrlongg
2d57b9399c more cleanup 2023-11-30 16:20:48 -06:00
spencerrlongg
ca8765e1d7 cleaned up 2023-11-30 16:18:50 -06:00
spencerrlongg
6e5f296a13 gets rid of depreciate 2023-11-30 16:08:49 -06:00
spencerrlongg
68d85385a2 get rid of physical 2023-11-30 16:03:30 -06:00
spencerrlongg
88b6a541ee removed references to archived 2023-11-30 15:59:03 -06:00
spencerrlongg
133c469e36 organization 2023-11-30 14:25:58 -06:00
snipe
5730518fc6 Merge pull request #13978 from uberbrady/test_ldap
Test ldap
2023-11-30 19:23:29 +00:00
snipe
fb1965331c Merge pull request #13981 from Godmartinz/license-table-header-fix
Fixed the Column header Serial to Product Key for Licenses
2023-11-30 18:51:42 +00:00
Godfrey M
fdaa44654d changes the table header Serial to Product Key 2023-11-30 10:46:18 -08:00
snipe
1455331a90 Updated dev assets
Signed-off-by: snipe <snipe@snipe.net>
2023-11-30 18:25:38 +00:00
spencerrlongg
7e780c1187 cleanup rules formatting 2023-11-30 12:20:02 -06:00
spencerrlongg
df954a3af2 return types 2023-11-30 12:06:58 -06:00
spencerrlongg
135b7bde7d added some more check out assertions 2023-11-30 11:53:26 -06:00
snipe
42109dc1eb Merge pull request #13976 from Godmartinz/sc-24144_final
Fixed black dark theme, contrast issues etc
2023-11-30 16:23:13 +00:00
snipe
47c8ae000a Merge pull request #13975 from ubc-cpsc/bugfix/CVE-2023-49316
Fixes CVE-2023-49316 by upgrading phpseclib/phpseclib
2023-11-30 16:22:08 +00:00
Brady Wetherington
5a60df55d1 Add more LDAP tests - including pagination(!) 2023-11-30 16:09:37 +00:00
Brady Wetherington
16da994e28 Add LDAP as 'recommended' requirement; flesh out LDAP tests 2023-11-30 14:00:20 +00:00
Brady Wetherington
2a00dc2d28 Merge branch 'develop' into test_ldap 2023-11-30 12:04:43 +00:00
spencerrlongg
151ceb5fbe get rid of firsts and find by responses id 2023-11-29 17:14:46 -06:00
spencerrlongg
d794608a09 note 2023-11-29 15:04:52 -06:00
spencerrlongg
c3492f1699 fixed eol, add calculated eol/eol explicit tests 2023-11-29 14:57:31 -06:00
Godfrey M
4a19f23e7c fixes for black dark theme 2023-11-29 11:30:02 -08:00
spencerrlongg
9d8433bd6d a couple quick things 2023-11-29 13:15:41 -06:00
Joël Pittet
5b4d6b346b Update for CVE-2023-49316 by upgrading phpseclib/phpseclib (3.0.14 => 3.0.34) 2023-11-29 11:03:12 -08:00
spencerrlongg
65ca24f6ae asset assigned to asset works now 2023-11-29 11:37:52 -06:00
snipe
f004007c47 Merge remote-tracking branch 'origin/develop' 2023-11-29 10:09:27 +00:00
snipe
96210e9498 Merge pull request #13970 from snipe/bug/sc-24149
Created mutator for requestable attribute
2023-11-29 10:08:41 +00:00
snipe
3152df2c48 Created mutator for requestable attribute
Signed-off-by: snipe <snipe@snipe.net>
2023-11-29 10:07:47 +00:00
snipe
df2b52c537 Merge remote-tracking branch 'origin/develop' 2023-11-29 09:41:05 +00:00
snipe
189c90e9e5 Merge pull request #13954 from Godmartinz/feature/sc-23756
Fixed user total asset cost to appear conditionally
2023-11-29 09:40:39 +00:00
snipe
c35d234cde Merge pull request #13959 from snipe/fixes/rebased_bulk_edit_fix
Fixed status and model in bulk edit
2023-11-29 09:40:03 +00:00
snipe
80fafeaebe Merge pull request #13965 from akemidx/no_group_notice_trans
Translation of No Group notice on User edit page
2023-11-29 09:39:28 +00:00
spencerrlongg
b17078fffd a couple notes 2023-11-28 22:15:13 -06:00
spencerrlongg
c886fb555b checkout on store tests almost done 2023-11-28 22:11:20 -06:00
spencerrlongg
15d11f7f4e test checkout to user on store 2023-11-28 21:46:03 -06:00
spencerrlongg
cba5f869c0 standardize some of the validation rules, fix int/string issue 2023-11-28 21:19:19 -06:00
spencerrlongg
4aae82fa38 cleanup validation rules a little 2023-11-28 17:28:17 -06:00
spencerrlongg
5b77e66d28 get rid of deleted_at as it doesn't do anything 2023-11-28 17:16:17 -06:00
Marcus Moore
4a975ebe29 Remove jquery-ui-dist 2023-11-28 15:01:41 -08:00
akemidx
2a54797dce permission level proof of formatting 2023-11-28 17:58:37 -05:00
akemidx
63065bab5d adding in icons for clarity, since there are two places called settings 2023-11-28 17:51:43 -05:00
akemidx
9770016eec beginning of permission groups export 2023-11-28 17:47:36 -05:00
Marcus Moore
810abb5c30 Replace jquery-ui-bundle with jquery-ui-dist 2023-11-28 14:24:21 -08:00
akemidx
108658520d translating no group message on user edit page 2023-11-28 17:15:51 -05:00
spencerrlongg
75ac7f80b9 some refactor + tests 2023-11-28 15:17:46 -06:00
Godfrey M
9e59550b79 removes the row instead of just the optional values 2023-11-28 10:08:32 -08:00
snipe
899890b224 Use update array nomenclature
Signed-off-by: snipe <snipe@snipe.net>
2023-11-28 16:25:35 +00:00
snipe
7ac3341b4f Merge pull request #13955 from marcusmoore/bug/sc-24137
Fixed sqlite exception in migration
2023-11-28 16:13:10 +00:00
snipe
d4fb7ac403 Merge remote-tracking branch 'origin/develop' 2023-11-28 16:11:01 +00:00
snipe
9d5ceb685d Merge pull request #13958 from uberbrady/encryption_key_rotator
Modified re-crypter to also work when given a CLI old-key
2023-11-28 16:10:45 +00:00
snipe
601ebcc1e6 Removed table header contraint
Signed-off-by: snipe <snipe@snipe.net>
2023-11-28 16:00:42 +00:00
snipe
2247be77d8 Fixed translation
Signed-off-by: snipe <snipe@snipe.net>
2023-11-28 15:56:20 +00:00
snipe
2d4a14d4bb Fixed from rebase :(
Signed-off-by: snipe <snipe@snipe.net>
2023-11-28 15:55:41 +00:00
snipe
3b9f069627 Switched back to old version
Signed-off-by: snipe <snipe@snipe.net>
2023-11-28 15:54:42 +00:00
snipe
2c6b957fbe Removed unused query
Signed-off-by: snipe <snipe@snipe.net>
2023-11-28 15:28:37 +00:00
snipe
6ae03a204b Added the model info back in
Signed-off-by: snipe <snipe@snipe.net>
2023-11-28 15:21:14 +00:00
snipe
187d3abeb4 Use translation string
Signed-off-by: snipe <snipe@snipe.net>
2023-11-28 15:15:07 +00:00
snipe
c91713e20a Removed debugging
Signed-off-by: snipe <snipe@snipe.net>
2023-11-28 15:14:55 +00:00
snipe
fa1176ce14 Added translation
Signed-off-by: snipe <snipe@snipe.net>
2023-11-28 15:14:12 +00:00
Brady Wetherington
c71726c83e Whoops, left in some debug lines 2023-11-28 13:52:07 +00:00
Brady Wetherington
ca430ec9b3 Modified re-crypter to also work when given a CLI old-key 2023-11-28 13:49:58 +00:00
snipe
9d786d9386 Removed unused method
Signed-off-by: snipe <snipe@snipe.net>
2023-11-28 13:43:33 +00:00
snipe
4723cfd4ba More refactoring
Signed-off-by: snipe <snipe@snipe.net>
2023-11-28 13:33:32 +00:00
snipe
f9d5c451bc Committing this for now - not done
Signed-off-by: snipe <snipe@snipe.net>
2023-11-28 13:33:32 +00:00
snipe
5574218966 More FAFO - cleanup needed, but model_id works now
Signed-off-by: snipe <snipe@snipe.net>
2023-11-28 13:33:32 +00:00
snipe
c997ae44c2 FAFO troubleshooting
Signed-off-by: snipe <snipe@snipe.net>
2023-11-28 13:33:32 +00:00
Marcus Moore
77ceac5747 Update docblock 2023-11-27 16:36:51 -08:00
Marcus Moore
990358750b Add migration for postgres 2023-11-27 16:33:57 -08:00
Marcus Moore
72dbe95168 Add table prefix 2023-11-27 15:55:33 -08:00
Marcus Moore
37bd297094 Fix typo 2023-11-27 14:05:38 -08:00
Marcus Moore
5d32956070 Allow for migrating data when using sqlite 2023-11-27 12:35:13 -08:00
Godfrey M
45e9d0597a makes user total asset cost appear conditionally 2023-11-27 11:36:47 -08:00
snipe
121b86b3e8 Merge remote-tracking branch 'origin/develop' 2023-11-27 15:49:26 +00:00
Brady Wetherington
8e8b1068ff Beginnings of LDAP test suite 2023-11-27 14:50:43 +00:00
snipe
c72950166f Merge remote-tracking branch 'origin/develop' 2023-11-27 14:46:37 +00:00
snipe
8c7edcb357 Merge pull request #13953 from snipe/localizations/new_strings
Updated language strings
2023-11-27 14:44:01 +00:00
snipe
dbb6002f9f Updated language strings
Signed-off-by: snipe <snipe@snipe.net>
2023-11-27 14:43:16 +00:00
snipe
776c91934b Updated dir name for Khmer
Signed-off-by: snipe <snipe@snipe.net>
2023-11-27 14:39:13 +00:00
Brady Wetherington
6210716199 Merge branch 'develop' into snipeit_v7_laravel10 2023-11-27 13:04:39 +00:00
snipe
77ab5eb875 Merge pull request #13909 from akemidx/bug/sc-23999
Hiding Order Column in Custom Fieldsets
2023-11-24 19:10:42 +00:00
snipe
d80c8ff25b Merge remote-tracking branch 'origin/develop' 2023-11-24 10:10:45 +00:00
snipe
eca13d0593 Merge pull request #13950 from snipe/fixes/array_key_in_import
Check for the array key in $activeFile->first_row
2023-11-24 10:10:08 +00:00
snipe
9607567b75 Check for the array key in $activeFile->first_row
Signed-off-by: snipe <snipe@snipe.net>
2023-11-24 10:08:35 +00:00
snipe
6cec1bd3b9 Merge remote-tracking branch 'origin/develop' 2023-11-23 17:00:32 +00:00
snipe
1217bff4b6 Merge pull request #13947 from snipe/fixes/refactor_checkout_with_bad_category
Refactored checkout for items with bad or missing category
2023-11-23 16:59:51 +00:00
snipe
84d26fe7fa Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	config/version.php
#	package-lock.json
#	public/css/dist/skins/skin-green-dark.css
#	public/css/dist/skins/skin-green-dark.min.css
#	public/js/dist/all-defer.js
#	public/mix-manifest.json
2023-11-23 16:53:13 +00:00
snipe
ea55daf913 Bumped hash
Signed-off-by: snipe <snipe@snipe.net>
2023-11-23 16:51:39 +00:00
snipe
0ff99f0479 Merge pull request #13948 from uberbrady/scim_active_flag
SCIM active flag must be a boolean
2023-11-23 16:44:22 +00:00
Brady Wetherington
8916c976e1 Merge branch 'develop' into scim_active_flag 2023-11-23 16:36:17 +00:00
Brady Wetherington
7b12d511f8 Force active flag to be returned as true or false 2023-11-23 16:34:03 +00:00
snipe
81b2273c37 Refactored checkout screen to redirect if invalid category
Signed-off-by: snipe <snipe@snipe.net>
2023-11-23 16:18:28 +00:00
snipe
978bbeccc5 Added strings
Signed-off-by: snipe <snipe@snipe.net>
2023-11-23 16:18:09 +00:00
snipe
accfbc1b99 Show number of remaining seats and category in form
Signed-off-by: snipe <snipe@snipe.net>
2023-11-23 16:18:03 +00:00
snipe
cf3608ae10 Add @bilias as a contributor 2023-11-23 15:33:08 +00:00
snipe
aaa6a31eb3 Merge pull request #13945 from snipe/fixes/green_skin_fix_13915_to_develop
Higher contrast on green dark skin (#13915 for develop)
2023-11-23 15:30:00 +00:00
snipe
88cc234cbd Higher contrast for green dark skin
Applies #13915 to develop

Signed-off-by: snipe <snipe@snipe.net>
2023-11-23 15:28:43 +00:00
snipe
94eeca7429 Merge pull request #13944 from snipe/security/snyk_13937
Upgrade jspdf-autotable from 3.5.31 to 3.7.1 #13937
2023-11-23 15:24:33 +00:00
snipe
e0e11845bb Upgrade jspdf-autotable from 3.5.31 to 3.7.1 #13937
Signed-off-by: snipe <snipe@snipe.net>
2023-11-23 15:23:13 +00:00
snipe
a7f98ea2a5 Merge pull request #13943 from snipe/security/snyk_13936
Upgrade alpinejs from 3.12.3 to 3.13.2 #13936
2023-11-23 15:20:47 +00:00
snipe
8e3657d62e Upgrade alpinejs from 3.12.3 to 3.13.2 #13936
Signed-off-by: snipe <snipe@snipe.net>
2023-11-23 15:19:59 +00:00
snipe
ddd7f206d3 Merge pull request #13942 from snipe/security/snyk_13935
Updated acorn to 8.11.2
2023-11-23 15:17:34 +00:00
snipe
81cf08adf5 Updated acorn to 8.11.2
Signed-off-by: snipe <snipe@snipe.net>
2023-11-23 15:16:40 +00:00
snipe
1b77632ecb Merge pull request #13941 from snipe/security/snyk_13938
Upgraded webpack to 5.89.0
2023-11-23 15:15:08 +00:00
snipe
d4bdaf16e7 Upgraded webpack to 5.89.0
Signed-off-by: snipe <snipe@snipe.net>
2023-11-23 15:13:13 +00:00
snipe
e3a8952f4b Merge pull request #13940 from snipe/features/add_location_to_user_view_assets
Added location to user view assets
2023-11-23 15:02:23 +00:00
snipe
ad6b286e10 Added default location to view-assets view
Signed-off-by: snipe <snipe@snipe.net>
2023-11-23 15:01:39 +00:00
snipe
7f94b7df32 Removed refresh from asset view table
Signed-off-by: snipe <snipe@snipe.net>
2023-11-23 15:01:24 +00:00
snipe
776b16d379 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	config/version.php
2023-11-22 23:41:31 +00:00
snipe
6409018b08 Bumped hash and moved to pre version
Signed-off-by: snipe <snipe@snipe.net>
2023-11-22 23:41:03 +00:00
snipe
780279a620 Merge remote-tracking branch 'origin/develop' 2023-11-22 23:22:46 +00:00
snipe
31f429e1c4 Merge pull request #13934 from snipe/fixes/escaped_asset_tag_in_return_msg
Escape the asset tag before passing it to the view
2023-11-22 23:21:54 +00:00
snipe
3a0b994443 Merge pull request #13933 from snipe/fixes/removed_extra_return
Removed extra return statement in consumables API checkout method
2023-11-22 23:21:06 +00:00
snipe
1307ef19cf Escape the asset tag before passing it to the view
Signed-off-by: snipe <snipe@snipe.net>
2023-11-22 23:20:47 +00:00
snipe
aed6b531cb Derp. Extra return statement
Signed-off-by: snipe <snipe@snipe.net>
2023-11-22 23:05:38 +00:00
snipe
43db3b13ef Merge remote-tracking branch 'origin/develop' 2023-11-22 23:02:20 +00:00
snipe
bb0ba0bebe Merge pull request #13932 from snipe/features/use_allowlist_for_user_logging
Use allowlist for user observer logging
2023-11-22 23:01:52 +00:00
snipe
ba127be344 Use saveQuietly to prevent double entries
Signed-off-by: snipe <snipe@snipe.net>
2023-11-22 23:00:30 +00:00
snipe
c6178bd619 Added translation for success password save
Signed-off-by: snipe <snipe@snipe.net>
2023-11-22 22:59:59 +00:00
snipe
3929c8f260 Nicer alert layout
Signed-off-by: snipe <snipe@snipe.net>
2023-11-22 22:57:54 +00:00
snipe
f922d0518e Added allow list - quiet the observer down for magical laravel things
Signed-off-by: snipe <snipe@snipe.net>
2023-11-22 22:35:34 +00:00
snipe
45d9119733 Removed debugging/comments
Signed-off-by: snipe <snipe@snipe.net>
2023-11-22 22:32:34 +00:00
snipe
e269415fec Removed debugging
Signed-off-by: snipe <snipe@snipe.net>
2023-11-22 21:55:44 +00:00
snipe
996caafa80 Merge remote-tracking branch 'origin/develop' 2023-11-22 21:42:32 +00:00
snipe
8481768c3d Save quietly for login methods
Signed-off-by: snipe <snipe@snipe.net>
2023-11-22 21:42:21 +00:00
snipe
91c36730e7 Merge remote-tracking branch 'origin/develop' 2023-11-22 21:39:47 +00:00
snipe
d3175b2ca4 Removed remember token from changed
Signed-off-by: snipe <snipe@snipe.net>
2023-11-22 21:39:06 +00:00
snipe
dfabf9082b Merge remote-tracking branch 'origin/develop' 2023-11-22 21:37:35 +00:00
snipe
a8123db4fb Fixed comments
Signed-off-by: snipe <snipe@snipe.net>
2023-11-22 21:35:12 +00:00
snipe
b1e782d2f0 Small nits picked to make Brady happy
Signed-off-by: snipe <snipe@snipe.net>
2023-11-22 21:34:39 +00:00
snipe
60517f811e Merge pull request #13931 from snipe/features/nicer_icons_for_activity_report
Use updated icons for activity report
2023-11-22 21:10:22 +00:00
snipe
58679a13eb Use updated icons for activity report
Signed-off-by: snipe <snipe@snipe.net>
2023-11-22 21:07:07 +00:00
snipe
3d9a9c7fe8 Merge pull request #13930 from snipe/features/added_user_observer
Added user observer
2023-11-22 20:51:27 +00:00
snipe
22246dd099 Unset the specific arrays we don’t want to keep
Signed-off-by: snipe <snipe@snipe.net>
2023-11-22 20:50:46 +00:00
snipe
a7f76f9860 Hide certain fields from changelog
Signed-off-by: snipe <snipe@snipe.net>
2023-11-22 20:28:58 +00:00
snipe
8b79a8afdf Added user observer
Signed-off-by: snipe <snipe@snipe.net>
2023-11-22 20:22:05 +00:00
snipe
299db76009 Merge pull request #13928 from snipe/fixes/double_logging_on_asset_restore
Fixes double logging on asset restore
2023-11-22 20:10:45 +00:00
snipe
20c0f687e9 Added restored to asset observer, removed manual logging
Signed-off-by: snipe <snipe@snipe.net>
2023-11-22 20:09:10 +00:00
snipe
d06cfe6502 Changed verb to “restore” from “restored”
Signed-off-by: snipe <snipe@snipe.net>
2023-11-22 20:08:41 +00:00
snipe
534ac5ac53 Merge pull request #13926 from snipe/bug/sc-24106
Fixed issue where delete then restore could result in duplicate asset tags
2023-11-22 18:33:17 +00:00
snipe
e2d0136336 Fixed goofy translation
Signed-off-by: snipe <snipe@snipe.net>
2023-11-22 18:14:44 +00:00
snipe
6a3ab526de Refactorer API controller restore methods
Signed-off-by: snipe <snipe@snipe.net>
2023-11-22 18:04:24 +00:00
snipe
19877244cd Added/refactorerd isDeletable()
Signed-off-by: snipe <snipe@snipe.net>
2023-11-22 18:03:26 +00:00
snipe
f7ccef16e7 Refactorer controller restore methods
Signed-off-by: snipe <snipe@snipe.net>
2023-11-22 18:02:47 +00:00
snipe
0e51a0935d Added language strings
Signed-off-by: snipe <snipe@snipe.net>
2023-11-22 17:41:12 +00:00
snipe
ffc1266d0e UI fix - don’t show the trash can icon on things that can be restored
Signed-off-by: snipe <snipe@snipe.net>
2023-11-22 17:41:06 +00:00
snipe
2972c31a11 Added restore endpoints for manufacturers and asset models API
Signed-off-by: snipe <snipe@snipe.net>
2023-11-22 17:40:47 +00:00
snipe
2353c8199c Set qty mutators
Signed-off-by: snipe <snipe@snipe.net>
2023-11-22 15:25:22 +00:00
snipe
e10258804d Merge remote-tracking branch 'origin/develop' 2023-11-22 13:48:35 +00:00
snipe
0d29ac9856 Fixded gate return
Signed-off-by: snipe <snipe@snipe.net>
2023-11-22 13:48:20 +00:00
snipe
10d867ccc9 Merge remote-tracking branch 'origin/develop' 2023-11-22 12:28:42 +00:00
snipe
eae98d3f35 Merge pull request #13923 from snipe/bug/sc-24098
Quick revert for #13830
2023-11-22 12:28:25 +00:00
snipe
a08dcbdfdb Quick revert for #13830
Signed-off-by: snipe <snipe@snipe.net>
2023-11-22 12:25:42 +00:00
snipe
9c4fbbe915 Merge pull request #13922 from snipe/bug/sc-24097
Created mutator on category checkin_email
2023-11-22 12:16:07 +00:00
snipe
d6a337a584 English hard
Signed-off-by: snipe <snipe@snipe.net>
2023-11-22 11:23:17 +00:00
snipe
83ee07cca1 Created mutator on category checkin_email
Signed-off-by: snipe <snipe@snipe.net>
2023-11-22 11:14:04 +00:00
snipe
f12efcf5b2 Merge remote-tracking branch 'origin/develop' 2023-11-21 15:45:13 +00:00
snipe
9502525a41 Merge pull request #13914 from snipe/bug/sc-24073
Fixed missing translation string for `validation.two_column_unique_undeleted`
2023-11-21 15:44:56 +00:00
snipe
68ac1aaae0 Additional comments
Signed-off-by: snipe <snipe@snipe.net>
2023-11-21 15:36:11 +00:00
snipe
6a2ab2cfb2 Removed line break
Signed-off-by: snipe <snipe@snipe.net>
2023-11-21 15:10:19 +00:00
snipe
fb125af0df Tweaked language
Signed-off-by: snipe <snipe@snipe.net>
2023-11-21 15:09:50 +00:00
snipe
590cd0c71f Added Validator::replace() for friendlier interpretation of validation string
Signed-off-by: snipe <snipe@snipe.net>
2023-11-21 15:03:59 +00:00
snipe
0ae91d305d Add the two_column_unique_undeleted translation
Signed-off-by: snipe <snipe@snipe.net>
2023-11-21 15:03:03 +00:00
snipe
0a1eef2e5b Merge remote-tracking branch 'origin/develop' 2023-11-21 14:12:50 +00:00
snipe
9347af0970 Merge pull request #13913 from snipe/bug/sc-24071
Fixed #13905 - Use `unique_undeleted` instead of `unique_serial`
2023-11-21 14:12:15 +00:00
snipe
766eee78b2 Removed debugging
Signed-off-by: snipe <snipe@snipe.net>
2023-11-21 13:47:49 +00:00
snipe
2b9e4110bc Removed debugging
Signed-off-by: snipe <snipe@snipe.net>
2023-11-21 13:37:56 +00:00
snipe
4eb435e148 Use unique_undeleted instead of unique_serial
Signed-off-by: snipe <snipe@snipe.net>
2023-11-21 12:36:11 +00:00
akemidx
e5a4214b8b hiding all order stuff 2023-11-20 20:32:14 -05:00
snipe
6573ea6da6 Merge remote-tracking branch 'origin/develop' 2023-11-20 15:41:55 +00:00
snipe
a203189724 Add @Azooz2014 as a contributor 2023-11-20 15:41:36 +00:00
snipe
b02c60c2ce Merge pull request #13898 from Azooz2014/develop
Fixed #13850: Too few arguments to function in App\Importer\UserImporter::fetchManager()
2023-11-20 15:41:04 +00:00
snipe
c14b3d9780 Merge pull request #13904 from snipe/fixes/redirect_to_consumable_on_invalid_category
Redirect back to the specific consumable for correction
2023-11-20 15:40:40 +00:00
snipe
01fec1d6bb Redirect back to the specific consumable for correction
Signed-off-by: snipe <snipe@snipe.net>
2023-11-20 15:39:39 +00:00
snipe
9907da0aae Merge remote-tracking branch 'origin/develop' 2023-11-20 15:32:21 +00:00
snipe
01740b7969 Merge pull request #13903 from snipe/fixes/redirect_if_category_invalid
Redirect if category is missing or invalid
2023-11-20 15:31:58 +00:00
snipe
7c88601066 Grab the API
Signed-off-by: snipe <snipe@snipe.net>
2023-11-20 15:31:39 +00:00
snipe
fe2cfa0d38 Redirect if category is missing or invalid
Signed-off-by: snipe <snipe@snipe.net>
2023-11-20 15:28:44 +00:00
Abdelaziz Faki
2c62a7e78d Fixing #13850 UserImporter bug 2023-11-19 19:59:01 +03:00
snipe
7baf8e36c0 Merge remote-tracking branch 'origin/develop' 2023-11-19 07:16:34 +00:00
snipe
e41a16dbf3 Merge pull request #13879 from Godmartinz/location_search_bug
added user location scope
2023-11-19 07:01:59 +00:00
snipe
ad6822875d Merge pull request #13892 from Godmartinz/ldap_sync_bug
added a `empty()` around location_id to fix  ldap sync bug
2023-11-19 06:58:38 +00:00
Godfrey M
01f4aa018f fixed query 2023-11-16 11:20:14 -08:00
Godfrey M
f9baeefbaf allows to search full name 2023-11-16 11:14:42 -08:00
Godfrey Martinez
5569c2ba4a Merge branch 'develop' into ldap_sync_bug 2023-11-16 10:02:56 -08:00
Godfrey M
2f12a9cfe2 add a conditional around location_id to fix bug 2023-11-16 09:52:44 -08:00
spencerrlongg
af3417d6cc add return type 2023-11-16 11:42:37 -06:00
spencerrlongg
17bf8d0124 fix string 2023-11-16 11:31:00 -06:00
spencerrlongg
c3e02286d3 i can't blame this on livewire - animations or something? 2023-11-16 11:24:54 -06:00
spencerrlongg
a9d82bf157 enter working 2023-11-16 10:54:32 -06:00
snipe
617f58e046 Merge remote-tracking branch 'origin/develop' 2023-11-16 15:28:13 +00:00
snipe
81583207a9 Merge pull request #13887 from spencerrlongg/bug/sc-24024
Fix for Unique Serial
2023-11-16 15:27:55 +00:00
spencerrlongg
e097df912e a little cleanup 2023-11-15 22:35:20 -06:00
spencerrlongg
477bb6165f rm log 2023-11-15 20:45:04 -06:00
Spencer Long
19850e8c5a Merge branch 'snipeit_v7_laravel10' into chore/sc-16907 2023-11-15 20:37:15 -06:00
spencerrlongg
12dcf76da9 more cleanup 2023-11-15 20:33:44 -06:00
spencerrlongg
36aac328e4 delete vue component 2023-11-15 20:32:22 -06:00
spencerrlongg
9cf81c7ad4 cleanup, validation 2023-11-15 20:29:14 -06:00
spencerrlongg
6c6417e595 ok, maybe i do like livewire 2023-11-15 20:19:03 -06:00
spencerrlongg
efa8ba5965 nice, just need frontend work now 2023-11-15 17:24:54 -06:00
spencerrlongg
fd02385c22 deleted components i've already rebuilt in livewire 2023-11-15 17:14:09 -06:00
spencerrlongg
713b21de14 note 2023-11-15 16:56:08 -06:00
spencerrlongg
af144a5184 cleanup 2023-11-15 16:55:21 -06:00
spencerrlongg
9b31ae3146 create mostly working 2023-11-15 16:51:09 -06:00
spencerrlongg
4cb0012872 cleanup 2023-11-15 16:33:16 -06:00
spencerrlongg
eaa68327f7 SINGLE QUOTES 2023-11-15 16:27:01 -06:00
spencerrlongg
b1f75a3bb3 remove unused import 2023-11-15 13:20:17 -06:00
spencerrlongg
c7f90ad86d tested, working 2023-11-15 12:50:40 -06:00
spencerrlongg
0924a53789 quick fix 2023-11-15 12:28:30 -06:00
Marcus Moore
68ef618028 Run validation on blur 2023-11-14 16:30:29 -08:00
Marcus Moore
3ecdafa685 Add class to error placement check 2023-11-14 16:12:47 -08:00
Marcus Moore
20ae9dea19 Fix placement of error message 2023-11-14 15:55:15 -08:00
Godfrey M
c9d46856a3 added name back 2023-11-14 15:00:11 -08:00
Godfrey M
6d65f6646f allows validation to ignore self and update 2023-11-14 14:55:51 -08:00
Marcus Moore
34cd106357 Apply validation 2023-11-14 12:25:18 -08:00
Marcus Moore
714fce7e59 Add site name validation test 2023-11-14 12:23:58 -08:00
Marcus Moore
08e4ea384e Update additional partials for validation 2023-11-14 12:23:46 -08:00
Marcus Moore
fe0f9743d3 Update additional partials for validation 2023-11-14 12:07:37 -08:00
Godfrey M
57019e170f adds user location scope, still needs fine tuning 2023-11-14 11:49:00 -08:00
spencerrlongg
9f303cc116 playing around with livewire 2023-11-14 11:50:27 -06:00
spencerrlongg
e504b20235 couple small changes 2023-11-14 11:01:38 -06:00
snipe
0da3ef70d9 Merge remote-tracking branch 'origin/develop' 2023-11-14 16:16:30 +00:00
snipe
eb87720661 Merge pull request #13878 from snipe/fixes/clearer_error_text_on_import
Clarified upload error text
2023-11-14 16:16:16 +00:00
snipe
9316ecb8d6 CLarified upload error text
Signed-off-by: snipe <snipe@snipe.net>
2023-11-14 16:14:39 +00:00
Brady Wetherington
f64b0d3818 Merge branch 'develop' into snipeit_v7_laravel10 2023-11-14 16:00:29 +00:00
snipe
ec83b733f1 Merge remote-tracking branch 'origin/develop' 2023-11-14 14:40:21 +00:00
snipe
a81e2be6da Merge pull request #13876 from snipe/fixes/added_fieldmap_back_for_cli_import
Added default map back to the importer
2023-11-14 14:40:08 +00:00
snipe
73ebd9017f Added default map back to the importer
Signed-off-by: snipe <snipe@snipe.net>
2023-11-14 14:37:48 +00:00
Marcus Moore
1a26ea0911 Update a couple more fields for new validation 2023-11-13 19:18:04 -08:00
Marcus Moore
7098ab6509 Match styling of existing error messages 2023-11-13 18:54:51 -08:00
Marcus Moore
0d3589ca24 Update create asset page to use new validation library 2023-11-13 18:17:39 -08:00
Marcus Moore
f02ff62a08 Install jquery-validation package 2023-11-13 18:15:18 -08:00
spencerrlongg
fbfc817c5f just some cleanup 2023-11-13 19:47:03 -06:00
snipe
a48eb60f87 Merge remote-tracking branch 'origin/develop' 2023-11-13 20:40:05 +00:00
snipe
13601031cb Merge pull request #13764 from Godmartinz/expiring-alerts-fix
Fixed the `getExpiringLicenses` query
2023-11-13 20:39:29 +00:00
snipe
4546e87eb5 Merge pull request #13680 from marcusmoore/feature/sc-23769
Changed data source input to select in new label engine
2023-11-13 20:38:42 +00:00
snipe
9dc9834bcb Merge pull request #13859 from inietov/fixes/attempt_to_read_id_on_boolean
Fixed ErrorExemption: Attempt to read property "id" on bool [sc-23945]
2023-11-13 20:22:52 +00:00
snipe
4ecce51b57 Merge pull request #13831 from Godmartinz/multi-sync-ldap-locations
Added multi location sync for ldap
2023-11-13 20:20:45 +00:00
snipe
000a28d648 Merge pull request #13830 from spencerrlongg/bug/sc-23921
Resolves Exceptions When An Array is Submitted and Exception Occurs Before Validation
2023-11-13 20:19:44 +00:00
snipe
f3d6de316b Merge branch 'master' of https://github.com/snipe/snipe-it 2023-11-13 16:41:18 +00:00
snipe
1f17c6e4f4 Merge remote-tracking branch 'origin/develop' 2023-11-13 16:41:07 +00:00
snipe
495df737fc Unfixed indenting :(
Signed-off-by: snipe <snipe@snipe.net>
2023-11-13 16:39:35 +00:00
snipe
0bae1a1f5e Merge pull request #13853 from snipe/features/link_back_to_asset_on_create
Link back to asset on create
2023-11-13 16:37:35 +00:00
snipe
442cad69a7 Merge pull request #13864 from marcusmoore/chore/sc-24012
Fixed GitHub Action tests for v7
2023-11-13 16:34:35 +00:00
snipe
5dde7cb439 Merge pull request #13871 from snipe/snyk-fix-bdea9ba7648f6c20aef5ce312ee450cd
[Snyk] Security upgrade alpine from 3.17.3 to 3.17.5
2023-11-13 16:34:08 +00:00
snyk-bot
6acff575e6 fix: Dockerfile.alpine to reduce vulnerabilities
The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-ALPINE317-OPENSSL-5438697
- https://snyk.io/vuln/SNYK-ALPINE317-OPENSSL-5788365
- https://snyk.io/vuln/SNYK-ALPINE317-OPENSSL-5821141
- https://snyk.io/vuln/SNYK-ALPINE317-OPENSSL-6032385
- https://snyk.io/vuln/SNYK-ALPINE317-OPENSSL-6032385
2023-11-13 04:03:04 +00:00
Marcus Moore
be6545a366 Merge Laravel setup steps 2023-11-09 15:55:04 -08:00
Marcus Moore
32fdd36802 Run migrations 2023-11-09 15:51:30 -08:00
Marcus Moore
fbc54526ed Set variables for Passport install step 2023-11-09 15:47:52 -08:00
Marcus Moore
a3306e4a81 Install Passport during test setup process specifying the environment 2023-11-09 15:41:22 -08:00
Marcus Moore
3d858b21fa Revert "Install Passport during test setup process"
This reverts commit 690a5119f4.
2023-11-09 15:29:31 -08:00
Marcus Moore
62b557f82c Revert "Add database migration step"
This reverts commit 65e3696029.
2023-11-09 15:29:19 -08:00
Marcus Moore
158c82ff5f Revert "Be explicit about database host"
This reverts commit fd410c0281.
2023-11-09 15:26:50 -08:00
Marcus Moore
fd410c0281 Be explicit about database host 2023-11-09 15:20:41 -08:00
Marcus Moore
65e3696029 Add database migration step 2023-11-09 14:56:32 -08:00
Marcus Moore
690a5119f4 Install Passport during test setup process 2023-11-09 14:49:56 -08:00
Marcus Moore
cc0653c68a Update GitHub test action to run on PHP 8.1 and 8.2 2023-11-09 14:42:47 -08:00
Marcus Moore
042a15d294 Set minimum PHP version to 8.1 2023-11-09 14:41:13 -08:00
snipe
9bff2d0bbf Fixed indenting?
Signed-off-by: snipe <snipe@snipe.net>
2023-11-09 21:47:29 +00:00
snipe
9e1cfac995 Merge pull request #13857 from akemidx/bug/sc-20532
Bug Fix:  Undefined array key 266
2023-11-09 09:39:04 +00:00
spencerrlongg
8e4c0f60a1 return format 2023-11-08 17:36:54 -06:00
spencerrlongg
5615fc09e6 add view modal 2023-11-08 16:55:29 -06:00
spencerrlongg
d68f1e4cfa initial display work done 2023-11-08 16:48:20 -06:00
spencerrlongg
0c4901487d delete component class (for now) 2023-11-08 16:12:01 -06:00
spencerrlongg
7f4b2d6e42 modal and initial stuff working 2023-11-08 16:10:09 -06:00
Ivan Nieto Vivanco
7d30001ff8 Ignore the importer checkout if user is not found 2023-11-08 15:32:33 -06:00
Marcus Moore
49136a4d67 Add tests for color helper 2023-11-08 12:35:42 -08:00
akemidx
4382adce85 typo in error log message 2023-11-08 15:29:29 -05:00
spencerrlongg
715a49d9fe update php in composer.json 2023-11-08 14:29:06 -06:00
akemidx
2051ac785d adding in error logging and code comments 2023-11-08 13:44:46 -05:00
akemidx
9cc89911f7 possibilitieeeeeeeeessss 2023-11-08 13:29:32 -05:00
akemidx
495521b70e adjusting for less than 0 possibility 2023-11-08 12:51:51 -05:00
snipe
6da0671143 Added comment
Signed-off-by: snipe <snipe@snipe.net>
2023-11-08 14:44:09 +00:00
snipe
a24d21e683 Added new unescaped alert box
Signed-off-by: snipe <snipe@snipe.net>
2023-11-08 14:41:05 +00:00
snipe
d2bf71327b Redirect /asset_tag/view to /asset_tag
Signed-off-by: snipe <snipe@snipe.net>
2023-11-08 14:40:56 +00:00
snipe
ef10f2e50e Use more correct route in redirect
Signed-off-by: snipe <snipe@snipe.net>
2023-11-08 14:40:38 +00:00
snipe
08153d418f Use new alert box and linked string
Signed-off-by: snipe <snipe@snipe.net>
2023-11-08 14:40:18 +00:00
snipe
3f8b63e053 Add linked text
Signed-off-by: snipe <snipe@snipe.net>
2023-11-08 14:40:02 +00:00
snipe
8a61803963 Merge remote-tracking branch 'origin/develop' 2023-11-08 11:39:46 +00:00
snipe
d2bfa9a3b6 Merge pull request #13852 from snipe/bug/sc-23959
Fixed URL to favicon on default blade (used in 404 messages)
2023-11-08 11:39:24 +00:00
snipe
26311e46b8 Fixed URL to favicon on default blade (used in 404 messages)
Signed-off-by: snipe <snipe@snipe.net>
2023-11-08 11:38:48 +00:00
snipe
b3a6cc633b Merge pull request #13769 from Godmartinz/location-dropdown-duplication
clarifies an address column under locations
2023-11-08 08:59:07 +00:00
snipe
749b87cbbd Merge remote-tracking branch 'origin/develop' 2023-11-08 08:58:12 +00:00
snipe
bc9545ca96 Merge pull request #13823 from spencerrlongg/chore/sc-23922
New Translation Strings for Custom Asset Export
2023-11-08 08:57:20 +00:00
snipe
cf42eca198 Merge pull request #13814 from ntbutler-nbcs/feature-location-history
Added #13754 - asset history tab to locations view
2023-11-08 08:55:07 +00:00
snipe
44d064f094 Merge pull request #13842 from marcusmoore/bug/sc-23932
Fixed notes not saving to action log when licenses are checked in/out
2023-11-08 08:53:00 +00:00
snipe
3fb913669b Merge pull request #13847 from spencerrlongg/bug/sc-23914
Removed Refresh Button on Client Tables
2023-11-08 08:52:40 +00:00
snipe
1171141904 Merge pull request #13848 from marcusmoore/bug/sc-23949
Fixed missing import
2023-11-08 08:50:31 +00:00
Marcus Moore
eceb69122c Add missing import 2023-11-07 16:03:28 -08:00
akemidx
154e71de74 shifting wrap around logic back into 0-265 2023-11-07 17:43:51 -05:00
spencerrlongg
93101d36b8 removed refresh button on client tables 2023-11-07 15:07:24 -06:00
Marcus Moore
4fb349e326 Remove extra assertions 2023-11-06 14:04:52 -08:00
Marcus Moore
4d2790c3f4 Add tests for license checkout notes 2023-11-06 13:54:36 -08:00
Marcus Moore
a08e0bd547 Ensure notes are saved to the action log when licenses are checked in and out 2023-11-06 12:20:13 -08:00
snipe
9143b7a1b7 Merge remote-tracking branch 'origin/develop' 2023-11-03 20:10:38 +00:00
snipe
92c7de3fb5 Merge pull request #13837 from snipe/features/add_employee_number_to_user_merge
Added employee number to user merge screen
2023-11-03 20:10:05 +00:00
snipe
d0cc42a068 Added employee number to user merge screeb
Signed-off-by: snipe <snipe@snipe.net>
2023-11-03 20:09:11 +00:00
snipe
39c06802aa Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	config/version.php
2023-11-03 14:07:46 +00:00
snipe
8c316e0bd3 Bumped hash
Signed-off-by: snipe <snipe@snipe.net>
2023-11-03 14:07:15 +00:00
snipe
7a638e4a65 RB-17457 - Object of class Illuminate\Database\Eloquent\Collection could not be converted to int
Signed-off-by: snipe <snipe@snipe.net>
2023-11-03 14:06:27 +00:00
Godfrey M
3b6a0d6525 allows multi location sync for ldap 2023-11-02 16:50:19 -07:00
snipe
b47e734b37 Merge remote-tracking branch 'origin/develop' 2023-11-02 14:50:55 +00:00
snipe
4d65d09306 Removed trim on manager ID
Signed-off-by: snipe <snipe@snipe.net>
2023-11-02 14:50:40 +00:00
snipe
c5e1cdbcee Merge pull request #13828 from Godmartinz/ldap_location_sync
fixed ldap location sync
2023-11-02 12:20:01 +00:00
spencerrlongg
75532d9662 adds permission test 2023-11-01 16:49:59 -05:00
Godfrey M
13d3f85c62 fixes ldap location sync 2023-11-01 12:26:58 -07:00
spencerrlongg
938ec75aa7 clarifying note 2023-11-01 14:09:03 -05:00
spencerrlongg
c9604b896a nevermind 2023-11-01 13:46:32 -05:00
spencerrlongg
d167ec6dc0 unique undeleted recreated with laravel rule 2023-11-01 13:36:35 -05:00
spencerrlongg
e05af5216e formatting 2023-11-01 12:14:46 -05:00
spencerrlongg
3f834cb88f authorization tested in request 2023-11-01 11:43:53 -05:00
spencerrlongg
d971172cf3 rm unnecessary import 2023-11-01 11:34:15 -05:00
spencerrlongg
53bd5626c9 this works, need to write up pr 2023-11-01 11:33:29 -05:00
spencerrlongg
8f75bb8706 fix translation strings 2023-10-31 21:38:52 -05:00
spencerrlongg
b67b00dd82 this is a start, something up with asset_tag unique rule 2023-10-31 21:06:44 -05:00
spencerrlongg
d4b9f6a2a4 add not_array (not ready, doesn't catch for specific exception) 2023-10-31 21:00:22 -05:00
snipe
e43051a1f7 Merge remote-tracking branch 'origin/develop' 2023-10-31 17:11:38 +00:00
snipe
5073c3389f Merge pull request #13821 from snipe/bug/rb-17462
More graceful failure if ldap_results JSON decode isn’t set
2023-10-31 17:11:14 +00:00
snipe
f822f8b186 More graceful failure if ldap_results JSON decode isn’t set
Signed-off-by: snipe <snipe@snipe.net>
2023-10-31 17:09:18 +00:00
snipe
e381bf978f Merge pull request #13816 from snipe/bug/sc-23900
Fixed datetime displayed on license edit for fields that should be date
2023-10-31 16:59:12 +00:00
snipe
db8a7c5ad9 Merge remote-tracking branch 'origin/develop' 2023-10-31 16:30:22 +00:00
snipe
95e9002cd0 Merge pull request #13820 from inietov/fixes/attempt_to_read_property_fields
Fixed Attempt to read property fields on null [sc-23903]
2023-10-31 16:30:07 +00:00
snipe
60088403b9 Merge remote-tracking branch 'origin/develop' 2023-10-31 16:04:29 +00:00
snipe
22996895d8 Check for valid model
Signed-off-by: snipe <snipe@snipe.net>
2023-10-31 16:04:19 +00:00
Ivan Nieto Vivanco
9f9f8c173b Add condition to only run trough custom fields if a custom fieldset exist 2023-10-31 10:00:36 -06:00
snipe
96be0c25c4 Merge remote-tracking branch 'origin/develop' 2023-10-31 16:00:27 +00:00
snipe
e6810e8db9 Merge pull request #13819 from snipe/bug/check_for_valid_category_on_print
Check that the category exists on user print page
2023-10-31 15:59:54 +00:00
snipe
28641493ca Check that the category exists
Signed-off-by: snipe <snipe@snipe.net>
2023-10-31 15:58:59 +00:00
snipe
e703bfaa21 Merge remote-tracking branch 'origin/develop' 2023-10-31 15:33:50 +00:00
snipe
9a7e7bddcc Merge pull request #13818 from snipe/bug/sc-23902
Fixed validation handling on backup uploads
2023-10-31 15:33:26 +00:00
snipe
aa2a25dc19 Display the form errors correctly
Signed-off-by: snipe <snipe@snipe.net>
2023-10-31 15:30:49 +00:00
snipe
57372fc82a Correctly call the validator in the response if it fails
Signed-off-by: snipe <snipe@snipe.net>
2023-10-31 15:30:38 +00:00
snipe
e862fe1056 Merge remote-tracking branch 'origin/develop' 2023-10-31 12:55:04 +00:00
snipe
ae90f9defa Merge pull request #13817 from snipe/feature/sc-23901
Added checkboxes to intentionally remove field values in bulk user edit
2023-10-31 12:54:07 +00:00
snipe
3495652827 Added checkboxes to intentionally remove field values in bulk user edit
Signed-off-by: snipe <snipe@snipe.net>
2023-10-31 12:52:53 +00:00
snipe
5779a63221 Undoing that thing I just did :(
Signed-off-by: snipe <snipe@snipe.net>
2023-10-31 12:28:57 +00:00
snipe
209627e2cc Force format if dates are given
Signed-off-by: snipe <snipe@snipe.net>
2023-10-31 12:25:00 +00:00
snipe
9fc1cbd7ae Change cast to include format
https://laravel.com/docs/8.x/eloquent-mutators#date-casting - this doesn’t seem to work tho?
Signed-off-by: snipe <snipe@snipe.net>
2023-10-31 12:24:48 +00:00
snipe
e3e887f02e Merge remote-tracking branch 'origin/develop' 2023-10-31 09:46:30 +00:00
snipe
e405e27643 Merge pull request #13815 from snipe/feature/sc-23898
Add additional fields to Download All in Activity Report
2023-10-31 09:45:12 +00:00
snipe
96211cf73c Add additional fields to Download All in Activity Report
Signed-off-by: snipe <snipe@snipe.net>
2023-10-31 09:43:47 +00:00
Nathan Butler
79f380cbe7 Added asset history tab to locations view 2023-10-31 10:28:54 +11:00
snipe
5236ca3332 Merge remote-tracking branch 'origin/develop' 2023-10-30 21:05:33 +00:00
snipe
518c43680d Merge pull request #13812 from snipe/bug/sc-23897
Handle redirect from after POST request from backup restore
2023-10-30 20:21:29 +00:00
snipe
e554a80589 Handle redirect from after POST request from backup restore
Signed-off-by: snipe <snipe@snipe.net>
2023-10-30 20:01:01 +00:00
snipe
f47a8664f9 Merge pull request #13811 from Godmartinz/missing_translation_string
add missing translation string
2023-10-30 19:40:51 +00:00
Godfrey M
97953ae082 add missing translation string 2023-10-30 12:17:55 -07:00
snipe
8e20071254 Merge pull request #13731 from snipe/improvements/trim_on_import
Added trim to import values
2023-10-30 14:17:37 +00:00
snipe
316c90c144 Update app/Importer/ItemImporter.php
Co-authored-by: Marcus Moore <contact@marcusmoore.io>
2023-10-30 14:17:27 +00:00
snipe
a8e8fe7447 Merge remote-tracking branch 'origin/develop' 2023-10-30 14:12:54 +00:00
snipe
462d2d329a Merge branch 'develop' of https://github.com/snipe/snipe-it into develop 2023-10-30 14:12:38 +00:00
snipe
a6b713ae21 Add @mmanjos as a contributor 2023-10-30 14:12:23 +00:00
snipe
0d67ae27c2 Merge pull request #13810 from mmanjos/develop
Fixed #11179: APP_FORCE_TLS is missing from the example .env.docker
2023-10-30 14:11:54 +00:00
Matthew Manjos
bd894677ef add missing variable APP_FORCE_TLS to .env.docker 2023-10-30 10:09:44 -04:00
snipe
2fd2d9431e Merge remote-tracking branch 'origin/develop' 2023-10-30 13:21:19 +00:00
snipe
d404452f5a Merge pull request #13809 from snipe/bug/sc-23893
Added min_amt value to model detail page
2023-10-30 13:21:00 +00:00
snipe
8c46f4ef69 Added min_amt value to model detaul page
Signed-off-by: snipe <snipe@snipe.net>
2023-10-30 13:19:59 +00:00
snipe
1da6b6a4d5 Merge remote-tracking branch 'origin/develop' 2023-10-30 13:06:50 +00:00
snipe
740569791f Merge pull request #13803 from spencerrlongg/feature/13789-feature-request-add-user-phone-and-address-to-custom-asset-report
Added User Phone & Address Fields to Custom Asset Report
2023-10-30 12:43:20 +00:00
gitgrimbo
d556f0d275 Use parseEscapedMarkedownInline for more views 2023-10-27 15:37:56 +01:00
spencerrlongg
90eb3b86cf added user phone & address fields 2023-10-26 19:10:53 -05:00
snipe
b58dea07a7 Merge remote-tracking branch 'origin/develop' 2023-10-26 21:46:45 +01:00
snipe
10abecc5a6 Merge pull request #13802 from spencerrlongg/bug/13531-custom-asset-report-does-not-correct-report-eol-date
Fixes EOL on Custom Report
2023-10-26 21:43:13 +01:00
spencerrlongg
f12d44509e asset_eol_date should always be filled now 2023-10-26 14:39:02 -05:00
spencerrlongg
91b53bffa1 resolved 2023-10-26 14:23:31 -05:00
snipe
98423e4dd9 Merge remote-tracking branch 'origin/develop' 2023-10-26 17:57:17 +01:00
snipe
a2ba39c837 Removed required custom field from seeder
Signed-off-by: snipe <snipe@snipe.net>
2023-10-26 17:57:05 +01:00
snipe
38f10e0b21 Merge remote-tracking branch 'origin/develop' 2023-10-26 16:00:22 +01:00
snipe
aab7eb4a85 Merge pull request #13800 from snipe/fixes/bulk_edit_assets
Fixed FD-38641 - Bulk asset edit unable to update model_id, misc other bugs
2023-10-26 15:56:47 +01:00
snipe
7b2f49644e Use nothing instead of null to make it consistent
Signed-off-by: snipe <snipe@snipe.net>
2023-10-26 14:44:17 +01:00
snipe
305cd9b0b8 Use null instead of blank
Signed-off-by: snipe <snipe@snipe.net>
2023-10-26 14:42:49 +01:00
snipe
9bba0b764a Added clearer comments
Signed-off-by: snipe <snipe@snipe.net>
2023-10-26 14:38:39 +01:00
snipe
1ce95b6eac Removed debugging
Signed-off-by: snipe <snipe@snipe.net>
2023-10-26 14:34:27 +01:00
snipe
9c90f03142 Updated comment
Signed-off-by: snipe <snipe@snipe.net>
2023-10-26 14:34:18 +01:00
snipe
b4d3f51414 Merge pull request #13776 from Robert-Azelis/Robert-Azelis-EOL_fix_improvements
[FIX and improvements] EOL rate and EOL date
2023-10-26 13:36:25 +01:00
snipe
64219da0b4 Merge branch 'develop' into Robert-Azelis-EOL_fix_improvements 2023-10-26 13:36:18 +01:00
snipe
7b9259274c Merge pull request #13799 from inietov/fixes/unlogged_checkin_from_importer
Fixed #13795 Unlogged checkin action post updating the username of an asset through the CSV import
2023-10-26 13:33:51 +01:00
snipe
d40a03b4c5 Merge remote-tracking branch 'origin/develop' 2023-10-26 13:09:38 +01:00
snipe
c1213e0abc Nicer handling for empty custom fields
Signed-off-by: snipe <snipe@snipe.net>
2023-10-26 09:41:44 +01:00
snipe
05de8a5731 Re-added missing break
Signed-off-by: snipe <snipe@snipe.net>
2023-10-26 09:21:27 +01:00
snipe
ff72c4fbaa Added nicer formatting for fields in log meta
Signed-off-by: snipe <snipe@snipe.net>
2023-10-26 09:17:28 +01:00
snipe
9d887484c8 Added encrypted custom field to seeder
Signed-off-by: snipe <snipe@snipe.net>
2023-10-26 07:41:25 +01:00
snipe
c4c47f2e8d Updated comment
Signed-off-by: snipe <snipe@snipe.net>
2023-10-26 06:51:14 +01:00
snipe
0cebccac95 Removed extra logging
Signed-off-by: snipe <snipe@snipe.net>
2023-10-26 06:51:07 +01:00
snipe
c3b3aa4de6 Set one field to encrypted in the seeder
Signed-off-by: snipe <snipe@snipe.net>
2023-10-26 06:25:51 +01:00
snipe
3717d60170 Added two more custom fields/fieldsets to seeder
Signed-off-by: snipe <snipe@snipe.net>
2023-10-26 05:04:30 +01:00
snipe
6c996ac8fa Changed the seeder order to accomodate actionlog factory
Signed-off-by: snipe <snipe@snipe.net>
2023-10-26 05:03:59 +01:00
snipe
7042260871 More style polishing on custom fields in bulk edit
Signed-off-by: snipe <snipe@snipe.net>
2023-10-26 04:23:11 +01:00
snipe
2695576968 Removed debugging
Signed-off-by: snipe <snipe@snipe.net>
2023-10-26 04:21:20 +01:00
snipe
f25ddee857 Removed debugging, use new model rules if model has changed
Signed-off-by: snipe <snipe@snipe.net>
2023-10-26 04:21:14 +01:00
snipe
541ba0c0ba Removed conditional add for model_id
Signed-off-by: snipe <snipe@snipe.net>
2023-10-26 04:20:52 +01:00
snipe
77d141d19c Don’t check the delete expected checkin by detault
Signed-off-by: snipe <snipe@snipe.net>
2023-10-26 03:56:02 +01:00
snipe
436192b836 Fixed seeder
Signed-off-by: snipe <snipe@snipe.net>
2023-10-26 02:56:34 +01:00
snipe
522aa96fcc Changed error variable name
Signed-off-by: snipe <snipe@snipe.net>
2023-10-26 02:36:18 +01:00
snipe
b87879f8e7 Removed debugging
Signed-off-by: snipe <snipe@snipe.net>
2023-10-26 02:35:53 +01:00
snipe
60e0e899bc Added show_in_requestable_list to factory
Signed-off-by: snipe <snipe@snipe.net>
2023-10-26 02:35:33 +01:00
snipe
6ebc01ca50 Bulk edit refactor
Signed-off-by: snipe <snipe@snipe.net>
2023-10-26 01:49:23 +01:00
snipe
4b6b36c639 Removed semicolon
Signed-off-by: snipe <snipe@snipe.net>
2023-10-26 01:49:14 +01:00
snipe
4a759f0a20 Added fingerprint icon for unique
Signed-off-by: snipe <snipe@snipe.net>
2023-10-26 01:49:01 +01:00
Ivan Nieto Vivanco
ca1845efd7 Only log checkin event if the assigned_to property is not empty 2023-10-25 16:41:31 -06:00
Ivan Nieto Vivanco
7ed58a177b Evaluate if the asset was assigned to a different user than current target to log a checkin event 2023-10-25 16:31:23 -06:00
snipe
d8a3081128 Merge remote-tracking branch 'origin/develop' 2023-10-25 21:05:28 +01:00
snipe
d93e399295 Merge pull request #13797 from Godmartinz/employeeid_search_add
adds employee number as a searchable field to the asset table
2023-10-25 21:04:54 +01:00
Godfrey M
1b614c13fb ugh 2023-10-25 13:03:42 -07:00
Godfrey M
56fd41eee4 removed erroneous code 2023-10-25 13:03:12 -07:00
Godfrey M
33b45898b1 adds to advancedsearch 2023-10-25 12:59:58 -07:00
snipe
eabc7479e3 Merge remote-tracking branch 'origin/develop' 2023-10-25 20:58:13 +01:00
snipe
7509d57bf6 Merge pull request #13796 from snipe/feature/sc-23880
Added optional custom fields to requestable assets page
2023-10-25 20:57:54 +01:00
snipe
da08f0e26f Merge pull request #13584 from Godmartinz/Bulk_location_edit_fix_gh-13572
added an option to bulk edit location & fixed location bug
2023-10-25 20:57:18 +01:00
snipe
0feb56d931 Removed period
Signed-off-by: snipe <snipe@snipe.net>
2023-10-25 20:39:15 +01:00
snipe
a0cae77278 Fixed weird layout quirk on smaller screens
Signed-off-by: snipe <snipe@snipe.net>
2023-10-25 20:21:07 +01:00
snipe
0f97c0601b Nicer show/hide if encrypted, warn if already encrypted
Signed-off-by: snipe <snipe@snipe.net>
2023-10-25 20:11:06 +01:00
snipe
3916bac95f Added warning translation for encrypted fields
Signed-off-by: snipe <snipe@snipe.net>
2023-10-25 20:10:46 +01:00
snipe
6264d90459 Removed ending period for consistency
Signed-off-by: snipe <snipe@snipe.net>
2023-10-25 19:45:11 +01:00
snipe
57d3b2d2ef Check for encryption
Signed-off-by: snipe <snipe@snipe.net>
2023-10-25 19:44:10 +01:00
snipe
a202bf81fa Removed column widths, check for encryption and showable
Signed-off-by: snipe <snipe@snipe.net>
2023-10-25 19:44:02 +01:00
snipe
43da292d60 Used short translation for sr-only text
Signed-off-by: snipe <snipe@snipe.net>
2023-10-25 19:43:34 +01:00
snipe
ab3edae0b6 Reverted buttons (this re-introduces the n+1 problem.)
Signed-off-by: snipe <snipe@snipe.net>
2023-10-25 19:43:09 +01:00
snipe
887d013a39 Added listable fields in profile -> requested assets
Signed-off-by: snipe <snipe@snipe.net>
2023-10-25 19:42:33 +01:00
snipe
eb82bc290d Clarified translation
Signed-off-by: snipe <snipe@snipe.net>
2023-10-25 19:42:07 +01:00
snipe
8b9b46c562 Removed comment
Signed-off-by: snipe <snipe@snipe.net>
2023-10-25 19:41:59 +01:00
snipe
307f84dff8 Removed extraneous method
Signed-off-by: snipe <snipe@snipe.net>
2023-10-25 19:41:53 +01:00
snipe
3c6b79e807 Added new fields to blades
Signed-off-by: snipe <snipe@snipe.net>
2023-10-25 17:28:55 +01:00
snipe
e5bd78a722 Added show_in_requestable_list validation, casting
Signed-off-by: snipe <snipe@snipe.net>
2023-10-25 17:28:35 +01:00
snipe
23a6547ada Added custom fields, fixed n+1
Signed-off-by: snipe <snipe@snipe.net>
2023-10-25 17:28:14 +01:00
snipe
63a86c5622 Added field to controller
Signed-off-by: snipe <snipe@snipe.net>
2023-10-25 17:27:36 +01:00
snipe
933ce61efd Removed eager loading for defaultLoc, added requests loading, sorting
Signed-off-by: snipe <snipe@snipe.net>
2023-10-25 17:26:51 +01:00
snipe
88661a58a7 Make field nullable
Signed-off-by: snipe <snipe@snipe.net>
2023-10-25 17:26:31 +01:00
snipe
08693f09b0 Added requests() method on Assets
Signed-off-by: snipe <snipe@snipe.net>
2023-10-25 17:22:12 +01:00
snipe
3a37b80251 Added translations
Signed-off-by: snipe <snipe@snipe.net>
2023-10-25 17:21:58 +01:00
snipe
e7ef7f04f0 Removed periods for consistency
Signed-off-by: snipe <snipe@snipe.net>
2023-10-25 17:21:48 +01:00
snipe
c4adc3ccc8 Migration to add show_in_requestable_list boolean
Signed-off-by: snipe <snipe@snipe.net>
2023-10-25 17:18:37 +01:00
snipe
96f7f49b68 Fixed response docblock
Signed-off-by: snipe <snipe@snipe.net>
2023-10-25 16:40:49 +01:00
snipe
8c93e79397 Merge pull request #13787 from inietov/fixes/errorexception_undefined_array_key
Fixed ErrorException: Undefined array key in importer blade [sc-23864]
2023-10-25 07:47:48 +01:00
snipe
4d345168d6 Merge pull request #13786 from svpernova09/map-docker-logs-to-storage
Map Snipe-IT logs to storage logs folder
2023-10-25 07:20:22 +01:00
Ivan Nieto Vivanco
f2f3931fa9 Formatting correctly 2023-10-24 11:26:37 -06:00
Joe Ferguson
c919cd31fa Map Snipe-IT logs to storage logs folder
For docker-compose.yml usage to prevent error messages.
2023-10-24 11:31:02 -05:00
snipe
4f136920a9 Merge remote-tracking branch 'origin/develop' 2023-10-24 17:03:50 +01:00
snipe
9d2d13bb59 Merge pull request #13784 from snipe/fixes/fixed_accessory_not_found_string
Fixed accessory not found string
2023-10-24 17:03:13 +01:00
snipe
944520bc5d Fixed notification formatting
Signed-off-by: snipe <snipe@snipe.net>
2023-10-24 17:02:16 +01:00
snipe
aae289e150 Added missing string
Signed-off-by: snipe <snipe@snipe.net>
2023-10-24 17:02:07 +01:00
snipe
c756849497 Removed debug line
Signed-off-by: snipe <snipe@snipe.net>
2023-10-24 17:01:51 +01:00
snipe
ec878202f7 Merge remote-tracking branch 'origin/develop' 2023-10-24 11:53:00 +01:00
snipe
29f438123e Merge pull request #13777 from Robert-Azelis/Robert-Azelis-Cutom_Report_FIX
[FIX] Custom report - date fields error
2023-10-24 10:27:58 +01:00
Ivan Nieto Vivanco
0c5d54dfde Create the language string to show in the importer GUI indicating the file is empty 2023-10-23 22:09:17 -06:00
Ivan Nieto Vivanco
49f6eef9df Places a text indicating that the file is empty and display it as an info text 2023-10-23 21:57:35 -06:00
Ivan Nieto Vivanco
8f8e5cb723 Adds condition to only process CSV if is not empty 2023-10-23 21:47:10 -06:00
snipe
d5598b3322 Merge pull request #13778 from Robert-Azelis/Robert-Azelis-Dashboard_impr
[Improvement] Dashboard
2023-10-23 18:00:00 +01:00
Robert-Azelis
309f30f630 Update view.blade.php
display marker if date of EOL is expired and show real EOL rate as diff between purchase date and eol date
2023-10-22 18:38:59 +02:00
Robert-Azelis
04a867d12b Update eol_date.blade.php
read EOL date from database instead calculate on the base model EOL rate
2023-10-22 18:32:20 +02:00
Robert-Azelis
e62636b3a5 Update AssetModelPresenter.php
display name 'EOL rate' instead of 'EOL'
2023-10-22 18:27:53 +02:00
Robert-Azelis
4e20a241ce Update AssetPresenter.php
display name 'EOL rate' instead of 'EOL'
2023-10-22 18:26:19 +02:00
Robert-Azelis
30cc498a16 Update AssetObserver.php
update exlicit marker depends if model EOL > 0 , EOL = 0
2023-10-22 18:23:30 +02:00
Robert-Azelis
5ae09b791f Update AssetsTransformer.php
on list of assets display EOL rate in months if purchase date and eol date are set, otherwise null (not display anything)
2023-10-22 18:16:49 +02:00
Robert-Azelis
bd195a6911 Update AssetsController.php
when asset is updated control EOL date change sand set explicit marker depends to setup of model EOL rate
2023-10-22 18:11:19 +02:00
Robert-Azelis
58062ff9f5 Update AssetModelsController.php
if EOL of model has been changed and value is >0 assets will be updates with new EOL rate, date
if EOL of model has been changes and value is null or 0 then assets will be updates by null EOL rate, date
*asset with set expilicity market will not be updated
2023-10-22 17:56:38 +02:00
Robert-Azelis
7571d45d44 [Improvement[ Dashboard
If multicompany option is enabled much more important for admin is to see on dashboard list of companies instead of locations.  
In other way if multicompanies option is disabled then locations are displayed.
2023-10-22 17:41:33 +02:00
Robert-Azelis
47186b0abe [FIX] Custom report - date fields error
Custom report in v6.2.3 give Error if selected are fields:
Purchase Date, Checkout Date, Last Checkin Date, Expected Checkin Date
Reason is: date field format
2023-10-22 16:28:44 +02:00
Godfrey M
e0a4387b10 clarifies an address column under locations 2023-10-19 10:01:08 -07:00
Godfrey M
b98c1a0627 fixes getExpiringLicenses query 2023-10-18 13:25:34 -07:00
snipe
bcce282ef9 Merge remote-tracking branch 'origin/develop' 2023-10-18 19:16:55 +01:00
snipe
38066bf162 Merge pull request #13758 from inietov/fixes/array_to_string_conversion_rb17355
Fixed ErrorException: Array to String Conversion rb17355
2023-10-18 19:09:13 +01:00
spencerrlongg
6b745930b5 what typo? 2023-10-18 13:00:13 -05:00
snipe
da30292d84 Merge pull request #13763 from Godmartinz/snipeit_v7_laravel10
fixed the bulk edit button on Asset tab
2023-10-18 18:51:41 +01:00
Godfrey M
7bda5c06de fixes the bulk edit button on Asset tab 2023-10-18 10:46:47 -07:00
spencerrlongg
38de69b3da new validation rule 2023-10-18 12:41:24 -05:00
snipe
41e96ad0ab Merge remote-tracking branch 'origin/develop' 2023-10-18 14:37:37 +01:00
snipe
bc6f014fff Merge pull request #13762 from snipe/fixes/make_sure_order_number_is_not_array
Make sure order number is not an array
2023-10-18 14:37:18 +01:00
snipe
1be503b21a Make sure order number is not an array
Signed-off-by: snipe <snipe@snipe.net>
2023-10-18 14:36:16 +01:00
snipe
997664f489 Merge remote-tracking branch 'origin/develop' 2023-10-18 14:18:49 +01:00
snipe
825c800d32 Merge pull request #13761 from snipe/fixes/check_for_valid_date_in_custom_report
Check for valid date in custom report
2023-10-18 14:18:27 +01:00
snipe
0c86b67ed6 Added error reporting to UI
Signed-off-by: snipe <snipe@snipe.net>
2023-10-18 14:13:35 +01:00
snipe
4d841dbc79 Use custom report validator
Signed-off-by: snipe <snipe@snipe.net>
2023-10-18 14:13:25 +01:00
snipe
f2fb5b43e3 Added custom report validator
Signed-off-by: snipe <snipe@snipe.net>
2023-10-18 14:12:52 +01:00
snipe
14a0c9b5db Merge remote-tracking branch 'origin/develop' 2023-10-18 13:06:21 +01:00
snipe
3747165f25 Merge pull request #13759 from snipe/fixes/better_handle_deleted_variables_in_api_call
Check for true/false explicitly on api table view
2023-10-18 13:05:57 +01:00
snipe
787a64d313 Check for true/false explicitly on api table view
Signed-off-by: snipe <snipe@snipe.net>
2023-10-18 13:05:06 +01:00
spencerrlongg
f7bb911b99 clean up 2023-10-17 19:06:53 -05:00
spencerrlongg
388e4c10c4 catch custom fields that are arrays 2023-10-17 19:03:58 -05:00
Ivan Nieto Vivanco
74ed32903f Adds condition to check if parameter is of the proper type 2023-10-17 15:48:51 -06:00
snipe
a6d3886aaf Merge remote-tracking branch 'origin/develop' 2023-10-17 22:37:50 +01:00
snipe
f2bc7d6173 Merge pull request #13757 from snipe/fixes/RB-17334_user_formatted_array
Fixed RB-17334 - ErrorException: Undefined variable $user_formatted_array
2023-10-17 22:34:52 +01:00
snipe
72fe94edb3 Fixed RB-17334 - ErrorException: Undefined variable $user_formatted_array
Signed-off-by: snipe <snipe@snipe.net>
2023-10-17 22:33:56 +01:00
snipe
3e54a9d561 Merge pull request #13756 from spencerrlongg/bug/label_logo_fix
Fixed #13652 - Labels Using Wrong Logo
2023-10-17 19:45:20 +01:00
spencerrlongg
4bdd070f7b formatting 2023-10-17 13:41:31 -05:00
spencerrlongg
277608d962 this seems to work 2023-10-17 13:30:51 -05:00
Brady Wetherington
3d5847f4b3 Merge branch 'develop' into snipeit_v7_laravel10 2023-10-16 23:37:13 +01:00
snipe
82c2a46ada Commented out noisy debugging
Signed-off-by: snipe <snipe@snipe.net>
2023-10-16 23:24:03 +01:00
snipe
3f6554ee34 Use singleton for offset
Signed-off-by: snipe <snipe@snipe.net>
2023-10-16 23:23:43 +01:00
snipe
73ec84903e Merge remote-tracking branch 'origin/develop' 2023-10-16 23:15:05 +01:00
snipe
1e0512ad44 Merge pull request #13753 from snipe/fixes/check_for_valid_location
Check that the location is valid before debugging
2023-10-16 23:14:41 +01:00
snipe
23fa92f4ce Check that the location is valid before debugging
Signed-off-by: snipe <snipe@snipe.net>
2023-10-16 23:13:38 +01:00
snipe
55d0c4021d Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	config/version.php
2023-10-16 20:19:03 +01:00
snipe
2218cff7bc Bumped version
Signed-off-by: snipe <snipe@snipe.net>
2023-10-16 20:18:33 +01:00
Brady Wetherington
db400dffb5 Merge branch 'develop' into snipeit_v7_laravel10
Rebuild assets and re-install from npm
2023-10-16 20:13:59 +01:00
snipe
199cdf6899 Commented out noisy debugging
Signed-off-by: snipe <snipe@snipe.net>
2023-10-16 20:05:11 +01:00
snipe
752171d5b8 Use singleton for offset
Signed-off-by: snipe <snipe@snipe.net>
2023-10-16 20:05:11 +01:00
snipe
8c4bf74f93 Commented out noisy debugging
Signed-off-by: snipe <snipe@snipe.net>
2023-10-14 20:43:18 +01:00
snipe
4e3d5707ce Use singleton for offset
Signed-off-by: snipe <snipe@snipe.net>
2023-10-14 20:39:52 +01:00
snipe
37858d870a Merge remote-tracking branch 'origin/develop' 2023-10-13 19:58:37 +01:00
snipe
b1f158ba5a Merge pull request #13749 from snipe/bug/sc-23473
Handle case where value is deleted in history
2023-10-13 19:58:19 +01:00
snipe
a92a9d7616 Removed duplicated deleted
Signed-off-by: snipe <snipe@snipe.net>
2023-10-13 19:53:11 +01:00
snipe
8f23a45cb3 Removed dummy text
Signed-off-by: snipe <snipe@snipe.net>
2023-10-13 19:49:03 +01:00
snipe
93cccf4f5f Handle case where value is deleted in history
Signed-off-by: snipe <snipe@snipe.net>
2023-10-13 19:32:09 +01:00
snipe
dcdc294135 Merge remote-tracking branch 'origin/develop' 2023-10-13 12:40:30 +01:00
snipe
04f6f39588 Merge pull request #13748 from snipe/bug/sc-23830
Fixed #13723 - race condition on asset observer for older migration
2023-10-13 12:40:14 +01:00
snipe
ca1420c9bd Added the temp column back in
Signed-off-by: snipe <snipe@snipe.net>
2023-10-13 12:39:28 +01:00
snipe
2537d0fdaf Added comments
Signed-off-by: snipe <snipe@snipe.net>
2023-10-13 12:34:46 +01:00
snipe
b2aed7feea Removed temp column
Signed-off-by: snipe <snipe@snipe.net>
2023-10-13 12:30:26 +01:00
snipe
ea960c39bb Check if the eol_explicit column exists yet, add it if not
Signed-off-by: snipe <snipe@snipe.net>
2023-10-13 12:19:32 +01:00
snipe
0b39591d88 Add the eol_explicit column earlier to accomodate the observer
Signed-off-by: snipe <snipe@snipe.net>
2023-10-13 12:18:58 +01:00
snipe
c14a01eb8b Added comments to explain the potential race condition
Signed-off-by: snipe <snipe@snipe.net>
2023-10-13 12:18:19 +01:00
snipe
2a9ed09f77 Merge remote-tracking branch 'origin/develop' 2023-10-13 10:03:18 +01:00
snipe
b96e77268a Merge pull request #13745 from spencerrlongg/bug/table_prefix_migration_fix
Resolves issue with migrations with table prefixes
2023-10-13 08:49:28 +01:00
spencerrlongg
f3bd23da3d rm whitespace 2023-10-12 14:53:17 -05:00
spencerrlongg
9b53b0fedc resolve issue with migrations with table prefixes 2023-10-12 14:50:12 -05:00
snipe
0d2f43c04f Merge remote-tracking branch 'origin/develop' 2023-10-11 12:00:54 +01:00
snipe
138ec33555 Merge pull request #13733 from marcusmoore/bug/sc-23453
Fixed notification logic to ensure check in and out emails are delivered
2023-10-11 12:00:37 +01:00
snipe
e99d307350 Merge pull request #13734 from marcusmoore/bug/sc-23661
Fixed the storing of group permissions when creating via API
2023-10-11 03:46:49 +01:00
Marcus Moore
417f9c21e4 Fix the storing of group permissions when creating via API 2023-10-10 17:51:29 -07:00
Marcus Moore
43b9e6401c Formatting 2023-10-10 15:18:55 -07:00
Marcus Moore
dae9e6d096 Improve try catch blocks 2023-10-10 15:18:37 -07:00
Marcus Moore
9ef598d07b Apply changes to exception handling for check outs to check ins 2023-10-10 15:16:12 -07:00
Marcus Moore
2a29566458 Catch all ClientExceptions on check out 2023-10-10 15:15:02 -07:00
Marcus Moore
ab3a3de59b Fire webhook notification after sending emails 2023-10-10 15:13:46 -07:00
Marcus Moore
47a77eabf2 Avoid logging error messages for webhook request failures 2023-10-10 15:06:08 -07:00
snipe
758d3aadb4 Added trim to import values
Signed-off-by: snipe <snipe@snipe.net>
2023-10-10 11:52:35 +01:00
snipe
1f0dadb58d Merge remote-tracking branch 'origin/develop' 2023-10-09 16:43:24 +01:00
snipe
f685ba01b6 Reversed order of find
Signed-off-by: snipe <snipe@snipe.net>
2023-10-09 16:43:14 +01:00
snipe
e3591dc756 Merge pull request #13728 from snipe/fixes/13725_for_dev
Fixes qty remaining requirements for component checkout via API
2023-10-09 16:34:40 +01:00
snipe
0fbe63d0cf Add @Singrity as a contributor 2023-10-09 16:33:00 +01:00
snipe
b9dc7f88d0 Fix qty requirements for Components API checkout
Signed-off-by: snipe <snipe@snipe.net>
2023-10-09 16:32:30 +01:00
snipe
f6527e0b42 Merge pull request #13727 from snipe/security/huntr_43206801-9862-48da-b379-e55e341d78bf
Set resend acceptance to POST
2023-10-09 16:15:27 +01:00
snipe
866bbe5e11 Removed extra debugging
Signed-off-by: snipe <snipe@snipe.net>
2023-10-09 16:15:14 +01:00
snipe
6d55d78280 Set resend acceptance to POST
Signed-off-by: snipe <snipe@snipe.net>
2023-10-09 16:13:41 +01:00
snipe
2789f67bb4 Merge remote-tracking branch 'origin/develop' 2023-10-09 15:19:29 +01:00
snipe
7a0d3f788f Merge pull request #13726 from snipe/fixes/tighter_checkin_on_log_match
Added tighter controls for matching log ID and item_id
2023-10-09 15:19:10 +01:00
snipe
e5f5802235 Added tighter controls for matching log ID and item_id
Signed-off-by: snipe <snipe@snipe.net>
2023-10-09 15:17:03 +01:00
snipe
a1f3a5c624 Merge remote-tracking branch 'origin/develop' 2023-10-07 11:34:49 +01:00
snipe
d2dc3253ab Cast the request limit to intval before we try to abs()
Signed-off-by: snipe <snipe@snipe.net>
2023-10-07 11:34:37 +01:00
snipe
d9a1dab827 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
2023-10-06 20:17:59 +01:00
snipe
5277f7cc5c Dev assets
Signed-off-by: snipe <snipe@snipe.net>
2023-10-06 20:14:44 +01:00
snipe
25a5507d9d Bumped version
Signed-off-by: snipe <snipe@snipe.net>
2023-10-06 20:07:35 +01:00
snipe
a95fae0e94 Merge remote-tracking branch 'origin/develop' 2023-10-06 20:00:12 +01:00
snipe
890efb18d8 Merge pull request #13720 from snipe/security/huntr_dev_d6ed5ac1-2ad6-45fd-9492-979820bf60c8
Fixed missing escaping asset history old/new values
2023-10-06 19:59:42 +01:00
snipe
eea2eabaee Escaping asset history old/new values
Signed-off-by: snipe <snipe@snipe.net>
2023-10-06 19:45:23 +01:00
snipe
9596826259 Merge branch 'master' of https://github.com/snipe/snipe-it 2023-10-06 19:04:44 +01:00
snipe
cd3b4754e8 Merge pull request #13704 from Godmartinz/feature/sc-23571_v2
Added a check-in button on components tab of Asset view
2023-10-05 14:28:37 +01:00
snipe
1dab4b59e9 Merge pull request #13693 from Godmartinz/bug/sc-9955
added proper margin-top to sidebar menu on bigger resolutions
2023-10-05 14:27:25 +01:00
snipe
05dd2b4008 Merge pull request #13709 from spencerrlongg/eol-migration
Speed up EOL Migration
2023-10-05 14:26:47 +01:00
snipe
b809625856 Merge pull request #13713 from snipe/security/13685
[Snyk] Security upgrade css-loader from 4.3.0 to 5.0.0 #13685
2023-10-05 14:13:35 +01:00
snipe
8d921359ca [Snyk] Security upgrade css-loader from 4.3.0 to 5.0.0 #13685
Signed-off-by: snipe <snipe@snipe.net>
2023-10-05 14:12:36 +01:00
spencerrlongg
c07c0c0f74 cleanup 2023-10-04 16:55:35 -05:00
spencerrlongg
cc82e86eeb one more check 2023-10-04 16:54:56 -05:00
spencerrlongg
8c9961aba8 refactor 2023-10-04 15:40:42 -05:00
spencerrlongg
46af40bd02 ????? 2023-10-04 15:20:16 -05:00
spencerrlongg
6cda9056b8 oops 2023-10-04 14:56:18 -05:00
spencerrlongg
101bd9c404 kill transaction, try update array 2023-10-04 14:47:14 -05:00
spencerrlongg
ad6b502005 comments 2023-10-04 14:37:18 -05:00
spencerrlongg
cb10c7af27 oops 2023-10-04 14:33:35 -05:00
spencerrlongg
99d409c0a5 transaction 2023-10-04 14:32:28 -05:00
Godfrey M
37c1d6fc04 removed unnecessary changes 2023-10-03 12:45:13 -07:00
Brady Wetherington
7a5714cc85 Merge branch 'develop' into snipeit_v7_laravel10 2023-10-03 20:37:17 +01:00
Godfrey M
c69958d95d removed dead space 2023-10-03 12:32:24 -07:00
Godfrey M
92776adb93 remove unnecessary changes 2023-10-03 12:31:58 -07:00
Godfrey M
dee36fc294 adds component checkin to asset tab 2023-10-03 12:30:08 -07:00
snipe
a2773aa895 Merge pull request #13696 from marcusmoore/bug/sc-23796
Fixed potential call to a member function toArray() on null
2023-10-03 11:01:40 +01:00
Marcus Moore
e82fec2a5f Grammar fix 2023-10-02 16:19:20 -07:00
Marcus Moore
db4c86a4f4 Filter null field options before attempting to process them 2023-10-02 16:14:20 -07:00
snipe
8384786e8b Merge pull request #13695 from marcusmoore/bug/sc-23795-to-master
Log non-compliant barcode error as debug message
2023-10-02 22:22:26 +01:00
Marcus Moore
a5fd218c23 Log non-compliant barcode error as debug message 2023-10-02 14:19:52 -07:00
snipe
d2435c6f86 Merge remote-tracking branch 'origin/develop' 2023-10-02 22:14:08 +01:00
snipe
1abcc8b802 Merge pull request #13694 from marcusmoore/bug/sc-23795
Logs non-compliant barcode error as debug message
2023-10-02 22:13:19 +01:00
Marcus Moore
724c054838 Log non-compliant barcode error as debug message 2023-10-02 12:06:24 -07:00
Godfrey M
1e8f90bcf0 gives proper margin-top to sidebar menu on bigger resolutions 2023-10-02 11:46:08 -07:00
snipe
129e9b90dc Merge pull request #13585 from spencerrlongg/eol_2
Standardize Asset EOL Date
2023-10-02 16:09:22 +01:00
snipe
4e6764428e Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	config/version.php
2023-10-02 14:29:59 +01:00
snipe
c7b8880d69 Bumped version
Signed-off-by: snipe <snipe@snipe.net>
2023-10-02 14:28:59 +01:00
snipe
228f21ed91 Merge pull request #13690 from snipe/localization/all
Updated language strings
2023-10-02 14:24:52 +01:00
snipe
b7c390a257 Updated language strings
Signed-off-by: snipe <snipe@snipe.net>
2023-10-02 14:23:22 +01:00
snipe
c45ede2d17 Merge remote-tracking branch 'origin/develop' 2023-09-29 19:00:27 +01:00
snipe
758d808772 Merge pull request #13683 from snipe/bug/sc-17602
Fixed consumable user view route name
2023-09-29 15:17:23 +01:00
snipe
754ec7563a Fixed consumable user view route name
Signed-off-by: snipe <snipe@snipe.net>
2023-09-29 15:15:03 +01:00
snipe
352e53a036 Merge remote-tracking branch 'origin/develop' 2023-09-29 01:51:40 +01:00
snipe
0184d25a95 Merge pull request #13681 from marcusmoore/bug/sc-23778
Fixed uncaught type error when attempting to render barcodes with invalid characters
2023-09-29 01:50:07 +01:00
Marcus Moore
bed1055c4e Catch TypeError when rendering 1d barcode 2023-09-28 17:32:16 -07:00
Marcus Moore
41eccaeae0 Set dummy asset tag to value that is valid for EAN13 2023-09-28 17:31:45 -07:00
Marcus Moore
eb2edb7475 Add more default values for label preview 2023-09-28 13:40:51 -07:00
Marcus Moore
ed77e8768c Re-order options 2023-09-28 12:33:27 -07:00
Marcus Moore
3aa256ec02 Ensure non-checked out items can be displayed 2023-09-28 12:33:20 -07:00
snipe
c1f545a523 Merge pull request #13679 from Godmartinz/bug/sc-23688
Fixed General Webhooks error messaging and validation
2023-09-28 20:24:09 +01:00
Godfrey M
8792d654b6 added translations for messages 2023-09-28 12:15:17 -07:00
Godfrey M
f8730adb11 removed unnecessary changes 2023-09-28 11:41:43 -07:00
Marcus Moore
36638feac4 Add assigned to as option 2023-09-28 11:37:02 -07:00
Marcus Moore
4675f02349 Format assigned to field 2023-09-28 11:35:20 -07:00
Godfrey M
c21586dee5 adds better error messaging 2023-09-28 11:29:46 -07:00
snipe
581e56198c Merge remote-tracking branch 'origin/develop' 2023-09-28 19:24:48 +01:00
snipe
f16e81e0e8 Merge pull request #13678 from spencerrlongg/bug/sc-23596
Fieldset Properly Sortable in Asset Models Table
2023-09-28 19:24:04 +01:00
snipe
3de656f5c6 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
2023-09-28 19:20:27 +01:00
snipe
3b4004ac18 Merge pull request #13677 from snipe/feature/sc-14880
Set modal focus to modal-name field
2023-09-28 19:18:16 +01:00
snipe
0bf423cda9 Set modal focus to modal-name field
Signed-off-by: snipe <snipe@snipe.net>
2023-09-28 19:16:40 +01:00
spencerrlongg
a54fab5c33 add fieldset to allowed_columns 2023-09-28 13:02:12 -05:00
snipe
96c6c93197 Merge pull request #13674 from snipe/bug/sc-23774
Fixed bug where license checkout/checkin notes were not being saved
2023-09-28 18:37:47 +01:00
spencerrlongg
4d67c72eea scope and switch case in api 2023-09-28 12:26:23 -05:00
snipe
6fa0d42bc2 Fixed bug where license checkout/checkin notes were not being saved
Signed-off-by: snipe <snipe@snipe.net>
2023-09-28 15:40:18 +01:00
snipe
cfe6b07b3a Updated prod assets
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	public/css/dist/all.css
#	public/css/dist/bootstrap-table.css
#	public/js/build/vendor.js
#	public/js/dist/all.js
#	public/mix-manifest.json
2023-09-28 15:15:50 +01:00
snipe
7512400b56 Merge pull request #13672 from snipe/feature/sc-23772
Fixed #13662 - added clipboard.js
2023-09-28 15:13:42 +01:00
snipe
1acb14a39f Moved dragtable css
Signed-off-by: snipe <snipe@snipe.net>
2023-09-28 15:12:44 +01:00
snipe
bb7a41628a Fixed #13662 - added clipboard.js
Signed-off-by: snipe <snipe@snipe.net>
2023-09-28 15:06:55 +01:00
snipe
68c9fac971 Merge remote-tracking branch 'origin/develop' 2023-09-28 14:25:31 +01:00
snipe
402ff58628 Merge pull request #13671 from snipe/bug/sc-23773
Fixed #13670 - order number missing from license import
2023-09-28 14:24:49 +01:00
snipe
492fb15036 Fixed #13670 - order number missing from license import
Signed-off-by: snipe <snipe@snipe.net>
2023-09-28 14:24:07 +01:00
snipe
ac7f85fea9 Merge remote-tracking branch 'origin/develop' 2023-09-28 03:32:57 +01:00
snipe
cc4cb14e9d Merge pull request #13667 from snipe/bug/sc-23771
Fixed #13658 for asset history with encrypted fields
2023-09-28 03:29:06 +01:00
snipe
ee72c92d4f Fix for asset history with enfrypted fields
Signed-off-by: snipe <snipe@snipe.net>
2023-09-28 03:00:49 +01:00
Marcus Moore
a47e36c1e5 Add custom fields as options 2023-09-27 16:51:53 -07:00
Marcus Moore
a4a25ab9d0 Remove a couple fields 2023-09-27 16:35:44 -07:00
Marcus Moore
518ae28a37 Improve option display values 2023-09-27 16:20:26 -07:00
Marcus Moore
74a891afbb WIP: Render select box for field options in label engine 2023-09-27 15:58:01 -07:00
snipe
3aeea007b2 Merge remote-tracking branch 'origin/develop' 2023-09-26 15:26:21 +01:00
snipe
048ad57418 Merge pull request #13657 from snipe/fixes/revert_column_sorting_temp
Commented out sortable columns
2023-09-26 15:25:58 +01:00
snipe
7bcb28d8fd Commented out sortable columns
Signed-off-by: snipe <snipe@snipe.net>
2023-09-26 15:24:20 +01:00
snipe
660abeca9e Merge pull request #13638 from marcusmoore/bug/sc-20704
Fixed exception being thrown when selected import was deleted
2023-09-26 15:00:35 +01:00
snipe
0c31d5749c Merge remote-tracking branch 'origin/develop' 2023-09-26 14:47:25 +01:00
snipe
1509339b68 Merge pull request #13655 from snipe/bug/sc-23759
Fixed bug where checkout to location would throw an error if FMCS was enabled
2023-09-26 14:37:36 +01:00
snipe
81ae32d3f9 Fixed typo
Signed-off-by: snipe <snipe@snipe.net>
2023-09-26 14:33:51 +01:00
snipe
279e6c7e4f Check for null company ID
Signed-off-by: snipe <snipe@snipe.net>
2023-09-26 14:33:42 +01:00
snipe
16498fdcf8 Merge remote-tracking branch 'origin/develop' 2023-09-25 13:46:33 +01:00
snipe
81a982fd77 Merge pull request #13650 from snipe/features/more_info_in_settings
Features/more info in settings
2023-09-25 13:46:00 +01:00
snipe
619712b927 Fixed table
Signed-off-by: snipe <snipe@snipe.net>
2023-09-25 13:45:46 +01:00
snipe
359cd2a267 A few more config options
Signed-off-by: snipe <snipe@snipe.net>
2023-09-25 13:28:13 +01:00
snipe
13bee63fe9 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	config/version.php
2023-09-25 10:59:09 +01:00
snipe
f6317695f9 Bumped version
Signed-off-by: snipe <snipe@snipe.net>
2023-09-25 10:58:14 +01:00
snipe
e4696138ba Merge pull request #13647 from snipe/localization/new_translations
Localization/new translations
2023-09-25 10:57:02 +01:00
snipe
bd0863d9c7 Added new translations
Signed-off-by: snipe <snipe@snipe.net>
2023-09-25 10:54:46 +01:00
snipe
28cd0085b7 Added Khmer as an available language
Signed-off-by: snipe <snipe@snipe.net>
2023-09-25 10:54:32 +01:00
snipe
456d55c3bd Added some mail settings to /settings for easier reference
Signed-off-by: snipe <snipe@snipe.net>
2023-09-21 16:14:47 +01:00
Marcus Moore
5a88a64ebd Remove unnecessary redirect 2023-09-20 17:35:34 -07:00
Marcus Moore
b1199100a0 Display error message if import file deleted before it can be selected 2023-09-20 17:22:12 -07:00
Godfrey M
b7901ae2d8 dont allow redirects, messaging applied, general webhook validation applied 2023-09-20 12:54:34 -07:00
spencerrlongg
4660a2e5b7 rm more duplicate 2023-09-20 14:37:32 -05:00
spencerrlongg
a9123754f5 remove unnecessary code 2023-09-20 14:34:42 -05:00
spencerrlongg
cbef531811 parse purchase date even though it's cast 2023-09-20 14:26:49 -05:00
spencerrlongg
7dab59c98d fix for no eol, fix for optional in view 2023-09-20 14:17:30 -05:00
spencerrlongg
c48a47936c add validation back in 2023-09-20 14:00:59 -05:00
snipe
7c908fecd9 Merge pull request #12992 from spencerrlongg/features/12853
Adds tag for docker builds
2023-09-20 19:36:22 +01:00
snipe
cdd0de15b5 Merge pull request #13634 from marcusmoore/chore/add-factories-to-autolabeler
Added factories to autolabeler action
2023-09-20 17:51:34 +01:00
snipe
46981da400 Merge pull request #13635 from marcusmoore/bug/sc-23715
Added unique() to some factory properties
2023-09-20 17:51:22 +01:00
Godfrey M
66abf8d5c0 redoing logic 2023-09-19 17:46:29 -07:00
spencerrlongg
2ace24b176 csv header 2023-09-19 19:38:59 -05:00
spencerrlongg
d65d1930e4 asset models 2023-09-19 19:24:53 -05:00
Marcus Moore
90e75a3e2c Add unique() to some factory properties 2023-09-19 17:02:18 -07:00
spencerrlongg
2d59517c35 rm !empty 2023-09-19 18:40:23 -05:00
spencerrlongg
3cb906a05f pushing to switch branches and test 2023-09-19 18:23:06 -05:00
Marcus Moore
cd538a4ad8 Add factories to autolabeler action 2023-09-19 16:07:26 -07:00
spencerrlongg
6b4f8f1813 rm duplicate fillable 2023-09-19 18:07:15 -05:00
spencerrlongg
929e107a20 rm byod from casts 2023-09-19 18:04:16 -05:00
snipe
5a5b07f5a5 Merge remote-tracking branch 'origin/develop' 2023-09-19 10:22:59 +01:00
snipe
439c2e095d Merge pull request #13629 from snipe/bug/sc-23745
Fixed #13628 - removed duplicate favicon tag
2023-09-19 10:22:36 +01:00
snipe
14c0517927 Fixed #13628 - removed duplicate favicon tag
Signed-off-by: snipe <snipe@snipe.net>
2023-09-19 10:21:38 +01:00
snipe
d84d26febf Merge remote-tracking branch 'origin/develop' 2023-09-18 22:31:41 +01:00
snipe
753a5f789e Merge pull request #13623 from snipe/fixes/dependabot_target
Made develop the target branch for dependabot
2023-09-18 22:31:11 +01:00
snipe
d7790cd16b Updated assets
Signed-off-by: snipe <snipe@snipe.net>
2023-09-18 22:24:15 +01:00
snipe
8ecc0651ed 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
2023-09-18 22:23:58 +01:00
snipe
a8b2089275 Merge pull request #13627 from snipe/fixes/dependabot_13616
Replaces #13616 - Bump docker/metadata-action from 4 to 5
2023-09-18 22:20:06 +01:00
snipe
a46a11d554 Replaces #13616 - Bump docker/metadata-action from 4 to 5
Signed-off-by: snipe <snipe@snipe.net>
2023-09-18 22:19:31 +01:00
snipe
d444b620c5 Merge pull request #13626 from snipe/fixes/dependabot_13617
Replaces #13617 - Bump docker/setup-buildx-action from 2 to 3
2023-09-18 22:18:04 +01:00
snipe
10dcd8166b Replaces #13617 - Bump docker/setup-buildx-action from 2 to 3
Signed-off-by: snipe <snipe@snipe.net>
2023-09-18 22:17:24 +01:00
snipe
00df449e0b Merge pull request #13625 from snipe/fixes/dependabot_13618
Replaces #13618 - Bump docker/build-push-action from 4 to 5
2023-09-18 22:16:08 +01:00
snipe
0cb4427a19 Bump docker/build-push-action from 4 to 5
Signed-off-by: snipe <snipe@snipe.net>
2023-09-18 22:15:18 +01:00
snipe
17fe915d2f Merge pull request #13624 from snipe/fixes/dependabot_13619
Bump docker/login-action from 2 to 3 (#13619)
2023-09-18 22:14:01 +01:00
snipe
9ad73ed09a Bump docker/login-action from 2 to 3 (#13619)
Signed-off-by: snipe <snipe@snipe.net>
2023-09-18 22:13:09 +01:00
snipe
68fa6d57ca Merge pull request #13613 from snipe/features/reorder_columns
Added column re-ordering
2023-09-18 22:10:09 +01:00
snipe
f14e3422b4 Made develop the target branch
Signed-off-by: snipe <snipe@snipe.net>
2023-09-18 22:09:43 +01:00
snipe
2a638e66f0 Added column re-ordering
Signed-off-by: snipe <snipe@snipe.net>
2023-09-15 21:53:34 +01:00
snipe
8bdecb1da9 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/js/dist/bootstrap-table.js
#	public/mix-manifest.json
2023-09-15 20:32:05 +01:00
snipe
52f9c786be Merge pull request #13612 from snipe/fixes/re_add_sticky_header
Fixed regression that disabled sticky headers
2023-09-15 20:29:24 +01:00
snipe
3ba8b60f54 Fixed regression that disabled sticky headers
Signed-off-by: snipe <snipe@snipe.net>
2023-09-15 20:28:28 +01:00
snipe
341f711385 Merge remote-tracking branch 'origin/develop' 2023-09-15 15:43:48 +01:00
snipe
eb406547c4 Merge pull request #13610 from snipe/fixes/disallow_sorting_on_age
Fixes #13609 - disallow sorting on age
2023-09-15 15:26:55 +01:00
snipe
0b562d2f55 Fixes #13609 - disallow sorting on age
Signed-off-by: snipe <snipe@snipe.net>
2023-09-15 15:25:52 +01:00
snipe
131ccaa5b9 Merge pull request #12869 from Godmartinz/bug/sc-23134
Fixed footer sizing issue
2023-09-15 14:31:07 +01:00
snipe
9bd357e2d4 Merge remote-tracking branch 'origin/develop' 2023-09-15 12:52:59 +01:00
snipe
054d8763fb Merge pull request #13608 from snipe/bug/sc-15287
Use relative path in backups for cleaner directory structure
2023-09-15 12:51:49 +01:00
snipe
52a77f4c31 Use relative path in backups for cleaner directory structure
Signed-off-by: snipe <snipe@snipe.net>
2023-09-15 12:50:00 +01:00
snipe
cce90c6ce0 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	config/version.php
2023-09-15 09:43:25 +01:00
snipe
4e0e1a2c85 Bumped hash
Signed-off-by: snipe <snipe@snipe.net>
2023-09-15 09:42:27 +01:00
snipe
8a8afef81b Merge pull request #13606 from snipe/feature/sc-23705
Fixed #13592 - unable to delete model from view page
2023-09-15 01:11:49 +01:00
snipe
860e7791ff Fixed #13592 - unable to delete model from view page
Signed-off-by: snipe <snipe@snipe.net>
2023-09-14 23:35:44 +01:00
snipe
20da6cccbc Merge remote-tracking branch 'origin/develop' 2023-09-14 22:57:04 +01:00
snipe
a013ddf541 Merge pull request #13605 from snipe/bug/sc-23183
Simplify upload messaging, handle -1% error
2023-09-14 22:52:31 +01:00
spencerrlongg
1cfd7673e0 change Importer.php back 2023-09-14 16:11:24 -05:00
snipe
bbe7d9dde2 Removed stray space
Signed-off-by: snipe <snipe@snipe.net>
2023-09-14 22:08:53 +01:00
snipe
932c02cc54 Typo
Signed-off-by: snipe <snipe@snipe.net>
2023-09-14 22:08:30 +01:00
snipe
84b0ff76ed Revert large warning size
Signed-off-by: snipe <snipe@snipe.net>
2023-09-14 22:06:19 +01:00
snipe
273740b8f5 Fixed import error warning
Signed-off-by: snipe <snipe@snipe.net>
2023-09-14 22:04:23 +01:00
spencerrlongg
afe9d43139 chunk by id? 2023-09-14 16:00:35 -05:00
snipe
34c3174531 Merge pull request #13604 from marcusmoore/feature/sc-23714
Removed ChipperCI integration
2023-09-14 21:48:49 +01:00
spencerrlongg
aac627592b move logic inside of try 2023-09-14 15:43:00 -05:00
spencerrlongg
f35f9f922e safety & catch & log 2023-09-14 15:32:17 -05:00
snipe
8f4ca9da57 Simplify upload messaging
Signed-off-by: snipe <snipe@snipe.net>
2023-09-14 21:20:21 +01:00
Marcus Moore
b113411891 Remove ChipperCI 2023-09-14 13:00:38 -07:00
spencerrlongg
44441ec703 up chunk size 2023-09-14 14:25:02 -05:00
snipe
15c71439b6 Merge pull request #13602 from snipe/bug/sc-23685
Fixed checkbox formatting on quickstart
2023-09-14 18:48:50 +01:00
snipe
8e41fb7b36 Removed stray text
Signed-off-by: snipe <snipe@snipe.net>
2023-09-14 18:48:20 +01:00
snipe
d0c4910a51 Fixed checkbox formatting on quickstart
Signed-off-by: snipe <snipe@snipe.net>
2023-09-14 18:44:02 +01:00
snipe
467609e561 Merge remote-tracking branch 'origin/develop' 2023-09-14 14:32:06 +01:00
snipe
2166d6649d Merge pull request #13343 from snipe/fixes/re-scramble_password_if_ldap_pw_sync_not_enabled
Fixed #13336 - Save unhashed password if no password provided
2023-09-14 14:15:53 +01:00
snipe
dcae5503c8 Use $attributes array
Signed-off-by: snipe <snipe@snipe.net>
2023-09-14 13:52:57 +01:00
snipe
d916e20c10 Merge pull request #13415 from marcusmoore/feature/department-scoping
Added `CompanyableTrait` to `Department` model
2023-09-14 12:52:53 +01:00
snipe
b92327eb40 Merge pull request #13520 from inietov/fixes/licenses_reassignable_feature
Fixed Not reassignable Licenses shouldn't show 'Checkin All Seats' button [sc-23506]
2023-09-14 12:52:13 +01:00
snipe
c7b24821b3 Merge pull request #13549 from inietov/fixes/attempt_to_read_property_id_on_null
Fixed ErrorException: Attempt to read property "id" on null (rollbar #3541)
2023-09-14 12:50:54 +01:00
snipe
a37df8ce9d Merge pull request #13581 from snipe/updates/upgrade_checkout_actions
Upgraded actions/checkout to v4 (via #13580)
2023-09-14 12:40:34 +01:00
snipe
104219ed76 Merge pull request #13597 from marcusmoore/bug/sc-23681
Reset checkout to value when navigating away from type
2023-09-14 12:39:04 +01:00
snipe
56c7da7b06 Merge pull request #13595 from Godmartinz/correct-nullable_on_asset_model_min_qty
Fixed nullability on asset model `min qty` column
2023-09-14 08:52:33 +01:00
spencerrlongg
7c9a4ac161 immutable 2023-09-13 18:15:13 -05:00
spencerrlongg
64a9859efd cleanup 2023-09-13 17:58:33 -05:00
spencerrlongg
ef64843d2f chunk migration, needs to be tested 2023-09-13 17:41:45 -05:00
Ivan Nieto Vivanco
439e031911 Evaluate if the event properties exists before run the CheckoutAcceptance query 2023-09-13 16:35:10 -06:00
spencerrlongg
0368b9df43 viola 2023-09-13 17:16:17 -05:00
Marcus Moore
74c7f106ce Reset assigned_x values when changing check out to type 2023-09-13 13:43:35 -07:00
Godfrey M
f283a5f755 changed the down method change 2023-09-13 13:24:26 -07:00
spencerrlongg
951521dc81 push 2023-09-13 15:20:55 -05:00
Godfrey M
0c504fed49 fixed nullability of on Asset Models 2023-09-13 13:13:41 -07:00
Marcus Moore
11208ee064 Guard against attempting to send notification to model that isn't notifiable 2023-09-13 12:56:27 -07:00
spencerrlongg
70a251de55 fix up gui edit 2023-09-13 13:51:14 -05:00
spencerrlongg
e21a8b6717 fix up this file 2023-09-12 18:11:36 -05:00
spencerrlongg
7047869367 cleanup 2023-09-12 18:03:13 -05:00
spencerrlongg
53d4fd1d0b purchase_date 2023-09-12 18:01:33 -05:00
Brady Wetherington
c77f5eee8c Merge branch 'develop' into snipeit_v7_laravel10 2023-09-12 12:04:42 +01:00
snipe
f6a11ac0ed Merge pull request #13586 from inietov/fixes/call_to_member_function_checkedOutToUser
Fixed Call to a member function checkedOutToUser() on null [rollbar-3598]
2023-09-12 08:35:30 +01:00
Ivan Nieto Vivanco
9cbd2d032c Add a boolean variable and condition to handle the call to checkedOutToUser() method 2023-09-11 17:40:59 -06:00
spencerrlongg
ccf3fe40ec rm additional row 2023-09-11 17:35:13 -05:00
spencerrlongg
3a63bcab73 temporarily show on its own line 2023-09-11 17:35:13 -05:00
spencerrlongg
30dade1fba cleanup 2023-09-11 17:35:12 -05:00
spencerrlongg
97d6a34b8c some changes to sample csv 2023-09-11 17:34:05 -05:00
spencerrlongg
431af5f530 this works!!!! 2023-09-11 17:34:05 -05:00
spencerrlongg
3e3bb594ea some import stuff 2023-09-11 17:34:04 -05:00
spencerrlongg
fb001caee4 fix conflicts 2023-09-11 17:33:31 -05:00
spencerrlongg
b73f20cadf immutable when things are looping, just in case 2023-09-11 17:22:46 -05:00
spencerrlongg
3fb62874f0 quick push to check something else 2023-09-11 17:22:46 -05:00
spencerrlongg
c66804bcee a little cleanup 2023-09-11 17:22:46 -05:00
spencerrlongg
e1af69f6ae typo 2023-09-11 17:22:46 -05:00
slong753
27bea2abb9 just some more wip on the importer 2023-09-11 17:21:51 -05:00
slong753
1b18cd7fe6 added asset_eol_date and explicit to factory 2023-09-11 17:21:51 -05:00
slong753
78c400e948 fix conflicts 2023-09-11 17:21:50 -05:00
slong753
75d7e3e1a0 fix conflicts 2023-09-11 17:20:21 -05:00
slong753
5948679a4a fix purchase date update 2023-09-11 17:17:59 -05:00
slong753
774f21bb7f some more cleanup 2023-09-11 17:17:59 -05:00
slong753
20367eecc9 fix conflicts 2023-09-11 17:17:59 -05:00
slong753
cda9dd57dd asset update logic 2023-09-11 17:15:25 -05:00
slong753
41b65bd9a2 small changes 2023-09-11 17:15:25 -05:00
slong753
17a83129b9 this all needs to be tested tediously 2023-09-11 17:15:25 -05:00
slong753
0e60184e95 i think this migration makes sense 2023-09-11 17:15:25 -05:00
slong753
1ea0de8bca prevent injection, fix asset update 2023-09-11 17:15:25 -05:00
slong753
17ccfa9ada resolve some conflicts 2023-09-11 17:15:24 -05:00
slong753
c1daabef08 progress 2023-09-11 17:10:41 -05:00
slong753
dc39d2c567 notes 2023-09-11 17:10:41 -05:00
slong753
321e7c93ec carbon thing 2023-09-11 16:51:40 -05:00
slong753
8456b3ec0c wip stuff 2023-09-11 16:51:40 -05:00
Godfrey M
e73b16846e adds an option to bulk edit actual location for bulk edit and fixes update issue 2023-09-11 11:21:56 -07:00
snipe
a49d3fe131 Merge pull request #13526 from Godmartinz/asset-model-notifs
Added threshold notifications and min qty for Asset models
2023-09-11 17:55:34 +01:00
Godfrey Martinez
a26b96185b Merge branch 'develop' into asset-model-notifs 2023-09-11 09:37:22 -07:00
Godfrey M
0eb50ceb3d removes commented code 2023-09-11 09:36:38 -07:00
snipe
c2fe9d490b Upgraded actions/checkout to v4 (via #13580)
Signed-off-by: snipe <snipe@snipe.net>
2023-09-11 13:25:44 +01:00
snipe
dc74fb133f Merge pull request #13577 from marcusmoore/fixes/improve-testcase
Fixed failing test
2023-09-08 07:08:21 +01:00
Marcus Moore
093bf57448 Update assertion and add failure messages 2023-09-07 16:42:49 -07:00
snipe
9c608dd6ff Merge remote-tracking branch 'origin/develop' 2023-09-07 21:36:39 +01:00
snipe
06836663c8 Merge pull request #13575 from marcusmoore/fixes/improve-api-messaging
Added validation around department_id in API patch request
2023-09-07 21:36:20 +01:00
Marcus Moore
c6c1c64c1e Remove todo 2023-09-07 13:30:05 -07:00
Marcus Moore
4caa501996 Relax property type check 2023-09-07 13:28:32 -07:00
Marcus Moore
a7a70f6981 Test permissions update 2023-09-07 13:21:27 -07:00
Marcus Moore
39ff575ac1 Remove unused test cases 2023-09-07 13:16:08 -07:00
snipe
5b88089ffc Merge remote-tracking branch 'origin/develop' 2023-09-07 20:50:35 +01:00
snipe
02c187b0a0 Merge pull request #13566 from snipe/features/13562_add_inline_file_link
Fixed #13562 - Added inline file link
2023-09-07 20:50:13 +01:00
snipe
7f892bf5ef Merge pull request #13574 from inietov/fixes/unaccepted_assets_report_incorrect
Fixed Unaccepted Assets report has incorrect people [freshdesk-37808]
2023-09-07 20:49:40 +01:00
Marcus Moore
56e6205667 Formatting 2023-09-07 12:45:03 -07:00
Ivan Nieto Vivanco
abd2ed3b81 Filter unaccepted assets that are not assigned to users 2023-09-07 13:39:16 -06:00
Marcus Moore
899c2eb19b Implement test case 2023-09-07 12:34:50 -07:00
snipe
cf36c31eac Merge remote-tracking branch 'origin/develop' 2023-09-07 20:22:33 +01:00
snipe
894c34ff4f Update to only use relative paths
Signed-off-by: snipe <snipe@snipe.net>
2023-09-07 20:22:14 +01:00
Brady Wetherington
aacfed40f8 Switch back to our fork of laravel-scim-server 2023-09-07 20:16:03 +01:00
Brady Wetherington
ec1059e74c Merge branch 'develop' into snipeit_v7_laravel10 2023-09-07 20:11:41 +01:00
snipe
b7c2b9374c Merge pull request #13573 from snipe/upgrade_scim_server
Upgrade to new branch for our fork of laravel-scim-server
2023-09-07 20:07:59 +01:00
Brady Wetherington
3184f795c2 Upgrade to new branch for our fork of laravel-scim-server 2023-09-07 18:29:23 +01:00
snipe
67cad9c751 Merge pull request #13571 from inietov/fixes/require_acceptance_on_null
Fixed Attempt to read property require_acceptance on null [rollbar-3557]
2023-09-07 18:11:42 +01:00
snipe
ec5238ff06 Merge pull request #13548 from marcusmoore/update-testing-documentation
Updated testing documentation
2023-09-07 11:25:53 +01:00
Marcus Moore
1c3c36f2a0 Begin to implement patch test 2023-09-06 16:14:14 -07:00
Ivan Nieto Vivanco
1509c512a5 Add guard clauses around some License and LicenseSeat models functions 2023-09-06 11:54:11 -06:00
snipe
2a94fd17ee Merge remote-tracking branch 'origin/develop' 2023-09-06 09:37:35 +01:00
snipe
e920199626 Merge pull request #13567 from johnson-yi/fixes/add_default_location_to_checkin_actionlog
Add default location to tracked changes on checkin actionlog
2023-09-06 09:37:04 +01:00
johnson-yi
5897f4d6d9 Add rtd_location_id to tracked changes on checkin actionlog 2023-09-06 00:36:48 +00:00
snipe
a67888f3d3 Merge pull request #13547 from inietov/fixes/Attempt_to_read_property_asset_tag
Fixed ErrorException: Attempt to read property "asset_tag" on null (rollbar #3541)
2023-09-05 20:26:21 +01:00
Ivan Nieto Vivanco
91b1cc7121 Move the early return to the controller instead of the Label model 2023-09-05 13:23:51 -06:00
snipe
d6dd332b09 Merge pull request #13557 from johnson-yi/fixes/add_changes_to_checkinout_actionlog
Added/Fixed: track changes on asset checkin/out
2023-09-05 19:08:49 +01:00
snipe
65a76c599c Added inline=true to image preview modal
Signed-off-by: snipe <snipe@snipe.net>
2023-09-05 18:35:07 +01:00
snipe
f53db8ba75 Fixed #13562 - allow inline view for uploaded files
Signed-off-by: snipe <snipe@snipe.net>
2023-09-05 18:28:01 +01:00
snipe
32407b531b Merge remote-tracking branch 'origin/develop' 2023-09-05 16:10:30 +01:00
snipe
e486fe2794 Removed soft-delete query
Signed-off-by: snipe <snipe@snipe.net>
2023-09-05 16:10:20 +01:00
snipe
521fcd45b0 Merge remote-tracking branch 'origin/develop' 2023-09-05 16:08:17 +01:00
snipe
26452a8a29 Merge pull request #13565 from snipe/fixes/asset_history_500_on_hard_deleted_models
Account for hard-deleted models, suppliers
2023-09-05 16:06:40 +01:00
snipe
f85df6bb8c Use same method of accessing companies as others
Signed-off-by: snipe <snipe@snipe.net>
2023-09-05 16:02:28 +01:00
snipe
2acf2b880e Account for hard-deleted models, suppliers
Signed-off-by: snipe <snipe@snipe.net>
2023-09-05 15:58:21 +01:00
snipe
b17af38d8e Merge pull request #12901 from Godmartinz/user_total_cost
Added users total cost of assets to user profile
2023-09-05 13:52:34 +01:00
snipe
a62e2f092b Merge pull request #13498 from marcusmoore/feature/add-checkin-date-range-filter-to-custom-asset-report
Added last check in column and filter to custom asset report
2023-09-05 13:22:15 +01:00
Johnson Yi
09f7b3debe Track changes on asset checkin/out 2023-09-01 13:12:07 +10:00
Marcus Moore
da7d6f6f77 Merge branch 'develop' into update-testing-documentation 2023-08-31 10:36:06 -07:00
snipe
faa865fd48 Merge remote-tracking branch 'origin/develop' 2023-08-31 18:24:29 +01:00
snipe
f08cef8664 Merge pull request #13556 from snipe/feature/sc-23684
Added model name and number to dynamic url
2023-08-31 18:23:33 +01:00
snipe
e192cbbbe1 Merge pull request #13550 from marcusmoore/remove-dusk
Removed Dusk
2023-08-31 18:06:04 +01:00
snipe
83b178f5b2 Added model name and number to dynamic url
Signed-off-by: snipe <snipe@snipe.net>
2023-08-31 18:03:32 +01:00
Brady Wetherington
3500217f94 Merge branch 'develop' into snipeit_v7_laravel10 2023-08-31 13:07:06 +01:00
snipe
2a1aa53ba6 Merge remote-tracking branch 'origin/develop' 2023-08-31 13:04:56 +01:00
snipe
c51574099f Merge pull request #13507 from Godmartinz/ignore_encrypt_and_other_changes
Added eager loading for `changedinfo` and removed encrypted values from Asset history
2023-08-31 13:04:39 +01:00
snipe
821c3085f0 Merge remote-tracking branch 'origin/develop' 2023-08-31 12:01:58 +01:00
snipe
9a0f691f05 Merge pull request #13546 from snipe/fixes/make_boolean_user_fields_more_consistant
Don’t cast as boolean, do validate as boolean for User validation
2023-08-31 12:01:20 +01:00
Marcus Moore
a799659610 Scaffold tests and add context 2023-08-30 17:33:23 -07:00
Marcus Moore
999605f832 Add failing test 2023-08-30 17:10:50 -07:00
Marcus Moore
5828d29952 Remove Dusk 2023-08-30 16:43:18 -07:00
Marcus Moore
417b2c8331 Update testing documentation 2023-08-30 11:27:26 -07:00
snipe
663faffcc1 Un-cast byod, validate as boolean
Signed-off-by: snipe <snipe@snipe.net>
2023-08-30 19:13:55 +01:00
snipe
fb455be406 Added tests
Signed-off-by: snipe <snipe@snipe.net>
2023-08-30 19:13:38 +01:00
Ivan Nieto Vivanco
3cf9c1fea5 Adds a null coalescing operator to the license seat checkin notification 2023-08-30 11:57:29 -06:00
Ivan Nieto Vivanco
085a993340 Early return if no asset is found 2023-08-30 11:05:58 -06:00
Marcus Moore
07c3fe1fce Update assertions to account for type change 2023-08-30 09:42:53 -07:00
snipe
2a93c38830 Don’t cast as boolean, validate as boolean
Signed-off-by: snipe <snipe@snipe.net>
2023-08-30 16:40:28 +01:00
snipe
587a787b5d Fixed bug introduced in #13528
Signed-off-by: snipe <snipe@snipe.net>
2023-08-30 15:50:28 +01:00
snipe
305804f260 Updated assets
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	config/version.php
#	package-lock.json
#	public/css/dist/all.css
#	public/js/dist/all-defer.js
#	public/mix-manifest.json
2023-08-30 15:50:09 +01:00
snipe
c0cbdb1fc4 Fixed bug introduced in #13528
Signed-off-by: snipe <snipe@snipe.net>
2023-08-30 15:48:35 +01:00
snipe
5cf8c36698 Updated assets
Signed-off-by: snipe <snipe@snipe.net>
2023-08-30 15:43:06 +01:00
snipe
1bcc74f156 Upgrade @fortawesome/fontawesome-free from 6.4.0 to 6.4.2 #13527
Signed-off-by: snipe <snipe@snipe.net>
2023-08-30 15:41:11 +01:00
snipe
9ebcde4472 Upgrade less from 4.1.2 to 4.2.0 #13534
Signed-off-by: snipe <snipe@snipe.net>
2023-08-30 15:40:56 +01:00
snipe
fbc04cfd47 Bumped hash
Signed-off-by: snipe <snipe@snipe.net>
2023-08-30 15:07:38 +01:00
snipe
319cb2305d Merge remote-tracking branch 'origin/develop' 2023-08-30 15:05:46 +01:00
snipe
b109ee281a Merge pull request #13544 from marcusmoore/bug/sc-23675
Fixed user search not adhering to company scoping
2023-08-30 08:54:41 +01:00
Marcus Moore
806ab2cb9d Ensure users are scoped by company in index method 2023-08-29 16:17:29 -07:00
Marcus Moore
aafa1ab70e Add failing test 2023-08-29 16:15:13 -07:00
snipe
22d136df46 Merge pull request #13528 from inietov/fixes/cloning_model_blanks_fieldset
Fixed #12548 Cloning a model blanks fieldset of new one
2023-08-29 19:14:38 +01:00
Godfrey Martinez
0ac5d4d582 Merge pull request #8 from Godmartinz/fix-companyable
Fix companyable
2023-08-28 19:38:27 -07:00
Godfrey Martinez
d86c63cf23 Merge branch 'ignore_encrypt_and_other_changes' into fix-companyable 2023-08-28 19:38:16 -07:00
Godfrey M
74f45a4473 reworks company queries for asset history 2023-08-28 19:35:46 -07:00
Ivan Nieto Vivanco
4e4ba38038 Pass the model_id variable in the controller and get it only if we are cloning the asset model 2023-08-28 16:23:26 -06:00
snipe
18ff810d7e Reverse orderof parent
Signed-off-by: snipe <snipe@snipe.net>
2023-08-28 20:51:52 +01:00
snipe
baffcbad71 Set password property properly
Signed-off-by: snipe <snipe@snipe.net>
2023-08-28 20:47:56 +01:00
snipe
611db4c0d2 Removed stray line
Signed-off-by: snipe <snipe@snipe.net>
2023-08-28 20:46:45 +01:00
snipe
367484a766 Merge pull request #13537 from snipe/fixes/13500_prevent_autocomplete_on_ldap_password
Fixed #13500 - Try to prevent the browser from pre-filling the LDAP password
2023-08-28 20:42:58 +01:00
snipe
0f43388a2b Merge remote-tracking branch 'origin/develop' 2023-08-28 20:40:12 +01:00
snipe
81365ef911 Merge pull request #13518 from marcusmoore/chore/tests-via-github-actions
Run tests for PHP 7.4, 8.0, and 8.1.1 via GitHub Actions
2023-08-28 20:28:42 +01:00
snipe
6020927e24 Merge pull request #13538 from snipe/fixes/13516_use_int_not_string_for_port_default
Fixed #13516 - Use int not string if no DB_PORT specified
2023-08-28 19:38:41 +01:00
snipe
82981290d4 Use int not string if no DB_PORT specified
Signed-off-by: snipe <snipe@snipe.net>
2023-08-28 19:34:08 +01:00
snipe
7787ca328c Try to prevent the browser from pre-filling the LDAP password
Signed-off-by: snipe <snipe@snipe.net>
2023-08-28 18:36:06 +01:00
Godfrey Martinez
92e88a0ae2 Merge branch 'develop' into ignore_encrypt_and_other_changes 2023-08-28 10:14:41 -07:00
Brady Wetherington
427f8b1522 Merge branch 'develop' into snipeit_v7_laravel10
Upgraded composer due to lockfile conflicts
2023-08-28 16:04:21 +01:00
snipe
b93adf44c8 Merge remote-tracking branch 'origin/develop' 2023-08-28 12:41:45 +01:00
snipe
535ca0e3c0 Merge pull request #13535 from snipe/fixes/13521_make_modal_upload_button_wider
Fixed #13521 - make modal “select files” button wider
2023-08-28 12:41:27 +01:00
snipe
582cad2dc5 Fixed #13521 - make modal “select files” button wider
Signed-off-by: snipe <snipe@snipe.net>
2023-08-28 12:37:42 +01:00
snipe
a1897298dc Merge remote-tracking branch 'origin/develop' 2023-08-27 13:56:54 +01:00
snipe
e3a9c34818 Merge pull request #13533 from snipe/improvements/labels_clearer_barcode_text
Clearer labels barcode text
2023-08-26 18:08:10 +01:00
snipe
20e9f05a64 Tighter layout
Signed-off-by: snipe <snipe@snipe.net>
2023-08-26 17:43:02 +01:00
snipe
844fe0938c Added link to the help docs
Signed-off-by: snipe <snipe@snipe.net>
2023-08-26 17:42:56 +01:00
snipe
0a47706e46 Merge remote-tracking branch 'origin/develop' 2023-08-25 15:47:47 +01:00
Ivan Nieto Vivanco
a12a68e4e9 Add a variable so I dont ended rewriting the original model 2023-08-24 15:28:12 -06:00
Ivan Nieto Vivanco
950536f59f Added a condition to send correct model id when cloning one 2023-08-24 15:18:51 -06:00
Godfrey M
e56628499c fixed lost changes 2023-08-24 11:45:23 -07:00
Godfrey M
2b7a899ef8 removed unnecessary code 2023-08-24 11:43:44 -07:00
Godfrey M
0b956b2a46 revert changes of composer.lock 2023-08-24 10:45:59 -07:00
Godfrey M
18cb514a53 revert unwanted changes 2023-08-24 10:40:44 -07:00
Godfrey M
a3b6e0fbe6 adds some spacing 2023-08-24 10:36:09 -07:00
Godfrey M
34ba0c4440 adds id to history info 2023-08-24 10:36:08 -07:00
Godfrey M
739fc152c2 Adds readable asset history in the action log transformer 2023-08-24 10:36:08 -07:00
Godfrey M
011c09a3dd working on getting notifications 2023-08-24 10:35:40 -07:00
Godfrey M
38d5691b88 fix conflicts 2023-08-24 10:35:40 -07:00
Godfrey M
c26ef224f4 fixing my mess 2023-08-24 10:31:01 -07:00
Godfrey M
8ebb9afedd adds min_amt to asset model edit, index, and table 2023-08-24 10:30:07 -07:00
snipe
26dd992d3c Merge pull request #13525 from marcusmoore/bug/sc-23660
Fixed undeclared variable in ActionlogsTransformer
2023-08-24 17:09:30 +01:00
Marcus Moore
e32c07be02 Clear commented log statements 2023-08-24 08:15:40 -07:00
Marcus Moore
5a0b0522b0 Explicitly declare $clean_meta variable 2023-08-24 08:15:07 -07:00
Marcus Moore
20457bd89e Run tests for PHP 7.4, 8.0, and 8.1.1 2023-08-23 15:53:34 -07:00
Ivan Nieto Vivanco
7bfb5a0667 Disable the Checkin All Seats button if License is not reassignable 2023-08-23 16:36:06 -06:00
Ivan Nieto Vivanco
6161a0d76d Add condition in LicenseCheckinController:bulkCheckin method to evaluate if the license is reassignable 2023-08-23 16:22:40 -06:00
Godfrey Martinez
28cf533d19 Merge branch 'develop' into ignore_encrypt_and_other_changes 2023-08-23 00:42:59 -07:00
Godfrey M
0fc79ec936 fixes conflicts 2023-08-23 00:40:59 -07:00
Godfrey M
ffe1b11419 merged develop 2023-08-23 00:38:58 -07:00
Godfrey M
27488c1009 adds soft deletes to eager loading 2023-08-23 00:34:09 -07:00
Godfrey M
ce60db009c adds soft deletes to eager loading 2023-08-23 00:32:43 -07:00
snipe
9f291d7e4b Merge remote-tracking branch 'origin/develop' 2023-08-23 08:21:53 +01:00
snipe
d393bd5c97 Merge pull request #13511 from snipe/fixes/13510_no_translations_in_migrations
Fixed #13510 - do not use translations in migrations
2023-08-23 08:21:18 +01:00
snipe
ea37325806 Remove trans() from default values
Signed-off-by: snipe <snipe@snipe.net>
2023-08-23 08:19:05 +01:00
snipe
31a7758ab1 Merge pull request #13509 from marcusmoore/bug/sc-23636
Fixed asset model query in action log transformer
2023-08-23 06:58:41 +01:00
Marcus Moore
bee680683d Add withTrashed to asset model query 2023-08-22 17:05:06 -07:00
Godfrey M
92ddf8fc67 removed dead space 2023-08-22 12:38:50 -07:00
Godfrey M
1019287c76 retarget key 2023-08-22 12:36:43 -07:00
Godfrey M
9e438c3ed0 eager loaded changedInfo queries, reworked encrypted data change log changes 2023-08-22 12:34:45 -07:00
Godfrey M
c7f2acf2c6 removes encrypted info from change log, renames asset_eol_date in the change log 2023-08-22 11:39:38 -07:00
snipe
79b330f492 Merge pull request #13400 from inietov/fixes/asset_acceptance_user_error
Fixed Asset acceptance error when user company and asset company don't match
2023-08-22 15:49:56 +01:00
snipe
3da21e73e2 Merge pull request #13501 from snipe/fixes/checkbox_layout_in_settings
Small fixes to checkbox layout in general settings blade
2023-08-22 14:12:15 +01:00
snipe
da38945a53 Small fixes to checkbox layout in general settings blade
Signed-off-by: snipe <snipe@snipe.net>
2023-08-22 14:10:39 +01:00
snipe
a48762c64d Merge pull request #13496 from snipe/features/setting_for_name_order
Fixed #13495 added setting for name order
2023-08-22 12:50:58 +01:00
snipe
23237e5cd3 Removed unused translation
Signed-off-by: snipe <snipe@snipe.net>
2023-08-22 12:50:32 +01:00
snipe
aafb7668f5 Merge pull request #13453 from inietov/fixes/accessories_declined_issue
Fixed #13317 Accessories declined by user remain assigned
2023-08-22 12:42:55 +01:00
snipe
bb61134dd5 Merge remote-tracking branch 'origin/develop' 2023-08-22 12:41:27 +01:00
snipe
fea11ec7f1 Merge pull request #12761 from spencerrlongg/bulk_edit_custom_fields
Bulk Editing Custom Fields
2023-08-22 12:40:18 +01:00
snipe
303b45c9e9 Merge pull request #13485 from Godmartinz/history_info_clean_up
Added better handling of information of asset history
2023-08-22 12:25:17 +01:00
snipe
8c7925e703 Merge pull request #13436 from marcusmoore/chore/dependency-updates
Bumped dependencies
2023-08-21 22:58:52 +01:00
Marcus Moore
191c4f959f Bump guzzlehttp/psr7 to 2.4.5 2023-08-21 14:46:08 -07:00
Marcus Moore
1e10a7ee23 Bump nyholm/psr7 to 1.6.1 2023-08-21 14:45:21 -07:00
Marcus Moore
4e8537a1c7 Merge branch 'develop' into chore/dependency-updates
# Conflicts:
#	composer.lock
2023-08-21 14:44:15 -07:00
snipe
24a9deb735 Merge remote-tracking branch 'origin/develop' 2023-08-21 22:35:45 +01:00
Marcus Moore
4e2ef4f056 Default to using the current date if last check in end date is not provided 2023-08-21 14:35:15 -07:00
snipe
79a4d915db Merge pull request #13456 from marcusmoore/fixes/auto-incrementing-on-74
Fixed passing invalid argument to `strpos()`
2023-08-21 22:25:52 +01:00
Marcus Moore
c332b98456 Add last checkin options to report front end 2023-08-21 13:44:49 -07:00
Godfrey M
b54aaefefb adds some spacing 2023-08-21 13:43:06 -07:00
Godfrey M
5076b45a0d adds id to history info 2023-08-21 13:40:39 -07:00
Marcus Moore
6fc06f2ee1 Add simple tests around asset check in 2023-08-21 12:31:51 -07:00
snipe
36a343365e Switched from fullName() to getFullNameAttribute()
Signed-off-by: snipe <snipe@snipe.net>
2023-08-21 20:14:07 +01:00
snipe
c617bf89b6 Tweak layout
Signed-off-by: snipe <snipe@snipe.net>
2023-08-21 20:13:45 +01:00
snipe
ba0643f6a4 Added name display format, tweaked some
Signed-off-by: snipe <snipe@snipe.net>
2023-08-21 20:13:28 +01:00
snipe
bfd674b622 Switched to getFullNameAttribute() from fullName() in User Presenter
Signed-off-by: snipe <snipe@snipe.net>
2023-08-21 20:12:25 +01:00
snipe
d73d15b8a2 Added form macro for name format
Signed-off-by: snipe <snipe@snipe.net>
2023-08-21 20:11:59 +01:00
snipe
8660d41aa3 Changed width of locale field
Signed-off-by: snipe <snipe@snipe.net>
2023-08-21 20:11:45 +01:00
snipe
c39579b170 New strings
Signed-off-by: snipe <snipe@snipe.net>
2023-08-21 20:11:25 +01:00
snipe
354550b52e Removed getCompleteNameAttribute(), modified getFullNameAttribute()
Signed-off-by: snipe <snipe@snipe.net>
2023-08-21 20:11:17 +01:00
snipe
f3460b5a4f Switch to getFullNameAttribute() in user transformer
Signed-off-by: snipe <snipe@snipe.net>
2023-08-21 20:10:48 +01:00
snipe
474c03e3fc Added name order to settings save controller method
Signed-off-by: snipe <snipe@snipe.net>
2023-08-21 20:10:03 +01:00
snipe
749002b768 Added migration to add name order to settings
Signed-off-by: snipe <snipe@snipe.net>
2023-08-21 20:09:48 +01:00
Marcus Moore
489d30c685 Set last_checkin in ui and api controllers 2023-08-21 11:57:33 -07:00
snipe
2346bab8ed Merge pull request #13492 from snipe/features/add_dymo_labelwriter
Added Dymo labelwriter
2023-08-18 23:27:37 +01:00
snipe
45898deb1a Don’t 500 if the 1D barcode doesn’t match the format requested - log an error instead
Signed-off-by: snipe <snipe@snipe.net>
2023-08-18 22:18:38 +01:00
snipe
ffc7c4e99a use number format to constrain large number displays
Signed-off-by: snipe <snipe@snipe.net>
2023-08-18 22:18:09 +01:00
snipe
1e82c2bfad Changed example asset name
Signed-off-by: snipe <snipe@snipe.net>
2023-08-18 22:17:54 +01:00
snipe
d12f4564e1 Added Dymo Labelwriter template
Signed-off-by: snipe <snipe@snipe.net>
2023-08-18 21:44:12 +01:00
snipe
1dcca14c37 Values are not sortable, so don’t show them as sortable
Signed-off-by: snipe <snipe@snipe.net>
2023-08-18 21:21:54 +01:00
snipe
cb3db51fe0 Merge remote-tracking branch 'origin/develop' 2023-08-18 18:42:11 +01:00
snipe
63f847f125 Merge pull request #13491 from snipe/fixes/remove_border_from_default_label
Removed the black label from around the default labels
2023-08-18 18:40:45 +01:00
snipe
d56c671410 Removed the black label from around the default labels
Signed-off-by: snipe <snipe@snipe.net>
2023-08-18 18:39:00 +01:00
snipe
8e9fa613e3 Merge remote-tracking branch 'origin/develop' 2023-08-18 18:14:40 +01:00
snipe
802651a1b4 Merge pull request #13489 from snipe/fixes/override_0_cols_rows_in_default_for_new_engine
Make sure the columns and rows can never be 0
2023-08-18 18:14:01 +01:00
snipe
0cb76a049a Make sure the columns and rows can never be 0
Signed-off-by: snipe <snipe@snipe.net>
2023-08-18 18:13:16 +01:00
snipe
384428148b Merge remote-tracking branch 'origin/develop' 2023-08-18 15:32:33 +01:00
snipe
5645141f93 Merge pull request #13488 from snipe/fixes/13487_supplier_url_in_listing
Fixed #13487 - include supplier url in listing
2023-08-18 15:32:14 +01:00
snipe
da2f22d504 Fixed #13487 - include supplier url in listing
Signed-off-by: snipe <snipe@snipe.net>
2023-08-18 15:31:15 +01:00
Marcus Moore
8b2716d2b7 Fix update statement 2023-08-17 18:33:01 -07:00
Marcus Moore
56fb45f1ea WIP: Add last_checkin to assets table 2023-08-17 18:01:26 -07:00
Godfrey M
a62876d4bc Adds readable asset history in the action log transformer 2023-08-17 16:14:01 -07:00
snipe
0ee032a10d Merge pull request #13391 from Godmartinz/ldap_sync_field_clear_bug
Fixed Ldap sync field clear bug
2023-08-17 17:45:03 +01:00
snipe
03a01c02c4 Merge pull request #13483 from inietov/fixes/default_locations_advanced_search
Fixed #13359 Advanced search by Default Location does not work
2023-08-17 15:15:21 +01:00
Ivan Nieto Vivanco
b607a59875 Add query to search default locations in advanced search 2023-08-16 15:04:17 -06:00
snipe
34f2221b02 Merge pull request #13471 from inietov/fixes/components_search
Fixed #13409 Search in component detail view not working
2023-08-16 21:59:40 +01:00
snipe
b81c6825cf Merge pull request #13476 from uberbrady/accessry_checkin_fix_develop
Accessory checkin via API reported wrong target user
2023-08-16 13:05:54 +01:00
Brady Wetherington
852e9ff311 Accessory checkin via API reported wrong target user 2023-08-16 13:03:37 +01:00
Ivan Nieto Vivanco
92df32dfaa Move a couple assignation of variables inside an else to only execute once 2023-08-15 21:10:48 -06:00
snipe
8810059427 Merge remote-tracking branch 'origin/develop' 2023-08-16 01:40:06 +01:00
snipe
eacbde37e2 Merge pull request #13473 from snipe/fixes/check_for_company_on_labels
Check that there is a company before trying to get name property
2023-08-16 01:27:48 +01:00
snipe
74384f14e4 Use clearer translation (from original PR)
Signed-off-by: snipe <snipe@snipe.net>
2023-08-16 01:25:13 +01:00
snipe
027afa71f1 Check that there is a company before trying to get name property
Signed-off-by: snipe <snipe@snipe.net>
2023-08-16 01:09:22 +01:00
Ivan Nieto Vivanco
993918f47c Add query to search into the per-component view 2023-08-15 15:31:36 -06:00
Brady Wetherington
8b52bad16f Merge branch 'develop' into snipeit_v7_laravel10 2023-08-15 21:25:16 +01:00
Ivan Nieto Vivanco
25c58a8486 Fix typo in language variable name 2023-08-15 14:17:39 -06:00
snipe
7eaf3174ab Merge pull request #13457 from snipe/fixes/remove_autocomplete_off_on_login
Fixed #13365 - Added LOGIN_AUTOCOMPLETE as env var
2023-08-15 20:55:05 +01:00
snipe
2848465dd2 Merge remote-tracking branch 'origin/develop' 2023-08-15 20:42:36 +01:00
snipe
297390ae63 Merge pull request #13470 from snipe/fixes/13464_typo_in_accessories_clone
Fixed #13464 typo in accessories clone
2023-08-15 20:41:54 +01:00
snipe
01ab360ef3 Fixed accessory clone typo
Signed-off-by: snipe <snipe@snipe.net>
2023-08-15 20:39:09 +01:00
snipe
1c2f3cd552 Fixed translation typo
Signed-off-by: snipe <snipe@snipe.net>
2023-08-15 20:39:00 +01:00
snipe
06ed8b2f2d Merge remote-tracking branch 'origin/develop' 2023-08-15 20:31:00 +01:00
snipe
bc4a47421a Merge pull request #13469 from snipe/fixes/missed_one_checkbox_in_label
Fixed checkboxes for accessibility
2023-08-15 20:30:39 +01:00
snipe
0763b5135d Fixed checkboxes
Signed-off-by: snipe <snipe@snipe.net>
2023-08-15 20:28:16 +01:00
snipe
253975ce72 Updated translation
Signed-off-by: snipe <snipe@snipe.net>
2023-08-15 20:27:55 +01:00
snipe
9af850dbaa Re-apply a change that was dropped
Signed-off-by: snipe <snipe@snipe.net>
2023-08-15 20:27:47 +01:00
snipe
96b616be89 Downgraded TCPDF
Signed-off-by: snipe <snipe@snipe.net>
2023-08-15 20:11:56 +01:00
snipe
2b9f8ce4a6 Merge pull request #13467 from snipe/fixes/more_label_html_tweaks
Fixes more label html tweaks
2023-08-15 20:05:03 +01:00
snipe
fa6c8d864e Restore label engine checkbox
Signed-off-by: snipe <snipe@snipe.net>
2023-08-15 20:04:19 +01:00
snipe
c957f136aa More label tweaks
Signed-off-by: snipe <snipe@snipe.net>
2023-08-15 20:03:40 +01:00
snipe
697dc10d76 More label tweaks
Signed-off-by: snipe <snipe@snipe.net>
2023-08-15 20:03:32 +01:00
snipe
2ddf5c9a0b Merge pull request #13463 from uberbrady/fix_api_accessory_checkin
Accessory checkin via API reported wrong target user
2023-08-15 19:24:45 +01:00
snipe
949a88e560 Merge remote-tracking branch 'origin/develop' 2023-08-15 18:55:39 +01:00
snipe
d47b502d86 Merge pull request #13466 from snipe/fixes/weird_label_engine_layout
Fixes weird label engine layout
2023-08-15 18:52:54 +01:00
snipe
6b02184e99 Fixed weird layout with checkbox
Signed-off-by: snipe <snipe@snipe.net>
2023-08-15 18:48:20 +01:00
snipe
64342838fd Return the user to the labels page on save
Signed-off-by: snipe <snipe@snipe.net>
2023-08-15 18:48:12 +01:00
snipe
28b1461cb4 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	public/mix-manifest.json
2023-08-15 18:21:51 +01:00
snipe
346f243bc0 Merge pull request #13465 from snipe/fixes/parse_error_in_helper
Fixed unclosed brace
2023-08-15 18:14:55 +01:00
snipe
443adc50da Fixed unclosed brace
Signed-off-by: snipe <snipe@snipe.net>
2023-08-15 18:12:25 +01:00
snipe
cebf0e0de1 Add @cram42 as a contributor 2023-08-15 18:07:56 +01:00
snipe
e41368daac Merge pull request #12050 from cram42/develop
New Label Engine
2023-08-15 17:58:57 +01:00
Godfrey M
d1efca2ae1 fixes conflicts 2023-08-15 09:28:42 -07:00
Brady Wetherington
7504c0df13 Accessory checkin via API reported wrong target user 2023-08-15 14:19:36 +01:00
snipe
1c02a7d590 Merge remote-tracking branch 'origin/develop' 2023-08-15 13:26:40 +01:00
snipe
c56f664811 Merge pull request #13442 from Robert-Azelis/Robert-Azelis-patch-add_email_to_companies
Add email to companies
2023-08-15 13:26:20 +01:00
snipe
8e0b7bee41 Merge remote-tracking branch 'origin/develop' 2023-08-15 13:23:23 +01:00
snipe
6f373aed33 Merge pull request #13461 from snipe/localization/new_translations
Updated language strings from CrowdIn
2023-08-15 13:22:14 +01:00
snipe
d1ce1b6f18 Updated language strings from CrowdIn
Signed-off-by: snipe <snipe@snipe.net>
2023-08-15 13:21:35 +01:00
Ivan Nieto Vivanco
71cb16118d Change error string for a better (?) one 2023-08-14 20:52:00 -06:00
Ivan Nieto Vivanco
d365565b6d Add message in the acceptance assets view to indicate when the user can\'t accept nor deny the asset 2023-08-14 20:51:04 -06:00
snipe
24a3e0ee83 Added LOGIN_AUTOCOMPLETE as env var
Signed-off-by: snipe <snipe@snipe.net>
2023-08-15 01:56:01 +01:00
Marcus Moore
dc1a8840f1 Ensure empty string is not passed to strpos() 2023-08-14 16:40:34 -07:00
Ivan Nieto Vivanco
96440834bd Move the declinedCheckout function so it don/'t separate the class properties 2023-08-14 16:16:28 -06:00
snipe
642a09f139 Merge remote-tracking branch 'origin/develop' 2023-08-14 23:12:07 +01:00
snipe
d3fbbec92c Merge pull request #13455 from snipe/fixes/confusion_around_localization_date
Fixed #13382 - confusion around localization date
2023-08-14 22:50:30 +01:00
snipe
9820ab34d7 Use today’s date for date format selectlist
Signed-off-by: snipe <snipe@snipe.net>
2023-08-14 22:44:29 +01:00
snipe
aa333bcf0b Merge pull request #13448 from Godmartinz/status-label-translations_fix
Fixed #13446 - added translations to status label type column
2023-08-14 22:25:46 +01:00
snipe
ba56746f57 Merge pull request #13437 from marcusmoore/feature/improve-user-factory
Allowed permissions in the user factory to be chained
2023-08-14 22:23:55 +01:00
snipe
716e13e5b1 Merge remote-tracking branch 'origin/develop' 2023-08-14 22:23:06 +01:00
snipe
dcec4ba5e2 Merge pull request #13454 from snipe/fixes/13450_removed_escaping_custom_fieldsets
Fixed #13450 - remove escaping on saveing new custom fields
2023-08-14 22:22:35 +01:00
snipe
12e9d2adeb Fixed #13450 - remove escaping on saveing new custom fields
Signed-off-by: snipe <snipe@snipe.net>
2023-08-14 22:21:41 +01:00
Ivan Nieto Vivanco
8da2a8a79c Allows to save signature for declined items 2023-08-14 14:58:10 -06:00
Ivan Nieto Vivanco
4796598bb6 Add declinedCheckout method to Accessory model 2023-08-14 14:35:31 -06:00
Godfrey M
c3356ab765 fixed translation choice and color choice 2023-08-14 12:20:46 -07:00
Godfrey M
4446b2311d remove unnecessary changes 2023-08-14 12:14:15 -07:00
Godfrey M
6b94ef6adc fixes the statuslabeltypeforatter instead of the model 2023-08-14 12:13:01 -07:00
Godfrey M
a0d5774635 adds translations to status label type column 2023-08-14 10:42:17 -07:00
snipe
ec2556f991 Merge remote-tracking branch 'origin/develop' 2023-08-14 13:02:45 +01:00
snipe
291fa1cd29 Merge pull request #13445 from snipe/fixes/typo_in_formatter_for_asset_maintenances
Fixed case in BS table formatter for boolean
2023-08-14 13:02:27 +01:00
snipe
58286c9cab Fixed case in BS table formatter for boolean
Signed-off-by: snipe <snipe@snipe.net>
2023-08-14 13:01:32 +01:00
Robert-Azelis
1e43d88e06 Create 2023_08_13_172600_add_email_to_companies.php 2023-08-13 17:25:33 +02:00
Robert-Azelis
da701677c7 Update edit.blade.php 2023-08-13 17:24:17 +02:00
Robert-Azelis
30d33310ae Update CompanyPresenter.php 2023-08-13 17:23:33 +02:00
Robert-Azelis
bbb8ecfee4 Update Company.php 2023-08-13 17:21:55 +02:00
Robert-Azelis
8988a5dfc3 Update CompaniesTransformer.php 2023-08-13 17:20:15 +02:00
Robert-Azelis
ed5b4ca0a2 Update CompaniesController.php 2023-08-13 17:18:25 +02:00
Robert-Azelis
07bafa9508 Update CompaniesController.php 2023-08-13 17:15:20 +02:00
snipe
6134dfa8f2 Merge remote-tracking branch 'origin/develop' 2023-08-11 09:42:30 +01:00
snipe
a1cfa45344 Merge pull request #13439 from snipe/fixes/500_error_when_cloning_invalid_accessory
Fixed route for accessory index
2023-08-11 09:42:00 +01:00
snipe
df8f6a8d2b Correctly call the route for accessory index
Signed-off-by: snipe <snipe@snipe.net>
2023-08-11 09:40:49 +01:00
Marcus Moore
5b86c02366 Set permissions to empty object in user factory 2023-08-10 16:55:44 -07:00
Marcus Moore
41479b1ec7 Allow permissions in the user factory to be chained 2023-08-10 16:35:10 -07:00
Marcus Moore
3a2b15313c Bump guzzlehttp/psr7 to 2.4.5 2023-08-10 11:53:20 -07:00
Marcus Moore
6b6bb61400 Bump nyholm/psr7 to 1.6.1 2023-08-10 11:52:42 -07:00
snipe
6adaa32286 Merge pull request #13431 from marcusmoore/feature/custom-report-scoping
Removed unneeded `Company::scopeCompanyables` from `ReportsController`
2023-08-10 09:57:53 +01:00
snipe
a599f0c923 Merge pull request #13434 from marcusmoore/chore/improve-test-stability
Improved test stability and messaging
2023-08-10 09:57:26 +01:00
snipe
4db4bf7be4 Merge pull request #13432 from marcusmoore/chore/remove-old-testing-code
Removed unused Codeception test code
2023-08-10 09:57:11 +01:00
Marcus Moore
04661d5441 Add help text to response assertion helpers 2023-08-09 17:09:31 -07:00
Marcus Moore
3a5ed031bf Escape values in response assertion helpers 2023-08-09 17:08:49 -07:00
Marcus Moore
60baaae192 Remove unused test bootstrap file 2023-08-09 16:22:58 -07:00
Marcus Moore
8508594a2f Remove old and unused Codeception test code 2023-08-09 13:32:15 -07:00
Marcus Moore
e0b464dcec Merge branch 'develop' into feature/custom-report-scoping 2023-08-09 13:03:05 -07:00
snipe
7df3be3a54 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
2023-08-09 10:54:49 +01:00
snipe
bd3ba9a5f7 Merge pull request #13428 from snipe/security/update_autotable
Updated autotable
2023-08-09 10:49:01 +01:00
snipe
a65ac1ccdf Updated autotable
Signed-off-by: snipe <snipe@snipe.net>
2023-08-09 10:47:45 +01:00
snipe
ffabc9c331 Merge pull request #13414 from marcusmoore/fixes/chipperci-config
Fixes ChipperCi Pipeline
2023-08-09 10:37:21 +01:00
snipe
a6a742d8d8 Merge pull request #13407 from marcusmoore/feature/sc-23465
Added messaging to category edit page to improve clarity around when users will be emailed
2023-08-09 10:36:19 +01:00
Marcus Moore
2e632a3d2d Improve test readability 2023-08-08 17:40:02 -07:00
Marcus Moore
c32f099053 Remove unneeded call to Company::scopeCompanyables 2023-08-08 17:22:15 -07:00
Marcus Moore
c752e1670c Add test around company scoping in custom report 2023-08-08 17:21:39 -07:00
Marcus Moore
1405e17251 Add simple test around custom asset report response 2023-08-08 17:10:36 -07:00
snipe
15122bbb55 Merge pull request #13425 from snipe/security/upgrade_webpack_snyk_13416
Updated webpack
2023-08-08 22:24:59 +01:00
snipe
c18349d75f Updated webpack
Signed-off-by: snipe <snipe@snipe.net>
2023-08-08 22:07:49 +01:00
snipe
70903f068c Merge remote-tracking branch 'origin/develop' 2023-08-08 19:01:40 +01:00
snipe
521961457d Merge pull request #13424 from snipe/bug/sc-23552
Fixed tooltip not loading on encrypted field lock icon on asset detail view
2023-08-08 19:00:56 +01:00
snipe
6a3a38b6f6 Call tooltip again on custom fields jquery
Signed-off-by: snipe <snipe@snipe.net>
2023-08-08 18:53:57 +01:00
snipe
40aca9709a Added container to the tooltip invocation
Signed-off-by: snipe <snipe@snipe.net>
2023-08-08 18:52:26 +01:00
snipe
5a43c5906f Merge remote-tracking branch 'origin/develop' 2023-08-08 17:54:17 +01:00
snipe
9e6f23c8c7 Merge pull request #13421 from uberbrady/re_add_asset_eol_date
Re-add the option for asset_eol_date as an import field
2023-08-08 17:52:05 +01:00
Brady Wetherington
6afbf1b152 Re-add the option for asset_eol_date as an import field 2023-08-08 17:45:33 +01:00
snipe
4b2bf057c7 Merge remote-tracking branch 'origin/develop' 2023-08-08 12:57:27 +01:00
snipe
af91ffb2da Merge pull request #13418 from snipe/fixes/add_mailgun_endpoint
Added mailgun endpoint option, defaulting to the US
2023-08-08 12:56:37 +01:00
snipe
94bef046b8 Added mailgun endpoint option, defaulting to the US
Signed-off-by: snipe <snipe@snipe.net>
2023-08-08 12:50:38 +01:00
snipe
3091d2cdf0 Merge remote-tracking branch 'origin/develop' 2023-08-08 08:19:15 +01:00
snipe
bd4061e023 Change text on dropdown
Signed-off-by: snipe <snipe@snipe.net>
2023-08-08 08:18:56 +01:00
snipe
5bda73f151 Ugh - messing with the blade layout
Signed-off-by: snipe <snipe@snipe.net>
2023-08-08 08:18:40 +01:00
Marcus Moore
42055bb69d Add authentication and authorization tests for department index method 2023-08-07 17:42:28 -07:00
Marcus Moore
7c5a1b376e Remove redundant Company::scopeCompanyables wrapper 2023-08-07 16:54:23 -07:00
Marcus Moore
f7b2075e9e Add CompanyableTrait to Department 2023-08-07 16:54:02 -07:00
Marcus Moore
cdfe8e459d Add simple test cases for api department index 2023-08-07 16:36:01 -07:00
Marcus Moore
b56bcd3596 Troubleshooting pipeline: create both .env and .env.testing 2023-08-07 11:59:58 -07:00
Marcus Moore
999605b591 Troubleshooting pipeline: create .env.testing in place of .env 2023-08-07 11:57:34 -07:00
Marcus Moore
d3a45f73cf Troubleshooting pipeline: re-add creating .env.testing 2023-08-07 11:48:09 -07:00
Marcus Moore
0d40979724 Troubleshooting pipeline: Remove commented commands 2023-08-07 11:36:51 -07:00
Marcus Moore
81efa7d84e Revert "Troubleshooting pipeline: use phpunit in place of artisan test"
This reverts commit a7d1657111.
2023-08-07 11:35:18 -07:00
Marcus Moore
a7d1657111 Troubleshooting pipeline: use phpunit in place of artisan test 2023-08-07 11:31:00 -07:00
Marcus Moore
8ea8ff05e5 Troubleshooting pipeline: fix filename 2023-08-07 11:26:04 -07:00
Marcus Moore
6398805fc3 Troubleshooting pipeline: use .env.testing in place of .env.example 2023-08-07 11:24:38 -07:00
Marcus Moore
119ed9c882 Troubleshooting pipeline: remove comment to trigger build 2023-08-07 11:09:10 -07:00
snipe
32d8d8c50e Merge pull request #13397 from uberbrady/fix_locationless_ldap_sync
Fixed #13372: Put guard around assigning location via LDAP
2023-08-07 17:06:58 +01:00
Marcus Moore
ae9cf1e5b6 Formatting 2023-08-02 18:24:32 -07:00
Ivan Nieto Vivanco
053d3fc9ed Prevent asset to be checked out if full company support is enabled and companies not match 2023-08-02 19:23:28 -06:00
Marcus Moore
d019e62d39 Remove lazy from eula field to avoid race condition 2023-08-02 18:22:40 -07:00
Ivan Nieto Vivanco
9ca163e8cf Stop asset acceptances from shown to user if full company support is enabled and companies not match 2023-08-02 19:22:35 -06:00
Marcus Moore
b70a5280f9 Remove unneed jquery 2023-08-02 18:04:21 -07:00
Marcus Moore
cbe5a9bc8a Persist eula text even when field is disabled 2023-08-02 18:03:09 -07:00
Marcus Moore
3fd0853fd0 Ensure eula field enabled when not using default eula 2023-08-02 18:02:56 -07:00
Marcus Moore
2e7aa01abe Pass checkin_email value to backend even when unchecked 2023-08-02 17:45:39 -07:00
Marcus Moore
896f038054 Set send email back to original value when eulas cleared 2023-08-02 17:03:56 -07:00
Marcus Moore
48979ce177 Disable send email when it should not be modified 2023-08-02 16:52:56 -07:00
Marcus Moore
e12935f7fa Disable eula textarea when using global eula 2023-08-02 16:18:57 -07:00
Marcus Moore
6400034435 Improve variable name 2023-08-02 16:06:59 -07:00
Marcus Moore
269414e4f2 Automatically check the send email to user checkbox in certain conditions 2023-08-02 16:04:01 -07:00
Marcus Moore
dee6ebf8e0 Scaffold component test 2023-08-02 12:58:07 -07:00
Marcus Moore
105c94aea9 Implement toggling message when email will be sent 2023-08-02 11:36:20 -07:00
snipe
c52a1f94dc Merge remote-tracking branch 'origin/develop' 2023-08-02 15:19:23 +01:00
Brady Wetherington
0af205dade Put guard around assigning location via LDAP 2023-08-02 15:01:14 +01:00
Marcus Moore
6349d52803 WIP: migrate to livewire 2023-08-01 17:29:23 -07:00
Marcus Moore
65de9c5e07 Extract translation strings 2023-08-01 15:21:49 -07:00
Marcus Moore
ebfc395e78 Improve messaging 2023-08-01 14:39:30 -07:00
Marcus Moore
5c8c2ca027 Improve variable names 2023-08-01 14:26:21 -07:00
snipe
924f5287f7 Merge pull request #13392 from Godmartinz/change_webhook_variable_type
Fixed `webhook_endpoint` data type from varchar to a text
2023-08-01 20:28:39 +01:00
Godfrey M
7560afb8c4 changes webhook_endpoint var to a text 2023-08-01 10:45:39 -07:00
Godfrey M
8a24a47475 removed unnecessary code 2023-08-01 09:45:48 -07:00
Godfrey M
fb52038e7c applies a check if a sync field is designated 2023-08-01 09:39:58 -07:00
Brady Wetherington
daed0b60bc Merge branch 'develop' into snipeit_v7_laravel10 2023-07-31 19:40:56 +01:00
snipe
ffb605a37c Merge pull request #13309 from inietov/fixes/checkout_range_doesnt_include_today
Fixed #13300 Custom Asset Report, Checkout date range never includes current day
2023-07-31 15:04:22 +01:00
Brady Wetherington
4654f7aa37 Porting Snipe-IT v7 to Laravel v10 2023-07-31 14:07:12 +01:00
snipe
343aacab85 Merge pull request #13386 from snipe/security/dep_updates
Updated BS table and table export plugins
2023-07-31 13:46:41 +01:00
snipe
96d69b654d Updated BS table and table export plugins
Signed-off-by: snipe <snipe@snipe.net>
2023-07-31 13:45:15 +01:00
snipe
2e1c3fb51b Merge pull request #13295 from inietov/fixes/admins_cannot_view_encrypted_fields
Fixed #11794 Admins Cannot View Encrypted Field
2023-07-31 13:08:28 +01:00
snipe
3e4b371bf4 Merge pull request #13379 from inietov/fixes/component_checkout_via_api_returns_error
Fixed #13376 Component checkout via API returns error
2023-07-31 13:07:38 +01:00
Grant Le Roux
b1464e028c Merge branch 'develop' into develop 2023-07-31 07:57:29 +08:00
Ivan Nieto Vivanco
0a841ddbb8 Change component validator to the correct asset id we're passing in the API call 2023-07-27 20:22:13 -06:00
Brady Wetherington
70e87dad1c Merge branch 'develop' into snipeit_v7 2023-07-27 16:21:31 +01:00
snipe
af86c6138d Merge pull request #13361 from Godmartinz/bug/sc-19126
Fixed custom fieldset order
2023-07-26 08:55:18 +01:00
snipe
f6545be410 Merge pull request #13363 from inietov/fixes/no_records_found_multipage_license_seats
Fixed #13298 "No records Found" when Switching between Single and Multi-Page Licenses
2023-07-26 08:48:44 +01:00
Ivan Nieto Vivanco
c015264181 Adjust the license offset if it exceeds the total of license seats 2023-07-25 16:23:33 -06:00
Godfrey M
9c6e8d57aa removes typos 2023-07-25 11:44:16 -07:00
Godfrey M
11e3487263 custom field set order starts at 1 now 2023-07-25 11:41:08 -07:00
snipe
a01cb26aac Merge pull request #12940 from akemidx/delete_asset_from_view_page
Delete button on asset view page
2023-07-25 12:11:35 +01:00
akemidx
e289e95721 no ? needed 2023-07-24 17:22:10 -04:00
akemidx
b082d27c42 removing :item 2023-07-24 17:12:12 -04:00
snipe
ff3bdebb9a Merge remote-tracking branch 'origin/develop' 2023-07-24 13:27:35 +01:00
snipe
39ea15a27a Merge pull request #13347 from snipe/fixes/custom_report_error_on_bad_model
Possible alternative to fixing #13296 - custom report failing when th…
2023-07-21 15:18:16 +01:00
snipe
f699d9680b Merge remote-tracking branch 'origin/develop' 2023-07-21 15:00:23 +01:00
snipe
4fe6632167 Merge pull request #13349 from snipe/fixes/check_for_valid_model
Fixed: tighter check for valid model
2023-07-21 14:52:00 +01:00
snipe
1a771e6ab9 Check that the model is valid before trying to chain the relationship
Signed-off-by: snipe <snipe@snipe.net>
2023-07-21 14:46:58 +01:00
snipe
7f761000b4 Use slightly less terrifying and more accurate language
Signed-off-by: snipe <snipe@snipe.net>
2023-07-21 14:46:39 +01:00
Ivan Nieto Vivanco
cb4ed92639 Use Carbon date objects instead of casting using DB::raw() 2023-07-20 16:17:06 -06:00
snipe
540b09c506 Possible alternative to fixing #13296 - custom report failing when the model is busted
Related: https://github.com/snipe/snipe-it/pull/13297
Signed-off-by: snipe <snipe@snipe.net>
2023-07-20 17:45:45 +01:00
Brady Wetherington
ba8d8a6f05 Merge branch 'develop' into snipeit_v7 2023-07-20 17:16:04 +01:00
snipe
d26bc19e3f Merge remote-tracking branch 'origin/develop' 2023-07-20 16:34:16 +01:00
snipe
0b8a3ee9a5 Merge pull request #13346 from snipe/fixes/depreciable
Check that $this->get_depreciation() returns
2023-07-20 16:33:15 +01:00
snipe
1e09320ebe Check that $this->get_depreciation() returns
Signed-off-by: snipe <snipe@snipe.net>
2023-07-20 16:30:07 +01:00
snipe
19df0b82b1 Merge remote-tracking branch 'origin/develop' 2023-07-20 14:06:45 +01:00
snipe
ee36497acf Merge pull request #13344 from snipe/fixes/added_manufacturer_to_licenses
Fixes bug/sc-23509: Added manufacturer back into license importer
2023-07-20 14:05:19 +01:00
snipe
d7ac8ef618 Added manufacturer to licenses
Signed-off-by: snipe <snipe@snipe.net>
2023-07-20 14:02:54 +01:00
snipe
244e4ec11f Added manufacturer back into license importer
Signed-off-by: snipe <snipe@snipe.net>
2023-07-20 13:48:51 +01:00
snipe
917005ceb4 Merge pull request #13342 from Loemnk/develop
Fixes #13341: Clean up correct seats on license delete
2023-07-20 13:05:31 +01:00
Tobias Franzius
90a344af0b Fixes #13341 Clean up correct seats on license delete
Before this, we checked for the `id` collumn in the `license_seats` table, insteasd of
using `license_id` for this.

This way, we ensure that we only alter seats belonging to the correct license.
2023-07-20 13:48:57 +02:00
Ivan Nieto Vivanco
ecf522243b Add the new rule to proper views and also in the Asset Transformer 2023-07-19 19:52:03 -06:00
Ivan Nieto Vivanco
705411eb4d Create the Gate that goes with the permission 2023-07-19 19:44:59 -06:00
Ivan Nieto Vivanco
3b4a2b0f5b Add permission to view and modify encrypted custom fields 2023-07-19 14:57:57 -06:00
snipe
a19a508a80 Merge pull request #13197 from akemidx/current_value_for_assets
Current value added to asset index page
2023-07-19 19:06:15 +01:00
akemidx
9e2987e680 changing book value to be NOT searchable or sortable 2023-07-19 13:44:31 -04:00
snipe
b54e7dc3ee Fixed #13336 - Save unhashed password if no password provided
Signed-off-by: snipe <snipe@snipe.net>
2023-07-19 17:44:40 +01:00
snipe
1e1aea2eb0 Merge pull request #13299 from ubc-cpsc/bugfix/CVE-2023-37260
Update league/oauth2-server for CVE-2023-3726
2023-07-19 13:14:35 +01:00
Brady Wetherington
605d267fe8 Merge branch 'develop' into snipeit_v7 2023-07-19 11:47:51 +01:00
snipe
33fd904c18 Merge pull request #13330 from akemidx/merge_users_typo
merge users page typo fix
2023-07-19 10:26:57 +01:00
snipe
74a5bcd490 Merge remote-tracking branch 'origin/develop' 2023-07-19 09:01:19 +01:00
snipe
dc20305db6 Merge pull request #13333 from snipe/fixes/strtolower_on_catgories
Added strtolower for category type
2023-07-19 09:00:55 +01:00
snipe
a0a5ca1f40 Added strtolower for category type
Signed-off-by: snipe <snipe@snipe.net>
2023-07-19 08:56:17 +01:00
akemidx
064e696521 merge users page typo fix 2023-07-18 15:33:33 -04:00
snipe
c1949ffb0d Merge pull request #13319 from marcusmoore/chore/user-search-test-cases
Added test cases around user search
2023-07-18 13:27:22 +01:00
snipe
bc91181917 Merge remote-tracking branch 'origin/develop' 2023-07-18 13:27:05 +01:00
snipe
18e2ec4dad Merge pull request #13310 from marcusmoore/bug/sc-23478
Fixed the inability to load location select when editing profile
2023-07-18 13:26:30 +01:00
snipe
92e7e79faf Merge remote-tracking branch 'origin/develop' 2023-07-18 13:25:34 +01:00
snipe
6f8c3ca167 Merge pull request #13322 from uberbrady/fix_ldap_location_3
Fix to ldap_location attribute
2023-07-18 13:24:59 +01:00
snipe
1fa703387a Merge remote-tracking branch 'origin/develop' 2023-07-18 11:30:53 +01:00
snipe
cbdce994b8 Merge pull request #13318 from inietov/fixes/employee_id_not_importing
Fixed Employee Number no longer importing [sc-23497]
2023-07-18 11:08:43 +01:00
Brady Wetherington
051830dff4 Fix to ldap_location attribute 2023-07-17 20:42:02 +01:00
Marcus Moore
2eaab6d9fb Change message to a callout 2023-07-17 12:23:31 -07:00
Marcus Moore
fa0a88289a Add tests around user search
Follow up to #13311
2023-07-17 11:29:22 -07:00
Ivan Nieto Vivanco
88c40c9c14 Change the field name to the same the model uses 2023-07-17 12:08:10 -06:00
snipe
3203f8f97c Merge remote-tracking branch 'origin/develop' 2023-07-15 10:48:09 +01:00
snipe
f15e14f905 Merge pull request #13315 from snipe/features/add_warranty_link_even_if_no_warranty_set
Moved warranty into manufactuer’s section
2023-07-15 10:47:44 +01:00
snipe
c21a7db3c1 Moved warranty into manufactuer’s section
Signed-off-by: snipe <snipe@snipe.net>
2023-07-15 10:45:36 +01:00
snipe
8bc8ecfc67 Merge remote-tracking branch 'origin/develop' 2023-07-14 09:39:26 +01:00
snipe
bb0eaf8b8d Merge pull request #13312 from snipe/features/add_show_hide_option_on_custom_fields
Added ability to show/hide custom fields in list views by default
2023-07-14 09:38:35 +01:00
snipe
3078cab7ee Added ability to show/hide custom fields in list views by default
Signed-off-by: snipe <snipe@snipe.net>
2023-07-14 09:09:43 +01:00
snipe
db8c37cd5b Merge remote-tracking branch 'origin/develop' 2023-07-14 08:26:12 +01:00
snipe
15bb943210 Merge pull request #13311 from snipe/fixes/deleted_users_showing_in_current_users
Fixed: deleted users showing in current users
2023-07-14 07:47:36 +01:00
snipe
f51dd15893 Moved deleted scope down
Signed-off-by: snipe <snipe@snipe.net>
2023-07-14 07:44:19 +01:00
Marcus Moore
346ace9444 Allow users that have permission to edit their own location to see locations in select list 2023-07-13 17:37:46 -07:00
Ivan Nieto Vivanco
ecac4718fe Add date casting to the SQL query, so the BETWEEN range doesn't care about time of day in custom report datetimes 2023-07-13 16:02:47 -06:00
snipe
4027acee46 Merge pull request #13184 from akemidx/department_in_side_bar
User department now visible in side pane of asset view page
2023-07-13 21:01:48 +01:00
snipe
43d419f051 Merge remote-tracking branch 'origin/develop' 2023-07-13 13:18:52 +01:00
snipe
5aa99a15d8 Merge pull request #13288 from snipe/fixes/line_based_markdown
Added Inline markdown method
2023-07-13 13:16:50 +01:00
snipe
016502f637 Added notesFormatter
Signed-off-by: snipe <snipe@snipe.net>
2023-07-13 13:14:10 +01:00
snipe
66875ff0dc Merge remote-tracking branch 'origin/develop' 2023-07-13 12:59:30 +01:00
snipe
5d1f294f0e Added parseEscapedMarkedownInline to accessories API
Signed-off-by: snipe <snipe@snipe.net>
2023-07-13 12:03:01 +01:00
snipe
981c3a430d Merge pull request #13301 from uberbrady/better_auto_increment_tags
Better auto increment asset-tags [FD-32892]
2023-07-13 09:49:44 +01:00
Joël Pittet
24adcdb586 Revert lock file changes for PHP 7 support 2023-07-12 17:58:52 -07:00
akemidx
1163af3c10 change to make sure department actually exists 2023-07-12 15:57:44 -04:00
snipe
232e84acf7 Merge pull request #13302 from snipe/features/env_setting_for_bs_tables
Fixed #13256 - Added option to switch to localStorage instead of cookies
2023-07-12 20:10:33 +01:00
snipe
5d60a38a0e Added comment with link
Signed-off-by: snipe <snipe@snipe.net>
2023-07-12 20:08:20 +01:00
snipe
c1c2c38995 Fixed #13256 - Added option to switch to localStorage instead of cookies
Signed-off-by: snipe <snipe@snipe.net>
2023-07-12 20:06:17 +01:00
snipe
8c74e906ef Merge remote-tracking branch 'origin/develop' 2023-07-12 19:22:49 +01:00
snipe
3a6d8ef684 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
2023-07-12 19:22:34 +01:00
snipe
44231fa52c Merge pull request #13225 from inietov/fixes/change_default_location_at_checkin
Fixed #13167 Default location not being set/updated upon check-in
2023-07-12 19:14:53 +01:00
snipe
44b8558e38 Merge pull request #13233 from Godmartinz/barcode_adjusts_if_qr_code_
fixed margin if qr_code present
2023-07-12 17:11:58 +01:00
snipe
d3c44a462e Merge pull request #13268 from inietov/fixes/license_importer_missing_dropdown_items
Fixed License importer missing Checkout to: Username and Checkout to: Email in dropdown [sc-23456]
2023-07-12 17:11:27 +01:00
snipe
a569a99e61 Used inline markdown in views
Signed-off-by: snipe <snipe@snipe.net>
2023-07-12 16:57:04 +01:00
Brady Wetherington
e648da9dc5 Also do a sanity-check that the normal asset autoincrementing works 2023-07-12 16:51:23 +01:00
Brady Wetherington
76191a09ed Improvements to asset_tag auto-incrementing, with auto-fixups for gaps 2023-07-12 16:39:45 +01:00
snipe
1b8b117f4e Merge pull request #13292 from marcusmoore/guard-against-wiping-local-db
Avoid accidentally wiping local database when running tests
2023-07-12 15:23:11 +01:00
Marcus Moore
3df175fb3e Improve variable name 2023-07-11 16:36:38 -07:00
Marcus Moore
44d8b2fd5e Handle default eula checkbox 2023-07-11 16:36:03 -07:00
Ivan Nieto Vivanco
e0df8cc4aa Add admin role to show encrypted customfield values 2023-07-11 17:21:32 -06:00
Marcus Moore
af681d8190 Display message and update checkbox depending on EULA status 2023-07-11 16:12:43 -07:00
snipe
2bc4235368 Merge pull request #13293 from marcusmoore/run-chipper-on-all-prs
Run ChipperCI on all PRs (take three)
2023-07-11 20:36:49 +01:00
Marcus Moore
5b33c00e9f Run ChipperCI on all PRs 2023-07-11 12:34:39 -07:00
Marcus Moore
48e4ec8cf5 Guard against wiping database when running tests and test specific envs are not created 2023-07-11 12:16:37 -07:00
snipe
b5695c9ab7 Test parsedown in notes
Signed-off-by: snipe <snipe@snipe.net>
2023-07-11 12:20:47 +01:00
snipe
6d3bf1e5f5 Added additional method for inline
Signed-off-by: snipe <snipe@snipe.net>
2023-07-11 11:41:58 +01:00
snipe
9b5a67e31f Use $Parsedown->line instead of $Parsedown->text
Signed-off-by: snipe <snipe@snipe.net>
2023-07-11 11:33:29 +01:00
snipe
ba37a9db8c Merge pull request #13277 from snipe/features/added_phone_fax_to_locations
Added phone, fax to departments, locations, companies
2023-07-11 11:15:13 +01:00
snipe
9dc7fc93fb Small fixes
Signed-off-by: snipe <snipe@snipe.net>
2023-07-11 11:14:19 +01:00
snipe
a5555a1c67 Merge pull request #13281 from inietov/fixes/error_showing_requested_assets
Fixed #13276 Error Showing Requested Assets
2023-07-11 11:11:33 +01:00
snipe
d76f420f4e Merge pull request #13282 from marcusmoore/fixes/allow-installing-on-74-v2
Fixes dev dependency on PHP 7.4
2023-07-11 11:10:52 +01:00
Marcus Moore
d8f22880d6 Allow installing on PHP 7.4 2023-07-10 17:35:21 -07:00
Ivan Nieto Vivanco
ec8cb1b09e Add the withTrashed() method to requestingUser() method in CheckoutRequest model, so the view of requestable assets doesn't crash 2023-07-10 16:34:00 -06:00
snipe
4845a88c68 Merge pull request #13280 from snipe/security/webpack-upgade
[Snyk] Upgrade webpack from 5.86.0 to 5.87.0 #13267
2023-07-10 20:17:44 +01:00
snipe
73c2202d94 [Snyk] Upgrade webpack from 5.86.0 to 5.87.0 #13267
Signed-off-by: snipe <snipe@snipe.net>
2023-07-10 20:16:09 +01:00
snipe
0d37d1a905 Merge pull request #13279 from snipe/security/acorn-upgrade
Upgraded acorn
2023-07-10 20:08:46 +01:00
snipe
83cf106ce5 Upgraded acorn
Signed-off-by: snipe <snipe@snipe.net>
2023-07-10 20:06:57 +01:00
snipe
7debf126d6 Dev assets
Signed-off-by: snipe <snipe@snipe.net>
2023-07-10 20:03:12 +01:00
snipe
c5c87ea0ca Merge pull request #13278 from snipe/security/bs-tables-update
Applied Snyk #13272
2023-07-10 20:01:41 +01:00
snipe
8169206943 Applied Snyk #13272
Signed-off-by: snipe <snipe@snipe.net>
2023-07-10 19:59:08 +01:00
snipe
22d9df304b Merge pull request #13265 from marcusmoore/chore/chipperci-on-prs
Have ChipperCi run on each PR
2023-07-10 19:48:40 +01:00
snipe
14c61e4c17 Added phone, fax to departments, locations, companies
Signed-off-by: snipe <snipe@snipe.net>
2023-07-10 19:44:21 +01:00
Joël Pittet
a4a676ef0b Update league/oauth2-server for CVE-2023-3726 and lcobucci/clock to semver to allow dependencies to update 2023-07-10 11:19:54 -07:00
Brady Wetherington
8f2a17585e Merge branch 'develop' into snipeit_v7
Had to do a lot of conflict work here, so this could get ugly :(
2023-07-10 16:53:35 +01:00
Ivan Nieto Vivanco
299e546021 Adds the Username and Email to License Importer dropdown 2023-07-06 18:36:13 -06:00
snipe
5a9c2925c3 Merge pull request #13264 from marcusmoore/bug/sc-23451
Fix label wrapping on category edit page
2023-07-06 19:01:36 +01:00
Marcus Moore
149184dc3c Have ChipperCI on on each PR
Following up on #13218
2023-07-06 11:00:03 -07:00
Marcus Moore
ef160b0e15 Add span tag so label is displayed properly 2023-07-06 10:49:57 -07:00
Ivan Nieto Vivanco
f4ca29b4a8 Only show radio inputs for location in checkin view 2023-07-06 11:36:55 -06:00
Ivan Nieto Vivanco
9591442f1e Evaluate the radio input to update location only or default location too 2023-07-06 10:46:21 -06:00
Ivan Nieto Vivanco
743e852998 Add radio buttons to alter asset checkin location behavior 2023-07-06 10:38:48 -06:00
snipe
2faa73f983 Merge pull request #13169 from akemidx/license_sn_check1
Making Serial Number the logic checked against for new imports
2023-07-06 16:40:27 +01:00
snipe
d37aaee4c8 Merge pull request #13257 from snipe/fixes/check_for_ceiling_in_upgrader
Check for max PHP version in upgrader
2023-07-06 16:07:10 +01:00
snipe
a9d175a396 Check for max PHP version
Signed-off-by: snipe <snipe@snipe.net>
2023-07-05 18:47:48 +01:00
snipe
a56b040143 Merge remote-tracking branch 'origin/develop' 2023-07-05 17:30:19 +01:00
snipe
35039cd590 Merge pull request #13255 from snipe/fixes/larger_field_for_idp_meta
Change settings table `saml_idp_metadata` to MEDIUMTEXT
2023-07-05 17:30:02 +01:00
snipe
c85a33be6a Change settings table saml_idp_metadata to MEDIUMTEXT
Signed-off-by: snipe <snipe@snipe.net>
2023-07-05 17:28:08 +01:00
snipe
61fd427678 Bumped version
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	config/version.php
2023-07-05 14:41:34 +01:00
snipe
d890d923ff Bumped version
Signed-off-by: snipe <snipe@snipe.net>
2023-07-05 14:40:54 +01:00
snipe
32747cafde Merge remote-tracking branch 'origin/develop' 2023-07-05 14:37:53 +01:00
snipe
4b4983e550 Merge pull request #13253 from uberbrady/improve_scim_404s
Properly return SCIM Exceptions
2023-07-05 14:37:32 +01:00
Brady Wetherington
a6a89ddd6c Also log(debug) the error - could be useful for troubleshooting 2023-07-05 14:31:08 +01:00
Brady Wetherington
1f4d2f1e4a Properly return SCIM Exceptions 2023-07-05 14:27:10 +01:00
Godfrey M
d44e667697 fixed margin if qr_code present 2023-06-29 13:37:38 -07:00
snipe
e18c3e08be Merge remote-tracking branch 'origin/develop' 2023-06-29 21:23:53 +01:00
snipe
bbbeaaee2b Merge pull request #13232 from Godmartinz/labels_overlapping_issue
fixed barcode and info from overlapping
2023-06-29 21:23:31 +01:00
snipe
33b1a31ed3 Merge remote-tracking branch 'origin/develop' 2023-06-29 21:19:25 +01:00
Godfrey M
df90e924b4 prevent labels from overlapping 2023-06-29 13:18:17 -07:00
snipe
630b6496ec Merge pull request #13231 from snipe/fixes/small_fix_for_error_during_seeding
Redirect if the license can’t be found
2023-06-29 21:18:02 +01:00
snipe
7937542dcb Redirect if the license can’t be found
Signed-off-by: snipe <snipe@snipe.net>
2023-06-29 21:15:50 +01:00
snipe
1b71ab6d86 Updated prod assets
Signed-off-by: snipe <snipe@snipe.net>
2023-06-29 20:41:16 +01:00
snipe
af26ec471f Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	public/css/dist/skins/skin-yellow-dark.css
#	public/css/dist/skins/skin-yellow-dark.min.css
#	public/mix-manifest.json
2023-06-29 20:41:05 +01:00
akemidx
d0212d4bda formatting fix 2023-06-29 15:39:19 -04:00
snipe
e236bf412c Merge pull request #13230 from snipe/fixes/windows_backup_filename_colon_wtf_issue
Fixed windows backup filename - swapped colon in timestamp to hyphen to handle windows filesystems
2023-06-29 20:37:09 +01:00
snipe
fb9b3a5453 Switched from a colon to a hyphen to handle windows filesystems
Signed-off-by: snipe <snipe@snipe.net>
2023-06-29 20:32:20 +01:00
snipe
faf2a235fb Updated dev assets
Signed-off-by: snipe <snipe@snipe.net>
2023-06-29 20:31:13 +01:00
snipe
9f99f8275c Merge pull request #13229 from Godmartinz/status_label_color
fixed custom fields labels being unreadable
2023-06-29 20:21:46 +01:00
slong753
8cee3a8218 ok, @marcusmoore was right all along
i just didn't get it
2023-06-29 14:06:52 -05:00
Godfrey M
f83effbb85 removed unnecessary css rule 2023-06-29 11:25:40 -07:00
Godfrey M
d4cddebba5 fixes custom fields labels being unreadable 2023-06-29 11:21:21 -07:00
snipe
4dd71e0332 Merge remote-tracking branch 'origin/develop' 2023-06-29 17:14:15 +01:00
snipe
825e988dfa Merge pull request #13228 from snipe/bug/sc-23434
Use proper alias for table scope
2023-06-29 17:11:50 +01:00
snipe
bcefe73c9c Use proper alias for table scope
Signed-off-by: snipe <snipe@snipe.net>
2023-06-29 16:52:09 +01:00
slong753
826ea0ded8 move colon to blade based on a comment 2023-06-29 10:40:04 -05:00
snipe
4908082240 Merge remote-tracking branch 'origin/develop' 2023-06-29 16:23:35 +01:00
snipe
a3096e1b47 Merge pull request #13219 from inietov/features/cancel_request_asset
Cancel requested assets without checkin/out [ch-17606]
2023-06-29 16:18:13 +01:00
snipe
16ce06a3cc Merge pull request #13222 from snipe/feature/sc-23427
Fixed #13213 - Use the Helper::parseEscapedMarkedown in notes
2023-06-29 16:16:25 +01:00
snipe
8be3a6985b Merge pull request #13227 from snipe/bug/sc-23433
More reshuffling of scopes in assets API
2023-06-29 16:10:26 +01:00
snipe
ead5f039b4 Merge remote-tracking branch 'origin/develop' 2023-06-29 15:33:12 +01:00
snipe
4c3a306a6e More shuffling of scopes
Signed-off-by: snipe <snipe@snipe.net>
2023-06-29 13:35:41 +01:00
Ivan Nieto Vivanco
011726154c Set rtd_location if a location is given at checkin 2023-06-29 03:16:59 -06:00
slong753
ea61f634fb get rid of nice nullsafe 2023-06-28 16:48:52 -05:00
slong753
afe6fe207a resolved, missed adding errors in a case 2023-06-28 16:45:18 -05:00
akemidx
af03b9f140 user department clarification & translation for that phrase. will be used in a later PR 2023-06-28 17:45:13 -04:00
snipe
f7f2d799f2 Merge pull request #13223 from inietov/fixes/delete_notes_map_from_asset_importer
Delete notes column map from assets importer
2023-06-28 20:06:33 +01:00
slong753
8923206ac8 translation string 2023-06-28 13:08:34 -05:00
slong753
3b8ab2d682 clean formatting a little 2023-06-28 13:00:59 -05:00
slong753
2d27941105 added to textarea too 2023-06-28 12:59:54 -05:00
slong753
50a518e5f3 disable input when field is unique 2023-06-28 12:57:23 -05:00
Ivan Nieto Vivanco
a4b8723dcb Delete notes column map from assets importer 2023-06-28 11:38:51 -06:00
Ivan Nieto Vivanco
e2c2736a9c Delete (gulp) Form for bulk edit since is not used in this view 2023-06-28 11:23:37 -06:00
Ivan Nieto Vivanco
85e717bc4e Fix cancel button style and translate title 2023-06-28 10:38:44 -06:00
snipe
2c23c71823 Merge remote-tracking branch 'origin/develop' 2023-06-28 16:41:49 +01:00
snipe
161f4c8d83 Merge pull request #13045 from akemidx/feature/sc-23261
Checkin/out info on side bar
2023-06-28 16:41:21 +01:00
slong753
8b8e7cb5ee couple translation strings 2023-06-28 10:17:28 -05:00
snipe
e1fdfd01f6 Merge pull request #13211 from marcusmoore/company-scoping
Improve testing around company scoping
2023-06-28 16:17:07 +01:00
snipe
4278471d81 Merge pull request #13207 from Godmartinz/half_year_dep_fix
adds half_year fix from jdickerson71388
2023-06-28 15:12:30 +01:00
snipe
e3f381a1e1 Merge pull request #13212 from marcusmoore/feature/sc-23419
Allow running tests in parallel
2023-06-28 15:12:13 +01:00
snipe
8d8adc1639 Use the Helper::parseEscapedMarkedown in notes
Signed-off-by: snipe <snipe@snipe.net>
2023-06-28 15:02:32 +01:00
Brady Wetherington
51424d01a9 Merge branch 'develop' into snipeit_v7 2023-06-28 14:25:33 +01:00
snipe
a455f67d62 Merge pull request #13216 from marcusmoore/bug/sc-23420
Fix translation string in user importer
2023-06-28 07:03:11 +01:00
snipe
b6a11cde65 Merge pull request #13218 from marcusmoore/chore/sc-23424
Have ChipperCI run on each PR
2023-06-28 07:01:14 +01:00
snipe
a8d4494e68 Merge pull request #13220 from marcusmoore/bug/sc-23425
Add missing relationship check in Asset Transformer
2023-06-28 06:59:33 +01:00
Marcus Moore
ab51857854 Check to see if model relationship exists before using it 2023-06-27 19:35:55 -07:00
Ivan Nieto Vivanco
8496e64e16 Adds ternary to set a quantity when needed 2023-06-27 18:37:22 -06:00
Ivan Nieto Vivanco
b4b84f91d0 Redirect to correct page after cancel action 2023-06-27 18:25:38 -06:00
Ivan Nieto Vivanco
1c29bd37a6 Added feature to cancel requests from the Requested Assets view 2023-06-27 18:11:10 -06:00
Marcus Moore
6df7be8c13 Have ChipperCI run on each PR 2023-06-27 16:55:20 -07:00
Ivan Nieto Vivanco
eb4d764601 Refactor Requestable@cancelRequest() firm to admit a user_id so we can cancel a request of whatever user we want 2023-06-27 17:13:11 -06:00
Ivan Nieto Vivanco
b647a8fcd2 Change the inline form HTML label to the Form:: facade 2023-06-27 17:02:25 -06:00
Ivan Nieto Vivanco
62347a56ba Add button with cancel action in requested assets view 2023-06-27 16:41:30 -06:00
Marcus Moore
b0177d513a Fix translation 2023-06-27 12:37:19 -07:00
slong753
e8988bf51e add list 2023-06-26 20:22:27 -05:00
Marcus Moore
3f09e6017b Install paratest to allow for parallel test running 2023-06-26 16:22:28 -07:00
slong753
2736161909 oops, fixed translation 2023-06-26 16:37:06 -05:00
slong753
8cbff0179c translation strings 2023-06-26 16:35:53 -05:00
slong753
2a352619f7 clean up 2023-06-26 16:25:48 -05:00
Marcus Moore
2abdb8a5fd Revert unneeded changes 2023-06-26 14:01:09 -07:00
Marcus Moore
7cb22d3d49 Remove incomplete tests 2023-06-26 14:00:53 -07:00
slong753
691faf6340 ok, this kind of works - pr needs some clean up 2023-06-26 14:56:07 -05:00
Marcus Moore
3cb0920411 Merge branch 'develop' into company-scoping 2023-06-26 12:32:10 -07:00
Godfrey M
114d946437 adds half_year fix from jdickerson71388 2023-06-26 11:26:46 -07:00
snipe
4cb9c25e83 Merge remote-tracking branch 'origin/develop' 2023-06-26 08:30:35 +01:00
snipe
49b50d81ee Merge pull request #13200 from snipe/bug/sc-23417
Set table alias for model number sort scope
2023-06-26 08:29:16 +01:00
snipe
4f7b2836b5 Set table alias for model number sort scope
Signed-off-by: snipe <snipe@snipe.net>
2023-06-26 08:27:17 +01:00
Marcus Moore
acd06927ac Add helper method for authenticating with passport 2023-06-22 17:37:30 -07:00
Spencer Long
f646623a5e Merge branch 'develop' into bulk_edit_custom_fields 2023-06-22 18:00:31 -05:00
Marcus Moore
a35d83d14a Migrate to response macros for readability 2023-06-22 14:41:56 -07:00
akemidx
8df9db76bc column ordering fix 2023-06-22 17:12:40 -04:00
akemidx
8725d40f8d current value added to asset index page. translations for this in reports 2023-06-22 17:00:42 -04:00
snipe
8c6bde335e Merge pull request #13196 from inietov/fixes/default_status_labels_when_import
Fixed issue when importing Assets and no status labels exists [sc-23359]
2023-06-22 21:34:25 +01:00
snipe
b2d74f7e95 Merge pull request #13186 from snipe/bug/sc-23386
Moved logic for tighter constraints when ids are passed
2023-06-22 21:32:36 +01:00
snipe
78d8e32a22 Fixed weird order number thing
Signed-off-by: snipe <snipe@snipe.net>
2023-06-22 21:16:24 +01:00
snipe
4029efebfd Merge pull request #13159 from Godmartinz/audit_image_bug
fixed audit log image not appearing
2023-06-22 21:11:39 +01:00
Marcus Moore
8aae5beaba Add explicit select back to query 2023-06-22 13:09:08 -07:00
Marcus Moore
a8133f62e8 Add explicit select back to query 2023-06-22 13:07:49 -07:00
Ivan Nieto Vivanco
67e47a7d8b Add guard clause to obtain the default ID of imported asset's status label 2023-06-22 13:53:58 -06:00
Marcus Moore
a333d7b72f Add context to incomplete tests 2023-06-22 12:48:09 -07:00
Marcus Moore
ab5fed09db Remove scopeCompanyables call from AssetsController@requestable 2023-06-22 12:36:43 -07:00
Marcus Moore
74b072f1b5 Improve messaging in testing helper 2023-06-22 12:36:30 -07:00
Marcus Moore
0a5e1e3190 Remove scopeCompanyables call from AssetsController@selectlist 2023-06-21 17:21:36 -07:00
Marcus Moore
effd969284 Scaffold test before removing scopeCompanyables call from AssetsController@selectlist 2023-06-21 17:15:02 -07:00
Marcus Moore
fd55c99b87 Remove scopeCompanyables call from AssetsController@index 2023-06-21 16:29:44 -07:00
Marcus Moore
af77fefc61 Scaffold test before removing scopeCompanyables call from AssetsController 2023-06-21 16:19:56 -07:00
Marcus Moore
65e8e4e163 Guard against attempting to use invalid property 2023-06-21 16:18:09 -07:00
snipe
c377e0617c Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	config/version.php
2023-06-21 19:07:07 +01:00
snipe
17a10a4342 Bumped hash
Signed-off-by: snipe <snipe@snipe.net>
2023-06-21 19:06:21 +01:00
snipe
5d4e704fac Added a comment
Signed-off-by: snipe <snipe@snipe.net>
2023-06-21 09:26:54 +01:00
snipe
2d9ddab3f0 Moved logic for tighter constraints when ids are passed
Signed-off-by: snipe <snipe@snipe.net>
2023-06-21 09:24:17 +01:00
akemidx
4b8a08edc1 typo 2023-06-20 19:32:16 -04:00
akemidx
1a407dc05b user department now in side view of asset view page 2023-06-20 19:17:14 -04:00
snipe
2ac4449ea3 Merge remote-tracking branch 'origin/develop' 2023-06-15 20:30:07 +01:00
akemidx
00fd541963 improve logging clarity 2023-06-15 15:09:14 -04:00
snipe
f890e1f8b1 Merge pull request #13171 from snipe/features/importer/allow_update_by_user_id
Accept user ID as authoratative field for updates
2023-06-15 20:08:20 +01:00
akemidx
eda5bbf305 fix to allow empty SN 2023-06-15 14:42:34 -04:00
snipe
7a425f8a49 Merge pull request #13093 from NojoudAlshehri/features/added_asset_tag_colum_in_requestable_assets
feature: Added asset_tag column in requestable assets page
2023-06-15 19:37:18 +01:00
snipe
21a27f43a9 Merge pull request #13158 from Godmartinz/asset_maint_warranty_bug
Added warranty confirmation to asset maintenance table
2023-06-15 19:34:16 +01:00
snipe
09d65f810e Merge pull request #13124 from m4us1ne/fix_dompdf_chroot
Fixed #12434: Include Docker Specific Paths for dompdf chroot
2023-06-15 19:32:34 +01:00
snipe
004992086e Merge pull request #13098 from ak-piracha/feature/snipe-13049-status-label-chart-color
Fixed #13098: Status Label Chart Color, resets to default when editing a Status Label
2023-06-15 16:55:32 +01:00
snipe
6c684bccd0 Accept user ID as authoratative field for updates
Signed-off-by: snipe <snipe@snipe.net>
2023-06-15 10:02:05 +01:00
akemidx
df6b4ff349 tagging code 2023-06-14 15:51:14 -04:00
akemidx
efaed3d02c making serial number logic checked against for new imports 2023-06-14 15:32:47 -04:00
Godfrey M
ee50906e44 attempt to add warranty to api controller 2023-06-13 11:20:55 -07:00
snipe
83708e1be9 Merge remote-tracking branch 'origin/develop' 2023-06-13 18:36:22 +01:00
snipe
157a4341ea Merge pull request #13041 from snipe/features/refactor_importer_for_localization
Refactor importer for localization
2023-06-13 18:12:07 +01:00
snipe
f1bf7267f7 Merge pull request #13164 from snipe/localizations/updated_strings
Updated translation strings
2023-06-13 17:24:01 +01:00
snipe
0bb8cc63c5 Updated translation strings
Signed-off-by: snipe <snipe@snipe.net>
2023-06-13 17:12:01 +01:00
Godfrey M
fc86530c94 uses the trueFalseFormatter now 2023-06-13 09:10:42 -07:00
Godfrey M
6dd7181d09 fixed audit log image not appearing 2023-06-12 12:10:19 -07:00
Godfrey M
69325beddb adds warranty confirmation to asset maintenance table 2023-06-12 11:03:32 -07:00
Brady Wetherington
f5ff9b2208 Merge branch 'develop' into snipeit_v7 - 2023-06-12 2023-06-12 16:56:23 +01:00
snipe
d1ab139b0f Add @qay21 as a contributor 2023-06-12 14:05:43 +01:00
snipe
dc43985884 Applied #13143 to develop
Signed-off-by: snipe <snipe@snipe.net>
2023-06-12 14:05:26 +01:00
snipe
f552bcef78 Merge pull request #13143 from qay21/patch-1
Fixed #13129: Add missing LDAP lib required for LDAPS support
2023-06-12 14:04:05 +01:00
Quentin Aymard
fc6c5eadd7 Fix missing ldap packages
This should provide LDAPS support out of the box, and fix #13129
2023-06-09 11:14:41 +02:00
Lukas Jung
9fca8c2438 Fixed #12434: Include Docker Specific Paths for dompdf chroot 2023-06-09 11:00:46 +02:00
snipe
924d0b25e8 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	config/version.php
#	public/css/dist/all.css
#	public/js/build/app.js
#	public/js/build/vendor.js
#	public/js/dist/all.js
#	public/mix-manifest.json
2023-06-08 08:53:22 +01:00
snipe
c78c69700f Bumped hash
Signed-off-by: snipe <snipe@snipe.net>
2023-06-08 08:49:55 +01:00
snipe
4775eef392 Merge pull request #13140 from snipe/security/misc_libraries
Updated libraries and dev assets
2023-06-08 08:48:55 +01:00
snipe
14727700ab Updated libraries and dev assets
Signed-off-by: snipe <snipe@snipe.net>
2023-06-08 08:48:18 +01:00
snipe
a6b1320b39 Add @stefanstidlffg as a contributor 2023-06-08 08:11:34 +01:00
snipe
4672f6a699 Merge pull request #13139 from snipe/security/updated_webpack
Updated webpack, added new dev assets
2023-06-08 08:11:07 +01:00
snipe
03233465c7 Updated webpack, added new dev assets
Signed-off-by: snipe <snipe@snipe.net>
2023-06-08 08:10:12 +01:00
snipe
8a72056bfd Merge pull request #13123 from osterr-forschungsforderungsges-mbh/fix-slack-notifications
fix slack channel notifications
2023-06-08 05:51:08 +01:00
Marcus Moore
7672861b96 Scaffold test before removing scopeCompanyables call from DashboardController 2023-06-07 17:38:23 -07:00
Marcus Moore
6f5252449e Scaffold test before removing scopeCompanyables call from UsersController 2023-06-07 16:25:18 -07:00
Marcus Moore
0f6051bbe5 Inline method call 2023-06-07 16:18:02 -07:00
Marcus Moore
abaf59c990 Extract and use helper methods 2023-06-07 16:16:30 -07:00
Marcus Moore
27d4d107bb Scaffold test before removing scopeCompanyables call from DepartmentsController 2023-06-07 16:10:29 -07:00
Marcus Moore
8e6e525b47 Remove scopeCompanyables call from LicensesController 2023-06-07 16:09:45 -07:00
Marcus Moore
a18f5e7fc0 Remove scopeCompanyables call from ConsumablesController 2023-06-07 14:22:22 -07:00
snipe
adb2757532 Add @NojoudAlshehri as a contributor 2023-06-07 16:52:22 +01:00
snipe
b57730ee9d Added missing assets_fields declaration
Signed-off-by: snipe <snipe@snipe.net>
2023-06-07 15:52:18 +01:00
snipe
9335bf7033 Merge pull request #13122 from marcusmoore/fixes/increase-consumable-factory-name-length
Fixes potentially invalid name in consumable factory
2023-06-07 11:43:13 +01:00
snipe
45b76c4c75 Merge pull request #13127 from NojoudAlshehri/fixes/typo-in-a-html-tag
Fix of typo in an HTML tag
2023-06-07 09:21:51 +01:00
NojoudAlshehri
d06bdc2db4 Fix of typo in an HTML tag 2023-06-07 13:46:17 +07:00
Marcus Moore
48850f3597 Remove scopeCompanyables call from ComponentsController 2023-06-06 18:02:18 -07:00
Marcus Moore
4fb86ad2fb Get name as a string and not an array 2023-06-06 16:31:26 -07:00
Marcus Moore
42a4941ad2 Ensure consumable name is valid in factory 2023-06-06 16:31:26 -07:00
Marcus Moore
6585aa0cf0 Add unit tests for company scoping 2023-06-06 16:31:14 -07:00
Stefan Stidl
ad8c36a51a fix: slack channel 2023-06-06 10:30:01 +02:00
Marcus Moore
d3a0bacb98 Get name as a string and not an array 2023-06-05 12:57:09 -07:00
Marcus Moore
371d11305b Ensure consumable name is valid in factory 2023-06-05 12:17:44 -07:00
snipe
fc5b02e392 Merge remote-tracking branch 'origin/develop' 2023-06-01 19:51:49 +01:00
snipe
7ae260b489 More license translations
Signed-off-by: snipe <snipe@snipe.net>
2023-06-01 19:51:06 +01:00
snipe
ff480a7247 Merge pull request #13114 from inietov/fixes/broken_sorting_manufacturers
Fixed Broken order by manufacturer in Assets table [sc-23313]
2023-06-01 19:40:16 +01:00
Ivan Nieto Vivanco
f9a20bc917 Replace join with left join in pertinent eloquent query 2023-06-01 12:08:51 -06:00
ak-piracha
daf6bcb6d5 follow best practices when working with blade and javascript 2023-06-01 11:07:21 +09:30
snipe
18eda15ec1 Merge remote-tracking branch 'origin/develop' 2023-05-31 16:19:34 +01:00
snipe
e431cd5146 Merge pull request #13085 from inietov/fixes/checkboxes_not_holding_value
Fixed #12978 Custom Field Checkboxes not holding assigned values
2023-05-31 10:55:37 -04:00
snipe
35942361b6 Add @ak-piracha as a contributor 2023-05-31 15:51:39 +01:00
snipe
596b510a25 Merge pull request #13108 from ak-piracha/fixes/component_delete_showing_in_assest
Fixes: issue #13073: deleted component addearing in asset component t…
2023-05-31 10:50:34 -04:00
ak-piracha
1cdf089306 Fixes: issue #13073: deleted component addearing in asset component tab fixed 2023-05-31 00:11:11 +09:30
snipe
c05a4452bc Merge + update assets
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
2023-05-29 18:20:12 -04:00
snipe
13e8f91a59 Fixed typo
Signed-off-by: snipe <snipe@snipe.net>
2023-05-29 18:18:46 -04:00
ak-piracha
825a9a384d Fixed 2023-05-29 14:07:53 +09:30
NojoudAlshehri
980cb53efa Added asset_tag column in requestable assets page 2023-05-27 07:05:59 +07:00
snipe
60d2046b6d Updated dev assets
Signed-off-by: snipe <snipe@snipe.net>
2023-05-24 16:13:33 -07:00
snipe
67e0eb3193 Merge pull request #13046 from Godmartinz/asset_info_overflow
Added Asset info overflow-wrap
2023-05-24 16:13:01 -07:00
snipe
44cbb0c2e9 Merge branch 'develop' into asset_info_overflow 2023-05-24 16:11:34 -07:00
snipe
a3a64be19b 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
2023-05-24 16:06:26 -07:00
snipe
fb5e33c50f Updated hash
Signed-off-by: snipe <snipe@snipe.net>
2023-05-24 16:03:15 -07:00
snipe
d7f4fa146b Updated dev assets
Signed-off-by: snipe <snipe@snipe.net>
2023-05-24 16:02:28 -07:00
snipe
064dbdd3d4 Fixed missing brace from conflict
Signed-off-by: snipe <snipe@snipe.net>
2023-05-24 16:02:23 -07:00
snipe
cc07921608 Updated dev assets
Signed-off-by: snipe <snipe@snipe.net>
2023-05-24 15:59:52 -07:00
snipe
267a0ffc59 Merge pull request #13077 from Godmartinz/fix_unclickable_nav_bar_and_notifcation_block
fixes mobile nav bar and notification position
2023-05-24 15:58:27 -07:00
snipe
9086cb5310 Merge branch 'develop' into fix_unclickable_nav_bar_and_notifcation_block 2023-05-24 15:56:01 -07:00
Ivan Nieto Vivanco
f4947bfa93 Use trim() function when format the custom field values as array 2023-05-24 04:06:31 -06:00
snipe
5e96fd200f Refactor to remove general_fields
Signed-off-by: snipe <snipe@snipe.net>
2023-05-23 20:31:53 -07:00
snipe
d020825a17 Renamed import samples
Signed-off-by: snipe <snipe@snipe.net>
2023-05-23 19:31:42 -07:00
snipe
3ef081e739 Indenting
Signed-off-by: snipe <snipe@snipe.net>
2023-05-23 19:28:42 -07:00
snipe
47fa490e8a More translations
Signed-off-by: snipe <snipe@snipe.net>
2023-05-23 19:28:23 -07:00
snipe
01768bf649 Renamed sample csv
Signed-off-by: snipe <snipe@snipe.net>
2023-05-23 19:23:29 -07:00
snipe
52cf54d211 New assets CSV
Signed-off-by: snipe <snipe@snipe.net>
2023-05-23 19:22:08 -07:00
snipe
55683c29dc Removed method that does the same return
Signed-off-by: snipe <snipe@snipe.net>
2023-05-23 19:22:00 -07:00
snipe
f355a6e9e1 Added first name and last name
Signed-off-by: snipe <snipe@snipe.net>
2023-05-23 19:21:31 -07:00
snipe
3e4426c68c Clearer comments
Signed-off-by: snipe <snipe@snipe.net>
2023-05-23 19:20:52 -07:00
snipe
2e5486a62e Merge pull request #13076 from marcusmoore/fixes/allow-multi-column-search-in-sqlite
Dynamically adapt concatenation searches for MySQL and sqlite
2023-05-23 16:27:12 -07:00
Marcus Moore
0a3d46824e Automatically add table prefixes when building multi-column search string 2023-05-23 15:58:58 -07:00
snipe
f69caf77e5 Updated dev assets
Signed-off-by: snipe <snipe@snipe.net>
2023-05-23 14:57:57 -07:00
snipe
61d5bd8567 Removed comment
Signed-off-by: snipe <snipe@snipe.net>
2023-05-23 14:57:15 -07:00
snipe
80e8022c76 Merge pull request #13044 from Godmartinz/bug/sc-23260_multi_select_example_text
Bug/sc 23260 multi select example text
2023-05-23 14:45:55 -07:00
Marcus Moore
6300909fee Add test for searching for user's first and last name 2023-05-23 13:39:01 -07:00
Marcus Moore
b2b6f0cf96 Use new dynamic scope where possible 2023-05-23 13:38:50 -07:00
Marcus Moore
054d71aedc Add docblock 2023-05-23 13:37:04 -07:00
Marcus Moore
9078d4c71c Add dynamic scope for prettier multiple column search 2023-05-23 13:35:19 -07:00
snipe
d4c5a4eb2e More aliases
Signed-off-by: snipe <snipe@snipe.net>
2023-05-23 13:18:32 -07:00
snipe
35794c8ba2 More translations
Signed-off-by: snipe <snipe@snipe.net>
2023-05-23 12:57:48 -07:00
snipe
62384260bc Clarifying comment
Signed-off-by: snipe <snipe@snipe.net>
2023-05-23 12:57:40 -07:00
snipe
f2e9b41199 More user fields in asset importer
Signed-off-by: snipe <snipe@snipe.net>
2023-05-23 12:57:34 -07:00
snipe
479350ed7b Removed unneeded mapping file
Signed-off-by: snipe <snipe@snipe.net>
2023-05-23 12:57:24 -07:00
Godfrey M
68a43cb590 fixes mobile nav bar and notification position 2023-05-23 12:43:32 -07:00
snipe
809dcdc50c Updated CSVs
Signed-off-by: snipe <snipe@snipe.net>
2023-05-23 12:13:17 -07:00
snipe
d0f5a044ba More refactoring
Signed-off-by: snipe <snipe@snipe.net>
2023-05-23 12:13:06 -07:00
Marcus Moore
05a2e568d7 Add comment 2023-05-23 11:37:09 -07:00
snipe
fbed18a984 Merge pull request #13075 from inietov/fixes/api_incorrect_remaining_accessories
Fixed #13074 [API] Remaining accessories quantity not correct
2023-05-23 11:08:37 -07:00
Ivan Nieto Vivanco
086265455d Pass user count to the eloquent query 2023-05-23 11:53:09 -06:00
Marcus Moore
f40e722397 Add docblock 2023-05-22 17:44:17 -07:00
Marcus Moore
50234bc9a5 Formatting 2023-05-22 17:40:06 -07:00
Marcus Moore
9b512648a3 Update searchRelations in Searchable trait 2023-05-22 17:33:19 -07:00
Marcus Moore
64e83ed9f5 Update scopeAssignedSearch in Asset 2023-05-22 16:54:54 -07:00
snipe
0c7acd6a3b Merge pull request #13070 from inietov/fixes/accessory_image_shown_when_disabled
Fixed #12947 Accessory image in checkin email when Show images in emails is disabled
2023-05-22 15:30:14 -07:00
Ivan Nieto Vivanco
6df9a33eab Add a condition to check if images should be shown in notification 2023-05-22 16:24:16 -06:00
snipe
f9449aa81f Merge pull request #13069 from marcusmoore/fixes/add-eager-load-to-asset-model-endpoint
Add eager loading to Asset Models controller
2023-05-22 14:39:32 -07:00
Marcus Moore
a6eeae6541 Eager load fieldset default values in asset model endpoint 2023-05-22 14:19:03 -07:00
snipe
b2d922f127 New user import sample CSV
Signed-off-by: snipe <snipe@snipe.net>
2023-05-22 13:20:20 -07:00
snipe
96e86501ad Additional alias fields
Signed-off-by: snipe <snipe@snipe.net>
2023-05-22 13:20:08 -07:00
snipe
4dfe6f0a28 Added gravatar, avatar, start_date and end_date to user importer
Signed-off-by: snipe <snipe@snipe.net>
2023-05-22 13:19:57 -07:00
ak-piracha
457f4c410a add check for default consumable qty 2023-05-21 23:11:03 +09:30
ak-piracha
bb013d5c3c Bulk Consumable Checkout 2023-05-21 22:49:00 +09:30
snipe
511d83cc47 Added/fixed a few more translations
Signed-off-by: snipe <snipe@snipe.net>
2023-05-20 14:52:42 -07:00
snipe
2171d8c83c Removed requestable field in sample consumable CSV
Signed-off-by: snipe <snipe@snipe.net>
2023-05-20 14:52:28 -07:00
snipe
0ea29a0224 Updated translations
Signed-off-by: snipe <snipe@snipe.net>
2023-05-20 14:21:36 -07:00
snipe
18bedb736e Removed item number, since not everything will have it
Signed-off-by: snipe <snipe@snipe.net>
2023-05-20 14:21:29 -07:00
snipe
1396e314c4 Updated arrays with translations
Signed-off-by: snipe <snipe@snipe.net>
2023-05-20 14:21:13 -07:00
snipe
b75109dcac Added component mapping switch
Signed-off-by: snipe <snipe@snipe.net>
2023-05-20 14:20:49 -07:00
snipe
b7149d8339 Added translation
Signed-off-by: snipe <snipe@snipe.net>
2023-05-20 14:20:38 -07:00
Marcus Moore
2d86c8f030 Update advancedTextSearch methods in Asset and User models 2023-05-18 17:06:41 -07:00
Marcus Moore
3a9670930d Define required fields in Custom Field seeder so sqlite can be seeded 2023-05-18 13:17:35 -07:00
Marcus Moore
85974c7f65 Apply formatting 2023-05-18 13:16:52 -07:00
Marcus Moore
ffbde46180 Simplify sqlite query 2023-05-18 13:06:50 -07:00
Marcus Moore
d8d672c4c1 Move multiple column search function to Searchable trait 2023-05-18 13:05:40 -07:00
Marcus Moore
9cb0decf35 Adapt multiple column search based on database driver 2023-05-18 12:54:00 -07:00
Brady Wetherington
a9c7dbd17a Shift PHP version requiremeents for Snipe-IT v7 to be php 8.0-8.2 2023-05-17 17:51:02 -07:00
Brady Wetherington
09fdc946a0 Merge branch 'develop' into snipeit_v7
Had to do some asset rebuilds, and a composer update
2023-05-17 17:37:10 -07:00
Godfrey M
608d07d03c adds overflow-wrap to asset info table 2023-05-17 13:08:53 -07:00
Godfrey M
addd806653 testing overflow solutions 2023-05-17 10:47:50 -07:00
Godfrey M
fe60309dfd adds padding to multi select2 inputs 2023-05-17 10:19:25 -07:00
akemidx
deca80ba71 checkin/out info on side bar 2023-05-17 13:17:48 -04:00
Godfrey M
448472b6d3 testing input paddings 2023-05-17 09:45:45 -07:00
snipe
f1b4bba3ae Merge remote-tracking branch 'origin/develop' 2023-05-16 23:12:41 -07:00
snipe
2c4c9a16c9 Refactored the static arrays into mount arrays for translations
Signed-off-by: snipe <snipe@snipe.net>
2023-05-16 22:31:58 -07:00
snipe
d228b7f347 Remove 99% of the defaultMap stuff (might pull all of this later)
Signed-off-by: snipe <snipe@snipe.net>
2023-05-16 22:31:01 -07:00
snipe
7012018e22 Removed todo
Signed-off-by: snipe <snipe@snipe.net>
2023-05-16 22:30:17 -07:00
snipe
13c6a7f89b Merge pull request #13039 from snipe/features/add_eol_date_to_importer
Added EOL date to importer
2023-05-16 20:12:10 -07:00
snipe
3296716dfa Added EOL date to importer
Signed-off-by: snipe <snipe@snipe.net>
2023-05-16 19:06:35 -07:00
snipe
dbae01f545 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	public/css/dist/skins/skin-red-dark.css
#	public/css/dist/skins/skin-red-dark.min.css
#	public/mix-manifest.json
2023-05-16 17:41:39 -07:00
snipe
c4876865cf Updated dev assets
Signed-off-by: snipe <snipe@snipe.net>
2023-05-16 17:36:58 -07:00
snipe
3cbb4620c3 Merge pull request #13008 from Godmartinz/importer_happy_changes
Added standardized colors to the importer
2023-05-16 17:26:32 -07:00
snipe
5a1e6c8e29 Merge pull request #13003 from marcusmoore/chipper-config-updates
Disable browser tests in ChipperCI
2023-05-16 17:26:09 -07:00
snipe
f1575d2020 Merge pull request #13024 from Godmartinz/adds_localization_to_checkout_notif
adds translation to checkout notification
2023-05-16 17:25:50 -07:00
snipe
71234228b4 Merge pull request #13025 from Godmartinz/archived_clears_assigned_to
removes assigned_to if archived
2023-05-16 17:25:24 -07:00
snipe
5be993df8d Merge remote-tracking branch 'origin/develop' 2023-05-16 16:42:17 -07:00
snipe
4ca914d773 Merge pull request #13038 from uberbrady/fix_asset_checkout_on_update
Importer fix for non-Location imports
2023-05-16 16:41:27 -07:00
Brady Wetherington
2eb34d423f Importer fix for non-Location imports 2023-05-16 16:33:07 -07:00
snipe
37f75c5001 Merge remote-tracking branch 'origin/develop' 2023-05-16 16:29:36 -07:00
snipe
b9b9eb86d9 Merge pull request #13036 from snipe/features/multiselect_locations_custom_report
Added multi-select option for location, more to custom report
2023-05-16 16:29:13 -07:00
snipe
9e4e9cc708 Merge pull request #13037 from snipe/fixes/actions_text
Uses actions text in backups table
2023-05-16 16:06:05 -07:00
snipe
fe92667812 Use actions text in backups table
Signed-off-by: snipe <snipe@snipe.net>
2023-05-16 16:02:48 -07:00
snipe
02cacf76c6 Additional multi-select options for custom report
Signed-off-by: snipe <snipe@snipe.net>
2023-05-16 13:58:21 -07:00
Godfrey M
8e3cbdad90 removes assigned_to if archived 2023-05-15 11:52:57 -07:00
Godfrey M
46d6783fc5 adds translation to checkout notification 2023-05-15 09:01:30 -07:00
akemidx
ba4fc146e2 Merge branch 'delete_asset_from_view_page' of https://github.com/akemidx/snipe-it into delete_asset_from_view_page 2023-05-10 19:30:11 -04:00
akemidx
1916594d27 fixing translation 2023-05-10 19:16:11 -04:00
Godfrey M
763176c86b standardizes the importer colors no matter the theme 2023-05-10 14:52:08 -07:00
snipe
0f3b77ee2d Added multi-select option to custom report
Signed-off-by: snipe <snipe@snipe.net>
2023-05-10 14:45:31 -07:00
snipe
869d195b35 Merge pull request #13007 from snipe/fixes/multiselect_company
Fixed multiselect for companies
2023-05-10 13:17:36 -07:00
snipe
a49257ad4b Wrong eval
Signed-off-by: snipe <snipe@snipe.net>
2023-05-10 13:16:59 -07:00
snipe
c6eef86661 Fixed multiselect for companies
Signed-off-by: snipe <snipe@snipe.net>
2023-05-10 13:15:22 -07:00
snipe
71c7c82398 Merge pull request #13006 from snipe/fixes/12831_array_for_company_id
Fixes PR #12831 use array bracket for multi select company
2023-05-10 12:36:59 -07:00
snipe
23e3d18931 Used brackets for multiselect company
Signed-off-by: snipe <snipe@snipe.net>
2023-05-10 12:35:30 -07:00
slong753
5e34ffa2b0 wip 2023-05-10 14:08:12 -05:00
snipe
5f6e528560 Merge branch 'develop' of https://github.com/snipe/snipe-it into develop 2023-05-10 11:36:28 -07:00
snipe
9f39d71f16 Merge pull request #12831 from Godmartinz/adds_multi_select_to_custom_report
Added Multiselect of companies for custom reports
2023-05-10 11:36:21 -07:00
snipe
4c78b49b97 Add @vikaas-cyper as a contributor 2023-05-10 11:31:26 -07:00
snipe
b1fda46e11 Production assets
Signed-off-by: snipe <snipe@snipe.net>
2023-05-10 11:25:28 -07:00
snipe
6b7a7b8aee Merge remote-tracking branch 'origin/develop' 2023-05-10 11:23:29 -07:00
snipe
aca287d28c Merge pull request #13004 from snipe/security/upgrade_webpack
Updated webpack, new asset files
2023-05-10 11:23:02 -07:00
snipe
1f5e4309fa Updated webpack, new asset files
Signed-off-by: snipe <snipe@snipe.net>
2023-05-10 11:20:06 -07:00
Marcus Moore
a1a11d788f Disable browser tests in ChipperCI 2023-05-10 11:06:05 -07:00
snipe
63c660f306 Merge pull request #12999 from snipe/develop
Google Oauth Recap
2023-05-10 10:01:23 -07:00
snipe
b8a59cc2d8 Merge branch 'master' into develop 2023-05-10 09:32:26 -07:00
snipe
04aedce47e Bumped hash
Signed-off-by: snipe <snipe@snipe.net>
2023-05-10 09:29:42 -07:00
snipe
d648e9a01c Added Google test user
Signed-off-by: snipe <snipe@snipe.net>
2023-05-10 09:13:34 -07:00
snipe
7c77f4a697 Extra debugging
Signed-off-by: snipe <snipe@snipe.net>
2023-05-10 09:10:53 -07:00
akemidx
537aa04c9a Merge branch 'develop' into delete_asset_from_view_page 2023-05-10 09:30:54 -04:00
snipe
27e0484072 I lied. Missed one
Signed-off-by: snipe <snipe@snipe.net>
2023-05-10 03:12:22 -07:00
snipe
ec76de607b Final google login tweaks
Signed-off-by: snipe <snipe@snipe.net>
2023-05-10 03:08:29 -07:00
snipe
14da8934c5 Few more login page tweaks
Signed-off-by: snipe <snipe@snipe.net>
2023-05-10 02:53:11 -07:00
snipe
ed370a0104 Added translations
Signed-off-by: snipe <snipe@snipe.net>
2023-05-10 02:47:28 -07:00
snipe
b99640ecb2 Added ends_with validation message
Signed-off-by: snipe <snipe@snipe.net>
2023-05-10 02:40:55 -07:00
snipe
8bad72a80f Added validation on google client ID
Signed-off-by: snipe <snipe@snipe.net>
2023-05-10 02:40:45 -07:00
snipe
f3c977aa9d Nicer button
Signed-off-by: snipe <snipe@snipe.net>
2023-05-10 02:37:01 -07:00
snipe
788c03ef57 Hide client secret if app is locked
Signed-off-by: snipe <snipe@snipe.net>
2023-05-10 02:22:49 -07:00
snipe
3c00f68bda Added translation string for google auth failure
Signed-off-by: snipe <snipe@snipe.net>
2023-05-10 02:18:50 -07:00
snipe
7062583710 Check for http or https in avatar value
Signed-off-by: snipe <snipe@snipe.net>
2023-05-10 02:18:38 -07:00
snipe
2dd32d8785 Re-add the image update
Signed-off-by: snipe <snipe@snipe.net>
2023-05-10 02:18:27 -07:00
snipe
ff66a938c1 Clearer comments
Signed-off-by: snipe <snipe@snipe.net>
2023-05-10 02:18:15 -07:00
snipe
7f0e677908 Use normal translation style
Signed-off-by: snipe <snipe@snipe.net>
2023-05-10 02:18:05 -07:00
snipe
e8a0c7f2ce Remove avatar update, since we don’t take URLs for that
Signed-off-by: snipe <snipe@snipe.net>
2023-05-10 01:59:33 -07:00
snipe
e950cf4279 Switch to using username as match for google login
Signed-off-by: snipe <snipe@snipe.net>
2023-05-10 01:58:36 -07:00
snipe
567a800c51 Added debugging
Signed-off-by: snipe <snipe@snipe.net>
2023-05-10 01:47:52 -07:00
snipe
e5eb5932ca Create constructor to override expected config variables
Signed-off-by: snipe <snipe@snipe.net>
2023-05-10 01:37:03 -07:00
snipe
a90fc1ab59 Merge pull request #12994 from snipe/features/google_socialite
Google OAuth login
2023-05-10 01:23:37 -07:00
snipe
3612526632 Disallow saving data if app is locked
Signed-off-by: snipe <snipe@snipe.net>
2023-05-10 01:14:54 -07:00
snipe
1ef4ea6381 Very ugly login shim just to test functionality
Signed-off-by: snipe <snipe@snipe.net>
2023-05-10 01:14:31 -07:00
snipe
37bc47290c Disabled fields in demo mode
Signed-off-by: snipe <snipe@snipe.net>
2023-05-10 01:12:55 -07:00
snipe
4da40792ea Use google logo
Signed-off-by: snipe <snipe@snipe.net>
2023-05-10 01:08:28 -07:00
snipe
63bf93b786 Pulled redirect from settings
Signed-off-by: snipe <snipe@snipe.net>
2023-05-10 00:56:04 -07:00
snipe
f57e39191d Added google settings blade
Signed-off-by: snipe <snipe@snipe.net>
2023-05-10 00:55:16 -07:00
snipe
6ab214d3a6 Added google option to settings index
Signed-off-by: snipe <snipe@snipe.net>
2023-05-10 00:55:04 -07:00
snipe
3fb5188037 Removed redirect option
Signed-off-by: snipe <snipe@snipe.net>
2023-05-10 00:54:46 -07:00
snipe
aefd330e4e Added methods for google settings
Signed-off-by: snipe <snipe@snipe.net>
2023-05-10 00:54:28 -07:00
snipe
b7e8ce3064 Changed redirect
Signed-off-by: snipe <snipe@snipe.net>
2023-05-10 00:54:14 -07:00
snipe
b183e53c45 Added settings routes for google auth
Signed-off-by: snipe <snipe@snipe.net>
2023-05-10 00:34:48 -07:00
snipe
054a2ab9d4 Add validation and fillable fields
Signed-off-by: snipe <snipe@snipe.net>
2023-05-10 00:34:31 -07:00
snipe
bc9b47c46d Removed env dependency, switched to DB
Signed-off-by: snipe <snipe@snipe.net>
2023-05-10 00:27:47 -07:00
snipe
72d1c08fbc Added migration
Signed-off-by: snipe <snipe@snipe.net>
2023-05-10 00:21:17 -07:00
snipe
c52b48c383 Google oauth login
Signed-off-by: snipe <snipe@snipe.net>
2023-05-10 00:14:28 -07:00
snipe
11cd875c6d Merge remote-tracking branch 'origin/develop' 2023-05-09 22:42:45 -07:00
snipe
a1ec8cf490 Merge pull request #12993 from snipe/fixes/checkbox_layout_in_ldap
Tightened up some layout issues, checkbox issues in LDAP settings
2023-05-09 22:37:49 -07:00
snipe
0680405f4d Tightened up some layout issues, checkbox issues in LDAP settings
Signed-off-by: snipe <snipe@snipe.net>
2023-05-09 22:34:46 -07:00
slong753
9a4ba78c19 oops, pattern 2023-05-09 23:41:21 -05:00
slong753
491f670215 I think this is what they're looking for 2023-05-09 22:52:00 -05:00
snipe
cbe70c9cc1 Merge remote-tracking branch 'origin/develop' 2023-05-09 20:14:44 -07:00
snipe
6a7bab453f Made spacing more compact
Signed-off-by: snipe <snipe@snipe.net>
2023-05-09 20:14:00 -07:00
snipe
7412bc32e2 Merge pull request #12991 from snipe/fixes/accessories_view
Fixed width of columns in details
2023-05-09 20:11:36 -07:00
snipe
ec4697fd3e Merge remote-tracking branch 'origin/develop' 2023-05-09 19:45:10 -07:00
snipe
5a461d62bc Merge pull request #12990 from snipe/fixes/12881_missing_icon
Added icon field back into assets page
2023-05-09 19:44:30 -07:00
snipe
999dc3c358 Added icon field back into assets page
Signed-off-by: snipe <snipe@snipe.net>
2023-05-09 19:43:37 -07:00
snipe
a10652797f Fixed width of columns in details
Signed-off-by: snipe <snipe@snipe.net>
2023-05-09 19:42:32 -07:00
snipe
090cbab60e Merge pull request #12989 from marcusmoore/chipper-ci
Add ChipperCI configuration
2023-05-09 18:09:23 -07:00
Marcus Moore
1e7986d75b Limit ChipperCI to running on push to master or develop 2023-05-09 16:39:56 -07:00
snipe
a43dea3c04 Merge remote-tracking branch 'origin/develop' 2023-05-09 16:29:53 -07:00
Marcus Moore
1f11a8a2c1 Configure Dusk for ChipperCI 2023-05-09 14:45:18 -07:00
Marcus Moore
8d205e80e5 Add ejected pipeline configuration for ChipperCI 2023-05-09 14:44:43 -07:00
snipe
2d5da67b1e Merge pull request #12982 from akemidx/feature/sc-23214
Buttons on the Accessory View Page
2023-05-09 14:26:28 -07:00
slong753
1d2596fc54 wip 2023-05-09 14:58:59 -05:00
snipe
7dd41aa574 Removed whitespace
Signed-off-by: snipe <snipe@snipe.net>
2023-05-08 15:49:12 -07:00
snipe
c4d40cdbd4 Merge remote-tracking branch 'origin/develop' 2023-05-08 15:11:25 -07:00
snipe
b76c5206ff Merge pull request #12986 from snipe/features/import_backup_filename
Pass filename to pre-import backup
2023-05-08 15:08:59 -07:00
snipe
17efc78816 Merge pull request #12985 from snipe/fixes/increase_state_from_3_chars
Increase state from 3 chars
2023-05-08 15:08:44 -07:00
snipe
332b017dcc Pass filename for manual backups
Signed-off-by: snipe <snipe@snipe.net>
2023-05-08 15:00:02 -07:00
snipe
5960a5425d Pass filename to pre-import backup
Signed-off-by: snipe <snipe@snipe.net>
2023-05-08 14:48:26 -07:00
snipe
277618bf16 Added maxlenth to form fields
Signed-off-by: snipe <snipe@snipe.net>
2023-05-08 14:13:24 -07:00
snipe
f84f4ffe99 Migration to embiggen state fields
Signed-off-by: snipe <snipe@snipe.net>
2023-05-08 14:13:06 -07:00
snipe
f1d85c67f1 Make validation match database fields
Signed-off-by: snipe <snipe@snipe.net>
2023-05-08 14:12:54 -07:00
snipe
6cb6beb6c7 Merge remote-tracking branch 'origin/develop' 2023-05-08 13:21:43 -07:00
snipe
6486ea4fb7 Merge pull request #12976 from inietov/fixes/validate_soft-deleted_models_in_asset_model
Refactor of #12955
2023-05-08 13:14:02 -07:00
snipe
d685335aea Merge pull request #12975 from inietov/fixes/import_asset_notes
Fixed Notes field doesn't get populate when creating/updating assets via Importer [sc-23222]
2023-05-08 13:11:50 -07:00
snipe
d70e14de61 Merge pull request #12972 from marcusmoore/bug/sc-23177
Fixes user name missing in accessory acceptance notifications
2023-05-08 13:04:37 -07:00
snipe
480ef23505 Merge remote-tracking branch 'origin/develop' 2023-05-08 12:44:01 -07:00
snipe
4503815ad7 Merge pull request #12984 from snipe/features/check_for_zip_in_backup_filename
Check that the filename we pass ends in zip, add it if not
2023-05-08 12:43:34 -07:00
snipe
ba462d1e93 Check that the filename we pass ends in zip, add it if not
Signed-off-by: snipe <snipe@snipe.net>
2023-05-08 12:41:32 -07:00
snipe
3429d1f4b4 Merge remote-tracking branch 'origin/develop' 2023-05-08 12:22:22 -07:00
snipe
0f76eda4af Merge pull request #12983 from snipe/features/add_optional_filename_to_backup_artisan
Add optional filename to backup
2023-05-08 12:21:55 -07:00
snipe
85243423cf Add optional filename to backup
Signed-off-by: snipe <snipe@snipe.net>
2023-05-08 12:20:43 -07:00
snipe
a73205f228 Merge remote-tracking branch 'origin/develop' 2023-05-08 11:24:03 -07:00
snipe
06ffe64f62 Merge pull request #12981 from snipe/fixes/wonky_div_when_saml_disabled
Fixed misplaced div when saml is disabled
2023-05-08 11:22:54 -07:00
snipe
223ff5e97e Fixed misplaced div when saml is disabled
Signed-off-by: snipe <snipe@snipe.net>
2023-05-08 11:20:26 -07:00
snipe
fe40902765 Merge remote-tracking branch 'origin/develop' 2023-05-06 06:37:29 -07:00
snipe
689ef433b3 Merge pull request #12979 from snipe/fixes/added_use_for_fieldsets_controller
Added missing use statement
2023-05-06 06:37:01 -07:00
snipe
8b73fa0053 Added missing use statement
Signed-off-by: snipe <snipe@snipe.net>
2023-05-06 06:36:09 -07:00
snipe
3d345d15ac Merge remote-tracking branch 'origin/develop' 2023-05-04 11:01:15 -07:00
snipe
4efa84270a Merge pull request #12974 from snipe/fixes/show_sig_column_regardless_of_sig_status
Show signature column in asset history regardless of “require sig” state
2023-05-04 11:00:51 -07:00
snipe
60515f1262 Show signature column regardless of “require sig” state
Signed-off-by: snipe <snipe@snipe.net>
2023-05-04 10:56:35 -07:00
Ivan Nieto Vivanco
fbb7c55450 Tweak 'exist' rule in Asset->model_id field so it ignores soft-deleted models 2023-05-04 03:12:36 -06:00
Ivan Nieto Vivanco
89fbd60d97 Restore the 'Asset Notes' and 'Model Notes' in the Map Asset Import Fields form 2023-05-04 02:00:04 -06:00
Marcus Moore
96c6d8896f Add additional information to acceptance notifications for assets, accessories, and consumables 2023-05-03 17:04:01 -07:00
Marcus Moore
9efe13bb5e Capitalize "declined" in acceptance in notification 2023-05-03 17:03:22 -07:00
Marcus Moore
4a0b3efd1f Include user's name in Acceptance result notifications for accessories 2023-05-03 14:22:05 -07:00
Marcus Moore
f96d8fe674 Add CheckoutAcceptance factory 2023-05-03 14:21:13 -07:00
snipe
5950ec27ab 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/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-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
2023-05-03 13:49:36 -07:00
snipe
cd6f6ee8ff Bumped version to 6.1.1-pre
Signed-off-by: snipe <snipe@snipe.net>
2023-05-03 13:47:46 -07:00
akemidx
526c089424 Buttons on the accessory view page 2023-05-03 16:40:06 -04:00
akemidx
67105528d1 Buttons on the accessory view page 2023-05-03 16:31:56 -04:00
akemidx
12f0c42545 buttons added 2023-05-03 16:31:56 -04:00
slong753
815c77f943 wip 2023-05-03 14:49:31 -05:00
snipe
fe710efb40 Merge pull request #12874 from Godmartinz/feature/sc-23130
Adds a checkout range for custom asset reports
2023-05-03 11:43:44 -07:00
snipe
fc53b56481 Merge pull request #12955 from inietov/fixes/error_500_after_sign_and_accept_asset
Fixed Error 500 after sign and accept asset
2023-05-03 11:43:14 -07:00
akemidx
889be83762 replacing route. sorry! 2023-05-03 14:14:18 -04:00
snipe
b716f9f55e Merge pull request #12916 from snipe/features/auto_add_to_fieldset
Added ability to auto-add fields to new fieldsets
2023-05-03 11:04:33 -07:00
snipe
ea17fdeba5 Merge pull request #12846 from snipe/features/livewire_location_import
Location importer via Livewire Importer
2023-05-03 11:02:06 -07:00
snipe
f5cd58e9b7 Unmix return type variables
Signed-off-by: snipe <snipe@snipe.net>
2023-05-03 10:57:02 -07:00
snipe
da4841987e Use translation string
Signed-off-by: snipe <snipe@snipe.net>
2023-05-03 10:55:30 -07:00
snipe
4a643c1252 Merge pull request #12880 from Godmartinz/asset_total_cost
Added component costs to asset view
2023-05-03 10:49:03 -07:00
snipe
cdbd68012f Merge pull request #12878 from joelpittet/patch-2
Use environment variable and default to PHP's sendmail_path
2023-05-03 10:48:39 -07:00
snipe
577fff7d65 Updated dev assets
Signed-off-by: snipe <snipe@snipe.net>
2023-05-03 10:45:36 -07:00
snipe
79a27085c9 Merge branch 'develop' of https://github.com/snipe/snipe-it into develop 2023-05-03 10:43:45 -07:00
snipe
27600e1553 Snyk webpack upgrade
Signed-off-by: snipe <snipe@snipe.net>
2023-05-03 10:43:05 -07:00
snipe
914b2658cc Merge pull request #12943 from marcusmoore/fixes/avoid-loading-unused-models-for-report
Remove the loading of asset maintenances that are not used by view
2023-05-03 10:41:52 -07:00
snipe
6a12d5d9a0 Merge pull request #12964 from marcusmoore/fixes/restrict-php-version
Restrict PHP version to <8.2
2023-05-03 10:40:52 -07:00
snipe
31f1bce16b Merge pull request #12958 from uberbrady/snipeit_v7_merge_develop_05_01_2022
Snipeit v7 merge develop 05 01 2022
2023-05-03 10:40:18 -07:00
snipe
466c2fd47c Merge pull request #12966 from Godmartinz/bug/sc-23161
fixed color differences in dark themes
2023-05-03 10:38:54 -07:00
slong753
cdda4a56d8 aha, ok thisd kind of works 2023-05-02 19:11:43 -05:00
slong753
b2c2097e8b just more troubleshooting stuff, still no solution 2023-05-02 18:54:20 -05:00
Godfrey M
87d1a82e35 moar changes to red 2023-05-02 15:15:02 -07:00
Godfrey M
1d494252ef corrections for dark red 2023-05-02 14:05:29 -07:00
Godfrey M
786e8deb91 removed dead space 2023-05-02 13:54:14 -07:00
Godfrey M
0a3cb5286d fixes dark red 2023-05-02 12:37:05 -07:00
Godfrey M
f91e76e0f2 fixes dark blue and btn-warning bg 2023-05-02 12:33:40 -07:00
Godfrey M
af2f288286 fixes dark orange theme 2023-05-02 12:17:22 -07:00
Godfrey M
5de30db0a9 fixes dark green theme 2023-05-02 12:10:55 -07:00
Marcus Moore
48ef8443f5 Restrict PHP to >=7.4.3 <8.2 2023-05-02 12:01:09 -07:00
Godfrey M
47370da924 adds fixes to dark black theme 2023-05-02 11:08:37 -07:00
Brady Wetherington
2f3ddaec20 Merge branch 'develop' into snipeit_v7 2023-05-01 18:09:12 -07:00
snipe
7cd37e6e95 Merge pull request #12957 from uberbrady/fix_webpack_for_v7
Fix webpack for v7
2023-05-01 18:08:46 -07:00
Brady Wetherington
a938009074 Rebuilt assets with new Node and node_modules and package.json 2023-05-01 18:06:51 -07:00
Brady Wetherington
21d08ff742 Whoops! Forgot to commit this before 2023-05-01 18:05:06 -07:00
snipe
da8b41b12a Merge pull request #12956 from uberbrady/upgrade_node_and_packages_for_v7
Updated Node version, and various packages to more recent
2023-05-01 17:33:20 -07:00
Brady Wetherington
6e031727fa Updated Node version, and various packages to more recent 2023-05-01 17:05:10 -07:00
akemidx
2cb1545b83 removing route 2023-05-01 19:51:52 -04:00
snipe
63af17da74 Merge pull request #12954 from marcusmoore/fixes/test-suite-fixes
Clear the settings cache on app destruction
2023-05-01 16:28:47 -07:00
Godfrey M
7711938f4b fixes dark yellow 2023-05-01 16:27:21 -07:00
Marcus Moore
f7d2b62d87 Improve method name 2023-05-01 16:06:28 -07:00
Marcus Moore
da08f6ef8c Add InteractsWithSettings trait to required tests 2023-05-01 16:05:26 -07:00
Marcus Moore
6d594faae7 Clear the settings cache on app destruction 2023-05-01 16:04:43 -07:00
Ivan Nieto Vivanco
6936d76661 Prevent hard fail when retrieving acceptance data 2023-05-01 16:50:18 -06:00
Ivan Nieto Vivanco
1b2d830380 Check if model exists before create asset via API 2023-05-01 16:05:03 -06:00
akemidx
ad7a1d6c3b edits from Github comments 2023-05-01 15:50:48 -04:00
snipe
609b1646e9 Merge remote-tracking branch 'origin/develop' 2023-04-30 18:40:52 -07:00
snipe
031c9c1204 Added nobr tag to prevent external link icon and link from breaking
Signed-off-by: snipe <snipe@snipe.net>
2023-04-30 18:40:40 -07:00
snipe
77b51136cf Merge remote-tracking branch 'origin/develop' 2023-04-30 18:38:19 -07:00
snipe
0222a922a1 Added tooltip
Signed-off-by: snipe <snipe@snipe.net>
2023-04-30 18:20:23 -07:00
snipe
8ad600085a Moved external link icon into link
Signed-off-by: snipe <snipe@snipe.net>
2023-04-30 18:17:56 -07:00
snipe
7fdbc10122 Merge remote-tracking branch 'origin/develop' 2023-04-29 13:49:14 -07:00
snipe
4c27b65d45 Merge pull request #12950 from snipe/fixes/warranty_lookup_validation
Fixed  #12946 - warranty lookup url was not nullable
2023-04-29 13:48:54 -07:00
snipe
aa814cf761 Fixed #12946 - warranty lookup url was not nullable
Signed-off-by: snipe <snipe@snipe.net>
2023-04-29 13:47:52 -07:00
Marcus Moore
3cae32b236 Eager load default locations 2023-04-27 17:13:09 -07:00
Marcus Moore
429c4cb99f Remove the loading of asset maintenances that are not used by view 2023-04-27 17:12:53 -07:00
snipe
e250d4c884 Merge remote-tracking branch 'origin/develop' 2023-04-27 17:00:29 -07:00
snipe
8b476e55b6 Merge pull request #12941 from akemidx/feature/sc-23153
Created At and Updated At fields on License table view
2023-04-27 16:59:30 -07:00
snipe
b76d2973f7 Merge pull request #12928 from snipe/features/make_hashing_work_rounds_an_env
Env-ify hashing variables, setting the normal defaults
2023-04-27 16:57:45 -07:00
snipe
b001f6771d Merge remote-tracking branch 'origin/develop' 2023-04-27 16:28:42 -07:00
snipe
956bc41e48 Merge pull request #12942 from snipe/bug/sc-23197
Added missing case for licenses for item_count
2023-04-27 16:28:12 -07:00
snipe
567e19bcc0 Added missing case for licenses for item_count
Signed-off-by: snipe <snipe@snipe.net>
2023-04-27 16:26:50 -07:00
akemidx
67a2b796a4 requested edits 2023-04-27 19:19:53 -04:00
akemidx
1c60d686bd Merge remote-tracking branch 'origin/delete_asset_from_view_page' into delete_asset_from_view_page
# Conflicts:
#	resources/views/hardware/view.blade.php
2023-04-27 19:08:51 -04:00
akemidx
cd389368f7 adding in script 2023-04-27 19:00:17 -04:00
akemidx
d3675831bb snippet rewrite 2023-04-27 18:58:59 -04:00
akemidx
84134b45e6 form work 2023-04-27 18:58:59 -04:00
akemidx
b1e68be545 delete button progress 2023-04-27 18:58:59 -04:00
akemidx
d94bed3f57 push for testing 2023-04-27 18:58:59 -04:00
akemidx
aabcf22b40 commiting 2023-04-27 18:58:59 -04:00
akemidx
af549a0be9 Mock Up of the Buttons 2023-04-27 18:58:59 -04:00
Brady Wetherington
381890b578 Merge branch 'develop' into laravel_v9 2023-04-27 13:56:04 -07:00
snipe
1384ca658a Merge remote-tracking branch 'origin/develop' 2023-04-26 18:42:58 -07:00
snipe
e25dc42121 Switch to externalLinkFormatter
Signed-off-by: snipe <snipe@snipe.net>
2023-04-26 18:42:34 -07:00
snipe
dcb7eadfc7 Merge pull request #12933 from snipe/features/unlink_dynamic_urls_if_variables_used
Remove auto-link from from manufacturer warranty
2023-04-26 18:40:33 -07:00
snipe
99ef435d40 Fixed translation
Signed-off-by: snipe <snipe@snipe.net>
2023-04-26 18:32:38 -07:00
snipe
e853f8b7fd Removed SR text for exporting
Signed-off-by: snipe <snipe@snipe.net>
2023-04-26 18:23:21 -07:00
snipe
deff312381 Remove auto-link from from manufacturer warranty
Signed-off-by: snipe <snipe@snipe.net>
2023-04-26 18:16:23 -07:00
snipe
7bffe30fae Merge remote-tracking branch 'origin/develop' 2023-04-26 17:55:48 -07:00
snipe
73d45bb587 Merge pull request #12932 from snipe/features/add_warranty_url_to_mfgs
Added dynamic warranty URL to manufacturers
2023-04-26 17:55:03 -07:00
snipe
7974c172fd Switch back to “normal” url for support
Signed-off-by: snipe <snipe@snipe.net>
2023-04-26 16:48:38 -07:00
snipe
54a766c4f9 Added dynamic warranty URL to manufacturers
Signed-off-by: snipe <snipe@snipe.net>
2023-04-26 16:39:15 -07:00
snipe
27de5c62c5 Merge remote-tracking branch 'origin/develop' 2023-04-26 15:15:43 -07:00
snipe
ef69df2cdf Merge pull request #12930 from snipe/fixes/added_help_text_to_support_url
Added help text to the now-dynamic manufacturer URLS
2023-04-26 15:15:19 -07:00
snipe
7c0ef581c5 Added help text to the now-dynamic manufacturer URLS
Signed-off-by: snipe <snipe@snipe.net>
2023-04-26 15:12:36 -07:00
snipe
0c5837e4a0 Merge pull request #12929 from snipe/fixes/use_asset_tag_if_no_asset_name_given
Use the asset tag instead of asset name if no name is given
2023-04-26 14:49:38 -07:00
snipe
5eac314f4d Merge pull request #12906 from akemidx/feature/sc-20622
Dynamic warranty link for manufacturers' support urls
2023-04-26 14:49:22 -07:00
snipe
b5b335a2ca Use the asset tag instead of asset name if no name is given
Signed-off-by: snipe <snipe@snipe.net>
2023-04-26 14:41:19 -07:00
akemidx
497d17835f requested edits 2023-04-26 17:06:08 -04:00
slong753
52c9fefbe0 ok, this works except error display 2023-04-26 15:06:50 -05:00
snipe
68417a4c15 Env-ify hashing variables, setting the normal defaults
Signed-off-by: snipe <snipe@snipe.net>
2023-04-26 13:01:42 -07:00
akemidx
aab53cf683 remove regex, add in starts_with 2023-04-26 15:18:13 -04:00
snipe
75fdd0ac96 Merge remote-tracking branch 'origin/develop' 2023-04-26 09:54:44 -07:00
snipe
4c16dcf5d0 Merge pull request #12922 from snipe/fixes/12918_route_name_for_clone_locations
Fixed #12918 - wrong route for clone location
2023-04-26 09:54:18 -07:00
snipe
b6889ff399 Fixed #12918 - wrong toite for clone location
Signed-off-by: snipe <snipe@snipe.net>
2023-04-26 09:52:13 -07:00
snipe
12cc576b52 Merge remote-tracking branch 'origin/develop' 2023-04-25 23:41:45 -07:00
snipe
19554a7dc2 Merge pull request #12917 from snipe/fixes/applies_pr_12868
Applies #12868 - fixes EOL date on asset creation
2023-04-25 23:40:43 -07:00
snipe
8f0b823fb3 Applies #12868
Signed-off-by: snipe <snipe@snipe.net>
2023-04-25 23:39:32 -07:00
snipe
2299771e10 Add @zacharyfleck as a contributor 2023-04-25 22:37:17 -07:00
snipe
37b881b906 Add @dboth as a contributor 2023-04-25 22:32:45 -07:00
snipe
22d73f503a Merge pull request #12756 from dboth/develop
Fixed #8208, #8896, #8985 and #9789:  Currency issues when using non-english locales (resubmission)
2023-04-25 22:32:13 -07:00
snipe
970b5e556c Merge pull request #12903 from marcusmoore/bug/sc-15034
Fixes sending webhook notifications for checkout and checkin
2023-04-25 22:22:58 -07:00
snipe
17275cbeb8 Merge pull request #12905 from marcusmoore/fixes/checkout-via-artisan
Fixes where clause operator in artisan checkout command
2023-04-25 22:21:59 -07:00
snipe
d6ea5de5b8 Merge remote-tracking branch 'origin/develop' into features/auto_add_to_fieldset 2023-04-25 22:20:50 -07:00
snipe
42f0975414 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
2023-04-25 22:19:27 -07:00
snipe
470a36a7c9 Updated dev assets
Signed-off-by: snipe <snipe@snipe.net>
2023-04-25 22:12:56 -07:00
snipe
b7632cdbb7 Updated js packages
Signed-off-by: snipe <snipe@snipe.net>
2023-04-25 22:12:47 -07:00
snipe
9529cd8235 Merge pull request #12891 from snipe/snyk-upgrade-38ca074c3dd0aada16ad8b85f20ebaa8
[Snyk] Upgrade bootstrap-table from 1.21.3 to 1.21.4
2023-04-25 22:04:40 -07:00
snipe
fcddd0827c Merge pull request #12888 from snipe/snyk-upgrade-4c8ffc584b299eb1e71d6be555624f4e
[Snyk] Upgrade webpack from 5.76.2 to 5.77.0
2023-04-25 22:03:49 -07:00
snipe
c8c6f879d4 Merge pull request #12912 from Godmartinz/ldap_location_sync
added ldap_location to settings
2023-04-25 21:54:28 -07:00
snipe
31a3be4c6a Small refactor of HTML, added top submit button
Signed-off-by: snipe <snipe@snipe.net>
2023-04-25 21:51:59 -07:00
snipe
27477085fe Merge branch 'develop' into features/auto_add_to_fieldset 2023-04-25 21:31:50 -07:00
snipe
45f22e7561 Updated the sync to disassociate if all boxed are unchecked
Signed-off-by: snipe <snipe@snipe.net>
2023-04-25 21:31:23 -07:00
snipe
5759d2c948 Added a check to fail validation if the associated fieldsets are not value
Signed-off-by: snipe <snipe@snipe.net>
2023-04-25 21:30:47 -07:00
snipe
15dc4e4779 Added fieldset sync
Signed-off-by: snipe <snipe@snipe.net>
2023-04-25 21:29:57 -07:00
slong753
6bec9cf880 fix a couple things 2023-04-25 23:26:16 -05:00
snipe
5eeca937cb Added logic for syncing fieldset info
Signed-off-by: snipe <snipe@snipe.net>
2023-04-25 21:08:26 -07:00
snipe
662b7787a1 Updated redirect return
Signed-off-by: snipe <snipe@snipe.net>
2023-04-25 21:07:50 -07:00
snipe
28d9cec1e3 Added auto_add_to_fieldsets to API response
Signed-off-by: snipe <snipe@snipe.net>
2023-04-25 20:59:48 -07:00
snipe
67212f9d57 Changed layout, added fieldsets
Signed-off-by: snipe <snipe@snipe.net>
2023-04-25 20:59:29 -07:00
snipe
6cd3cfe1ea Added new field to factory
Signed-off-by: snipe <snipe@snipe.net>
2023-04-25 20:57:03 -07:00
snipe
4a063d23b9 We don’t actually use this test?
Signed-off-by: snipe <snipe@snipe.net>
2023-04-25 19:36:52 -07:00
snipe
705bb7375a Merge pull request #12914 from marcusmoore/fixes/fix-test-cases
Fixes state leak between tests
2023-04-25 17:22:56 -07:00
snipe
4e3ccb74bc Fixed slightly weird padding
Signed-off-by: snipe <snipe@snipe.net>
2023-04-25 15:59:19 -07:00
snipe
4954b50280 Added new strings
Signed-off-by: snipe <snipe@snipe.net>
2023-04-25 15:57:46 -07:00
snipe
07336bbc6a Added auto_add_to_fieldsets field
Signed-off-by: snipe <snipe@snipe.net>
2023-04-25 15:51:36 -07:00
snipe
0e73923c24 Merge pull request #12913 from uberbrady/fix_scim_id_string
Change from a standard Eloquent mapping for ID to a custom setRead
2023-04-25 12:02:36 -07:00
Marcus Moore
a528ebeab0 Use superuser instead of admin state 2023-04-25 11:53:47 -07:00
Brady Wetherington
3da5df0127 Change from a standard Eloquent mapping for ID to a custom setRead 2023-04-25 11:50:55 -07:00
Godfrey M
20d8ff2a4f removed a typo 2023-04-25 11:49:33 -07:00
snipe
a7e2182ec9 Merge pull request #12904 from zacharyfleck/develop
Fixed #8342: Add ARM64 architecture to Docker Builds
2023-04-25 11:45:27 -07:00
Godfrey M
cb68f41d9c added ldap_location to settings 2023-04-25 11:44:04 -07:00
Zachary Fleck
af0a0276e0 Merge branch 'snipe:develop' into develop 2023-04-25 14:43:41 -04:00
Zachary Fleck
ef07f39ccf remove space 2023-04-25 14:43:34 -04:00
Zachary Fleck
aa223359d4 remove space 2023-04-25 14:42:09 -04:00
Godfrey M
c9eb1410d7 swaps version and open source text in the footer 2023-04-25 11:03:05 -07:00
snipe
b0e342508f Merge remote-tracking branch 'origin/develop' 2023-04-25 08:09:59 -07:00
snipe
efc0929bbc Merge pull request #12910 from snipe/fixes/finer_permissions_for_bulk_assets
Added more granular permissions on bulk actions for assets
2023-04-25 08:09:30 -07:00
snipe
66ce02fc48 Added permission on restore
Signed-off-by: snipe <snipe@snipe.net>
2023-04-25 08:09:16 -07:00
snipe
6e7f0728fd Added more granular permissions on bulk actions for assets
Signed-off-by: snipe <snipe@snipe.net>
2023-04-25 08:06:45 -07:00
Marcus Moore
b4f162f316 Fix operator in where clause 2023-04-24 17:26:06 -07:00
akemidx
9cd2783185 Regex added for link instead 2023-04-24 20:07:21 -04:00
zacharyfleck
63ade327a5 add ARM64 architecture 2023-04-24 16:24:44 -04:00
Godfrey M
b8c424fca0 adds users total cost to user profile 2023-04-24 09:17:42 -07:00
snyk-bot
056790e9cd fix: upgrade bootstrap-table from 1.21.3 to 1.21.4
Snyk has created this PR to upgrade bootstrap-table from 1.21.3 to 1.21.4.

See this package in npm:
https://www.npmjs.com/package/bootstrap-table

See this project in Snyk:
https://app.snyk.io/org/snipe/project/3d53e1dd-b8bf-46b5-ba61-18ce26933166?utm_source=github&utm_medium=referral&page=upgrade-pr
2023-04-22 14:47:28 +00:00
snipe
0c425ed0e7 Merge remote-tracking branch 'origin/develop' 2023-04-21 05:19:19 -07:00
snipe
7d9062c065 Merge pull request #12877 from joelpittet/patch-1
Allow an environment variable to set the session cookie path
2023-04-21 04:45:17 -07:00
snipe
fc721a9388 Merge pull request #12887 from marcusmoore/bug/sc-23158
Fix: Ensure users editing themselves do not deactivate their account
2023-04-21 04:42:04 -07:00
snyk-bot
6af3ab8954 fix: upgrade webpack from 5.76.2 to 5.77.0
Snyk has created this PR to upgrade webpack from 5.76.2 to 5.77.0.

See this package in npm:
https://www.npmjs.com/package/webpack

See this project in Snyk:
https://app.snyk.io/org/snipe/project/3d53e1dd-b8bf-46b5-ba61-18ce26933166?utm_source=github&utm_medium=referral&page=upgrade-pr
2023-04-21 06:57:42 +00:00
Marcus Moore
2aba8252f3 Ensure users editing themselves do not deactivate their account 2023-04-20 21:59:55 -07:00
akemidx
16a5a883e5 new request, preparing support_url for validation 2023-04-20 16:34:25 -04:00
snipe
c3c22fae3c Merge pull request #12885 from inietov/fixes/error_call_member_function_totalSeatsByLicenseID
Fixed Call to a member function totalSeatsByLicenseID() on null
2023-04-20 10:43:28 -07:00
Ivan Nieto Vivanco
747d6cfdb4 Change the flow of the condition using an early return 2023-04-20 10:37:26 -06:00
Ivan Nieto Vivanco
ae53609b1b Declare variables only if license is found 2023-04-20 10:16:11 -06:00
Marcus Moore
c357d9f01e Update data provider name 2023-04-19 18:10:23 -07:00
Marcus Moore
645f6ed692 Remove unneeded doc block 2023-04-19 17:52:44 -07:00
Godfrey M
97df39001d adds optional breakdowns for total cost 2023-04-19 17:51:37 -07:00
Marcus Moore
dd40798c43 Remove unneeded comments 2023-04-19 17:49:31 -07:00
Godfrey M
6872f8da7b adding total cost to user view 2023-04-19 17:31:09 -07:00
Marcus Moore
e92c1e7bea Minor docblock update 2023-04-19 17:22:56 -07:00
Godfrey M
bd212b3108 adds component costs to asset view 2023-04-19 16:35:06 -07:00
Joel Pittet
608c5d037f Use environment variable and default to PHP's sendmail_path
Use sendmail_path in PHP instead of hardcoded path and options
2023-04-19 15:25:48 -07:00
Joel Pittet
351928adff Allow an environment variable to set the session cookie path 2023-04-19 15:18:50 -07:00
Marcus Moore
144382e57a Update docblock types 2023-04-19 12:31:12 -07:00
Marcus Moore
835f8876c4 Move notification sending into try catch block 2023-04-19 12:26:48 -07:00
snipe
4a5426f959 Merge pull request #12875 from Godmartinz/sidebar_undeployable_runaway_parenthesis
Fixed space from un deployable total in sidebar
2023-04-19 11:49:42 -07:00
Marcus Moore
15280c435e Merge branch 'develop' into bug/sc-15034 2023-04-19 11:45:16 -07:00
Godfrey M
0e1f50c226 adds checkout-range to jquery 2023-04-19 10:11:26 -07:00
Godfrey M
d2118ba230 removed space from un deployable total in sidebar 2023-04-19 09:46:15 -07:00
Godfrey M
8a5612d1c9 fixes comment 2023-04-19 09:13:43 -07:00
Godfrey M
bdd1045272 adds a checkout range for custom asset reports 2023-04-19 09:11:44 -07:00
snipe
fd5cb32dd9 Honor the “update” flag
Signed-off-by: snipe <snipe@snipe.net>
2023-04-18 16:34:47 -07:00
snipe
345662c5c2 Rearrange some of the user creation logic
Signed-off-by: snipe <snipe@snipe.net>
2023-04-18 16:34:10 -07:00
snipe
003cd372dd New location same CSV
Signed-off-by: snipe <snipe@snipe.net>
2023-04-18 16:23:07 -07:00
Godfrey M
0ab400f5bc removed deadspace and pull 2023-04-18 15:23:11 -07:00
Godfrey M
f15b0d8591 fix for footer 2023-04-18 15:20:38 -07:00
snipe
aedfef78d3 Update app/Importer/LocationImporter.php
Co-authored-by: Marcus Moore <contact@marcusmoore.io>
2023-04-18 13:26:23 -07:00
Marcus Moore
bad2eead4c Remove test method 2023-04-18 13:13:57 -07:00
Marcus Moore
508660b1df Skip notifications for component checkouts and checkins 2023-04-18 13:07:55 -07:00
snipe
c68563ae08 Merge remote-tracking branch 'origin/develop' 2023-04-18 13:01:37 -07:00
snipe
a84a9a8dec Merge pull request #12867 from snipe/fixes/clearer_tooltip_text_for_non_assets_undeployable
Small tooltip improvements for undeployable items in table view
2023-04-18 13:00:11 -07:00
snipe
d3bdaf7cd3 Fixed destination name
Signed-off-by: snipe <snipe@snipe.net>
2023-04-18 12:59:46 -07:00
snipe
92f516484e Small tooltip improvements for undeployable items
Signed-off-by: snipe <snipe@snipe.net>
2023-04-18 12:54:06 -07:00
snipe
b626e5a3bf Merge remote-tracking branch 'origin/develop' 2023-04-18 12:33:32 -07:00
snipe
bfda46276a Merge pull request #12849 from snipe/features/adds_license_checkin_checkout_to_all_in_gui
Added license checkin/checkout to all in license GUI
2023-04-18 12:32:30 -07:00
snipe
031586495a Small cosmetic tweaks to 2FA reset class, fixed weird layout on 2FA reset button
Signed-off-by: snipe <snipe@snipe.net>
2023-04-18 12:09:41 -07:00
snipe
d871a14687 Added fa-fw for nicer display
Signed-off-by: snipe <snipe@snipe.net>
2023-04-18 11:49:40 -07:00
snipe
00a9591c4c Added autoassign_licenses in view, added fa-fw
Signed-off-by: snipe <snipe@snipe.net>
2023-04-18 11:49:29 -07:00
snipe
4d9d75379f Improved translation string
Signed-off-by: snipe <snipe@snipe.net>
2023-04-18 11:39:16 -07:00
snipe
41358eba85 Updated label
Signed-off-by: snipe <snipe@snipe.net>
2023-04-18 11:29:28 -07:00
snipe
59f4fe67d6 Removed duplicate tooltip
Signed-off-by: snipe <snipe@snipe.net>
2023-04-18 11:28:35 -07:00
Brady Wetherington
71fa6d765f Update to Latest Livewire files 2023-04-18 11:05:35 -07:00
Brady Wetherington
9793130f6c Merge branch 'develop' into laravel_v9 2023-04-18 11:01:00 -07:00
snipe
2c5c4ab974 Nicer layout
Signed-off-by: snipe <snipe@snipe.net>
2023-04-18 04:40:06 -07:00
snipe
95767c46ac Fixed delete modal
Signed-off-by: snipe <snipe@snipe.net>
2023-04-18 04:37:13 -07:00
snipe
0eadc00f4d Removed unneeded css class
Signed-off-by: snipe <snipe@snipe.net>
2023-04-18 04:37:04 -07:00
snipe
df7b19bc1e Removed unused validations
Signed-off-by: snipe <snipe@snipe.net>
2023-04-18 04:35:06 -07:00
snipe
7aab4290c7 Updated tooltips with data-tooltip=true from old method
Signed-off-by: snipe <snipe@snipe.net>
2023-04-18 02:44:50 -07:00
snipe
3a808aa806 Updated method for available seat count
Signed-off-by: snipe <snipe@snipe.net>
2023-04-18 02:44:33 -07:00
snipe
4d09021e9c Compact tooltip for un-deletable
Signed-off-by: snipe <snipe@snipe.net>
2023-04-18 02:44:19 -07:00
snipe
beba31afbf Added tooltip for disabled delete buttons
Signed-off-by: snipe <snipe@snipe.net>
2023-04-18 02:44:09 -07:00
snipe
41490f1e3a Use “name” instead of “license” for consistency
Signed-off-by: snipe <snipe@snipe.net>
2023-04-18 02:43:59 -07:00
snipe
9da36833be Removed unused method
Signed-off-by: snipe <snipe@snipe.net>
2023-04-18 02:43:44 -07:00
snipe
dc6eb6f104 Throw a warning if there were no users affected
Signed-off-by: snipe <snipe@snipe.net>
2023-04-18 02:07:17 -07:00
snipe
a8a3ca3624 Use count on availSeats
Signed-off-by: snipe <snipe@snipe.net>
2023-04-18 02:06:42 -07:00
snipe
e84ba0c7a0 Revert back to old method name
Signed-off-by: snipe <snipe@snipe.net>
2023-04-18 02:06:32 -07:00
snipe
3e53870b37 Updated language
Signed-off-by: snipe <snipe@snipe.net>
2023-04-18 02:00:13 -07:00
snipe
8a41f37054 Persists buttons through tabs
Signed-off-by: snipe <snipe@snipe.net>
2023-04-18 02:00:06 -07:00
snipe
9f7058a128 Revert "Renamed/refactorered licenses method"
This reverts commit de78f8d41f.

Signed-off-by: snipe <snipe@snipe.net>
2023-04-18 01:36:34 -07:00
snipe
ec0413254e Removed action menu
Signed-off-by: snipe <snipe@snipe.net>
2023-04-18 01:09:40 -07:00
snipe
f21d9c27e6 Use new translations for logs
Signed-off-by: snipe <snipe@snipe.net>
2023-04-18 01:07:26 -07:00
snipe
725adebffe Translate log message
Signed-off-by: snipe <snipe@snipe.net>
2023-04-18 01:07:12 -07:00
snipe
bfcbd9628a Refactored license controller with new counts
Signed-off-by: snipe <snipe@snipe.net>
2023-04-18 01:02:58 -07:00
snipe
220e20d208 Changed tooltip invocation
Signed-off-by: snipe <snipe@snipe.net>
2023-04-18 01:02:36 -07:00
snipe
d3b087b5da Clearer padding between buttons, added tooltips
Signed-off-by: snipe <snipe@snipe.net>
2023-04-18 01:02:19 -07:00
snipe
25a83c2915 Removed moved translations
Signed-off-by: snipe <snipe@snipe.net>
2023-04-18 01:02:01 -07:00
snipe
3f4159f058 Added translations
Signed-off-by: snipe <snipe@snipe.net>
2023-04-18 01:01:52 -07:00
snipe
de78f8d41f Renamed/refactorered licenses method
Signed-off-by: snipe <snipe@snipe.net>
2023-04-18 01:01:44 -07:00
snipe
6ab4314221 Removed unused method
Signed-off-by: snipe <snipe@snipe.net>
2023-04-18 01:01:13 -07:00
snipe
087f0e596a Fixed has to where
Signed-off-by: snipe <snipe@snipe.net>
2023-04-17 22:44:05 -07:00
snipe
0dd967cf2b Merge remote-tracking branch 'origin/develop' 2023-04-17 21:05:09 -07:00
snipe
912f6c45ee Reverted #12832
Signed-off-by: snipe <snipe@snipe.net>
2023-04-17 21:04:47 -07:00
snipe
9a73f5eca3 Updated production assets
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/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
2023-04-17 20:27:49 -07:00
snipe
9698c3b07b Updated dev assets
Signed-off-by: snipe <snipe@snipe.net>
2023-04-17 20:14:50 -07:00
snipe
3153013715 Fixed semicolon parse error from #12832
Signed-off-by: snipe <snipe@snipe.net>
2023-04-17 20:14:45 -07:00
snipe
c12ac9912c Merge pull request #12832 from Godmartinz/fix_footer_space
Fixed footer space when customized
2023-04-17 20:11:15 -07:00
snipe
2b10357c4e Updated dev assets
Signed-off-by: snipe <snipe@snipe.net>
2023-04-17 19:06:27 -07:00
Marcus Moore
f6cff90829 Migrate to new test settings interface 2023-04-17 17:31:12 -07:00
Marcus Moore
2d56675ade Merge branch 'develop' into bug/sc-15034
# Conflicts:
#	database/factories/SettingFactory.php
2023-04-17 17:22:55 -07:00
snipe
c70cb36c80 Merge pull request #12828 from Godmartinz/bug/sc-20783
Fixed dark themes pagination and notification drop menu
2023-04-17 16:26:36 -07:00
Godfrey M
247f47ce69 adjusts button color 2023-04-17 15:29:53 -07:00
snipe
99cecee4b5 Merge branch 'develop' into features/adds_license_checkin_checkout_to_all_in_gui 2023-04-17 14:54:30 -07:00
Godfrey M
aabd5e92a8 surrounding text aligns correctly 2023-04-17 12:44:06 -07:00
Godfrey M
247c881d87 add back casts 2023-04-17 12:10:54 -07:00
Godfrey M
1001b52c4f removes unncessary files 2023-04-17 12:01:09 -07:00
slong753
52dc99588e pushing for now, needs validation work 2023-04-17 13:57:48 -05:00
Godfrey M
0cca45d858 footer now uses flex 2023-04-17 11:57:35 -07:00
snipe
b22cad9ced Merge pull request #12855 from koelle25/fixes/last_component_checkout
Allow checkout of available components down to zero stock (fixes #12854)
2023-04-17 09:49:14 -07:00
snipe
071a620144 Merge remote-tracking branch 'origin/develop' 2023-04-17 09:36:07 -07:00
snipe
920711dd16 Merge pull request #12857 from snipe/fixes/wtf_datetime_stuff
Remove start/end dates form casts array
2023-04-17 09:35:03 -07:00
snipe
e0c53d8d09 Remove start/end dates form casts array
Signed-off-by: snipe <snipe@snipe.net>
2023-04-17 09:33:31 -07:00
Kevin Köllmann
04f3c4bf69 Fixed #12854: Allow checkout of available components down to zero stock 2023-04-17 11:45:11 +02:00
snipe
a83991041a Better placement for errors
Signed-off-by: snipe <snipe@snipe.net>
2023-04-16 16:08:06 -07:00
snipe
0afaaa4a6b Added autoassign_licenses option to create admin
Signed-off-by: snipe <snipe@snipe.net>
2023-04-16 15:28:08 -07:00
snipe
16ab2bec06 Added sorting and searching on autoassign_licenses via user API
Signed-off-by: snipe <snipe@snipe.net>
2023-04-16 15:27:39 -07:00
snipe
4b66ca6ac5 Added method to bulk checkin (much simpler than checking out)
Signed-off-by: snipe <snipe@snipe.net>
2023-04-16 15:27:15 -07:00
snipe
844ad83431 Added method to bulk checkout license seats
Signed-off-by: snipe <snipe@snipe.net>
2023-04-16 15:26:59 -07:00
snipe
9833d861d4 Added autoassign_licenses tp bulk users conditional
Signed-off-by: snipe <snipe@snipe.net>
2023-04-16 15:26:33 -07:00
snipe
03cc55cb6a Set autoassign_licenses to false if unchecked
Signed-off-by: snipe <snipe@snipe.net>
2023-04-16 15:25:52 -07:00
snipe
6a94a2f515 Return true/false for autoassign_licenses in the API
Signed-off-by: snipe <snipe@snipe.net>
2023-04-16 15:25:26 -07:00
snipe
f40bef8f9b Added autoassign_licenses to user importer
Signed-off-by: snipe <snipe@snipe.net>
2023-04-16 15:25:08 -07:00
snipe
6acce098c9 Added autoassign_licenses on user model
Signed-off-by: snipe <snipe@snipe.net>
2023-04-16 15:24:56 -07:00
snipe
73cf62e060 Added autoassign_licenses to presenter
Signed-off-by: snipe <snipe@snipe.net>
2023-04-16 15:24:00 -07:00
snipe
dd78d2fc66 Added language strings
Signed-off-by: snipe <snipe@snipe.net>
2023-04-16 15:23:51 -07:00
snipe
add9e561f9 Added buttons on license page, greyed out where appriate
Signed-off-by: snipe <snipe@snipe.net>
2023-04-16 15:23:42 -07:00
snipe
ff9af7ea74 Added genetic modal partial
Signed-off-by: snipe <snipe@snipe.net>
2023-04-16 15:23:15 -07:00
snipe
bc7c0aa80d Fixed clone tooltip
Signed-off-by: snipe <snipe@snipe.net>
2023-04-16 15:23:00 -07:00
snipe
73188df090 Added autoassign_licenses to bulk user edit
Signed-off-by: snipe <snipe@snipe.net>
2023-04-16 15:22:37 -07:00
snipe
cf7f244942 Added (clarified?) edit autoassign_licenses in user edit
Signed-off-by: snipe <snipe@snipe.net>
2023-04-16 15:19:37 -07:00
snipe
06d46a4523 Indenting change for clarity
Signed-off-by: snipe <snipe@snipe.net>
2023-04-16 15:17:55 -07:00
snipe
8e5042418a Added buttons
Signed-off-by: snipe <snipe@snipe.net>
2023-04-16 12:30:32 -07:00
snipe
79ff6a8fc2 Disallow deleting in the API view if there are things checked out
Signed-off-by: snipe <snipe@snipe.net>
2023-04-16 12:30:23 -07:00
snipe
8183b8deba Added stub method
Signed-off-by: snipe <snipe@snipe.net>
2023-04-16 12:30:02 -07:00
snipe
0210ecde88 Include confirm modal
Signed-off-by: snipe <snipe@snipe.net>
2023-04-16 12:29:55 -07:00
snipe
b2940f9915 Added confirm modal
Signed-off-by: snipe <snipe@snipe.net>
2023-04-16 12:29:48 -07:00
snipe
b093e428b3 Merge remote-tracking branch 'origin/develop' 2023-04-16 08:54:38 -07:00
snipe
144a6f28ec Added intval
Signed-off-by: snipe <snipe@snipe.net>
2023-04-16 08:54:23 -07:00
snipe
65ac877918 Merge remote-tracking branch 'origin/develop' 2023-04-16 08:50:20 -07:00
snipe
f50b958b63 Merge pull request #12848 from snipe/fixes/make_limit_into_singletons
Used a singleton to filter API limit value
2023-04-16 08:48:28 -07:00
snipe
64256351d8 Used a singleton to filter API limit value
Signed-off-by: snipe <snipe@snipe.net>
2023-04-16 08:46:39 -07:00
snipe
62edc0ab7d Merge remote-tracking branch 'origin/develop' 2023-04-16 08:02:44 -07:00
snipe
2c6d4d6b7f Merge pull request #12847 from snipe/features/moar_labels
Adds a few more auto-labels
2023-04-16 08:01:06 -07:00
snipe
2b11c96ce0 Adds a few more auto-labels
Signed-off-by: snipe <snipe@snipe.net>
2023-04-16 08:00:25 -07:00
snipe
78ec21acc4 Added location case
Signed-off-by: snipe <snipe@snipe.net>
2023-04-16 07:47:49 -07:00
snipe
5a1d03c1dc Added alias maps
Signed-off-by: snipe <snipe@snipe.net>
2023-04-16 07:47:42 -07:00
snipe
a831a34594 New field mapping
Signed-off-by: snipe <snipe@snipe.net>
2023-04-16 07:47:26 -07:00
snipe
bcf9188dcd Made default password longer
Signed-off-by: snipe <snipe@snipe.net>
2023-04-16 07:47:19 -07:00
snipe
c149885ceb Skip the magical user creation if it’s a location
Signed-off-by: snipe <snipe@snipe.net>
2023-04-16 07:47:04 -07:00
snipe
1509672463 Added location importer
Signed-off-by: snipe <snipe@snipe.net>
2023-04-16 07:46:36 -07:00
snipe
bceb0b8a47 Allowed slightly longer zip codes
Signed-off-by: snipe <snipe@snipe.net>
2023-04-16 07:46:29 -07:00
snipe
7534d27a03 Added CSV sample
Signed-off-by: snipe <snipe@snipe.net>
2023-04-16 07:46:18 -07:00
snipe
46cce0115e 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
2023-04-16 05:46:26 -07:00
snipe
485f5f3a45 Merge pull request #12845 from snipe/security/update_bs_tables
Upgrade bootstrap-table from 1.20.2 to 1.21.3 (Formerly #12733)
2023-04-16 05:44:52 -07:00
snipe
21f5d39fa1 Upgrade bootstrap-table from 1.20.2 to 1.21.3 (Formerly #12733)
Signed-off-by: snipe <snipe@snipe.net>
2023-04-16 05:43:42 -07:00
snipe
21e78bee71 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	package-lock.json
#	public/js/dist/bootstrap-table.js
#	public/mix-manifest.json
2023-04-15 21:05:18 -07:00
snipe
2eeb7ddf58 Merge pull request #12844 from snipe/fixes/small_blade_parial_fixes
Small blade parial fixes
2023-04-15 21:04:35 -07:00
snipe
589f7fa183 Larger qty box
Signed-off-by: snipe <snipe@snipe.net>
2023-04-15 21:03:09 -07:00
snipe
9ff62c966e Check for $item (matters mostly in custom report blade)
Signed-off-by: snipe <snipe@snipe.net>
2023-04-15 21:03:00 -07:00
snipe
86b04c7294 Updated prod assets
Signed-off-by: snipe <snipe@snipe.net>
2023-04-15 20:50:36 -07:00
snipe
2d03ea943b Applied webpack change from master to develop
Signed-off-by: snipe <snipe@snipe.net>
2023-04-15 20:49:34 -07:00
snipe
20ab412e1e Updated dev assets
Signed-off-by: snipe <snipe@snipe.net>
2023-04-15 20:45:35 -07:00
snipe
513b95e8d7 Merge pull request #12768 from snipe/snyk-upgrade-291b556667d6ffe966495405775b3255
[Snyk] Upgrade tableexport.jquery.plugin from 1.26.0 to 1.27.0
2023-04-15 20:44:57 -07:00
snipe
50153717f6 Merge pull request #12798 from snipe/snyk-upgrade-cec198178187b64d2348f74ddc10c797
[Snyk] Upgrade webpack from 5.76.1 to 5.76.2
2023-04-15 20:36:48 -07:00
snipe
32030c4f71 Merge remote-tracking branch 'origin/develop' 2023-04-15 18:44:25 -07:00
snipe
955539807c Merge pull request #12830 from snipe/features/adds_supplier_id_to_components
Added supplier to components and consumables
2023-04-15 18:42:23 -07:00
snipe
8c09226b76 Merge pull request #12834 from marcusmoore/mxm/improve-test-setup
Introduced improved way to interact with settings in tests
2023-04-15 18:37:34 -07:00
snipe
b73aed2b69 Merge remote-tracking branch 'origin/develop' 2023-04-15 18:30:21 -07:00
snipe
b9a5a8a500 Merge pull request #12843 from snipe/fixes/temp_fix_seeder
Temp fix for the seeders
2023-04-15 18:30:00 -07:00
snipe
8ae14c43f3 This is a temp fix for the seeders
Signed-off-by: snipe <snipe@snipe.net>
2023-04-15 18:27:53 -07:00
snipe
fc7f1f907d Fixed variable name
Signed-off-by: snipe <snipe@snipe.net>
2023-04-15 17:37:25 -07:00
snipe
f6cfec1e49 Merge pull request #12842 from snipe/fixes/take_two_better_handling_limits
Use abs() instead of max
2023-04-15 17:33:12 -07:00
snipe
4cbb9c2409 Use abs() instead of max
Signed-off-by: snipe <snipe@snipe.net>
2023-04-15 17:28:25 -07:00
snipe
a97b2d141d Merge pull request #12827 from snipe/fixes/tighter_handling_of_offset_and_limit
Better handling for weird data passed to the API via limit and offset
2023-04-15 16:52:33 -07:00
snipe
f407a551da Merge branch 'develop' of https://github.com/snipe/snipe-it into develop 2023-04-15 16:48:07 -07:00
snipe
36665fde31 Merge pull request #12833 from svpernova09/bump-dockerfile-22-04-php81
Update Dockerfile to Ubuntu 22.04 and PHP 8.1
2023-04-14 17:16:42 -07:00
Joe Ferguson
785d2f3558 Update alpine Dockerfiles to PHP 8.1 and Snipe-IT v6.1.0 2023-04-14 13:35:36 -05:00
Joe Ferguson
1d8a4ca090 Update Dockerfile to Ubuntu 22.04 and PHP 8.1 2023-04-14 07:59:16 -05:00
Marcus Moore
473241edca Move initialization of settings to trait 2023-04-13 16:52:20 -07:00
Godfrey M
42f198ffed fixes footer space when customized 2023-04-13 12:24:59 -07:00
Godfrey M
b16c062485 fixes partial 2023-04-13 12:05:59 -07:00
snipe
b690ed97d5 Fixed unclosed parens in translation file
Signed-off-by: snipe <snipe@snipe.net>
2023-04-13 12:05:06 -07:00
Godfrey M
ab67d903b5 adds multi select to custom report for companies 2023-04-13 12:02:11 -07:00
snipe
2fe7fcecdb Added case switch for sorting on suppliers
Signed-off-by: snipe <snipe@snipe.net>
2023-04-13 11:13:45 -07:00
snipe
d2b3e251ad Added counters to API controllers
Signed-off-by: snipe <snipe@snipe.net>
2023-04-13 11:12:16 -07:00
snipe
07c0a1927b Added supplier id to controllers
Signed-off-by: snipe <snipe@snipe.net>
2023-04-13 11:12:01 -07:00
snipe
ab7c75232b Added supplier to transformers
Signed-off-by: snipe <snipe@snipe.net>
2023-04-13 11:10:51 -07:00
snipe
6e183f2ced Added counters for consumables and components
Signed-off-by: snipe <snipe@snipe.net>
2023-04-13 11:10:32 -07:00
snipe
6097d534e9 Added eloquent model relationships
Signed-off-by: snipe <snipe@snipe.net>
2023-04-13 11:10:16 -07:00
snipe
3aac8bccd2 Added presenters for suppliers
Signed-off-by: snipe <snipe@snipe.net>
2023-04-13 11:09:59 -07:00
snipe
e7c6771e73 Added supplier to components and consumables factories for seeding
Signed-off-by: snipe <snipe@snipe.net>
2023-04-13 11:07:22 -07:00
snipe
45142c6888 Migration to add supplier ID to components and consumables
Signed-off-by: snipe <snipe@snipe.net>
2023-04-13 11:06:49 -07:00
snipe
607ab3988a Added supplier to edit/creatre blade
Signed-off-by: snipe <snipe@snipe.net>
2023-04-13 11:06:07 -07:00
snipe
b6d3f2827b Switched to standardized require check
Signed-off-by: snipe <snipe@snipe.net>
2023-04-13 11:05:52 -07:00
snipe
65bb0486d4 Changed blade to use standard required check
Signed-off-by: snipe <snipe@snipe.net>
2023-04-13 11:04:29 -07:00
snipe
a40bad0972 Added consumables and components columns to supplier list
Signed-off-by: snipe <snipe@snipe.net>
2023-04-13 11:04:13 -07:00
snipe
6eed89df91 Added components and consumables tab to suppliers
Signed-off-by: snipe <snipe@snipe.net>
2023-04-13 11:03:26 -07:00
Godfrey M
d476f0de3a forgot dark blue 2023-04-13 10:34:17 -07:00
Godfrey M
bbb4032050 fixes rest of dark mode themes 2023-04-13 10:32:42 -07:00
Godfrey M
b83daea265 fixes dark orange 2023-04-13 10:27:38 -07:00
Marcus Moore
7c95e45178 Introduce trait to conditionally interact with settings 2023-04-12 17:28:47 -07:00
Godfrey M
46ff738494 fixes the notification dropdown menu 2023-04-12 16:12:48 -07:00
akemidx
0a993b2aa1 added external link icon to warranty link 2023-04-12 18:52:21 -04:00
Godfrey M
cbb25025d5 fixes pagination for rest of skins 2023-04-12 15:41:04 -07:00
Godfrey M
f3d12351a6 fixes paginiation for black-dark 2023-04-12 15:23:56 -07:00
Godfrey M
2d27f0155a targeting paginiation 2023-04-12 15:06:06 -07:00
slong753
8b9aea8874 very much WIP, but dupe queries reduced
but i think this can be cleaned up a bit more
2023-04-12 14:46:48 -05:00
snipe
112a04b108 Better handle weird data passed to the API via limit and offset
Signed-off-by: snipe <snipe@snipe.net>
2023-04-12 11:28:46 -07:00
snipe
9a37273750 Merge remote-tracking branch 'origin/develop' 2023-04-12 08:28:50 -07:00
snipe
1a7201d3d9 Merge pull request #12826 from snipe/fixes/added_invalid_parse_to_dont_report
Added invalid parse to dontReport
2023-04-12 08:28:26 -07:00
snipe
74babfa081 Added maxlength="10"
Signed-off-by: snipe <snipe@snipe.net>
2023-04-12 08:26:36 -07:00
snipe
04f83d34ff Added withInput to carry over older fields
Signed-off-by: snipe <snipe@snipe.net>
2023-04-12 08:25:03 -07:00
snipe
aac76d40fe Merge remote-tracking branch 'origin/develop' 2023-04-12 06:37:01 -07:00
snipe
14ec96cf45 Merge pull request #12825 from snipe/fixes/wrong_button_string_on_bulk_user_edit
Fixed #12822 - Missing translation on bulk edit user submit button
2023-04-12 06:36:39 -07:00
snipe
0f3702b0fc Fixed incorrect translation string for bulk user edit
Signed-off-by: snipe <snipe@snipe.net>
2023-04-12 06:35:28 -07:00
snipe
0e93a9229d Merge remote-tracking branch 'origin/develop' 2023-04-12 06:32:06 -07:00
snipe
a119484277 Merge pull request #12824 from snipe/fixes/radio_button_submit_on_merge_users
Removed iCheck code from merge users script
2023-04-12 06:31:43 -07:00
snipe
89b031d64d Removed iCheck code from merge users script
Signed-off-by: snipe <snipe@snipe.net>
2023-04-12 06:30:52 -07:00
snipe
9ae9ea7f68 Merge remote-tracking branch 'origin/develop' 2023-04-12 04:36:30 -07:00
snipe
d3d464e179 Improved commenting
Signed-off-by: snipe <snipe@snipe.net>
2023-04-12 04:36:05 -07:00
snipe
28e0891645 Merge remote-tracking branch 'origin/develop' 2023-04-11 23:36:59 -07:00
snipe
c02bd54826 Merge pull request #12818 from snipe/fixes/better_error_handling_on_dates
Check for Carbon exception
2023-04-11 23:36:42 -07:00
snipe
afd01869a5 Check for Carbon exception
Signed-off-by: snipe <snipe@snipe.net>
2023-04-11 23:35:41 -07:00
akemidx
2453913080 dynamic link w/ dynamic image 2023-04-11 14:53:44 -04:00
akemidx
71ff987e3c dynamic link w/ dynamic image 2023-04-11 14:32:11 -04:00
akemidx
a65b8025b6 push for testing 2023-04-11 13:53:56 -04:00
akemidx
968701b971 starting to implant the str lower solution 2023-04-10 17:28:19 -04:00
snipe
22336da362 Merge remote-tracking branch 'origin/develop' 2023-04-09 14:08:03 -07:00
snipe
79a8effa25 Merge pull request #12810 from snipe/fixes/maintain_checkbox_state_on_user
Maintain activated state on editing a user
2023-04-09 14:07:41 -07:00
snipe
70ce0d9ee6 Maintain activated state on editing a user
Signed-off-by: snipe <snipe@snipe.net>
2023-04-09 14:06:29 -07:00
snipe
b3fab6d47d Merge remote-tracking branch 'origin/develop' 2023-04-07 10:47:48 -07:00
snipe
b886f57d92 Merge pull request #12807 from snipe/fixes/handle_arrays_on_validation_failure
Echo out the array values in withInput()
2023-04-07 10:47:15 -07:00
snipe
19d5d34ffb Echo out the array values in withInput()
Signed-off-by: snipe <snipe@snipe.net>
2023-04-07 10:16:35 -07:00
snipe
b09b562f3a Merge remote-tracking branch 'origin/develop' 2023-04-07 09:46:02 -07:00
snipe
42eef7eb3f Merge pull request #12803 from snipe/fixes/small_component_fixes
Small component UI/validation/API fixes
2023-04-07 09:45:36 -07:00
snipe
baf267e2e9 Small cleanups
Signed-off-by: snipe <snipe@snipe.net>
2023-04-07 09:45:16 -07:00
snipe
cb76815e8b Removed if check on assets, since that’s already handled via validation
Signed-off-by: snipe <snipe@snipe.net>
2023-04-07 09:42:31 -07:00
snipe
42a60a9ccb Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	config/version.php
2023-04-07 08:22:24 -07:00
snipe
734b888de4 Merge pull request #12804 from insert-waffle/remove-unnecessary-vulgar-text
Remove "FARTS" from bpay.blade.php
2023-04-07 08:19:40 -07:00
Jens Maes
c42078ea4a Update bpay.blade.php
Removed FARTS from the file. This was shown in production on the master branch.
2023-04-07 10:15:34 +02:00
snipe
4c88c751ef Code cleanup, better validation
Signed-off-by: snipe <snipe@snipe.net>
2023-04-06 22:03:40 -07:00
snipe
358b0548fa Added string for translations
Signed-off-by: snipe <snipe@snipe.net>
2023-04-06 22:03:26 -07:00
snipe
43ad0f58b5 SLightly cleaner layout - still needs work
Signed-off-by: snipe <snipe@snipe.net>
2023-04-06 22:03:15 -07:00
snipe
0abb993600 General cleanup and standardization for component API
Signed-off-by: snipe <snipe@snipe.net>
2023-04-06 22:02:57 -07:00
snipe
87c7d1aaca Bumped hash
Signed-off-by: snipe <snipe@snipe.net>
2023-04-06 20:43:42 -07:00
snipe
1ee1cf1d78 Merge pull request #12802 from snipe/fixes/consumables_checkout_when_0_qty
Check for available quantity on consumables before checkout
2023-04-06 20:39:57 -07:00
snipe
4840046f44 Check for available quantity on consumables before checkout
Signed-off-by: snipe <snipe@snipe.net>
2023-04-06 20:38:02 -07:00
snipe
0414954d3e Merge pull request #12801 from snipe/translations/updated_for_v6.1.0
Translations/updated for v6.1.0
2023-04-06 19:58:41 -07:00
snipe
574b0184fc Updated Zulu
Signed-off-by: snipe <snipe@snipe.net>
2023-04-06 19:57:35 -07:00
snipe
9db5e328c9 Updated Chinese Traditional
Signed-off-by: snipe <snipe@snipe.net>
2023-04-06 19:57:28 -07:00
snipe
0a77216b6f Updated Chinese Traditional, Hong Kong
Signed-off-by: snipe <snipe@snipe.net>
2023-04-06 19:57:03 -07:00
snipe
44b4274a49 Updated Chinese Simplified
Signed-off-by: snipe <snipe@snipe.net>
2023-04-06 19:56:43 -07:00
snipe
7711540514 Updated Vietnamese
Signed-off-by: snipe <snipe@snipe.net>
2023-04-06 19:55:47 -07:00
snipe
4d7b2b5747 Updated Urdu (Pakistan)
Signed-off-by: snipe <snipe@snipe.net>
2023-04-06 19:55:06 -07:00
snipe
6f92144b96 Updated Ukrainian
Signed-off-by: snipe <snipe@snipe.net>
2023-04-06 19:54:41 -07:00
snipe
8446f456ab Updated Turkish
Signed-off-by: snipe <snipe@snipe.net>
2023-04-06 19:54:06 -07:00
snipe
d5b4971371 Updated Tagalog
Signed-off-by: snipe <snipe@snipe.net>
2023-04-06 19:53:35 -07:00
snipe
0686e1e7c4 Updated Thai
Signed-off-by: snipe <snipe@snipe.net>
2023-04-06 19:52:36 -07:00
snipe
6143f28bb9 Updated Tamil
Signed-off-by: snipe <snipe@snipe.net>
2023-04-06 19:52:03 -07:00
snipe
0e2dd5d76c Updated Swedish
Signed-off-by: snipe <snipe@snipe.net>
2023-04-06 19:51:37 -07:00
snipe
eae5e7b35d Updated Serbian (Latin)
Signed-off-by: snipe <snipe@snipe.net>
2023-04-06 19:51:15 -07:00
snipe
4f8dc54872 Updated Slovenian
Signed-off-by: snipe <snipe@snipe.net>
2023-04-06 19:50:34 -07:00
snipe
81129ed91f Updated Slovak
Signed-off-by: snipe <snipe@snipe.net>
2023-04-06 19:49:54 -07:00
snipe
48dff4681b Updated Sinhala
Signed-off-by: snipe <snipe@snipe.net>
2023-04-06 19:48:25 -07:00
snipe
40bb5bb4f0 Updated Russian
Signed-off-by: snipe <snipe@snipe.net>
2023-04-06 19:47:56 -07:00
snipe
51f1ad6693 Updated Romanian
Signed-off-by: snipe <snipe@snipe.net>
2023-04-06 19:46:22 -07:00
snipe
ca49923371 Updated Portuguese, European
Signed-off-by: snipe <snipe@snipe.net>
2023-04-06 19:45:54 -07:00
snipe
d9d3d11cc6 Updated Portuguese, Brazilan
Signed-off-by: snipe <snipe@snipe.net>
2023-04-06 19:45:42 -07:00
snipe
b7537a73b2 Updated Polish
Signed-off-by: snipe <snipe@snipe.net>
2023-04-06 19:45:10 -07:00
snipe
98aa8623d3 Updated Norwegian
Signed-off-by: snipe <snipe@snipe.net>
2023-04-06 19:44:48 -07:00
snipe
aa9420cbad Updated Dutch
Signed-off-by: snipe <snipe@snipe.net>
2023-04-06 19:44:15 -07:00
snipe
9b7ab63277 Updated Malay
Signed-off-by: snipe <snipe@snipe.net>
2023-04-06 19:43:38 -07:00
snipe
d588b2905d Updated Mongolian
Signed-off-by: snipe <snipe@snipe.net>
2023-04-06 19:43:12 -07:00
snipe
c176f3d030 Updated Malayalam
Signed-off-by: snipe <snipe@snipe.net>
2023-04-06 19:42:40 -07:00
snipe
173e2add88 Updated Macedonian
Signed-off-by: snipe <snipe@snipe.net>
2023-04-06 19:42:14 -07:00
snipe
359d8d0e08 Updated Maori
Signed-off-by: snipe <snipe@snipe.net>
2023-04-06 19:41:36 -07:00
snipe
2ea03f66a2 Updated Latvian
Signed-off-by: snipe <snipe@snipe.net>
2023-04-06 19:40:55 -07:00
snipe
d2301dae63 Updated Lithuanian
Signed-off-by: snipe <snipe@snipe.net>
2023-04-06 19:40:21 -07:00
snipe
e24a9ccf1c Updated Korean
Signed-off-by: snipe <snipe@snipe.net>
2023-04-06 19:39:35 -07:00
snipe
227d7e75a3 Updated Japanese
Signed-off-by: snipe <snipe@snipe.net>
2023-04-06 19:38:59 -07:00
snipe
8befc23178 Updated Inuktitut
Signed-off-by: snipe <snipe@snipe.net>
2023-04-06 19:38:17 -07:00
snipe
9eac3c2e64 Updated Italian
Signed-off-by: snipe <snipe@snipe.net>
2023-04-06 19:37:42 -07:00
snipe
4c220df181 Updated Icelandic
Signed-off-by: snipe <snipe@snipe.net>
2023-04-06 19:36:58 -07:00
snipe
0703d037d6 Updated Indonesian
Signed-off-by: snipe <snipe@snipe.net>
2023-04-06 19:35:48 -07:00
snipe
28498857c2 Updated Hungarian
Signed-off-by: snipe <snipe@snipe.net>
2023-04-06 19:35:12 -07:00
snipe
7c4e73d660 Updated Croatian
Signed-off-by: snipe <snipe@snipe.net>
2023-04-06 19:34:31 -07:00
snipe
c42c9cc832 Updated Hebrew
Signed-off-by: snipe <snipe@snipe.net>
2023-04-06 19:33:41 -07:00
snipe
7cebbf48ee Updated Irish
Signed-off-by: snipe <snipe@snipe.net>
2023-04-06 19:32:55 -07:00
snipe
70745952b9 Updated French
Signed-off-by: snipe <snipe@snipe.net>
2023-04-06 19:32:12 -07:00
snipe
807509030c Updated Filipino
Signed-off-by: snipe <snipe@snipe.net>
2023-04-06 19:27:32 -07:00
snipe
0a673f4ffe Updated Finnish
Signed-off-by: snipe <snipe@snipe.net>
2023-04-06 19:27:01 -07:00
snipe
f1caf69f05 Updated Persian
Signed-off-by: snipe <snipe@snipe.net>
2023-04-06 19:26:15 -07:00
snipe
86532746b1 Updated Estonian
Signed-off-by: snipe <snipe@snipe.net>
2023-04-06 19:25:35 -07:00
snipe
94035e5e4b Updated Spanish, Venezuela
Signed-off-by: snipe <snipe@snipe.net>
2023-04-06 19:24:19 -07:00
snipe
5a84a1d15c Updated Spanish, Mexico
Signed-off-by: snipe <snipe@snipe.net>
2023-04-06 19:23:41 -07:00
snipe
48c924e0b2 Updated Spanish, Spain
Signed-off-by: snipe <snipe@snipe.net>
2023-04-06 19:23:16 -07:00
snipe
54deaf18d1 Updated Spanish, Colombia
Signed-off-by: snipe <snipe@snipe.net>
2023-04-06 19:22:57 -07:00
snipe
4f3617d271 Updated Indonesian English
Signed-off-by: snipe <snipe@snipe.net>
2023-04-06 19:21:43 -07:00
snipe
096be6e095 Updated British English
Signed-off-by: snipe <snipe@snipe.net>
2023-04-06 19:21:33 -07:00
snipe
02601a95e0 Updated Greek
Signed-off-by: snipe <snipe@snipe.net>
2023-04-06 19:20:09 -07:00
snipe
70653419cd Updated German Informal
Signed-off-by: snipe <snipe@snipe.net>
2023-04-06 19:19:24 -07:00
snipe
8f258d8454 Updated German
Signed-off-by: snipe <snipe@snipe.net>
2023-04-06 19:18:50 -07:00
snipe
9f26a30256 Updated Danish
Signed-off-by: snipe <snipe@snipe.net>
2023-04-06 19:18:16 -07:00
snipe
0b392286ce Updated Welsh
Signed-off-by: snipe <snipe@snipe.net>
2023-04-06 19:17:33 -07:00
snipe
5f56b30d19 Updated Czech
Signed-off-by: snipe <snipe@snipe.net>
2023-04-06 19:16:42 -07:00
snipe
ba7d8f1c07 Updated Catalan
Signed-off-by: snipe <snipe@snipe.net>
2023-04-06 19:15:38 -07:00
snipe
e391c1322c Updated Bulgarian
Signed-off-by: snipe <snipe@snipe.net>
2023-04-06 19:14:50 -07:00
snipe
f634640425 Updated Arabic
Signed-off-by: snipe <snipe@snipe.net>
2023-04-06 19:13:56 -07:00
snipe
4bcc1c6aa9 Updated Amharic
Signed-off-by: snipe <snipe@snipe.net>
2023-04-06 19:12:55 -07:00
snipe
88b98e6cf7 Updated Afrikaans
Signed-off-by: snipe <snipe@snipe.net>
2023-04-06 19:11:43 -07:00
snipe
a9bb2f78cc Fixed borked English string
Signed-off-by: snipe <snipe@snipe.net>
2023-04-06 19:11:35 -07:00
snipe
a8ca3ad2a9 Merge remote-tracking branch 'origin/develop' 2023-04-06 18:49:51 -07:00
Marcus Moore
cd0796ddda Allow Settings to be chainable 2023-04-06 18:46:29 -07:00
snipe
38a2f535ad Merge pull request #12799 from snipe/features/bm_script
Added BM JS
2023-04-06 18:46:16 -07:00
snipe
d120fd2a16 Merge remote-tracking branch 'origin/develop' 2023-04-06 18:42:22 -07:00
snipe
6b319bffff Merge pull request #12800 from snipe/fixes/accessories_checkout
Fixed accessories verifying that enough remain to be checked out
2023-04-06 18:42:01 -07:00
snipe
ffdc0d76f7 Fixed accessories verifying that enough remain to be checked out
Signed-off-by: snipe <snipe@snipe.net>
2023-04-06 18:40:29 -07:00
Marcus Moore
9561b66613 Add return types and docblock 2023-04-06 17:58:53 -07:00
Marcus Moore
95f195046d Move cache flush to testing helper 2023-04-06 17:50:24 -07:00
Marcus Moore
52c733b31d Add ability to set provided settings 2023-04-06 17:48:23 -07:00
Marcus Moore
8ac4d3aeea Move to a static constructor 2023-04-06 17:42:15 -07:00
Marcus Moore
bbfb6c338a Remove unused method 2023-04-06 17:28:16 -07:00
Marcus Moore
f767cc082f Introduce improved way to interact with settings in tests 2023-04-06 17:27:18 -07:00
snipe
74b471bbad Check for more specifics in env vars
Signed-off-by: snipe <snipe@snipe.net>
2023-04-06 16:24:46 -07:00
snipe
6ff3745adf Added BM JS
Signed-off-by: snipe <snipe@snipe.net>
2023-04-06 16:19:33 -07:00
snipe
3d26fbd82f Merge remote-tracking branch 'origin/develop' 2023-04-06 15:13:13 -07:00
snipe
383d48fd9c Merge pull request #12787 from Godmartinz/accessory_unavailable_message
Added unavailable message to prevent over-checkout of Accessories
2023-04-06 15:05:18 -07:00
snipe
c683233aa3 Updated production assets
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/build/vendor.js
#	public/js/dist/all.js
#	public/mix-manifest.json
2023-04-06 15:00:38 -07:00
snipe
bd4757ad7a Merge pull request #12779 from snipe/features/replace_icheck_with_only_css
Move from iCheck to pure CSS for radio and checkboxes
2023-04-06 14:58:33 -07:00
snipe
3d29748f7d Merge remote-tracking branch 'origin/develop' 2023-04-06 13:11:45 -07:00
Godfrey M
3d7c55deb3 removed an unncessary query 2023-04-06 13:06:05 -07:00
akemidx
cc88a361ca commiting 2023-04-06 15:01:01 -04:00
Godfrey M
55943d8897 uses numRemaining now 2023-04-06 10:05:17 -07:00
snipe
c1daac153b Updated string
Signed-off-by: snipe <snipe@snipe.net>
2023-04-06 09:17:47 -07:00
snipe
2a9f816bfe Prevent wrapping on buttons
Signed-off-by: snipe <snipe@snipe.net>
2023-04-06 09:04:56 -07:00
snipe
506021dbe3 Remove iCheck calls, fixed some bootstrap HTML
Signed-off-by: snipe <snipe@snipe.net>
2023-04-06 09:03:41 -07:00
snipe
f90a6fed91 Downgraded error logging to debug
Signed-off-by: snipe <snipe@snipe.net>
2023-04-06 09:02:15 -07:00
snyk-bot
4c05da37c1 fix: upgrade webpack from 5.76.1 to 5.76.2
Snyk has created this PR to upgrade webpack from 5.76.1 to 5.76.2.

See this package in npm:
https://www.npmjs.com/package/webpack

See this project in Snyk:
https://app.snyk.io/org/snipe/project/3d53e1dd-b8bf-46b5-ba61-18ce26933166?utm_source=github&utm_medium=referral&page=upgrade-pr
2023-04-06 14:48:49 +00:00
snipe
39e6ca82bb Merge pull request #12793 from snipe/fixes/use_app_url_more_consistently
Fixed #12772 - use the APP_URL config more consistently
2023-04-05 16:48:45 -07:00
snipe
161999fbca Fixed #12772 - use the APP_URL config more consistently
Signed-off-by: snipe <snipe@snipe.net>
2023-04-05 16:05:40 -07:00
snipe
6aec73c720 Merge pull request #12792 from snipe/fixes/eol_size
Fixed  #12776 - larger EOL field
2023-04-05 16:00:49 -07:00
snipe
5e6a6a81d5 Fixed #12776 - larger EOL text
Signed-off-by: snipe <snipe@snipe.net>
2023-04-05 16:00:02 -07:00
snipe
c24b398b6f Merge pull request #12790 from snipe/fixes/support_url
Updated support URL
2023-04-05 14:55:41 -07:00
snipe
752365aa85 Updated support URL
Signed-off-by: snipe <snipe@snipe.net>
2023-04-05 14:54:40 -07:00
snipe
4b4d4e98b6 Use enclosing span for HTML text in grid
Signed-off-by: snipe <snipe@snipe.net>
2023-04-05 14:10:57 -07:00
slong753
830e3e5594 cleanup 2023-04-05 15:27:28 -05:00
slong753
d56a4e7173 cleanup+formatting 2023-04-05 15:16:46 -05:00
snipe
9af2d0a6de Merge branch 'develop' into features/replace_icheck_with_only_css 2023-04-05 13:04:12 -07:00
snipe
2e45c4370c Merge pull request #12782 from marcusmoore/chore/update-crowdin-config
Update CrowdIn configuration to allow nested translations
2023-04-05 12:59:20 -07:00
Marcus Moore
5b4d5cadf4 Add tests for sending webhooks on asset and license seat checkin 2023-04-05 12:57:53 -07:00
Marcus Moore
3054d633b0 Improve comments and remove unused imports 2023-04-05 12:39:41 -07:00
Marcus Moore
3cc3662992 Send webhook notifications for accessory checkins when enabled 2023-04-05 12:36:24 -07:00
Marcus Moore
2187310abb Simplify test case names 2023-04-05 12:27:18 -07:00
Marcus Moore
b41902976b Improve test class names 2023-04-05 12:23:11 -07:00
Marcus Moore
6df8f0f35c Merge branch 'develop' into bug/sc-15034 2023-04-05 11:49:53 -07:00
Godfrey M
b038fe8f2e adds unavailable message to overcheckout 2023-04-05 10:00:39 -07:00
slong753
3929526a57 ok, this works but needs to be tested more 2023-04-04 18:57:51 -05:00
Marcus Moore
32351d0e48 Allow downloading nested CrowdIn translations 2023-04-04 15:35:31 -07:00
akemidx
f5122b01b1 Mock Up of the Buttons 2023-04-04 15:51:04 -04:00
snipe
ead5293ee0 Merge pull request #12765 from spencerrlongg/chore/sc-20230
Change protected $dates to casts
2023-04-04 01:29:24 -07:00
snipe
b376181cef Merge pull request #12769 from marcusmoore/chore/publish-test-stubs
Publishes test stubs
2023-04-04 01:28:47 -07:00
snipe
723ef36608 Merge pull request #12781 from snipe/fixes/color-picker-fix
Color picker UI fix
2023-04-04 00:34:07 -07:00
snipe
55857c910a Color picker UI fix
Signed-off-by: snipe <snipe@snipe.net>
2023-04-04 00:33:05 -07:00
snipe
5919f3843d Small fixes to the color picker (sorry)
Signed-off-by: snipe <snipe@snipe.net>
2023-04-04 00:27:05 -07:00
snipe
6164e8b3fa Changed colors for disabled, removed dupe checkmark
Signed-off-by: snipe <snipe@snipe.net>
2023-04-03 23:53:57 -07:00
snipe
0e68b8e9f2 Small fixes for profile edits
Signed-off-by: snipe <snipe@snipe.net>
2023-04-03 23:06:09 -07:00
snipe
3bd87a2785 Removed iCheck
Signed-off-by: snipe <snipe@snipe.net>
2023-04-03 22:52:54 -07:00
snipe
5df34d0058 Diable SAML submit if in demo mode
Signed-off-by: snipe <snipe@snipe.net>
2023-04-03 22:40:25 -07:00
snipe
9a3e727390 Updated other form fields to use new label class, fixed HTML for accessibility
Signed-off-by: snipe <snipe@snipe.net>
2023-04-03 22:38:56 -07:00
snipe
aca64dc088 Updated check groups for permissions to skip iCheck
Signed-off-by: snipe <snipe@snipe.net>
2023-04-03 22:38:24 -07:00
snipe
3473e24de5 Updated assets
Signed-off-by: snipe <snipe@snipe.net>
2023-04-03 22:36:23 -07:00
snipe
1af7cdb715 Wrapped the image delete into the existing image upload partial
Signed-off-by: snipe <snipe@snipe.net>
2023-04-03 22:35:55 -07:00
snipe
2c47b63e91 Small tweaks to overrides
Signed-off-by: snipe <snipe@snipe.net>
2023-04-03 19:37:07 -07:00
snipe
a7787a6cdc Fixed string
Signed-off-by: snipe <snipe@snipe.net>
2023-04-03 19:20:58 -07:00
snipe
62c99d4e2e Added check all to user delete
Signed-off-by: snipe <snipe@snipe.net>
2023-04-03 19:19:28 -07:00
snipe
858f1c2d12 Updated audit with icheck, removed popover text - need a better solution with layout
Signed-off-by: snipe <snipe@snipe.net>
2023-04-03 19:19:12 -07:00
snipe
76b9608de3 Typo fix
Signed-off-by: snipe <snipe@snipe.net>
2023-04-03 19:18:40 -07:00
snipe
8b315a6502 Updated contrller to use trans_choice
Signed-off-by: snipe <snipe@snipe.net>
2023-04-03 18:55:09 -07:00
snipe
1ea813a1c5 Updated strings to trans_choice
Signed-off-by: snipe <snipe@snipe.net>
2023-04-03 18:54:59 -07:00
snipe
a861672146 Standardized model bulk blades a little more
Signed-off-by: snipe <snipe@snipe.net>
2023-04-03 18:54:46 -07:00
snipe
146976975c Removed <wire:ignore> in model edit for default custom fields
Signed-off-by: snipe <snipe@snipe.net>
2023-04-03 17:38:34 -07:00
snipe
58b3369234 Requestable partial - removing icheck
Signed-off-by: snipe <snipe@snipe.net>
2023-04-03 17:38:12 -07:00
snipe
21448f6adf Model edit - removing icheck
Signed-off-by: snipe <snipe@snipe.net>
2023-04-03 17:38:02 -07:00
snipe
899b936152 Models bulk edit - removing icheck
Signed-off-by: snipe <snipe@snipe.net>
2023-04-03 17:37:49 -07:00
snipe
866ba36090 Hardware editing un-icheckification
Signed-off-by: snipe <snipe@snipe.net>
2023-04-03 17:37:34 -07:00
snipe
60d60be0ac Small style specification for notes partial field
Signed-off-by: snipe <snipe@snipe.net>
2023-04-03 17:37:16 -07:00
snipe
5ed9385685 Clearer tab name for user info
Signed-off-by: snipe <snipe@snipe.net>
2023-04-03 17:09:25 -07:00
snipe
c05ee5db0e Built assets
Signed-off-by: snipe <snipe@snipe.net>
2023-04-03 17:08:54 -07:00
snipe
c5d74ac27f Additional form CSS tweaks for disabled and unchecked
Signed-off-by: snipe <snipe@snipe.net>
2023-04-03 17:08:47 -07:00
snipe
9146850ffe Added string for emailing user credentials
Signed-off-by: snipe <snipe@snipe.net>
2023-04-03 17:08:31 -07:00
snipe
2c5ddca695 More jquery and form fixes for users
Signed-off-by: snipe <snipe@snipe.net>
2023-04-03 17:08:21 -07:00
slong753
29e3d202fe checking something, quick push 2023-04-03 17:54:31 -05:00
snipe
790f9c2fc4 Updated 2FA to non-icheck
Signed-off-by: snipe <snipe@snipe.net>
2023-04-03 15:38:52 -07:00
snipe
b4df9eb586 More checkbox tweaks
Signed-off-by: snipe <snipe@snipe.net>
2023-04-03 15:33:21 -07:00
snipe
0d050e4016 Updated user edit page with with non-icheck toggles
Signed-off-by: snipe <snipe@snipe.net>
2023-04-03 14:55:12 -07:00
snipe
4035cd118e Handle the column selector in bs table styling
Signed-off-by: snipe <snipe@snipe.net>
2023-04-03 14:35:47 -07:00
snipe
5c89439ba3 Updated login page to use non-icheck
TODO: override that style for the labels
Signed-off-by: snipe <snipe@snipe.net>
2023-04-03 12:18:18 -07:00
snipe
85c0ddf475 Tweaked the col-md to use offset
Signed-off-by: snipe <snipe@snipe.net>
2023-04-03 12:17:49 -07:00
snipe
868615d5e7 Removed iCheck from snipeit.js and webpack
Signed-off-by: snipe <snipe@snipe.net>
2023-04-03 12:17:31 -07:00
snipe
5078b51d4d Removed temp disabled attributes
Signed-off-by: snipe <snipe@snipe.net>
2023-04-03 11:39:02 -07:00
snipe
e066f033c8 First attempt at moving us away from iCheck
Signed-off-by: snipe <snipe@snipe.net>
2023-04-03 10:54:01 -07:00
snipe
2d9ff795e3 Add @mezzle as a contributor 2023-04-02 09:00:03 -07:00
Marcus Moore
524249d4d7 Implement tests for webhook notifications on accessory checkout 2023-03-30 16:58:16 -07:00
Marcus Moore
44e05eecbf Publish test stubs 2023-03-30 16:42:59 -07:00
Marcus Moore
b2292db3c8 Implement tests for webhook notifications on consumable checkout 2023-03-30 16:40:53 -07:00
Marcus Moore
aefc53cfcf Explicitly disable webhook settings in tests 2023-03-30 16:40:21 -07:00
Marcus Moore
621d8500eb Merge branch 'develop' into bug/sc-15034 2023-03-30 16:17:42 -07:00
snyk-bot
91c67c3116 fix: upgrade tableexport.jquery.plugin from 1.26.0 to 1.27.0
Snyk has created this PR to upgrade tableexport.jquery.plugin from 1.26.0 to 1.27.0.

See this package in npm:
https://www.npmjs.com/package/tableexport.jquery.plugin

See this project in Snyk:
https://app.snyk.io/org/snipe/project/3d53e1dd-b8bf-46b5-ba61-18ce26933166?utm_source=github&utm_medium=referral&page=upgrade-pr
2023-03-30 22:55:38 +00:00
Marcus Moore
134ab631d4 Add test to ensure notification is not sent for license checkouts if not enabled 2023-03-30 15:38:22 -07:00
Marcus Moore
158e1544cd Test the event instead of the checkout 2023-03-30 15:38:00 -07:00
snipe
fcda478712 Merge remote-tracking branch 'origin/develop' 2023-03-30 14:51:23 -07:00
snipe
986c73982e Check if status is set
Signed-off-by: snipe <snipe@snipe.net>
2023-03-30 14:50:56 -07:00
snipe
080a4c823b Merge remote-tracking branch 'origin/develop' 2023-03-30 14:49:19 -07:00
snipe
ed8535a197 Merge pull request #12767 from snipe/fixes/bulk_restore
Quick fix for bulk restore menu
2023-03-30 14:48:43 -07:00
snipe
1fc0a0f94d Quick fix for bulk restore menu
Signed-off-by: snipe <snipe@snipe.net>
2023-03-30 14:44:38 -07:00
snipe
048be49c14 Merge remote-tracking branch 'origin/develop' 2023-03-30 14:37:47 -07:00
snipe
cfef9d8cca Merge pull request #12763 from inietov/fixes/call_to_member_function_licenses_on_null
Fixed Call to a Member Function Licenses() on null [sc-20606]
2023-03-30 14:20:13 -07:00
snipe
dfa9c07217 Merge pull request #12760 from akemidx/apple_warranty_link_fix2
Updating Apple warranty link to match current Apple webpage
2023-03-30 12:47:09 -07:00
akemidx
0c38257f80 fixing one liner 2023-03-30 15:40:23 -04:00
snipe
9ca5285781 Merge pull request #12762 from spencerrlongg/feature/sc-20304
Bulk Restore from Deleted
2023-03-30 12:37:50 -07:00
slong753
0f72554a9f translations for messages 2023-03-30 13:57:18 -05:00
slong753
382d849ee1 added catch for no assets selected 2023-03-30 13:52:29 -05:00
slong753
b84eaaf61a translations done 2023-03-30 13:48:05 -05:00
slong753
8c1c0e81b6 rm deplicates 2023-03-30 13:31:58 -05:00
snipe
b7c09042b0 Merge pull request #12758 from inietov/fixes/call_to_member_function_present_null
Fixed Call to a member function present() on null [sc-20594]
2023-03-30 11:01:38 -07:00
snipe
10c1e923dc Merge pull request #12764 from marcusmoore/fixes/importer-fix
Fixes potential unwanted overwrites in asset imports
2023-03-30 09:40:58 -07:00
slong753
e126a75f7a pretty sure this was it 2023-03-29 21:37:26 -05:00
Ivan Nieto Vivanco
d10b7fd6af Use firstorfail on eloquent query to return error if asset is not found 2023-03-29 19:11:28 -06:00
slong753
d5d50264c3 fix permissions stuff + optional parameter 2023-03-29 19:53:04 -05:00
Ivan Nieto Vivanco
d622dbb943 Revert the php codeblock and replace it with a ternary 2023-03-29 18:37:47 -06:00
snipe
da940a6bcc Merge remote-tracking branch 'origin/develop' 2023-03-29 17:19:50 -07:00
Marcus Moore
6beb3b551a Fix typo 2023-03-29 17:01:24 -07:00
Marcus Moore
0998c70a92 Remove unneeded import 2023-03-29 16:59:26 -07:00
Marcus Moore
9f8b8f6cc1 Remove unneeded variable 2023-03-29 16:58:55 -07:00
slong753
d033733fc0 oops, remove a couple things 2023-03-29 18:30:39 -05:00
slong753
e4c76f454c this is good, just needs translations done in view 2023-03-29 18:24:56 -05:00
slong753
162b70d5a9 wireframed, needs a view and should work 2023-03-29 17:34:36 -05:00
Marcus Moore
863a346d6e Translate strings 2023-03-29 13:37:14 -07:00
Marcus Moore
e05546d1fa Display helpful messages when importing assets 2023-03-29 13:23:45 -07:00
slong753
b0fa298d8f delete a couple things 2023-03-29 15:14:48 -05:00
slong753
65bbecd145 this all works - could use some eyes 2023-03-29 14:46:31 -05:00
akemidx
6bee4c1a75 Updating Apple warranty link to match current Apple webpage 2023-03-29 15:09:14 -04:00
Marcus Moore
4cbe683a1a Explicitly cast asset tag to string when querying 2023-03-29 11:28:04 -07:00
Marcus Moore
9cc74caa9e Add wire:model to import form checkboxes 2023-03-29 10:58:25 -07:00
Ivan Nieto Vivanco
d7c531e1c7 Checks if user variable exist before using its properties 2023-03-29 10:33:15 -06:00
Dominik Both
3271c9dc9f Fix #8208, #8896, #8985, #9789 2023-03-29 09:56:34 +02:00
slong753
032ae4348e custom fields display, need to get saving
+some clean up
2023-03-28 21:45:31 -05:00
slong753
804a788a27 initial fetch working 2023-03-28 20:31:24 -05:00
snipe
c9d1274edc Merge pull request #12753 from snipe/fixes/lang_for_group_not_found
Fixes/lang for group not found
2023-03-28 16:45:22 -07:00
snipe
32922e6461 Use corrected language string
Signed-off-by: snipe <snipe@snipe.net>
2023-03-28 16:39:52 -07:00
snipe
527c812d04 Use icon for group users header
Signed-off-by: snipe <snipe@snipe.net>
2023-03-28 16:39:41 -07:00
snipe
b57b5e23d9 Merge pull request #12752 from inietov/fixes/attempt_to_read_property_on_null
Fixed ErrorException: Attempt to read property "rtd_location_id" on null [sc-20562]
2023-03-28 16:32:34 -07:00
snipe
94de9edce7 Merge pull request #12751 from snipe/features/added_snipeagent_link
Added link to SnipeAgent
2023-03-28 16:27:03 -07:00
snipe
88826c1115 Added link to SnipeAgent
Signed-off-by: snipe <snipe@snipe.net>
2023-03-28 16:26:27 -07:00
Ivan Nieto Vivanco
77d513f80b Assign target variable as the other checkout types 2023-03-28 17:25:57 -06:00
Ivan Nieto Vivanco
d70b7dbf41 Checks if exist on API checkout 2023-03-28 16:12:48 -06:00
snipe
70764cc783 Merge remote-tracking branch 'origin/develop' 2023-03-28 14:27:14 -07:00
snipe
2306f30158 Updated author link to @Karpadiem
Signed-off-by: snipe <snipe@snipe.net>
2023-03-28 14:26:59 -07:00
snipe
99a05c6401 Merge remote-tracking branch 'origin/develop' 2023-03-28 13:43:24 -07:00
snipe
667a5a9274 Merge pull request #12750 from snipe/features/added_kandji_and_unifi_links
Added links to kandji2snipe and UnifiSnipeSync
2023-03-28 13:42:40 -07:00
snipe
a0eb9dc735 Added links to kandji2snipe and UnifiSnipeSync
Signed-off-by: snipe <snipe@snipe.net>
2023-03-28 13:41:58 -07:00
snipe
e03a961bcc Merge pull request #12747 from svpernova09/preflight-strings
Pre-Flight String fixes for step 2
2023-03-28 08:37:43 -07:00
Joe Ferguson
47e18db172 Fix next button string for Step 2 preflight 2023-03-28 10:30:56 -05:00
Joe Ferguson
d667ae53ed Add missing strings to Step 2 preflight 2023-03-28 10:30:35 -05:00
snipe
03aadc4abf Merge remote-tracking branch 'origin/develop' 2023-03-28 07:20:22 -07:00
snipe
099173fb94 Merge pull request #12744 from snipe/fixes/12742_wrong_url_on_requestable_models
Use named route with params
2023-03-28 07:19:49 -07:00
snipe
09674c012c Use named route with params
Signed-off-by: snipe <snipe@snipe.net>
2023-03-28 07:18:45 -07:00
snipe
c680274a92 Merge remote-tracking branch 'origin/develop' 2023-03-28 06:56:35 -07:00
snipe
52fd334745 Merge pull request #12743 from snipe/fixes/quieter_logging
Changed log level to debug vs info/error
2023-03-28 06:56:06 -07:00
snipe
feef06e7bf Changed log level to debug vs info/error
Signed-off-by: snipe <snipe@snipe.net>
2023-03-28 06:54:41 -07:00
snipe
d2daaf30eb Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	config/version.php
2023-03-28 03:32:04 -07:00
snipe
6800098469 Bumped version for 6.1.0-pre
Signed-off-by: snipe <snipe@snipe.net>
2023-03-28 03:31:02 -07:00
Marcus Moore
2cbc6276f7 Implement test for license checkout notification 2023-03-27 14:09:31 -07:00
Marcus Moore
362d5b9fd4 Merge branch 'develop' into bug/sc-15034 2023-03-27 11:46:30 -07:00
snipe
468805bab5 Merge pull request #12732 from svpernova09/preflight-translation-string-fixes
User preflight fix translation strings w/ bad path
2023-03-27 10:43:13 -07:00
Joe Ferguson
cd49f65c0b User preflight fix translation strings w/ bad path 2023-03-24 15:27:08 -05:00
snipe
dcbd216e2c Merge remote-tracking branch 'origin/develop' 2023-03-24 08:29:22 -07:00
snipe
008ba83128 Merge pull request #12729 from snipe/fixes/file_importer_string
Fixed translation string for importer
2023-03-24 08:28:51 -07:00
snipe
697cb4fe6d Fixed translation string for importer
Signed-off-by: snipe <snipe@snipe.net>
2023-03-24 08:27:53 -07:00
snipe
8a395d63a1 Merge remote-tracking branch 'origin/develop' 2023-03-24 07:23:06 -07:00
snipe
4d1e28ad03 Merge pull request #12727 from snipe/fixes/add_json_to_mimes
Fixed #12641 - added JSON to mimes
2023-03-24 07:22:30 -07:00
snipe
47eccb665e Merge pull request #12728 from snipe/fixes/fixes_typo_in_category_list
Use single “accessory” translation
2023-03-24 07:19:59 -07:00
snipe
150a2b572e Use single “accessory” translation
Signed-off-by: snipe <snipe@snipe.net>
2023-03-24 07:14:02 -07:00
snipe
6bc0df73e8 Merge pull request #12661 from Godmartinz/gh12655_missing_translations
Adds translations for category types to index and edit of categories
2023-03-24 07:09:40 -07:00
snipe
16dcc2d3ed Fixed #12641 - add JSON to mimes
Signed-off-by: snipe <snipe@snipe.net>
2023-03-24 06:57:43 -07:00
snipe
43c286c61f Merge remote-tracking branch 'origin/develop' 2023-03-24 06:18:10 -07:00
snipe
aa4bdd4eb3 Merge pull request #12726 from snipe/fixes/12724_custom_fields
Fixed #12724 - fieldset not saving on model
2023-03-24 06:17:42 -07:00
snipe
e869b1fd53 Fixed #12724 - fieldset not saving on model
Signed-off-by: snipe <snipe@snipe.net>
2023-03-24 06:11:24 -07:00
snipe
13ad69ee75 Merge pull request #12713 from inietov/fixes/trying_access_array_offset_null
Fixed Trying to access array offset on value of type null [sc-20528]
2023-03-24 04:52:56 -07:00
snipe
642d1e9f36 Merge pull request #12720 from inietov/fixes/undefined_array_key_266
Fixed Undefined array key 266 rollbar 17086
2023-03-24 04:50:47 -07:00
snipe
3792d3fdd2 Merge pull request #12721 from marcusmoore/fixes/allow-migrating-sqlite
Fixes the migration of sqlite databases
2023-03-24 04:50:15 -07:00
Marcus Moore
317335e79f Allow the migration of sqlite databases 2023-03-23 17:40:03 -07:00
Marcus Moore
fa69a580ab Start to scaffold license checkout notification test 2023-03-23 17:18:33 -07:00
Marcus Moore
fc043a35d9 Fix checkouts for licenses 2023-03-23 17:03:48 -07:00
Marcus Moore
25e859c866 Simplify test case 2023-03-23 16:42:21 -07:00
Marcus Moore
2dcf4e3d16 Standardize on sending anonymous notifications for asset checkouts 2023-03-23 16:31:40 -07:00
Marcus Moore
1f664709ba Merge branch 'develop' into bug/sc-15034
# Conflicts:
#	app/Notifications/CheckoutAssetNotification.php
2023-03-23 13:04:40 -07:00
Ivan Nieto Vivanco
fbb3684022 Add a condition to 'restart' the color index for the status pie chart 2023-03-23 12:43:02 -06:00
snipe
b91e914a61 Merge remote-tracking branch 'origin/develop' 2023-03-23 10:55:58 -07:00
snipe
fc3672c119 Merge pull request #12717 from marcusmoore/fixes/update-slack-property-names
Fixes calls to changed webhook properties names
2023-03-23 10:55:02 -07:00
Marcus Moore
9d2c4a4dee Update webhook message 2023-03-23 10:38:35 -07:00
Marcus Moore
fe6295a5e4 Update slack_* properties to webhook_* 2023-03-22 14:43:00 -07:00
Ivan Nieto Vivanco
aa8dfcf89f Added a ternary to avoid null offset in array 2023-03-22 13:48:23 -06:00
Marcus Moore
b396f2bed3 Update test case names 2023-03-22 12:41:30 -07:00
Marcus Moore
28ced46b9d Clean up test code 2023-03-22 12:38:14 -07:00
Marcus Moore
66224765ea Use factory state for webhook settings 2023-03-22 12:31:47 -07:00
Marcus Moore
9c4a3ce56a Update slack_endpoint to webhook_endpoint in test and notification 2023-03-22 12:27:36 -07:00
Marcus Moore
f6d0dd0f93 Merge branch 'develop' into bug/sc-15034 2023-03-22 11:58:47 -07:00
Marcus Moore
e303aeadd1 Fix test name 2023-03-22 11:56:54 -07:00
snipe
e8e1ada776 Merge pull request #12669 from akemidx/feature/sc-20178
#20178: Added Dell and Lenovo to warranty link function
2023-03-22 00:54:40 -07:00
snipe
58ea1592bb 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
#	resources/views/livewire/slack-settings-form.blade.php
2023-03-22 00:26:15 -07:00
snipe
f3785acf4d Merge pull request #12710 from snipe/localization/fixing_a_few_more_hardcoded_strings
Handled a few more hard-coded strings
2023-03-22 00:22:06 -07:00
snipe
545d023a18 Handled a few more hard-coded strings
Signed-off-by: snipe <snipe@snipe.net>
2023-03-21 23:56:07 -07:00
snipe
473211397f Merge pull request #12708 from uberbrady/livewire_importer_no_subcomponent
Livewire importer without subcomponent
2023-03-21 23:07:04 -07:00
snipe
e28d4fa588 Merge pull request #12709 from snipe/fixes/null_location_in_bulk_users
Ability to remove user location from users
2023-03-21 23:04:31 -07:00
snipe
e08327be95 Ability to remove user location from users
Rework of #9677 - sorry @godmartinez - I suck :(

Signed-off-by: snipe <snipe@snipe.net>
2023-03-21 23:03:57 -07:00
snipe
418ce75a9f Merge pull request #11431 from ntbutler-nbcs/develop
[Fix / Minor Change] Asset checkinbytag now consistent with existingAPI
2023-03-21 22:40:21 -07:00
Brady Wetherington
6fe520a55d Hooked various the contents of the components together 2023-03-21 22:26:32 -07:00
snipe
0418d390f0 Corrected width to 100%
I should not be allowed to touch computers

Signed-off-by: snipe <snipe@snipe.net>
2023-03-21 22:25:15 -07:00
snipe
b3d5bb75a3 Apply master patch to develop because I am an idiot on the wrong branch
Signed-off-by: snipe <snipe@snipe.net>
2023-03-21 22:23:09 -07:00
snipe
5346ebba94 Make select2 list in slack settings not searchable
Signed-off-by: snipe <snipe@snipe.net>
2023-03-21 22:21:21 -07:00
snipe
6c2c36469a Merge remote-tracking branch 'origin/develop' 2023-03-21 22:18:53 -07:00
snipe
1fa9f80c03 Correctly disable the select2 in demo mode
Signed-off-by: snipe <snipe@snipe.net>
2023-03-21 22:18:42 -07:00
snipe
4efac7827b Trying other save method, I guess?
Signed-off-by: snipe <snipe@snipe.net>
2023-03-21 22:10:30 -07:00
snipe
b45dc09f57 Merge pull request #12707 from snipe/fixes/fixed_migration_for_demo
Fixes back-in-time Slack v slack migration
2023-03-21 22:01:17 -07:00
snipe
76425ca2a5 Fixes back-in-time Slack v slack migration
Signed-off-by: snipe <snipe@snipe.net>
2023-03-21 21:59:17 -07:00
snipe
e609130291 Merge pull request #12706 from snipe/fixes/static_helper
Forgot the static method declaration - derp
2023-03-21 21:21:56 -07:00
snipe
41eb2464e2 Forgot the static method declaration - derp
Signed-off-by: snipe <snipe@snipe.net>
2023-03-21 21:21:01 -07:00
snipe
8aec28fad6 Merge remote-tracking branch 'origin/develop' 2023-03-21 21:14:06 -07:00
snipe
e55fc4d047 Merge pull request #12705 from snipe/fixes/webhook_ui
Slack webhook UI tweaks, added select2
2023-03-21 21:11:14 -07:00
snipe
e40762cf7f Small anal-retentive spacing/indenting tweaks
Signed-off-by: snipe <snipe@snipe.net>
2023-03-21 21:00:43 -07:00
snipe
2d3ddd1c7a Fixed default value for webhook_selected
Signed-off-by: snipe <snipe@snipe.net>
2023-03-21 20:56:08 -07:00
snipe
637438ccf6 Added select2 to slack settings
Signed-off-by: snipe <snipe@snipe.net>
2023-03-21 20:00:11 -07:00
snipe
647f47cdfe Check for demo mode in the clear method for the controller
Signed-off-by: snipe <snipe@snipe.net>
2023-03-21 19:27:05 -07:00
snipe
a14d1b981d Switched singleton to static helper method
Signed-off-by: snipe <snipe@snipe.net>
2023-03-21 19:22:18 -07:00
snipe
5217141dfb Yuck, but added helper function to return the demo mode form warning
Signed-off-by: snipe <snipe@snipe.net>
2023-03-21 18:59:34 -07:00
snipe
b28a25f544 Normalize the flash session to the way we do it elsewhere
Signed-off-by: snipe <snipe@snipe.net>
2023-03-21 18:59:18 -07:00
snipe
d55ae44638 Helper method to make it easier (shorter) to determine if the app is in demo mode
Signed-off-by: snipe <snipe@snipe.net>
2023-03-21 18:59:03 -07:00
snipe
f29e813332 Translated “Clear & Save”
Signed-off-by: snipe <snipe@snipe.net>
2023-03-21 18:58:35 -07:00
snipe
d883084830 Fixed some funky HTML tags
Signed-off-by: snipe <snipe@snipe.net>
2023-03-21 18:58:26 -07:00
snipe
658252125e Added new partial for the form inline “demo mode”
Signed-off-by: snipe <snipe@snipe.net>
2023-03-21 18:57:27 -07:00
Marcus Moore
315f5231cd Send slack notification for check outs to assets and locations 2023-03-21 17:03:51 -07:00
snipe
35bef6625a Merge pull request #12703 from Godmartinz/webhook_clean_up
adds clear and save button, save button updates accordingly
2023-03-21 17:02:33 -07:00
snipe
342b399191 Merge pull request #12700 from marcusmoore/fixes/purify-factories
Purifies model factories
2023-03-21 16:52:30 -07:00
Godfrey M
2754277068 adds csrf token and missing divs 2023-03-21 16:12:46 -07:00
snipe
4cc29b76f0 Merge remote-tracking branch 'origin/develop' 2023-03-21 16:07:03 -07:00
snipe
7059a57be1 Merge pull request #12704 from snipe/features/next_audit_date
Added next audit date override in bulk asset edit
2023-03-21 16:02:37 -07:00
snipe
c229d69cec Added next audit date override in bulk asset edit
Signed-off-by: snipe <snipe@snipe.net>
2023-03-21 16:01:41 -07:00
Godfrey M
3c28242a2e save button updates accordingly 2023-03-21 15:53:09 -07:00
snipe
c41aa8ac7f Merge pull request #12701 from snipe/features/add_default_location_to_maintenance_report
Fixed #12682 - add default location to maintenance report
2023-03-21 13:55:09 -07:00
snipe
ecb11c3a12 Fixed #12682 - add default location to maintenance report
Signed-off-by: snipe <snipe@snipe.net>
2023-03-21 13:52:21 -07:00
snipe
4f8542b71b Merge pull request #12680 from akemidx/clone_accessories
Clone accessories
2023-03-21 13:37:04 -07:00
akemidx
bb7b655fd2 translating screen reader lines 2023-03-21 16:02:34 -04:00
akemidx
3134279a95 small edits 2023-03-21 15:48:53 -04:00
Marcus Moore
751abe1438 Re-add asset factory states 2023-03-21 09:54:55 -07:00
Marcus Moore
d214bd0b06 Remove temporary command 2023-03-20 16:41:33 -07:00
Marcus Moore
3b16a65988 Merge branch 'develop' into fixes/purify-factories 2023-03-20 16:24:35 -07:00
Marcus Moore
918239961a Add simple test case for assets 2023-03-20 15:47:57 -07:00
Marcus Moore
272cc1adac Skip creating user when creating a setting since it isn't needed 2023-03-20 15:33:40 -07:00
Marcus Moore
16e3416225 Update test case 2023-03-20 14:27:45 -07:00
snipe
8012c966b0 Merge pull request #12696 from snipe/dependabot/github_actions/docker/build-push-action-4
Bump docker/build-push-action from 3 to 4
2023-03-20 14:19:44 -07:00
Marcus Moore
a0e547c7fb Remove some unused imports 2023-03-20 14:18:59 -07:00
Marcus Moore
44a91f0a2b Seed license checkouts 2023-03-20 14:18:54 -07:00
dependabot[bot]
4537ab3d54 Bump docker/build-push-action from 3 to 4
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 3 to 4.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v3...v4)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-20 21:18:50 +00:00
snipe
05b4170116 Merge pull request #12694 from uberbrady/config_cachable_if_no_rollbar
Fixed #12671: Re-enable config:cache when there's no Rollbar
2023-03-20 14:17:53 -07:00
Marcus Moore
92e0c59f89 Fix typo in Keyboard accessory name 2023-03-20 12:01:39 -07:00
Marcus Moore
1bad8e1fc2 Remove outdated comments 2023-03-20 11:42:15 -07:00
Marcus Moore
1fd574779b Remove unneeded or outdated comments and update imports 2023-03-20 11:39:27 -07:00
Marcus Moore
a37d69fcf1 Replace remaining user_ids in factories 2023-03-20 11:19:34 -07:00
Brady Wetherington
3a4ca5acad Re-enable config:cache *only* if there's no Rollbar 2023-03-18 21:07:00 -07:00
Brady Wetherington
704a2ad858 WIP: trying to merge two LW components into one, not working yet 2023-03-18 20:31:56 -07:00
snipe
3a30f04b51 Merge remote-tracking branch 'origin/develop' 2023-03-18 12:00:42 -07:00
snipe
f2a3c2a349 Merge pull request #12693 from snipe/fixes/use_statements
Updates the Gate “use” statement to be more specific
2023-03-18 12:00:23 -07:00
snipe
f9e190eb32 Updates the Gate “use” statement to be more specific
Signed-off-by: snipe <snipe@snipe.net>
2023-03-18 11:58:09 -07:00
snipe
de6b663833 Merge pull request #12692 from snipe/fixes/small_group_api_fixes
Corrected gates, added fillable
2023-03-18 11:56:15 -07:00
snipe
8dd3ae8a37 Corrected gates, added fillable
Signed-off-by: snipe <snipe@snipe.net>
2023-03-18 11:53:20 -07:00
snipe
03b4a87a65 Merge remote-tracking branch 'origin/develop' 2023-03-18 00:16:34 -07:00
snipe
c7f4a93c17 Merge pull request #12691 from snipe/fixes/small_cleanup_for_bulk_delete_checkin
Small cleanup for bulk delete checkin
2023-03-18 00:16:15 -07:00
snipe
071a642509 Changed phrasing in translatons
Signed-off-by: snipe <snipe@snipe.net>
2023-03-18 00:15:28 -07:00
snipe
e39a75f2cc Fixed min width on select2 bulk menus
Signed-off-by: snipe <snipe@snipe.net>
2023-03-18 00:14:57 -07:00
snipe
ea4a37d8ef Fixed cancel button alignment
Signed-off-by: snipe <snipe@snipe.net>
2023-03-18 00:14:09 -07:00
snipe
d7363a41c8 Merge remote-tracking branch 'origin/develop' 2023-03-17 17:30:32 -07:00
snipe
789c4b4df8 Merge pull request #12690 from snipe/features/more_merge_user_olish
More merge-user polishing
2023-03-17 17:29:12 -07:00
snipe
12a2d8ad49 Fixed admin ID
Signed-off-by: snipe <snipe@snipe.net>
2023-03-17 17:03:10 -07:00
snipe
e47fc9527b Updated language
Signed-off-by: snipe <snipe@snipe.net>
2023-03-17 16:50:02 -07:00
snipe
820ae09a6f Reworked the layout of the confirm merge form a little
Signed-off-by: snipe <snipe@snipe.net>
2023-03-17 16:42:41 -07:00
snipe
fb54a21e12 Added strings
Signed-off-by: snipe <snipe@snipe.net>
2023-03-17 16:42:22 -07:00
snipe
b39fa1d987 Added merge icon
Signed-off-by: snipe <snipe@snipe.net>
2023-03-17 16:42:17 -07:00
snipe
28cc8f9d69 Nicer user history display
Signed-off-by: snipe <snipe@snipe.net>
2023-03-17 16:41:43 -07:00
snipe
a54e50961e Added event and listener
Signed-off-by: snipe <snipe@snipe.net>
2023-03-17 16:41:33 -07:00
snipe
82dc57aa18 Renamed some variables, invoked the event listener
Signed-off-by: snipe <snipe@snipe.net>
2023-03-17 16:24:58 -07:00
snipe
9ac4efb912 Better commenting
Signed-off-by: snipe <snipe@snipe.net>
2023-03-17 16:24:38 -07:00
snipe
a4e6b3c022 Merge remote-tracking branch 'origin/develop' 2023-03-17 02:48:51 -07:00
snipe
c752e3bb86 Fixed divs
Signed-off-by: snipe <snipe@snipe.net>
2023-03-17 02:48:41 -07:00
snipe
934f43e104 Merge remote-tracking branch 'origin/develop' 2023-03-17 02:45:04 -07:00
snipe
1a8622dc3b Merge pull request #12689 from snipe/features/add_password_lock_and_use_new_strings
Features/add password lock and use new strings
2023-03-17 02:44:37 -07:00
snipe
e557f03cc2 Disable submit if app is locked
Signed-off-by: snipe <snipe@snipe.net>
2023-03-17 02:43:33 -07:00
snipe
30cf7eb750 Disallow action in demo mode
Signed-off-by: snipe <snipe@snipe.net>
2023-03-17 02:42:50 -07:00
snipe
ccdd6ef5e0 Merge remote-tracking branch 'origin/develop' 2023-03-16 23:14:47 -07:00
snipe
13a02ff241 Merge pull request #12687 from snipe/features/nicer_ui_for_merge
Made the table wider, used icons to compact space
2023-03-16 23:14:25 -07:00
snipe
c93096b767 Made the table wider, used icons to compact space
Signed-off-by: snipe <snipe@snipe.net>
2023-03-16 23:13:05 -07:00
snipe
94a275f239 Merge remote-tracking branch 'origin/develop' 2023-03-16 22:50:11 -07:00
snipe
d8d7ed4465 Merge pull request #12686 from snipe/features/added_email_and_username_to_merge_confirm
Added email and username to merge user confirmation screen
2023-03-16 22:49:54 -07:00
snipe
736777e1e6 Added email and username to merge user confirmation screen
Signed-off-by: snipe <snipe@snipe.net>
2023-03-16 22:48:20 -07:00
Marcus Moore
3849bb838d Make a few more factories a bit more pure 2023-03-16 18:29:51 -07:00
snipe
0ef8aba36f Merge remote-tracking branch 'origin/develop' 2023-03-16 18:20:57 -07:00
snipe
f566a71658 Merge pull request #12685 from snipe/features/merge_users
Added user merge
2023-03-16 18:20:24 -07:00
snipe
0dd11575c5 Added merge controller
Signed-off-by: snipe <snipe@snipe.net>
2023-03-16 18:19:16 -07:00
snipe
d3d26cb988 Added translations
Signed-off-by: snipe <snipe@snipe.net>
2023-03-16 18:19:03 -07:00
snipe
07fbbf5f7f Added merge to user menu
Signed-off-by: snipe <snipe@snipe.net>
2023-03-16 18:18:54 -07:00
snipe
0dfb51f642 User merge blade
Signed-off-by: snipe <snipe@snipe.net>
2023-03-16 18:18:32 -07:00
snipe
853e809ff8 Added route
Signed-off-by: snipe <snipe@snipe.net>
2023-03-16 18:18:26 -07:00
Marcus Moore
605f214597 Add properties necessary for factories to be called in isolation 2023-03-16 17:08:18 -07:00
Marcus Moore
d9c1a548f1 Update deprecated faker calls 2023-03-16 17:07:46 -07:00
Marcus Moore
582c3b987b Update some faker calls 2023-03-16 16:38:21 -07:00
snipe
ffd9bbd7c6 Merge remote-tracking branch 'origin/develop' 2023-03-16 16:27:41 -07:00
snipe
ffb87a0a87 Merge pull request #12684 from snipe/features/added_console_command_to_normalize_names
Added console command to normalize capitalization on names
2023-03-16 16:24:33 -07:00
snipe
8f04342fc2 Added console command to normalize capitalization on names
Signed-off-by: snipe <snipe@snipe.net>
2023-03-16 16:23:52 -07:00
snipe
d6434fa55a Merge pull request #12683 from snipe/fixes/additional_sort
Fixes/additional sort
2023-03-16 16:08:51 -07:00
snipe
b374834999 Added extra order by switch for first_name and last_name
Signed-off-by: snipe <snipe@snipe.net>
2023-03-16 16:07:51 -07:00
snipe
5e4455f042 Deleted duplicate statement
Signed-off-by: snipe <snipe@snipe.net>
2023-03-16 16:07:36 -07:00
Marcus Moore
f47a28f790 Actually remove unused methods 2023-03-16 15:40:16 -07:00
Marcus Moore
ca677038b0 Remove unused methods 2023-03-16 15:39:02 -07:00
Marcus Moore
a50ddb4a5d Improve actionlog factory and seeder 2023-03-16 15:25:23 -07:00
Marcus Moore
daf6e9fa4b Seed assets with randomized locations 2023-03-16 14:23:40 -07:00
Marcus Moore
31630e3677 Seed licenses with categories 2023-03-16 13:47:02 -07:00
Marcus Moore
2f0f9586b1 Remove default category relationship from license factory 2023-03-16 13:46:30 -07:00
Marcus Moore
a98cc01766 Seed users with departments 2023-03-16 13:25:35 -07:00
Marcus Moore
345946d6d4 Remove default department relationship from user factory 2023-03-16 13:25:02 -07:00
Marcus Moore
76861c0c30 Remove hard-coded manager_id in factory 2023-03-16 12:46:47 -07:00
Marcus Moore
7062b0acaa Remove hard-coded supplier_id in factories 2023-03-16 12:41:34 -07:00
Marcus Moore
0ec885bf18 Remove hard-coded fieldset_id in factories 2023-03-15 18:49:21 -07:00
Marcus Moore
dfd6cf0d29 Improve factories for location relationships 2023-03-15 18:31:08 -07:00
snipe
b64d7e38f2 Merge pull request #12679 from snipe/bug/sc-20451
Handle already-deleted license files more gracefully
2023-03-15 16:26:15 -07:00
Godfrey M
371e142bae removes unnecessary function 2023-03-15 15:57:45 -07:00
Marcus Moore
b944945377 Remove hard-coded company_id in factories and update seeders 2023-03-15 14:12:34 -07:00
akemidx
a8e2f72e25 accessory cloning, WITHOUT copying over the image. 2023-03-15 16:55:24 -04:00
snipe
e9601bcf13 Handle already-deleted license files more gracefully
Signed-off-by: snipe <snipe@snipe.net>
2023-03-15 13:05:51 -07:00
snipe
b89dcfbb8e Merge remote-tracking branch 'origin/develop' 2023-03-15 12:55:55 -07:00
akemidx
0909d94c8f actually added the icons haha 2023-03-15 15:07:07 -04:00
akemidx
68094b23b9 moved dell and levono icons to local machine 2023-03-15 15:02:33 -04:00
snipe
fdacd5d5b5 Merge pull request #12636 from akemidx/feature/sc-20330/date-on-all-assigned-pdf
Datestamp on "Print All Assigned" generated form
2023-03-15 11:31:52 -07:00
akemidx
f38f6f57ae fixed localization and formatting. simplified code to remove php snippet 2023-03-15 14:00:29 -04:00
akemidx
a3353b8496 committing 2023-03-15 13:48:22 -04:00
snipe
f463c02783 Merge remote-tracking branch 'origin/develop' 2023-03-14 19:56:26 -07:00
snipe
08e09a3215 Merge pull request #12675 from snipe/security/webpack_upgrade
Updated webpack
2023-03-14 19:55:42 -07:00
snipe
039a5dde7d Updated webpack
Signed-off-by: snipe <snipe@snipe.net>
2023-03-14 19:54:58 -07:00
snipe
3b3bdb6535 Merge remote-tracking branch 'origin/develop' 2023-03-14 19:03:59 -07:00
snipe
1968aebf78 Merge pull request #12674 from snipe/fixes/translation_variable_for_slack
Fixed missing variable in Slack hook test
2023-03-14 19:03:42 -07:00
snipe
a0617edaf0 Fixed missing variable in Slack hook test
Signed-off-by: snipe <snipe@snipe.net>
2023-03-14 19:02:38 -07:00
snipe
723e4ebd15 Merge remote-tracking branch 'origin/develop' 2023-03-14 18:55:07 -07:00
Marcus Moore
fb789eb048 Remove hard-coded depreciation_id in factories 2023-03-14 17:51:20 -07:00
snipe
4c66267f3b Merge pull request #12668 from inietov/fixes/undefined_array_key_0
Fixed ErrorException: Undefined array key 0 [sc-20424]
2023-03-14 17:10:04 -07:00
Marcus Moore
f7577bff52 Merge branch 'develop' into fixes/purify-factories 2023-03-14 17:09:30 -07:00
snipe
322fd76353 Merge pull request #12664 from Godmartinz/The_final_lowercase
The final lowercase in webhooks
2023-03-14 17:09:20 -07:00
snipe
c12d261fc8 Merge pull request #12673 from marcusmoore/fixes/fix-component-factory
Fixed Component factory
2023-03-14 17:05:38 -07:00
snipe
a991bdd136 Merge pull request #12672 from inietov/fixes/consumable_factory_seeder
Fixed Consumable Factory Seeder
2023-03-14 17:04:33 -07:00
Marcus Moore
9cd8460e1e Add proper date format to purchase date in the component factory 2023-03-14 17:02:45 -07:00
Marcus Moore
72a61783a3 Inline two relationships in asset maintenance factory 2023-03-14 14:59:34 -07:00
snipe
f0d05a7461 Merge branch 'develop' of https://github.com/snipe/snipe-it into develop 2023-03-14 14:34:11 -07:00
snipe
88624ff2c0 Add @marcusmoore as a contributor 2023-03-14 14:34:03 -07:00
snipe
f71ee699f4 Add @spencerrlongg as a contributor 2023-03-14 14:33:31 -07:00
snipe
ce83d3aec1 Merge pull request #12670 from spencerrlongg/bug/sc-20437
Catch Duplicate Headers in Asset History Import
2023-03-14 14:32:34 -07:00
slong753
60b70a4074 catch and redirect back with error 2023-03-14 16:07:09 -05:00
Marcus Moore
1ff094dd47 Remove hard-coded model_id in asset factory 2023-03-14 13:56:25 -07:00
Marcus Moore
ef8007a890 Remove hard-coded status_id in asset factory 2023-03-14 13:24:50 -07:00
akemidx
d50a5d1880 dell and lenovo icons/links added 2023-03-14 16:04:03 -04:00
Marcus Moore
a2efe3fa67 Remove hard-coded category_id in factories 2023-03-14 12:50:02 -07:00
akemidx
a9782b7e00 testing links 2023-03-14 15:26:44 -04:00
Marcus Moore
4c4101fe64 Fix key name 2023-03-14 12:04:31 -07:00
akemidx
9c5ee060d3 WIP string/int error 2023-03-14 15:01:56 -04:00
Marcus Moore
7cf424b914 Remove hard-coded manufacturer_id in factories 2023-03-14 12:01:23 -07:00
Marcus Moore
e8ff7cc09c Remove hard-coded user_id in factories 2023-03-14 11:34:58 -07:00
snipe
dfd9fcc5e0 Merge pull request #12599 from inietov/fixes/unknown_column_0_in_field_list
Fixed Column not found: 1054 Unknown column '0' in 'field list' [sc-20004]
2023-03-14 09:51:42 -07:00
snipe
b83980299a Merge pull request #12667 from snipe/fixes/small_livewire_ui_fixed
Small UI tweaks
2023-03-14 09:47:45 -07:00
snipe
5a709a83e7 Small UI tweaks
Signed-off-by: snipe <snipe@snipe.net>
2023-03-14 09:38:30 -07:00
Ivan Nieto Vivanco
66bb897ac4 Fix format to purchase date 2023-03-14 02:55:20 -06:00
Ivan Nieto Vivanco
67471a3a77 Evaluate if the collection is empty before access the array index 2023-03-13 21:44:06 -06:00
Marcus Moore
adba450b40 Remove some hard-coded ids in factories 2023-03-13 17:27:06 -07:00
snipe
7acf449ed3 Merge pull request #12665 from snipe/fixes/fixed_migration_for_smaller_chunking
Removed loading and reduced chunking to 10
2023-03-13 17:23:19 -07:00
Godfrey M
955d8313b2 the final lowercase 2023-03-13 17:14:02 -07:00
snipe
1b9c3c93ad Removed loading and reduced chunking to 10
Signed-off-by: snipe <snipe@snipe.net>
2023-03-13 17:12:51 -07:00
snipe
a2667a7520 Merge pull request #12663 from Godmartinz/webhook_tweaks
fixes webhook variables to lowercase
2023-03-13 16:55:32 -07:00
Marcus Moore
099ec3f550 Remove creation of category within category factory state 2023-03-13 16:45:43 -07:00
Marcus Moore
6e6a021928 Add temporary command to display model counts 2023-03-13 16:44:47 -07:00
Godfrey M
1bd37b49e9 adds translations for webhook names 2023-03-13 16:13:02 -07:00
Marcus Moore
2813b7ea58 Scaffold tests for slack notification on checkout 2023-03-13 15:47:50 -07:00
Ivan Nieto Vivanco
d224f3177e Delete a rule that was breaking validation 2023-03-13 16:43:10 -06:00
Godfrey M
6474249ea8 uppercased names 2023-03-13 15:29:53 -07:00
Godfrey M
7612c5d852 lowercases variables 2023-03-13 15:26:51 -07:00
Ivan Nieto Vivanco
e7b3daa80c Adjust validator to only receive valid groups id's 2023-03-13 16:10:08 -06:00
snipe
477bd27cba Merge pull request #12570 from Godmartinz/generalize_webhooks
Adds General option to the webhooks settings
2023-03-13 14:54:51 -07:00
Ivan Nieto Vivanco
e4204a6dd1 Adds validator to PATCH request in the API UsersController 2023-03-13 15:49:05 -06:00
Godfrey M
11bf3f5285 aligned inputs 2023-03-13 14:06:05 -07:00
Godfrey M
576b8f8c48 adds translations to edit and index of categories 2023-03-13 13:33:03 -07:00
snipe
cacb000693 Merge pull request #12660 from snipe/upgrades/bump_codacy
Bumped codacy workflow
2023-03-13 11:13:46 -07:00
snipe
4f772468e6 Bumped codacy workflow
Relates to #12657 but for develop

Signed-off-by: snipe <snipe@snipe.net>
2023-03-13 11:10:41 -07:00
Godfrey M
542332ea0c removes discord from rules 2023-03-13 10:54:18 -07:00
Godfrey M
b6d105c4f4 removes help text from general integrations 2023-03-13 10:49:41 -07:00
Godfrey M
27a2ed5c79 Merge branch 'develop' into generalize_webhooks 2023-03-13 10:41:08 -07:00
snipe
8a977c66f0 Merge pull request #12659 from Godmartinz/update_notification_name
fixes alerts to notifications in notification settings
2023-03-13 09:57:43 -07:00
Godfrey M
82504c9764 updates alerts to notifications in notification settings 2023-03-13 09:51:25 -07:00
snipe
1e6a3b8c45 Add @floschoepfer as a contributor 2023-03-10 14:24:56 -08:00
snipe
785ba3b5ed Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	config/version.php
#	public/js/build/app.js
#	public/js/dist/all.js
#	public/mix-manifest.json
2023-03-10 14:23:45 -08:00
snipe
d1d89f872a Merge pull request #12638 from snipe/fixes/dashboard_category_count_with_show_archived
Fixed #12635 - dashboard category should not show archived
2023-03-10 14:19:40 -08:00
snipe
58d2e658d2 Merge pull request #12648 from floschoepfer/patch-1
Fixed #12647: fix translation and adds icon on property reassignable
2023-03-10 14:13:48 -08:00
Florian
86205bc996 fix translation and adds icon on property reassignable
Fixing #12647
2023-03-10 10:36:42 +01:00
akemidx
4533982345 added time of day 2023-03-09 15:11:07 -05:00
snipe
65c2f27644 Merge pull request #12640 from marcusmoore/fix/test-suite
Fixes unit and feature test suite
2023-03-09 11:57:39 -08:00
snipe
88eb73d160 Use Carbon’s diffForHumans() method instead of our own home-grown stuff
Signed-off-by: snipe <snipe@snipe.net>
2023-03-08 16:47:54 -08:00
snipe
f4bd307421 Added comments, removed gthe AgeFormat() helper method
Signed-off-by: snipe <snipe@snipe.net>
2023-03-08 16:47:27 -08:00
snipe
059ead5af5 Added comments (not related to this, sorry)
Signed-off-by: snipe <snipe@snipe.net>
2023-03-08 16:47:08 -08:00
snipe
02dd0669dc Added comments
Signed-off-by: snipe <snipe@snipe.net>
2023-03-08 16:36:08 -08:00
snipe
b3b9efbaff New helper method to return icon type
Signed-off-by: snipe <snipe@snipe.net>
2023-03-08 16:34:04 -08:00
snipe
a6f4e53e2b Added translation strings
Signed-off-by: snipe <snipe@snipe.net>
2023-03-08 16:33:49 -08:00
snipe
fe470b32fc Added icon and import type to header, more translations
Signed-off-by: snipe <snipe@snipe.net>
2023-03-08 16:33:40 -08:00
snipe
474e32ea2a Added translations and formatting
Signed-off-by: snipe <snipe@snipe.net>
2023-03-08 16:33:02 -08:00
snipe
b9e4b2a0ba Added some translations, date formatting, and filesize human reporting
Signed-off-by: snipe <snipe@snipe.net>
2023-03-08 16:32:45 -08:00
Brady Wetherington
087fe19ae7 Merge branch 'livewire_importer_2_squashed_and_rebased' of github.com:uberbrady/snipe-it into livewire_importer_2_squashed_and_rebased 2023-03-08 13:57:21 -08:00
Brady Wetherington
22d7d2a04e Aliases could get selected when they weren't for an import_type 2023-03-08 13:56:29 -08:00
snipe
b8887bd3e3 Translated strings
Signed-off-by: snipe <snipe@snipe.net>
2023-03-08 13:47:56 -08:00
snipe
65c2d75c04 Added aliases
Signed-off-by: snipe <snipe@snipe.net>
2023-03-08 13:47:38 -08:00
snipe
dccd6fd4b1 Duplicate withCount
Signed-off-by: snipe <snipe@snipe.net>
2023-03-08 13:06:14 -08:00
snipe
7f8bdbd252 Added showableAssets() relationship to Category model
Signed-off-by: snipe <snipe@snipe.net>
2023-03-08 13:01:38 -08:00
snipe
00896a8615 Updated comment
Signed-off-by: snipe <snipe@snipe.net>
2023-03-08 12:51:53 -08:00
Marcus Moore
44b48a954a Remove unneed section of testing docs 2023-03-08 12:15:37 -08:00
Marcus Moore
0be882dc35 Merge branch 'develop' into fix/test-suite 2023-03-08 12:13:53 -08:00
akemidx
2a4d30a748 forgot to add datestamp to title of page 2023-03-08 15:09:33 -05:00
Marcus Moore
5fb18af245 Update testing documentation 2023-03-08 11:58:36 -08:00
Marcus Moore
697824007a Move DB_CONNECTION back to .env.testing.example 2023-03-08 11:58:29 -08:00
akemidx
cd9f2f7fb7 datestamp for print all assigned form generation 2023-03-08 14:56:14 -05:00
Godfrey M
15c19a7ab7 silenced Discord option and validation, more translations 2023-03-08 10:35:45 -08:00
snipe
ac0b22d696 Updated dev assets
Signed-off-by: snipe <snipe@snipe.net>
2023-03-08 00:33:04 -08:00
snipe
1ed7cd27b4 Lots of HTML/CSS tweaks for better UI
Signed-off-by: snipe <snipe@snipe.net>
2023-03-08 00:32:30 -08:00
snipe
e143e0c5ee Make the <tr> reflect that it’s active
Signed-off-by: snipe <snipe@snipe.net>
2023-03-08 00:32:16 -08:00
snipe
42601fecbf Merge branch 'livewire_importer_2_squashed_and_rebased' of https://github.com/uberbrady/snipe-it into uberbrady-livewire_importer_2_squashed_and_rebased 2023-03-07 21:42:32 -08:00
Brady Wetherington
7c09de3ea8 Re-introduce the 'placeholder' option for our form-helper 2023-03-07 21:38:55 -08:00
snipe
094859cfe8 Merge branch 'livewire_importer_2_squashed_and_rebased' of https://github.com/uberbrady/snipe-it into uberbrady-livewire_importer_2_squashed_and_rebased 2023-03-07 21:38:04 -08:00
Brady Wetherington
037489a6c0 If fields were already mapped, they would cause a 500 on re-mapping on import 2023-03-07 21:33:20 -08:00
snipe
5defd5ec0a Merge develop into master
Signed-off-by: snipe <snipe@snipe.net>
2023-03-07 19:59:17 -08:00
snipe
e66b19aca0 Bumped hash
Signed-off-by: snipe <snipe@snipe.net>
2023-03-07 19:44:06 -08:00
snipe
fd96ff0160 Add @kenchan0130 as a contributor 2023-03-07 19:42:52 -08:00
snipe
1ccedf6426 Merge pull request #12617 from kenchan0130/patch-12249
Fixed #12249: fix csv importer for serial_number field
2023-03-07 19:42:23 -08:00
snipe
8adeee41e6 Merge pull request #12633 from snipe/bug/sc-20332
Fixed 500 when admin erroneously tries to upload a tiff as logo, cleaned up logo upload layout
2023-03-07 19:41:10 -08:00
snipe
19d19a4c42 Updated language string
Signed-off-by: snipe <snipe@snipe.net>
2023-03-07 19:18:32 -08:00
snipe
383b5b43bb Added a few more jquery options for prevoew flexibility
Signed-off-by: snipe <snipe@snipe.net>
2023-03-07 18:54:38 -08:00
snipe
379c5f6790 Reworked the layout for logo upoloads
Signed-off-by: snipe <snipe@snipe.net>
2023-03-07 18:54:09 -08:00
snipe
e55d02fd59 Added new string
Signed-off-by: snipe <snipe@snipe.net>
2023-03-07 18:53:53 -08:00
Brady Wetherington
942bedaf06 Re-add VIP and BYOD to importer, but in Livewire 2023-03-07 18:53:32 -08:00
Brady Wetherington
09c1298e03 Merge branch 'develop' into livewire_importer_2_squashed_and_rebased
I'll be taking in the changes to the importer front-end elsewhere
2023-03-07 18:51:05 -08:00
Brady Wetherington
fe699737eb Add improved field-guessing logic; make sure 'do not map' fields work 2023-03-07 18:26:59 -08:00
Marcus Moore
dd9c00195b Remove old $tester variable and usused imports 2023-03-07 17:04:46 -08:00
snipe
e60fa15414 Nicer layout, but it kinda dosn’t work :(
Signed-off-by: snipe <snipe@snipe.net>
2023-03-07 17:02:52 -08:00
Marcus Moore
43ff7261b2 Remove redundant base test case 2023-03-07 16:57:55 -08:00
Marcus Moore
8c13a4c5c9 Use LazilyRefreshDatabase instead of RefreshDatabase 2023-03-07 16:43:18 -08:00
Godfrey M
69944853f9 more translations 2023-03-07 15:57:58 -08:00
snipe
45b5a8b6ab Catch exception if the file can’t be handled via Intervention
Signed-off-by: snipe <snipe@snipe.net>
2023-03-07 15:56:36 -08:00
Godfrey M
35dd0d8def adds generalized webhooks, updates settings page, translations, validation 2023-03-07 15:48:21 -08:00
snipe
8b70a7f216 Merge remote-tracking branch 'origin/develop' 2023-03-07 14:00:37 -08:00
snipe
182a5ea5fc Merge pull request #12631 from snipe/bug/sc-20297/expected-checkin-email-report-link-back-error
Dynamically determine target route for expected checkin emails
2023-03-07 13:57:26 -08:00
snipe
ea54f540de Dynamically determine target route for expected checkin emails
Signed-off-by: snipe <snipe@snipe.net>
2023-03-07 13:42:51 -08:00
akemidx
ec5836dab4 cloning accessories first bit 2023-03-07 16:41:48 -05:00
snipe
e399015427 Merge pull request #12628 from marcusmoore/fixes/keep-asset-name-on-import
Maintain asset name during import with checkout
2023-03-07 11:22:53 -08:00
Marcus Moore
c80595e05c Ensure asset name is maintained when importing assets that are checked out 2023-03-07 11:09:25 -08:00
Marcus Moore
8fad377114 Remove helper methods by inlining where needed 2023-03-07 10:28:33 -08:00
Tadayuki Onishi
f4675927a0 fix csv importer for serial_number filed
Signed-off-by: Tadayuki Onishi <tt.tanishi100@gmail.com>
2023-03-07 22:53:02 +09:00
Marcus Moore
a3c8c3757a Remove unused method 2023-03-06 17:50:44 -08:00
Marcus Moore
ddcb8d8dd9 Remove commited .env.testing file 2023-03-06 17:37:08 -08:00
Marcus Moore
245f0aff72 Ignore the correct env file 2023-03-06 17:35:49 -08:00
Marcus Moore
ba92501670 Add .env.testing.example file 2023-03-06 17:34:43 -08:00
Marcus Moore
9aad981895 Update phpunit schema location and remove unneeded environment variable 2023-03-06 17:25:03 -08:00
Marcus Moore
a24d734ee9 Alphabetize keys in phpunit.xml 2023-03-06 17:24:09 -08:00
snipe
c7fb542dc3 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
2023-03-06 17:13:29 -08:00
snipe
1ebbc767f1 Merge pull request #12624 from snipe/features/added_vip_and_byod_to_importer
Added `vip` and `byod` to importer
2023-03-06 17:11:28 -08:00
snipe
a34cb8b862 Check for boolean on requestable
Signed-off-by: snipe <snipe@snipe.net>
2023-03-06 17:11:08 -08:00
snipe
d36b4c1bd3 Merge remote-tracking branch 'origin/develop' 2023-03-06 17:04:15 -08:00
Marcus Moore
d27fe7d4b9 Merge branch 'develop' into fix/test-suite 2023-03-06 17:04:00 -08:00
snipe
d55393a3d9 Merge pull request #12626 from marcusmoore/fixes/checkouts-in-seeders
Fix seeder so assets are checked out to users
2023-03-06 17:01:47 -08:00
Marcus Moore
ef27c35d1d Update array keys to set asset location properly 2023-03-06 16:33:40 -08:00
snipe
0d3388b3ae Merge pull request #12623 from snipe/bug/sc-20254/errorexception-filesize-stat-failed-for-snipe
Check that the file exists before trying to stat it for filesize
2023-03-06 15:43:17 -08:00
snipe
fffe5da2e0 Merge pull request #12625 from uberbrady/quiet_down_scim_exceptions
Suppress SCIMExceptions from cluttering up Rollbar
2023-03-06 15:42:58 -08:00
Brady Wetherington
dd3c3a1428 Suppress SCIMExceptions from cluttering up Rollbar 2023-03-06 15:24:16 -08:00
snipe
16bd2cde0f Updated string for file not found
Signed-off-by: snipe <snipe@snipe.net>
2023-03-06 15:09:45 -08:00
snipe
e1069ac234 Return a file not found error if it doesn’t appear on disk
Signed-off-by: snipe <snipe@snipe.net>
2023-03-06 15:09:37 -08:00
snipe
8b6e8898c1 Fixed hardcoded string
Signed-off-by: snipe <snipe@snipe.net>
2023-03-06 15:09:12 -08:00
snipe
2cb06165c4 Added missing vip field to transformer and request
Signed-off-by: snipe <snipe@snipe.net>
2023-03-06 15:00:04 -08:00
snipe
b46c455e0a Updated mappings.md with byod and vip fields
Signed-off-by: snipe <snipe@snipe.net>
2023-03-06 14:28:34 -08:00
snipe
304ccaa30e Added byod to asset importer
Signed-off-by: snipe <snipe@snipe.net>
2023-03-06 14:28:24 -08:00
snipe
f672bdd3b7 Added vip to user importer
Signed-off-by: snipe <snipe@snipe.net>
2023-03-06 14:28:14 -08:00
snipe
eec5163e7f Updated vue assets
Signed-off-by: snipe <snipe@snipe.net>
2023-03-06 14:28:04 -08:00
snipe
f460d881da Updated vue
Signed-off-by: snipe <snipe@snipe.net>
2023-03-06 14:27:53 -08:00
snipe
27a495223d Updated sample CSVs
Signed-off-by: snipe <snipe@snipe.net>
2023-03-06 14:27:45 -08:00
Marcus Moore
bc54144284 Fix test by passing proper user 2023-03-06 12:40:47 -08:00
snipe
cc7325074e Check that the file exists before trying to stat it for filesize
Signed-off-by: snipe <snipe@snipe.net>
2023-03-06 10:47:28 -08:00
snipe
04ff472428 Merge remote-tracking branch 'origin/develop' 2023-03-06 10:29:07 -08:00
snipe
3a1cf26e98 Merge pull request #12621 from Godmartinz/bug/sc-20259/divisionbyzeroerror-division-by-zero-in-snipe
Fixes depreciation model rule for months
2023-03-06 10:28:39 -08:00
Godfrey M
e5deb4b413 doesn't allow months to be zero 2023-03-06 09:41:14 -08:00
snipe
f54d83ed59 Merge pull request #12612 from manuteleco/add_path_in_preflight_url_message
Fixed #11800: Include path in the expected URL during Pre-Flight
2023-03-06 09:36:15 -08:00
snipe
39193a71b7 Merge pull request #12611 from manuteleco/add_reverse_proxy_support_in_preflight
Fixed #10779: Add Reverse Proxy support to Pre-Flight URL check
2023-03-06 09:35:34 -08:00
snipe
83b906b153 Merge remote-tracking branch 'origin/develop' 2023-03-06 09:27:43 -08:00
snipe
191f955333 Merge pull request #12610 from veenone/feat/sortable_group_id
enable sortable for ID column
2023-03-06 09:26:52 -08:00
Manuel Rodríguez Guimeráns
548ae7ad22 Add Reverse Proxy support to Pre-Flight URL check
Before this change, the Pre-Flight URL check would inevitably fail
whenever Snipe-IT was running behind a reverse proxy or load balancer.

The URL check tries to ensure that the configured application URL
matches the URL that is actually used to reach the application. However,
when running behind an HTTP intermediary (like a reverse proxy or a load
balancer) the HTTP connection that Snipe-IT receives is not the _real_
connection from the user anymore, but a connection from the HTTP
intermediary. The scheme, host and port that Snipe-IT would obtain from
that incoming intermediary connection wouldn't match what is configured
as application URL and, therefore, the URL check would fail.

This commit solves the situation by making Snipe-IT's Pre-Flight URL
check aware of the `X-Forwarded-Proto` and `X-Forwarded-Host` HTTP
headers. These headers represent the _de-facto_ standard used by reverse
proxies and other HTTP intermediary components to convey information
about the incoming HTTP connection to the upstream application. Being
the upstream application, Snipe-IT can then make use of this information
to correctly evaluate the validity of the configured application URL.
2023-03-05 18:15:16 +01:00
Manuel Rodríguez Guimeráns
1d4f4b92de Include path in the expected URL during Pre-Flight
So that the message displayed to the user when the URL Pre-Flight check
fails is:

> Snipe-IT thinks your URL is SCHEME://DOMAIN, but your real
  URL is SCHEME://DOMAIN/setup

instead of:

> Snipe-IT thinks your URL is SCHEME://DOMAIN/setup, but your real
  URL is SCHEME://DOMAIN/setup

Having a missing "/setup" in the expected URL might confuse the user
into thinking that it is an additional configuration problem they need
to fix.

With this change, the comparison between the expected and actual URL
will not contain any accidental difference anymore. Only those that the
user really needs to be aware of and fix in their setup.
2023-03-05 17:52:45 +01:00
Achmad Fienan Rahardianto
0b3becee7a enable sortable for ID column 2023-03-04 11:27:00 +07:00
Ivan Nieto Vivanco
95f568b934 Remove unnecessary try/catch 2023-03-02 19:50:47 -06:00
snipe
95bd58487a Merge pull request #12602 from inietov/fixes/error_checkin_license_seat
Fixed #12601 Error checkin license seats
2023-03-02 17:48:22 -08:00
Ivan Nieto Vivanco
8a5d426ccd Use correct LicenseSeat property 2023-03-02 19:33:32 -06:00
Marcus Moore
e8da6d8bac Set purchase date in correct format 2023-03-02 13:47:58 -08:00
Marcus Moore
ad9eef6393 Update deprecated faker calls in Asset and Supplier factories 2023-03-02 13:41:52 -08:00
Marcus Moore
c3cc20fe0c Merge branch 'develop' into fix/test-suite 2023-03-02 13:23:00 -08:00
snipe
f817027fc2 Merge pull request #12593 from snipe/features/add_clone_to_locations
Added ability to clone location
2023-03-02 13:15:38 -08:00
Marcus Moore
45d7e9b134 Switch to using LazilyRefreshDatabase in unit test suite 2023-03-02 13:13:30 -08:00
Marcus Moore
75fc624ec6 Globally disable SecurityHeaders in tests 2023-03-02 13:12:25 -08:00
Ivan Nieto Vivanco
e0b2dc043a Adds try/catch to users API 2023-03-02 11:13:56 -06:00
Brady Wetherington
7edec26e73 Fixes to layout, improvements to import types, better icons for processing. 2023-03-01 17:18:36 -08:00
Godfrey M
aae178a606 gets select working, placeholders update dynamically 2023-03-01 17:10:10 -08:00
snipe
778787db3c Rip out jquery for location parent
Signed-off-by: snipe <snipe@snipe.net>
2023-03-01 15:36:01 -08:00
snipe
b8231f420b Remove name from blanking paroperties
Signed-off-by: snipe <snipe@snipe.net>
2023-03-01 14:12:33 -08:00
snipe
9b522006f3 Usew route group for locations
Signed-off-by: snipe <snipe@snipe.net>
2023-03-01 14:05:53 -08:00
snipe
84a14918bb Updated comments
Signed-off-by: snipe <snipe@snipe.net>
2023-03-01 14:03:33 -08:00
snipe
473553c464 Moved gate
Signed-off-by: snipe <snipe@snipe.net>
2023-03-01 14:01:40 -08:00
snipe
dac877f184 Added location clone
Signed-off-by: snipe <snipe@snipe.net>
2023-03-01 13:51:35 -08:00
Godfrey M
354f04534e add multi array, migration, still having issues 2023-03-01 12:30:32 -08:00
snipe
ca2619ca12 Merge remote-tracking branch 'origin/develop' 2023-03-01 12:28:34 -08:00
snipe
78b36c7886 Merge pull request #12592 from uberbrady/fix_accessories_report
The 'download activity report' displayed the wrong value for 'admin' (fixes FD-33368)
2023-03-01 12:28:03 -08:00
Brady Wetherington
ca849db316 The 'download activity report' displayed the wrong value for 'admin' 2023-03-01 12:23:13 -08:00
snipe
816d2f99cc Merge remote-tracking branch 'origin/develop' 2023-03-01 11:52:29 -08:00
snipe
c1b57064d4 Merge pull request #12591 from uberbrady/accessories_report_companies
Actually display name of company in Accessories Report
2023-03-01 11:52:10 -08:00
Brady Wetherington
9b80e86306 Actually display name of company in Accessories Report 2023-03-01 11:34:30 -08:00
snipe
d954c841e6 Merge pull request #12590 from snipe/fixes/check_for_array_in_linux_setup
Fixes/check for array in linux setup
2023-03-01 11:06:31 -08:00
snipe
562546a853 Updated comment
Signed-off-by: snipe <snipe@snipe.net>
2023-02-28 23:37:30 -08:00
snipe
4860440306 Check that it’s an array (versus checking that it’s not a bool)
Signed-off-by: snipe <snipe@snipe.net>
2023-02-28 23:32:10 -08:00
snipe
b72a9cc6fd Check if the $owner is boolean
Signed-off-by: snipe <snipe@snipe.net>
2023-02-28 23:31:26 -08:00
snipe
823203641d Updated assets with new font awesome
Signed-off-by: snipe <snipe@snipe.net>
2023-02-28 23:18:58 -08:00
snipe
b2fe3c36e9 Merge pull request #12589 from snipe/security/update_font_awesome_to_6_3_0
Updated font-awesome to ^6.3.0
2023-02-28 23:16:54 -08:00
snipe
1911480d3a Updated font-awesome to ^6.3.0
Signed-off-by: snipe <snipe@snipe.net>
2023-02-28 23:15:50 -08:00
Brady Wetherington
c48e19d236 Whoops, went a little overboard there. Whoopsie! 2023-02-28 22:51:48 -08:00
Brady Wetherington
863b30a07a Remove extraneous change to composer.json 2023-02-28 22:49:48 -08:00
Brady Wetherington
f3c500014c Another file I didn't really need to commit 2023-02-28 22:37:16 -08:00
Brady Wetherington
4f8710db63 Whoops, mis-committed something here that doesn't belong 2023-02-28 22:36:26 -08:00
Brady Wetherington
54cb38603b Cleaned up the last of the FIXME's (or downgraded them to TODO's) 2023-02-28 22:34:44 -08:00
Brady Wetherington
5cf66851f7 Finalizing the Livewire Importer! Just going to do some testing now 2023-02-28 21:58:02 -08:00
snipe
a6816c5e15 Merge remote-tracking branch 'origin/develop' 2023-02-28 20:53:32 -08:00
snipe
463ef02fae Merge pull request #12578 from inietov/fixes/undefined_variable_total
Fixed Undefined variable `$total`
2023-02-28 20:50:00 -08:00
snipe
b29276579f Updated prod assets
Signed-off-by: snipe <snipe@snipe.net>
2023-02-28 20:34:31 -08:00
snipe
dbe0a3352b Updated prod assets
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
2023-02-28 20:34:20 -08:00
snipe
6fec3f4303 Merge pull request #12586 from snipe/assets/compiled_dev_assets
Compiled dev assets
2023-02-28 20:32:41 -08:00
snipe
f9b5a67dc2 Compiled dev assets
Signed-off-by: snipe <snipe@snipe.net>
2023-02-28 20:32:08 -08:00
snipe
2189a74d6a Bumped hash
Signed-off-by: snipe <snipe@snipe.net>
2023-02-28 20:32:00 -08:00
snipe
44e2796645 Merge pull request #12579 from Godmartinz/gh12571_sidebar_adjustment
Fixes the sidebar margin top
2023-02-28 20:30:07 -08:00
snipe
70d0347fe9 Merge pull request #12580 from marcusmoore/feature/crowdin-source-upload
Add GitHub Action to push translation sources to Crowdin
2023-02-28 20:28:04 -08:00
Brady Wetherington
2f94bf96ff Everything's all wired up; just need to clean up all the FIXME's and stuff 2023-02-28 18:36:52 -08:00
snipe
417a1e624a Merge remote-tracking branch 'origin/develop' 2023-02-28 18:22:24 -08:00
snipe
34f13eaa8a Merge pull request #12393 from snipe/features/make_eol_sortable
Added EOL as de-normed and sortable on assets
2023-02-28 18:22:00 -08:00
snipe
1f7ae08d76 Merge branch 'develop' into features/make_eol_sortable 2023-02-28 18:05:09 -08:00
snipe
3a4e20ae82 Merge remote-tracking branch 'origin/develop' 2023-02-28 16:57:59 -08:00
snipe
2ab0abc8a1 Merge pull request #12575 from inietov/fixes/typeError_get_class_argument_must_be_object_null_given
Fixed: TypeError: get_class(): Argument #1 ($object) must be of type object, null given
2023-02-28 16:45:53 -08:00
snipe
373aeb26da Merge remote-tracking branch 'origin/develop' 2023-02-28 16:14:42 -08:00
snipe
d838662f48 Merge pull request #12585 from marcusmoore/fixes/fix-license-seeder
Fix license seeder
2023-02-28 16:03:15 -08:00
snipe
ff122bd07c Merge remote-tracking branch 'origin/develop' 2023-02-28 15:56:35 -08:00
snipe
5e626e75ad Merge pull request #12584 from snipe/fixes/error_on_datepicker
Convert string to date object for formatting
2023-02-28 15:55:59 -08:00
Marcus Moore
a7a26bb154 Fix License Factory 2023-02-28 15:55:28 -08:00
snipe
af9f9d2523 Convert string to date object for formatting
Signed-off-by: snipe <snipe@snipe.net>
2023-02-28 15:48:45 -08:00
snipe
d13e1b32e7 Merge pull request #12583 from inietov/fixes/user_start_and_end_date_error
Fixed User start and end date throws error [sc-20228]
2023-02-28 15:30:46 -08:00
Ivan Nieto Vivanco
ad598425ef Adds format to the dates cast 2023-02-28 17:24:14 -06:00
snipe
ec2ce1dff8 Merge remote-tracking branch 'origin/develop' 2023-02-28 15:13:22 -08:00
snipe
5194711a6a Merge pull request #12582 from akemidx/bug/sc-20065/license-export-does-not-show-info-of-boolean 2023-02-28 15:13:04 -08:00
Marcus Moore
4197e613b2 Fix License Factory 2023-02-28 14:50:48 -08:00
akemidx
25f3e4d41a Adding ability to see boolean values when using normal export 2023-02-28 16:01:23 -05:00
Marcus Moore
589a5d0d8b Merge branch 'develop' into fix/test-suite 2023-02-28 09:48:48 -08:00
Godfrey M
e8fbb0608f adjusts the sidebar margin top 2023-02-28 09:30:02 -08:00
Marcus Moore
d707f2d391 Add GitHub Action to push translation sources to Crowdin 2023-02-28 09:07:34 -08:00
Ivan Nieto Vivanco
1be0a8d911 Declare variable as an empty array 2023-02-28 10:22:49 -06:00
Ivan Nieto Vivanco
0d860c0b72 Check if target is not null to retrieve the proper data 2023-02-27 19:01:37 -06:00
Ivan Nieto Vivanco
9d94bd6567 Validate if the license seat is not checked out, it can't be checked in 2023-02-27 18:57:38 -06:00
snipe
ae35af55d1 Merge remote-tracking branch 'origin/develop' 2023-02-27 15:55:58 -08:00
snipe
23fe11c71e Merge pull request #12574 from inietov/fixes/address_in_mailbox_not_comply_rfc
Fixed Address in mailbox given does not comply with RFC 2822, 3.6.2. [sc-202022]
2023-02-27 15:55:31 -08:00
Ivan Nieto Vivanco
b4e578c95e Convert the alert_email setting from string to array 2023-02-27 17:34:29 -06:00
Brady Wetherington
53db266b69 WIP: cleaning up extraneous gunk and trying to standardize on one single Livewire Select2 implementation 2023-02-27 14:29:02 -08:00
Brady Wetherington
fb201e61f3 More wiring up Livewire to the back-end. 2023-02-27 14:29:02 -08:00
Brady Wetherington
e1c8f155bb Wiring up more bits to Livewire 2023-02-27 14:29:02 -08:00
Brady Wetherington
5c97e45d00 WIP - trying to get select2 wired up for importer 2023-02-27 14:29:02 -08:00
Brady Wetherington
8009ee79db I think I have, now, full parity on the base Importer level
Meaning that you can upload new files, delete old files, have error
messages, have status updates - and all of them seem to work.
2023-02-27 14:29:02 -08:00
Brady Wetherington
0a085af0a0 Getting the basic wiring of the importer over into Livewire
WIP: Wiring up more and more of the actions on the importer

Files now upload okay, a little glitchy on the display-side though

add to readmes so i dont forget
2023-02-27 14:28:59 -08:00
snipe
c2cdf5dae1 Merge remote-tracking branch 'origin/develop' 2023-02-27 13:34:16 -08:00
snipe
23ca124e94 Merge pull request #12573 from snipe/fixes/ambiguous_model_clause
Added table aliases to fix ambiguous SQL clause
2023-02-27 13:33:52 -08:00
snipe
c7106a1df2 Added table aliases to fix ambiguous SQL clause
Signed-off-by: snipe <snipe@snipe.net>
2023-02-27 13:24:09 -08:00
snipe
3f4a4e72a7 Merge remote-tracking branch 'origin/develop' 2023-02-27 12:17:33 -08:00
snipe
b78aba787f Merge pull request #12572 from snipe/fixes/add_max_results_limit_to_acitivity_report
Added max results limit to report index
2023-02-27 12:16:57 -08:00
snipe
96c851468c Added max results limit to report index
Signed-off-by: snipe <snipe@snipe.net>
2023-02-27 12:04:46 -08:00
Godfrey M
e8fc895e51 "adds variables, but still not working" 2023-02-27 09:19:59 -08:00
snipe
a5ccef5e96 Merge pull request #12564 from uberbrady/upgrade_acorn
Upgrade Acorn
2023-02-26 12:12:21 -08:00
Brady Wetherington
059190f002 Upgrade Acorn 2023-02-26 11:29:10 -08:00
snipe
6428cc259f Merge remote-tracking branch 'origin/develop' 2023-02-24 10:02:43 -08:00
snipe
cb0b234b80 Merge pull request #12561 from inietov/fixes/unable_to_import_purchase_date
Fixed #12559 Unable to import Purchase Date field
2023-02-24 10:02:25 -08:00
snipe
8caf29975f Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	config/version.php
2023-02-24 09:58:19 -08:00
snipe
95501bf57c Bumped hash
Signed-off-by: snipe <snipe@snipe.net>
2023-02-24 09:57:25 -08:00
snipe
75a73d095f Merge pull request #12560 from snipe/fixes/bulk_checkout_nulles_asset_name
Pass the existing asset name to the bulk checkout form
2023-02-24 09:56:13 -08:00
snipe
3e47d9e689 Pass the existing asset name to the bulk checkout form
Signed-off-by: snipe <snipe@snipe.net>
2023-02-24 09:54:46 -08:00
Ivan Nieto Vivanco
51efd9b413 Adjust the date format for purchase_date field 2023-02-24 10:59:31 -06:00
snipe
bd0b00e361 Merge pull request #12558 from inietov/fixes/non_numeric_value_in_license_seat
Fixed ErrorException: A non-numeric value encountered in app/Models/License [sc-20187]
2023-02-24 00:29:26 -08:00
Ivan Nieto Vivanco
6bd72125bd Deletes problematic cast 2023-02-23 22:31:41 -06:00
snipe
1415c8c6e2 Merge remote-tracking branch 'origin/develop' 2023-02-23 15:00:03 -08:00
snipe
41253b2680 Merge pull request #12556 from marcusmoore/fixes/asset-seeder
Fix purchase date field in asset seeder
2023-02-23 14:05:45 -08:00
Marcus Moore
bdac0f16ce Set purchase date field to the correct format in asset factory 2023-02-23 13:39:05 -08:00
snipe
dde2b946da Merge pull request #12555 from snipe/security/upgrade_dompdf
Update dompdf
2023-02-23 13:00:46 -08:00
snipe
0b408218b0 Update dompdf
Signed-off-by: snipe <snipe@snipe.net>
2023-02-23 12:59:04 -08:00
snipe
5e6ebb9a65 Merge pull request #12410 from uberbrady/paginate_accessories_report
Paginate accessories report
2023-02-23 12:26:17 -08:00
snipe
8e72da42e8 Merge pull request #12406 from akemidx/vip_tag
Added a checkbox to notate VIP status
2023-02-23 12:23:29 -08:00
snipe
309c0ff66f Merge remote-tracking branch 'origin/develop' 2023-02-23 11:41:36 -08:00
snipe
eb6357636a Merge pull request #12467 from marcusmoore/fix/scope-people-with-full-multiple-companies
Fix full company scoping in user selects
2023-02-23 10:36:33 -08:00
snipe
adb166fb8d Merge remote-tracking branch 'origin/develop' 2023-02-22 18:01:06 -08:00
snipe
4a9ced192b Merge pull request #12550 from marcusmoore/fixes/closing-tag-in-mail-template
Properly close tag in mail template
2023-02-22 17:59:20 -08:00
Marcus Moore
6c8de181cf Properly close tag in mail template 2023-02-22 17:52:47 -08:00
snipe
5a1e5f740d Merge pull request #12537 from inietov/fixes/expected_checkin_date_validation
Fixed #12531 Expected Checkin Date on Asset Checkout throws an error
2023-02-22 16:03:51 -08:00
akemidx
690970b4aa fixing ff error 2023-02-22 18:18:20 -05:00
Marcus Moore
f63710fb5c Remove unused import 2023-02-22 12:34:56 -08:00
Marcus Moore
7667b0a216 Remove extra line 2023-02-22 12:34:35 -08:00
Marcus Moore
931ca98c02 Remove middleware bypass 2023-02-22 12:33:55 -08:00
snipe
225b6ef310 Merge remote-tracking branch 'origin/develop' 2023-02-22 12:24:52 -08:00
snipe
13ed2a05a3 Add @AndrewSav as a contributor 2023-02-22 12:24:13 -08:00
Marcus Moore
aae2106658 Use existing language translation string 2023-02-22 12:02:14 -08:00
snipe
81cb29db5e Merge pull request #12509 from inietov/fixes/add_images_to_user_inventory_mail_report
Added images to emailed user inventory report [sc-19801]
2023-02-22 10:38:07 -08:00
snipe
05f6d0bd5e Merge pull request #11984 from nh314/Correct-assignedusers-relation
Correct assignedusers relation setting
2023-02-21 20:15:20 -08:00
snipe
4bf1566d2a Merge pull request #12124 from Godmartinz/feature/sc-16946/add-checkbox-to-allow-skipping-a-user-during
Adds Boolean to Users Table for Auto Assigning Licenses
2023-02-21 20:10:46 -08:00
snipe
0c3115553e Merge branch 'develop' into vip_tag 2023-02-21 20:03:49 -08:00
Brady Wetherington
aadfa9aa9c Back out Laravel Vite stuff - we're so far away from that right now 2023-02-21 19:54:14 -08:00
snipe
942fee4d43 Merge pull request #12447 from akemidx/user_setup_translation
FIXED: Translations on the User Creation setup page
2023-02-21 19:53:00 -08:00
snipe
ba461d0114 Merge pull request #12538 from AndrewSav/develop
Added #12532: add version endpoint
2023-02-21 19:50:07 -08:00
snipe
3ae783a9c7 Merge pull request #12525 from uberbrady/add_sodium_php_shim
Add libsodium shim, and mark the sodium extension as 'optional'
2023-02-21 19:38:14 -08:00
Brady Wetherington
645bba96cd WIP: First stabs at getting Laravel Vite to work; no luck so far :(
Probably going to back out all the 'vite' stuff anyways :/
2023-02-21 19:35:37 -08:00
Ivan Nieto Vivanco
d494afcf01 Add order by clause, to ensure assets and accessories are in order in the report 2023-02-21 21:24:19 -06:00
snipe
57065b8936 Merge remote-tracking branch 'origin/develop' 2023-02-21 09:20:59 -08:00
snipe
40a38486b9 Merge pull request #12545 from snipe/localizations/more_new_translations
Two more translations
2023-02-21 09:20:38 -08:00
snipe
29158dece5 Two more translations
Signed-off-by: snipe <snipe@snipe.net>
2023-02-21 09:19:34 -08:00
snipe
f6e4e17e5c Merge remote-tracking branch 'origin/develop' 2023-02-21 09:05:50 -08:00
snipe
8185f264a4 Merge pull request #12544 from snipe/localizations/updated_general
Updated the general translation file with new strings
2023-02-21 09:05:24 -08:00
snipe
04d3938f0c Updated the general translation file with new strings
Signed-off-by: snipe <snipe@snipe.net>
2023-02-21 09:04:13 -08:00
snipe
f109218e16 Re-added dropped translations from CrowdIn
Signed-off-by: snipe <snipe@snipe.net>
2023-02-21 09:00:10 -08:00
snipe
049213c3da Merge remote-tracking branch 'origin/develop' 2023-02-21 04:02:08 -08:00
snipe
9c1a71e04a Merge pull request #12541 from snipe/localizations/new_strings
Updated translations with new strings and new translations
2023-02-21 03:58:25 -08:00
snipe
a0b05bac8d Updated translations with new strings and new translations
Signed-off-by: snipe <snipe@snipe.net>
2023-02-21 03:54:55 -08:00
Andrew Savinykh
d2ede75de8 fixes #12532 adds version endpoint 2023-02-20 22:19:18 +13:00
Ivan Nieto Vivanco
6e994c209f Adds setter to model Asset class for expected checkin 2023-02-19 12:31:10 -06:00
akemidx
f33b6a3e26 Update user.blade.php 2023-02-17 12:52:54 -05:00
akemidx
dfc2aa35f4 Update general.php 2023-02-17 12:51:58 -05:00
snipe
f71d8b2f07 Merge remote-tracking branch 'origin/develop' 2023-02-16 17:05:48 -08:00
snipe
248eb0885c Merge pull request #12533 from snipe/fixes/expected_checkin_wtf
FML - this is a hotfix and I don’t know why this is causing problems
2023-02-16 17:01:54 -08:00
snipe
754842f620 FML - this is a hotfix and I don’t know why this is causing problems
Signed-off-by: snipe <snipe@snipe.net>
2023-02-16 16:58:00 -08:00
snipe
43eacff265 Merge remote-tracking branch 'origin/develop' 2023-02-16 12:11:26 -08:00
snipe
fdffe76b9f Merge pull request #12529 from Godmartinz/bug/sc-20046/allow-user-to-submit-the-slack-livewire-form
allows users to clear their slack settings
2023-02-16 11:47:58 -08:00
Godfrey M
58801dbb0b allows users to clear their slack settings 2023-02-16 08:43:12 -08:00
snipe
e9ab90eafc Merge pull request #12422 from marcusmoore/fix/adhere-to-email-alerts-setting
Have acceptance result notifications adhere to alerts enabled setting
2023-02-15 18:46:08 -08:00
snipe
495d7e057d Merge remote-tracking branch 'origin/develop' 2023-02-15 18:37:39 -08:00
snipe
9f8ea9a243 Merge pull request #12524 from snipe/fixes/small_UI_tweaks
Cleanup some small UI bugaboos (padding, etc)
2023-02-15 18:20:08 -08:00
Brady Wetherington
3a2b54fd47 Add libsodium shim, and mark the sodium extension as 'optional'
Trying to handle some composer.lock conflicts, as savely as possible.
2023-02-15 18:16:39 -08:00
snipe
71334b5eae More tweaking for top button alignment
Signed-off-by: snipe <snipe@snipe.net>
2023-02-15 18:13:38 -08:00
snipe
f124249e1c More padding twiddles
Signed-off-by: snipe <snipe@snipe.net>
2023-02-15 18:08:11 -08:00
snipe
e451ca1a5c Stray semicolon
Signed-off-by: snipe <snipe@snipe.net>
2023-02-15 17:37:53 -08:00
snipe
3e111fca6e Cleanup some small UI bugaboos (padding, etc)
Signed-off-by: snipe <snipe@snipe.net>
2023-02-15 17:13:40 -08:00
snipe
df64e0e291 Merge pull request #12523 from Godmartinz/bug/sc-20041/slack-ui-livewire-tweaks
Fixes slack settings submit button availability
2023-02-15 16:28:57 -08:00
snipe
51c9a7d4f8 Merge pull request #12521 from akemidx/weird_checkout_text
Fixed awkward checkout text in checkedout side panel
2023-02-15 16:28:05 -08:00
akemidx
d8d713426d indent? 2023-02-15 19:24:20 -05:00
akemidx
7dd789d5c0 translate no assets at checkout 2023-02-15 19:22:13 -05:00
Godfrey M
2d8c8e8f48 removes lazy loading 2023-02-15 16:16:14 -08:00
Godfrey M
7b510d5f2b greys out submit button conditionally 2023-02-15 15:46:05 -08:00
snipe
221f5f5ca7 Merge pull request #12522 from snipe/fixes/slack_livewire_translations
Fixes slack livewire translations, UI
2023-02-15 14:45:46 -08:00
snipe
d4634e83c9 Nicer padding, removed unused ids
Signed-off-by: snipe <snipe@snipe.net>
2023-02-15 14:45:18 -08:00
snipe
6c3ffa7918 Removed unused CSS
Signed-off-by: snipe <snipe@snipe.net>
2023-02-15 14:39:24 -08:00
snipe
27e5832a28 Use existing slack translations
Signed-off-by: snipe <snipe@snipe.net>
2023-02-15 14:06:52 -08:00
snipe
2d0bd2b292 Make spinner actually spin
Signed-off-by: snipe <snipe@snipe.net>
2023-02-15 14:06:40 -08:00
akemidx
b96f2f738d fixed weird phrasing in asset checkout screen 2023-02-15 16:47:48 -05:00
snipe
ff895739f4 Merge pull request #12446 from Godmartinz/livewire_slack_inputs
Adds Livewire slack inputs
2023-02-15 13:27:07 -08:00
snipe
de4f7bd274 Merge pull request #12408 from snipe/fixes/stricter_date_rectrictions_on_validation
Enforce Y-m-d as date format for date fields
2023-02-15 12:54:22 -08:00
snipe
25461caa2c Removed date validation rule
Signed-off-by: snipe <snipe@snipe.net>
2023-02-15 12:53:55 -08:00
snipe
bfac0fc811 Merge pull request #12470 from inietov/fixes/rollbar_16883_attempt_assign_on_null
Fixed Rollbar 16883 Error: Attempt to assign property "assigned_to" on null
2023-02-15 12:33:32 -08:00
snipe
057f0be20a Merge pull request #12473 from inietov/fixes/rollbar_attempt_to_read_property_on_null
Fixed ErrorException:  Attempt to read property "id" on null [sc-19855]
2023-02-15 12:32:53 -08:00
snipe
7980e2ab2e Merge pull request #12517 from uberbrady/silence_ldap_exceptions
Silence E_WARNING "exceptions"
2023-02-15 11:56:37 -08:00
Marcus Moore
f99f6d32fa Make phpstan configuration more flexible 2023-02-15 11:33:08 -08:00
Marcus Moore
d088b39fb2 Remove ignore errors section covered by larastan config 2023-02-15 11:33:08 -08:00
Marcus Moore
6bfd2fd5ad Sort paths 2023-02-15 11:33:08 -08:00
Marcus Moore
6778cf79a0 Include Larastan configuration file 2023-02-15 11:33:08 -08:00
snipe
ac4103281c Still throwing errors, but trying to fix the docblock
Signed-off-by: snipe <snipe@snipe.net>
2023-02-15 11:33:08 -08:00
snipe
03af417e89 We shouldn’t need this because aliases??
Signed-off-by: snipe <snipe@snipe.net>
2023-02-15 11:33:08 -08:00
snipe
77362b3b41 Added larastan and psalm to composer dev
Signed-off-by: snipe <snipe@snipe.net>
2023-02-15 11:33:08 -08:00
snipe
db8c29b901 Psalm and phpstan configs
Signed-off-by: snipe <snipe@snipe.net>
2023-02-15 11:33:08 -08:00
snipe
3d219f578e The sea, Brady.
Signed-off-by: snipe <snipe@snipe.net>
2023-02-15 11:33:08 -08:00
snipe
8c3511a00b Fixed wonky switch statement indenting
Signed-off-by: snipe <snipe@snipe.net>
2023-02-15 11:33:08 -08:00
snipe
c1ae406049 Fixed visibility for constants and methods
Signed-off-by: snipe <snipe@snipe.net>
2023-02-15 11:33:08 -08:00
snipe
1ef3112628 FIxed yoda operator
Signed-off-by: snipe <snipe@snipe.net>
2023-02-15 11:33:08 -08:00
snipe
0325cbad64 Removed unused else condition
Signed-off-by: snipe <snipe@snipe.net>
2023-02-15 11:33:08 -08:00
snipe
6dc89fc2b0 Use null coalescing operator
Signed-off-by: snipe <snipe@snipe.net>
2023-02-15 11:33:08 -08:00
snipe
b25676c96b Fixed Implicit array creation is disallowed.
Signed-off-by: snipe <snipe@snipe.net>
2023-02-15 11:33:08 -08:00
snipe
14e95c47e1 Made constant DATA_SESSION_KEY public
Signed-off-by: snipe <snipe@snipe.net>
2023-02-15 11:33:08 -08:00
snipe
dc43c4f68a Removed unneeded concat
Signed-off-by: snipe <snipe@snipe.net>
2023-02-15 11:33:08 -08:00
snipe
0e7ac5c95e Added phpinsights
Signed-off-by: snipe <snipe@snipe.net>
2023-02-15 11:33:08 -08:00
snipe
c7f90f304d Added insights config
Signed-off-by: snipe <snipe@snipe.net>
2023-02-15 11:33:08 -08:00
snipe
78a0b06a61 Fixed array bracket indenting
Signed-off-by: snipe <snipe@snipe.net>
2023-02-15 11:33:08 -08:00
snipe
40f487beae Added parens
Signed-off-by: snipe <snipe@snipe.net>
2023-02-15 11:33:08 -08:00
snipe
2992ca1fa2 Fixed yoda operator
Signed-off-by: snipe <snipe@snipe.net>
2023-02-15 11:33:08 -08:00
snipe
15f9c6af67 Removed unused variable
Signed-off-by: snipe <snipe@snipe.net>
2023-02-15 11:33:08 -08:00
snipe
7a19da4f64 Removed unused variable
Signed-off-by: snipe <snipe@snipe.net>
2023-02-15 11:33:08 -08:00
Ivan Nieto Vivanco
07f501408f Add migration to fix already escaped formats in the database 2023-02-15 11:33:08 -08:00
Ivan Nieto Vivanco
53e449899b Remove e() function from customfield format input 2023-02-15 11:33:08 -08:00
Godfrey M
b2f1ca95df missing things like mr magoo 2023-02-15 11:33:08 -08:00
Godfrey M
f3ab384e70 simplified to an else instead of elseif 2023-02-15 11:33:08 -08:00
Godfrey M
61bf1e91e7 adds the red x icon to a false deployable status 2023-02-15 11:33:08 -08:00
Godfrey M
1c54feea5b adds a red icon next to broken- not fixable status label 2023-02-15 11:33:08 -08:00
Marcus Moore
7423570e6b Add comment 2023-02-15 11:33:08 -08:00
Marcus Moore
b946a6066d Use name if provided by asset checkout request 2023-02-15 11:33:07 -08:00
Marcus Moore
9c25dd4eb6 Improve error message wording 2023-02-15 11:33:07 -08:00
Marcus Moore
e69fcf10b7 Use translation strings for importer exceptions 2023-02-15 11:33:07 -08:00
akemidx
937e2813e9 fixing external if statement 2023-02-15 11:33:07 -08:00
akemidx
a84081068d functionality to Apple Warranty link 2023-02-15 11:33:07 -08:00
akemidx
d9857d955b translations for the layout setup 2023-02-15 11:33:07 -08:00
akemidx
66251bfd8a sweedish chef fixes up your typos 2023-02-15 11:33:07 -08:00
akemidx
677f7a446e manufacturer marker removal 2023-02-15 11:33:07 -08:00
Marcus Moore
fdce6f98ff Return 422 instead of 500 when import is invalid 2023-02-15 11:33:07 -08:00
Marcus Moore
5a00685c81 Fix return type 2023-02-15 11:33:07 -08:00
Marcus Moore
18f0b1cc3d Formatting 2023-02-15 11:33:07 -08:00
Marcus Moore
6da43bc940 Catch json encoding exceptions and display them to the user 2023-02-15 11:33:07 -08:00
Ivan Nieto Vivanco
98187773f7 Adds translation strings to theinventory report sent to users 2023-02-15 11:33:07 -08:00
Brady Wetherington
3757c7e353 Make early-boot errors (syntax, others) be more easy-to-read 2023-02-15 11:31:13 -08:00
snipe
3800cdd0da Merge pull request #12466 from snipe/fixes/style_fixes
Style fixes
2023-02-15 11:07:59 -08:00
snipe
1ed57d30e0 Merge pull request #12516 from inietov/fixes/quotes_in_custom_field_custom_regex
Fixed #12252 Quotes in Custom Field regex are being HTML-escaped
2023-02-14 20:10:43 -08:00
Brady Wetherington
a1b0eaf128 Got working E_WARNING-in-production going. YAY! 2023-02-14 20:00:06 -08:00
snipe
f7df2ae403 Merge pull request #12513 from Godmartinz/gh12493
adds a red icon next to the  undeployable status
2023-02-14 14:37:06 -08:00
Godfrey M
793cf4823b missing things like mr magoo 2023-02-14 14:35:54 -08:00
Godfrey M
c0d8ff1676 simplified to an else instead of elseif 2023-02-14 14:21:24 -08:00
snipe
b0b1c96ab5 Merge pull request #12514 from marcusmoore/fixes/preserve-asset-name-during-api-checkout
Fix asset names being removed during API checkout requests
2023-02-14 12:22:03 -08:00
Marcus Moore
8e00191b69 Add comment 2023-02-14 12:19:16 -08:00
Marcus Moore
a94f19a68e Use name if provided by asset checkout request 2023-02-14 12:08:20 -08:00
Godfrey M
0cd558593d adds the red x icon to a false deployable status 2023-02-14 10:34:36 -08:00
Godfrey M
d03e042eda adds a red icon next to broken- not fixable status label 2023-02-14 09:55:48 -08:00
Marcus Moore
8b183490ba Use "testing" environment for tests 2023-02-13 18:56:22 -08:00
Marcus Moore
228c59e6ed Bring phpunit.xml closer to default 2023-02-13 18:55:50 -08:00
snipe
2dd7690d2d Merge pull request #12464 from snipe/dependabot/github_actions/docker/build-push-action-4
Bump docker/build-push-action from 3 to 4
2023-02-13 14:45:21 -08:00
snipe
1520c9c6a7 Merge pull request #12506 from marcusmoore/fix/use-translation-strings-for-importer-errors
Use translation strings for importer exceptions
2023-02-13 14:17:47 -08:00
Marcus Moore
4bdb1cf552 Improve error message wording 2023-02-13 13:34:20 -08:00
Marcus Moore
2349f54013 Use translation strings for importer exceptions 2023-02-13 13:30:36 -08:00
snipe
2bbbc8158b Merge pull request #12477 from akemidx/apple_warranty_link
Added functionality to Apple Warranty link
2023-02-13 13:02:33 -08:00
snipe
2f5b4c8e1b Merge pull request #12498 from akemidx/layout_trans
Translations for the layout setup
2023-02-13 13:01:58 -08:00
Ivan Nieto Vivanco
99122ccb50 Add migration to fix already escaped formats in the database 2023-02-12 17:40:04 -06:00
Ivan Nieto Vivanco
6936efd387 Remove e() function from customfield format input 2023-02-12 16:27:37 -06:00
Ivan Nieto Vivanco
f0bf16d784 Fix more uneven tags 2023-02-12 12:01:40 -06:00
Ivan Nieto Vivanco
9a68a747a0 Fix uneven tags 2023-02-12 11:59:56 -06:00
Ivan Nieto Vivanco
81cc9f3700 Adds images to emailed user inventory report 2023-02-12 08:23:50 -06:00
akemidx
5714824aa7 translations for the layout setup 2023-02-09 17:24:34 -05:00
snipe
e79818967d Merge pull request #12490 from akemidx/manufacturer_marker
Removed "required" marker for manufacturer on asset models (since it is not actually required)
2023-02-09 12:43:14 -08:00
akemidx
32ed70259e sweedish chef fixes up your typos 2023-02-09 15:39:10 -05:00
snipe
35ab4a4cce Merge pull request #12489 from marcusmoore/fix/encoding-errors-in-importer
Improve error messaging around invalid characters in import
2023-02-08 15:08:23 -08:00
akemidx
1a651b33fc manufacturer marker removal 2023-02-08 17:31:39 -05:00
Marcus Moore
73f355f3a8 Return 422 instead of 500 when import is invalid 2023-02-08 12:39:42 -08:00
Marcus Moore
b3881a43a7 Fix return type 2023-02-08 12:34:25 -08:00
Marcus Moore
c2c666aef0 Formatting 2023-02-08 12:32:57 -08:00
Marcus Moore
5962f1b627 Catch json encoding exceptions and display them to the user 2023-02-08 12:21:51 -08:00
snipe
a4a3c03a7c Merge pull request #12478 from inietov/fixes/added_translation_strings_inventory_report
Fixed #12064 Mail-Template missing translation strings
2023-02-08 10:02:19 -08:00
snipe
201728989f Merge pull request #12486 from svpernova09/patch-1
Don't auto assign feature requests to Snipe
2023-02-08 07:59:58 -08:00
Joe Ferguson
dea175bd40 Don't auto assign feature requests to Snipe 2023-02-08 09:57:54 -06:00
snipe
23b1e8da27 Merge remote-tracking branch 'origin/develop' 2023-02-07 18:46:30 -08:00
snipe
e883a61a48 Merge pull request #12480 from snipe/fixes/ui_fix_for_user_files
Fixed UI bug where download button was missing for non-images
2023-02-07 18:46:07 -08:00
snipe
16fcc6dc44 Fixed UI bug where download button was missing for non-images
Signed-off-by: snipe <snipe@snipe.net>
2023-02-07 18:40:00 -08:00
Marcus Moore
4f9ebf6cde Fix array key 2023-02-07 16:40:27 -08:00
Ivan Nieto Vivanco
49b6a1cc53 Adds translation strings to theinventory report sent to users 2023-02-07 18:29:19 -06:00
Marcus Moore
787f619a6b Standardize test method syntax 2023-02-07 16:28:40 -08:00
Marcus Moore
505ca48da2 Remove test method without assertions 2023-02-07 16:17:36 -08:00
Marcus Moore
6b8c0f9e88 Make BaseTest abstract 2023-02-07 16:17:16 -08:00
Marcus Moore
3fdf4dea1b Use factories for relationships in asset factory 2023-02-07 16:17:05 -08:00
Marcus Moore
6dbcec2310 Exclude Dusk tests from phpunit test suite 2023-02-07 16:16:39 -08:00
akemidx
75f3cb3079 fixing external if statement 2023-02-07 19:02:12 -05:00
akemidx
c0074baa26 functionality to Apple Warranty link 2023-02-07 17:27:39 -05:00
snipe
4f9587da57 Merge remote-tracking branch 'origin/develop' 2023-02-07 13:34:57 -08:00
snipe
4b2d35e05d Merge pull request #12474 from snipe/fixes/destroy_method_for_fieldsets
Fixed mismatched field/fieldset
2023-02-07 13:33:38 -08:00
Marcus Moore
321a34a9d3 Make phpstan configuration more flexible 2023-02-07 13:32:32 -08:00
snipe
c1d484b5df Fixed mismatched field/fieldset
Signed-off-by: snipe <snipe@snipe.net>
2023-02-07 13:31:50 -08:00
Marcus Moore
fd524c5f14 Remove ignore errors section covered by larastan config 2023-02-07 12:48:41 -08:00
Marcus Moore
e4cf59c034 Sort paths 2023-02-07 12:46:13 -08:00
Marcus Moore
efac2259db Include Larastan configuration file 2023-02-07 12:25:13 -08:00
snipe
ea644f8d47 Still throwing errors, but trying to fix the docblock
Signed-off-by: snipe <snipe@snipe.net>
2023-02-07 11:02:20 -08:00
snipe
dd5f256450 We shouldn’t need this because aliases??
Signed-off-by: snipe <snipe@snipe.net>
2023-02-07 11:02:02 -08:00
snipe
f4617d8d5b Added larastan and psalm to composer dev
Signed-off-by: snipe <snipe@snipe.net>
2023-02-07 11:01:21 -08:00
snipe
32be88d796 Psalm and phpstan configs
Signed-off-by: snipe <snipe@snipe.net>
2023-02-07 11:00:59 -08:00
snipe
219d92dcfb The sea, Brady.
Signed-off-by: snipe <snipe@snipe.net>
2023-02-07 11:00:30 -08:00
Ivan Nieto Vivanco
d4c838a979 Add condition in activity report to only access assigned item id if it exist 2023-02-07 11:26:49 -06:00
Ivan Nieto Vivanco
ddabe7cc9f Added Guard Clause to License Importer to return if no empty seat is found 2023-02-07 01:36:55 -06:00
Marcus Moore
c03079944a Be more explicit in test case 2023-02-06 16:06:13 -08:00
snipe
cd5546e4a1 Fixed wonky switch statement indenting
Signed-off-by: snipe <snipe@snipe.net>
2023-02-06 12:44:17 -08:00
snipe
d52d32fed9 Fixed visibility for constants and methods
Signed-off-by: snipe <snipe@snipe.net>
2023-02-06 12:44:02 -08:00
snipe
7363d4e223 FIxed yoda operator
Signed-off-by: snipe <snipe@snipe.net>
2023-02-06 12:43:35 -08:00
snipe
c8c5dddcc1 Removed unused else condition
Signed-off-by: snipe <snipe@snipe.net>
2023-02-06 12:43:19 -08:00
snipe
1651dbb68d Use null coalescing operator
Signed-off-by: snipe <snipe@snipe.net>
2023-02-06 12:43:00 -08:00
snipe
d95adcae37 Fixed Implicit array creation is disallowed.
Signed-off-by: snipe <snipe@snipe.net>
2023-02-06 12:41:54 -08:00
snipe
8a8575bf2d Made constant DATA_SESSION_KEY public
Signed-off-by: snipe <snipe@snipe.net>
2023-02-06 12:40:32 -08:00
snipe
590cb6a15b Removed unneeded concat
Signed-off-by: snipe <snipe@snipe.net>
2023-02-06 12:40:09 -08:00
snipe
aeb8dfb07d Added phpinsights
Signed-off-by: snipe <snipe@snipe.net>
2023-02-06 12:39:55 -08:00
snipe
a60510c063 Added insights config
Signed-off-by: snipe <snipe@snipe.net>
2023-02-06 12:39:48 -08:00
snipe
8841f04333 Fixed array bracket indenting
Signed-off-by: snipe <snipe@snipe.net>
2023-02-06 12:39:38 -08:00
snipe
ab6ca0e066 Added parens
Signed-off-by: snipe <snipe@snipe.net>
2023-02-06 12:39:22 -08:00
snipe
ec2afee57d Fixed yoda operator
Signed-off-by: snipe <snipe@snipe.net>
2023-02-06 12:39:12 -08:00
snipe
b10ea0c25c Removed unused variable
Signed-off-by: snipe <snipe@snipe.net>
2023-02-06 12:38:56 -08:00
snipe
686d1aaae7 Removed unused variable
Signed-off-by: snipe <snipe@snipe.net>
2023-02-06 12:38:29 -08:00
Marcus Moore
0e57e4836e Add translation for Company 2023-02-06 12:21:23 -08:00
Marcus Moore
45e8e9bbed Move company name to better location 2023-02-06 12:21:09 -08:00
Marcus Moore
38cdcdf064 Eager load company 2023-02-06 10:59:51 -08:00
Marcus Moore
78343ddb7c Add asset's company name to checkout page 2023-02-06 10:58:10 -08:00
Godfrey M
74c64c1fc5 adds validation to the update hook, removes typos and deadlines 2023-02-06 09:40:57 -08:00
dependabot[bot]
ea0f505db7 Bump docker/build-push-action from 3 to 4
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 3 to 4.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v3...v4)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-06 08:07:13 +00:00
snipe
b37c4553ef Merge remote-tracking branch 'origin/develop' 2023-02-02 23:41:05 -08:00
snipe
b0f4015bb4 Merge pull request #12459 from snipe/fixes/broken_route_in_deleted_models
Updated model restore route
2023-02-02 23:40:39 -08:00
snipe
dc414d3552 Updated model restore route
Signed-off-by: snipe <snipe@snipe.net>
2023-02-02 23:38:59 -08:00
Marcus Moore
0cefc7de15 Skip security headers middleware when testing 2023-02-02 18:37:35 -08:00
Marcus Moore
9a0c66bd30 Clear some extra lines 2023-02-02 18:30:18 -08:00
Marcus Moore
d8e92d29c0 Improve readability 2023-02-02 18:25:54 -08:00
Marcus Moore
93a62c87c2 Implement test for searching users 2023-02-02 17:57:24 -08:00
Marcus Moore
89eff23e44 Continue implementing tests 2023-02-02 17:41:32 -08:00
snipe
41b0756286 Merge remote-tracking branch 'origin/develop' 2023-02-02 15:35:41 -08:00
snipe
f9ef49f886 Merge pull request #12457 from snipe/fixed/regression_on_field_associations
Fixed regression in fieldset -> field association
2023-02-02 15:35:22 -08:00
snipe
51f3857a31 Fixed something I think I broke
Signed-off-by: snipe <snipe@snipe.net>
2023-02-02 15:32:45 -08:00
Marcus Moore
a2e47d19fc Scaffold tests for user select list api and begin to implemenet 2023-02-02 13:47:00 -08:00
snipe
bbf6e5e69e Merge pull request #12421 from akemidx/hardware_blades_translations
Fixed: translations added for the hardware blades
2023-02-02 13:02:46 -08:00
akemidx
b8951e2b54 fixing name from vipuser to vip 2023-02-02 15:58:05 -05:00
akemidx
37ce68af5b once again fixing an apostrophe 2023-02-02 15:54:05 -05:00
akemidx
29851c626f Merge branch 'develop' into user_setup_translation 2023-02-02 14:34:09 -05:00
snipe
1f60afa8e3 Merge remote-tracking branch 'origin/develop' 2023-02-02 11:28:41 -08:00
snipe
64aea8d374 Merge pull request #12456 from snipe/features/add_notes_to_user_history
Fixed #12449 - Added checkout/checkin  note to user history
2023-02-02 11:28:08 -08:00
snipe
7344bbdd7f Added checkout/checkin note to user history
Signed-off-by: snipe <snipe@snipe.net>
2023-02-02 11:26:33 -08:00
snipe
782abe1cf3 Merge remote-tracking branch 'origin/develop' 2023-02-02 11:09:18 -08:00
snipe
2d3318feb6 Merge pull request #12454 from snipe/fixes/fixed_500_when_userfile_does_not_exisy
Handle missing userfiles more gracefully
2023-02-02 11:08:54 -08:00
snipe
78dca7fd32 Handle missing userfiles more gracefully
Signed-off-by: snipe <snipe@snipe.net>
2023-02-02 10:49:36 -08:00
snipe
2a8851bbd7 Merge pull request #12342 from marcusmoore/fix/dusk-test-suite
Fixed Dusk Test Suite
2023-02-02 09:50:34 -08:00
akemidx
69c38bf686 translations on the User Creation page 2023-02-01 20:32:16 -05:00
Brady Wetherington
039d159cbd WIP: working on better Rollbar filtering in prod 2023-02-01 17:15:22 -08:00
Godfrey M
17f1772143 removes postslack from settings controller 2023-02-01 16:58:08 -08:00
Godfrey M
3a86547ef5 fixes messages for integration test, removes slack request file, rehouses ajax method 2023-02-01 16:51:05 -08:00
snipe
4bc804e876 Merge remote-tracking branch 'origin/develop' 2023-02-01 16:50:19 -08:00
snipe
2997de2a66 Merge pull request #12445 from snipe/fixes/exit_out_ldap
Added an exit for the LDAP disabled sync short-circuit
2023-02-01 16:48:00 -08:00
snipe
0cfeab8c50 Added an exit for the LDAP disabled sync short-circuit
Signed-off-by: snipe <snipe@snipe.net>
2023-02-01 16:46:58 -08:00
snipe
c706759b5c Merge remote-tracking branch 'origin/develop' 2023-02-01 16:42:11 -08:00
snipe
1432403c9f Merge pull request #12444 from snipe/fixes/only_fire_ldap_sync_in_console_if_enabled
Fixed: Short-circuit the LDAP sync is LDAP is disabled
2023-02-01 16:40:32 -08:00
snipe
67e6089805 Short circuit the LDAP sync is LDAP is disabled
Signed-off-by: snipe <snipe@snipe.net>
2023-02-01 16:36:30 -08:00
snipe
d9cdb92014 Merge branch 'develop' into vip_tag 2023-02-01 16:03:23 -08:00
snipe
ea4d5e69bc Merge pull request #12407 from akemidx/slack_message
Fixed: translation for slack message notification
2023-02-01 13:44:12 -08:00
snipe
2da4578aa5 Merge branch 'develop' into slack_message 2023-02-01 13:43:09 -08:00
snipe
1a8fb5bcfe Merge pull request #12423 from snipe/features/edit_fieldset_name
Fixed #12418 - added ability to edit custom field names via GUI
2023-02-01 13:39:39 -08:00
snipe
0d4ca218c5 Merge pull request #12437 from uberbrady/ldap_allow_undelegatable_users_to_login
Fixed: Active Directory "not-delegated+dont-expire-password+normal-accounts" can now login
2023-02-01 13:38:59 -08:00
snipe
4a6250a08c Merge pull request #12409 from akemidx/component_checkin_limit
Fixed: Checkin limit string translation for components
2023-02-01 13:37:56 -08:00
akemidx
0ffd40a217 fixing syntax 2023-02-01 16:30:07 -05:00
akemidx
33d819fd41 fixing pr 2023-02-01 16:13:53 -05:00
akemidx
90c1bfe03d fixing pr 2023-02-01 16:12:39 -05:00
akemidx
3702dd87ce fixing pr 2023-02-01 16:10:30 -05:00
akemidx
4d9d73483f fixing pr 2023-02-01 16:09:19 -05:00
akemidx
4e5b8fa213 fixing pr 2023-02-01 16:05:50 -05:00
akemidx
a8643e5d35 cleaning up/adding variable 2023-02-01 15:55:16 -05:00
Godfrey M
f95a904d90 adds integration button, working on its functionality 2023-02-01 12:08:13 -08:00
Marcus Moore
a45ce468cc Update return type for routing mail notifications 2023-02-01 11:44:56 -08:00
Marcus Moore
3580bdae86 Use object accessor instead of array accessor 2023-02-01 11:44:35 -08:00
cram42
0f3c5d10ba Merge branch 'feature-label2' into develop 2023-02-01 18:01:46 +11:00
cram42
73fd0a24ca Clarify example asset variable 2023-02-01 17:58:58 +11:00
cram42
4b4c228f1a Correct parameter order 2023-02-01 17:56:23 +11:00
cram42
b72c6b7afc Fix 2D barcode defaults 2023-02-01 17:48:39 +11:00
snipe
38f3843c23 Merge pull request #12386 from snipe/features/fixed_12382_added_checked_out_count_to_accessories
Fixed #12382 - added checked out count to accessories
2023-01-31 19:57:12 -08:00
snipe
f7ae5db4f3 Merge branch 'develop' into features/fixed_12382_added_checked_out_count_to_accessories 2023-01-31 19:56:43 -08:00
snipe
6fbd20a11b Merge remote-tracking branch 'origin/develop' 2023-01-31 19:50:18 -08:00
snipe
de1141491a Replaced help text
Signed-off-by: snipe <snipe@snipe.net>
2023-01-31 19:41:42 -08:00
snipe
2d45ebe103 Merge pull request #12433 from inietov/fixes/asset_declined_date_issues
Fixed Invalid date value on assets acceptance mail notification
2023-01-31 19:14:51 -08:00
snipe
656344b1c7 Merge pull request #12429 from svpernova09/benperiton/patch-1
Cherry-picked Feature: Add DB_PORT to pgsql connection
2023-01-31 19:10:17 -08:00
snipe
7a23398c0c Merge pull request #12439 from uberbrady/fix_bootstrap_username_doubling
Fixed: username doubles on 'checked-out-to' column if display is resized [sc-19869], [fd-33242]
2023-01-31 18:10:02 -08:00
Brady Wetherington
02ca5248b1 Don't append username to the user's name if it's already there 2023-01-31 17:44:09 -08:00
snipe
b1179c7b1e Merge pull request #12438 from inietov/fixes/replace_ios_homescreen_logo
Fixed #9694 Replace iOS "Add to homescreen icon"
2023-01-31 17:02:05 -08:00
Brady Wetherington
a4173e3881 Permit not-delegated+dont-expire-password+normal-accounts to login 2023-01-31 16:49:41 -08:00
snipe
a2a078015f Merge pull request #12435 from lukasfehling/bugfix/fixed-endpoint-for-user-notification
Fixed the endpoint for user notification with all their assigned assets
2023-01-31 12:41:47 -08:00
Godfrey M
1e0c58c3cf saves data correctly now 2023-01-31 11:32:05 -08:00
lukasfehling
cddae4869f fixed the endpoint for user notification with all their assigned assets 2023-01-31 18:27:25 +01:00
Ivan Nieto Vivanco
a7a578bf51 Added head only logo to be used as default in apple-touch-icon 2023-01-31 00:13:44 -06:00
Godfrey M
fc044528b8 validation is working, success message appears, database is not updating 2023-01-30 16:10:02 -08:00
akemidx
214a1af61a apostrophe updates 2023-01-30 16:54:23 -05:00
Ivan Nieto Vivanco
ccc7b78f62 Store the acceptance dates with format YYY-mm-dd 2023-01-30 15:11:41 -06:00
Ben Periton
c2854f1bcb Update database.php
Although Postgres is not officially supported, it does seem to work ok, but to help a little bit with the Docker image, this is non-breaking change but allows the env file to specify the pgsql connection port
2023-01-29 19:28:04 -06:00
snipe
22b0b9b090 Fixed gates on fieldsets
Signed-off-by: snipe <snipe@snipe.net>
2023-01-26 17:05:41 -08:00
snipe
583a0412fe Added edit fieldsets translations
Signed-off-by: snipe <snipe@snipe.net>
2023-01-26 17:03:23 -08:00
snipe
a16604285c Normalize the fieldset form
Signed-off-by: snipe <snipe@snipe.net>
2023-01-26 17:03:07 -08:00
snipe
37f5cfa8ce Added edit button for fieldsets
Signed-off-by: snipe <snipe@snipe.net>
2023-01-26 17:02:53 -08:00
Godfrey M
a63ea560ae adds submit button, getting setAttribute error 2023-01-26 15:17:08 -08:00
akemidx
79d9cff22a translations added for the hardware blades 2023-01-26 16:26:31 -05:00
Marcus Moore
39289dd18e Use user provided alert email for checkout acceptances 2023-01-26 13:18:18 -08:00
snipe
8b94b208e3 Merge remote-tracking branch 'origin/develop' 2023-01-26 13:17:28 -08:00
Marcus Moore
6fc8982478 Have acceptance result notifications adhere to alerts enabled setting 2023-01-26 12:59:33 -08:00
snipe
cc370084d1 Merge pull request #12341 from uberbrady/redo_scim_config
Redo SCIM config; use latest laravel-scim-server from our fork
2023-01-26 12:57:29 -08:00
Brady Wetherington
cd573c484d Change the SCIM_STANDARDS_COMPLIANCE config to default to 'true' 2023-01-26 12:48:41 -08:00
akemidx
df31a76906 fixed apostraphe 2023-01-26 15:02:39 -05:00
Brady Wetherington
4a54586690 Add to Accessories#index an additional gate-check against reports.view 2023-01-26 11:56:06 -08:00
Godfrey M
62b4c79150 adds a couple error messages 2023-01-25 16:38:08 -08:00
Godfrey M
a69cb6204a adds rest of inputs, and corrects Data binding 2023-01-25 16:22:34 -08:00
Brady Wetherington
c5d3b3ab81 Change out the SCIM config for a fixed one; update our fork of the SCIM-server 2023-01-25 15:59:46 -08:00
Brady Wetherington
cfe9c687f9 Mark a bunch of SCIM config as nullable 2023-01-25 15:54:57 -08:00
Brady Wetherington
91cf683f3d Re-do the entire SCIM config so it no longer inherits 2023-01-25 15:53:46 -08:00
Godfrey M
2e22eeade5 adds one input 2023-01-25 14:29:20 -08:00
akemidx
53d8008a5f Merge branch 'vip_tag' of github.com:akemidx/snipe-it into vip_tag 2023-01-25 17:14:29 -05:00
akemidx
b363524305 vipuser label updated to vip 2023-01-25 15:58:44 -05:00
snipe
4c3354b778 Merge branch 'develop' into vip_tag 2023-01-24 20:29:43 -08:00
snipe
e7917d1f93 Rebuild prod assets
Signed-off-by: snipe <snipe@snipe.net>
2023-01-24 19:16:03 -08:00
snipe
6b729502c6 Rebuilt dev assets
Signed-off-by: snipe <snipe@snipe.net>
2023-01-24 19:13:40 -08:00
snipe
be6f367565 Merge remote-tracking branch 'origin/develop' 2023-01-24 19:12:50 -08:00
snipe
f0b14513db Merge pull request #12411 from uberbrady/fix_rb_16746
Resolved Rollbar error 16746 - missing array key 'extension'
2023-01-24 18:24:18 -08:00
Brady Wetherington
ab12ad1140 Resolves Rollbar error 16746 - missing array key 'extension' 2023-01-24 18:19:26 -08:00
snipe
9c79fc19cb Tightened up and removed some validation that wasn’t needed
Signed-off-by: snipe <snipe@snipe.net>
2023-01-24 17:37:15 -08:00
snipe
fd2a057d38 Make audit dates fillable
Signed-off-by: snipe <snipe@snipe.net>
2023-01-24 17:36:58 -08:00
Brady Wetherington
b00333c9f5 Merge remote-tracking branch 'upstream/develop' into develop 2023-01-24 17:36:39 -08:00
Brady Wetherington
c9f0f5fe8b Change Accessories report to use server-side pagination from URL 2023-01-24 17:35:44 -08:00
snipe
a61ccbb965 Added very clunky but better error messages on that validation for date_format
Signed-off-by: snipe <snipe@snipe.net>
2023-01-24 17:33:49 -08:00
snipe
91394f7262 Removed duplicate comment section
Signed-off-by: snipe <snipe@snipe.net>
2023-01-24 17:23:06 -08:00
akemidx
3ba79600fb checkin limit for the components checkin 2023-01-24 18:17:49 -05:00
snipe
935f5018cc Merge pull request #12405 from Godmartinz/high_contrast_color_adjustments
Fixed buttons colors in high contrast theme
2023-01-24 15:17:03 -08:00
snipe
3c4f254583 Enforce Y-m-d as date format for date fields
Signed-off-by: snipe <snipe@snipe.net>
2023-01-24 13:38:53 -08:00
akemidx
cafe8f3074 notification for slack message 2023-01-24 16:20:20 -05:00
akemidx
19cf170dd9 Add VIP Checkbox 2023-01-24 15:30:21 -05:00
akemidx
596846a94a Add VIP Checkbox 2023-01-24 15:29:27 -05:00
Marcus Moore
b92d1d3ec7 Logically group query when searching users to scope to company 2023-01-24 11:54:56 -08:00
Godfrey M
4b51424723 fixes a couple buttons color choices in high contrast 2023-01-24 09:42:03 -08:00
Godfrey M
0f8ee22053 Creates Slack Setting Form 2023-01-24 09:25:05 -08:00
snipe
86812b024d Merge remote-tracking branch 'origin/develop' 2023-01-23 22:03:12 -08:00
snipe
dc155846ca Hoist the autorization higher in the stack so we’re not doing logic or math when the user isn’t authorized to touch this
Signed-off-by: snipe <snipe@snipe.net>
2023-01-23 21:49:17 -08:00
snipe
7a9ea91be0 Merge pull request #12387 from snipe/fixes/inconsistent_UI_for_image_delete
Updated - Refactored ImageHandler request to be more re-usable, and checkboxes with missing `minimal` class for iCheck
2023-01-23 21:39:55 -08:00
snipe
02dcb0fbd7 Shorten the additiona form request invocation to just ImageUploadRequest
We already have the `use App\Http\Requests\ImageUploadRequest` clause at the top of this file.

Signed-off-by: snipe <snipe@snipe.net>
2023-01-23 21:37:35 -08:00
snipe
690bfbe16a Merge pull request #12398 from akemidx/acceptance_translations
Fixed: translations for EULA Acceptance Summary
2023-01-23 21:28:59 -08:00
cram42
c2c009a018 Merge branch 'develop' into develop 2023-01-24 09:53:42 +08:00
Marcus Moore
cd582be851 Drop tables that may exist in down methods 2023-01-23 15:42:45 -08:00
Marcus Moore
760844de6f Add conditionals 2023-01-23 15:42:33 -08:00
Marcus Moore
e6dc61d2cf Revert column names to legacy versions in down method 2023-01-23 15:42:05 -08:00
snipe
4c7b731acc Merge remote-tracking branch 'origin/develop' 2023-01-23 15:36:05 -08:00
snipe
35dfaddd79 Merge pull request #12400 from snipe/jerm/fix-import-backup-checkbox
Fixed "Backup before importing?" checkbox on import page
2023-01-23 15:35:18 -08:00
Jeremy Price
d3bcc48ae5 [imports] fix "Backup before importing?" checkbox on import page
We were always taking backups before import, no matter the status of
this box.

Turns out we were testing for the presence of the property defined by
the checkbox, rather than the value of the property, and as such were
always doing a backup.

We're now checking the status, and it behaves as expected
2023-01-23 15:08:59 -08:00
akemidx
25996cbe03 translating the quick info printed out on accept x eula blades 2023-01-23 16:18:21 -05:00
snipe
4b01909806 Merge pull request #12389 from snipe/fixes/livewire_ui
Fixed #12388 - Add CSS to the div to correct the weird indenting
2023-01-23 11:42:26 -08:00
snipe
41537a2449 Added field to the API controller endpoints
Signed-off-by: snipe <snipe@snipe.net>
2023-01-22 00:56:44 -08:00
snipe
5f9af7d509 Updated API response
Signed-off-by: snipe <snipe@snipe.net>
2023-01-22 00:56:28 -08:00
snipe
febfcd4803 Updated model with new field
Signed-off-by: snipe <snipe@snipe.net>
2023-01-22 00:56:19 -08:00
snipe
cad76f671a Added asset_eol_date to blade
Signed-off-by: snipe <snipe@snipe.net>
2023-01-22 00:55:42 -08:00
snipe
4104d7260f Include new eol date picker blade
Signed-off-by: snipe <snipe@snipe.net>
2023-01-22 00:55:31 -08:00
snipe
3587017591 Updated EOL date in view blade
Signed-off-by: snipe <snipe@snipe.net>
2023-01-22 00:55:19 -08:00
snipe
8040d08e8c Removed formatter from EOL date
Signed-off-by: snipe <snipe@snipe.net>
2023-01-22 00:54:37 -08:00
snipe
2f7ca37666 Migration to normalize eol date for assets
Signed-off-by: snipe <snipe@snipe.net>
2023-01-22 00:54:24 -08:00
snipe
abad579306 Added eol date picker
Signed-off-by: snipe <snipe@snipe.net>
2023-01-22 00:45:33 -08:00
snipe
72295c093a Add CSS to the div to correct the weird indenting - fixes #12388
Signed-off-by: snipe <snipe@snipe.net>
2023-01-21 18:24:23 -08:00
snipe
cd8cb445ba Corrected fieldname for user fieldname for avatar in Controller
Signed-off-by: snipe <snipe@snipe.net>
2023-01-21 18:20:53 -08:00
snipe
2dc1182582 Don’t offer the delete option if there is no avatar currently
Signed-off-by: snipe <snipe@snipe.net>
2023-01-21 18:20:26 -08:00
snipe
93ad0d02b9 Use fieldname for aria labels too
Signed-off-by: snipe <snipe@snipe.net>
2023-01-21 18:20:02 -08:00
snipe
48c85966d7 Added gravatar and avatar as fillable
Signed-off-by: snipe <snipe@snipe.net>
2023-01-21 18:07:17 -08:00
snipe
a0aed19f95 Refactor image handler
Signed-off-by: snipe <snipe@snipe.net>
2023-01-21 18:05:55 -08:00
snipe
f77d871dff Use the imageHandler for profile avatar changes
Signed-off-by: snipe <snipe@snipe.net>
2023-01-21 18:05:20 -08:00
snipe
3674f46ce0 Added arial labels
Signed-off-by: snipe <snipe@snipe.net>
2023-01-21 16:42:44 -08:00
snipe
cfa342c81a Updated HTML for “standard” image edit/delete
Signed-off-by: snipe <snipe@snipe.net>
2023-01-21 16:23:04 -08:00
snipe
563a252d18 Updated checkboxed with missing minimal class for iCheck
Signed-off-by: snipe <snipe@snipe.net>
2023-01-21 14:57:52 -08:00
snipe
2bdf3d3f44 Missed a few strong HTML tags
Signed-off-by: snipe <snipe@snipe.net>
2023-01-21 14:44:10 -08:00
snipe
60eab08735 Added ->with(‘users as users_count’) in Accessory query
Signed-off-by: snipe <snipe@snipe.net>
2023-01-21 14:41:07 -08:00
snipe
90c1631820 Added users_count to transformer for API
Signed-off-by: snipe <snipe@snipe.net>
2023-01-21 14:40:35 -08:00
snipe
dceb77d4d4 Refactored numRemaining, removed unnecessary numCheckout
Signed-off-by: snipe <snipe@snipe.net>
2023-01-21 14:40:20 -08:00
snipe
46e3e8a3dd Added new users_count field to API
Signed-off-by: snipe <snipe@snipe.net>
2023-01-21 14:39:53 -08:00
snipe
56090bc645 Re-ordered notes to be more consistent, fixed missing iCheck class
Signed-off-by: snipe <snipe@snipe.net>
2023-01-21 14:38:35 -08:00
snipe
fd73bee850 Fixed hardcoded string and added new checkout count to accessory view
Signed-off-by: snipe <snipe@snipe.net>
2023-01-21 14:38:05 -08:00
snipe
2564da648b Merge remote-tracking branch 'origin/develop' 2023-01-19 16:22:09 -08:00
snipe
b59dcc7b30 Merge pull request #12379 from marcusmoore/fix/row-divider-overflow
Fix minor visual bug on asset show page
2023-01-19 16:21:31 -08:00
snipe
d020ab455d Bumped hash
Signed-off-by: snipe <snipe@snipe.net>
2023-01-19 15:56:53 -08:00
snipe
05a3f20d51 Updated production assets
Signed-off-by: snipe <snipe@snipe.net>
2023-01-19 15:55:59 -08:00
snipe
69ab42b3f9 Merge pull request #12380 from snipe/maintenance/asset_updates
Updated dev assets
2023-01-19 15:53:55 -08:00
snipe
0080ac92e7 Updated dev assets
Signed-off-by: snipe <snipe@snipe.net>
2023-01-19 15:52:06 -08:00
snipe
9508a97852 Merge pull request #12378 from marcusmoore/fix/allow-removing-asset-name-during-checkout
Allow users to set a blank asset name during checkout
2023-01-19 14:50:58 -08:00
Marcus Moore
0fa956403c Fix row divider overflow 2023-01-19 14:16:28 -08:00
Marcus Moore
181f96ad33 Allow users to set a blank asset name during checkout 2023-01-19 12:35:44 -08:00
snipe
04e28c2d34 Merge pull request #12377 from inietov/fixes/visual_glitch_deleting_importing_files
Fixed #12340  Deleting imported files visually drops first element in table.
2023-01-19 11:59:40 -08:00
Ivan Nieto Vivanco
f045008237 Add index to deleteFile() call, so it knows what element delete 2023-01-19 13:04:49 -06:00
snipe
fa9116b184 Merge pull request #12369 from snipe/features/add_byod_to_assets
Added BYOD to assets
2023-01-18 16:09:45 -08:00
snipe
155977de2d Merge pull request #12370 from marcusmoore/fix/file-upload-tab-permissions
Fixed file uploads for accessories, components, and consumables
2023-01-18 16:08:53 -08:00
snipe
378dc968b7 Derp. Copypasta
Signed-off-by: snipe <snipe@snipe.net>
2023-01-18 15:44:28 -08:00
Marcus Moore
c089f6eff2 Reference the accessory instance instead of the model 2023-01-18 13:48:01 -08:00
Marcus Moore
e506ed7950 Remove extra quote 2023-01-18 13:42:09 -08:00
Marcus Moore
07744ca7bd Reference the consumable instance instead of the model 2023-01-18 13:41:58 -08:00
snipe
0c39c7a53d Updated blades to add byod as a “status”
Signed-off-by: snipe <snipe@snipe.net>
2023-01-18 13:25:46 -08:00
snipe
fce620b54f Added byod to blades
Signed-off-by: snipe <snipe@snipe.net>
2023-01-18 13:11:02 -08:00
snipe
33fe2b57f7 Added new byod strings
Signed-off-by: snipe <snipe@snipe.net>
2023-01-18 13:10:48 -08:00
snipe
45019c65f1 BYOD migration
Signed-off-by: snipe <snipe@snipe.net>
2023-01-18 13:10:39 -08:00
snipe
acd182e3d2 Added byod to presenter with boolean formatter
Signed-off-by: snipe <snipe@snipe.net>
2023-01-18 13:10:30 -08:00
snipe
48b8cfcef9 Added byod to model, removed duplicate validation rule
Signed-off-by: snipe <snipe@snipe.net>
2023-01-18 13:04:36 -08:00
snipe
f626413502 Added byod to API transformer
Signed-off-by: snipe <snipe@snipe.net>
2023-01-18 13:04:02 -08:00
snipe
b80d52a9c3 Added byod to asset controller for create and update methods
Signed-off-by: snipe <snipe@snipe.net>
2023-01-18 13:03:51 -08:00
snipe
ee4b8f4694 Added byod to API controller
Signed-off-by: snipe <snipe@snipe.net>
2023-01-18 13:03:31 -08:00
Marcus Moore
ca1198ceb2 Constrain the bottom bar to the content window 2023-01-18 12:55:20 -08:00
Marcus Moore
b31e000165 Have Info and History tables in accessory show page span entire width of row 2023-01-18 12:54:52 -08:00
Godfrey M
7ce230fadc missed a few renames 2023-01-18 08:57:59 -08:00
Godfrey M
6fbb484dfd renames db column for auto_assign boolean, rewords trans string, default value of 1 now 2023-01-18 08:43:03 -08:00
snipe
956bd384b0 Merge pull request #12364 from snipe/features/make_2fa_sortable
BREAKING: Partial fix for #12356: Make 2FA sortable in user list
2023-01-17 20:24:05 -08:00
snipe
7e22663326 Merge pull request #12363 from corydlamb/Ampersand-Patch
Fixed #12362: Bug With Passwords Including Ampersands?
2023-01-17 19:17:50 -08:00
snipe
c3e4d9d773 Make column name consistent with field name (BREAKING)
Signed-off-by: snipe <snipe@snipe.net>
2023-01-17 18:27:47 -08:00
snipe
f08babfa8a Just moved some stuff around - no actual meaningful code changes
Signed-off-by: snipe <snipe@snipe.net>
2023-01-17 17:22:03 -08:00
snipe
4ef0005e7c BREAKING: changed API fieldname result for 2FA
Signed-off-by: snipe <snipe@snipe.net>
2023-01-17 17:21:40 -08:00
snipe
dbda288a44 Formatting changes only for readability
Signed-off-by: snipe <snipe@snipe.net>
2023-01-17 17:21:20 -08:00
snipe
eaf9332096 Added filterability to 2FA fields
Signed-off-by: snipe <snipe@snipe.net>
2023-01-17 17:21:03 -08:00
Marcus Moore
5282ca47b3 Allow users with consumables.files ability to upload files for consumables 2023-01-17 17:16:50 -08:00
Marcus Moore
23a1b2d60a Register the consumables.files ability 2023-01-17 17:15:23 -08:00
Marcus Moore
1f12137245 Close divs in correct location 2023-01-17 17:09:55 -08:00
Marcus Moore
6c89f08193 Register the accessories.files ability and allow users with the ability to upload files for accessories 2023-01-17 16:59:50 -08:00
corydlamb
295f0dd1f5 Update WelcomeNotification.php
Used htmlspecialchars_decode to fix the issue I had involving Ampersands in the password field (and I'm assuming the other fields) of the welcome notification email. Changes are all in lines 22-26. Sorry if I'm not doing this very well as this is my first pull request.
2023-01-17 19:33:25 -05:00
Marcus Moore
1fef992fa8 Allow users with components.files ability to upload files for components 2023-01-17 15:58:11 -08:00
Marcus Moore
e23ee7540d Register the components.files ability 2023-01-17 15:45:40 -08:00
snipe
dd8c6e92db Merge pull request #12355 from snipe/features/make_category_visable_on_models_page_by_default
Added catergories to default visiable set on asset models
2023-01-15 17:09:00 -08:00
snipe
f4630d67be Added catergories to default visiable set
Signed-off-by: snipe <snipe@snipe.net>
2023-01-15 17:07:50 -08:00
snipe
6f6f99f64e Merge pull request #12354 from uberbrady/fix_npm_dependencies
Backed out less-loader version requirement so that builds still work
2023-01-14 10:57:35 -08:00
Brady Wetherington
6f89e8b0d8 Backed out less-loader version requirement so that builds still work 2023-01-14 10:53:36 -08:00
snipe
6815a16a5f Merge pull request #12353 from snipe/fixes/rollbar_logging
Only add rollbar to the logging array if the app is in production
2023-01-13 13:53:30 -08:00
snipe
0c3d03a4ce Only add rollbar to the logging array if the app is in production
Signed-off-by: snipe <snipe@snipe.net>
2023-01-13 13:50:16 -08:00
snipe
8048d06853 Merge pull request #12352 from snipe/fixes/added_south_sudan_to_country_list
Added South Sudan to country list
2023-01-13 13:24:54 -08:00
snipe
50cc69c427 Added South Sudan to country list
Signed-off-by: snipe <snipe@snipe.net>
2023-01-13 13:23:57 -08:00
snipe
021e54adaa Merge pull request #12351 from snipe/fixes/check_filename_has_value_before_delete
Check that the `$use_db_field` has a value before attempting a delete
2023-01-13 11:29:31 -08:00
snipe
9d0a15990e Check that the $use_db_field has a value before attempting a delete
Signed-off-by: snipe <snipe@snipe.net>
2023-01-13 11:26:11 -08:00
Marcus Moore
51da747809 Add note about database requirements when running Dusk tests 2023-01-11 18:05:07 -08:00
Marcus Moore
0dd7cc9967 Add note about installing ChromeDriver to testing readme 2023-01-11 13:54:28 -08:00
Marcus Moore
49f2573f36 Update testing readme 2023-01-11 13:51:01 -08:00
Marcus Moore
bc80f672ee Keep the example dusk environment file 2023-01-11 13:00:34 -08:00
Marcus Moore
49383ddbe0 Delete old dusk local configuration 2023-01-11 12:58:57 -08:00
Marcus Moore
9a3a796e17 Add dusk environment files to gitignore 2023-01-11 12:57:05 -08:00
Marcus Moore
e8c2b84d24 Add example dusk environment file 2023-01-11 12:51:15 -08:00
snipe
4f8951f6f1 Merge pull request #12335 from uberbrady/windows_snipeit_restore
Fixed #12004: Snipe-IT restore didn't work on Windows
2023-01-11 11:03:44 -08:00
snipe
85b712e915 Merge pull request #12337 from snipe/docs/added_jamf_rename
Added jamf-snipe-rename script to third party list
2023-01-10 18:10:47 -08:00
snipe
ca244911ed Added jamf-snipe-rename script to third party list
Signed-off-by: snipe <snipe@snipe.net>
2023-01-10 18:10:13 -08:00
snipe
942681bee5 Merge pull request #12336 from snipe/features/category_query_optimization
Refactor category API for fewer queries
2023-01-10 17:54:45 -08:00
snipe
459c95064e Fixed default
Signed-off-by: snipe <snipe@snipe.net>
2023-01-10 17:54:04 -08:00
Marcus Moore
b5ea8b8a4f Conditionally drop table 2023-01-10 17:29:38 -08:00
Marcus Moore
aec64fa64a Comment out migration's down method to match its up method 2023-01-10 17:25:25 -08:00
Marcus Moore
03938d0f32 Conditionally drop table 2023-01-10 17:24:38 -08:00
Marcus Moore
296c9a723d Reverse column rename in migration's down method 2023-01-10 17:22:29 -08:00
snipe
2eac03db4a Merge pull request #12329 from snipe/fixes/rollbar_integration
Fixed rollbar integration if ROLLBAR_TOKEN is provided
2023-01-10 17:21:52 -08:00
Marcus Moore
c5b09ed955 Fix column name typo 2023-01-10 17:21:46 -08:00
Marcus Moore
4ee3cbf60e Comment out migration's down method to match its up method 2023-01-10 17:20:20 -08:00
Marcus Moore
39ab545cf5 Update alter statement to use correct suffix for column
This is brittle...
2023-01-10 17:08:28 -08:00
Marcus Moore
e5cb68cc5e Move drop column command to correct migration 2023-01-10 17:06:16 -08:00
Marcus Moore
b8b2543b0d Reference the correct table in migration down method 2023-01-10 17:04:21 -08:00
Marcus Moore
bc0f666906 Create Setting in test to avoid being redirected to the setup screen 2023-01-10 17:03:09 -08:00
Marcus Moore
581655f756 Run database migrations for all Dusk tests 2023-01-10 17:02:11 -08:00
Marcus Moore
2aa50859b3 Bump Dusk version to fix broken macOS chrome driver link 2023-01-10 17:01:03 -08:00
snipe
0b0fdd8aa5 Small formatting fixes, fixed typo in comment
Signed-off-by: snipe <snipe@snipe.net>
2023-01-10 16:32:18 -08:00
snipe
8f3a237ea0 More comments
Signed-off-by: snipe <snipe@snipe.net>
2023-01-10 16:29:51 -08:00
snipe
151719a91c Added comments
Signed-off-by: snipe <snipe@snipe.net>
2023-01-10 16:24:46 -08:00
snipe
825df2cf75 Load up the item counts with the individual API methods for accurate numbers without n+1
Signed-off-by: snipe <snipe@snipe.net>
2023-01-10 16:17:03 -08:00
snipe
b66cd313b9 Refactored itemCount() to use existing blah_count fields if they exist
Signed-off-by: snipe <snipe@snipe.net>
2023-01-10 16:16:25 -08:00
snipe
d508374c57 Disallowed category type change string
Signed-off-by: snipe <snipe@snipe.net>
2023-01-10 16:15:51 -08:00
snipe
f50b622eb8 Disallow editing of category type once created, added help text
Signed-off-by: snipe <snipe@snipe.net>
2023-01-10 16:15:40 -08:00
snipe
bef4224e14 Added notes to itemCount()
Signed-off-by: snipe <snipe@snipe.net>
2023-01-10 13:50:24 -08:00
snipe
249b188654 Refactor category API and transformer for query optimization
Signed-off-by: snipe <snipe@snipe.net>
2023-01-10 13:30:01 -08:00
Brady Wetherington
2170343958 Fixed #12004: Snipe-IT restore didn't work on Windows 2023-01-10 13:06:47 -08:00
snipe
17c308f3ca Merge remote-tracking branch 'origin/master' into develop 2023-01-10 02:08:23 -08:00
snipe
35136cea07 Add @subdriven as a contributor 2023-01-10 02:07:48 -08:00
snipe
0db83ad8cb Merge pull request #12158 from subdriven/master
Updated installer script for multiple fixes and features
2023-01-10 02:04:29 -08:00
snipe
62bf7b1bce Merge remote-tracking branch 'origin/develop' 2023-01-10 01:56:27 -08:00
snipe
50fdf9c33b Merge pull request #12330 from snipe/fixes/custom_status_label_sidenav
Fixed UX issue where assets sidenav would collapse if custom status label is selected
2023-01-10 01:55:52 -08:00
snipe
c5c37fa95f Fixed copypasta
Signed-off-by: snipe <snipe@snipe.net>
2023-01-10 01:54:26 -08:00
snipe
9dc016aecc Fixed issue where assets sidenav would collapse if custom status label is selected
Signed-off-by: snipe <snipe@snipe.net>
2023-01-10 01:31:00 -08:00
snipe
1cf7784bb8 Logging override if ROLLBAR_TOKEN is provided
Signed-off-by: snipe <snipe@snipe.net>
2023-01-10 00:20:56 -08:00
snipe
60dcaa9e94 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	config/version.php
2023-01-09 21:11:29 -08:00
snipe
2e75bd6960 Bumped hash
Signed-off-by: snipe <snipe@snipe.net>
2023-01-09 21:11:00 -08:00
snipe
799c9c910e Merge remote-tracking branch 'origin/develop' 2023-01-09 21:09:46 -08:00
snipe
005d6d3b62 Merge pull request #12328 from snipe/fixes/revert_to_old_behavior_on_byserial
Fixed bySerial endpoint to always return a list
2023-01-09 21:09:25 -08:00
snipe
529b005d1e We were previously returning a collection - this reverts the change in the last PR to keep that behavior consistent
Signed-off-by: snipe <snipe@snipe.net>
2023-01-09 21:05:51 -08:00
snipe
dd55aedb87 Merge remote-tracking branch 'origin/develop' 2023-01-09 20:47:46 -08:00
snipe
be16fe948a Merge pull request #12327 from snipe/fixes/formatting_regression_with_bytag_api_response
Determine which transformer to use based on number of assets
2023-01-09 20:46:49 -08:00
snipe
7846251d25 Re-added return for no results (derp)
Signed-off-by: snipe <snipe@snipe.net>
2023-01-09 20:43:57 -08:00
snipe
cc665d50ed One more refactor, hopefully simplifying
Signed-off-by: snipe <snipe@snipe.net>
2023-01-09 20:40:12 -08:00
snipe
ae76d46f87 Small refactor to ALWAYS return deleted assets in a collection transformer
Signed-off-by: snipe <snipe@snipe.net>
2023-01-09 20:23:05 -08:00
snipe
bf849128fc Replicate the response behavior in the bySerial endpoint
Signed-off-by: snipe <snipe@snipe.net>
2023-01-09 19:57:47 -08:00
snipe
44be8c8f60 Determine which transformer to use based on number of assets
Signed-off-by: snipe <snipe@snipe.net>
2023-01-09 19:54:21 -08:00
snipe
bad1253682 Merge remote-tracking branch 'origin/develop' 2023-01-09 17:15:44 -08:00
snipe
20a9be2f6c Merge pull request #12326 from uberbrady/uncache_settings
The cache system in getSettings() cached values "forever." That's bad.
2023-01-09 17:14:22 -08:00
Brady Wetherington
39b1a5a8a0 Remove old cache key for settings 2023-01-09 16:19:25 -08:00
Brady Wetherington
2d0ac5b48b The cache system in getSettings() cached values "forever." That's bad. 2023-01-09 16:16:09 -08:00
snipe
e67bd5a275 Merge remote-tracking branch 'origin/develop' 2023-01-09 16:00:33 -08:00
snipe
8d35583634 Merge pull request #12324 from snipe/features/add_username_to_asset_list
Added username to display in asset listings
2023-01-09 16:00:01 -08:00
snipe
b39a9e0fe1 Merge remote-tracking branch 'origin/develop' 2023-01-09 15:54:04 -08:00
snipe
ae04a8c872 Merge pull request #12325 from uberbrady/ldap_permissions_fix
Fixed #12288 - LDAP default group feature refactor
2023-01-09 15:52:02 -08:00
Brady Wetherington
cbffd105a2 Fix LDAP default group feature 2023-01-09 15:23:19 -08:00
snipe
a57315aed5 Added username to display in asset listings
Signed-off-by: snipe <snipe@snipe.net>
2023-01-09 12:58:58 -08:00
snipe
e1263155b1 Merge pull request #12323 from snipe/translations/updated_strings
Updated language strings
2023-01-09 11:10:19 -08:00
snipe
014eab3abc Updated language strings
Signed-off-by: snipe <snipe@snipe.net>
2023-01-09 11:09:26 -08:00
snipe
f1bc183043 Merge pull request #12320 from snipe/dependabot/github_actions/actions/checkout-3.3.0
Bump actions/checkout from 3.2.0 to 3.3.0
2023-01-09 10:17:06 -08:00
dependabot[bot]
2f20945516 Bump actions/checkout from 3.2.0 to 3.3.0
Bumps [actions/checkout](https://github.com/actions/checkout) from 3.2.0 to 3.3.0.
- [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/v3.2.0...v3.3.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-09 08:06:28 +00:00
snipe
91d0c383df Production assets
Signed-off-by: snipe <snipe@snipe.net>
2023-01-05 18:47:55 -08:00
snipe
886f2a0dec Merge pull request #12317 from snipe/fixes/shorten_url_display_on_view
Truncate URL with ellipsis if too long
2023-01-05 18:44:44 -08:00
snipe
e05764ac34 Truncate URL with ellipsis if too long
Signed-off-by: snipe <snipe@snipe.net>
2023-01-05 18:42:26 -08:00
snipe
a916c68f95 Merge remote-tracking branch 'origin/develop' 2023-01-05 18:07:59 -08:00
snipe
19e703980d Merge pull request #12316 from snipe/features/chunk_data_in_sync_script
Chunk sync script
2023-01-05 18:07:30 -08:00
snipe
6e42bce409 Removed $start variable from calback
Signed-off-by: snipe <snipe@snipe.net>
2023-01-05 18:04:06 -08:00
snipe
1a3c947b14 Chunk sync script
Signed-off-by: snipe <snipe@snipe.net>
2023-01-05 17:57:52 -08:00
snipe
4d0fc99773 Merge remote-tracking branch 'origin/develop' 2023-01-05 14:19:51 -08:00
snipe
bd3f730cb2 Merge pull request #12315 from snipe/features/added_default_values_to_model_api
Features/added default values to model api
2023-01-05 14:11:24 -08:00
snipe
381f89c5a8 Added format to array
Signed-off-by: snipe <snipe@snipe.net>
2023-01-05 13:15:30 -08:00
snipe
db43628bdc Added default field info to models API response
Signed-off-by: snipe <snipe@snipe.net>
2023-01-05 13:12:54 -08:00
snipe
ace73acba1 Merge pull request #12263 from Godmartinz/gh12211_label_padding_adjustment
Fixed: page-break and padding at the end of document for labels
2023-01-05 09:59:35 -08:00
Godfrey M
301c4fda6e fixes conflicts 2023-01-05 09:55:25 -08:00
snipe
5898e384f8 Merge pull request #12308 from snipe/fixes/missing_translation_string
Fixed missing translation string
2023-01-04 15:13:36 -08:00
snipe
9c63f426d9 Added missing translation string
Signed-off-by: snipe <snipe@snipe.net>
2023-01-04 14:09:14 -08:00
snipe
c575798b56 Merge pull request #12307 from snipe/fixes/update_less_and_css_loader
Updated less-loader and css-loader libraries
2023-01-04 14:01:03 -08:00
snipe
7123e7327f Updated less-loader and css-loader libraries
Signed-off-by: snipe <snipe@snipe.net>
2023-01-04 14:00:04 -08:00
snipe
b36e81836f Merge pull request #12306 from snipe/fixes/weird_sentence_in_translations
Fixed incomplete sentence in translation file for audit interval
2023-01-04 13:57:14 -08:00
snipe
b77d5801fa English is hard, apparently
Signed-off-by: snipe <snipe@snipe.net>
2023-01-04 13:56:16 -08:00
snipe
818db58a7b Merge pull request #12305 from uberbrady/fix_license_seat_reporting
Fixed: Change license_seat changing method to properly 'true up' license seats
2023-01-04 13:22:03 -08:00
Brady Wetherington
c4f900e9af Change license_seat changing method to properly 'true up' license seats 2023-01-04 13:02:53 -08:00
snipe
baf14c43ee Merge pull request #12298 from snipe/fixes/db_seeder_company_id
Fixed db seeder when company id is not present
2023-01-03 14:50:25 -08:00
snipe
fa439a1928 Check that the array key exists before trying to seed it
Signed-off-by: snipe <snipe@snipe.net>
2023-01-03 14:45:23 -08:00
snipe
d187174f00 Merge pull request #12090 from Godmartinz/deparmtnet_name_validator
Added: validation for department names at Company locations
2022-12-22 11:29:12 -08:00
snipe
6d3c5e0659 Merge pull request #12264 from Godmartinz/gh12253_display_notes_accessories
Added: notes to the accessories tab for user detail view
2022-12-21 19:04:11 -08:00
snipe
c49d69c911 Merge branch 'develop' 2022-12-20 17:27:17 -08:00
snipe
685cc86d71 Sets the ldap_default_group field to nullable and default null
Signed-off-by: snipe <snipe@snipe.net>
2022-12-20 17:24:01 -08:00
snipe
fb10a6f218 Merge pull request #12268 from inietov/fixes/people_count
Fixed: Dashboard user count scoping when full company support is enabled
2022-12-20 17:05:18 -08:00
Ivan Nieto Vivanco
3a9b8a4993 Calculate the proper amount of people in the dashboard if Full Company Support is enabled 2022-12-20 18:39:17 -06:00
snipe
a6c7471bf5 Merge remote-tracking branch 'origin/develop' 2022-12-20 15:11:36 -08:00
snipe
128c21a905 Merge pull request #12266 from uberbrady/fix-select-all-bug
Fixed: There was a bug with BS tables' select-all which showed an incorrect list of elements
2022-12-20 15:09:30 -08:00
Brady Wetherington
75a757d6f5 There was a bug with select-all where some bits didn't quite work 2022-12-20 14:57:58 -08:00
Godfrey M
e791e6592a adds notes to the accessories tab under users 2022-12-20 10:37:19 -08:00
Godfrey M
38575e93e8 fixes the rules for adding page-break and padding at the end of document 2022-12-20 09:45:41 -08:00
snipe
88291cadc1 Merge pull request #12254 from akemidx/documentating_something
Commenting on a scope in Models/Company.php
2022-12-19 12:41:32 -08:00
snipe
cc40ecaa44 Merge pull request #12260 from snipe/dependabot/github_actions/actions/checkout-3.2.0
Bump actions/checkout from 3.1.0 to 3.2.0
2022-12-19 12:41:17 -08:00
akemidx
94afe2bc6a edits & typo fixes 2022-12-19 14:48:43 -05:00
dependabot[bot]
25b33d657e Bump actions/checkout from 3.1.0 to 3.2.0
Bumps [actions/checkout](https://github.com/actions/checkout) from 3.1.0 to 3.2.0.
- [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/v3.1.0...v3.2.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-19 08:07:03 +00:00
snipe
399c7590cd Merge pull request #12209 from snipe/fixes/error_downloading_unaccepted_assets
Fixed 500 when downloading the Unaccepted Assets report  [sc-19555]
2022-12-15 14:19:41 -08:00
snipe
d0c5ba70f6 Merge pull request #12242 from inietov/features/add_purchase_cost_column
Added `purchase_cost` to user's default view [sc-19680]
2022-12-15 12:42:29 -08:00
akemidx
133d6ffa50 Commenting on a scope in Models/Company.php 2022-12-15 15:18:24 -05:00
Ivan Nieto Vivanco
d9a21cce00 Add other items' purchase_cost columns to the same permission 2022-12-15 14:12:05 -06:00
snipe
29c2ff56ec Merge pull request #12188 from snipe/fixes/decrease_logging_for_saml_when_not_enabled
Removed extra logging case that was very noisy
2022-12-15 11:26:49 -08:00
snipe
3e7975b2c3 Merge pull request #12250 from akemidx/grey_out_pw_reset_button
Fixed: Grey out pw reset button for consistency
2022-12-15 11:25:53 -08:00
akemidx
d870bc3b02 nested if loop 2022-12-15 14:19:51 -05:00
snipe
227fef76ee Merge pull request #11736 from Godmartinz/gh6508_ldap_default_group
Adds a permission group selection for directory sync
2022-12-15 11:06:53 -08:00
Godfrey M
9d44720ffd reverted changes to composer.lock 2022-12-15 11:02:34 -08:00
Godfrey M
9f3f0a25ed reverted changes to composer.lock 2022-12-15 10:53:45 -08:00
Godfrey M
2e228ccb0b redid a few things. should be good now :) 2022-12-15 10:45:42 -08:00
Godfrey M
3ee413f379 removes livewire stuff 2022-12-15 09:20:30 -08:00
Ivan Nieto Vivanco
b142f8e012 Add the permission to show purchase cost column to non-admin sessions 2022-12-14 23:00:35 -06:00
snipe
418ddcfac3 Merge pull request #9876 from Toreg87/fixes/locations-deletable
Fixed #9875: Make locations deletable for non Superuser-Accounts with FullMultipleCompanySupport
2022-12-14 17:46:53 -08:00
snipe
c342668f0f Update @scoo73r as a contributor 2022-12-14 17:25:39 -08:00
snipe
2f6a26ec7d Add @scoo73r as a contributor 2022-12-14 17:25:25 -08:00
snipe
b89979fbec 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
2022-12-14 17:06:26 -08:00
snipe
f635278010 Merge pull request #12251 from snipe/security/upgrade_font_awesome
Upgraded font awesome to 6.2.1
2022-12-14 16:42:41 -08:00
snipe
8043b86786 Upgraded font awesome to 6.2.1
Signed-off-by: snipe <snipe@snipe.net>
2022-12-14 16:41:56 -08:00
snipe
d13a237000 Merge pull request #12205 from Godmartinz/sc19675_add_remote_to_importer
Adds remote field to the user importer
2022-12-14 12:13:18 -08:00
akemidx
b114ffd2c3 Grey out button pw reset button for consistency
When user has no email in their profile, the box is greyed out for
consistency accross all buttons on the user profile
2022-12-14 14:48:59 -05:00
snipe
fabefa61b0 Merge pull request #12243 from akemidx/new_grey_out_when_no_assets
Created method in users.php for adding up all assigned to user and pr…
2022-12-13 14:00:48 -08:00
akemidx
f3e57d7dc0 fixing PR 2022-12-13 16:00:59 -05:00
snipe
389ec3a3cb Merge pull request #12247 from Godmartinz/gh12225_serial_added_to_components
adds serial to components tab of assets
2022-12-13 12:57:50 -08:00
Godfrey M
6a72c344b7 removed the cuddlers 2022-12-13 12:32:30 -08:00
Godfrey M
4442b446b9 adds serial to components tab of assets 2022-12-13 10:30:37 -08:00
snipe
c432fb9d70 Merge pull request #12181 from Godmartinz/gh12163_asset_age
Adds asset age to asset index and asset view pages
2022-12-13 10:28:17 -08:00
akemi
07ae91b00f Created method in users.php for adding up all assigned to user and providing an integer value. this then used to grey out buttons on user view if user has nothing assigned. 2022-12-12 15:47:53 -05:00
Ivan Nieto Vivanco
450ad3dcec Added the column purchase_cost to user's default view 2022-12-12 14:17:08 -06:00
Godfrey M
fa872b09a9 fixes a typo, the world is great again 2022-12-12 10:38:31 -08:00
snipe
9833ba4ab6 Merge remote-tracking branch 'origin/develop' 2022-12-09 16:08:56 -08:00
snipe
9e8fff6e5b Merge pull request #12238 from snipe/features/add_email_to_endpoint
Add email in assigned_to on asset transformer
2022-12-09 16:08:35 -08:00
snipe
4ac09ff4e4 Add email in assigned_to on asset transformer
Signed-off-by: snipe <snipe@snipe.net>
2022-12-09 16:07:17 -08:00
snipe
e26036e998 Merge remote-tracking branch 'origin/develop' 2022-12-08 17:36:01 -08:00
snipe
1017148bad Merge pull request #12233 from snipe/fixes/translation_placeholder_for_ola_pt-BR
Fixed #12215 - string for “Hello, :name” in pt-BR was using `%`
2022-12-08 17:25:19 -08:00
snipe
00ed197651 Fixed #12215 - string for “Hello, :name” in pt-BR was using %
Signed-off-by: snipe <snipe@snipe.net>
2022-12-08 17:21:55 -08:00
snipe
66f8ac1cd1 Merge remote-tracking branch 'origin/develop' 2022-12-08 14:52:13 -08:00
snipe
775df0ab60 Merge pull request #12221 from snipe/fixes/throttles_reset_password_form
Add throttle for password reset form
2022-12-08 14:51:22 -08:00
snipe
687f8971b1 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	config/version.php
2022-12-08 14:49:31 -08:00
snipe
bc2a455a89 Bumped version
Signed-off-by: snipe <snipe@snipe.net>
2022-12-08 14:48:55 -08:00
snipe
97c28d9adc Add @oguzbilgic as a contributor 2022-12-08 14:44:28 -08:00
snipe
163b3f6c0b Merge remote-tracking branch 'origin/develop' 2022-12-08 14:37:35 -08:00
snipe
9b3df40ed6 Merge pull request #12231 from oguzbilgic/patch-2
Use `heroku-redis:mini` instead of `hobby` as It is deprecated
2022-12-08 11:22:14 -08:00
Oguz Bilgic
1c8ee0f706 Use heroku-redis:mini instead of hobby as It is deprecated
Heroku has renamed it's plan to `mini`.
2022-12-08 11:20:33 -08:00
snipe
d7c5a6af71 Merge pull request #12224 from Godmartinz/gh12211_img_barcode_adjustment
Fixes the margin and padding for img barcode in labels
2022-12-07 16:35:04 -08:00
snipe
743264fd0e Merge remote-tracking branch 'origin/develop' 2022-12-07 16:23:50 -08:00
snipe
f7da87520c Merge pull request #12134 from Godmartinz/custom_report_user_fields_missing
fixes a regression with the csv assigned to fields
2022-12-07 16:18:32 -08:00
Godfrey M
ec854ddc1d adjusts the margin and padding for img barcode in labels 2022-12-07 14:52:23 -08:00
snipe
1a8b2a169b Merge pull request #12219 from snipe/fixes/typo_in_sr_text_for_apple
Fixed typo in screen reader text
2022-12-07 13:12:07 -08:00
snipe
43acd3b488 Fixed typo
Signed-off-by: snipe <snipe@snipe.net>
2022-12-07 13:11:17 -08:00
snipe
c3a6874b16 Add throttle for password reset form
Signed-off-by: snipe <snipe@snipe.net>
2022-12-06 20:42:40 -08:00
Ivan Nieto Vivanco
eb67d1b064 Filter items from the report if null returned 2022-12-06 18:00:16 -06:00
Godfrey M
d0d0058e79 removed unwanted changes 2022-12-06 11:19:28 -08:00
Godfrey M
bbd04f8876 adds the rest of the fields for Remote 2022-12-06 11:13:24 -08:00
snipe
97731cd7c8 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	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-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/mix-manifest.json
2022-12-05 16:34:34 -08:00
Godfrey M
36901d271b adds csvmatch for remote. Im a bit lost though lol 2022-12-05 16:28:19 -08:00
snipe
b7a5467f8b Merge pull request #12204 from akemidx/fixcurlyquotes
Fixed: curly quotes in #12182
2022-12-05 15:33:47 -08:00
akemi
2f8a435e18 fixing curly quotes 2022-12-05 18:06:28 -05:00
snipe
9ca40716ce Merge pull request #12197 from inietov/fixes/custom_regex_defaults_to_any
Fixed #11682  Custom field type of CUSTOM REGEX defaults back to ANY on editing
2022-12-05 13:24:22 -08:00
snipe
7518cab7c8 Merge pull request #12194 from Godmartinz/FDD32094_Icon_color_change
changes the life-ring icon color with themes
2022-12-01 10:04:55 -08:00
Ivan Nieto Vivanco
8d36971c8b Properly select 'CUSTOM REGEX' from the select list if the format declares onee 2022-11-30 16:21:23 -06:00
Godfrey M
371a5bf4d6 changes the icon color with themes 2022-11-30 10:37:47 -08:00
snipe
cfc4229308 Add @akemidx as a contributor 2022-11-29 13:15:28 -08:00
snipe
8bf01715a9 Merge pull request #12182 from akemidx/translate_inventory_notification
Fixed #12119 - updated user inventory language to use strings
2022-11-29 13:14:32 -08:00
akemi
55f5e7866d edits for PR 2022-11-29 15:59:36 -05:00
Godfrey M
3206929ee4 adds AgeFormatter, not working yet 2022-11-29 09:51:42 -08:00
snipe
1fe0bfe17e Removed extra logging case that was very noisy
Signed-off-by: snipe <snipe@snipe.net>
2022-11-28 19:27:42 -08:00
snipe
9c205f63ae Merge remote-tracking branch 'origin/develop' 2022-11-28 19:21:19 -08:00
snipe
0cc7389b85 Merge pull request #12187 from snipe/features/added_jobtitle_to_print
Fixed #12133 - Added job title to header in print assets view
2022-11-28 19:20:46 -08:00
snipe
e21d0729c1 Add jobh title to header in print assets view
Signed-off-by: snipe <snipe@snipe.net>
2022-11-28 19:19:42 -08:00
snipe
c46dc99e86 Merge remote-tracking branch 'origin/develop' 2022-11-28 17:20:57 -08:00
snipe
64a8d1d207 Merge pull request #12185 from snipe/features/add_serial_to_inventory_email
Added serial number to emailed inventory report
2022-11-28 17:20:34 -08:00
snipe
8de59d117f Added serial number to emailed inventory report
Signed-off-by: snipe <snipe@snipe.net>
2022-11-28 17:14:38 -08:00
snipe
d5e702ac74 Merge remote-tracking branch 'origin/develop' 2022-11-28 14:12:38 -08:00
snipe
6113afe36e Merge pull request #12125 from inietov/fixes/email_issues
Fixed #11699 and #12065 Email issues
2022-11-28 14:09:42 -08:00
snipe
305df42f92 Merge pull request #12167 from inietov/features/no_submit_until_status_selected
Fixed #11980 Submit button deactivated in Users' Bulk Checkin if no status selected
2022-11-28 13:17:33 -08:00
snipe
9aa0356de7 Merge pull request #12159 from uberbrady/upgrade_scim_server_to_upstream
Pulled in latest upstream changes for improved standards-compliance
2022-11-28 13:15:27 -08:00
snipe
d2dcb29dcb Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	resources/views/models/custom_fields_form.blade.php
2022-11-28 12:27:36 -08:00
akemi
39e06a8856 Update to PR#12119, adding inventory notification to messages and changing code to be dynamicaly translated 2022-11-28 14:16:22 -05:00
Godfrey M
8d861cfd82 adds age to the asset table 2022-11-28 10:59:18 -08:00
Godfrey M
078e7281cd adds asset age to asset view 2022-11-28 10:45:58 -08:00
snipe
3ef578eb56 Merge pull request #12164 from Robert-Azelis/patch-7
Fix categories view columns matching
2022-11-23 18:47:02 -08:00
snipe
11a1ab971c Merge pull request #12166 from inietov/fixes/custom_fields_values_develop
Fixed #12046 #12137 Custom field checkboxes not holding value for develop
2022-11-23 18:44:23 -08:00
snipe
d226cf189b Merge pull request #12168 from inietov/fixes/error_accepting_assets
Fixed #12161 500 error when accepting assets
2022-11-23 18:41:42 -08:00
Ivan Nieto Vivanco
c082d8b90e Return empty string if no MAIL_REPLYTO_ADDR var set 2022-11-23 18:22:31 -06:00
Ivan Nieto Vivanco
b1985a08c4 Checks the status before activate the submit button on users bulk-checkin 2022-11-23 17:45:59 -06:00
Ivan Nieto Vivanco
9bafe795b0 Corrected the view when editing custom fields values 2022-11-23 16:34:29 -06:00
snipe
bb4c084435 Merge pull request #12165 from inietov/fixes/custom_fields_values
Fixed #12046 #12137 Custom field checkboxes not holding value
2022-11-23 15:09:58 -05:00
Ivan Nieto Vivanco
feeb1c7ac8 Corrected the view when editing custom fields values 2022-11-23 12:21:07 -06:00
Robert-Azelis
c2cfd8ff53 Update CategoryPresenter.php 2022-11-23 19:00:08 +01:00
Robert-Azelis
20ad4fb681 Update CategoryPresenter.php
Fix snipe#12153
2022-11-23 18:42:38 +01:00
Brady Wetherington
06a1fe5b38 Pulled in latest upstream changes for improved standards-compliance 2022-11-22 12:52:11 -08:00
snipe
b6f87633f5 Merge remote-tracking branch 'origin/develop' 2022-11-22 12:36:00 -08:00
snipe
e426846c23 Merge pull request #12157 from snipe/fixes/inherit_bgcolor_for_readonly
Fixed background color for readonly date picker fields
2022-11-22 16:57:34 +00:00
snipe
27898e660c Inherit the background color, since the field isn’t actually technically readonly
Signed-off-by: snipe <snipe@snipe.net>
2022-11-22 08:54:48 -08:00
Aaron
2c7364bdfe Fixed #11225: run_as_app_user unknown operand
Fixed #10581: installer does not work on CentOS7
Fixed #10105: php not found, composer failed
Fixed #9035: CentOS 7 IUS repos missing
2022-11-22 11:47:58 -05:00
snipe
0d9d02c6d6 Merge pull request #12148 from whalehub/develop
Fix restore icon in table view
2022-11-19 10:25:48 +00:00
Aaron
7c854c0a5c Fix restore icon in table view
Signed-off-by: Aaron <admin@datahoarder.dev>
2022-11-19 10:45:10 +01:00
snipe
efc892cf5e Merge remote-tracking branch 'origin/develop' 2022-11-17 21:29:14 +00:00
snipe
ba4c37a7f4 Merge pull request #12139 from snipe/fixes/custom_fields_api_patches
Fixed #9949 - PATCH to custom fields failing on validation (alt approach to #12011)
2022-11-17 21:28:39 +00:00
snipe
f0c5560c1b Merge pull request #12141 from Godmartinz/adds_serial_number_to_history
Added `serial` column to the user history page
2022-11-17 21:15:26 +00:00
snipe
774962c122 Fixed typo
Signed-off-by: snipe <snipe@snipe.net>
2022-11-17 21:14:35 +00:00
Godfrey M
0a9fd0b867 adds serial to activity report page 2022-11-17 13:09:06 -08:00
Godfrey M
5c94ca1403 removes dead space 2022-11-17 13:06:07 -08:00
Godfrey M
86bc409d3a adds serial column to the action logs 2022-11-17 12:57:53 -08:00
snipe
24841a75d4 Move common things into the model level validation
Signed-off-by: snipe <snipe@snipe.net>
2022-11-17 19:41:10 +00:00
Godfrey M
a02a04d601 fixes a regression with the csv assigned to fields 2022-11-16 16:34:57 -08:00
snipe
3997085faf Merge pull request #12122 from Godmartinz/fixes_checkout_to_all_description
fixes checkout to all description
2022-11-16 21:56:53 +00:00
snipe
3ac92e1425 Merge pull request #12127 from deloz/fix-Asset-checked-in-Email-Asset-Picture-Not-Displaying
Fixed #12095 - email logo still linking even if settings deny it
2022-11-16 21:55:59 +00:00
snipe
5661e69520 Merge remote-tracking branch 'origin/develop' 2022-11-16 17:49:14 +00:00
snipe
cdcd19a7d8 Merge pull request #12132 from snipe/fixes/view_assets_page_error_when_no_custom_fields
Handle use case where there are no custom fields for any assigned models
2022-11-16 17:48:53 +00:00
snipe
489895a5fa Added comments and spacing for readability
Signed-off-by: snipe <snipe@snipe.net>
2022-11-16 17:48:28 +00:00
snipe
1122562b4e Handle use case where there are no custom fields for any assigned models
Signed-off-by: snipe <snipe@snipe.net>
2022-11-16 17:45:50 +00:00
snipe
65e46c914c Merge remote-tracking branch 'origin/develop' 2022-11-16 15:57:46 +00:00
snipe
4ffe13d3c2 Merge pull request #12131 from snipe/fixes/check_for_format_index_in_custom_field_api_call
Fixed 500 if `format` is not passed to the create custom field endpoint payload
2022-11-16 15:57:07 +00:00
snipe
5df76155ce Check for the format index in the $data array when creating a new custom field via API
Signed-off-by: snipe <snipe@snipe.net>
2022-11-16 15:53:16 +00:00
snipe
e1c33d4eff Merge pull request #12129 from deloz/fix-remove-duplicate-column-checkin_email
Fixed #12109 - Duplicate column on Category listing
2022-11-16 11:41:55 +00:00
Instead of looking elsewhere, it is better to come here together
2fc7a15372 Fixed: #12109 2022-11-16 18:22:11 +08:00
Instead of looking elsewhere, it is better to come here together
9056d48775 Fixed: 12095 2022-11-16 18:16:45 +08:00
Godfrey M
8a0517fb5d removes data dump 2022-11-15 15:59:47 -08:00
Godfrey M
90828e3a87 fixes variable name 2022-11-15 15:51:52 -08:00
Godfrey M
45636b8114 adds should_autoassign boolean to users table 2022-11-15 15:42:57 -08:00
Godfrey M
9fefdea9de fixes checkout to all description 2022-11-15 12:50:46 -08:00
snipe
2239c6f7e2 Merge remote-tracking branch 'origin/develop' 2022-11-15 17:58:19 +00:00
snipe
da0efaa278 Add @fernando-almeida as a contributor 2022-11-15 17:56:19 +00:00
snipe
69bde0443e Add @lukasfehling as a contributor 2022-11-15 17:56:01 +00:00
snipe
6400bdc266 Merge pull request #12120 from snipe/features/added_deleted_filter_to_search_by_tag
Added ability to include deleted items in tag search endpoint
2022-11-15 17:54:34 +00:00
snipe
ffd252a00c Merge pull request #12119 from lukasfehling/feature/added-endpoint-for-user-notification
Added: API endpoint to trigger a user email notification with their assigned assets
2022-11-15 17:51:15 +00:00
snipe
7fcf6f2463 Removed deleted parameter
Signed-off-by: snipe <snipe@snipe.net>
2022-11-15 17:47:21 +00:00
snipe
5103f28598 Merge pull request #12121 from snipe/fixes/safer_file_existance_checking_for_model_files
Replace error suppression with better logic
2022-11-15 17:43:39 +00:00
snipe
60d7128a5e Replace error suppression with better logic
Signed-off-by: snipe <snipe@snipe.net>
2022-11-15 17:41:57 +00:00
snipe
2c5a0d370c Clean up API byserial and bytag, allow deleted param
Signed-off-by: snipe <snipe@snipe.net>
2022-11-15 17:33:56 +00:00
snipe
bcbe517446 Added ability to include deleted items in tag search endpoint
Signed-off-by: snipe <snipe@snipe.net>
2022-11-15 17:18:09 +00:00
lukasfehling
d9a9bd1c0d Added a api endpoint for sending email notifications to users with their assigned assets 2022-11-15 18:17:51 +01:00
snipe
2166fcec41 Merge pull request #12118 from snipe/features/adds_asset_tag_and_serial_to_api
Allow searching firectly for asset tag and serial
2022-11-15 17:16:17 +00:00
snipe
9a5d431962 Allow searching firectly for asset tag and serial
Signed-off-by: snipe <snipe@snipe.net>
2022-11-15 17:13:26 +00:00
snipe
6dc0846f38 Merge pull request #12117 from snipe/fixes/pr_12106_missing_slash_for_stdClass
Fixes PR #12106 missing slash for std class
2022-11-15 17:04:58 +00:00
snipe
50431c046f Fixed missing slash in stdClass
Signed-off-by: snipe <snipe@snipe.net>
2022-11-15 17:04:06 +00:00
Ivan Nieto Vivanco
f0ecab7bb1 Fix typo in variable (ah-hyuck!) 2022-11-15 11:00:40 -06:00
Ivan Nieto Vivanco
7cc8b39863 Checks if settings let URL's be shown in email notifications 2022-11-15 10:55:54 -06:00
snipe
ae259f36ae Merge pull request #12106 from fernando-almeida/develop
Fix HTTP AssetTransformer to generate an empty object for missing custom fields
2022-11-15 15:54:43 +00:00
Ivan Nieto Vivanco
cd2997b674 Determine if email_logo or logo setting needs to be used in the Forgot Password email 2022-11-15 08:08:26 -06:00
snipe
b4ff07ce9e Merge remote-tracking branch 'origin/develop' 2022-11-14 22:53:39 +00:00
snipe
8122236944 Merge pull request #12096 from snipe/features/add_custom_field_option_to_view_assets
Added custom field option to view assets
2022-11-14 22:45:26 +00:00
snipe
56c4fa7c27 Override display settings if field is encrypted
Signed-off-by: snipe <snipe@snipe.net>
2022-11-14 22:41:31 +00:00
snipe
602c2698d2 Fixed broken table header tag
Signed-off-by: snipe <snipe@snipe.net>
2022-11-14 22:06:23 +00:00
snipe
ff0b68724f Merge pull request #12107 from snipe/fixes/500_on_missing_model_file
Fixed 500 error if model files are missing
2022-11-14 22:04:31 +00:00
snipe
d4ac7530b6 Removed download button for files that don’t exist on the server
Signed-off-by: snipe <snipe@snipe.net>
2022-11-14 22:04:06 +00:00
snipe
4aded5e117 FIxed 500 error if model files are missing
Signed-off-by: snipe <snipe@snipe.net>
2022-11-14 22:01:33 +00:00
snipe
8d03ce5e2c Merge remote-tracking branch 'origin/develop' 2022-11-14 17:45:01 +00:00
snipe
15da39d44a Merge pull request #12105 from snipe/fixes/500_on_missing_license_files
Fixed 500 on missing license files
2022-11-14 17:44:16 +00:00
snipe
077d343f01 Prevent 500 if license file is missing
Signed-off-by: snipe <snipe@snipe.net>
2022-11-14 17:42:40 +00:00
Fernando Almeida
47ee2a8153 Fix HTTP AssetTransformer to generate an empty object for missing custom_fields instead of an empty array. 2022-11-14 16:31:08 +00:00
Cram42
17e81af4cd Add more Avery label sheets 2022-11-12 20:29:50 +08:00
Cram42
ffce6ec327 Need uppercase 2022-11-12 20:29:34 +08:00
Cram42
60ef5686ab Add "Pop Out" button for preview 2022-11-12 19:02:38 +08:00
Cram42
af0872dc23 Fix form refresh after bootstrap-table 2022-11-11 14:23:38 +08:00
Cram42
30a7a31724 Move label preview to alpine component 2022-11-11 14:23:02 +08:00
Cram42
67d021e457 Add alpinejs to deferred scripts 2022-11-11 11:25:41 +08:00
snipe
ae95ee49f1 Hide the option if the field is encrypted
Signed-off-by: snipe <snipe@snipe.net>
2022-11-10 17:56:50 +00:00
snipe
2ac558494d Set column width instead of letting BS tables guess
Signed-off-by: snipe <snipe@snipe.net>
2022-11-10 17:21:07 +00:00
snipe
ede16ad2c2 Removed unused block
Signed-off-by: snipe <snipe@snipe.net>
2022-11-10 17:19:35 +00:00
snipe
1e34398c99 Permissions check on the field itself
Signed-off-by: snipe <snipe@snipe.net>
2022-11-10 17:19:12 +00:00
snipe
7a5fcfb87a Loop through fields array
Signed-off-by: snipe <snipe@snipe.net>
2022-11-10 16:46:59 +00:00
snipe
1fa624420e Removed unneeded relationships
Signed-off-by: snipe <snipe@snipe.net>
2022-11-10 16:46:49 +00:00
Cram42
7108156072 Fix button disabling 2022-11-10 19:24:02 +08:00
Cram42
a4b93d4bbd Create Field Definitions helper control 2022-11-10 19:20:18 +08:00
Cram42
f849fcca89 Change the way fields are passed 2022-11-10 18:54:02 +08:00
Godfrey M
92ae271292 adds validation for department names at Company locations 2022-11-09 13:11:33 -08:00
snipe
6a9131e771 Merge pull request #12088 from uberbrady/minimal_scim_upgrade
Added new SCIM env vars; and upgraded SCIM library
2022-11-09 19:30:50 +00:00
Brady Wetherington
383bd6bb45 Add new SCIM env vars; upgrade SCIM library 2022-11-09 19:08:15 +00:00
snipe
097821b818 Slight revamping of column layouts and also added new general.display_in_user_view column
Signed-off-by: snipe <snipe@snipe.net>
2022-11-08 15:28:19 +00:00
snipe
2e56c9b521 Added new general.display_in_user_view field to form
Signed-off-by: snipe <snipe@snipe.net>
2022-11-08 15:27:59 +00:00
snipe
b95d24b5eb Additional translations
Signed-off-by: snipe <snipe@snipe.net>
2022-11-08 15:27:44 +00:00
snipe
f91e1d58ad Migration to add the field to the custom_fields table
Signed-off-by: snipe <snipe@snipe.net>
2022-11-08 15:27:34 +00:00
snipe
7c37c70164 Added new field to allowed_fields so that the API can change them if needed
Signed-off-by: snipe <snipe@snipe.net>
2022-11-08 15:27:22 +00:00
snipe
52dc5aa4ba Added field to controller and tranformer
Signed-off-by: snipe <snipe@snipe.net>
2022-11-08 15:26:59 +00:00
snipe
23cbee9493 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	config/version.php
2022-11-03 14:18:55 -07:00
snipe
7c21158680 Bumped version
Signed-off-by: snipe <snipe@snipe.net>
2022-11-03 14:18:13 -07:00
snipe
30f4af3ac2 Merge remote-tracking branch 'origin/develop' 2022-11-03 14:14:23 -07:00
snipe
b1fa50cde2 Merge pull request #12067 from snipe/fixes/modelfile_image_path
Fixed model file image path/variable
2022-11-03 14:13:54 -07:00
snipe
236684ec92 Fixed model file image path/variable
Signed-off-by: snipe <snipe@snipe.net>
2022-11-03 14:12:49 -07:00
snipe
c45e777324 Merge remote-tracking branch 'origin/develop' 2022-11-03 14:10:08 -07:00
snipe
53499b1e29 Merge pull request #12066 from snipe/fixes/small_uploads_fixes
Fixed - small uploads fixes
2022-11-03 14:08:52 -07:00
snipe
04b6f023ae Use new upload string
Signed-off-by: snipe <snipe@snipe.net>
2022-11-03 13:57:50 -07:00
snipe
3c7d63c060 Disallow uploads if app is locked
Signed-off-by: snipe <snipe@snipe.net>
2022-11-03 13:52:23 -07:00
snipe
7cb1ca8754 Fixed image path to show preview
Signed-off-by: snipe <snipe@snipe.net>
2022-11-03 13:51:48 -07:00
snipe
52e33a8b0e Merge remote-tracking branch 'origin/develop' 2022-11-03 13:27:21 -07:00
snipe
0f5fbb6a04 Re-added gitignore
Signed-off-by: snipe <snipe@snipe.net>
2022-11-03 13:27:06 -07:00
Cram42
fd9616683c Label preview auto-refresh 2022-11-03 10:20:12 +08:00
snipe
6d5ace0458 Merge pull request #12049 from uberbrady/improve_scim_externalid_support
Fixed writes to the `externalId` from SCIM
2022-11-02 15:43:55 -07:00
Cram42
3d470d6f2f Drop asset tag from default field def. 2022-11-02 22:39:08 +08:00
Cram42
53513d93fa Rework TZe labels for Asset Tag support 2022-11-02 22:38:00 +08:00
Cram42
f5fac50e91 Add preview pane 2022-11-02 19:31:34 +08:00
Cram42
36210f1c6a Allow settings to be overridden in request 2022-11-02 19:30:45 +08:00
Cram42
48fb4f2439 Add labels route for testing layouts 2022-11-02 17:23:52 +08:00
Cram42
fb467d9078 Include Asset for advanced users 2022-11-02 17:20:01 +08:00
Cram42
4fee5ece43 Support Avery L7163 2022-11-02 16:08:10 +08:00
Cram42
4bb40adfce Add Asset Tag as separate supported feature 2022-11-02 16:07:50 +08:00
Cram42
06ce40ac08 Don't add data if it's not there 2022-11-02 16:05:52 +08:00
Cram42
a8b6a4a259 Allow passing "template" param 2022-11-02 16:04:40 +08:00
Cram42
a60ee7736b Add P-touch TZe 12mm Tape Example 2022-11-02 12:22:55 +08:00
snipe
6f14355cbc Merge pull request #12060 from snipe/features/added_accessories_file_uploads
Added accessories file uploads
2022-11-01 19:51:38 -07:00
snipe
eb81c290dc Accessory file upload
Signed-off-by: snipe <snipe@snipe.net>
2022-11-01 19:50:39 -07:00
snipe
2f9e097854 Merge pull request #12059 from snipe/fixes/consumables_files_translations
Use the generic file uploads strings
2022-11-01 19:32:35 -07:00
snipe
97aeb1fcec Use the generic file uploads strings
Signed-off-by: snipe <snipe@snipe.net>
2022-11-01 19:31:23 -07:00
snipe
e6d259bac0 Merge pull request #12058 from snipe/features/added_uploads_to_components
Added uploads to components
2022-11-01 19:30:17 -07:00
snipe
8887d40b86 Added gitignore
Signed-off-by: snipe <snipe@snipe.net>
2022-11-01 19:29:21 -07:00
snipe
3d8e0b707e Fixed component file route controller names
Signed-off-by: snipe <snipe@snipe.net>
2022-11-01 19:29:13 -07:00
snipe
71a7176a6e Updated component blade
Signed-off-by: snipe <snipe@snipe.net>
2022-11-01 19:28:57 -07:00
snipe
def89bfa0c Added some generic file translations
Signed-off-by: snipe <snipe@snipe.net>
2022-11-01 19:28:49 -07:00
snipe
f1cb7ee410 Fixed some translations
Signed-off-by: snipe <snipe@snipe.net>
2022-11-01 19:28:39 -07:00
snipe
84c0f50266 Added ComponentFilesController
Signed-off-by: snipe <snipe@snipe.net>
2022-11-01 19:10:04 -07:00
snipe
f51b312843 Added component routes for uploads
Signed-off-by: snipe <snipe@snipe.net>
2022-11-01 19:09:51 -07:00
Cram42
d0eb3cfc9b Merge branch 'feature-label2' into develop 2022-11-02 10:09:46 +08:00
snipe
3d3a4b02fc Added helper method for uploads
Signed-off-by: snipe <snipe@snipe.net>
2022-11-01 19:09:34 -07:00
snipe
276f534ded Updated permissions
Signed-off-by: snipe <snipe@snipe.net>
2022-11-01 19:09:21 -07:00
Cram42
19150aeb44 Add P-touch TZe 24mm Tape Example 2022-11-02 10:09:11 +08:00
snipe
1d47d9e52b Merge pull request #12057 from snipe/features/add_uploads_to_components
Added uploads to components
2022-11-01 19:07:42 -07:00
snipe
2106b64da6 Fixed some layout issues
Signed-off-by: snipe <snipe@snipe.net>
2022-11-01 19:06:49 -07:00
Cram42
cde2ba7720 Fix: Oops 2022-11-02 09:51:02 +08:00
snipe
fa79a6c15f Skip storage:: facade on missing images
Signed-off-by: snipe <snipe@snipe.net>
2022-11-01 18:19:13 -07:00
snipe
761da534f3 Updated consumables UI to allow uploads and display files
Signed-off-by: snipe <snipe@snipe.net>
2022-11-01 17:53:08 -07:00
snipe
b362951c95 Added consumables permissions
Signed-off-by: snipe <snipe@snipe.net>
2022-11-01 17:52:45 -07:00
snipe
25f69a7bd2 Added consumable methods for uploads
Signed-off-by: snipe <snipe@snipe.net>
2022-11-01 17:52:28 -07:00
snipe
f6a6478804 Added consumable uploads gitignore
Signed-off-by: snipe <snipe@snipe.net>
2022-11-01 17:52:04 -07:00
snipe
3282702c73 Added consumables upload routes
Signed-off-by: snipe <snipe@snipe.net>
2022-11-01 17:51:53 -07:00
Cram42
6b2fe582ca Merge branch 'feature-label2' into develop 2022-11-01 20:12:28 +08:00
cram42
7e2546b31f Merge branch 'snipe:develop' into develop 2022-11-01 20:04:59 +08:00
Cram42
7b29ddd283 Tie into tag generation 2022-11-01 20:02:12 +08:00
Cram42
d37605ff18 Add localization strings 2022-11-01 20:01:18 +08:00
Cram42
6de48b4dc8 Implement settings for labels 2022-11-01 20:00:53 +08:00
Cram42
5558a005b9 Implement API for labels 2022-11-01 19:57:51 +08:00
Cram42
bb09f0168f Create Label View/Generator 2022-11-01 19:56:53 +08:00
Cram42
4ed728d954 Add template to simulate legacy label 2022-11-01 19:54:00 +08:00
Cram42
bbecdb6768 Add QR example 2022-11-01 19:53:11 +08:00
Cram42
df89406987 Create Label model and example 2022-11-01 19:52:34 +08:00
Cram42
7c355cef2d Add helper to convert between units of measurement 2022-11-01 19:49:57 +08:00
Cram42
35536b5dbd Require tecnickcom/tcpdf 2022-11-01 19:47:59 +08:00
Brady Wetherington
4e5c878b73 Needed to fix the way we write externalId from SCIM 2022-10-31 19:15:08 -07:00
snipe
5711706367 Merge remote-tracking branch 'origin/develop' 2022-10-31 12:17:06 -07:00
snipe
a930661150 Check for valid category
Signed-off-by: snipe <snipe@snipe.net>
2022-10-31 12:16:39 -07:00
snipe
7cb4740359 Merge pull request #11766 from snipe/fixes/wtf_method_names_derp
Fixed (?) method name?
2022-10-26 17:39:11 -07:00
Cram42
0e69e4248c Fix: Multiple outputs at hardware/{id}/label 2022-10-27 08:12:42 +08:00
snipe
9f8f028484 Merge remote-tracking branch 'origin/develop' 2022-10-26 12:21:20 -07:00
snipe
d0b9e956df Merge pull request #12042 from snipe/fixes/added_missing_hashed_password_string
Corrected string for invalid current password
2022-10-26 12:20:35 -07:00
snipe
c1eee2cc72 Corrected string for invalid current password
Signed-off-by: snipe <snipe@snipe.net>
2022-10-26 12:18:29 -07:00
snipe
f32183d51b Merge remote-tracking branch 'origin/develop' 2022-10-26 10:58:52 -07:00
snipe
73f30c0a41 Merge pull request #12041 from snipe/features/reflect_status_label_color_in_sidenav
Fixed #12009 - Added ability to reflect color in sidenav if one is given
2022-10-26 10:58:19 -07:00
snipe
c233d7fb1c Removed extra spaces
Signed-off-by: snipe <snipe@snipe.net>
2022-10-26 10:51:06 -07:00
snipe
dea0fcefbd Reflect color in sidenav if one is given
Signed-off-by: snipe <snipe@snipe.net>
2022-10-26 10:48:42 -07:00
snipe
38678d4646 Bumped hash
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	config/version.php
2022-10-26 09:50:44 -07:00
snipe
476a5cbc02 Bumped hash
Signed-off-by: snipe <snipe@snipe.net>
2022-10-26 09:49:50 -07:00
snipe
bc4c6abe06 Merge remote-tracking branch 'origin/develop' 2022-10-26 09:43:33 -07:00
snipe
73f61ce032 Merge pull request #12040 from snipe/fixes/locations_asset_count
Renamed column back to assets_count for legacy
2022-10-26 09:43:01 -07:00
snipe
12c7223bcd Renamed column back to assets_count for legacy
Signed-off-by: snipe <snipe@snipe.net>
2022-10-26 09:39:03 -07:00
snipe
de856d6045 Merge remote-tracking branch 'origin/develop' 2022-10-26 00:57:17 -07:00
snipe
b7efb58733 Merge pull request #12038 from snipe/fixes/clear_expected_checkin_on_checkin_action
Added - set `expected_checkin` to `null` on user bulk checkin and delete
2022-10-26 00:56:43 -07:00
snipe
28b0d8cf0f Null expected_checkin on user bulk checkin and delete
Signed-off-by: snipe <snipe@snipe.net>
2022-10-26 00:54:37 -07:00
snipe
88ae8858e8 Merge remote-tracking branch 'origin/develop' 2022-10-26 00:32:39 -07:00
snipe
0bc0a116aa Merge pull request #12035 from snipe/features/added_new_tab_to_locations
Features/added new tab to locations
2022-10-26 00:32:07 -07:00
snipe
e670ffe349 Added Assets Assigned to tab
Signed-off-by: snipe <snipe@snipe.net>
2022-10-26 00:16:06 -07:00
snipe
a94f1c4a64 Cleaned up and added comments
Signed-off-by: snipe <snipe@snipe.net>
2022-10-26 00:15:52 -07:00
snipe
b503b672ba Merge pull request #11951 from Godmartinz/AccessKey_shortcuts
adds shortcuts for listing, creating, and saving
2022-10-25 15:53:57 -07:00
snipe
72296eea5c Merge remote-tracking branch 'origin/develop' 2022-10-25 15:46:26 -07:00
snipe
bc023a2566 Add @eltociear as a contributor 2022-10-25 15:46:07 -07:00
snipe
2f7e22be1e Fixed all-contributors type
Signed-off-by: snipe <snipe@snipe.net>
2022-10-25 15:46:07 -07:00
snipe
9409965239 Merge pull request #11928 from eltociear/patch-1
Fix typo in Dockerfile.fpm-alpine
2022-10-25 15:45:42 -07:00
snipe
f54c92ade2 Merge pull request #12028 from StarlessNights/feature/add-memcached-php-extensions-to-docker-images
Fixed #12027: Add memcached php extensions to docker images
2022-10-25 15:42:15 -07:00
snipe
b1fb70cb7b Merge remote-tracking branch 'origin/develop' 2022-10-25 15:35:04 -07:00
snipe
9e08936cbc Merge pull request #12030 from uberbrady/scim_externalid_support
Added externalId support to SCIM integration
2022-10-25 14:51:52 -07:00
Brady Wetherington
cd385e0865 Set scim_externalid to nullable, default null 2022-10-25 14:38:19 -07:00
Brady Wetherington
1e3281c76c Add externalId support to SCIM integration 2022-10-25 14:19:01 -07:00
Iisakki Jaakkola
af4d62759f Added php memcached extension to docker Alpine image. 2022-10-25 16:16:25 +03:00
Iisakki Jaakkola
9452973845 Added php memcached extension to the docker image. 2022-10-25 16:16:25 +03:00
snipe
8e23787888 Merge remote-tracking branch 'origin/develop' 2022-10-21 17:44:04 -07:00
snipe
3b16157d6b Fixed typo
Signed-off-by: snipe <snipe@snipe.net>
2022-10-21 17:43:53 -07:00
snipe
3ec3d38c9f Merge remote-tracking branch 'origin/develop' 2022-10-21 17:01:00 -07:00
snipe
ae430959a4 Merge pull request #12015 from snipe/fixes/revert_processing_button
Changed button icon for importer
2022-10-21 17:00:22 -07:00
snipe
85a85082b7 Changed button icon for importer
Signed-off-by: snipe <snipe@snipe.net>
2022-10-21 16:59:19 -07:00
snipe
5acb493efd Merge pull request #12008 from snipe/features/add_default_loc_to_location_view
Added default tab to locations
2022-10-21 16:43:24 -07:00
snipe
515b14a001 Updated JS to better handle input IDs
Signed-off-by: snipe <snipe@snipe.net>
2022-10-20 19:21:09 -07:00
snipe
4eed2baa31 Added default tab to locations
Signed-off-by: snipe <snipe@snipe.net>
2022-10-20 19:06:58 -07:00
snipe
453f2c3b0e Merge pull request #12006 from uberbrady/ldap_manager_cache
Added cache manager lookups in LDAP for performance boost
2022-10-20 17:06:23 -07:00
Brady Wetherington
bc78d341a0 Caches manager lookups in LDAP for performance boost 2022-10-20 16:52:40 -07:00
snipe
da579a302c Merge remote-tracking branch 'origin/develop' 2022-10-19 19:09:34 -07:00
snipe
edf191b724 Merge pull request #11995 from uberbrady/ldap_manager_fix
Fixed: Okta LDAP Manager Attribute - Try to better-handle LDAP Manager settings
2022-10-19 19:04:10 -07:00
Brady Wetherington
12d86bd6e2 Erroneous line-break removal - re-add 2022-10-19 19:01:52 -07:00
Brady Wetherington
c4f11de90d Remove incorrect comment. 2022-10-19 18:49:19 -07:00
Brady Wetherington
8fb61cf5f8 Try to better handle LDAP Manager settings that don't line up with what we expect 2022-10-19 18:36:16 -07:00
Godfrey M
f2d4a61e3c removes dead space 2022-10-18 15:31:37 -07:00
Godfrey M
3f25a1bf61 removes dead code 2022-10-18 15:25:38 -07:00
Godfrey M
f9ac447dd1 adds default group to LDAP 2022-10-18 15:18:09 -07:00
snipe
4e83b06d71 Merge remote-tracking branch 'origin/develop' 2022-10-18 15:00:51 -07:00
snipe
23e613f903 Fixed kit parse error on model edit
Signed-off-by: snipe <snipe@snipe.net>
2022-10-18 15:00:33 -07:00
snipe
f1c82ca732 Merge pull request #11988 from snipe/fixes/wrong_icons_for_mobile_location_view
Fixed wrong icons for mobile view for locations listing
2022-10-17 20:14:01 -07:00
snipe
2543fa6b98 Fixed user icon for tab
Signed-off-by: snipe <snipe@snipe.net>
2022-10-17 20:04:42 -07:00
snipe
7c34652da0 Fixed incorrect icons for mobile view on location tabs
Signed-off-by: snipe <snipe@snipe.net>
2022-10-17 20:02:27 -07:00
snipe
aa3f94973f Merge remote-tracking branch 'origin/develop' 2022-10-17 14:45:05 -07:00
snipe
1ec303931a Merge pull request #11986 from Godmartinz/FD31357_depreciation
Fixes the calc of months and fixes typo of the word depreciation
2022-10-17 14:44:46 -07:00
Godfrey M
d359bcb88d adds proper spacing 2022-10-17 13:15:10 -07:00
Godfrey M
28059c878a gets the proper amount of months and fixes typo of the word depreciation 2022-10-17 11:16:29 -07:00
Phan Nguyen
e457b2e98d Correct assignedusers relation setting 2022-10-17 13:10:09 +07:00
snipe
b7bcfaccc9 Merge pull request #11834 from uberbrady/try_catch_notifications
try/catch wrap notifications on checkin/checkout
2022-10-13 14:20:22 -07:00
snipe
f4a3f896bd Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	config/version.php
2022-10-13 13:20:35 -07:00
snipe
0303df4b25 Bumped version
Signed-off-by: snipe <snipe@snipe.net>
2022-10-13 13:19:51 -07:00
snipe
9151868839 Merge remote-tracking branch 'origin/develop' 2022-10-13 13:06:52 -07:00
snipe
8c6aaec9ce Merge pull request #11971 from snipe/localization/new_translations
Added new translations
2022-10-13 13:06:16 -07:00
snipe
fb228d6ded Updated strings
Signed-off-by: snipe <snipe@snipe.net>
2022-10-13 12:57:10 -07:00
snipe
1360ce90a5 Updated strings
Signed-off-by: snipe <snipe@snipe.net>
2022-10-13 12:52:45 -07:00
snipe
3549afe157 Added strings
Signed-off-by: snipe <snipe@snipe.net>
2022-10-13 12:43:24 -07:00
snipe
cfb780b20b Remove unused files
Signed-off-by: snipe <snipe@snipe.net>
2022-10-13 12:39:10 -07:00
snipe
eb9f17122e Updated strings
Signed-off-by: snipe <snipe@snipe.net>
2022-10-13 12:21:09 -07:00
snipe
2ef45afb2b Removed extraneous files
Signed-off-by: snipe <snipe@snipe.net>
2022-10-13 12:18:57 -07:00
snipe
c8baf4c6ad Updated prod assets
Signed-off-by: snipe <snipe@snipe.net>
2022-10-12 16:25:43 -07:00
snipe
0b20cf6d70 Merge remote-tracking branch 'origin/develop' 2022-10-12 16:24:46 -07:00
snipe
ecc6bd8a24 Updated dev assets
Signed-off-by: snipe <snipe@snipe.net>
2022-10-12 16:24:31 -07:00
snipe
3c9c89355e Aaaand master again
Signed-off-by: snipe <snipe@snipe.net>
2022-10-12 16:01:55 -07:00
snipe
43479efed0 Merge remote-tracking branch 'origin/develop' 2022-10-12 16:01:17 -07:00
snipe
80279a95ae Merge pull request #11964 from snipe/fixes/audit_admin_presenting
Use admin ID for audit log notification
2022-10-12 16:00:50 -07:00
snipe
ac055c01dc Use admin ID for audit log notification
Signed-off-by: snipe <snipe@snipe.net>
2022-10-12 15:59:43 -07:00
snipe
5ff72420a6 Set branch back to develop
I hads to switch branches because the automated GH action script always targets masterb

Signed-off-by: snipe <snipe@snipe.net>
2022-10-12 11:00:06 -07:00
snipe
55b33c1042 Merge pull request #11944 from snipe/dependabot/github_actions/actions/checkout-3.1.0
Bump actions/checkout from 2 to 3.1.0
2022-10-12 10:59:21 -07:00
snipe
a499a92bb7 Added @nh314 as a contributor
Signed-off-by: snipe <snipe@snipe.net>
2022-10-12 10:57:50 -07:00
snipe
e7ae7742b0 Merge pull request #11949 from nh314/Remove-required-mark
Remove required mark
2022-10-12 10:55:49 -07:00
snipe
98f2e0271b Merge pull request #11942 from nh314/develop
Correct comparison logic
2022-10-12 10:55:29 -07:00
snipe
e721665fd8 Merge remote-tracking branch 'origin/develop' 2022-10-12 10:53:42 -07:00
snipe
cd43fc50fb Merge pull request #11960 from snipe/fixes/better_validation_for_ldap_filter
Sets nullable attribute on validation
2022-10-12 10:53:08 -07:00
snipe
06803092c5 Merge pull request #11952 from snipe/features/clearer_activated_helptext
Added clearer LDAP activated helptext
2022-10-12 10:52:56 -07:00
snipe
0312ecf09d Sets nullable attribute on validation
Signed-off-by: snipe <snipe@snipe.net>
2022-10-12 10:30:47 -07:00
snipe
0ed50f4e58 Merge remote-tracking branch 'origin/develop' 2022-10-12 10:22:48 -07:00
snipe
3f105cd3b2 Merge pull request #11959 from inietov/fixes/depreciation_date
Fixed Depreciation date diff readable precision
2022-10-12 10:21:37 -07:00
Ivan Nieto Vivanco
ab0c5bcd9d Add precision parameter to the diffForHumans() Carbon function to report 2022-10-12 12:16:13 -05:00
snipe
5ba01728d9 More text tweaking
Signed-off-by: snipe <snipe@snipe.net>
2022-10-11 12:51:25 -07:00
snipe
ae0eb378e4 Additional clarification
Signed-off-by: snipe <snipe@snipe.net>
2022-10-11 12:43:54 -07:00
snipe
ad8a2387f0 Updated help text to be more clear
Signed-off-by: snipe <snipe@snipe.net>
2022-10-11 12:38:37 -07:00
Godfrey M
4fa01350c3 adds shortcuts for listing, creating, and saving 2022-10-11 12:00:15 -07:00
Phan Nguyen
d3161fad02 Remove required mark
Because it actually not required by model.
2022-10-11 15:49:56 +07:00
dependabot[bot]
36eb51b52f Bump actions/checkout from 2 to 3.1.0
Bumps [actions/checkout](https://github.com/actions/checkout) from 2 to 3.1.0.
- [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/v2...v3.1.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-10 08:36:34 +00:00
Phan Nguyen
8ff109e9da Correct comparison logic
Comparison operator should be greater than or equal
2022-10-08 12:54:15 +07:00
snipe
15da3b831d Merge pull request #11937 from Godmartinz/gh11868_sidebar_unclickable
Fixes the margin top adjustment for desktop
2022-10-06 10:43:27 -07:00
Godfrey M
0c6441ebed removes the margin top adjustment for desktop 2022-10-06 10:35:28 -07:00
snipe
fbfc9d123c Merge remote-tracking branch 'origin/develop' 2022-10-06 09:26:07 -07:00
snipe
cd942196cc Merge pull request #11933 from inietov/fixes/500_creating_new_user_undefined_variable_item
Fixed Error 500 undefined variable item creating a new user.
2022-10-06 09:07:18 -07:00
Ivan Nieto Vivanco
f1edbc9810 Send item variable that the datepicker needs 2022-10-06 09:15:00 -05:00
Ikko Ashimine
66e64cb136 Fix typo in Dockerfile.fpm-alpine
enviroment -> environment
2022-10-06 11:53:13 +09:00
snipe
1ef3eb94db Merge remote-tracking branch 'origin/develop' 2022-10-05 17:55:33 -07:00
snipe
25e4b7d59d Merge pull request #11927 from uberbrady/use_improved_scim
Use the new scim-trace feature from our fork of laravel-scim-server lib
2022-10-05 17:53:20 -07:00
Brady Wetherington
9605dec22a Use the new scim-trace feature from our fork of laravel-scim-server lib 2022-10-05 17:43:59 -07:00
snipe
ca937667b4 Indented divs per @uberbrady
Signed-off-by: snipe <snipe@snipe.net>
2022-10-05 17:21:39 -07:00
snipe
e9c61903f1 Merge pull request #11926 from snipe/features/add_start_and_term_dates_to_users
Added start and end dates to users
2022-10-05 17:20:37 -07:00
snipe
14b7319b63 Added start/end to sortable columns
Signed-off-by: snipe <snipe@snipe.net>
2022-10-05 17:07:07 -07:00
snipe
9d641573b5 Make the APU return null instead of blank
Signed-off-by: snipe <snipe@snipe.net>
2022-10-05 17:01:04 -07:00
snipe
3605aa8f5a Added clear button to generic datepicker and made it wider
Signed-off-by: snipe <snipe@snipe.net>
2022-10-05 16:59:06 -07:00
snipe
0817308822 Added start/end to edit/view screens
Signed-off-by: snipe <snipe@snipe.net>
2022-10-05 16:58:49 -07:00
snipe
bdfac1a345 Added start/end to the users API
Signed-off-by: snipe <snipe@snipe.net>
2022-10-05 16:58:37 -07:00
snipe
f7a9be92ca Store data for start and end
Signed-off-by: snipe <snipe@snipe.net>
2022-10-05 16:58:26 -07:00
snipe
56ba8a7e24 Added API select fields and filters
Signed-off-by: snipe <snipe@snipe.net>
2022-10-05 16:58:16 -07:00
snipe
cf62761d18 Added date casting and fillable to models
Signed-off-by: snipe <snipe@snipe.net>
2022-10-05 16:57:59 -07:00
snipe
d23e178c62 Adde language strings
Signed-off-by: snipe <snipe@snipe.net>
2022-10-05 16:56:10 -07:00
snipe
7353ecd388 Added start_date and end_date migration to users table
Signed-off-by: snipe <snipe@snipe.net>
2022-10-05 16:55:59 -07:00
snipe
18663c2599 Merge pull request #11925 from inietov/fixes/checkbox_customfields_comma_issues
Fixed #11710 - Validation of checkbox data with multiple values
2022-10-05 16:48:32 -07:00
Ivan Nieto Vivanco
5b8e0b3af1 Use a regex (gulp) to admit ',' (comma) and ', '(comma plus space) as customfields checkbox value delimiter 2022-10-05 18:40:07 -05:00
snipe
dab83091d2 Merge remote-tracking branch 'origin/develop' 2022-10-05 12:12:27 -07:00
snipe
4c0be7ec98 Merge pull request #11924 from snipe/features/autoglossonym_locales
Added autoglossonyms for locales and translations for countries
2022-10-05 12:09:29 -07:00
snipe
018f71a157 Switched to translations for better autoglossonym support
Signed-off-by: snipe <snipe@snipe.net>
2022-10-05 11:46:42 -07:00
snipe
9f03f0f6f6 Updated link
Signed-off-by: snipe <snipe@snipe.net>
2022-10-04 23:39:47 -07:00
snipe
da40c0ad48 Dev assets
Signed-off-by: snipe <snipe@snipe.net>
2022-10-04 18:09:18 -07:00
snipe
c70c8ce856 Merge pull request #11916 from Godmartinz/gh11868_sidebar_unclickable
fixes mobile views and clickability of sidebar menu
2022-10-04 18:07:02 -07:00
snipe
fe49ac79d1 Updated all contributors
Signed-off-by: snipe <snipe@snipe.net>
2022-10-04 18:06:09 -07:00
snipe
687a764fc1 Dev to master in version.php
Signed-off-by: snipe <snipe@snipe.net>
2022-10-04 17:53:16 -07:00
snipe
81be84568e Bumped version
Signed-off-by: snipe <snipe@snipe.net>
2022-10-04 17:52:24 -07:00
snipe
61fa0bda4d Merge pull request #11917 from snipe/updates/updated_language_strings
Updated lnaguage strings
2022-10-04 17:49:27 -07:00
snipe
81d2a3acda Updated lnaguage strings
Signed-off-by: snipe <snipe@snipe.net>
2022-10-04 17:48:43 -07:00
snipe
931d81d825 Merge pull request #11908 from snipe/features/nicer_view_assets_ui_for_regular_users
Overhaul of UI for unprivileged users
2022-10-04 16:41:44 -07:00
snipe
bcebc1e33b Stylistic refactoring
Signed-off-by: snipe <snipe@snipe.net>
2022-10-04 16:37:33 -07:00
snipe
ba0483b33e Phrasing!
Signed-off-by: snipe <snipe@snipe.net>
2022-10-04 16:21:10 -07:00
snipe
97b9f96030 Added nag alert for unaccepted assets
Signed-off-by: snipe <snipe@snipe.net>
2022-10-04 16:16:21 -07:00
snipe
891b5b2882 Added routes, language
Signed-off-by: snipe <snipe@snipe.net>
2022-10-04 15:45:25 -07:00
Godfrey M
e21660ae05 off by a pixel 2022-10-04 12:11:37 -07:00
Godfrey M
53392d6069 fixes mobile views and clickability of sidebar menu 2022-10-04 12:01:13 -07:00
snipe
3469e49470 First UI overhaul
Signed-off-by: snipe <snipe@snipe.net>
2022-10-03 21:28:22 -07:00
snipe
e9224f094e Merge pull request #11906 from inietov/fixes/server_error_downloading_unaccepted_assets
Fixed error 500 when downloading asset acceptance report. [sc-19555]
2022-10-03 16:40:28 -07:00
Ivan Nieto Vivanco
25c10c3819 Filter non-asset items from download unaccepted assets report 2022-10-03 18:12:30 -05:00
snipe
b9419c7454 Merge pull request #11901 from snipe/security/escape_formats_in_csv
Use `EscapeFormula()` in CSV export
2022-09-30 11:59:11 -07:00
snipe
b07c4caa37 Extra whitespace
Signed-off-by: snipe <snipe@snipe.net>
2022-09-30 11:47:27 -07:00
snipe
aa52bc6c6a Added Vautia
Signed-off-by: snipe <snipe@snipe.net>
2022-09-30 11:47:20 -07:00
snipe
5a7e35c0e8 Made a conditional escape according to .env
Signed-off-by: snipe <snipe@snipe.net>
2022-09-30 09:48:43 -07:00
snipe
bae200edd7 Use EscapeFormula() in CSV export
Signed-off-by: snipe <snipe@snipe.net>
2022-09-30 09:29:17 -07:00
snipe
2fd197c2db Merge pull request #11896 from snipe/fixes/500_on_depreciation
Fixed depreciation API call
2022-09-29 17:09:39 -07:00
snipe
36484d50ef Fixed depreciation API call
Signed-off-by: snipe <snipe@snipe.net>
2022-09-29 17:07:42 -07:00
snipe
2b7c8cf82b Merge pull request #11895 from uberbrady/switch_dashboard_piechart_to_percent
Modified dashboard tooltips to add percentage as well as count
2022-09-29 14:11:16 -07:00
Brady Wetherington
0424308863 Modified dashboard tooltips to add percentage as well as count 2022-09-29 13:46:56 -07:00
snipe
78580136f6 Merge pull request #11894 from uberbrady/improve_piechart_labels_legends
Added counts to Dashboard Pie Chart legends and tooltips
2022-09-29 13:27:28 -07:00
Brady Wetherington
420c216973 Added counts to Dashboard Pie Chart legends and tooltips 2022-09-29 13:20:58 -07:00
snipe
9c6fa18454 Merge pull request #11893 from snipe/features/switch_dash_pie_to_status_type
Fixed #11521 - Add option to switch to using status meta from status label name
2022-09-29 13:02:28 -07:00
snipe
70c766e8b3 Added setting to choose dashboard type
Signed-off-by: snipe <snipe@snipe.net>
2022-09-29 04:16:46 -07:00
snipe
0b2ce7be07 Fixed #11521 - switch to using status meta from status label name
Signed-off-by: snipe <snipe@snipe.net>
2022-09-29 03:48:58 -07:00
snipe
3d48dd19cb Merge pull request #11890 from snipe/fixes/statuslabels_assetlist
Fixed #11889 - API route for status labels asset listing
2022-09-29 00:51:25 -07:00
snipe
08bab4f101 Fixed #11889 - API route for status labels asset listing
Signed-off-by: snipe <snipe@snipe.net>
2022-09-29 00:50:07 -07:00
snipe
95b49f8deb Merge pull request #11886 from sunflowerbofh/tmp-replace-patchwork-utf8
Tmp replace patchwork utf8
2022-09-28 10:32:07 -07:00
Katharina Drexel
4f5d536e32 Fixed: #11871 Replacing (deprecated) patchwork/utf8 by polyfill/mbstring. 2022-09-28 14:52:02 +02:00
snipe
9dbc5070f8 Remove phplint (for now)
Signed-off-by: snipe <snipe@snipe.net>
2022-09-27 16:47:09 -07:00
snipe
055a2f827f Merge pull request #11872 from sunflowerbofh/tmp-replace-patchwork-utf8
Fixed #11871 Replacing (deprecated) patchwork/utf8 by polyfill/mbstring.
2022-09-27 16:46:12 -07:00
snipe
8d3fe423e1 Merge pull request #11671 from chartjes/ch-fix-tests
Fixed unit test suite that was not running, added working browser test
2022-09-27 16:20:56 -07:00
snipe
1377725a97 Dev assets
Signed-off-by: snipe <snipe@snipe.net>
2022-09-27 14:53:47 -07:00
snipe
58ccfe9226 Updated prod assets
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	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
2022-09-27 14:51:19 -07:00
snipe
05ac9f4a68 Updated dev assets
Signed-off-by: snipe <snipe@snipe.net>
2022-09-27 14:47:54 -07:00
snipe
0889cd61cf Updated skins
Signed-off-by: snipe <snipe@snipe.net>
2022-09-27 14:47:09 -07:00
snipe
8168ca4074 Merge pull request #11853 from Godmartinz/ldap_test_results_color
Fixes the color choice for the ldap_test_results
2022-09-27 14:46:46 -07:00
snipe
de399a9f8f Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	public/css/dist/all.css
#	public/js/build/app.js
#	public/js/dist/all.js
#	public/mix-manifest.json
2022-09-27 14:46:30 -07:00
snipe
af150f0192 Add @BasO12 as a contributor 2022-09-27 14:44:32 -07:00
snipe
c194c8a0c8 Merge pull request #11764 from BasO12/master
Added notes to audit mail notification
2022-09-27 14:43:50 -07:00
snipe
a7b83fc531 Merge pull request #11854 from inietov/fixes/location_issue_during_import
Fixed #11847 404 error during Import if a checkout type of location is specified and no checkout location is passed
2022-09-27 14:34:26 -07:00
snipe
ef22da622d Merge pull request #11870 from snipe/dependabot/github_actions/codacy/codacy-analysis-cli-action-4.2.0
Bump codacy/codacy-analysis-cli-action from 4.1.0 to 4.2.0
2022-09-27 14:33:53 -07:00
dependabot[bot]
8443796cbe Bump codacy/codacy-analysis-cli-action from 4.1.0 to 4.2.0
Bumps [codacy/codacy-analysis-cli-action](https://github.com/codacy/codacy-analysis-cli-action) from 4.1.0 to 4.2.0.
- [Release notes](https://github.com/codacy/codacy-analysis-cli-action/releases)
- [Commits](https://github.com/codacy/codacy-analysis-cli-action/compare/v4.1.0...v4.2.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-09-27 21:33:19 +00:00
snipe
ac996a771c Merge pull request #11882 from snipe/security/upgraded_fontawesome
Upgraded fontawesome
2022-09-27 14:27:22 -07:00
snipe
942eaac2ee Upgraded fontawesome
Signed-off-by: snipe <snipe@snipe.net>
2022-09-27 14:25:44 -07:00
snipe
ada2a2cd43 Merge pull request #11878 from inietov/fixes/asset_importer_duplicate_fields
Delete duplicate fields from the importer dropdown menu [sc-19547]
2022-09-27 14:21:30 -07:00
Ivan Nieto Vivanco
06ba9356ca Delete another set of duplicates 2022-09-26 18:57:35 -05:00
Ivan Nieto Vivanco
e034f7b674 Delete another duplicate that somehow has survived 2022-09-26 18:56:24 -05:00
Ivan Nieto Vivanco
4d14243f57 Delete duplicate fields from the importer dropdown menu 2022-09-26 18:51:13 -05:00
snipe
88a371082d Merge remote-tracking branch 'origin/develop' 2022-09-26 16:29:21 -07:00
snipe
ee7e26ae8d Merge pull request #11877 from snipe/features/use_built_in_clear_on_datepicker
Use BS datepicker’s built in clear button
2022-09-26 16:23:27 -07:00
snipe
9d93c72534 Use BS datepicker’s built in clear button
Signed-off-by: snipe <snipe@snipe.net>
2022-09-26 14:34:35 -07:00
snipe
44b72e0f5f Merge remote-tracking branch 'origin/develop' 2022-09-26 13:49:48 -07:00
snipe
d91d226652 Merge pull request #11857 from inietov/fixes/throw_exception_instead_of_redirect_when_no_available_licenseseats
Fixed #11827 Throw exception when there are no available seats for checkout.
2022-09-26 13:43:57 -07:00
snipe
091ef62cbe Merge pull request #11856 from inietov/fixes/purchase_date_not_nullable
Fixed Purchase date "readonly" value makes purchase date unable to be nulled in update form [sc-19540]
2022-09-26 13:38:24 -07:00
Katharina Drexel
8316a4eb92 Fixed: #11871 Replacing (deprecated) patchwork/utf8 by polyfill/mbstring. 2022-09-26 12:06:06 +02:00
snipe
b4518677bd Merge pull request #11762 from geo-chen/master
correcting default mysql port from 3309 to 3306
2022-09-22 15:12:11 -07:00
Ivan Nieto Vivanco
23cf556a8b Adds cursor:pointer to indicate a clickable link 2022-09-20 22:24:52 -05:00
Ivan Nieto Vivanco
c0f83a7927 Delete not necessary conditional 2022-09-20 19:02:01 -05:00
Ivan Nieto Vivanco
5a1062f0f4 Delete debugging symbols (just kidding, it's just a dd() function) 2022-09-20 18:58:31 -05:00
Ivan Nieto Vivanco
c32676596c Redirect correctly if not enough license seats exists to be checkout 2022-09-20 18:55:53 -05:00
Ivan Nieto Vivanco
f75917d34d Add a link used to clear the purchase date input 2022-09-20 17:53:55 -05:00
Godfrey M
c55f2d5417 corrects color for query and results of ldap sync test 2022-09-20 10:35:55 -07:00
Ivan Nieto Vivanco
e267f5491a Adds a check for empty location values on import 2022-09-19 19:05:48 -05:00
Godfrey M
571ce5b741 corrects the color choice for the ldap_test_results 2022-09-19 11:59:02 -07:00
snipe
733b0750a2 Merge remote-tracking branch 'origin/develop' 2022-09-16 14:20:25 -07:00
snipe
9369165007 Merge pull request #11842 from snipe/security/license_file_access
Check for `licenses.files` permissions
2022-09-16 14:19:37 -07:00
snipe
f75d348dc0 Fixed license policy method
Signed-off-by: snipe <snipe@snipe.net>
2022-09-16 14:06:46 -07:00
snipe
dcab1381e7 Check for licenses.files permissions
Signed-off-by: snipe <snipe@snipe.net>
2022-09-16 14:00:27 -07:00
snipe
0924d2144b 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
2022-09-15 21:47:14 -07:00
snipe
9cae4f1d1b Merge pull request #11838 from snipe/features/larger_checkboxes_in_lists
Larger checkbox in lists
2022-09-15 21:44:42 -07:00
snipe
ca70988879 Larger checkbox in lists
Signed-off-by: snipe <snipe@snipe.net>
2022-09-15 21:42:16 -07:00
snipe
421c9baecc # Conflicts:
Signed-off-by: snipe <snipe@snipe.net>
#	public/css/dist/all.css
#	public/css/dist/bootstrap-table.css
#	public/js/dist/bootstrap-table.js
#	public/mix-manifest.json
2022-09-15 20:11:07 -07:00
snipe
5c9e84f663 Bumped hash
Signed-off-by: snipe <snipe@snipe.net>
2022-09-15 20:09:00 -07:00
snipe
fbb5f1445a Merge pull request #11837 from snipe/fixes/disappearing_checkboxes
Downgraded BS Tables
2022-09-15 20:06:42 -07:00
snipe
07e0fec1de Downgraded BS Tables
Signed-off-by: snipe <snipe@snipe.net>
2022-09-15 20:05:29 -07:00
snipe
c6cbf3712e Merge remote-tracking branch 'origin/develop' 2022-09-15 16:22:47 -07:00
snipe
0f777b3168 Merge pull request #11836 from snipe/fixes/500_if_image_is_missing
Fixed 500 error if uploaded file is missing from asset view
2022-09-15 16:21:13 -07:00
snipe
62ad3fad1c Remove DL button if file doesn’t exist
Signed-off-by: snipe <snipe@snipe.net>
2022-09-15 16:11:27 -07:00
snipe
eb1e287c15 Better handle missing files
Signed-off-by: snipe <snipe@snipe.net>
2022-09-15 16:08:13 -07:00
snipe
3eab44f748 Merge pull request #11835 from snipe/fixes/depreciation_when_no_purchase_date
Fixes 500 in depreciation on asset view when no purchase date
2022-09-15 15:52:58 -07:00
snipe
1885e73704 Ignore warning icon if no purchase date
Signed-off-by: snipe <snipe@snipe.net>
2022-09-15 15:42:47 -07:00
snipe
24910433a1 Fixed 500 when depreciation is set but no purchase_date
Signed-off-by: snipe <snipe@snipe.net>
2022-09-15 15:39:47 -07:00
Brady Wetherington
1899e4d1e8 try/catch wrap notifications on checkin/checkout 2022-09-15 13:18:42 -07:00
snipe
481eb2c7f0 Merge remote-tracking branch 'origin/develop' 2022-09-15 11:40:33 -07:00
snipe
51d7f2b97b Merge pull request #11830 from inietov/fixes/default_values_for_checkboxes_unaccessible
Fixed #9801 #11199 Default Values for Checkbox Field Types Unaccessible
2022-09-15 11:28:15 -07:00
Ivan Nieto Vivanco
9b2eda2d70 Save and show the default values properly on custom fields of type checkbox 2022-09-15 11:52:49 -05:00
Ivan Nieto Vivanco
41b75704e3 Removes format when changing to custom fields elements that doesn't need it 2022-09-15 11:21:02 -05:00
Ivan Nieto Vivanco
20220764bb Add possible values for custom fields of type checkbox 2022-09-15 11:18:54 -05:00
snipe
abd2349604 Add @rnelsonee as a contributor 2022-09-14 20:08:39 -07:00
snipe
ac4f91918e Merge pull request #11771 from rnelsonee/PAT_test
Fixed #11769: PAT Test hardcoded text
2022-09-14 20:01:18 -07:00
snipe
28f0b72bcd Merge remote-tracking branch 'origin/develop' 2022-09-14 19:56:16 -07:00
snipe
ad7bc6f38a Merge pull request #11825 from snipe/features/added_applecare_lookup_link
Added Applecare lookup link if manufacturer is apple
2022-09-14 19:54:47 -07:00
snipe
72feaee6c0 Added Applecare lookup link if manufacturer is apple
Signed-off-by: snipe <snipe@snipe.net>
2022-09-14 19:43:48 -07:00
snipe
4ac3650d64 Merge remote-tracking branch 'origin/develop' 2022-09-14 18:21:40 -07:00
snipe
3877770160 Merge pull request #11824 from snipe/fixes/removed_assetlog_from_custom_report
Fixed custom asset report timeout - removed assetlog
2022-09-14 18:20:14 -07:00
snipe
3192a68b06 Pulled assetlog from custom report controller
Signed-off-by: snipe <snipe@snipe.net>
2022-09-14 18:17:52 -07:00
snipe
284b4d869f Merge pull request #11823 from Godmartinz/gh11822_depreciation_calc_off
Fixes depreciation calculations off
2022-09-14 17:39:59 -07:00
Godfrey M
6b6a079440 fixes current value and monthly depreciation on reports and calculations 2022-09-14 17:01:18 -07:00
Godfrey M
a0624fe179 reworks the depreciation formula, includes months passed instead of months remaining 2022-09-14 16:00:21 -07:00
snipe
d598f75721 Merge pull request #11811 from inietov/fixes/min_qty_not_importing_consumables
Fixed Mini quantity field values are not importing into Snipe-IT
2022-09-14 12:12:52 -07:00
Godfrey M
9b448227f7 tinkering to no avail 2022-09-13 11:40:10 -07:00
Ivan Nieto Vivanco
d51eca20f0 Add min_amt field in Consumables and Accessories imports 2022-09-12 18:11:48 -05:00
snipe
9b5790b7e6 Merge pull request #11072 from snipe/fixes/support_apache_24
YOLO
2022-09-12 14:26:43 -07:00
Godfrey M
28bc97f29f one line away from this being over with 2022-09-12 11:40:16 -07:00
snipe
a8a00f0a79 Updated prod JS assets
Signed-off-by: snipe <snipe@snipe.net>
2022-09-12 11:08:29 -07:00
snipe
cbd16174d8 Merge pull request #11810 from snipe/maintenance/updated_dev_assets
Updated compiled assets
2022-09-12 10:55:40 -07:00
snipe
448aefac28 Updated compiled assets
Signed-off-by: snipe <snipe@snipe.net>
2022-09-12 10:54:54 -07:00
snipe
b23cd6d4f0 Merge pull request #11808 from snipe/snyk-upgrade-390057161cf95c21d9a4b53f57207321
[Snyk] Upgrade bootstrap-table from 1.20.2 to 1.21.0
2022-09-11 16:56:22 -07:00
snyk-bot
b0ea1a31dc fix: upgrade bootstrap-table from 1.20.2 to 1.21.0
Snyk has created this PR to upgrade bootstrap-table from 1.20.2 to 1.21.0.

See this package in npm:
https://www.npmjs.com/package/bootstrap-table

See this project in Snyk:
https://app.snyk.io/org/snipe/project/3d53e1dd-b8bf-46b5-ba61-18ce26933166?utm_source=github&utm_medium=referral&page=upgrade-pr
2022-09-11 23:55:26 +00:00
snipe
11a2f96b4f Merge pull request #11806 from snipe/snyk-upgrade-390057161cf95c21d9a4b53f57207321
[Snyk] Upgrade bootstrap-table from 1.20.2 to 1.21.0
2022-09-11 01:30:34 -07:00
snyk-bot
7361977cdc fix: upgrade bootstrap-table from 1.20.2 to 1.21.0
Snyk has created this PR to upgrade bootstrap-table from 1.20.2 to 1.21.0.

See this package in npm:
https://www.npmjs.com/package/bootstrap-table

See this project in Snyk:
https://app.snyk.io/org/snipe/project/3d53e1dd-b8bf-46b5-ba61-18ce26933166?utm_source=github&utm_medium=referral&page=upgrade-pr
2022-09-10 23:32:02 +00:00
snipe
659703bd7d Merge pull request #11790 from inietov/fixes/double_login_issue_when_switching_users
Fixed Double login when switching users
2022-09-06 17:03:21 -07:00
Ivan Nieto Vivanco
3aff97ace1 Remove the previous user hashed password 2022-09-06 18:43:35 -05:00
Rick Nelson
6e82de2f47 Fixed #11769: PAT Test hardcoded text 2022-09-01 11:21:02 -04:00
snipe
ae505ef44d Literally have no idea how this ever worked
Signed-off-by: snipe <snipe@snipe.net>
2022-08-31 19:20:35 -07:00
snipe
e86e96e159 Merge pull request #11765 from snipe/fixes/colspan_for_delete_checkboxes
Increased colspan for checkboxes
2022-08-31 13:35:21 -07:00
snipe
93428e1ed4 Increased colspan for checkboxes
Signed-off-by: snipe <snipe@snipe.net>
2022-08-31 13:34:27 -07:00
Godfrey M
193b31e427 select options working, testing sync then done 2022-08-31 12:58:33 -07:00
Godfrey M
70ac8af9c4 . 2022-08-31 09:53:20 -07:00
BasO12
61e1650542 Add files via upload 2022-08-31 13:08:09 +02:00
BasO12
ab54ac9408 Add files via upload 2022-08-31 13:07:05 +02:00
snipe
dcbd407698 Merge pull request #11661 from inietov/fixes/notifications_asset_acceptance
Send notifications when Acceptance Assets actions occur [sc-9917]
2022-08-30 12:14:58 -07:00
geo-chen
4e7fea3468 correcting default mysql port from 3309 to 3306
installation breaks using default config and manual edits to correct the port is currently required
2022-08-30 20:40:49 +08:00
geo-chen
3ef25c3a4d correcting default mysql port from 3309 to 3306
installation breaks using default config and manual edits to correct the port is currently required
2022-08-30 20:40:35 +08:00
geo-chen
22596f4bb8 correcting default mysql port from 3309 to 3306
installation breaks using default config and manual edits to correct the port is currently required
2022-08-30 20:40:19 +08:00
geo-chen
8fdca7f42b correcting default mysql port from 3309 to 3306
installation breaks using default config and manual edits to correct the port is currently required
2022-08-30 20:40:04 +08:00
geo-chen
1f04cfdb44 correcting default mysql port from 3309 to 3306
installation breaks using default config and manual edits to correct the port is currently required
2022-08-30 20:39:50 +08:00
geo-chen
04c130e596 correcting default mysql port from 3309 to 3306
installation breaks using default config and manual edits to correct the port is currently required
2022-08-30 20:39:34 +08:00
snipe
7fa9214beb Merge pull request #11489 from Godmartinz/bug/sc-19333/expiring-assets-report-email-content-ordering
Fixed the order expiring assets are listed in notifications
2022-08-29 12:37:01 -07:00
Godfrey M
ea63049b4b removed redundancy with raw query 2022-08-29 12:33:51 -07:00
Godfrey M
0c362e8b57 gets the groups selector to appear but options are blank 2022-08-29 12:09:56 -07:00
snipe
e94b5ac435 Merge pull request #11758 from snipe/security/xss_on_dashboard_note
Fixed possible XSS on dashboard note
2022-08-29 11:50:48 -07:00
snipe
9cf5f30c77 Set safeMode to true and use helper for all parsedown
Signed-off-by: snipe <snipe@snipe.net>
2022-08-29 11:26:47 -07:00
snipe
e8f2e50ada Add @dsferruzza as a contributor 2022-08-29 10:10:13 -07:00
snipe
3527902ba3 Merge pull request #11752 from dsferruzza/fixes/s3-file-size
Fixed #11742: display correct file sizes when using S3(-like) storage
2022-08-29 10:08:10 -07:00
David Sferruzza
f60ea9581d Fixed #11742: display correct file sizes when using S3(-like) storage 2022-08-28 12:07:14 +02:00
Chris Hartjes
74fe3dc733 Updated testing-related documentation 2022-08-26 13:55:12 -04:00
snipe
96ec96ff7f Merge pull request #11737 from inietov/fixes/validation_error_still_without_required_rule
Fixed Validation error when empty default customfield values
2022-08-25 17:54:04 -07:00
snipe
4fd1827576 Merge pull request #11738 from inietov/fixes/problem_checkin_and_delete_users
Fixed #11695 Problem with checkin all and delete user.
2022-08-25 17:52:51 -07:00
Ivan Nieto Vivanco
0d4e9c183b Save correct id in action log if the bulk-checkin is of type license 2022-08-25 19:16:48 -05:00
Ivan Nieto Vivanco
1ff2d15c4a Replace 'required' rule with 'nullable' to allow blank default customfields values 2022-08-25 18:16:50 -05:00
Godfrey M
fc6fefdb4e adds migration, variables, checkbox,working on groups 2022-08-25 15:19:38 -07:00
snipe
482a7b2a3a Merge pull request #11700 from inietov/fixes/unaccepted_assets_reminder_500
Fixed 500 error when sending unaccepted assets reminder
2022-08-25 14:00:00 -07:00
snipe
6f0f6c8042 Don’t prevent deletion if user has consumables checked out
Signed-off-by: snipe <snipe@snipe.net>
2022-08-25 12:51:02 -07:00
snipe
4cc9b5a5a2 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	config/version.php
2022-08-25 12:34:38 -07:00
snipe
8720a58b51 Bumped version
Signed-off-by: snipe <snipe@snipe.net>
2022-08-25 12:34:02 -07:00
snipe
22710afee3 Merge remote-tracking branch 'origin/develop' 2022-08-25 12:28:06 -07:00
snipe
968f8fb554 Merge pull request #11735 from snipe/security/logout_other_devices
Fixed: Log user out of other devices when they change their password
2022-08-25 12:26:13 -07:00
snipe
6fde72a693 Log user out of other devices when they change their password
Signed-off-by: snipe <snipe@snipe.net>
2022-08-25 12:24:26 -07:00
snipe
afb7fa2e81 Merge remote-tracking branch 'origin/develop' 2022-08-24 18:12:26 -07:00
snipe
c9ef49ec65 Merge pull request #11731 from snipe/fixes/add_sig_column_to_user_history
Fixed #10593 - added signature column to user history
2022-08-24 18:08:41 -07:00
snipe
36ab794adc Added signature field to user history
Signed-off-by: snipe <snipe@snipe.net>
2022-08-24 18:05:43 -07:00
snipe
2ad9c39090 Merge pull request #11730 from inietov/fixes/importing_licenses_field_mismatch
Fixed #11679 Importing Licenses - Field Mismatch
2022-08-24 17:31:12 -07:00
Ivan Nieto Vivanco
c59fd7b8da Fix importer field mapping for command line 2022-08-24 19:20:23 -05:00
snipe
44e598b0dc Updated branch name in version
Signed-off-by: snipe <snipe@snipe.net>
2022-08-24 17:17:38 -07:00
snipe
ffd38292cf Merge pull request #11729 from uberbrady/improve_docker_assetmodels_restore
Fixed #11708 - pre-create private_storage directories for Docker restores
2022-08-24 17:16:21 -07:00
snipe
660c1429b2 Merge pull request #11728 from snipe/fixes/adds_style_to_readonly_date_fields
Added style to readonly date fields
2022-08-24 17:14:16 -07:00
Brady Wetherington
8ad5fb34d3 Fixed #11708 - pre-create private_storage directories for Docker restores 2022-08-24 17:11:21 -07:00
snipe
a5fd9ebbb1 Added style to readonly datetime picker field
Signed-off-by: snipe <snipe@snipe.net>
2022-08-24 17:10:15 -07:00
snipe
49d2aef831 Merge pull request #11726 from inietov/fixes/customfields_date_format_issue
Fixed #11709 Dates in custom fields not always stored in the correct format
2022-08-24 16:46:35 -07:00
snipe
74f5980af7 Merge pull request #11724 from inietov/fixes/remove_required_rule_for_default_custom_values
Fixed Validation error when creating custom fields' default values
2022-08-24 16:44:46 -07:00
snipe
1a47e1000d Merge pull request #11727 from snipe/security/updated_compiled_assets
Updated compiled assets
2022-08-24 16:43:08 -07:00
snipe
ab60fa08df Updated dev assets
Signed-off-by: snipe <snipe@snipe.net>
2022-08-24 16:38:11 -07:00
snipe
8a312f69a6 Bumped hash
Signed-off-by: snipe <snipe@snipe.net>
2022-08-24 16:37:22 -07:00
Ivan Nieto Vivanco
581cae94ab Add readonly property to datepickers 2022-08-24 18:21:54 -05:00
Ivan Nieto Vivanco
6e85c2e5cb Delete unused import 2022-08-24 16:30:25 -05:00
Ivan Nieto Vivanco
30d0125cbd Remove the rule 'required' for default values, if custom field is obligatory 2022-08-24 16:18:11 -05:00
snipe
e2dec5d5d7 Merge pull request #11723 from snipe/fixes/fail_with_error_when_uploaded_file_does_not_exist
Fixed crash on Asset View if file doesn’t exist on server
2022-08-24 13:50:26 -07:00
snipe
af34fc207c Suppress error output if file doesn’t exist on server
Signed-off-by: snipe <snipe@snipe.net>
2022-08-24 13:47:56 -07:00
snipe
cca531f8ca Add @sunflowerbofh as a contributor 2022-08-22 16:32:30 -07:00
snipe
45f17fea8a Merge pull request #11510 from sunflowerbofh/tmp-ldap
Fixed #11509 allow-ldap-anonymous-bind
2022-08-22 16:32:07 -07:00
snipe
3ac84eab58 Merge pull request #11651 from inietov/fixes/activity_report_search
Fixed Search in activity report for full name in relation
2022-08-22 16:23:50 -07:00
snipe
15af4ea56e Add @kylegordon as a contributor 2022-08-22 16:21:20 -07:00
snipe
d649c65508 Merge pull request #11669 from kylegordon/master
Declare DB_PORT in all .env files
2022-08-22 16:20:40 -07:00
snipe
0965ac9592 Merge pull request #11680 from snipe/snyk-upgrade-3dd3b8528a5a6c5104f99fc833e3820e
[Snyk] Upgrade @fortawesome/fontawesome-free from 6.1.1 to 6.1.2
2022-08-22 16:18:15 -07:00
snipe
bfadc69d73 Merge pull request #11681 from snipe/snyk-upgrade-ce70c2a6ece4c881ee4f6267e992332c
[Snyk] Upgrade webpack from 5.73.0 to 5.74.0
2022-08-22 16:17:53 -07:00
snipe
41be3f7208 Add @julian-piehl as a contributor 2022-08-22 16:17:24 -07:00
snipe
906a36dc1a Merge pull request #11703 from julian-piehl/fixes/wrong-trans-string
Fixed Translation String: wrong key at request canceled message
2022-08-22 16:16:10 -07:00
snipe
aba8449dc6 Merge pull request #11707 from wewhite/manager_name
Fixed #11706 Manager name
2022-08-22 16:15:52 -07:00
snipe
861283b874 Merge pull request #11712 from Godmartinz/gh11711Admin_options_disappear
Fixed #11711 clearfix missing on admin settings page  to prevent blanking divs
2022-08-22 16:15:06 -07:00
Godfrey M
2994c3613a adds clearfix to settings page 2022-08-22 10:46:15 -07:00
Warren White
ba7d6dde3f Fixed #11706: changes the display of managers username to First Last name 2022-08-19 10:17:25 -07:00
Warren White
4b9a91f55b Fixed #10565, #11086: correctly looks up Manager DN from AD Manager attribute and sets manager id 2022-08-19 09:09:03 -07:00
Peace
94bbf2bf2f fixed translation string for canceled requests 2022-08-19 13:59:01 +02:00
Ivan Nieto Vivanco
e5cc6ec972 Fixes error 500 if checkout_acceptances table have a created_at null column 2022-08-17 22:02:13 -05:00
snyk-bot
e97c526050 fix: upgrade webpack from 5.73.0 to 5.74.0
Snyk has created this PR to upgrade webpack from 5.73.0 to 5.74.0.

See this package in npm:
https://www.npmjs.com/package/webpack

See this project in Snyk:
https://app.snyk.io/org/snipe/project/3d53e1dd-b8bf-46b5-ba61-18ce26933166?utm_source=github&utm_medium=referral&page=upgrade-pr
2022-08-15 23:41:31 +00:00
snyk-bot
7b45328fcc fix: upgrade @fortawesome/fontawesome-free from 6.1.1 to 6.1.2
Snyk has created this PR to upgrade @fortawesome/fontawesome-free from 6.1.1 to 6.1.2.

See this package in npm:
https://www.npmjs.com/package/@fortawesome/fontawesome-free

See this project in Snyk:
https://app.snyk.io/org/snipe/project/3d53e1dd-b8bf-46b5-ba61-18ce26933166?utm_source=github&utm_medium=referral&page=upgrade-pr
2022-08-15 23:41:27 +00:00
snipe
40bc13a946 Merge pull request #11676 from snipe/fixes/added_category_to_model_info
Adds the category in the side info on Models > View
2022-08-14 14:03:09 -07:00
snipe
368bd5da3f Adds the category in the side info on Models > View
Signed-off-by: snipe <snipe@snipe.net>
2022-08-14 14:01:58 -07:00
snipe
1763bbfbd3 Merge pull request #11662 from octobunny/patch-1
Fixed #6899 Docker container's php configuration isn't congruent with snipe-it uploads setting size.
2022-08-14 13:46:38 -07:00
snipe
7b44afc43c Merge pull request #11666 from snipe/features/add_null_option_for_purchase_expected_dates
Added `null` option for `purchase_date` and `expected_checkin` dates
2022-08-14 13:43:03 -07:00
snipe
13b6c281df Merge pull request #11675 from snipe/revert-11663-fixes/user_cant_be_deleted_if_has_consumables
Revert "Prevent to delete a user if still has consumables associated to them"
2022-08-14 13:42:45 -07:00
snipe
5feea17f8d Revert "Prevent to delete a user if still has consumables associated to them" 2022-08-14 13:42:14 -07:00
snipe
60d1578a01 Merge pull request #11663 from inietov/fixes/user_cant_be_deleted_if_has_consumables
Prevent to delete a user if still has consumables associated to them
2022-08-14 13:41:09 -07:00
Chris Hartjes
07585809b3 Got unit and browser tests working, added documentation 2022-08-12 13:00:26 -04:00
Kyle Gordon
98a111796b Declare DB_PORT in all .env files 2022-08-12 15:07:02 +01:00
snipe
7b3be076b4 Make location field the same width
Signed-off-by: snipe <snipe@snipe.net>
2022-08-11 18:38:34 -07:00
snipe
2c68ec927a Use trans_choice for string
Signed-off-by: snipe <snipe@snipe.net>
2022-08-11 18:30:59 -07:00
snipe
a0ba33ed7c Added checkboxes
Signed-off-by: snipe <snipe@snipe.net>
2022-08-11 18:25:22 -07:00
snipe
70bb4cd746 Added translation
Signed-off-by: snipe <snipe@snipe.net>
2022-08-11 18:25:15 -07:00
snipe
91e824c5b0 Check for nullifying checkboxes
Signed-off-by: snipe <snipe@snipe.net>
2022-08-11 18:25:07 -07:00
snipe
491cdd4de6 Merge pull request #11664 from snipe/snyk-upgrade-bcc306620433a4ebeaaed8c3e4d4c9eb
[Snyk] Upgrade acorn from 8.7.1 to 8.8.0
2022-08-11 16:59:45 -07:00
snyk-bot
3454cdd2a0 fix: upgrade acorn from 8.7.1 to 8.8.0
Snyk has created this PR to upgrade acorn from 8.7.1 to 8.8.0.

See this package in npm:
https://www.npmjs.com/package/acorn

See this project in Snyk:
https://app.snyk.io/org/snipe/project/3d53e1dd-b8bf-46b5-ba61-18ce26933166?utm_source=github&utm_medium=referral&page=upgrade-pr
2022-08-11 23:58:21 +00:00
Ivan Nieto Vivanco
db53a00d3f Prevent to delete a user if still has consumables associated to them 2022-08-11 17:01:52 -05:00
octobunny
8324b94022 Change PHP post_max_size
Must change post_max_size in addition to upload_max_filesize to increase total upload size to greater than 8MB.
2022-08-11 17:07:46 -04:00
Ivan Nieto Vivanco
a33ca39237 Figure out declined notifications 2022-08-11 16:00:21 -05:00
Ivan Nieto Vivanco
98bcd82108 Add the mail recipient from configuration in the CheckoutAcceptance model 2022-08-11 15:33:18 -05:00
Ivan Nieto Vivanco
d2c486bb1e Create the mail template for the acceptance 2022-08-11 15:28:30 -05:00
snipe
8c579d693a Merge pull request #11660 from Godmartinz/departments_location_and_company_updates_with_null
Fixes Departments update/store  to allow company and/or location ids to be null
2022-08-11 13:04:45 -07:00
Godfrey M
814992eb7d allows company and location ids to be null 2022-08-11 12:47:40 -07:00
Ivan Nieto Vivanco
267997f0a6 Customize the notifications with the needed data 2022-08-11 14:01:11 -05:00
Ivan Nieto Vivanco
0172fe6403 Add Notifiable trait to the CheckoutAcceptance Model 2022-08-11 13:02:25 -05:00
Ivan Nieto Vivanco
509bbbc685 Create Notifications classes for accepted and declined and add some necesary lang strings 2022-08-11 13:01:21 -05:00
Ivan Nieto Vivanco
8cee5060af Remove unused DB statement 2022-08-10 19:16:04 -05:00
Ivan Nieto Vivanco
a7de97f060 Found a better place for the where condition 2022-08-10 19:13:28 -05:00
Ivan Nieto Vivanco
c1074000f9 Add a concat to search for full name when the relationship search in the users table 2022-08-10 18:27:28 -05:00
snipe
c7d9baad8e Merge remote-tracking branch 'origin/master' into develop 2022-08-10 16:11:29 -07:00
snipe
c77d763f05 Merge pull request #11650 from snipe/fixes/6877_add_notes_to_consumables
Fixed #6877 - Added notes to consumables, components on checkout
2022-08-10 16:11:08 -07:00
snipe
ef099aa644 Reverted notes to note since pivot
Signed-off-by: snipe <snipe@snipe.net>
2022-08-10 16:09:56 -07:00
snipe
acd666fdf5 Added notes to user consumables tab
Signed-off-by: snipe <snipe@snipe.net>
2022-08-10 15:34:07 -07:00
snipe
8de7e9a2ab Use route name in case the user biffs the checkout twice
Signed-off-by: snipe <snipe@snipe.net>
2022-08-10 15:17:52 -07:00
snipe
dd0260c3be Use old note on validation failure
Signed-off-by: snipe <snipe@snipe.net>
2022-08-10 15:15:29 -07:00
snipe
512348cc5a Added withInput()
Signed-off-by: snipe <snipe@snipe.net>
2022-08-10 15:15:09 -07:00
snipe
fb3d7bf82e Made button wider
Signed-off-by: snipe <snipe@snipe.net>
2022-08-10 15:07:58 -07:00
snipe
e3293151a2 Added note on checkout
Signed-off-by: snipe <snipe@snipe.net>
2022-08-10 15:04:59 -07:00
snipe
3ec77724d8 Added note pivot
Signed-off-by: snipe <snipe@snipe.net>
2022-08-10 15:04:34 -07:00
snipe
024a014298 Changed notes to note
Signed-off-by: snipe <snipe@snipe.net>
2022-08-10 15:04:19 -07:00
snipe
c1e5d03340 Added pivot for note
Signed-off-by: snipe <snipe@snipe.net>
2022-08-10 15:03:41 -07:00
snipe
fb2fe61daf Use a less stupid URL for this endpoint
Signed-off-by: snipe <snipe@snipe.net>
2022-08-10 15:03:26 -07:00
snipe
0d9eccb7eb Addeed note field
Signed-off-by: snipe <snipe@snipe.net>
2022-08-10 15:03:12 -07:00
snipe
f9956cc5df Added DB migration
Signed-off-by: snipe <snipe@snipe.net>
2022-08-10 14:54:33 -07:00
snipe
f7cceaedd5 Merge pull request #11649 from snipe/features/add_url_in_export
Fixed #8928 - add URL and ID to custom asset report
2022-08-10 13:58:22 -07:00
snipe
e7c47408a7 Derp
Signed-off-by: snipe <snipe@snipe.net>
2022-08-10 13:57:42 -07:00
snipe
637604dfaf Fixed #8928 - add URL and ID to custom asset report
Signed-off-by: snipe <snipe@snipe.net>
2022-08-10 13:51:47 -07:00
snipe
f66df4d468 Merge pull request #11648 from uberbrady/reimplement_active_flag
Fixed the active flag to be as it was in later v5 releases
2022-08-10 13:32:52 -07:00
Brady Wetherington
b6adfa294c Fixed the active flag to be as it was in later v5 releases
Originally implemented here:

https://github.com/snipe/snipe-it/pull/10610/files
2022-08-10 12:55:30 -07:00
snipe
f374f231d4 Added ERD link
Signed-off-by: snipe <snipe@snipe.net>
2022-08-10 11:37:17 -07:00
snipe
d4e60a46c1 Merge remote-tracking branch 'origin/develop' 2022-08-09 15:15:31 -07:00
snipe
a834ac6ec2 Merge pull request #11642 from Godmartinz/monthly_depreciation_calculation
Fixes Monthly depreciation calculation if EOL is blank
2022-08-09 15:14:57 -07:00
Godfrey M
92e6ea96b2 if eol is missing from asset model monthly depreciation will be recalculated 2022-08-09 15:05:15 -07:00
snipe
de449fd1c2 Merge pull request #11635 from exula/fix/missing_closing_div_in_general_admin_settings
Added a closing div tag around the mail text help block, this was cau…
2022-08-09 11:07:19 -07:00
Brad Coudriet
77a1fcb1fc There was actually a missing p tag too 2022-08-09 06:36:53 -04:00
Brad Coudriet
0cf0598936 Added a closing div tag around the mail text help block, this was causing labels further down the page to be formatted in correctly 2022-08-09 06:32:03 -04:00
snipe
80d91c0c51 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	config/version.php
2022-08-08 15:33:10 -07:00
snipe
c39bf7b7e6 Added German (Informal) to select list
Signed-off-by: snipe <snipe@snipe.net>
2022-08-08 15:30:58 -07:00
snipe
9db0b038a5 Updated translation strings
Signed-off-by: snipe <snipe@snipe.net>
2022-08-08 15:29:28 -07:00
snipe
4f4c4ed5be Bumped version
Signed-off-by: snipe <snipe@snipe.net>
2022-08-08 14:35:04 -07:00
snipe
51f7298720 Merge remote-tracking branch 'origin/develop' 2022-08-05 18:16:20 -07:00
snipe
bc4032c2cd Merge pull request #11617 from inietov/fixes/components_wrong_remaining_inventory
Fixed wrong calculation of assigned components
2022-08-05 18:05:21 -07:00
Ivan Nieto Vivanco
c055c91739 Change db query for an existing method 2022-08-04 09:20:20 -05:00
Ivan Nieto Vivanco
ea8f12579d Calculate the proper amount of assigned components 2022-08-04 07:58:25 -05:00
snipe
88db2d9e18 Merge remote-tracking branch 'origin/develop' 2022-08-03 17:57:07 -07:00
snipe
5f93d7b3be Merge pull request #11615 from inietov/fixes/autoincrement_in_importer
Fix auto incrementing in CSV importer [sc-19366]
2022-08-03 17:50:23 -07:00
snipe
1875ed55cc Merge pull request #11612 from snipe/fixes/improved_report_search
Added relations to report search
2022-08-03 17:49:59 -07:00
Ivan Nieto Vivanco
9f0ecba9b9 Add autoincrementing asset tags to the import if the CSV column is empty 2022-08-03 12:48:48 -05:00
snipe
9acfceba29 Added relations to report search
Signed-off-by: snipe <snipe@snipe.net>
2022-08-02 23:50:10 -07:00
snipe
92bf8b4436 Merge remote-tracking branch 'origin/develop' 2022-08-02 20:22:02 -07:00
snipe
b52c00d49b Merge pull request #11611 from snipe/fixes/added_configuration_change_to_maintenance_types
Added configuration change to maintenance types
2022-08-02 20:21:25 -07:00
snipe
20fcf7a1e9 Added configuration change to maintenance types
Signed-off-by: snipe <snipe@snipe.net>
2022-08-02 20:19:43 -07:00
snipe
095dd3ecf2 Added configuration, PAT test strings
Signed-off-by: snipe <snipe@snipe.net>
2022-08-02 20:19:28 -07:00
snipe
5a1b8bc4b6 Fixed icheck checkbox class
Signed-off-by: snipe <snipe@snipe.net>
2022-08-02 20:19:19 -07:00
snipe
eadb36cb26 Merge remote-tracking branch 'origin/develop' 2022-08-02 20:00:13 -07:00
snipe
6eac133caf Merge pull request #11610 from snipe/fixes/adds_deleted_at_to_custom_report_export
Added deleted at to custom report export
2022-08-02 19:59:39 -07:00
snipe
cc92d342ea Added deleted at value
Signed-off-by: snipe <snipe@snipe.net>
2022-08-02 19:58:37 -07:00
snipe
02caa13222 Removed debugging
Signed-off-by: snipe <snipe@snipe.net>
2022-08-02 19:58:30 -07:00
snipe
975b4dee2f Added deleted header
Signed-off-by: snipe <snipe@snipe.net>
2022-08-02 19:58:17 -07:00
snipe
65f0a3f535 Merge pull request #11609 from snipe/fixes/checkboxes_on_custom_report
Fixed labels on radio buttons in custom report
2022-08-02 19:54:14 -07:00
snipe
9ae7c66b77 Fixed indenting
Signed-off-by: snipe <snipe@snipe.net>
2022-08-02 19:50:21 -07:00
snipe
77ab4ac1b5 Fixed labels on radio buttons in custom report
Signed-off-by: snipe <snipe@snipe.net>
2022-08-02 19:48:41 -07:00
snipe
b0e66ae445 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	resources/views/locations/print.blade.php
2022-08-02 19:41:17 -07:00
snipe
5fe8db541e Merge pull request #11608 from snipe/features/add_time_diff_to_eol
Added time diff to EOL in asset view
2022-08-02 19:40:10 -07:00
snipe
87bed9b294 Fixed typo in code comments
Signed-off-by: snipe <snipe@snipe.net>
2022-08-02 19:24:46 -07:00
snipe
da1c1dbdd9 Added warning icon
Signed-off-by: snipe <snipe@snipe.net>
2022-08-02 19:19:08 -07:00
snipe
56b6904564 Added time difference
Signed-off-by: snipe <snipe@snipe.net>
2022-08-02 19:13:02 -07:00
snipe
10e64deafe Updated method name in mail
Signed-off-by: snipe <snipe@snipe.net>
2022-08-02 19:12:44 -07:00
snipe
ac72b69ece Update method name
Signed-off-by: snipe <snipe@snipe.net>
2022-08-02 19:12:28 -07:00
snipe
8e18ce74b2 Update method name
Signed-off-by: snipe <snipe@snipe.net>
2022-08-02 19:12:18 -07:00
snipe
254ce72415 Add @vickyjaura183 as a contributor 2022-08-02 17:20:51 -07:00
snipe
1b657ee995 Merge pull request #11601 from vickyjaura183/bugfix/error_404_bulkcheckout
Error 404 fixed on submitting without mandatory field
2022-08-02 17:19:22 -07:00
snipe
71facb1850 Merge pull request #11596 from snipe/fixes/unique_undeleted_for_custom_fields
Use unique_undeleted instead of unique for custom fields
2022-08-02 17:16:12 -07:00
snipe
8d8c502546 Merge pull request #11605 from snipe/fixes/really_disable_consumable_checkout
Disallow checkout if qty = 0
2022-08-02 12:31:29 -07:00
snipe
0a9bd07f20 Disallow checkout if qty = 0
Signed-off-by: snipe <snipe@snipe.net>
2022-08-02 12:27:58 -07:00
snipe
688577c1ed Merge pull request #11604 from snipe/fixes/only_show_requested_if_requestable_perms
Hide requested assets if the user cannot see requestable items
2022-08-02 11:49:22 -07:00
snipe
8027039754 Hide requested assets if the user cannot see requestable items
Signed-off-by: snipe <snipe@snipe.net>
2022-08-02 11:48:45 -07:00
snipe
031b7998c9 Merge pull request #11603 from inietov/fixes/actions_on_licenses
Use apropiate string for license actions
2022-08-02 10:40:20 -07:00
Ivan Nieto Vivanco
13053b85ef Remove Actions button and pass the correct variable to the routes 2022-08-02 12:37:27 -05:00
snipe
e3b13143bf Merge pull request #11594 from Godmartinz/adds_deleted_asset_options_to_custom_reports
Adds options to include Deleted assets to custom asset reports
2022-08-02 10:33:57 -07:00
Godfrey M
e150ab58e9 reworded trans 2022-08-02 10:31:06 -07:00
Godfrey M
ff080a2d8f replace checkboxes with radiobuttons 2022-08-02 10:27:55 -07:00
Ivan Nieto Vivanco
a63d00bb5c Use apropiate string for license actions 2022-08-02 11:55:11 -05:00
vishalkumar183
96b40a5edd Error 404 fixed on sumitting witout mandtory field 2022-08-02 18:44:16 +05:30
Katharina Drexel
8596c54d6a Fixing query order (otherwise you run into app_key exception before anonymous ldap applied).
Signed-off-by: Katharina Drexel <katharina.drexel@bfh.ch>
2022-08-02 14:24:00 +02:00
snipe
e07532dd1b Applied master fix to develop
Signed-off-by: snipe <snipe@snipe.net>
2022-08-01 18:55:28 -07:00
snipe
04a467bdc7 One more
Signed-off-by: snipe <snipe@snipe.net>
2022-08-01 18:53:00 -07:00
snipe
06d60bb1d1 Applied date formatter PR to master
Signed-off-by: snipe <snipe@snipe.net>
2022-08-01 18:49:56 -07:00
snipe
9c6c01bab1 Merge pull request #11597 from snipe/fixes/missed_date_formatting_on_print
Fixed date format for Current Date output on location print assigned
2022-08-01 18:48:41 -07:00
snipe
4133ac6ef0 Applied date formatter to Current Date output on location print assigned
Signed-off-by: snipe <snipe@snipe.net>
2022-08-01 18:47:29 -07:00
snipe
4834c33861 Missed a named route
Signed-off-by: snipe <snipe@snipe.net>
2022-08-01 18:43:54 -07:00
snipe
904b5c2886 Merge pull request #11595 from snipe/fixes/fix_routes_for_optimize
Fixed routes for optimize
2022-08-01 17:55:34 -07:00
snipe
e79a819724 Fixed inconsistency in naming
Signed-off-by: snipe <snipe@snipe.net>
2022-08-01 17:45:39 -07:00
snipe
0fdbd410b6 Use unique_undeleted instead of unique for custom fields
Signed-off-by: snipe <snipe@snipe.net>
2022-08-01 17:10:39 -07:00
snipe
af7ccf3beb Handle logout route names
Signed-off-by: snipe <snipe@snipe.net>
2022-08-01 16:17:40 -07:00
snipe
3e48f436af Handled user route names
Signed-off-by: snipe <snipe@snipe.net>
2022-08-01 16:13:30 -07:00
snipe
5e488bd81f Handle components route names
Signed-off-by: snipe <snipe@snipe.net>
2022-08-01 16:10:39 -07:00
snipe
53ff28d2b0 Handle consumables route names
Signed-off-by: snipe <snipe@snipe.net>
2022-08-01 16:07:56 -07:00
snipe
4a4636bd03 Handle accessories route names
Signed-off-by: snipe <snipe@snipe.net>
2022-08-01 16:06:28 -07:00
snipe
744d0d299e Handle model route names
Signed-off-by: snipe <snipe@snipe.net>
2022-08-01 16:03:45 -07:00
snipe
b035003546 Handled hardware route names
Signed-off-by: snipe <snipe@snipe.net>
2022-08-01 15:59:54 -07:00
Godfrey M
842dafefec adds options to include Deleted assets to custom asset reports 2022-08-01 14:52:12 -07:00
snipe
375963f92d Merge remote-tracking branch 'origin/develop' 2022-08-01 14:08:16 -07:00
snipe
a51b446a10 Merge pull request #11578 from snipe/fixes/conditionally_add_nbsp
Switched to conditionally adding the nbsp; that the table needs for proper layout if cell is empty
2022-08-01 14:07:50 -07:00
snipe
371aba9912 Merge pull request #11593 from snipe/fixes/add_bulk_assets_to_company_view
Added bulk edit to company view
2022-08-01 14:07:14 -07:00
snipe
8b30992a11 Added bulk edit to company view
Signed-off-by: snipe <snipe@snipe.net>
2022-08-01 14:06:18 -07:00
snipe
33de45d8fb Swirtched to conditionally adding the nbsp; that the table needs for proper layout if cell is empty
Signed-off-by: snipe <snipe@snipe.net>
2022-07-29 00:57:20 -07:00
snipe
d7d0056b73 Merge remote-tracking branch 'origin/develop' 2022-07-27 15:10:38 -07:00
snipe
7d2fcef807 Merge pull request #11562 from uberbrady/clarify_logging
Fixed inconsistent `*_LOG_LEVEL` variables; set reasonable defaults
2022-07-25 20:02:37 -07:00
Brady Wetherington
1981b79557 Good catch! APP_LOG -> LOG_CHANNEL 2022-07-25 19:57:14 -07:00
Brady Wetherington
0c7d4a709a Cleaned up more logging options 2022-07-25 19:25:06 -07:00
snipe
6c8d226b21 Merge pull request #11561 from snipe/features/added_perl_module_link
Added link to SEDC / perl-www-snipe
2022-07-25 18:54:57 -07:00
snipe
211bbeda5b Added link to SEDC / perl-www-snipe
Signed-off-by: snipe <snipe@snipe.net>
2022-07-25 18:53:17 -07:00
Brady Wetherington
7057cb0104 Make all *_LOG_LEVEL vars consistent; set default to 'warning' 2022-07-25 18:44:37 -07:00
snipe
658edb64d6 Merge remote-tracking branch 'origin/develop' 2022-07-22 19:06:28 -07:00
snipe
dc06f14505 Merge pull request #11554 from snipe/security/upgrade_dompdf
Bumped packages
2022-07-22 18:21:51 -07:00
snipe
f446314ce6 Merge pull request #11547 from snipe/fixes/midnight_timestamp
Applies current time to checkin date
2022-07-22 17:58:45 -07:00
snipe
443b1df5e1 Bumped packages
Signed-off-by: snipe <snipe@snipe.net>
2022-07-22 17:55:19 -07:00
snipe
3c22e0d203 Merge remote-tracking branch 'origin/develop' 2022-07-22 17:28:43 -07:00
snipe
d636ad8e09 Merge pull request #11553 from snipe/security/upgrade_imagemin
Upgraded imagemin
2022-07-22 17:27:35 -07:00
snipe
adfdbf3d44 Upgraded imagemin
Signed-off-by: snipe <snipe@snipe.net>
2022-07-22 17:26:47 -07:00
snipe
8b03abde8d Production assets for dark skin fix
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	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
2022-07-22 15:39:46 -07:00
snipe
67320dc024 Merge pull request #11551 from snipe/fixes/dark_skin_dropdowns
Fixed #11549 - dark skin dropdown menu fixes
2022-07-22 15:38:02 -07:00
snipe
c5530104ff Fixed #11549 - dark skin dropdowbn menu fixes
Signed-off-by: snipe <snipe@snipe.net>
2022-07-22 15:36:51 -07:00
snipe
78097df7ff Aplpies current time to checkin date
Signed-off-by: snipe <snipe@snipe.net>
2022-07-21 21:45:25 -07:00
snipe
072e6029b6 Merge remote-tracking branch 'origin/develop' 2022-07-21 12:20:24 -07:00
snipe
5926441984 Merge pull request #11542 from snipe/features/users_checkin_without_delete
Features/users checkin without delete
2022-07-20 18:59:45 -07:00
snipe
a1fe2a8d58 Fixed translation reference
Signed-off-by: snipe <snipe@snipe.net>
2022-07-20 18:01:55 -07:00
snipe
25cc46e416 Fixed button string
Signed-off-by: snipe <snipe@snipe.net>
2022-07-20 18:01:41 -07:00
snipe
458d61fafe Front-end updates for checkin without delete
Signed-off-by: snipe <snipe@snipe.net>
2022-07-20 17:57:39 -07:00
snipe
32010d5387 Updated language strings
Signed-off-by: snipe <snipe@snipe.net>
2022-07-20 17:57:27 -07:00
snipe
7313bca403 Checkin without deleting
Signed-off-by: snipe <snipe@snipe.net>
2022-07-20 17:57:19 -07:00
snipe
b7c7e6c623 Added/updated language strings
Signed-off-by: snipe <snipe@snipe.net>
2022-07-20 17:56:58 -07:00
snipe
0b4d243bf0 Merge pull request #11541 from Godmartinz/gh11540_Error_405_when_checking_out_Accessory
Fixes #11540 - accessory api routes from get to posts
2022-07-20 14:14:15 -07:00
Godfrey M
377c0e7075 fixes component routes 2022-07-20 13:41:35 -07:00
Godfrey M
0c4c4fc352 changes api checkin and checkout routes to post 2022-07-20 11:52:54 -07:00
Katharina Drexel
9d627936e6 Fixed #11509: Allow LDAP anonymous bind. 2022-07-20 17:24:20 +02:00
snipe
29a32c4726 Merge remote-tracking branch 'origin/develop' 2022-07-19 12:46:05 -07:00
snipe
e72c4f989f Merge pull request #11528 from uberbrady/upgrade_laravel_scim_server
Upgraded our fork of laravel-scim-server to better support scim creates
2022-07-18 19:56:06 -07:00
snipe
0d656e3963 Production assets
Signed-off-by: snipe <snipe@snipe.net>
2022-07-18 17:29:37 -07:00
snipe
50ce471dc6 Production assets
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	public/js/build/app.js
#	public/js/dist/all.js
#	public/mix-manifest.json
2022-07-18 17:29:29 -07:00
snipe
8113838eee Merge pull request #11531 from snipe/security/upgrade_jquery_ui
Upgraded jquery-UI
2022-07-18 17:28:22 -07:00
snipe
a92bb80055 Upgraded jquery-UI
Signed-off-by: snipe <snipe@snipe.net>
2022-07-18 17:27:54 -07:00
snipe
e9121c15d8 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	config/version.php
2022-07-18 16:50:53 -07:00
snipe
43bd00da86 Bumped version
Signed-off-by: snipe <snipe@snipe.net>
2022-07-18 16:50:12 -07:00
snipe
d124c89ced Moved session driver setting to be more clear
Signed-off-by: snipe <snipe@snipe.net>
2022-07-18 16:47:46 -07:00
Brady Wetherington
b2112e6792 Whoops, bump version to have the right syntax! 2022-07-18 15:16:45 -07:00
Brady Wetherington
250db10249 Upgrade our fork of laravel-scim-server to better support scim creates 2022-07-18 15:05:42 -07:00
snipe
ff5d64fcbf Merge remote-tracking branch 'origin/develop' 2022-07-18 12:15:44 -07:00
snipe
ec01aadbe4 Merge pull request #11526 from snipe/fixes/use_icheck_on_custom_report
Use icheckbox formatting on BOM and archived checkboxes
2022-07-18 12:13:27 -07:00
snipe
f0a9de72b1 Use icheckbox formatting on BOM and archived checkboxes
Signed-off-by: snipe <snipe@snipe.net>
2022-07-18 12:12:22 -07:00
snipe
145c191a65 Merge remote-tracking branch 'origin/develop' 2022-07-15 19:17:04 -07:00
snipe
5cb5ef249b Fixed typo
Signed-off-by: snipe <snipe@snipe.net>
2022-07-15 19:16:54 -07:00
snipe
ea38cef48c Merge remote-tracking branch 'origin/develop' 2022-07-15 19:15:31 -07:00
snipe
4808185b5c Added link to MosyleSnipeSync
Signed-off-by: snipe <snipe@snipe.net>
2022-07-15 19:15:19 -07:00
snipe
b3d65b5703 Merge remote-tracking branch 'origin/develop' 2022-07-15 18:53:20 -07:00
snipe
0f38714e21 Merge pull request #11517 from snipe/fixes/small_changes_to_gh_actions_configs
Changed some autolabeler and code owners
2022-07-15 18:53:01 -07:00
snipe
7a099bc268 Changed some autolabeler and code owners
Signed-off-by: snipe <snipe@snipe.net>
2022-07-15 18:51:57 -07:00
snipe
6f1f6c75e6 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
2022-07-15 17:11:55 -07:00
snipe
40d5c37aea Merge pull request #11516 from snipe/fixes/11508_alert_font_size
Fixed #11508 - font size in alert menu
2022-07-15 17:10:26 -07:00
snipe
58499c2322 Fixed #11508 - font size in alert menu
Signed-off-by: snipe <snipe@snipe.net>
2022-07-15 17:09:17 -07:00
snipe
6428dc5cd2 Removed duplicate supplier_id
Signed-off-by: snipe <snipe@snipe.net>
2022-07-13 13:08:15 -07:00
snipe
5f5ff04636 Merge pull request #11502 from mikeroq/fixes/eula_download_if_app_locale_is_not_en
Fixes #11496 - Wrong URL generated for download of asset acceptance PDF if locale was not en
2022-07-12 16:18:59 -07:00
mikeroq
f21824a8e2 Changed comparing the action type from translated in presenter to actual value 2022-07-12 17:59:03 -05:00
snipe
0ccd7e09de Merge pull request #11488 from Godmartinz/feature/sc-19107/add-box-to-custom-reports-to-not-include
adds a checkbox to exclude archived assets from custom reports
2022-07-12 12:59:18 -07:00
Godfrey M
27039325f3 removed comments, because I forgot 2022-07-12 12:41:07 -07:00
Godfrey M
58c54cc3dc uses notArchived scope instead now 2022-07-12 12:20:11 -07:00
Godfrey M
48349071ed accounts for status_id as well 2022-07-12 09:46:44 -07:00
snipe
bb5ac900ec Merge pull request #11492 from mikeroq/fixes/email_all_assigned_to_user_with_no_email
Fixes "email list of all assigned" apparently being successful even if the user has no email address
2022-07-11 18:27:01 -07:00
mikeroq
5efe45226d Fixes Email List of All Assigned being "successful" when the user has no email
Added check in view to disable button if there is no email
Added translation for title on disabled button and for email check in controller
Fixed missing trans for user not found message
2022-07-11 20:02:10 -05:00
snipe
a0183ff56f Merge remote-tracking branch 'origin/develop' 2022-07-11 17:11:44 -07:00
snipe
bb091760af Fixedd unclosed brace
Signed-off-by: snipe <snipe@snipe.net>
2022-07-11 17:11:28 -07:00
snipe
78d13871eb Merge pull request #11458 from snipe/dependabot/github_actions/codacy/codacy-analysis-cli-action-4.1.0
Bump codacy/codacy-analysis-cli-action from 1.1.0 to 4.1.0
2022-07-11 16:34:51 -07:00
snipe
fc5cf3e291 Merge pull request #11483 from snipe/fixes/migrations_on_restore
Fixes - migrations on restore
2022-07-11 16:34:06 -07:00
snipe
3182f251e1 Merge remote-tracking branch 'origin/develop' 2022-07-11 16:26:14 -07:00
snipe
d6ba8655bb Merge pull request #11490 from snipe/fixes/print_assigned_sig_broken
Fixed - print assigned sig broken
2022-07-11 14:48:25 -07:00
snipe
8114d01799 Only show sig file if there is a value for accepted sig
Signed-off-by: snipe <snipe@snipe.net>
2022-07-11 14:46:45 -07:00
Godfrey M
309229619b fixes the order expiring assets are listed in notifications 2022-07-11 12:25:38 -07:00
Godfrey M
75844c5942 adds a checkbox to exclude archived assets from custom reports 2022-07-11 09:56:58 -07:00
snipe
78d5c37267 Merge pull request #11484 from mikeroq/fixes/delete_file_modal_on_licenses
Fixes license file(s) delete modal showing entire model data instead of just the name
2022-07-10 13:23:03 -07:00
mikeroq
397e89cbed Fixes modal showing entire model data instead of just the name 2022-07-09 14:09:40 -05:00
snipe
2518e2f0ee Removed > 300
Signed-off-by: snipe <snipe@snipe.net>
2022-07-08 17:09:56 -07:00
snipe
e833052e8e Check for column
Signed-off-by: snipe <snipe@snipe.net>
2022-07-08 16:46:00 -07:00
snipe
43e370f35a Move migrations further up
Signed-off-by: snipe <snipe@snipe.net>
2022-07-08 16:40:51 -07:00
snipe
8d3c9e67a0 Merge remote-tracking branch 'origin/develop' 2022-07-07 16:19:29 -07:00
snipe
3988c0e3f0 Merge pull request #11480 from snipe/fixes/changed_model_file_icon
Changed model file icon
2022-07-07 16:19:09 -07:00
snipe
723454b04d Changed model file icon
Signed-off-by: snipe <snipe@snipe.net>
2022-07-07 16:17:35 -07:00
snipe
30c03435e4 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
2022-07-07 16:01:17 -07:00
snipe
5043533fde Merge pull request #11479 from snipe/fixes/padlock_icon
Fixes padlock icon
2022-07-07 16:00:02 -07:00
snipe
d458973649 Removed unneeded JS
Signed-off-by: snipe <snipe@snipe.net>
2022-07-07 15:58:37 -07:00
snipe
9c86b4bf88 Fixes padlock icon
Signed-off-by: snipe <snipe@snipe.net>
2022-07-07 15:57:33 -07:00
snipe
3a6c6d8466 Prod assets
Signed-off-by: snipe <snipe@snipe.net>
2022-07-07 14:40:39 -07:00
snipe
d62167e364 Merge remote-tracking branch 'origin/develop' 2022-07-07 14:39:02 -07:00
snipe
9297d8af1d Merge pull request #11478 from snipe/fixes/upgrade_font_awesome
Upgrade font-awesome to v6
2022-07-07 14:38:34 -07:00
snipe
bae9792f01 Missed two
Signed-off-by: snipe <snipe@snipe.net>
2022-07-07 14:36:09 -07:00
snipe
b98af0f50f Upgrade font-awesome to v6
Signed-off-by: snipe <snipe@snipe.net>
2022-07-07 14:22:08 -07:00
snipe
75e5cde39b Merge remote-tracking branch 'origin/develop' 2022-07-06 18:20:30 -07:00
snipe
f853188bc7 Merge pull request #11471 from uberbrady/add_license_seat_indexes
This adds some indexes for performance on license_seats
2022-07-06 18:19:40 -07:00
Brady Wetherington
61813a6f2c This adds some indexes for performance on license_seats 2022-07-06 18:10:48 -07:00
snipe
7a0c9776b4 Merge remote-tracking branch 'origin/develop' 2022-07-05 17:58:59 -07:00
snipe
ee4f355e49 Changed logging to debug
Signed-off-by: snipe <snipe@snipe.net>
2022-07-05 17:58:45 -07:00
snipe
bfc8c18675 Merge pull request #11451 from mikeroq/fixes/populate_custom_fields_from_asset_model_create
Fixes custom fields not populating when creating asset from asset model page
2022-07-05 17:31:08 -07:00
snipe
f1488767f8 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	config/version.php
2022-07-05 16:41:00 -07:00
snipe
2d5755c1dd Bumped version
Signed-off-by: snipe <snipe@snipe.net>
2022-07-05 16:40:17 -07:00
snipe
acc2e12f12 Merge remote-tracking branch 'origin/develop' 2022-07-05 16:35:34 -07:00
snipe
eb2793bfa7 Added @reederda
Signed-off-by: snipe <snipe@snipe.net>
2022-07-05 16:35:12 -07:00
snipe
1a05843183 Merge pull request #11462 from reederda/develop
Fixed #NA: typo
2022-07-05 16:33:09 -07:00
snipe
ef17fd41f7 Merge branch 'develop' into develop 2022-07-05 16:26:53 -07:00
snipe
7bdbbbee50 Branch in config set to master
Signed-off-by: snipe <snipe@snipe.net>
2022-07-05 16:20:33 -07:00
snipe
2e800e6a0d Merge pull request #11467 from snipe/translations/updated_strings
Updated translations
2022-07-05 16:19:46 -07:00
snipe
dae53a1128 Updated translations
Signed-off-by: snipe <snipe@snipe.net>
2022-07-05 16:18:53 -07:00
mikeroq
2781bd02b5 Add TODO to indicate future refactoring. 2022-07-05 18:02:37 -05:00
Daniel Reeder
7772ef22db Quick typo fix 2022-07-04 21:57:54 +00:00
snipe
2137c4e897 Back to develop
Signed-off-by: snipe <snipe@snipe.net>
2022-07-04 10:12:25 -07:00
snipe
4a0e51bf34 Merge remote-tracking branch 'origin/develop' 2022-07-04 10:11:05 -07:00
snipe
9f581a7677 Merge pull request #11460 from mikeroq/fix_missing_use_statement
Fixes #11459 Missing import for Setting model in AcceptanceController
2022-07-04 10:07:54 -07:00
mikeroq
be8869978d Added import for Setting model 2022-07-04 07:29:01 -05:00
dependabot[bot]
1ae044b91e Bump codacy/codacy-analysis-cli-action from 1.1.0 to 4.1.0
Bumps [codacy/codacy-analysis-cli-action](https://github.com/codacy/codacy-analysis-cli-action) from 1.1.0 to 4.1.0.
- [Release notes](https://github.com/codacy/codacy-analysis-cli-action/releases)
- [Commits](https://github.com/codacy/codacy-analysis-cli-action/compare/1.1.0...v4.1.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-04 08:28:05 +00:00
snipe
e550fb1a52 Merge pull request #11447 from snipe/dependabot/github_actions/docker/metadata-action-4
Bump docker/metadata-action from 3 to 4
2022-07-03 20:04:15 -07:00
snipe
fc65bb020f Merge pull request #11446 from snipe/dependabot/github_actions/docker/login-action-2
Bump docker/login-action from 1 to 2
2022-07-03 20:03:50 -07:00
snipe
a4dfdcd90d Merge pull request #11450 from snipe/dependabot/github_actions/docker/build-push-action-3
Bump docker/build-push-action from 2 to 3
2022-07-03 20:03:32 -07:00
snipe
16d2e34148 Merge pull request #11448 from snipe/dependabot/github_actions/docker/setup-buildx-action-2
Bump docker/setup-buildx-action from 1 to 2
2022-07-03 20:03:08 -07:00
snipe
567eefab1a Merge pull request #11449 from snipe/dependabot/github_actions/github/codeql-action-2
Bump github/codeql-action from 1 to 2
2022-07-03 20:02:31 -07:00
snipe
1ef20ec622 Merge remote-tracking branch 'origin/develop' 2022-07-02 13:08:59 -07:00
snipe
afab167e8c Fixed restore button in listings
Signed-off-by: snipe <snipe@snipe.net>
2022-07-02 13:08:46 -07:00
snipe
af14ee0d47 Merge pull request #11453 from mikeroq/fixes/asset_restore_not_working
Fixes #11452 - Asset Restore routes/buttons also asset models/users restore as well
2022-07-02 13:07:29 -07:00
Mike Roquemore
0a5ca6eb25 Change restore route to POST instead of GET 2022-07-02 14:34:43 -05:00
Mike Roquemore
6e9f24c08f Change restore route to POST instead of GET 2022-07-02 14:34:23 -05:00
Mike Roquemore
07ac4087a3 Remove link from alert since there is already a restore button on the side 2022-07-02 14:34:22 -05:00
Mike Roquemore
1650c9f878 Remove duplicate users routes 2022-07-02 14:34:22 -05:00
Mike Roquemore
123963c14c Modify genericActionsFormatter restore link to be a button instead since it's in a form.
Changed user restore route to POST
2022-07-02 14:34:22 -05:00
Mike Roquemore
1b45170ca3 Adds check if request has model_id, if so call fetchCustomFields on document ready 2022-07-01 20:15:11 -05:00
snipe
9a0b677dac Merge remote-tracking branch 'origin/develop' 2022-07-01 14:31:29 -07:00
snipe
b44f27dafa Add @mikeroq as a contributor 2022-07-01 14:31:07 -07:00
snipe
92d46edca3 Cleaned up logging output
Signed-off-by: snipe <snipe@snipe.net>
2022-07-01 13:33:58 -07:00
dependabot[bot]
471cf117ab Bump docker/build-push-action from 2 to 3
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 2 to 3.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v2...v3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-01 18:36:55 +00:00
dependabot[bot]
bf78bd4b8b Bump github/codeql-action from 1 to 2
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 1 to 2.
- [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/v1...v2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-01 18:36:50 +00:00
dependabot[bot]
a0a0d7e344 Bump docker/setup-buildx-action from 1 to 2
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 1 to 2.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](https://github.com/docker/setup-buildx-action/compare/v1...v2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-01 18:36:45 +00:00
dependabot[bot]
a9361571d6 Bump docker/metadata-action from 3 to 4
Bumps [docker/metadata-action](https://github.com/docker/metadata-action) from 3 to 4.
- [Release notes](https://github.com/docker/metadata-action/releases)
- [Upgrade guide](https://github.com/docker/metadata-action/blob/master/UPGRADE.md)
- [Commits](https://github.com/docker/metadata-action/compare/v3...v4)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-01 18:36:41 +00:00
dependabot[bot]
1a13be9b5d Bump docker/login-action from 1 to 2
Bumps [docker/login-action](https://github.com/docker/login-action) from 1 to 2.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](https://github.com/docker/login-action/compare/v1...v2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-01 18:36:36 +00:00
snipe
0ed84c83c8 Merge pull request #11437 from turrisxyz/Dependabot-GitHub-Actions
chore: Included githubactions in the dependabot config
2022-07-01 11:35:58 -07:00
snipe
9670ca3b8a Merge remote-tracking branch 'origin/develop' 2022-07-01 11:26:46 -07:00
snipe
d4476cb10b Merge pull request #11445 from snipe/fixes/11444
Replicates #11444
2022-07-01 11:26:25 -07:00
snipe
45c616639c Replicates #11444
Signed-off-by: snipe <snipe@snipe.net>
2022-07-01 11:21:02 -07:00
snipe
eedd646c28 Merge remote-tracking branch 'origin/develop' 2022-06-30 21:10:46 -07:00
snipe
acbd4deb1b Merge pull request #11440 from snipe/fixes/check_for_image_on_signing
Fixed #11393 - reject acceptance if no file is present
2022-06-30 21:09:16 -07:00
snipe
4e547a3639 Fixed typos :(
Signed-off-by: snipe <snipe@snipe.net>
2022-06-30 21:06:36 -07:00
snipe
b910db0617 Fixed #11393 - reject acceptance if no file is present
Signed-off-by: snipe <snipe@snipe.net>
2022-06-30 21:01:58 -07:00
snipe
bb382f3d2a Merge remote-tracking branch 'origin/develop' 2022-06-30 18:52:02 -07:00
snipe
25cb32ca6a Fixed typo
Signed-off-by: snipe <snipe@snipe.net>
2022-06-30 18:51:44 -07:00
snipe
6a13a7e096 Merge remote-tracking branch 'origin/develop' 2022-06-30 18:38:25 -07:00
snipe
e366caf3d1 Merge pull request #11438 from uberbrady/backout_linear_depreciation_math
Revert a change in our Linear Depreciation math
2022-06-30 18:38:03 -07:00
naveen
cfa301f5ae chore: Included githubactions in the dependabot config
This should help with keeping the GitHub actions updated on new releases. This will also help with keeping it secure.

Dependabot helps in keeping the supply chain secure https://docs.github.com/en/code-security/dependabot

GitHub actions up to date https://docs.github.com/en/code-security/dependabot/working-with-dependabot/keeping-your-actions-up-to-date-with-dependabot

https://github.com/ossf/scorecard/blob/main/docs/checks.md#dependency-update-tool
Signed-off-by: naveen <172697+naveensrinivasan@users.noreply.github.com>
2022-07-01 01:33:50 +00:00
Brady Wetherington
f72aa2415f Revert a change in our Linear Depreciation math; I think the old algorithm was correct 2022-06-30 18:24:45 -07:00
snipe
7969a66552 Merge remote-tracking branch 'origin/develop' 2022-06-30 18:17:51 -07:00
snipe
4edba064d5 Removed duplicate model column in depreciation report
Signed-off-by: snipe <snipe@snipe.net>
2022-06-30 18:17:30 -07:00
snipe
f3a3c59b7b Fixed branch name
Signed-off-by: snipe <snipe@snipe.net>
2022-06-30 18:05:46 -07:00
snipe
aa54c23f98 Bumped version
Signed-off-by: snipe <snipe@snipe.net>
2022-06-30 18:04:53 -07:00
snipe
df1e2687d6 Updated languages
Signed-off-by: snipe <snipe@snipe.net>
2022-06-30 17:35:02 -07:00
snipe
4f07e77bf9 Add @naveensrinivasan as a contributor 2022-06-30 17:35:02 -07:00
snipe
a10f570350 Merge pull request #11436 from turrisxyz/Pinned-Dependencies-GitHub
chore: Set permissions for GitHub actions
2022-06-30 17:30:17 -07:00
naveen
ac94aa8e46 chore: Set permissions for GitHub actions
Restrict the GitHub token permissions only to the required ones; this way, even if the attackers will succeed in compromising your workflow, they won’t be able to do much.

- Included permissions for the action. https://github.com/ossf/scorecard/blob/main/docs/checks.md#token-permissions

https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#permissions

https://docs.github.com/en/actions/using-jobs/assigning-permissions-to-jobs

[Keeping your GitHub Actions and workflows secure Part 1: Preventing pwn requests](https://securitylab.github.com/research/github-actions-preventing-pwn-requests/)

Signed-off-by: naveen <172697+naveensrinivasan@users.noreply.github.com>
2022-07-01 00:29:21 +00:00
snipe
7ebf125dae Merge remote-tracking branch 'origin/develop' 2022-06-30 15:44:51 -07:00
snipe
9a361d573f Merge pull request #11435 from snipe/features/ldap_warnings
Added warnings for common LDAP misconfigs
2022-06-30 15:44:33 -07:00
snipe
1a423a252b Derp
Signed-off-by: snipe <snipe@snipe.net>
2022-06-30 15:22:58 -07:00
snipe
7591f3f092 Added auth filter check regex
Signed-off-by: snipe <snipe@snipe.net>
2022-06-30 15:15:49 -07:00
snipe
2cace3c73a Added LDAP warnings on page load
Signed-off-by: snipe <snipe@snipe.net>
2022-06-30 15:08:12 -07:00
snipe
97afafdd48 Merge remote-tracking branch 'origin/develop' 2022-06-30 14:20:34 -07:00
snipe
656efc5f92 Fixed missing trans()
Signed-off-by: snipe <snipe@snipe.net>
2022-06-30 14:20:15 -07:00
snipe
46d055cf74 Fixed weird extra padding on crown
Signed-off-by: snipe <snipe@snipe.net>
2022-06-30 14:17:53 -07:00
snipe
423e7439ee Merge remote-tracking branch 'origin/develop' 2022-06-30 14:09:19 -07:00
Nathan Butler
0617480f73 Asset checkinbytag now consistent with existingAPI
This is a non-breaking change to the checkinbytag endpoint to bring it
inline with the usage/formatting of the other bytag endpoints that
currently exist - using the URL path to define the asset_tag instead of
passing it through as a url query.

Both methods will work, but the URL Path method will take precidence if
it is used (the query will be ignored if included)
2022-06-30 09:23:52 +10:00
snipe
2262ef818e Merge pull request #11427 from Godmartinz/email_users_list
[feature] adds button to email user list of assets from profile
2022-06-29 15:25:18 -07:00
snipe
02459aad26 Merge pull request #11430 from uberbrady/scim_more_tolerant
Make SCIM be more tolerant of missing fields
2022-06-29 15:24:25 -07:00
Brady Wetherington
2451bb9a2b Make SCIM be more tolerant of missing fields 2022-06-29 14:48:59 -07:00
Godfrey M
cd9d2d0cec adds docblock 2022-06-29 13:01:29 -07:00
Godfrey M
fc636ea888 removed redundant header 2022-06-29 12:01:56 -07:00
Godfrey M
e471aa8639 adds button to email user list of assets from profile 2022-06-29 11:15:15 -07:00
snipe
180f36d145 Merge remote-tracking branch 'origin/develop' 2022-06-29 05:04:21 -07:00
snipe
f8fd87b896 Add @ntbutler-nbcs as a contributor 2022-06-29 05:04:07 -07:00
snipe
130c8ea1b0 Add @ntbutler-nbcs as a contributor 2022-06-29 05:03:22 -07:00
snipe
5af6330398 Merge pull request #11417 from ntbutler-nbcs/master
[Feature] - Add checkoutByTag API endpoint for assets
2022-06-29 05:03:01 -07:00
snipe
daaf8713d8 Merge branch 'dampfklon-9813-duplicate-accept-asset' into develop 2022-06-29 04:58:26 -07:00
snipe
5b02d9ed06 Merge branch '9813-duplicate-accept-asset' of https://github.com/dampfklon/snipe-it into dampfklon-9813-duplicate-accept-asset
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	resources/views/account/accept/create.blade.php
2022-06-29 04:58:13 -07:00
snipe
b04cf20735 Merge pull request #10758 from inietov/fixes/badmethodcallexception_undefined_method_Asset.unaccepted_develop
Fixes BadMethodCallException Call to undefined method App\Models\Asset::unaccepted() for master [ch-17636]
2022-06-29 04:34:51 -07:00
Nathan Butler
6531657ee0 Revert version to dev for pull request 2022-06-29 18:00:15 +10:00
Nathan Butler
e28e7e37b8 Removed unneeded checks when searching for asset 2022-06-29 17:49:50 +10:00
snipe
467f59e193 Merge remote-tracking branch 'origin/develop' 2022-06-29 00:25:00 -07:00
snipe
be9e6fe847 Another typo
Signed-off-by: snipe <snipe@snipe.net>
2022-06-29 00:24:33 -07:00
snipe
b0e13611f7 Fixed typo
Signed-off-by: snipe <snipe@snipe.net>
2022-06-29 00:24:08 -07:00
snipe
f3887aef33 Merge remote-tracking branch 'origin/develop' 2022-06-29 00:10:38 -07:00
snipe
7b3f891edd Merge pull request #11418 from snipe/features/api_backup_download
Download backup via API
2022-06-29 00:07:09 -07:00
snipe
b590f29f33 Attempt a download via API
Signed-off-by: snipe <snipe@snipe.net>
2022-06-28 23:59:13 -07:00
snipe
1debdc47cf Backups endpoint
Signed-off-by: snipe <snipe@snipe.net>
2022-06-28 23:30:17 -07:00
snipe
bb7662a214 Merge pull request #11416 from snipe/features/personal_access_endpoint
Added personal access endpoint to API
2022-06-28 23:27:21 -07:00
snipe
53bc15900b Formatted show api
Signed-off-by: snipe <snipe@snipe.net>
2022-06-28 23:23:55 -07:00
snipe
90fe7af863 Small refactor
Signed-off-by: snipe <snipe@snipe.net>
2022-06-28 23:18:16 -07:00
snipe
67ad24af08 Return token ID in cli
Signed-off-by: snipe <snipe@snipe.net>
2022-06-28 23:13:25 -07:00
Nathan Butler
67e9b7795a Added asset checkoutByTag API endpoint 2022-06-29 16:11:57 +10:00
snipe
52332bc9ed Include token ID in payload
Signed-off-by: snipe <snipe@snipe.net>
2022-06-28 23:10:56 -07:00
snipe
dc27d3bec9 Change to plural endpoints
Signed-off-by: snipe <snipe@snipe.net>
2022-06-28 23:10:40 -07:00
snipe
a711e608c9 Changed siganture to be clearer
Signed-off-by: snipe <snipe@snipe.net>
2022-06-28 22:26:37 -07:00
snipe
2f7c04362e Make -kkey-only a flag
Signed-off-by: snipe <snipe@snipe.net>
2022-06-28 22:20:55 -07:00
snipe
9b6fd7e19a Set $accessTokenName
Signed-off-by: snipe <snipe@snipe.net>
2022-06-28 22:11:46 -07:00
snipe
9680b02bce Check that the user has permission to create their own API keys
Signed-off-by: snipe <snipe@snipe.net>
2022-06-28 22:09:18 -07:00
snipe
e7de7d1716 Show user info as well
Signed-off-by: snipe <snipe@snipe.net>
2022-06-28 22:06:46 -07:00
snipe
112f147596 Console script to generate API tokens
Signed-off-by: snipe <snipe@snipe.net>
2022-06-28 22:04:39 -07:00
snipe
413487de80 Made method naming consistent
Signed-off-by: snipe <snipe@snipe.net>
2022-06-28 21:32:12 -07:00
snipe
1158fa9ea8 Added personal access tokens to api
Signed-off-by: snipe <snipe@snipe.net>
2022-06-28 21:29:15 -07:00
snipe
a8e8112b34 Merge pull request #11415 from snipe/features/more_api_filters
Added additional filters for api indexes
2022-06-28 20:04:01 -07:00
snipe
3df9260ca8 Added additional filters for api indexes
Signed-off-by: snipe <snipe@snipe.net>
2022-06-28 19:59:45 -07:00
snipe
14ba3af086 Merge pull request #11414 from snipe/features/additional_search_fields_for_locations
Added additional search filters for location API
2022-06-28 19:08:08 -07:00
snipe
71c8050883 Added additional search filters for location API
Signed-off-by: snipe <snipe@snipe.net>
2022-06-28 19:07:11 -07:00
snipe
df5b01492c Merge remote-tracking branch 'origin/develop' 2022-06-28 18:55:59 -07:00
snipe
9dbb355e8d Merge pull request #11412 from snipe/features/model_uploads
Added model uploads
2022-06-28 18:42:05 -07:00
snipe
0f3778f07b Merge pull request #11413 from uberbrady/add_username_index
Add index across username and deleted_at to improve performance
2022-06-28 17:16:01 -07:00
Brady Wetherington
f515bd2dc8 Add index across username and deleted_at to improve large directory sync performance 2022-06-28 17:12:14 -07:00
snipe
f3075facb4 Added delete button
Signed-off-by: snipe <snipe@snipe.net>
2022-06-28 16:25:22 -07:00
snipe
ed95adb45c Show model files on hardware page
Signed-off-by: snipe <snipe@snipe.net>
2022-06-28 16:17:46 -07:00
snipe
95d4f7c62e Added models router to BS tables
Signed-off-by: snipe <snipe@snipe.net>
2022-06-28 15:56:18 -07:00
snipe
c90ed9f25f Allow models uploads
Signed-off-by: snipe <snipe@snipe.net>
2022-06-28 15:50:07 -07:00
snipe
7f664a7971 Layout changes for file upload
Signed-off-by: snipe <snipe@snipe.net>
2022-06-28 12:32:12 -07:00
snipe
14c6879f06 Merge remote-tracking branch 'origin/develop' 2022-06-28 11:41:56 -07:00
snipe
d8d12d4590 Merge pull request #11408 from uberbrady/add_filter_option_to_ldap_sync
Add a new `--filter` option to Artisan ldap-sync command
2022-06-28 09:50:48 -07:00
Brady Wetherington
be3388d647 Add a new --filter option to Artisan ldap-sync command 2022-06-27 19:49:59 -07:00
snipe
242836719d Bumped hash
Signed-off-by: snipe <snipe@snipe.net>
2022-06-27 19:32:10 -07:00
snipe
393c32558b Gotta bump that hash up
Signed-off-by: snipe <snipe@snipe.net>
2022-06-27 19:31:26 -07:00
snipe
94e723a88f Merge pull request #11404 from snipe/features/fix_transliteration
Fixed custom field transliteration
2022-06-27 17:42:02 -07:00
snipe
14d8fb66aa Merge pull request #11405 from snipe/fixes/use_db_column_instead_of_converted_value
Only care about the custom field's converted name when updating the custom field itself
2022-06-27 17:36:26 -07:00
snipe
ae73d4cc7c Merge pull request #11407 from snipe/features/disclosure_arrows_on_user_screen
Added disclosure arrows for lesser used options on user screen
2022-06-27 17:33:31 -07:00
snipe
bf08e73f8f Removed comments and server side cookie info
Signed-off-by: snipe <snipe@snipe.net>
2022-06-27 16:36:09 -07:00
snipe
4a3f56acf2 Removed old cooke stuff
Signed-off-by: snipe <snipe@snipe.net>
2022-06-27 16:35:54 -07:00
snipe
e33a4c2ef2 Added disclosure arrows to use screen
Signed-off-by: snipe <snipe@snipe.net>
2022-06-27 16:35:44 -07:00
snipe
52bd7d0d68 Merge remote-tracking branch 'origin/develop' 2022-06-27 14:25:38 -07:00
snipe
baad3b9d58 Only care about the converted name when updating the custom field itself
Signed-off-by: snipe <snipe@snipe.net>
2022-06-27 14:17:07 -07:00
snipe
131edb611e Refine output and checks
Signed-off-by: snipe <snipe@snipe.net>
2022-06-27 13:54:21 -07:00
snipe
518395bbc7 Merge pull request #11403 from uberbrady/remember_disclosure_triangles
Remember the state of the disclosure triangles in Assets
2022-06-27 13:28:14 -07:00
Brady Wetherington
34b4499178 Remember the state of the disclosure triangles in Assets 2022-06-27 12:57:19 -07:00
snipe
8f900fb4e1 More UI tweaks
Signed-off-by: snipe <snipe@snipe.net>
2022-06-27 12:15:11 -07:00
snipe
9355689dd4 Nicer output for custom fields error
Signed-off-by: snipe <snipe@snipe.net>
2022-06-27 11:52:51 -07:00
snipe
0909feaa6b Few more UI tweaks
Signed-off-by: snipe <snipe@snipe.net>
2022-06-27 11:01:19 -07:00
snipe
7f18180105 Fixed toggle
Signed-off-by: snipe <snipe@snipe.net>
2022-06-27 10:26:37 -07:00
snipe
bee694e605 Fixed typo
Signed-off-by: snipe <snipe@snipe.net>
2022-06-27 09:57:20 -07:00
snipe
08525a3c20 Few more changes
Signed-off-by: snipe <snipe@snipe.net>
2022-06-27 09:43:32 -07:00
snipe
d70b36750c Merge pull request #10967 from veenone/fix/hide_optional_field_on_create_asset
Fixes #8155 -  improve the workflow during asset creation
2022-06-24 18:53:07 -07:00
snipe
8c85d7bc97 Merge pull request #11370 from inietov/fixes/customfields_default_values_not_validating
Adds validation to custom fields' default values
2022-06-24 18:11:16 -07:00
snipe
cb225cb1ce Merge remote-tracking branch 'origin/develop' 2022-06-24 18:00:21 -07:00
snipe
7e7ae3bb95 Really reverting this time
Signed-off-by: snipe <snipe@snipe.net>
2022-06-24 17:55:34 -07:00
snipe
838579e9a8 Reverting :(
Signed-off-by: snipe <snipe@snipe.net>
2022-06-24 17:30:56 -07:00
snipe
a99896618d Merge branch 'develop' of https://github.com/snipe/snipe-it into develop
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	composer.json
#	composer.lock
2022-06-24 17:21:57 -07:00
snipe
24cb13d52b Upgraded guzzle (not broken this time)
Signed-off-by: snipe <snipe@snipe.net>
2022-06-24 17:18:34 -07:00
snipe
cc7513e202 Merge pull request #11392 from snipe/security/upgrade_guzzle
Upgraded guzzle to 7.4.5
2022-06-24 17:04:17 -07:00
snipe
c0b6d5aa2c Upgraded guzzle to 7.4.5
Signed-off-by: snipe <snipe@snipe.net>
2022-06-24 17:01:24 -07:00
snipe
5788038b49 Merge pull request #11391 from snipe/security/upgrade_webpack
Upgrade webpack from 5.72.1 to 5.73.0
2022-06-24 16:41:59 -07:00
snipe
fbf0815b16 Upgrade webpack from 5.72.1 to 5.73.0
Signed-off-by: snipe <snipe@snipe.net>
2022-06-24 16:41:19 -07:00
snipe
e2c227f02b Merge remote-tracking branch 'origin/develop' 2022-06-24 16:21:10 -07:00
snipe
be0f0fc421 Merge pull request #11388 from snipe/features/disable_purge_in_env
Disallow purge backup deletion by default and, enable via .env
2022-06-24 16:12:00 -07:00
snipe
a03075b6ea Merge pull request #11389 from uberbrady/errmagerd_the_gerneral
Typo of 'general' was in the migration blade a few places
2022-06-24 16:05:40 -07:00
Brady Wetherington
3b3f1a817e Typo of 'general' was in the migration blade a few places 2022-06-24 16:00:15 -07:00
snipe
601f7a6994 Moved new variables in example env
Signed-off-by: snipe <snipe@snipe.net>
2022-06-24 16:00:05 -07:00
snipe
75d19d815d Still show the purge button even if not allowed to avoid confusion
Signed-off-by: snipe <snipe@snipe.net>
2022-06-24 15:59:40 -07:00
snipe
d167d2a10f Disallow backup deletion and log attempt if not allowed
Signed-off-by: snipe <snipe@snipe.net>
2022-06-24 15:49:22 -07:00
snipe
fce4f0dc0e Disable delete button if not allowed
Signed-off-by: snipe <snipe@snipe.net>
2022-06-24 15:49:07 -07:00
snipe
657039882c Added purge and backup strings
Signed-off-by: snipe <snipe@snipe.net>
2022-06-24 15:48:46 -07:00
snipe
cf99d42413 Added backup delete to app config
Signed-off-by: snipe <snipe@snipe.net>
2022-06-24 15:48:37 -07:00
snipe
f483eafae9 Added backup delete env
Signed-off-by: snipe <snipe@snipe.net>
2022-06-24 15:44:11 -07:00
snipe
77bf28bcb6 Disallow purge
Signed-off-by: snipe <snipe@snipe.net>
2022-06-23 20:11:43 -07:00
snipe
6c2d06efb9 Merge remote-tracking branch 'origin/develop' 2022-06-23 20:02:19 -07:00
snipe
d0081188c7 Merge pull request #11387 from snipe/fixes/nicer_settings_search
Moved the settings search box higher
2022-06-23 19:31:24 -07:00
snipe
ce2362459c Layout tweak for search and back placement
Signed-off-by: snipe <snipe@snipe.net>
2022-06-23 19:30:52 -07:00
snipe
4e568bec8a Moves the settings search box higher
Signed-off-by: snipe <snipe@snipe.net>
2022-06-23 19:25:30 -07:00
snipe
18c37c97b8 Dark skin prod assets
Signed-off-by: snipe <snipe@snipe.net>
2022-06-23 19:14:12 -07:00
snipe
82e5faa869 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	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-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
2022-06-23 19:14:01 -07:00
snipe
dec7122ac7 Dark skin dev assets
Signed-off-by: snipe <snipe@snipe.net>
2022-06-23 19:13:01 -07:00
snipe
a75fc8af7e Merge remote-tracking branch 'origin/develop' 2022-06-23 19:12:13 -07:00
snipe
86d2c2b153 Small naming changes
Signed-off-by: snipe <snipe@snipe.net>
2022-06-23 19:11:59 -07:00
snipe
9fc4565bc1 Merge remote-tracking branch 'origin/develop' 2022-06-23 18:56:04 -07:00
snipe
f0cc418965 Merge pull request #11383 from snipe/features/adds_user_id_to_users
Added created_by to users
2022-06-23 18:48:42 -07:00
snipe
0bc3ca5c42 Fixed comments
Signed-off-by: snipe <snipe@snipe.net>
2022-06-23 18:44:27 -07:00
snipe
62ab867051 Fixed url param
Signed-off-by: snipe <snipe@snipe.net>
2022-06-23 18:43:10 -07:00
snipe
9fd3541520 Missed on createdBy
Signed-off-by: snipe <snipe@snipe.net>
2022-06-23 18:42:22 -07:00
snipe
3e559044b2 Changed method and scope names
Signed-off-by: snipe <snipe@snipe.net>
2022-06-23 18:41:13 -07:00
snipe
75a631b91f Merge pull request #11375 from Godmartinz/bootS_dropdown_menu_fix
fixes dropdown column select font color  in bootstrap tables
2022-06-23 18:31:36 -07:00
snipe
3a8786fdb7 Updated assets for prod
Signed-off-by: snipe <snipe@snipe.net>
2022-06-23 18:27:31 -07:00
snipe
f2a89161b3 Merge remote-tracking branch 'origin/develop' 2022-06-23 18:26:36 -07:00
snipe
1c25057e42 Merge pull request #11379 from Godmartinz/license_acceptance_eula
adds eula blade for licenses/consumables/components and fixes assigned_to for dom_pdf
2022-06-23 18:26:19 -07:00
snipe
590630e4e0 Merge pull request #11386 from snipe/fixes/default_skin_settings_colors
Small fixes to default blue
2022-06-23 18:23:45 -07:00
snipe
487dedba25 Merge pull request #11384 from snipe/fixes/bs_tables_undefined_for_archived
Fixed missing archived tooltip
2022-06-23 18:16:31 -07:00
snipe
f4c346a57c Small fixes to default blue skin
Signed-off-by: snipe <snipe@snipe.net>
2022-06-23 18:11:42 -07:00
snipe
35365882ac Used new settings_button class in settings index
Signed-off-by: snipe <snipe@snipe.net>
2022-06-23 18:10:28 -07:00
snipe
ea254ccc04 Tweaked default @blue
Signed-off-by: snipe <snipe@snipe.net>
2022-06-23 18:10:14 -07:00
snipe
06d5b5f4b1 Small change to color in overrides
Signed-off-by: snipe <snipe@snipe.net>
2022-06-23 18:10:03 -07:00
snipe
2536b02ace Fixed some colors on default skin
Signed-off-by: snipe <snipe@snipe.net>
2022-06-23 18:09:52 -07:00
snipe
6b8abb1511 Fixed missing archived tooltip
Signed-off-by: snipe <snipe@snipe.net>
2022-06-23 17:32:39 -07:00
snipe
9c9f5be6fe Do not show the creating admin by default in list view
Signed-off-by: snipe <snipe@snipe.net>
2022-06-23 17:28:34 -07:00
snipe
d8daec2e0a Added created_by results to user index API
Signed-off-by: snipe <snipe@snipe.net>
2022-06-23 17:19:30 -07:00
snipe
c9b81d65f1 Save the user id who is creating the user
Signed-off-by: snipe <snipe@snipe.net>
2022-06-23 17:19:08 -07:00
snipe
7f05029089 Added created_by to API output
Signed-off-by: snipe <snipe@snipe.net>
2022-06-23 17:18:31 -07:00
snipe
23c50ea9a5 Added admihn scopes
Signed-off-by: snipe <snipe@snipe.net>
2022-06-23 17:18:11 -07:00
snipe
2e5e8f363b Added admin to oresenter
Signed-off-by: snipe <snipe@snipe.net>
2022-06-23 17:18:04 -07:00
snipe
e63183649a Show admin in user view
Signed-off-by: snipe <snipe@snipe.net>
2022-06-23 17:17:48 -07:00
snipe
ef86c0273a Added migration to store admin ID
Signed-off-by: snipe <snipe@snipe.net>
2022-06-23 17:17:38 -07:00
snipe
dd8d90aa39 Merge remote-tracking branch 'origin/develop' 2022-06-23 16:16:04 -07:00
snipe
670a46e85c Merge pull request #11382 from snipe/fixes/check_for_archived_setting_on_counts
Fixes check for archived setting on counts
2022-06-23 16:13:20 -07:00
snipe
daf6c72005 Fleshed out comments on new scope
Signed-off-by: snipe <snipe@snipe.net>
2022-06-23 16:02:54 -07:00
snipe
1a4579b770 Missed one
Signed-off-by: snipe <snipe@snipe.net>
2022-06-23 16:00:27 -07:00
snipe
398c77bfdc Use new scope for additional tabs
Signed-off-by: snipe <snipe@snipe.net>
2022-06-23 15:37:39 -07:00
snipe
d45d322b54 Use scoped query for asset count
Signed-off-by: snipe <snipe@snipe.net>
2022-06-23 13:43:23 -07:00
Godfrey M
b0897a1fc9 adds acceptance for consumables and components 2022-06-23 11:52:35 -07:00
Godfrey M
d00b469001 fixed the search for the license 2022-06-23 11:33:36 -07:00
snipe
c5a6cec194 Merge pull request #11380 from snipe/features/better_excel_export
Fixed #11378 - Added better excel export
2022-06-23 11:25:33 -07:00
snipe
e2b1494511 Reordered and added xlsx to export list
Signed-off-by: snipe <snipe@snipe.net>
2022-06-23 11:18:59 -07:00
Godfrey M
df76e6eacf adds eula blade for licenses and fixes assigned_to for dom_pdf 2022-06-23 11:15:15 -07:00
Godfrey M
541ae919d9 fixes dropdown column select font color in bootstrap tables 2022-06-23 09:38:44 -07:00
Ivan Nieto Vivanco
7976401aa2 Add error message when the default customfield values can't be validated 2022-06-22 22:17:05 -05:00
Ivan Nieto Vivanco
7e10abe605 Fix the date control in custom fields' default values form to show the selected date 2022-06-22 21:47:08 -05:00
Ivan Nieto Vivanco
afdf93ca63 Adds controls for custom fields of type date in the default value form 2022-06-22 21:37:11 -05:00
Ivan Nieto Vivanco
321367b974 Adds validation to custom fields' default values 2022-06-22 21:06:07 -05:00
snipe
366f3aacef Merge pull request #11367 from snipe/js_library_updates
Updated/upgraded assets
2022-06-22 16:23:03 -07:00
snipe
4b9ec9218d Upgraded/updates assets
Signed-off-by: snipe <snipe@snipe.net>
2022-06-22 15:54:58 -07:00
snipe
cae66753fb Merge pull request #11323 from Godmartinz/bug/sc-19255/issues-with-black-light-sk
fixes non-dark mode black theme
2022-06-22 15:47:55 -07:00
snipe
5ac9efa9a3 Merge remote-tracking branch 'origin/develop' 2022-06-22 12:20:04 -07:00
snipe
ded635207f Merge pull request #11365 from snipe/fixes/adds_missing_zip_to_user_view
Added missing postal code from user view
2022-06-22 12:19:27 -07:00
snipe
f0f37df76e Added missing postal code from user view
Signed-off-by: snipe <snipe@snipe.net>
2022-06-22 12:18:57 -07:00
snipe
f5702532f0 Bumped version
Signed-off-by: snipe <snipe@snipe.net>
2022-06-22 11:21:51 -07:00
snipe
2f02eee69b Bumped version
Signed-off-by: snipe <snipe@snipe.net>
2022-06-22 11:21:04 -07:00
snipe
89c234b1c2 Merge pull request #11358 from snipe/fixes/missing_token_lang
Fixed missing password.token string and checked for user existing before attempting to send reset email
2022-06-22 11:15:08 -07:00
snipe
c24052cb2d Merge pull request #11364 from snipe/features/link_asset_to_order_number
Fixed #11351 - add link on asset view to order number
2022-06-22 11:08:40 -07:00
snipe
a7a61a3620 Fixed #11351 - add link on asset view to order number
Signed-off-by: snipe <snipe@snipe.net>
2022-06-22 11:07:54 -07:00
snipe
135fdae209 Merge pull request #11337 from mikeroq/fixes/user_edit_website_missing
Fixed #11332 Added website field that was missing from update and store method.
2022-06-22 10:16:38 -07:00
snipe
5c30de517d Use rate limiter for API calls
Signed-off-by: snipe <snipe@snipe.net>
2022-06-22 09:11:40 -07:00
snipe
a7dc6162fa Simplify password attempts rate limiting
Signed-off-by: snipe <snipe@snipe.net>
2022-06-22 09:11:24 -07:00
snipe
18778d3723 Additional example variables
Signed-off-by: snipe <snipe@snipe.net>
2022-06-22 09:07:48 -07:00
snipe
5ff1b5fd50 Increased throttle
Signed-off-by: snipe <snipe@snipe.net>
2022-06-21 19:39:50 -07:00
snipe
1c1f3dc42c Added password requests cleanup to scheduler
Signed-off-by: snipe <snipe@snipe.net>
2022-06-21 19:35:16 -07:00
snipe
d67afc3bd0 Merge pull request #11359 from uberbrady/dont_show_images_on_checkin_email_if_not_requested
Fixes issue where asset images were showing up in checkin emails
2022-06-21 19:34:22 -07:00
snipe
a5b857c753 Return error if token is incorrect
Signed-off-by: snipe <snipe@snipe.net>
2022-06-21 19:30:51 -07:00
snipe
b00db3cc56 Added throttling to password reset token form
Signed-off-by: snipe <snipe@snipe.net>
2022-06-21 19:30:11 -07:00
snipe
57720cb978 Added comment block
Signed-off-by: snipe <snipe@snipe.net>
2022-06-21 19:12:57 -07:00
snipe
172e8d463f Use newer forgotten password variables
Signed-off-by: snipe <snipe@snipe.net>
2022-06-21 19:11:57 -07:00
snipe
284dbb7553 Set higher threshhold, moved throttle settings
Signed-off-by: snipe <snipe@snipe.net>
2022-06-21 19:11:39 -07:00
Brady Wetherington
1156eea8af Fixes issue where asset images were showing up in checkin emails 2022-06-21 19:11:16 -07:00
snipe
17ee332715 Remove throttle from GET in password reset
Signed-off-by: snipe <snipe@snipe.net>
2022-06-21 18:53:14 -07:00
snipe
2f258a3e3d Make the strings match
Signed-off-by: snipe <snipe@snipe.net>
2022-06-21 18:48:22 -07:00
snipe
a31bca1798 Check that the user is activated before letting them reset their password
Signed-off-by: snipe <snipe@snipe.net>
2022-06-21 18:48:02 -07:00
snipe
791f77f641 Fixed throttle variables
Signed-off-by: snipe <snipe@snipe.net>
2022-06-21 18:41:12 -07:00
snipe
1b6df232aa Updated string
Signed-off-by: snipe <snipe@snipe.net>
2022-06-21 18:41:02 -07:00
snipe
386272a618 Manually add the additional routes so we can throttle them
Signed-off-by: snipe <snipe@snipe.net>
2022-06-21 18:40:53 -07:00
snipe
7f8fc7add9 Make SAML debugging less noisy
Signed-off-by: snipe <snipe@snipe.net>
2022-06-21 17:57:17 -07:00
snipe
6bc525bc25 Merge pull request #11352 from inietov/fixes/assets_transformer_date_customfields_fixes
Fixed #11335 Assets transformer date customfields issues
2022-06-21 17:56:17 -07:00
snipe
de048e1009 Updated language
Signed-off-by: snipe <snipe@snipe.net>
2022-06-21 16:13:59 -07:00
snipe
68150d11b7 Make logo clickable
Signed-off-by: snipe <snipe@snipe.net>
2022-06-21 16:13:52 -07:00
snipe
f4f400ed87 Handle workflow better for invalid users
Signed-off-by: snipe <snipe@snipe.net>
2022-06-21 16:13:43 -07:00
snipe
a49ccf0863 Removed unused rules
Signed-off-by: snipe <snipe@snipe.net>
2022-06-21 16:13:26 -07:00
snipe
300879847f Added a few comments to make it clearer what’s happening
Signed-off-by: snipe <snipe@snipe.net>
2022-06-21 14:33:10 -07:00
snipe
d4c53945d9 Tweaked language
Signed-off-by: snipe <snipe@snipe.net>
2022-06-21 14:19:49 -07:00
snipe
21875100b6 Fixed missing password.token string and checked for user existing before trying to reset
Signed-off-by: snipe <snipe@snipe.net>
2022-06-21 14:15:38 -07:00
snipe
87980643ea Merge pull request #11357 from snipe/fixes/11343_null_asset_name
Fixed #11343 - ability to null asset name on checkin
2022-06-21 10:58:28 -07:00
snipe
675f42401c Fixed #11343 - ability to null asset name
Signed-off-by: snipe <snipe@snipe.net>
2022-06-21 10:57:39 -07:00
Ivan Nieto Vivanco
3a5c09c424 Used the getFormattedDateObject() function with the expected parameters 2022-06-20 19:58:51 -05:00
snipe
3b462ffadc Merge pull request #11329 from mikeroq/fixes/deprecations_pagination_missing
Fixed #11285 - Depreciation index table missing pagination
2022-06-18 19:58:32 -07:00
mikeroq
d60af478ad Added website field that was missing from update and store method. 2022-06-17 08:09:39 -05:00
snipe
cabef8ff12 Merge pull request #11326 from snipe/features/added_number_format_to_tab_badges
Added number_format() to tab badges
2022-06-16 14:05:29 -07:00
Mike Roquemore
8a27ef30d5 Missing total argument on transformDeprecations method
Removed duplicate array key on transformDeprecation method
2022-06-15 21:52:15 -05:00
snipe
a111482217 Use number_format on badges
Signed-off-by: snipe <snipe@snipe.net>
2022-06-15 14:59:06 -07:00
snipe
a758e825ed Dev assets
Signed-off-by: snipe <snipe@snipe.net>
2022-06-15 13:45:33 -07:00
snipe
af66f83a3d Check for blank (not null) values i asset transformer date
Signed-off-by: snipe <snipe@snipe.net>
2022-06-15 13:42:30 -07:00
snipe
b3605fa141 Merge remote-tracking branch 'origin/develop' 2022-06-15 11:39:16 -07:00
snipe
6f713985fb Merge pull request #11324 from snipe/features/add_badges_to_companies
Features/add badges to companies
2022-06-15 11:38:32 -07:00
snipe
677e5a8cf1 Added tab badges to company detail view
Signed-off-by: snipe <snipe@snipe.net>
2022-06-15 11:37:44 -07:00
snipe
872600a7a7 Link company on license page
Signed-off-by: snipe <snipe@snipe.net>
2022-06-15 11:37:26 -07:00
Godfrey M
3a879bda4a more adjustments 2022-06-15 11:08:42 -07:00
Godfrey M
a6852cf4d2 fixes non-dark mode black theme 2022-06-15 10:20:25 -07:00
snipe
61c601dbdf 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
2022-06-15 02:09:32 -07:00
snipe
74bc06cc49 Removed debugging code
Signed-off-by: snipe <snipe@snipe.net>
2022-06-15 02:07:58 -07:00
snipe
5fe1078013 Squashed commit of the following:
commit a011b07d99
Merge: b392ed269 6059e9e11
Author: snipe <snipe@snipe.net>
Date:   Tue Jun 14 17:52:50 2022 -0700

    Merge pull request #11315 from snipe/features/adds_fullscreen_option_to_tables

    Added fullscreen option to tables

commit b392ed269b
Merge: 693043e64 e6d792bdf
Author: snipe <snipe@snipe.net>
Date:   Tue Jun 14 17:52:41 2022 -0700

    Merge pull request #11316 from snipe/fixes/smaller_padlock_on_table_header

    Tweaked CSS for smaller padlock

commit 6059e9e119
Author: snipe <snipe@snipe.net>
Date:   Tue Jun 14 17:49:00 2022 -0700

    Added fullscreen option to tables

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

commit e6d792bdf7
Author: snipe <snipe@snipe.net>
Date:   Tue Jun 14 17:43:12 2022 -0700

    Tweaked CSS for smaller padlock

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

Signed-off-by: snipe <snipe@snipe.net>
2022-06-14 17:54:18 -07:00
snipe
a011b07d99 Merge pull request #11315 from snipe/features/adds_fullscreen_option_to_tables
Added fullscreen option to tables
2022-06-14 17:52:50 -07:00
snipe
b392ed269b Merge pull request #11316 from snipe/fixes/smaller_padlock_on_table_header
Tweaked CSS for smaller padlock
2022-06-14 17:52:41 -07:00
snipe
6059e9e119 Added fullscreen option to tables
Signed-off-by: snipe <snipe@snipe.net>
2022-06-14 17:49:00 -07:00
snipe
e6d792bdf7 Tweaked CSS for smaller padlock
Signed-off-by: snipe <snipe@snipe.net>
2022-06-14 17:43:12 -07:00
snipe
f16a4b6aef Removed footer from show category
Signed-off-by: snipe <snipe@snipe.net>
2022-06-14 17:16:14 -07:00
snipe
d74b4f55fb Merge remote-tracking branch 'origin/develop' 2022-06-14 17:15:39 -07:00
snipe
693043e645 Merge pull request #11313 from snipe/fixes/nicer_suppliers_mfgs_ui
Nicer suppliers and manufacturers UI
2022-06-14 17:14:53 -07:00
snipe
e935a34946 Merge remote-tracking branch 'origin/develop' 2022-06-14 16:25:50 -07:00
snipe
4052e360c1 Merge pull request #11314 from snipe/fixes/deja_vu_font_pdf
Fixed #11175 - Use the Deja Vu font in PDFs to be able to support Cyrillic, etc
2022-06-14 16:25:33 -07:00
snipe
cc6a2f2d49 Use the Deja Vu font to be able to support cyrllic, etc
Signed-off-by: snipe <snipe@snipe.net>
2022-06-14 16:23:30 -07:00
snipe
07bc2fd742 Added maintenance scope for ordering by supplier
Signed-off-by: snipe <snipe@snipe.net>
2022-06-14 16:11:43 -07:00
snipe
a57a6486e7 Only add http:// if the url variable isn’t blank
Signed-off-by: snipe <snipe@snipe.net>
2022-06-14 16:11:13 -07:00
snipe
a33276cb3d Additional filters on maintenances UI
Signed-off-by: snipe <snipe@snipe.net>
2022-06-14 16:10:48 -07:00
snipe
bfec0059c5 Improved manufacturers UI
Signed-off-by: snipe <snipe@snipe.net>
2022-06-14 16:10:36 -07:00
snipe
aea9dd1de5 Improved suplpiers UI
Signed-off-by: snipe <snipe@snipe.net>
2022-06-14 16:06:56 -07:00
snipe
954b54f914 Removed duplicated $allowed_columns
Signed-off-by: snipe <snipe@snipe.net>
2022-06-14 15:06:04 -07:00
snipe
56a15731ef Merge remote-tracking branch 'origin/develop' 2022-06-14 12:56:16 -07:00
snipe
766e59acde Merge pull request #11310 from snipe/fixes/statuslabels_bulk_edit
Fixes #11308 - bulk edit on statuslabels detail page
2022-06-14 12:55:56 -07:00
snipe
f1a63f25e7 Partialize and add data atributes to statuslabel bulk
Signed-off-by: snipe <snipe@snipe.net>
2022-06-14 12:50:26 -07:00
snipe
88dfdb7538 Fixed bug in uncheck
Signed-off-by: snipe <snipe@snipe.net>
2022-06-14 12:50:10 -07:00
snipe
9072f7c6c9 Added click-to-select to tables
Signed-off-by: snipe <snipe@snipe.net>
2022-06-14 12:49:50 -07:00
snipe
bff34063cd Merge pull request #11309 from uberbrady/ldap_troubleshooter_improvements
Fixed SC-19104 - fixes to ldap:troubleshoot artisan command
2022-06-14 12:24:24 -07:00
Brady Wetherington
1e685ca835 Fixed SC-19104 - fixes to ldap:troubleshoot artisan command 2022-06-14 12:18:42 -07:00
snipe
b55630aafa Merge remote-tracking branch 'origin/develop' 2022-06-14 11:45:27 -07:00
snipe
c3b644797e Merge pull request #11169 from inietov/fixes/user_update_from_import_location_in_assets
Fixes Asset location doesn't change when assigned user's location change via importer
2022-06-14 11:44:26 -07:00
snipe
1806dacb9d Bumped hash on master to 6.0.4
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	config/version.php
2022-06-13 23:59:43 -07:00
snipe
abb7f23ca5 Bumped version to 6.0.4
Signed-off-by: snipe <snipe@snipe.net>
2022-06-13 23:58:53 -07:00
snipe
b448c89655 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	config/version.php
2022-06-13 23:52:48 -07:00
snipe
8857391da7 Merge pull request #11305 from inietov/fixes/trying_to_access_array_offset_on_value_of_type_null
Fixed #11304 Trying to access array offset on value of type null at .../Transformers/AssetsTransformer.php
2022-06-13 23:51:51 -07:00
Ivan Nieto Vivanco
50c008ead5 Adds check in condition that format custom dates 2022-06-14 01:37:15 -05:00
snipe
3e8837dd6e Bumped dev branch to 6.0.3
Signed-off-by: snipe <snipe@snipe.net>
2022-06-13 22:13:18 -07:00
snipe
ea1ff1e8bb Bumped version to 6.0.3
Signed-off-by: snipe <snipe@snipe.net>
2022-06-13 22:12:40 -07:00
snipe
a7b155108d Merge remote-tracking branch 'origin/develop' 2022-06-13 22:07:13 -07:00
snipe
44c0c1bf0e Merge pull request #11301 from snipe/features/models_view_in_categories
Added models view (and bulk edit) in category detail view
2022-06-13 21:45:43 -07:00
snipe
7cd35a80b6 Updated assets for production
Signed-off-by: snipe <snipe@snipe.net>
2022-06-13 20:52:47 -07:00
snipe
e8973f08b5 Added a back button
Signed-off-by: snipe <snipe@snipe.net>
2022-06-13 20:47:35 -07:00
snipe
dd9c9520fb Correctly filter by category_id
Signed-off-by: snipe <snipe@snipe.net>
2022-06-13 20:42:21 -07:00
snipe
aec033d8d2 Use better phrasing for tab
Signed-off-by: snipe <snipe@snipe.net>
2022-06-13 20:33:37 -07:00
snipe
5496b62b33 Split categories into two tabs if the type = asset
Signed-off-by: snipe <snipe@snipe.net>
2022-06-13 20:30:50 -07:00
snipe
e393e2eb4b Fixed issue in BS tables where uncheck-all then checking a few would not uncheck properly
Signed-off-by: snipe <snipe@snipe.net>
2022-06-13 20:30:35 -07:00
snipe
10781a6e4b Use new bulk edit partial
Signed-off-by: snipe <snipe@snipe.net>
2022-06-13 20:29:17 -07:00
snipe
5a86004081 Created new models bulk edit partial
Signed-off-by: snipe <snipe@snipe.net>
2022-06-13 20:29:08 -07:00
snipe
91ade1f33e Merge remote-tracking branch 'origin/develop' 2022-06-13 20:02:52 -07:00
snipe
eaecf8137a Updated assets for develop
Signed-off-by: snipe <snipe@snipe.net>
2022-06-13 19:52:27 -07:00
snipe
92bb8fac32 Removed log statement
Signed-off-by: snipe <snipe@snipe.net>
2022-06-13 19:49:14 -07:00
snipe
d4a7811078 Merge pull request #11282 from Godmartinz/new_Yellow_skin
redone none dark mode yellow skin
2022-06-13 19:48:24 -07:00
snipe
cb8dbcc172 Merge pull request #11281 from Godmartinz/chore_dark_mode_color_clean_up
cleans up dark modes
2022-06-13 19:48:15 -07:00
snipe
495e68d23c Merge pull request #11258 from Godmartinz/bug/sc-19123/link-colors-slightly-different-settings
Fixed colors in light color skins
2022-06-13 19:48:05 -07:00
snipe
20a0c4e3b5 Merge pull request #11272 from inietov/fixes/date_localization_in_customfields
Fixes #8143 Date localization not working on custom fields
2022-06-13 19:47:20 -07:00
snipe
4d773829f8 Merge pull request #10988 from bestlong/bestlong-patch-1
Ensure schedule analysis job never runs on forked repos
2022-06-13 19:45:36 -07:00
snipe
bcb9804be8 Added a little more context to mail template
Signed-off-by: snipe <snipe@snipe.net>
2022-06-13 19:44:18 -07:00
snipe
5e59fa2598 Default to $snipeSettings->site_name
Signed-off-by: snipe <snipe@snipe.net>
2022-06-13 19:29:46 -07:00
snipe
6ea722d41e Merge pull request #11271 from inietov/fixes/bulk_delete_not_checking_assignedto_type
Fix typo in language files
2022-06-13 19:24:08 -07:00
snipe
66346684a9 Merge pull request #11288 from snipe/fixes/set_crons_as_app_user_in_installer
Fixes - set crons as app user in installer
2022-06-13 19:18:55 -07:00
snipe
9731a31cb6 Merge remote-tracking branch 'origin/develop' 2022-06-13 18:37:18 -07:00
snipe
ef3e016667 Merge pull request #11300 from snipe/fixes/fa_map_icon_in_chrome
Fixed font-awesome leading class
2022-06-13 18:37:04 -07:00
snipe
93e4d23143 Changed font-awesome leading class
Signed-off-by: snipe <snipe@snipe.net>
2022-06-13 18:36:13 -07:00
snipe
0153a37cd7 Merge pull request #11264 from snipe/fixes/set_default_ldap_version
Fixed default ldap version if not specified
2022-06-13 17:14:57 -07:00
snipe
cce5846018 Squashed commit of the following:
commit a070f7cd5e
Merge: 166f52630 4c1104147
Author: snipe <snipe@snipe.net>
Date:   Thu Jun 9 17:23:05 2022 -0700

    Merge pull request #11291 from snipe/fixes/regression_missing_restore_command

    Fixed regression: missing restore option for assets via API

commit 4c11041477
Author: snipe <snipe@snipe.net>
Date:   Thu Jun 9 17:17:38 2022 -0700

    Fixed regression: missing restore option for assets via API

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

Signed-off-by: snipe <snipe@snipe.net>
2022-06-09 17:23:50 -07:00
snipe
a070f7cd5e Merge pull request #11291 from snipe/fixes/regression_missing_restore_command
Fixed regression: missing restore option for assets via API
2022-06-09 17:23:05 -07:00
snipe
4c11041477 Fixed regression: missing restore option for assets via API
Signed-off-by: snipe <snipe@snipe.net>
2022-06-09 17:17:38 -07:00
snipe
166f526302 Merge pull request #11290 from inietov/fixes/asset_observer_fails_checkout_on_creating
Fixes observer fails when creating and assigning a new asset
2022-06-09 16:13:12 -07:00
Ivan Nieto Vivanco
f8718ffc1e Fixes observer fails when creating and assigning asset 2022-06-09 18:08:04 -05:00
snipe
31e4d3b725 Added second run_as_app_user
Signed-off-by: snipe <snipe@snipe.net>
2022-06-09 14:31:02 -07:00
snipe
a766572a2f Set crons as app user for installer
Signed-off-by: snipe <snipe@snipe.net>
2022-06-09 14:21:38 -07:00
snipe
6a8824a467 Merge pull request #11286 from inietov/fixes/return_element_type_of_customfield
Fixes #11092 Add element type of customfield to API response
2022-06-09 11:40:09 -07:00
Ivan Nieto Vivanco
0c3972d7b7 Add spaces to the code for consistency 2022-06-09 13:02:31 -05:00
Ivan Nieto Vivanco
4a0eb2b3f1 Add element type of customfield to API response 2022-06-09 12:57:20 -05:00
Godfrey M
b3559ac74e redone none dark mode yellow skin 2022-06-08 13:59:46 -07:00
Godfrey M
4252bd2348 cleans up dark modes 2022-06-08 13:17:16 -07:00
snipe
728338bfa8 Merge pull request #10824 from inietov/fixes/accessories_consumables_negative_numbers_develop
Fixes Accessories total quantity shows a negative number for develop branch
2022-06-08 10:53:57 -07:00
snipe
df8834fd88 Merge pull request #11278 from Godmartinz/bug/sc-19134/possible-missing-wrong-translations-in-ldap
fixes translation references in the users ldap blade
2022-06-08 10:47:03 -07:00
Godfrey M
c8bc0eff11 fixes translation references in the users ldap blade 2022-06-08 09:52:55 -07:00
snipe
8b6e869215 Merge pull request #11276 from snipe/fixes/added_bulk_data_attributes_to_manufacturers
Added new JS data attributes for assets in manufacturers
2022-06-08 04:19:38 -07:00
snipe
063893c109 Added new JS data attributes for assets in manufacturers
Signed-off-by: snipe <snipe@snipe.net>
2022-06-08 04:18:05 -07:00
Ivan Nieto Vivanco
44f4f20187 Only fix typo in 'en' file 2022-06-07 19:09:59 -05:00
Ivan Nieto Vivanco
792b18f845 Return language files to previous state 2022-06-07 19:09:03 -05:00
snipe
0671e478cd Merge pull request #11273 from inietov/fixes/eol_without_specified_date_format
Fixes EOL field doesn't have date formatter applied
2022-06-07 17:01:46 -07:00
Ivan Nieto Vivanco
d2fc27e21d Add formatted date to EOL field in asset detailed view 2022-06-07 18:22:09 -05:00
Ivan Nieto Vivanco
740f27198f Evaluate if a custom field is a Date to present it with the correct format 2022-06-07 18:00:46 -05:00
Ivan Nieto Vivanco
064f4b3fc6 Fix typo in language files 2022-06-07 16:30:18 -05:00
snipe
5458676ead Default to v3 of LDAP on settings save
Signed-off-by: snipe <snipe@snipe.net>
2022-06-06 21:00:22 -07:00
snipe
8337628323 Set elvis operator to ensure ldap version is 3 if null
Signed-off-by: snipe <snipe@snipe.net>
2022-06-06 20:57:18 -07:00
snipe
7faaa4ce24 Merge pull request #11263 from inietov/fixes/dont_save_update_action_if_nothings_changed
Fixes log update action even if no changes are made to assets [sc-19131]
2022-06-06 20:06:19 -07:00
snipe
9583a72016 Merge pull request #11262 from snipe/fixes/11093_use_true_false_in_custom_fields_fieldsets
Fixed #11093 - Return true/false for custom fields/fieldsets required value in API
2022-06-06 20:04:52 -07:00
snipe
e0102ddbf0 Fixes #11093 Return true/false for custom fields/fieldsets required in API
Signed-off-by: snipe <snipe@snipe.net>
2022-06-06 20:03:20 -07:00
Ivan Nieto Vivanco
1030ad9a27 Early returns if no change is made in the Asset so the 'update' action doesn't log 2022-06-06 22:00:05 -05:00
snipe
ab8dcdcc40 Merge remote-tracking branch 'origin/master' into develop 2022-06-06 19:35:29 -07:00
snipe
773997a492 Merge pull request #11261 from snipe/features/11255_add_location_2_to_locations_listing
Fixed #11255 - add address 2 field to locations listing
2022-06-06 19:35:07 -07:00
snipe
8333c80b7a Added address2 to column selector for locations listing
Signed-off-by: snipe <snipe@snipe.net>
2022-06-06 19:31:08 -07:00
snipe
96644ab6b9 Merge pull request #11259 from inietov/fixes/history_issues
Fixes some issues in the asset observer
2022-06-06 18:25:05 -07:00
Ivan Nieto Vivanco
f977c53ecb Fixes some issues in the asset observer 2022-06-06 19:14:32 -05:00
Godfrey M
8c1843b351 updates colors in light color modes 2022-06-06 11:40:57 -07:00
snipe
c9e86ac194 Merge remote-tracking branch 'origin/develop' 2022-06-06 10:23:37 -07:00
snipe
f7449921e9 Merge pull request #11253 from snipe/features/nicer_locations_ui
Nicer locations UI
2022-06-06 10:23:04 -07:00
snipe
5f79534f4a Merge remote-tracking branch 'origin/develop' 2022-06-05 22:44:53 -07:00
snipe
3bcd5d94d6 Merge pull request #11254 from snipe/fixes/11224_only_show_possible_options_in_bulk_menu
Fixed  #11224 - only show menu options if the user is allowed
2022-06-05 22:44:26 -07:00
snipe
01348187c8 Fixed #11224 - only show menu options if the user is allowed
Signed-off-by: snipe <snipe@snipe.net>
2022-06-05 22:41:53 -07:00
snipe
b26a4ad333 Added missing headers
Signed-off-by: snipe <snipe@snipe.net>
2022-06-05 21:35:57 -07:00
snipe
89f45d3d05 Removed extra console logs and unused variable
Signed-off-by: snipe <snipe@snipe.net>
2022-06-05 21:16:29 -07:00
snipe
e83a062eda Use translation string for model editing
Signed-off-by: snipe <snipe@snipe.net>
2022-06-05 21:11:50 -07:00
snipe
1ea667e709 Update views with additional data fields
Signed-off-by: snipe <snipe@snipe.net>
2022-06-05 21:03:56 -07:00
snipe
5326ebd136 Removed toolbar div we weren’t using
Signed-off-by: snipe <snipe@snipe.net>
2022-06-05 21:03:45 -07:00
snipe
4db9892f8c Use partial in overdue audit screen
Signed-off-by: snipe <snipe@snipe.net>
2022-06-05 21:03:12 -07:00
snipe
880828379e Update bulki partials with new values
Signed-off-by: snipe <snipe@snipe.net>
2022-06-05 21:02:51 -07:00
snipe
9b54077409 Additional tweaks to BS tables partial
Signed-off-by: snipe <snipe@snipe.net>
2022-06-05 21:02:19 -07:00
snipe
9f478b51e2 Additional JS tweaking
Signed-off-by: snipe <snipe@snipe.net>
2022-06-05 20:13:51 -07:00
snipe
7c77e03c5a Initial rework of locations display
Signed-off-by: snipe <snipe@snipe.net>
2022-06-05 18:08:15 -07:00
snipe
9d3aed42b7 Add @denzfarid as a contributor 2022-06-05 17:16:58 -07:00
snipe
3dedd51b84 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	config/version.php
2022-06-05 17:16:21 -07:00
snipe
711c713ab8 Bumped hash
Signed-off-by: snipe <snipe@snipe.net>
2022-06-05 17:15:29 -07:00
snipe
5bc5e9f108 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	resources/lang/en/admin/locations/general.php
2022-06-05 17:14:31 -07:00
snipe
9770692d07 Merge pull request #11251 from denzfarid/fixes/docker-php-redis-extension
Fixed #10910  : Add php-redis extension
2022-06-05 17:09:39 -07:00
snipe
133da6569b Merge pull request #11252 from snipe/fixes/locations_improvements
Fixes/locations improvements
2022-06-05 17:05:25 -07:00
snipe
985e683896 Small display improvements
Signed-off-by: snipe <snipe@snipe.net>
2022-06-05 16:59:53 -07:00
Raden Farid Nugraha
c3698053ea Fixed ( #10910 ) : Add php redis extension 2022-06-06 06:58:07 +07:00
snipe
dba06a3a9e Check for valid location before trying to print
Signed-off-by: snipe <snipe@snipe.net>
2022-06-03 16:56:15 -07:00
snipe
07b1062fb2 Better handle API calls to nonexistent users
Signed-off-by: snipe <snipe@snipe.net>
2022-06-03 16:55:23 -07:00
snipe
be0933a708 Merge pull request #11249 from snipe/fixes/better_handle_bad_date_values
Fixed crashing on date formatting helper when value is not actually a date
2022-06-03 16:46:09 -07:00
snipe
d31f185cce Display the actual value
Signed-off-by: snipe <snipe@snipe.net>
2022-06-03 15:36:52 -07:00
snipe
5901182885 Removed stray character
Signed-off-by: snipe <snipe@snipe.net>
2022-06-03 15:30:34 -07:00
snipe
f033aeda83 Fixed typo in comments
Signed-off-by: snipe <snipe@snipe.net>
2022-06-03 15:28:00 -07:00
snipe
53f9e2bc7a Wrap the Carbon method in a try/catch to prevent crashing on bad data
Signed-off-by: snipe <snipe@snipe.net>
2022-06-03 15:25:39 -07:00
snipe
514db05770 Merge remote-tracking branch 'origin/develop' 2022-06-03 13:29:04 -07:00
snipe
7ca617f077 Merge pull request #11246 from snipe/fixes/clearer_placeholder_text_for_ldap
Added explicit “Example:” text in placeholders
2022-06-03 13:28:40 -07:00
snipe
8f5ac5fb55 Removed quotes around filter query
Signed-off-by: snipe <snipe@snipe.net>
2022-06-03 13:01:53 -07:00
snipe
54f828743e Merge remote-tracking branch 'origin/develop' 2022-06-03 12:54:13 -07:00
snipe
f519fb747f Merge pull request #11248 from snipe/fixes/corrected_gate_on_assetmodels
Updated Asset Model gate to correctly display the button on view
2022-06-03 12:53:52 -07:00
snipe
36f714e414 Updated Asset Model gate to correctly display the button on view
Signed-off-by: snipe <snipe@snipe.net>
2022-06-03 12:52:53 -07:00
snipe
773c773773 Merge pull request #11247 from snipe/fixes/added_missing_validation_translations
Added the validation strings for user creation password options
2022-06-03 12:03:47 -07:00
snipe
3071a83ae0 Added the validation strings for user creation password options
Signed-off-by: snipe <snipe@snipe.net>
2022-06-03 12:00:56 -07:00
snipe
1c4864a3cc Added explicit “Example:” text in placeholders
Signed-off-by: snipe <snipe@snipe.net>
2022-06-03 11:25:18 -07:00
snipe
50c92d4730 Merge remote-tracking branch 'origin/develop' 2022-06-02 17:09:52 -07:00
snipe
f8a0bf6a4b Merge pull request #11244 from snipe/fixes/drop_log_level_to_warn_on_SAML
Dropped log level to warn on SAML error
2022-06-02 17:09:32 -07:00
snipe
910fc08406 Dropped log level to warn on SAML error
Signed-off-by: snipe <snipe@snipe.net>
2022-06-02 17:07:49 -07:00
snipe
eebc56d54b Merge remote-tracking branch 'origin/develop' 2022-06-02 16:33:04 -07:00
snipe
b5ddc2c85b Merge pull request #11243 from snipe/fixes/fix_diff_time_in_audit_report
Don’t use the formatted date for diff days in audit report
2022-06-02 16:32:46 -07:00
snipe
4e03ebe284 Don’t use the formatted date for diff days in audit report
Signed-off-by: snipe <snipe@snipe.net>
2022-06-02 16:30:26 -07:00
snipe
7577fc61e4 Merge pull request #11235 from Godmartinz/gh_5644-checkout_history_for_accessories
fixed issue with misplaced div
2022-06-01 17:03:23 -07:00
Godfrey M
d302675056 fixed a div placement 2022-06-01 16:58:29 -07:00
Godfrey M
5316f41eba fixed a div placement 2022-06-01 16:56:01 -07:00
snipe
fa6c463d46 Merge pull request #11046 from Godmartinz/gh_5644-checkout_history_for_accessories
Added history tab to accessories
2022-06-01 12:46:38 -07:00
snipe
23a441e7c8 Merge remote-tracking branch 'origin/develop' 2022-06-01 10:27:50 -07:00
snipe
ac993184ee Merge pull request #11233 from snipe/fixes/11232_depreciation_layout
Fixed #11232 - missing closing div
2022-06-01 10:27:25 -07:00
snipe
1dbc1f4aa2 Fixed #11232 - missing closing div
Signed-off-by: snipe <snipe@snipe.net>
2022-06-01 10:26:26 -07:00
Achmad Fienan Rahardianto
fe65de1207 implements cookie to maintain display preference 2022-06-01 11:54:05 +07:00
snipe
089704c4f9 Merge remote-tracking branch 'origin/develop' 2022-05-31 14:17:23 -07:00
snipe
bb933e5214 Merge pull request #11227 from inietov/fixes/exception_getimagesize
Fixes #11116 Error exception in getimagesize
2022-05-31 14:09:18 -07:00
Ivan Nieto Vivanco
eb34cf7917 Evaluates if logo is uploaded before export PDF 2022-05-31 15:59:01 -05:00
snipe
4909cf2a9e Merge pull request #11212 from inietov/fixes/checkout_logs_require_target
Fixes Exception checkout logs require target
2022-05-28 06:12:55 -07:00
Ivan Nieto Vivanco
37f9cca5ec Minor stylistic change 2022-05-28 08:11:13 -05:00
Ivan Nieto Vivanco
72192257f2 Delete a test file 2022-05-26 18:18:13 -05:00
Ivan Nieto Vivanco
e0050bc844 Don't let a license to be checked out to a non-existent target 2022-05-26 18:06:53 -05:00
snipe
d2d0842737 Merge pull request #11206 from snipe/features/suggest_updating_global_composer
Added a self-update suggestion in the upgrader
2022-05-26 11:30:09 -07:00
snipe
fe3b9f9e86 Added a self-update suggestion in the upgrader
Signed-off-by: snipe <snipe@snipe.net>
2022-05-25 19:18:37 -07:00
snipe
0ea6671bfa Merge pull request #11202 from snipe/fixes/livewire_config
Starter Livewire config (for subdirectories)
2022-05-25 17:32:17 -07:00
snipe
9209675d45 Merge pull request #11204 from inietov/fixes/file_uploads_dont_show_in_target_activity_report
Fixes #11193 File Uploads don't show target in Activity report
2022-05-25 17:30:01 -07:00
Ivan Nieto Vivanco
3e44f39f4d Set the new File column as not visible by default 2022-05-25 19:19:25 -05:00
Ivan Nieto Vivanco
1f6ab340a6 Give a more descriptive name to variable 2022-05-25 18:53:17 -05:00
Ivan Nieto Vivanco
f208869aff Add column to show filenames in Activity Report if the log action is 'uploaded' 2022-05-25 18:50:32 -05:00
snipe
c031686825 Fixed path
Signed-off-by: snipe <snipe@snipe.net>
2022-05-25 15:12:38 -07:00
snipe
791c39d977 Starter Livewire config (for subdirectories)
Signed-off-by: snipe <snipe@snipe.net>
2022-05-25 15:10:20 -07:00
snipe
aac432b00c Merge remote-tracking branch 'origin/develop' 2022-05-24 20:53:36 -07:00
snipe
2b5b3273e2 Strip quote marks from env_values
Signed-off-by: snipe <snipe@snipe.net>
2022-05-24 20:52:03 -07:00
snipe
4f57eebf24 Merge remote-tracking branch 'origin/develop' 2022-05-24 20:10:13 -07:00
snipe
0c9a1a8922 Merge pull request #11198 from snipe/features/check_for_dev_v_prod_in_updater
Check for APP_ENV in upgrader
2022-05-24 20:09:43 -07:00
snipe
fa2a3e4b03 Added a line break
Signed-off-by: snipe <snipe@snipe.net>
2022-05-24 20:08:04 -07:00
snipe
94a337fc9e Rearrange a few thing
Signed-off-by: snipe <snipe@snipe.net>
2022-05-24 20:03:10 -07:00
snipe
8d9cdf9c15 Check for APP_ENV
Signed-off-by: snipe <snipe@snipe.net>
2022-05-24 19:56:42 -07:00
snipe
fb8d52d599 Merge remote-tracking branch 'origin/develop' 2022-05-24 19:37:34 -07:00
snipe
070c36ffe6 Merge pull request #11197 from uberbrady/improve_ldap_php_81
Fixes #11119 - Downgraded/Removed log statements
2022-05-24 19:37:04 -07:00
snipe
5db1c50816 Merge pull request #11196 from snipe/fearures/env_checker_in_upgrader
Added a simple .env checker into the upgrader
2022-05-24 19:36:21 -07:00
snipe
43e97ea6ea Make printout more consistent
Signed-off-by: snipe <snipe@snipe.net>
2022-05-24 19:36:01 -07:00
Brady Wetherington
8fdedf9441 Downgraded/Removed log statements 2022-05-24 19:30:22 -07:00
snipe
b67ed3eac2 Check for present APP_KEY as well
Signed-off-by: snipe <snipe@snipe.net>
2022-05-24 19:24:03 -07:00
snipe
116ce931ce Fixed path name to backup temp dir
Signed-off-by: snipe <snipe@snipe.net>
2022-05-24 18:44:32 -07:00
snipe
15d0fb4feb Added permissions check
Signed-off-by: snipe <snipe@snipe.net>
2022-05-24 18:40:15 -07:00
snipe
132b164a74 Slightly clarified error text
Signed-off-by: snipe <snipe@snipe.net>
2022-05-24 17:51:46 -07:00
snipe
bdbe2c3ac6 Added a simple .env checker into the upgrader
Signed-off-by: snipe <snipe@snipe.net>
2022-05-24 17:43:23 -07:00
snipe
2db6cf85a7 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	config/version.php
2022-05-24 15:10:46 -07:00
snipe
5be7dee3d3 Updated language strings
Signed-off-by: snipe <snipe@snipe.net>
2022-05-24 15:07:14 -07:00
snipe
72799973e7 Bumped version
Signed-off-by: snipe <snipe@snipe.net>
2022-05-24 14:41:44 -07:00
snipe
d8a8e03bf6 Nicer styling
Signed-off-by: snipe <snipe@snipe.net>
2022-05-24 14:39:01 -07:00
snipe
a243823e5e Merge pull request #11190 from inietov/fixes/requested_assets_models_workflow
Adjust requested assets and models workflow a little bit.
2022-05-24 14:31:40 -07:00
Ivan Nieto Vivanco
a4cf601c98 Remove extra tag and other stylistic changes 2022-05-24 16:27:55 -05:00
Ivan Nieto Vivanco
1e3c0d597e Use @can view directive instead of @if superadmin 2022-05-24 15:53:26 -05:00
snipe
91822d2e45 Use shorter helper config method
Signed-off-by: snipe <snipe@snipe.net>
2022-05-24 13:26:29 -07:00
snipe
43c5b412ca Merge remote-tracking branch 'origin/develop' 2022-05-24 13:17:39 -07:00
snipe
08ff71aae3 Merge pull request #11192 from snipe/fixes/typo_on_maintenance_screen
Fixed typo on maintenance screen
2022-05-24 13:16:50 -07:00
snipe
5d83516659 Fixed typoe on maintenance screen
Signed-off-by: snipe <snipe@snipe.net>
2022-05-24 13:15:01 -07:00
snipe
f39005d295 Merge remote-tracking branch 'origin/develop' 2022-05-24 13:13:21 -07:00
snipe
0e6c82776a Merge pull request #11191 from snipe/fixes/corrected_activated_language_in_bulk_edit
Updated language strings from activated to able to login
2022-05-24 13:13:02 -07:00
snipe
67616dbcf4 Updated language strings from activated to able to login
Signed-off-by: snipe <snipe@snipe.net>
2022-05-24 13:12:02 -07:00
snipe
5881eef2c6 Merge remote-tracking branch 'origin/develop' 2022-05-24 13:01:16 -07:00
snipe
4839985f38 Added forced space after admin/superadmin badge
Signed-off-by: snipe <snipe@snipe.net>
2022-05-24 12:59:36 -07:00
Ivan Nieto Vivanco
aa841a4674 Check permission before show links or not in requestable asset models view 2022-05-24 14:40:32 -05:00
Ivan Nieto Vivanco
6d1de73cad Fixes some html structure in the requested assets view 2022-05-24 14:06:05 -05:00
Ivan Nieto Vivanco
e0b64a4879 Fixes constraint violation when ordering some columns 2022-05-24 14:00:23 -05:00
Ivan Nieto Vivanco
0a6626891e Add links to requestable Models' name 2022-05-24 13:36:13 -05:00
snipe
2ec7644a33 Merge remote-tracking branch 'origin/develop' 2022-05-24 10:49:13 -07:00
snipe
810578ff5d Merge pull request #11189 from snipe/fixes/show_username_on_user_view_if_not_admin
Fixed bug where username wasn’t showing for regular users
2022-05-24 10:48:55 -07:00
snipe
64eafb062e Fixed bug where username wasn’t showing for regular users
Signed-off-by: snipe <snipe@snipe.net>
2022-05-24 10:48:02 -07:00
snipe
ad56928d04 Merge remote-tracking branch 'origin/develop' 2022-05-23 20:35:40 -07:00
snipe
30583f920d Merge pull request #11184 from uberbrady/fix_google_ldap_rebased
Google client-side TLS auth works better with null as context(?)
2022-05-23 20:35:15 -07:00
Brady Wetherington
5130a86854 Google client-side TLS auth works better with null as context(?) 2022-05-23 20:31:43 -07:00
snipe
e4e32307de Merge remote-tracking branch 'origin/develop' 2022-05-23 20:15:33 -07:00
snipe
e34ea32a5e Fixed translation styring reference
Signed-off-by: snipe <snipe@snipe.net>
2022-05-23 20:15:22 -07:00
snipe
b8e6df545a Bumped hash
Signed-off-by: snipe <snipe@snipe.net>
2022-05-23 18:55:57 -07:00
snipe
90a4ce5723 Merge remote-tracking branch 'origin/develop' 2022-05-23 18:54:40 -07:00
snipe
8333089278 Merge pull request #11172 from snipe/rebased_added_gitkeep_to_to_eula_pdfs
Accept asset/accessory improvements and fixes
2022-05-23 12:59:01 -07:00
snipe
70344cc02e Merge pull request #11149 from Godmartinz/gh11129_setting_disclosure_arrow
Fixed #11129 - settings treeview won't stay active.
2022-05-23 12:55:11 -07:00
Godfrey M
4adb990a5d removed line breaks and deadspace 2022-05-23 09:37:20 -07:00
Godfrey M
160a147a58 removed line breaks and deadspace 2022-05-23 09:35:19 -07:00
snipe
bd384d3f10 Small formatting fixes
Signed-off-by: snipe <snipe@snipe.net>
2022-05-19 17:55:59 -07:00
snipe
ad8143b0bd Added comments
Signed-off-by: snipe <snipe@snipe.net>
2022-05-19 17:55:59 -07:00
snipe
f439970e7a Fixed typo
Signed-off-by: snipe <snipe@snipe.net>
2022-05-19 17:55:59 -07:00
snipe
625f120813 Removed unused cases
Signed-off-by: snipe <snipe@snipe.net>
2022-05-19 17:55:59 -07:00
snipe
a37a576ee5 FIxed translation string
Signed-off-by: snipe <snipe@snipe.net>
2022-05-19 17:55:59 -07:00
snipe
2bd0679a81 A few more tweaks to PDFs
Signed-off-by: snipe <snipe@snipe.net>
2022-05-19 17:55:59 -07:00
snipe
b7eb72fe49 Rough refactor of the acceptance controller
Signed-off-by: snipe <snipe@snipe.net>
2022-05-19 17:55:59 -07:00
snipe
afb3843fad Added sig and filename to acceptedCheckout method
Signed-off-by: snipe <snipe@snipe.net>
2022-05-19 17:55:59 -07:00
snipe
8e85d316c9 Removed stored_eula_file from API transformer
Signed-off-by: snipe <snipe@snipe.net>
2022-05-19 17:55:59 -07:00
snipe
ebd3c11129 Added singleton
Signed-off-by: snipe <snipe@snipe.net>
2022-05-19 17:55:59 -07:00
snipe
75acb0f28a Added sig and eula pdf to checkout_acceptance
Signed-off-by: snipe <snipe@snipe.net>
2022-05-19 17:55:59 -07:00
snipe
eb5f33e815 Removed logging statement
Signed-off-by: snipe <snipe@snipe.net>
2022-05-19 17:55:59 -07:00
snipe
8c64e7359a Added signature column, removed stored_eula_file column
Signed-off-by: snipe <snipe@snipe.net>
2022-05-19 17:55:59 -07:00
snipe
14495cd1da Nicer PDF display
Signed-off-by: snipe <snipe@snipe.net>
2022-05-19 17:55:59 -07:00
snipe
93eba43b76 Removed trailing slash from route
Signed-off-by: snipe <snipe@snipe.net>
2022-05-19 17:55:59 -07:00
snipe
adbac82c30 Removed stored_eula_file from actionlog
Signed-off-by: snipe <snipe@snipe.net>
2022-05-19 17:55:59 -07:00
snipe
e467ce912b Added some debugging and comments
Signed-off-by: snipe <snipe@snipe.net>
2022-05-19 17:55:59 -07:00
snipe
4eab5fd075 Removed older comments
Signed-off-by: snipe <snipe@snipe.net>
2022-05-19 17:55:59 -07:00
snipe
d0e8a4ca09 Added some comments for clarity
Signed-off-by: snipe <snipe@snipe.net>
2022-05-19 17:55:59 -07:00
snipe
bcd0671213 Migration to drop stored_eula_column
It’s extraneous, since we already have a file field in the action_logs, and we already store the stored_eula_file in checkout_acceptances.

Signed-off-by: snipe <snipe@snipe.net>
2022-05-19 17:55:59 -07:00
snipe
266a9e5328 Removed stored_eula_file from controller
Signed-off-by: snipe <snipe@snipe.net>
2022-05-19 17:55:59 -07:00
snipe
a37fbe6abf Merge pull request #11171 from inietov/fixes/checkout_date_missing_in_mail_when_importing_assets
Fixes Checkout date missing in asset delivery mail
2022-05-19 15:49:43 -07:00
Ivan Nieto Vivanco
52901f50eb Add date to checkout action when importing assets 2022-05-19 17:38:10 -05:00
Ivan Nieto Vivanco
340c59969c Add query to update assigned assets location when importing users 2022-05-19 13:34:50 -05:00
snipe
8706b6d8a9 Merge pull request #11167 from inietov/fixes/error_500_on_import_page
Fixes #9019 Import page returns error 500
2022-05-19 10:50:59 -07:00
Ivan Nieto Vivanco
5d29f77d60 Initialize result variable so return don't crash 2022-05-19 12:47:12 -05:00
snipe
61a6c83418 Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	public/css/dist/skins/skin-black.css
#	public/css/dist/skins/skin-black.min.css
#	public/css/dist/skins/skin-blue.css
#	public/css/dist/skins/skin-blue.min.css
#	public/css/dist/skins/skin-green.css
#	public/css/dist/skins/skin-green.min.css
#	public/css/dist/skins/skin-orange.css
#	public/css/dist/skins/skin-orange.min.css
#	public/css/dist/skins/skin-purple.css
#	public/css/dist/skins/skin-purple.min.css
#	public/css/dist/skins/skin-red.css
#	public/css/dist/skins/skin-red.min.css
#	public/css/dist/skins/skin-yellow.css
#	public/css/dist/skins/skin-yellow.min.css
#	public/mix-manifest.json
2022-05-18 17:21:32 -07:00
snipe
deda1c2fd6 Merge pull request #11161 from snipe/fixes/corrects_retagging_script
Small fixes for asset tag regeneration script
2022-05-18 17:19:40 -07:00
snipe
4669bb54fe Small fixes for asset tag regeneration script
Signed-off-by: snipe <snipe@snipe.net>
2022-05-18 17:14:22 -07:00
snipe
319eae7810 Recompiled dev assets
Signed-off-by: snipe <snipe@snipe.net>
2022-05-18 16:21:04 -07:00
snipe
8449b5ca1e Merge pull request #11160 from uberbrady/improve_default_custom_field_value_on_asset_create
Fixed: #11098 - Smartly overwrite fields with default values for custom fields
2022-05-18 16:12:12 -07:00
Brady Wetherington
e4b24e17f3 Improve comments because the logic is complicated and unintuitive 2022-05-18 16:06:39 -07:00
Brady Wetherington
981741062b Try to intelligently overwrite fields with default values for custom field 2022-05-18 15:51:32 -07:00
snipe
a55adfc0a1 Merge pull request #11152 from Godmartinz/link_inconsistentcies
Thanks!
2022-05-18 15:45:30 -07:00
snipe
f609146c29 Corrected field name
Signed-off-by: snipe <snipe@snipe.net>
2022-05-18 15:37:10 -07:00
snipe
891009dc67 Nicer formatting for buttons in bulk user edit
Signed-off-by: snipe <snipe@snipe.net>
2022-05-18 15:35:57 -07:00
Godfrey M
ab23e04c65 re-adds Request::is to setting categories 2022-05-18 14:33:41 -07:00
Godfrey M
877b1bd0a3 re-adds Request::is to setting categories 2022-05-18 14:31:03 -07:00
snipe
c0d352dd7d Merge remote-tracking branch 'origin/develop' 2022-05-18 14:17:51 -07:00
snipe
bef895eaf4 Merge pull request #11158 from snipe/fixes/perform_db_migrate_on_restore
Run migrations after restore
2022-05-18 14:17:21 -07:00
snipe
014a32b050 Run migrations after restore
Signed-off-by: snipe <snipe@snipe.net>
2022-05-18 14:12:17 -07:00
snipe
937472feb0 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
2022-05-18 13:37:31 -07:00
snipe
f14a4d3bc7 Recompiled dev assets
Signed-off-by: snipe <snipe@snipe.net>
2022-05-18 13:35:38 -07:00
snipe
9e9d371e1c Merge pull request #11157 from uberbrady/fix_select2_autofocus
Downgrade jQuery to 3.5.1 from 3.6.0 to re-enable select2 autofocus
2022-05-18 13:34:22 -07:00
Brady Wetherington
9e2bcfe168 Downgrade jQuery to 3.5.1 from 3.6.0 to re-enable select2 autofocus 2022-05-18 13:24:02 -07:00
Godfrey M
eaeb74c576 readded comment 2022-05-18 13:13:38 -07:00
Godfrey M
23891054dc removed dead space and unused namespace 2022-05-18 13:11:20 -07:00
Godfrey M
cfc4c58da3 fixes the Settings Tree menu to remain active when opened 2022-05-18 13:06:06 -07:00
snipe
5f187f71c8 Merge remote-tracking branch 'origin/develop' 2022-05-18 13:05:47 -07:00
snipe
b2250ecb7a Merge pull request #11156 from inietov/fixes/error_500_on_unaccepeted_assets_report
Fixes error 500 on Unaccepted Assets Report
2022-05-18 13:04:54 -07:00
Ivan Nieto Vivanco
1453b36484 Add filter to only get Assets for the unaccepted assets report 2022-05-18 14:46:48 -05:00
snipe
4b21d9e7f4 Rebuild production assets
Signed-off-by: snipe <snipe@snipe.net>
2022-05-18 11:13:18 -07:00
snipe
4644f1479b Merge pull request #11154 from inietov/fixes/username_required_on_import
Fixes Username required on import process
2022-05-18 11:12:07 -07:00
snipe
3bf2328db2 Regenerated dev assets
Signed-off-by: snipe <snipe@snipe.net>
2022-05-18 11:11:34 -07:00
snipe
7d637eaa5a Merge pull request #11153 from Godmartinz/gh11146_license_detail_formatting
updated less files for license details to adhere to dark skin themes
2022-05-18 11:09:26 -07:00
Ivan Nieto Vivanco
32111a863b Call User::generateFormattedNameFromFullName() in the UserImporter 2022-05-18 13:02:44 -05:00
Godfrey M
0ed59753da updated less files for license details to adhere to dark skin themes 2022-05-18 10:55:57 -07:00
Godfrey M
75f5f3a0a8 fixes inconsistencies with links styling 2022-05-18 09:37:53 -07:00
Godfrey M
07679aa376 settings treeview won't stay active. still experimenting with potential solutions 2022-05-18 08:40:37 -07:00
snipe
b7b21689f2 Merge remote-tracking branch 'origin/develop' 2022-05-18 04:25:23 -07:00
snipe
b426fa352e Merge pull request #11147 from inietov/fixes/argument_passed_to_ItemImportRequest_is_null
FixesArgument 1 passed to App\Http\Requests\ItemImportRequest::import() must be an instance of App\Models\Import, null given
2022-05-18 04:24:46 -07:00
Ivan Nieto Vivanco
a771984619 Add an early return if for some reason the import record is not found 2022-05-18 06:15:46 -05:00
snipe
71828d5461 One more trim…. sigh..
Signed-off-by: snipe <snipe@snipe.net>
2022-05-18 03:53:42 -07:00
snipe
d9817ec696 Added a trim
Signed-off-by: snipe <snipe@snipe.net>
2022-05-18 03:51:53 -07:00
snipe
33ded3f18a More debugging
Signed-off-by: snipe <snipe@snipe.net>
2022-05-18 03:48:09 -07:00
snipe
004d567253 Added some debugging
Signed-off-by: snipe <snipe@snipe.net>
2022-05-18 03:31:00 -07:00
snipe
e2fd5199c3 Merge remote-tracking branch 'origin/develop' 2022-05-18 02:43:14 -07:00
snipe
b7b3b1a776 Merge pull request #11144 from snipe/fixes/add_spinner_to_backup_upload_icon
Added spinner onClick for file upload button on backups
2022-05-18 02:42:40 -07:00
snipe
4078e4e323 Added spinner onClick for file upload button on backups
Signed-off-by: snipe <snipe@snipe.net>
2022-05-18 02:40:32 -07:00
snipe
64d457425e Merge remote-tracking branch 'origin/develop' 2022-05-18 01:06:53 -07:00
snipe
524ef8261b Merge pull request #11142 from snipe/fixes/11141_fixed_accessories_api_endpoint
Fixed #11141 - accessories endpoint missing from API
2022-05-18 01:06:29 -07:00
snipe
344dcc10c1 Fixed #11141 - accessories endpoint missing from API
Signed-off-by: snipe <snipe@snipe.net>
2022-05-18 01:04:50 -07:00
snipe
2ad97ca040 Merge remote-tracking branch 'origin/develop' 2022-05-18 00:59:33 -07:00
snipe
7880e15672 Merge pull request #11140 from snipe/fixes/11120_textarea_on_fieldset
Fixed #11120 - custom fields not showing when textarea is present as field type
2022-05-18 00:59:13 -07:00
snipe
ceffbb950f Fixed #11120 - custom fields not showing when textarea is present as field type
Signed-off-by: snipe <snipe@snipe.net>
2022-05-18 00:47:22 -07:00
snipe
b941ea6950 Merge remote-tracking branch 'origin/develop' 2022-05-17 20:07:41 -07:00
snipe
54c1659210 Merge pull request #11139 from uberbrady/reduce_saml_debugging
Reduce saml debugging
2022-05-17 20:07:09 -07:00
Brady Wetherington
b4a0d33ba8 Reduce logging further; we know the main error condition now 2022-05-17 19:57:42 -07:00
Brady Wetherington
4e65a8d755 Reduce SAML debugging output to actual error conditions 2022-05-17 19:54:14 -07:00
snipe
bf028adcc3 Updated production assets
Signed-off-by: snipe <snipe@snipe.net>
2022-05-17 19:33:50 -07:00
snipe
137b558bef Merge pull request #11138 from snipe/fixes/updated_packages
Bumped packages
2022-05-17 19:32:18 -07:00
snipe
be5be7a8b9 Bumped packages
Signed-off-by: snipe <snipe@snipe.net>
2022-05-17 19:30:57 -07:00
snipe
2b3a1ee120 Merge pull request #11137 from snipe/fixes/removed_weird_file_in_upgrader
Delete vendor/symfony/translation/TranslatorInterface.php in upgrader
2022-05-17 19:13:20 -07:00
snipe
d316a3f044 Added trailing comma per convention
Signed-off-by: snipe <snipe@snipe.net>
2022-05-17 19:13:07 -07:00
snipe
105750bfde Delete vendor/symfony/translation/TranslatorInterface.php in upgrader
Signed-off-by: snipe <snipe@snipe.net>
2022-05-17 19:11:03 -07:00
snipe
3e34027ae0 Merge pull request #11136 from snipe/fixes/new_maintenance_page
Fixed #11124 - updated maintenance page
2022-05-17 19:03:54 -07:00
snipe
0f9559c1ff Fixed #11124 - updated maintenance page
Signed-off-by: snipe <snipe@snipe.net>
2022-05-17 19:01:37 -07:00
snipe
11db243514 Merge pull request #11135 from uberbrady/improve_restore_erroring
Do some better erroring if you can't launch the mysql binary
2022-05-17 18:16:40 -07:00
Brady Wetherington
d391980b06 Do some better erroring if you can't launch the mysql binary 2022-05-17 17:01:23 -07:00
snipe
a8eb138ae0 Merge pull request #11133 from inietov/fixes/backup_createdat_time_incorrect
Fixes #11096 Backup created_at time is incorrect
2022-05-17 14:39:19 -07:00
Ivan Nieto Vivanco
72493d54aa Show the date and time as the user select in their settings 2022-05-17 16:36:05 -05:00
Ivan Nieto Vivanco
91c7a89f93 Change to use the date() function instead of Helper::getFormattedDateObject() 2022-05-17 16:24:52 -05:00
snipe
11f540daaf Added debug line
Signed-off-by: snipe <snipe@snipe.net>
2022-05-17 09:41:35 -07:00
snipe
700b4ef058 Merge pull request #11127 from trav-c/bugfix/issue-11126-custom-css-encoding
Fixed #11126: don't entitise custom CSS on the labels view
2022-05-17 07:22:21 -07:00
Travers Carter
1fc0adf7b7 Fixed #11126: don't entitise custom CSS on the labels view 2022-05-18 00:16:18 +10:00
snipe
58875d5606 Added gitgnore to eula-pdfs
Signed-off-by: snipe <snipe@snipe.net>
2022-05-17 04:28:18 -07:00
snipe
0dfc98a493 Force db:wipe
Signed-off-by: snipe <snipe@snipe.net>
2022-05-17 04:27:48 -07:00
snipe
15a1db480a Merge pull request #11115 from snipe/fixes/update_constraints_to_php82
Update constraints to allow up to 8.2
2022-05-16 17:42:50 -07:00
snipe
3dc4f56fb4 Update constraints to allow up to 8.2
Signed-off-by: snipe <snipe@snipe.net>
2022-05-16 17:23:41 -07:00
snipe
7da8ec8448 Merge remote-tracking branch 'origin/develop' 2022-05-16 17:02:54 -07:00
snipe
a973c0626e Merge pull request #11114 from uberbrady/bad_header_label_for_size_in_backups
We inadvertently used the wrong label for one of the headers
2022-05-16 17:02:31 -07:00
Brady Wetherington
213d990e47 We inadvertently used the wrong label for one of the headers on the backups page 2022-05-16 17:00:22 -07:00
snipe
a5fbfdbab4 Merge remote-tracking branch 'origin/develop' 2022-05-16 16:51:46 -07:00
snipe
b705878318 Merge pull request #11113 from snipe/fixes/11112_correct_formatter_for_locations
Fixed #11112 - use correct formatter for locations on dashboard
2022-05-16 16:51:22 -07:00
snipe
925529923a Fixed #11112 - use correct formatter for locations on dashboard
Signed-off-by: snipe <snipe@snipe.net>
2022-05-16 16:50:47 -07:00
snipe
13ce7513f0 Merge remote-tracking branch 'origin/develop' 2022-05-16 15:59:54 -07:00
snipe
7a1b17ff6a Backslash log:: (we shouldn’t have to do this tho?)
Signed-off-by: snipe <snipe@snipe.net>
2022-05-16 15:59:41 -07:00
snipe
b32fba7f8a Switch to master
Signed-off-by: snipe <snipe@snipe.net>
2022-05-16 15:33:26 -07:00
snipe
7573a03cc5 Bumped minor version
Signed-off-by: snipe <snipe@snipe.net>
2022-05-16 15:32:57 -07:00
snipe
b2e7572fe0 Merge pull request #11111 from snipe/fixes/individual_pass_reset
Fixed #11100 for individual users
2022-05-16 12:08:08 -07:00
snipe
d4f7b5f80c Fixed #11100 for individual users
Signed-off-by: snipe <snipe@snipe.net>
2022-05-16 12:07:18 -07:00
snipe
64b582c657 Merge pull request #11108 from uberbrady/fix_ldap_first_login_password
Pass the password along directly instead of retrieving it from the In…
2022-05-16 11:01:35 -07:00
Brady Wetherington
6c86a28d18 Pass the password along directly instead of retrieving it from the Input or Request 2022-05-16 10:58:27 -07:00
snipe
63f8b0cad1 Merge pull request #11107 from uberbrady/fix_bulk_user_reset_passwords
Fixed #11104 - bulk-user reset-password links returning 500
2022-05-16 10:41:37 -07:00
Brady Wetherington
b05d85ab0a Fix bulk-user reset-password links 2022-05-16 10:38:12 -07:00
snipe
93e509bd79 Merge pull request #11105 from snipe/fixes/upgrade_dom_pdf
Upgraded dompdf
2022-05-16 10:18:37 -07:00
snipe
4c06a451b8 Upgraded dompdf
Signed-off-by: snipe <snipe@snipe.net>
2022-05-16 10:17:46 -07:00
snipe
1c32dcae9f Add login note to demo resetter
Signed-off-by: snipe <snipe@snipe.net>
2022-05-15 10:20:03 -07:00
snipe
33c3a5a8ca Merge pull request #11088 from uberbrady/fix_ldap_manager_sync
Only set manager ID when the lookup succeeds.
2022-05-15 09:45:04 -07:00
Brady Wetherington
f608e4586c Only set manager ID when the lookup succeeds. 2022-05-15 09:25:28 -07:00
snipe
a050be873b Merge pull request #11080 from snipe/fixes/remove_sr_only_for_backup_file
Removed sr-only class for now - not sure why it’s interfering with the upload button
2022-05-14 11:02:55 -07:00
snipe
ed8e82a606 Removed sr-only class for now - not sure why it’s interfering with the submit button JS
Signed-off-by: snipe <snipe@snipe.net>
2022-05-14 11:02:02 -07:00
snipe
8eed01bfa4 Merge pull request #11078 from snipe/fixes/show_encrypted_on_custom_field_view
Adds encrypted status to custom fields overview
2022-05-14 10:25:45 -07:00
snipe
418131df69 Merge pull request #11079 from snipe/fixes/adds_missing_backups_help_string
Fixed missing backups help string
2022-05-14 10:25:33 -07:00
snipe
5030c7e5ff Added missing backups help string
Signed-off-by: snipe <snipe@snipe.net>
2022-05-14 10:24:03 -07:00
snipe
91fb27ee00 Adds encrypted status to custom fields overview
Signed-off-by: snipe <snipe@snipe.net>
2022-05-14 10:20:04 -07:00
snipe
5f1f6baee9 Fixed unrelated typo
Signed-off-by: snipe <snipe@snipe.net>
2022-05-14 10:19:12 -07:00
snipe
cc35a9ab6b Merge pull request #11077 from snipe/fixes/11075_wrong_var_for_licenses
Fix route for people file deletion
2022-05-14 08:26:29 -07:00
snipe
3fe0e04d52 Fix roite for people file deletion
Signed-off-by: snipe <snipe@snipe.net>
2022-05-14 08:25:22 -07:00
snipe
d904fb1d80 Merge pull request #11076 from johnson-yi/fixes/saml_slo
Fixes #10706 - Fix saml slo for logout
2022-05-14 08:10:50 -07:00
Johnson Yi
4401dab8d6 fix saml slo for logout 2022-05-14 11:59:34 +00:00
snipe
c4d75dca68 Merge pull request #11073 from snipe/features/add_filesize_to_object_uploads
Fixed #11052 - add file sizes to upload displays
2022-05-13 19:39:07 -07:00
snipe
3a31104b5c Fixed #11052 - add file sizes to upload displays
Signed-off-by: snipe <snipe@snipe.net>
2022-05-13 19:33:14 -07:00
snipe
157944b774 Try conditiinal formatting to support apache 2.2 and 2.4
Signed-off-by: snipe <snipe@snipe.net>
2022-05-13 18:01:06 -07:00
snipe
3ff745937a Merge pull request #11070 from snipe/fixes/11068_use_statement_for_login_attempts
Added missing use statement
2022-05-13 16:46:39 -07:00
snipe
333aa05809 Added missing use statement
Signed-off-by: snipe <snipe@snipe.net>
2022-05-13 16:46:13 -07:00
snipe
c5ec3efc70 Merge pull request #11065 from snipe/fixes/double_encoding_for_custom_fields
Fixed  #11014 - double encoding for custom fields
2022-05-13 16:12:24 -07:00
snipe
747b58cb59 Bumped laravel version in readme
Signed-off-by: snipe <snipe@snipe.net>
2022-05-13 16:09:00 -07:00
snipe
8794936e1a Merge pull request #11067 from uberbrady/master
Fix cancel button in two-factor sign-in screen
2022-05-13 14:56:00 -07:00
Brady Wetherington
ec65f7c72a Merge remote-tracking branch 'upstream/master' 2022-05-13 14:50:08 -07:00
Brady Wetherington
b6284e6651 Fix 'cancel' button in two-factor screen 2022-05-13 14:49:37 -07:00
snipe
5cc4f9bc2a Merge pull request #11066 from uberbrady/fix_two_factor_v6
Switch the barcode backend to SVG, and fix the two-factor middleware
2022-05-13 14:38:15 -07:00
snipe
d8a4509b22 Fix logout on 2fa
Signed-off-by: snipe <snipe@snipe.net>
2022-05-13 14:36:20 -07:00
Brady Wetherington
0ddb0f2c81 Switch the barcode backend to SVG, and fix the two-factor middleware 2022-05-13 14:22:27 -07:00
snipe
ce5ae80755 Regenerated assets
Signed-off-by: snipe <snipe@snipe.net>
2022-05-13 13:44:51 -07:00
snipe
c0868a68fb Removed console.log cruft
Signed-off-by: snipe <snipe@snipe.net>
2022-05-13 13:44:38 -07:00
snipe
eccc5e7cf0 Make logout a post on 2FA cancel
Signed-off-by: snipe <snipe@snipe.net>
2022-05-13 13:35:13 -07:00
snipe
1424e168d6 Switch logout back to post
Signed-off-by: snipe <snipe@snipe.net>
2022-05-13 13:30:11 -07:00
snipe
bda5d13c2b Fixed route name for appending models to kit
Signed-off-by: snipe <snipe@snipe.net>
2022-05-13 13:26:01 -07:00
snipe
7c82f5670b One more 2FA login change
Signed-off-by: snipe <snipe@snipe.net>
2022-05-13 12:48:55 -07:00
snipe
32bbe7c715 Fixed 2FA middleware
Signed-off-by: snipe <snipe@snipe.net>
2022-05-13 12:45:54 -07:00
snipe
293e3e02e4 Updated cookie name
Signed-off-by: snipe <snipe@snipe.net>
2022-05-13 12:07:00 -07:00
snipe
13d81f0a0c Updated prod assets
Signed-off-by: snipe <snipe@snipe.net>
2022-05-13 11:55:19 -07:00
snipe
64dc6fbd9c Switched branch to master
Signed-off-by: snipe <snipe@snipe.net>
2022-05-13 11:52:27 -07:00
snipe
e55aac7fea Bumped hash
Signed-off-by: snipe <snipe@snipe.net>
2022-05-13 11:51:41 -07:00
snipe
6fc222a648 Fixed #11014 - Removed double escaping on custom fields
Signed-off-by: snipe <snipe@snipe.net>
2022-05-13 05:45:00 -07:00
snipe
b36bfad0ca Set maxlength on password confirmation form element
Signed-off-by: snipe <snipe@snipe.net>
2022-05-13 05:27:47 -07:00
snipe
6b27c0311d Updated help text on groups for more info on deselecting
Signed-off-by: snipe <snipe@snipe.net>
2022-05-13 05:23:12 -07:00
snipe
93454decec Fixed broken quotes
Signed-off-by: snipe <snipe@snipe.net>
2022-05-13 05:14:53 -07:00
snipe
47fb323d90 Adding feature request file back
Signed-off-by: snipe <snipe@snipe.net>
2022-05-13 05:03:48 -07:00
snipe
e4bd5be4fe Try deleting the issue template file because wtf?
Signed-off-by: snipe <snipe@snipe.net>
2022-05-13 05:03:27 -07:00
snipe
cf4b418b22 Merge pull request #11063 from snipe/fixes/set_maxlength_for_user_fields
Sets maxlength of user fields to 191
2022-05-13 04:56:09 -07:00
snipe
deb2d958d8 Sets maxlength of user fields to 191
Signed-off-by: snipe <snipe@snipe.net>
2022-05-13 04:54:12 -07:00
snipe
c3e8c35063 Replaced feature request
Signed-off-by: snipe <snipe@snipe.net>
2022-05-12 22:15:02 -07:00
snipe
aa04a9b2e2 Clear feature template to see if it fixes docker issue
Signed-off-by: snipe <snipe@snipe.net>
2022-05-12 22:14:49 -07:00
snipe
0cb6a9ce69 Bumped tableexport plugin
Signed-off-by: snipe <snipe@snipe.net>
2022-05-12 22:14:09 -07:00
snipe
ef1eb15a91 Merge remote-tracking branch 'origin/master' into develop
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	config/permissions.php
2022-05-12 09:31:42 -07:00
snipe
714f6d80f2 Merge pull request #11059 from Godmartinz/feature/sc-19017/change-bootstrap-tables-export-to-be-landscape
Bootstrap tables export as landscape
2022-05-12 09:28:47 -07:00
Godfrey M
54f5e268a0 removed change from tableExport.js 2022-05-12 09:20:19 -07:00
Godfrey M
83d0743ab8 saves bootstrap pdf tables in landscape 2022-05-12 09:18:44 -07:00
snipe
722e88a472 Merge pull request #11058 from snipe/fixes/kit_permissions
Fixed kit checkout permissions if admin is not superadmin
2022-05-11 20:11:13 -07:00
snipe
91cc08d3fb Merge pull request #11050 from uberbrady/fix_encrypted_textareas
Make sure to decrypt Textareas as well as input type=text
2022-05-11 19:03:02 -07:00
snipe
c52faaf23d Added checkout to permissions check
Signed-off-by: snipe <snipe@snipe.net>
2022-05-11 19:02:23 -07:00
snipe
c0ef27fc9e Removed kit checkout permission - it’s just confusing
Signed-off-by: snipe <snipe@snipe.net>
2022-05-11 19:02:11 -07:00
snipe
5a5bb79188 Merge pull request #11055 from uberbrady/update_livewire_assets
Update Livewire assets, and make Composer auto-update Livewire assets
2022-05-11 14:02:04 -07:00
Brady Wetherington
35450aebdd Update Livewire assets, and make Composer auto-update Livewire assets as needed 2022-05-11 14:00:10 -07:00
Godfrey M
8ebe64e630 fixes final visual issue 2022-05-11 12:13:36 -07:00
Brady Wetherington
e3696ff84c Make sure to decrypt Textareas as well as input type=text 2022-05-10 18:39:03 -07:00
snipe
446e44deb6 Merge pull request #11048 from Godmartinz/bug/sc-18989/purchase-cost-can-be-negative
Fixed validation for purchase cost allowed to be negative
2022-05-10 17:36:01 -07:00
snipe
816437b4d8 Updated hash
Signed-off-by: snipe <snipe@snipe.net>
2022-05-10 17:28:11 -07:00
snipe
5dfdf73e01 Dev assets
Signed-off-by: snipe <snipe@snipe.net>
2022-05-10 17:28:06 -07:00
snipe
780222d372 Merge remote-tracking branch 'origin/master' into develop
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	app/Http/Controllers/Api/AssetsController.php
#	app/Http/Controllers/Auth/LoginController.php
#	resources/views/users/print.blade.php
2022-05-10 17:26:26 -07:00
Godfrey M
2c1f368828 adds validation for all purchase costs variables 2022-05-10 16:26:06 -07:00
Godfrey M
33b1ab3658 prevents values for assets being negative through validation 2022-05-10 16:19:06 -07:00
snipe
f4650c65db Clearer phrasing for log
Signed-off-by: snipe <snipe@snipe.net>
2022-05-10 13:00:48 -07:00
snipe
d3830a44d8 Added more verbose messaging
Signed-off-by: snipe <snipe@snipe.net>
2022-05-10 12:40:50 -07:00
snipe
5869b6ed0c And still more debugging
Signed-off-by: snipe <snipe@snipe.net>
2022-05-10 12:38:46 -07:00
snipe
4fccf4ddc4 Few more log lines
Signed-off-by: snipe <snipe@snipe.net>
2022-05-10 12:27:42 -07:00
snipe
646166b2b6 Removed debug line
Signed-off-by: snipe <snipe@snipe.net>
2022-05-10 12:16:07 -07:00
snipe
f4e737eaf3 More SAML debugging
Signed-off-by: snipe <snipe@snipe.net>
2022-05-10 12:14:22 -07:00
snipe
f572eaa421 Added debugging for SAML login
Signed-off-by: snipe <snipe@snipe.net>
2022-05-10 12:07:07 -07:00
Godfrey M
c07a244bab fixes 1/2 visual issues, adds history tab to accessories 2022-05-10 11:20:42 -07:00
snipe
72fe0d22ea Merge pull request #11040 from snipe/uberbrady-patch-2
Remove extraneous `{` in migration
2022-05-09 11:59:23 -07:00
Brady Wetherington
5357b1fa10 Remove extraneous { in migration
It looks like we inadvertently got an extra `{` in here - I noticed it because my IDE threw a big red dot on this migration. We must've accidentally put that in when we were adding the 'id' column.
2022-05-09 11:56:05 -07:00
snipe
f3fc81b860 Merge pull request #11039 from snipe/features/adds_seat_id_to_seats_ui
Added license seat ID to the UI
2022-05-09 10:59:47 -07:00
snipe
dc8669121d Added license seat ID to the UI
Signed-off-by: snipe <snipe@snipe.net>
2022-05-09 10:59:06 -07:00
Shao Yu-Lung (Allen)
8a032ee040 fix type 2022-05-07 22:54:47 +08:00
Shao Yu-Lung (Allen)
a835401cb2 skip run schedule analysis job on forked repos 2022-05-07 22:50:01 +08:00
snipe
dfd4d54433 Fixed route name
Signed-off-by: snipe <snipe@snipe.net>
2022-05-06 15:46:25 -07:00
snipe
e353780b1b Merge pull request #11027 from snipe/features/add_bulk_edit_to_other_asset_views
Fixed #11026 - add bulk edit to other asset views
2022-05-06 14:21:10 -07:00
snipe
220f94faee Check that the session key exists
Signed-off-by: snipe <snipe@snipe.net>
2022-05-06 14:10:47 -07:00
snipe
d5edb0908b Added translation string to the correct file this time
Signed-off-by: snipe <snipe@snipe.net>
2022-05-06 14:07:05 -07:00
snipe
89fee23d32 Commented out console log that was pooping up the joint
Signed-off-by: snipe <snipe@snipe.net>
2022-05-06 08:34:30 -07:00
snipe
2982d78899 Added translation for no assets selected
Signed-off-by: snipe <snipe@snipe.net>
2022-05-06 05:42:02 -07:00
snipe
22ec3c1398 Use error style instead of warn/info when nothing was selected
Signed-off-by: snipe <snipe@snipe.net>
2022-05-06 05:41:52 -07:00
snipe
caf17d4f25 Fixed wrong variable name
Signed-off-by: snipe <snipe@snipe.net>
2022-05-06 05:41:32 -07:00
snipe
e1b24bb763 Added a comment
Signed-off-by: snipe <snipe@snipe.net>
2022-05-06 05:30:21 -07:00
snipe
304cd75af5 Fixed extra divs
Signed-off-by: snipe <snipe@snipe.net>
2022-05-06 05:20:44 -07:00
snipe
59a0f4722b Use partial for asset bulk edit
Signed-off-by: snipe <snipe@snipe.net>
2022-05-06 05:20:35 -07:00
snipe
418a797e7e Use partial for asset bulk edit
Signed-off-by: snipe <snipe@snipe.net>
2022-05-06 05:20:29 -07:00
snipe
adc017db23 Added checkbox to audit listing
Signed-off-by: snipe <snipe@snipe.net>
2022-05-06 05:16:13 -07:00
snipe
0c20543c49 Remove conflicting toolbar call in model listing
Signed-off-by: snipe <snipe@snipe.net>
2022-05-06 05:15:58 -07:00
snipe
fe98e505fe Use the new partial for bulk asset edit
Signed-off-by: snipe <snipe@snipe.net>
2022-05-06 05:15:31 -07:00
snipe
78a9c16761 Minor formatting improvements
Signed-off-by: snipe <snipe@snipe.net>
2022-05-06 05:15:10 -07:00
snipe
c4bf0045c8 Fixed stray < tag
Signed-off-by: snipe <snipe@snipe.net>
2022-05-06 05:14:55 -07:00
snipe
c64f34ebcc Check the "do not change” radio button by default
Signed-off-by: snipe <snipe@snipe.net>
2022-05-06 05:14:31 -07:00
snipe
76213ec3d9 Create a session on bulk actions, store it for redirect, then delete it
Signed-off-by: snipe <snipe@snipe.net>
2022-05-06 05:14:08 -07:00
snipe
243739e9c3 Added missing gate for bulk checkout
Signed-off-by: snipe <snipe@snipe.net>
2022-05-06 05:13:36 -07:00
snipe
cf0548bd1f Create a new partial for asset bulk actions
Signed-off-by: snipe <snipe@snipe.net>
2022-05-06 05:11:52 -07:00
snipe
a43b54cc8d Bumped hash for clarity
Signed-off-by: snipe <snipe@snipe.net>
2022-05-06 02:13:56 -07:00
snipe
caef98d36d Patched #11025 to develop
Signed-off-by: snipe <snipe@snipe.net>
2022-05-06 02:06:12 -07:00
snipe
f91be34baf Merge pull request #11025 from snipe/fixes/missed_a_few_trans_strings
Fixed #10890 - Missed a few hard coded english strings
2022-05-06 02:02:15 -07:00
snipe
fba731ac1c Missed a few hard coded english strings
Signed-off-by: snipe <snipe@snipe.net>
2022-05-06 02:01:17 -07:00
snipe
784bf4d784 Merge remote-tracking branch 'origin/master' into develop
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	.github/ISSUE_TEMPLATE/feature_request.yml
#	app/Http/Controllers/CustomFieldsetsController.php
#	app/Http/Controllers/ReportsController.php
#	config/version.php
#	package-lock.json
#	package.json
#	public/css/dist/all.css
#	public/css/dist/bootstrap-table.css
#	public/js/dist/bootstrap-table.js
#	public/mix-manifest.json
#	resources/views/users/print.blade.php
#	webpack.mix.js
2022-05-06 01:52:43 -07:00
snipe
6304709c77 Merge pull request #11023 from snipe/fixes/10890_use_translation_strings_in_assigned_printout
Fixed #10890 - Use translation strings in assigned printout instead of hardcoded English
2022-05-06 01:33:46 -07:00
snipe
39ee825ba2 Fixed html lang specification
Signed-off-by: snipe <snipe@snipe.net>
2022-05-06 01:32:20 -07:00
snipe
c0e9393092 Fixed #10890 - use translation strings in user asset printout
Signed-off-by: snipe <snipe@snipe.net>
2022-05-06 01:30:58 -07:00
snipe
1ac626a43a Merge pull request #11022 from snipe/fixes/specify_full_url_in_favicons
Use full app_url in favicon paths
2022-05-06 00:22:14 -07:00
snipe
3a415b2fce Use full app_url in favicon paths
Signed-off-by: snipe <snipe@snipe.net>
2022-05-06 00:19:32 -07:00
snipe
b20921cb62 Removed duplicate session regenerate
Signed-off-by: snipe <snipe@snipe.net>
2022-05-05 21:35:05 -07:00
snipe
2e03270fca Updated feature request YAML
Signed-off-by: snipe <snipe@snipe.net>
2022-05-05 19:06:25 -07:00
snipe
5370c2ca42 Merge pull request #10941 from Godmartinz/gh8856_signature_not_showing_in_print_all
[Fix] changes the query for the accept signature on print blade
2022-05-05 13:32:37 -07:00
snipe
0939591efb Merge pull request #11003 from inietov/fixes/integrity_constraint_violation_column_order_cannot_be_null_develop
Fixes QueryException Integrity constraint violation: Column 'order' cannot be null for develop
2022-05-05 13:28:00 -07:00
snipe
a859eac4a0 Merge pull request #11002 from inietov/fixes/integrity_constraint_violation_column_order_cannot_be_null
Fixes QueryException Integrity constraint violation:  Column 'order' cannot be null
2022-05-05 13:27:45 -07:00
snipe
35d81be8d1 Merge pull request #11018 from snipe/update_bootstrap_table_to_latest
Update BS tables and table export to latest
2022-05-05 13:23:55 -07:00
snipe
a5760cfe7b Update BS tables and table export to latest
Signed-off-by: snipe <snipe@snipe.net>
2022-05-05 12:22:20 -07:00
snipe
cab29745e7 More small tweaks to feature request template
Signed-off-by: snipe <snipe@snipe.net>
2022-05-05 11:17:31 -07:00
snipe
41fa42f7d8 FR updates
Signed-off-by: snipe <snipe@snipe.net>
2022-05-05 11:14:55 -07:00
snipe
eb49c33e1b Reverting feature request YAML
Signed-off-by: snipe <snipe@snipe.net>
2022-05-05 11:10:11 -07:00
snipe
31f2b73e5a Bumped version to GM
Signed-off-by: snipe <snipe@snipe.net>
2022-05-05 10:55:29 -07:00
snipe
953b3a8d6e Merge pull request #10993 from snipe/rcs/merge_master_into_develop_for_rc_8
Merge master into develop for RC 6.0.0-8
2022-05-05 10:53:17 -07:00
snipe
c01f0880ef Changed language string
Signed-off-by: snipe <snipe@snipe.net>
2022-05-05 10:52:57 -07:00
snipe
c838354b74 Merge pull request #11016 from benwa/patch-1
Update feature_request.yml
2022-05-05 10:19:37 -07:00
Bennett Blodinger
46c4d1a3d6 Update feature_request.yml
Correcting the label/description fields
2022-05-05 09:49:41 -05:00
snipe
57ed3afcc4 Bumped version
Signed-off-by: snipe <snipe@snipe.net>
2022-05-04 16:50:50 -07:00
snipe
5c78a15835 Removed dupe lines from merge conflict
Signed-off-by: snipe <snipe@snipe.net>
2022-05-03 12:56:29 -07:00
snipe
011ab604f2 Merge pull request #11001 from inietov/fixes/download_all_triggers_getDisplayNameAttribute_on_null_develop
Fixes Activity Report Download all action fails creating the CSV report for develop.
2022-05-03 20:52:47 +01:00
snipe
fd71b48489 Merge pull request #11000 from inietov/fixes/download_all_triggers_getDisplayNameAttribute_on_null
Fixes Activity Report Download all action fails creating the CSV report.
2022-05-03 20:52:42 +01:00
Ivan Nieto Vivanco
37805509da Adds an integer casting to the order input field so it cannot be null 2022-05-01 15:27:05 -05:00
Ivan Nieto Vivanco
01232d9a54 Adds an integer casting to the order input field so it cannot be null 2022-05-01 15:16:56 -05:00
Ivan Nieto Vivanco
ac8da55270 Evaluate if an item still exists before trying to get its name in the report 2022-05-01 13:25:55 -05:00
Ivan Nieto Vivanco
1cbbf8f976 Evaluate if an item still exists before trying to get its name in the report 2022-05-01 13:11:05 -05:00
snipe
313150e6dd Merge pull request #10998 from johnson-yi/fixes/saml_logout
Fixes #10980 - Prevent immediate saml login after normal logout
2022-04-30 19:49:54 +01:00
Johnson Yi
281c6df7b3 Customize login page when REQUIRE_SAML is enabled 2022-04-29 15:35:40 +00:00
Johnson Yi
92fe1287ea Do not saml login automatically after normal logout 2022-04-29 15:35:08 +00:00
snipe
5a8c3444e2 Merge pull request #10994 from snipe/fixes/use_str_slug_for_fileName_export
Fixed model export filename to use str_slug for filename for JS export (like we do elsewhere)
2022-04-28 21:58:28 +01:00
snipe
edab4e1371 Uses str_slug for filename for JS export (like we do elsewhere)
Signed-off-by: snipe <snipe@snipe.net>
2022-04-28 21:55:26 +01:00
snipe
150724b744 Bumped version
Signed-off-by: snipe <snipe@snipe.net>
2022-04-28 17:51:27 +01:00
snipe
9aac1cbba4 Merge branch 'master' into rcs/merge_master_into_develop_for_rc_8
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	README.md
#	app/Console/Commands/MoveUploadsToNewDisk.php
#	app/Http/Controllers/ActionlogController.php
#	app/Http/Controllers/Api/LicensesController.php
#	app/Http/Controllers/Api/StatuslabelsController.php
#	app/Http/Controllers/Assets/AssetCheckinController.php
#	app/Http/Controllers/Licenses/LicensesController.php
#	app/Http/Controllers/Users/BulkUsersController.php
#	app/Http/Requests/AssetCheckoutRequest.php
#	app/Importer/LicenseImporter.php
#	app/Models/Actionlog.php
#	app/Models/License.php
#	app/Models/User.php
#	app/Observers/AssetObserver.php
#	composer.lock
#	config/version.php
#	database/factories/LicenseFactory.php
#	database/migrations/2015_09_21_235926_create_custom_field_custom_fieldset.php
#	database/migrations/2018_10_18_191228_add_kits_licenses_table.php
#	database/migrations/2018_10_19_153910_add_kits_table.php
#	database/migrations/2018_10_19_154013_add_kits_models_table.php
#	database/migrations/2019_02_07_185953_add_kits_consumables_table.php
#	database/migrations/2019_02_07_190030_add_kits_accessories_table.php
#	package-lock.json
#	package.json
#	public/css/dist/all.css
#	public/css/dist/bootstrap-table.css
#	public/js/dist/bootstrap-table.js
#	public/mix-manifest.json
#	resources/lang/ar/general.php
#	resources/lang/ar/passwords.php
#	resources/lang/cs/general.php
#	resources/lang/cs/passwords.php
#	resources/lang/de/admin/custom_fields/general.php
#	resources/lang/de/admin/settings/general.php
#	resources/lang/de/admin/settings/message.php
#	resources/lang/fr/admin/custom_fields/general.php
#	resources/lang/fr/admin/hardware/general.php
#	resources/lang/fr/admin/locations/table.php
#	resources/lang/fr/admin/settings/message.php
#	resources/lang/hu/admin/custom_fields/general.php
#	resources/lang/hu/admin/settings/general.php
#	resources/lang/hu/general.php
#	resources/lang/it/admin/settings/general.php
#	resources/lang/nl/admin/custom_fields/general.php
#	resources/lang/nl/admin/settings/general.php
#	resources/lang/nl/general.php
#	resources/lang/pl/admin/custom_fields/general.php
#	resources/lang/sv-SE/passwords.php
#	resources/lang/tr/general.php
#	resources/views/hardware/view.blade.php
#	resources/views/partials/bootstrap-table.blade.php
#	resources/views/reports/activity.blade.php
#	resources/views/users/print.blade.php
2022-04-28 17:49:06 +01:00
snipe
173ec44b9e Merge pull request #10991 from snipe/fixes/added_gate_to_requested_assets
Added access gate to the requested assets index
2022-04-28 15:47:54 +01:00
snipe
2e9cf8fa87 Added access gate to the requested assets index
Signed-off-by: snipe <snipe@snipe.net>
2022-04-28 15:45:37 +01:00
snipe
126bb486b5 Add @chrisweirich as a contributor 2022-04-28 15:30:12 +01:00
snipe
c8d5445178 Merge pull request #10982 from Trizelos/develop
Fixed #10983: Possibility to set region for AWS (SES)
2022-04-28 14:23:39 +01:00
Shao Yu-Lung (Allen)
2cd7c7a357 Ensure analysis job never runs on forked repos 2022-04-28 16:51:53 +08:00
Christian Weirich
4be6288ae3 Possibility to set region for AWS (SES) 2022-04-27 15:26:33 +02:00
snipe
0abc108686 Merge pull request #10971 from snipe/fixes/potential_xss_in_depreciation
Escape checkout target name
2022-04-24 15:27:58 +01:00
snipe
f623d05d0c Escape checkout target name
Signed-off-by: snipe <snipe@snipe.net>
2022-04-24 15:27:11 +01:00
Achmad Fienan Rahardianto
dafe353050 Implements #8155 to improve the workflow during asset creation
- adding 2 options to hide optional information
2022-04-23 14:41:38 +07:00
snipe
ef7f21e3ba Merge pull request #10952 from Godmartinz/fixes_double_updates
fixes double updates from action log and history
2022-04-21 21:25:29 +01:00
Godfrey M
91694064fb fixes double updates from action log and history 2022-04-18 11:30:24 -07:00
snipe
9a0219eff7 Merge pull request #10943 from snipe/fixes/add_status_id_to_checkout_api
Added status_id to asset checkout API
2022-04-15 14:38:44 +01:00
snipe
b2087a9947 Adds validator to make sure the status ID is deployable
Signed-off-by: snipe <snipe@snipe.net>
2022-04-15 13:06:55 +01:00
snipe
6b1329133b Adds status ID to asset checkout API endpoint
Signed-off-by: snipe <snipe@snipe.net>
2022-04-15 13:06:35 +01:00
snipe
e4ef970934 Bumped version
Signed-off-by: snipe <snipe@snipe.net>
2022-04-15 12:26:58 +01:00
snipe
f211c11034 Merge pull request #10942 from snipe/fixes/xss_user_requested
Fixes potential XSS vuln in user requestable results
2022-04-15 12:25:56 +01:00
snipe
698c7f4904 Fixes potential XSS vuln in user requestable results
Signed-off-by: snipe <snipe@snipe.net>
2022-04-15 12:22:20 +01:00
Godfrey M
380cb38b7d changes the query for the accept signature on print blade 2022-04-14 17:17:28 -07:00
snipe
7479f5f12d Merge pull request #10936 from snipe/fixes/backport_licenses_loading
Ports #10494 to master
2022-04-12 21:31:19 +01:00
snipe
161c6b7d31 Removed security-advisories package for now
Signed-off-by: snipe <snipe@snipe.net>
2022-04-12 21:17:29 +01:00
snipe
1441cf9f4f Ports #10494 to master
Signed-off-by: snipe <snipe@snipe.net>
2022-04-12 21:04:57 +01:00
snipe
270143bb46 Merge pull request #10935 from uberbrady/backport_license_index_master
Backport the license index fix from Develop onto the v5 branch
2022-04-12 20:14:00 +01:00
Brady Wetherington
6b0a1ab3fb Backport the license index fix from Develop onto the v5 branch 2022-04-12 20:11:25 +01:00
snipe
809fe7f6d8 Compiled assets
Signed-off-by: snipe <snipe@snipe.net>
2022-04-12 19:28:58 +01:00
snipe
bdbb0c0ce5 Merge pull request #10928 from uberbrady/fix_remembered_columns_develop
Fix #10482 for develop - Downgrade bootstrap-table to fix remembered-columns feature
2022-04-11 18:57:24 +01:00
snipe
5fba8202d6 Updated translations
Signed-off-by: snipe <snipe@snipe.net>
2022-04-11 15:40:58 +01:00
snipe
61f5825c69 Bumped version
Signed-off-by: snipe <snipe@snipe.net>
2022-04-11 15:37:38 +01:00
snipe
5314ef97e5 Updated assets
Signed-off-by: snipe <snipe@snipe.net>
2022-04-11 15:08:39 +01:00
snipe
b7fbc5d018 Merge pull request #10927 from uberbrady/fix_columns_master
Fixes #10482 - Downgrade bootstrap-table so columns stay remembered
2022-04-11 15:03:08 +01:00
Brady Wetherington
3472aa9a46 Downgrade bootstrap-table to fix remembered-columns feature 2022-04-11 14:41:46 +01:00
Brady Wetherington
211a0820e5 Downgrade bootstrap-table so columns stay remembered 2022-04-11 14:29:59 +01:00
snipe
7b891f0952 Merge pull request #10913 from inietov/fixes/bulk_user_edit_not_updating_asset_locations
Fixes Bulk user edit not updating checked out asset locations
2022-04-07 19:41:01 +01:00
snipe
8218b5ef47 Merge pull request #10914 from inietov/fixes/bulk_user_edit_not_updating_asset_locations_develop
Fixes Bulk user edit not updating checked out asset locations
2022-04-07 19:40:42 +01:00
snipe
b73542664b Merge pull request #10919 from Godmartinz/gh10866-checkin_time_always_show_12am
Fixed #10866 - Checkin time always shows 12am
2022-04-07 19:40:11 +01:00
snipe
6c1bb89776 Merge pull request #10920 from Godmartinz/Fixed_#10866_-_Checkin_time_always_shows_12am-master
Fixed #10866 - action_date for check-in not including H:i:s
2022-04-07 19:39:59 +01:00
Godfrey M
3eb7a87a66 fixes action_date for check-in not including H:i:s 2022-04-07 11:24:12 -07:00
Godfrey M
1325628039 fixes typo 2022-04-07 11:18:16 -07:00
Godfrey M
8498082f21 fixes typo 2022-04-07 11:16:40 -07:00
Godfrey M
6dc45c189b removed deadspace 2022-04-07 11:10:36 -07:00
Godfrey M
5d0a1ebb7a fixes action_date for check-in not including H:i:s 2022-04-07 11:08:43 -07:00
snipe
30a5d57ce5 Merge pull request #10917 from uberbrady/bs_tables_export_without_html_develop
This disables the display of HTML content during exports
2022-04-07 16:44:36 +01:00
snipe
0cb4caa4cf Merge pull request #10918 from uberbrady/bs_tables_export_without_html_master
This disables the display of HTML content during exports (cherry-picked for master)
2022-04-07 16:44:21 +01:00
Brady Wetherington
4db7cb0e21 This disables the display of HTML content during exports, without enabling XSS attacks 2022-04-07 16:37:32 +01:00
Brady Wetherington
5a776af091 This disables the display of HTML content during exports, without enabling XSS attacks 2022-04-07 16:27:06 +01:00
Ivan Nieto Vivanco
e1927aa154 Update Assets locations when user's location changes whey they got bulk-edited 2022-04-06 19:23:49 -05:00
Ivan Nieto Vivanco
6529a75683 Update Assets locations when user's location changes whey they got bulk-edited 2022-04-06 19:12:02 -05:00
snipe
4b255ada70 Removed first()
Signed-off-by: snipe <snipe@snipe.net>
2022-04-06 12:08:51 +01:00
snipe
01342ca266 Fixed activity report
Signed-off-by: snipe <snipe@snipe.net>
2022-04-05 22:58:25 +01:00
Ivan Nieto Vivanco
b5378eff64 Fix several typos 2022-04-05 16:12:31 -05:00
snipe
8195a664a9 Merge pull request #10883 from inietov/fixes/update_existing_value_import_develop
Fixes Importer always update existing values develop
2022-04-05 21:11:24 +01:00
snipe
87fc856361 Merge pull request #10902 from snipe/fixes/added_primary_key_to_custom_fields_pivot
Fixed #10892 - MySQL 8 compatibilty requires primary key
2022-04-05 20:35:14 +01:00
snipe
7385a0765e Merge pull request #10889 from uberbrady/scim_squashed_grok_library
SCIM integration using laravel-scim-server library
2022-04-05 20:32:16 +01:00
Brady Wetherington
599d725d55 Just needed to adjust the hash so that the composer.lock is correct 2022-04-05 20:31:34 +01:00
snipe
3dd7c00a0b Update migration back in time
Signed-off-by: snipe <snipe@snipe.net>
2022-04-05 20:31:17 +01:00
Brady Wetherington
9bd04eb8c9 Use our forked version of the Laravel-SCIM-Server package (hopefully temporary) 2022-04-05 20:26:40 +01:00
Brady Wetherington
6756dd193e SCIM integration using the 're-do-the routes' approach, which seems like a dead-end
Cleaning up routes to match laravel-scim-server's recommended implementation

Some actually *working* changes for SCIM support?!

Whoops, forgot my route file

Fix public SCIM routes

Removed Ziggy, removed old generated file, yanked Ziggy references

Resolves the first set of comments for SCIM

Ensure all /api routes have baseUrl prepended

Fix the parent:: call to be, uh, actually correct :P

Clarify the route-ordering, as it is quite tricky

This gets it so that users can actually be saved..

Work around the lack of callbacks with some inheritance

Mapped a bunch more fields from SCIM into Snipe-IT's user table

More baseUrl shenanigans since we yanked Ziggy :/

Properly map job title and work with some other necessary attributes

Map more fields...

Finalized basic mapping for core and enterprise namespaces

Latest tuned settings for SCIM config to work with Azure (and others)
2022-04-05 20:26:37 +01:00
snipe
56ee5c50a9 Merge pull request #10897 from ubc-cpsc/develop
Security updates to enshrined/svg-sanitize and guzzlehttp/psr7
2022-04-05 20:19:26 +01:00
snipe
0c31e840c4 Merge pull request #10903 from inietov/fixes/erroneous_checkout_date_in_print_all_assigned_report
Fixes Dates in Print All Assigned report doesn't match to history
2022-04-05 20:19:10 +01:00
snipe
c12ef19fcc Fixed #10892 - MySQL 8 compatibilty requires primary key
Signed-off-by: snipe <snipe@snipe.net>
2022-04-05 18:58:14 +01:00
Ivan Nieto Vivanco
2d213a9c77 Make the report take the dates of pivot table instead of asset log 2022-04-05 12:57:49 -05:00
snipe
91e6acbfd9 Add @veenone as a contributor 2022-04-05 18:52:17 +01:00
snipe
08588a2e6a Merge pull request #10901 from veenone/fix/invalid_consumable_date_in_user_view
Fixes #10898 (invalid consumable date time info in user view)
2022-04-05 18:30:23 +01:00
snipe
0882cfede2 Merge pull request #10895 from ubc-cpsc/master
Security fixes to master branch
2022-04-05 18:29:25 +01:00
Achmad Fienan Rahardianto
231a34ace3 FIX: #10898 (invalid consumable date time info in user view) 2022-04-05 15:31:27 +07:00
Joël Pittet
472c94ef89 Security updates to enshrined/svg-sanitize and guzzlehttp/psr7 2022-04-04 12:31:27 -07:00
Joël Pittet
96cd90f842 Security fixes to master branch 2022-04-04 11:04:06 -07:00
Ivan Nieto Vivanco
1a448cc4b6 Take the values from the importer form to configure the used importer 2022-03-29 17:31:43 -06:00
snipe
f7cd21a007 Sigh.
Signed-off-by: snipe <snipe@snipe.net>
2022-03-29 22:59:52 +01:00
snipe
8ccf148799 Fixed #10881 - bad merge with bootstrap-tables changes
Signed-off-by: snipe <snipe@snipe.net>
2022-03-29 22:57:00 +01:00
snipe
b2056816c9 Use the same string for both radio buttons in bulk user edit
Signed-off-by: snipe <snipe@snipe.net>
2022-03-29 16:45:55 +01:00
snipe
67b0e731e5 Merge pull request #10879 from snipe/rcs/merge_master_into_develop
Merge master back down into develop
2022-03-29 16:40:31 +01:00
snipe
a937bd34f6 Merge master back down into develop
Signed-off-by: snipe <snipe@snipe.net>
2022-03-29 16:28:43 +01:00
snipe
d56552a8af Merge pull request #10876 from snipe/fixes/huntr_ebc26354_logout_user_when_deactivated
Logout user when their activated status is switched to off
2022-03-29 15:57:24 +01:00
snipe
bdabbbd4e9 Logout user when their activated status is switched to off
Signed-off-by: snipe <snipe@snipe.net>
2022-03-29 13:44:53 +01:00
snipe
7941a88623 Merge pull request #10817 from dampfklon/fix-10810-unaccepted-assets
Fix #10810 unaccepted assets
2022-03-29 12:10:37 +01:00
snipe
80dff41c00 Merge pull request #10843 from ahpaleus/features/add_codeql_to_sdlc
[Feature] Adds CodeQL to the SDLC process
2022-03-29 12:07:44 +01:00
snipe
b5f3a357e2 Merge pull request #10850 from Godmartinz/feature/sc-18937/add-manager-to-ldap-sync
This looks good, thanks!
2022-03-29 12:06:01 +01:00
snipe
ab18ceb2f9 Add @QveenSi as a contributor 2022-03-29 11:54:51 +01:00
snipe
e046db6d1e Merge pull request #10874 from QveenSi/patch-1
Fix problem with static paths
2022-03-29 11:52:32 +01:00
Yevhenii Huzii
863ea62551 Fix problem with static paths 2022-03-27 23:12:38 +03:00
snipe
70059f6f80 Merge pull request #10873 from uberbrady/fix_dashboard
Don't crash JS when there are no data-export-options (as is true in Dashboard) Fixes #10872
2022-03-27 07:21:34 +01:00
Brady Wetherington
e50ad8a442 Don't crash JS when there are no data-export-options (as is true in Dashboard) 2022-03-27 07:18:12 +01:00
snipe
639409fb3f Backporting #10829 to master
Signed-off-by: snipe <snipe@snipe.net>
2022-03-25 13:00:16 +00:00
snipe
e207a5043e Merge pull request #10737 from Godmartinz/feature/sc-15014/asset-acceptance-and-signed-eula-as-pdf
Fixed #7891, #3019 and #8260 [sc-15014] - added asset acceptance and signed eula as pdf
2022-03-24 20:52:41 +00:00
Godfrey M
a1429ce86b removed manager_name from user files 2022-03-24 11:47:13 -07:00
Godfrey M
c1f8252388 adds manager field to LDAP sync 2022-03-24 11:24:39 -07:00
snipe
edcf109b0f Merge pull request #10861 from andreaci/develop
next_audit_date error on saving asset
2022-03-23 18:44:21 +00:00
andreaci
ff5a95a6a4 next_audit_date error on saving asset
Solved error 500 when saving new Asset and no next_audit_date  is defined
2022-03-23 17:23:53 +01:00
Godfrey M
55680762de Merge branch 'develop' into feature/sc-18937/add-manager-to-ldap-sync 2022-03-22 16:33:58 -07:00
snipe
20e65804ef Removed comment
Signed-off-by: snipe <snipe@snipe.net>
2022-03-22 18:12:08 +00:00
Godfrey Martinez
fe6a6740db Merge branch 'develop' into feature/sc-15014/asset-acceptance-and-signed-eula-as-pdf 2022-03-22 10:10:56 -07:00
Godfrey M
3e01981576 clean up 2022-03-22 10:07:08 -07:00
Godfrey M
bc30eef23e clean up 2022-03-22 10:04:54 -07:00
Godfrey M
62352ef1a1 completes accessory eula agreement blade 2022-03-22 10:04:22 -07:00
snipe
729b23c0cf Merge pull request #10857 from uberbrady/fix_bs_tables_export_options
Fix bs tables export options
2022-03-22 17:03:18 +00:00
Brady Wetherington
af9f3d5e1e Clean up the bootstrap table export options 2022-03-22 16:05:08 +00:00
snipe
e9a59f55ab Merge pull request #10855 from inietov/fixes/exception_boolean_field_check_no_customfields
Validate custom fieldset only if the asset have one
2022-03-22 15:58:01 +00:00
Ivan Nieto Vivanco
98b78837e1 Validate custom fieldset only if the asset have one 2022-03-22 09:38:57 -06:00
Brady Wetherington
00ca30a205 WIP: fix bootstrap table export options 2022-03-22 15:12:11 +00:00
snipe
8c92198636 Possible fix for boolean field check
Signed-off-by: snipe <snipe@snipe.net>
2022-03-22 13:47:43 +00:00
snipe
169973e697 Merge pull request #10853 from inietov/fixes/customfields_boolean_format_not_saving_master
Fixes Customfields with boolean format not saving master[sc-9973]
2022-03-22 00:57:41 +00:00
Ivan Nieto Vivanco
7571c0b850 Add support for boolean type customfields 2022-03-21 18:48:42 -06:00
snipe
26cababc43 Merge pull request #10851 from inietov/fixes/licenses_assigned_to_assets_dont_follow_users
Fixes #10753 Licenses assigned to assets don't follow users
2022-03-21 21:22:41 +00:00
Ivan Nieto Vivanco
319d816002 Update in the license seat the user that the asset with that license have assigned 2022-03-21 15:06:43 -06:00
Godfrey M
4956eb0410 WIP: needs to be tested. adds ldap_manager field to ldap sync 2022-03-21 11:15:39 -07:00
Godfrey M
220df9710e adds most of the fields for an accessory eula agreement pdf 2022-03-21 09:18:29 -07:00
snipe
820f0a7f04 Merge pull request #10849 from snipe/fixes/10769_return_to_due_for_audit
Fixes #10769 - return to Due for Audit screen after auditing
2022-03-21 14:28:13 +00:00
snipe
df60729140 Fixed #10769 - redirect user back to due for audit page
This could probably take a little reworking, since if you are auditing from the Overdue for Audit page, we’d want to take you back *there* instead of the Due for Audit page.

Signed-off-by: snipe <snipe@snipe.net>
2022-03-21 14:27:18 +00:00
snipe
c01cc48482 Merge pull request #10848 from snipe/fixes/10819_use_full_url_for_barcodes_in_label_view
Fixed #10819 - use full url for label barcodes
2022-03-21 14:00:56 +00:00
snipe
760b78b584 Fixed #10819 - use full url for label barcodes
I don’t know when/why this would really be necessary, since it would be weird to call /hardware/123/label, but this fixes the broken barcodes

Signed-off-by: snipe <snipe@snipe.net>
2022-03-21 13:57:18 +00:00
Maciej Domanski
d53750d389 LdapSync 2022-03-21 10:37:14 +01:00
Maciej Domanski
565f4eb6a1 LdapSync 2022-03-21 10:36:15 +01:00
Maciej Domanski
4a9ff86941 revert LdapSync 2022-03-21 10:31:21 +01:00
Maciej Domanski
70b22784fe Delete LdapSync.php 2022-03-21 10:04:42 +01:00
Maciej Domanski
374bed3f0c info update codeql 2022-03-21 09:51:29 +01:00
snipe
ada0932e80 Merge pull request #10841 from snipe/fixes/default_id_suppliers
Fixed #10840 - defaulting to 0 on supplier ID if no value provided
2022-03-19 23:20:36 +00:00
snipe
e04ae63d02 Apply the fix to API controller too :(
Signed-off-by: snipe <snipe@snipe.net>
2022-03-19 23:12:48 +00:00
snipe
7db252ade3 Fixed #10840 - defaulting to 0 on supplier ID if no value provided
Signed-off-by: snipe <snipe@snipe.net>
2022-03-19 23:11:42 +00:00
snipe
42220cc566 Merge pull request #10809 from inietov/fixes/customfields_boolean_format_not_saving
Fixes Customfields with boolean format not saving [ch-9973]
2022-03-19 22:10:54 +00:00
Maciej Domanski
41e89123e1 revert from develop 2022-03-17 12:22:37 +01:00
Maciej Domanski
e09516d69b codeql sa 2022-03-17 12:10:44 +01:00
Ivan Nieto Vivanco
6ed9ed0e79 Add field type boolean to custom fields list all 2022-03-16 17:21:05 -06:00
Godfrey M
b2e78e3382 formats most of the pdf blade 2022-03-16 15:53:32 -07:00
Dampfklon
9818d16834 fix showDeletedFunction by reverting #9508 2022-03-16 20:20:46 +01:00
Godfrey M
5fcc3c39f3 routes eula agreements for download correctly to the asset history 2022-03-16 11:56:56 -07:00
snipe
d55c176199 Merge pull request #10831 from snipe/merges/master_down_to_develop_march_16
v6.0.0-RC-5 - Merges master down to develop
2022-03-16 18:35:42 +00:00
snipe
c0451fe17a Bumped version to v6.0.0-RC-5
Signed-off-by: snipe <snipe@snipe.net>
2022-03-16 18:10:17 +00:00
snipe
0f95802699 Fixed mis-automerge
Signed-off-by: snipe <snipe@snipe.net>
2022-03-16 18:05:47 +00:00
snipe
9db8bd782d Merging master down into develop
Signed-off-by: snipe <snipe@snipe.net>
2022-03-16 18:02:07 +00:00
snipe
93ff9524d6 Merge pull request #10829 from snipe/features/add_statuslabel_filter_by_type_in_api
Added filter by status_type in StatusLabels API index endpoint
2022-03-16 10:04:58 -07:00
Godfrey M
6386fa1c5e clean up 2022-03-16 09:54:10 -07:00
snipe
89ddbddada Fixed comment
Signed-off-by: snipe <snipe@snipe.net>
2022-03-16 16:53:18 +00:00
snipe
7498fe36e9 Removed extra space because pedantry
Signed-off-by: snipe <snipe@snipe.net>
2022-03-16 16:45:03 +00:00
snipe
babf7c064b Added ability to filter status label index endpoint by status type
Signed-off-by: snipe <snipe@snipe.net>
2022-03-16 16:38:45 +00:00
snipe
40a9470770 Merge pull request #10828 from snipe/fixes/10826_parse_error_on_print_all
Fixed #10826 - parse error on translation string for print all assets
2022-03-16 08:54:10 -07:00
snipe
781b426018 Fixed #10826 - parse error on translation string for print all assets
Signed-off-by: snipe <snipe@snipe.net>
2022-03-16 08:50:47 -07:00
snipe
f499dcf7c3 Merge pull request #10827 from snipe/fixes/modal_dropdowns_broken
Fixed #10825 - selectlists in modals b0rked
2022-03-16 08:25:29 -07:00
snipe
54d6a4d978 Fixed #10825 - selectlists in modals b0rked
Signed-off-by: snipe <snipe@snipe.net>
2022-03-16 08:23:50 -07:00
Maciej Domanski
44d5b589bb Update phpstan.neon 2022-03-16 15:22:45 +01:00
Maciej Domanski
0a98adb246 Update SA-phpstan.yml 2022-03-16 15:22:27 +01:00
Maciej Domanski
540f783ba2 phpstan-fixes 2022-03-16 15:11:40 +01:00
Maciej Domanski
67ed550743 phpstan update 2022-03-16 12:37:32 +01:00
Maciej Domanski
967ee714a1 sa tooling 2022-03-16 12:14:18 +01:00
Ivan Nieto Vivanco
570dd09dcd Add validation to Accessories and Consumables to not let the user update the number of items to less than they already have checked out 2022-03-15 17:52:19 -06:00
Godfrey M
b2f7262cd2 adds table structure for asset history 2022-03-14 19:38:36 -07:00
Dampfklon
29e1d657e3 fix missed rename 2022-03-11 21:33:25 +01:00
snipe
7cbcd2d95c Merge pull request #10814 from snipe/features/add_clear_sessions_artisan_command
Added session killer artisan command
2022-03-10 13:35:55 -08:00
snipe
1ac293a12a Add a force override
Signed-off-by: snipe <snipe@snipe.net>
2022-03-10 13:30:03 -08:00
snipe
3e3c277a3f Better phrasing
Signed-off-by: snipe <snipe@snipe.net>
2022-03-10 13:29:52 -08:00
snipe
93d6ce1a6a Added session killer artisan command
Signed-off-by: snipe <snipe@snipe.net>
2022-03-10 13:20:23 -08:00
snipe
84aa26dd50 Merge pull request #10728 from Godmartinz/gh10191-css-dropdownmenu
Fixed #10191 - font color contrast on mobile menu
2022-03-10 13:02:45 -08:00
Godfrey M
e1a6a2afc6 adds translation for accept_eula, a bit more logic on the Acceptance Controller that is not working yet 2022-03-10 12:15:50 -08:00
snipe
dadc80d558 Merge pull request #10811 from inietov/fixes/CarbonExceptions_InvalidFormatException_DateTime
Fixes Carbon\Exceptions\InvalidFormatException: DateTime::__construct(): Failed to parse time string
2022-03-10 10:40:46 -08:00
snipe
8984b3a59d Merge pull request #10812 from inietov/fixes/CarbonExceptions_InvalidFormatException_DateTime_develop
Fixes Carbon\Exceptions\InvalidFormatException: DateTime::__construct(): Failed to parse time string develop
2022-03-10 10:40:33 -08:00
Ivan Nieto Vivanco
cdc0805fc4 Sanitize dates input in the importer before saving 2022-03-10 12:07:07 -06:00
Ivan Nieto Vivanco
9caf27ce60 Sanitize dates input in the importer before saving 2022-03-10 11:48:57 -06:00
Ivan Nieto Vivanco
86bd90c564 Show icons in the asset view for boolean customfields 2022-03-09 21:46:19 -06:00
Ivan Nieto Vivanco
e104195796 Convert value of the customfield element from string to boolean 2022-03-09 18:49:39 -06:00
snipe
d06ef4bdef Bumped lockfile
Signed-off-by: snipe <snipe@snipe.net>
2022-03-08 22:17:46 -08:00
snipe
c817daa4da Merge pull request #10767 from uberbrady/fix_double_request_datatable
One attempt to fix the 'datatable double-request' problem.
2022-03-08 20:34:15 -08:00
snipe
1b3631d57d Merge pull request #10806 from snipe/fixes/removed_experimental_content_policies
Removed experimental feature policies
2022-03-08 20:32:39 -08:00
snipe
968de7e469 Merge pull request #10804 from inietov/fixes/date_localization_not_working_custom_fields
Fixes #8143 Date localization not work in custom fields
2022-03-08 20:11:49 -08:00
snipe
e3d2f7cc96 Missed a few
Signed-off-by: snipe <snipe@snipe.net>
2022-03-08 20:05:17 -08:00
snipe
d1358b6249 Removed experimental feature policies
Signed-off-by: snipe <snipe@snipe.net>
2022-03-08 16:58:24 -08:00
Godfrey M
59c583ac74 adds the ability to save eula pdfs to storage, still working on storing them in the DB and exposing them in the UI 2022-03-08 16:42:27 -08:00
snipe
95d6e1a402 Merge pull request #10805 from inietov/fixes/date_localization_not_working_custom_fields_develop
Fixes #8143 Date localization not work in custom fields for develop branch
2022-03-08 16:36:31 -08:00
Ivan Nieto Vivanco
657cfddd3c Add a condition to show customfields as the user wants in localization settings 2022-03-08 18:28:13 -06:00
Ivan Nieto Vivanco
2410b1a146 Add a condition to show customfields as the user wants in localization settings 2022-03-08 18:25:15 -06:00
snipe
9311584f43 Merge pull request #10033 from uberbrady/ldap_troubleshooter_cherrypicked
Fixed [ch14855] - create LDAP troubleshooter
2022-03-07 20:24:11 -08:00
snipe
ed39df349f Merge pull request #10799 from snipe/fixes/check_if_tables_exist_before_trying_to_create
Check if table exists before trying to create in migrations
2022-03-07 20:22:28 -08:00
Brady Wetherington
ab7bf3c5d4 Get rid of stale commented-out line 2022-03-07 20:22:23 -08:00
snipe
86a2312a31 Check if table exists before trying to create
Signed-off-by: snipe <snipe@snipe.net>
2022-03-07 20:13:10 -08:00
snipe
e30d814ece Merge pull request #10798 from snipe/features/add_qr_and_barcode_urls_to_asset_transformer
Added QR and alt barcode urls to asset transformer
2022-03-07 19:53:08 -08:00
Brady Wetherington
0556c7653a Implement a generic timeout function, and run methods that need to run with a timeout using it. 2022-03-07 19:51:21 -08:00
Brady Wetherington
b96303cb38 Clean up errors, add new required package to Dockerfile 2022-03-07 19:51:21 -08:00
Brady Wetherington
312a90ce77 Add start of Tracing to LDAP troubleshooter 2022-03-07 19:51:21 -08:00
Brady Wetherington
71b5c0e80f Add new LDAP troubleshoot ldapsearch subcommand, broaden out troubleshooting 2022-03-07 19:51:21 -08:00
Brady Wetherington
519bd00bef WIP - just need to get authed connections to work 2022-03-07 19:51:21 -08:00
Brady Wetherington
ffd8f583b4 Got most of the stages working for the LDAP troubleshooter 2022-03-07 19:51:21 -08:00
Brady Wetherington
8cd5ec6799 Most of the host-port-tls discovery stuff is in-place now 2022-03-07 19:51:20 -08:00
Brady Wetherington
ef0e9a3c93 WIP: Enhancing stage 2 of LDAP troubleshooter 2022-03-07 19:51:20 -08:00
Brady Wetherington
8aa975e959 First pass at Artisan-based LDAP troubleshooter 2022-03-07 19:51:20 -08:00
snipe
e9d297e97d Added cache comment
Signed-off-by: snipe <snipe@snipe.net>
2022-03-07 19:37:06 -08:00
snipe
9269d5945e Added QR and alt barcode urls to asset transformer
Signed-off-by: snipe <snipe@snipe.net>
2022-03-07 19:32:18 -08:00
snipe
33ee63f985 Merge pull request #10797 from snipe/features/use_max_results_in_pagination
Use the max_results env value in the paginator
2022-03-07 19:14:49 -08:00
snipe
def570db4b Finer grain for > 200
Signed-off-by: snipe <snipe@snipe.net>
2022-03-07 18:51:49 -08:00
snipe
fcb81b9505 Use the max_results env value in the paginator
Signed-off-by: snipe <snipe@snipe.net>
2022-03-07 18:39:39 -08:00
Brady Wetherington
8d49d35463 Remove another data-toggle="table" - possibly the last one 2022-03-07 12:52:57 -08:00
Brady Wetherington
6f3e9033c2 One attempt to fix the 'datatable double-request' problem. 2022-03-07 12:52:57 -08:00
snipe
3e2fe10480 Fixed getAssetBySerial
Signed-off-by: snipe <snipe@snipe.net>
2022-03-05 09:03:29 -08:00
snipe
0c520476a3 Removed namespace
Signed-off-by: snipe <snipe@snipe.net>
2022-03-04 12:30:47 -08:00
snipe
ba010618f7 Throttle got merged out - re-adding it
Signed-off-by: snipe <snipe@snipe.net>
2022-03-04 12:15:09 -08:00
snipe
2d7a8b5e15 Merge pull request #10776 from snipe/added_trim_to_email_and_username
Added trim to email and username
2022-03-04 11:57:33 -08:00
snipe
1dabd6cc71 Merge pull request #10777 from snipe/added_remote_to_bulk_user_edit
Add remote user setting to bulk edit
2022-03-04 10:35:07 -08:00
snipe
9a358087ec Add remote user to bulk edit
Signed-off-by: snipe <snipe@snipe.net>
2022-03-04 06:47:23 -08:00
snipe
b6a1d245e8 Added trim to CC email as well
Signed-off-by: snipe <snipe@snipe.net>
2022-03-04 06:20:34 -08:00
snipe
67134ca387 Do a trim() before inserting/updating
Signed-off-by: snipe <snipe@snipe.net>
2022-03-04 06:18:52 -08:00
snipe
0dfc27f56e Added remote to allowed_columns for sorting
Signed-off-by: snipe <snipe@snipe.net>
2022-03-04 05:44:46 -08:00
snipe
eb8b4a2aa5 Merge pull request #10775 from snipe/features/add_remote_checkbox_to_user
Added remote checkbox to user
2022-03-04 05:39:23 -08:00
snipe
06a05e6340 Added remote to view
Signed-off-by: snipe <snipe@snipe.net>
2022-03-04 05:37:28 -08:00
snipe
43c1949092 Add remote option to user
Signed-off-by: snipe <snipe@snipe.net>
2022-03-04 05:35:26 -08:00
snipe
a9069e65e5 Don’t show groups in menu if there are none yet
Signed-off-by: snipe <snipe@snipe.net>
2022-03-04 04:39:39 -08:00
snipe
1400c610a1 Use correct button translation
Signed-off-by: snipe <snipe@snipe.net>
2022-03-04 04:22:44 -08:00
snipe
f840652395 Suppress errors for missing signatures
Signed-off-by: snipe <snipe@snipe.net>
2022-03-04 03:18:28 -08:00
snipe
67ed0d91c0 Handle file_get_contents more gracefully
Signed-off-by: snipe <snipe@snipe.net>
2022-03-04 02:54:37 -08:00
snipe
349715576a Bumped RC version
Signed-off-by: snipe <snipe@snipe.net>
2022-03-03 22:23:24 -08:00
snipe
0d787fcc94 Updated language files
Signed-off-by: snipe <snipe@snipe.net>
2022-03-03 22:21:44 -08:00
snipe
b876d0abb0 Merge remote-tracking branch 'origin/master' into develop
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	.env.example
#	app/Http/Controllers/Auth/LoginController.php
#	app/Http/Kernel.php
#	app/Http/Transformers/ActionlogsTransformer.php
#	app/Importer/AssetImporter.php
#	app/Models/Accessory.php
#	app/Models/Consumable.php
#	app/Presenters/AccessoryPresenter.php
#	app/Presenters/ComponentPresenter.php
#	app/Presenters/ConsumablePresenter.php
#	app/Providers/AuthServiceProvider.php
#	composer.json
#	composer.lock
#	config/app.php
#	config/cors.php
#	config/version.php
#	package-lock.json
#	public/js/build/app.js
#	public/js/build/app.js.LICENSE.txt
#	public/js/dist/all.js
#	public/mix-manifest.json
#	resources/views/accessories/view.blade.php
#	resources/views/consumables/view.blade.php
#	resources/views/settings/saml.blade.php
#	routes/api.php
2022-03-03 21:59:38 -08:00
snipe
afd83311aa Fixed version number (vV)
Signed-off-by: snipe <snipe@snipe.net>
2022-03-03 20:58:54 -08:00
snipe
29a2e80984 Merge pull request #10771 from uberbrady/retry_fix_bad_metadata_display
Retry fix bad metadata display
2022-03-03 20:49:30 -08:00
snipe
fa576bc78f Bumped version
Signed-off-by: snipe <snipe@snipe.net>
2022-03-03 20:45:34 -08:00
snipe
3e22dce117 Merge pull request #10774 from snipe/features/added_notes_to_accessories_etc
Fixed #6918 - added notes to accessories, components, consumables
2022-03-03 20:41:18 -08:00
snipe
9adcf58ae5 Added notes migration
Signed-off-by: snipe <snipe@snipe.net>
2022-03-03 20:30:58 -08:00
snipe
5266b2c71f Added notes field to view blades
Signed-off-by: snipe <snipe@snipe.net>
2022-03-03 20:30:27 -08:00
snipe
94dded3785 Added notes field to presenters for table view show/hide columns
Signed-off-by: snipe <snipe@snipe.net>
2022-03-03 20:30:07 -08:00
snipe
ac8a7d0bc9 Made notes field fillable and searchable
Signed-off-by: snipe <snipe@snipe.net>
2022-03-03 20:29:48 -08:00
snipe
6fca8350f9 Added notes field to transformers
Signed-off-by: snipe <snipe@snipe.net>
2022-03-03 20:29:35 -08:00
snipe
9acb5413f6 Added notes field to controllers
Signed-off-by: snipe <snipe@snipe.net>
2022-03-03 20:29:25 -08:00
snipe
08a2fe4edb Merge pull request #10773 from snipe/features/adds_ldap_import_and_assets_count_to_user_api
Features/adds ldap import and assets count to user api
2022-03-03 19:15:14 -08:00
snipe
6abe8f296b We don’t need the users table here
Signed-off-by: snipe <snipe@snipe.net>
2022-03-03 19:12:03 -08:00
snipe
a53a67be4a Added consumables, licenses, accessories count filters too
Signed-off-by: snipe <snipe@snipe.net>
2022-03-03 19:08:08 -08:00
snipe
b72cac3511 Adds ldap_import and assets_count filter to user API endpoint
Signed-off-by: snipe <snipe@snipe.net>
2022-03-03 19:03:35 -08:00
snipe
698b7301b6 Merge pull request #10772 from snipe/fixes/use_correct_gate_for_maintainances
Use “update” instead of edit in gate
2022-03-03 18:50:33 -08:00
snipe
c940d36fff Updated maintenance gate in API
Signed-off-by: snipe <snipe@snipe.net>
2022-03-03 18:49:54 -08:00
snipe
cd12028845 Use “update” instead of edit in gate
Signed-off-by: snipe <snipe@snipe.net>
2022-03-03 18:47:20 -08:00
Brady Wetherington
3225605ef3 Handling the old weirdly-formatted data wasn't quite working. 2022-03-03 18:17:29 -08:00
Brady Wetherington
31dde20a2b Actually, re-introduce this code comment as it's still relevant and tricky 2022-03-03 15:48:04 -08:00
Brady Wetherington
aa36ebc947 Merge branch 'fix_bad_metadata_display' into retry_fix_bad_metadata_display 2022-03-03 15:46:19 -08:00
Brady Wetherington
92434fa943 Revert "Revert "refactor and clean up attribute-changing logic for assets""
This reverts commit bdc737ce0c.
2022-03-03 15:45:54 -08:00
Godfrey M
14bd07e97d gerge branchevelop' into gh10191-css-dropdownmenu 2022-03-03 10:14:30 -08:00
Godfrey M
4435ea95fd removes changes to mix-manifest 2022-03-03 09:47:11 -08:00
Godfrey M
f115385243 C&P mix-manifest to be tracked 2022-03-03 09:32:05 -08:00
Godfrey M
708dc08b4f mixes color contrast on dropdown menu from navbar
on file
2022-03-03 09:27:52 -08:00
Brady Wetherington
0164354463 Fix for the weird error that blew up the demo when my PR got merged 2022-03-02 15:15:16 -08:00
snipe
bdc737ce0c Revert "refactor and clean up attribute-changing logic for assets"
This reverts commit 290baf1c8d.

Signed-off-by: snipe <snipe@snipe.net>
2022-03-02 14:45:14 -08:00
snipe
733b3a7550 Merge pull request #10682 from uberbrady/fix_bad_metadata_display
Fixed weird JSON-handling on log_meta updates
2022-03-02 14:36:38 -08:00
snipe
16fd109540 Merge pull request #10417 from inietov/fixes/trying_to_get_property_id_of_nonobject
Fixes trying to get property 'id' of non-object when running develop seeders.
2022-03-02 14:35:53 -08:00
snipe
2b4ee4827f Merge branch 'develop' into fixes/trying_to_get_property_id_of_nonobject 2022-03-02 14:35:35 -08:00
snipe
3339a691e1 Merge pull request #10721 from snipe/features/adds_users_consumables_endpoint
Added consumables endpoint to user API
2022-03-02 14:33:45 -08:00
snipe
dc1e0ecdb7 Merge pull request #10739 from insert-waffle/fixes/prevent_double_values_email
Feature: Prevent showing of double values in a checkin or checkout email
2022-03-02 14:28:22 -08:00
Ivan Nieto Vivanco
0df9dd8320 Delete a function that is not longer used 2022-03-01 18:59:50 -06:00
snipe
2eef43e8bf Applies develop fix to master for location drop downs 2022-03-01 12:43:35 -08:00
snipe
5d1cd89838 Merge pull request #10751 from aranar-pro/bug_fix/location-drop-down-#10701
Fix for location and model drop down with granular permissions.
2022-02-28 16:33:12 -08:00
Andrew Roth
74248a4314 removing composer.lock from PR 2022-02-28 19:30:32 -05:00
Andrew Roth
2e60420aeb Fix for location and model drop down with granular permissions. 2022-02-28 17:38:38 -05:00
Jens Maes
9b88f650d2 Prevents showing double values
- If the asset name and tag are the same, the tag does not get shown in an email.
- If the model name is the same as the model number (when importing from LanSweeper for example), do not show the model number.
2022-02-25 08:19:46 +01:00
snipe
336d8e6574 Updated version 2022-02-24 18:17:15 -08:00
Godfrey M
533670f3f1 faulty method for converting asset acceptance to pdf 2022-02-24 14:50:16 -08:00
snipe
a5c16c6a9c Update @insert-waffle as a contributor 2022-02-24 14:47:48 -08:00
snipe
1ee37212f1 Merge branch 'develop' of https://github.com/snipe/snipe-it into develop 2022-02-24 14:47:14 -08:00
snipe
ed43d36895 Updated assets
Signed-off-by: snipe <snipe@snipe.net>
2022-02-24 14:47:09 -08:00
snipe
d243b822e7 Merge pull request #10729 from insert-waffle/fix-10708
Fixes 10708: removed line height of manufacturer and changed size of fa-hdd to 2x
2022-02-24 14:46:51 -08:00
snipe
dfbff27483 Updated sample CSVs
Signed-off-by: snipe <snipe@snipe.net>
2022-02-24 14:19:35 -08:00
snipe
24ce34c8d7 Updated assets
Signed-off-by: snipe <snipe@snipe.net>
2022-02-24 14:19:27 -08:00
snipe
7abb1f960c Merge branch 'master' of https://github.com/snipe/snipe-it 2022-02-24 14:16:00 -08:00
snipe
ec7df11d73 Merge pull request #10736 from inietov/fixes/imported_assets_duplicate_model_notes_from_assets_master
Separate notes on assets and asset models on master branch [sc-18810]
2022-02-24 14:15:48 -08:00
snipe
f077d096e2 Merge pull request #10735 from inietov/fixes/imported_assets_duplicate_model_notes_from_assets
Separate notes on assets and asset models [sc-18810]
2022-02-24 14:15:13 -08:00
Ivan Nieto Vivanco
64fa7e23fc Separate notes on assets and asset models 2022-02-24 16:05:03 -06:00
snipe
93ad59466b Fixed typo
Signed-off-by: snipe <snipe@snipe.net>
2022-02-24 13:52:33 -08:00
Ivan Nieto Vivanco
577dc6b02c Separate notes on assets and asset models 2022-02-24 15:50:59 -06:00
snipe
4b7f45a15e Merge pull request #10734 from snipe/fixes/api_throttling
Fixed API throttling
2022-02-24 13:43:49 -08:00
snipe
83f21d0ddf Added a comment about why we use the middleware there
Signed-off-by: snipe <snipe@snipe.net>
2022-02-24 13:41:16 -08:00
snipe
2906a89442 Make the 429 error less stupid
Signed-off-by: snipe <snipe@snipe.net>
2022-02-24 13:10:34 -08:00
snipe
50f55b4308 Fixes broken API throttling
Signed-off-by: snipe <snipe@snipe.net>
2022-02-24 13:10:10 -08:00
Jens Maes
57e93e4e92 Fixes 10708: change size of fa-hdd to 2x 2022-02-24 11:05:40 +01:00
Jens Maes
c0893c44a3 Fixes 10708: Removed line heigt from manufacturer list item. 2022-02-24 10:29:39 +01:00
snipe
a8028e7dd0 Merge pull request #10727 from uberbrady/master
Fix for negative CORS/SAML interaction
2022-02-23 11:17:17 -08:00
Brady Wetherington
15abc84ab0 Migrate to Fruitcake/laravel-cors which has path-exclusion built-in 2022-02-23 11:06:19 -08:00
snipe
8a09211310 Merge pull request #10722 from snipe/features/add_force_saml_to_master
Fixes Restricted Logins to SAML controlled via environment variable #10436 - applies #10449 to master
2022-02-22 21:45:19 -08:00
snipe
42fcd29200 Fixed #10436 on master, applies #10449
Signed-off-by: snipe <snipe@snipe.net>
2022-02-22 21:06:54 -08:00
snipe
dc2e6c2b06 Adds consumables endpoint to user API
Signed-off-by: snipe <snipe@snipe.net>
2022-02-22 20:44:34 -08:00
snipe
0cfc0a4bee Merge pull request #10718 from uberbrady/fix_cors_option_1_master
Fix CORS requests on master (option *ONE*)
2022-02-22 19:24:18 -08:00
snipe
292bf21e7d Merge pull request #10720 from uberbrady/fix_cors_develop
Fix cors develop
2022-02-22 19:23:43 -08:00
Brady Wetherington
294606fb0b Move new CORS library to global middleware, the only place it works 2022-02-22 19:07:23 -08:00
Brady Wetherington
cd2c92fd6c Cors should respect the .env var for CORS domains 2022-02-22 19:00:59 -08:00
Brady Wetherington
64f83f9a5f Move HandleCors middleware to be universal 2022-02-22 17:43:40 -08:00
snipe
6ef053bc52 Merge pull request #10713 from snipe/fixes/error_handler
Added use statement
2022-02-22 10:46:58 -08:00
snipe
0a4a548f9c Added use statement
Signed-off-by: snipe <snipe@snipe.net>
2022-02-22 10:46:02 -08:00
snipe
784bf6f223 Bumped version
Signed-off-by: snipe <snipe@snipe.net>
2022-02-20 13:30:24 -08:00
snipe
dd5f812d88 Merge remote-tracking branch 'origin/master' into develop
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	.all-contributorsrc
#	README.md
#	app/Console/Commands/FixDoubleEscape.php
#	app/Console/Commands/LdapSync.php
#	app/Exceptions/Handler.php
#	app/Http/Controllers/Api/AssetMaintenancesController.php
#	app/Http/Controllers/Api/AssetModelsController.php
#	app/Http/Controllers/Api/AssetsController.php
#	app/Http/Controllers/Api/CategoriesController.php
#	app/Http/Controllers/Api/CompaniesController.php
#	app/Http/Controllers/Api/DepartmentsController.php
#	app/Http/Controllers/Api/LicensesController.php
#	app/Http/Controllers/Api/LocationsController.php
#	app/Http/Controllers/Api/ManufacturersController.php
#	app/Http/Controllers/Api/SettingsController.php
#	app/Http/Controllers/Api/SuppliersController.php
#	app/Http/Controllers/AssetModelsController.php
#	app/Http/Controllers/Auth/LoginController.php
#	app/Http/Controllers/CustomFieldsController.php
#	app/Http/Controllers/SettingsController.php
#	app/Models/Loggable.php
#	app/Providers/AuthServiceProvider.php
#	config/version.php
#	database/migrations/2014_11_04_231416_update_group_field_for_reporting.php
#	database/migrations/2015_11_08_222305_add_ldap_fields_to_settings.php
#	package-lock.json
#	package.json
#	public/js/build/app.js
#	public/js/dist/all.js
#	public/mix-manifest.json
#	resources/assets/js/components/forms/asset-models/fieldset-default-values.vue
#	resources/views/hardware/view.blade.php
2022-02-20 13:29:12 -08:00
snipe
cbfb8283f3 Merge branch 'develop' of https://github.com/snipe/snipe-it into develop 2022-02-20 11:29:55 -08:00
snipe
dc2b58f865 Merge pull request #10691 from snipe/fixes/update_audit_date_when_settings_update
Fixed #10690 - Initial audit date fix
2022-02-20 11:16:54 -08:00
snipe
34ebc629c2 Remove unusued translation string
Signed-off-by: snipe <snipe@snipe.net>
2022-02-20 11:15:56 -08:00
snipe
21a6bdabc6 Add @insert-waffle as a contributor 2022-02-20 11:12:52 -08:00
snipe
eaf4fefc90 Merge pull request #10700 from insert-waffle/develop
Fixes #10699: Added 2 breaks in message.blade.php
2022-02-20 11:12:20 -08:00
snipe
19b25a39ea Merge pull request #10697 from inietov/features/save_loggedin_user_after_restore
Feature Save logged in user data and re-add them after restore if they don't exist [ch-17664]
2022-02-20 11:11:54 -08:00
Jens Maes
e5f6b48115 🧑‍🔧 Added 2 breaks in message.blade.php
The uploaded logo does not align properly, therefor I added 2 breaks which make sure the site title is BELOW the logo and not next to it.
2022-02-18 10:27:12 +01:00
Ivan Nieto Vivanco
f1ba5c7742 Changed the warning message in the Backups page 2022-02-17 22:47:35 -06:00
Ivan Nieto Vivanco
23a6907975 Some minor stylistic changes 2022-02-17 18:05:06 -06:00
Ivan Nieto Vivanco
5b2a5ff124 Put the 'remember_token' column as null in the users table 2022-02-17 18:03:00 -06:00
Ivan Nieto Vivanco
548b172744 Logout every connected user 2022-02-17 18:00:24 -06:00
Ivan Nieto Vivanco
263893b3c6 Search logged in user that made the restore, if they doesn't exist in the restored system, add it again 2022-02-17 17:42:06 -06:00
Ivan Nieto Vivanco
811ca51c4f Wipe database before restoration 2022-02-17 16:59:44 -06:00
snipe
d1b45a83b8 Blergh, one more linebreak
Signed-off-by: snipe <snipe@snipe.net>
2022-02-17 14:51:06 -08:00
snipe
01a8701a8c Removed extra linebreaks
Signed-off-by: snipe <snipe@snipe.net>
2022-02-17 14:50:38 -08:00
snipe
67fe53e32a Removed debugging, added comments
Signed-off-by: snipe <snipe@snipe.net>
2022-02-17 14:50:07 -08:00
snipe
7f6b8cc43d Removed carbon, since we went with PHP's datetime instead
Signed-off-by: snipe <snipe@snipe.net>
2022-02-17 14:48:12 -08:00
snipe
5fe999eb02 Shored up the date math, updated the explanation
Signed-off-by: snipe <snipe@snipe.net>
2022-02-17 14:34:33 -08:00
snipe
ea429d650e Initial audit date fix
Signed-off-by: snipe <snipe@snipe.net>
2022-02-16 20:19:38 -08:00
snipe
a71911eba2 Merge pull request #10688 from snipe/features/add_unique_option_to_custom_fields
Fixes #9592 - Added unique option to custom fields
2022-02-16 16:22:19 -07:00
snipe
13832856f1 Added strings for unique
Signed-off-by: snipe <snipe@snipe.net>
2022-02-16 13:47:59 -08:00
snipe
824eedf7c2 Added UI elements for is_unique
Signed-off-by: snipe <snipe@snipe.net>
2022-02-16 13:47:48 -08:00
snipe
a4a0aa5124 Removed debugging line
Signed-off-by: snipe <snipe@snipe.net>
2022-02-16 13:47:22 -08:00
snipe
6a91d4d19e Check for uniqueness constraint
Signed-off-by: snipe <snipe@snipe.net>
2022-02-16 13:46:22 -08:00
snipe
41778980bc Add migration for is_unique
Signed-off-by: snipe <snipe@snipe.net>
2022-02-16 13:45:59 -08:00
snipe
ea8f9a6dd9 Make is_unique fillable
Signed-off-by: snipe <snipe@snipe.net>
2022-02-16 13:45:44 -08:00
snipe
b78f32e876 Merge pull request #10655 from inietov/fixes/trying_to_get_property_checkin_email_of_non-object_develop
Fixes ErrorException: Trying to get property 'checkin_email' of non-object for develop[sc-17568]
2022-02-16 11:19:14 -07:00
snipe
7fe7d56999 Merge pull request #10656 from snipe/snyk-upgrade-0005397ba83c98631126ff98d5471e6d
[Snyk] Upgrade jquery-ui from 1.13.0 to 1.13.1
2022-02-16 11:19:00 -07:00
snipe
592f66bd0c Merge pull request #10670 from Godmartinz/gh10639/linear-depreciation-calculation
Fixed #10639 - incorrect linear depreciation calculation
2022-02-16 11:18:27 -07:00
snipe
4f89dfee49 Merge pull request #10679 from snipe/fixes/timing_attack_mitigation_for_forgot_password
Added usleep random to forgotten password method to mitigate timing attacks
2022-02-16 11:17:00 -07:00
snipe
017534bc07 Added deleted_at to license transformer
Signed-off-by: snipe <snipe@snipe.net>
2022-02-16 09:33:28 -08:00
snipe
5540069cce Be more specific with deleted license point
Require this value to be "true" speciically to get the deleted list

Signed-off-by: snipe <snipe@snipe.net>
2022-02-16 09:14:04 -08:00
snipe
e9a4ff8e74 Merge pull request #10683 from snipe/features/add_deleted_only_endpoint_for_licenses
Adds delete endpoint for licenses
2022-02-16 10:10:22 -07:00
snipe
1ad56760ce Adds delete endpoint for licenses
Signed-off-by: snipe <snipe@snipe.net>
2022-02-16 09:08:50 -08:00
snipe
5582949008 Merge pull request #10681 from snipe/fixes/2fa_cookie_fix
Fixes 2FA cookie -> user issue
2022-02-15 19:34:13 -07:00
Brady Wetherington
290baf1c8d refactor and clean up attribute-changing logic for assets 2022-02-15 18:29:45 -08:00
snipe
f878e0ad66 Fixes 2FA cookie -> user issue
Signed-off-by: snipe <snipe@snipe.net>
2022-02-15 18:29:23 -08:00
snipe
178e440951 Added usleep :(
Signed-off-by: snipe <snipe@snipe.net>
2022-02-15 18:09:58 -08:00
snipe
321be4733d Merge pull request #10672 from snipe/fixes/missing_gates_for_maintenances
Added Asset edit/delete gates to maintenances
2022-02-14 15:58:19 -08:00
snipe
cab4fa1687 Fixes some conceptual gates
Signed-off-by: snipe <snipe@snipe.net>
2022-02-14 15:42:23 -08:00
snipe
4804e5b3ab Added Asset edit/delete gates to maintenances
Signed-off-by: snipe <snipe@snipe.net>
2022-02-14 15:34:06 -08:00
Godfrey M
7b9a2ae909 added rounding 2022-02-14 09:34:42 -08:00
Godfrey M
6e204a20ca fixed current value formula 2022-02-14 09:28:35 -08:00
Godfrey M
e6e68934f7 adds a months depreciated variable 2022-02-14 09:13:14 -08:00
Godfrey M
cdc402fa04 WIP formula for linear Depreciation has been corrected. still one variable left to fix. 2022-02-14 09:01:42 -08:00
snipe
885ab64c2e Merge branch 'master' of https://github.com/snipe/snipe-it 2022-02-13 12:01:59 -07:00
snipe
8624531f78 Bumped version
Signed-off-by: snipe <snipe@snipe.net>
2022-02-13 12:01:37 -07:00
snipe
1c0a96b0ce Added gate to supplier
Signed-off-by: snipe <snipe@snipe.net>
2022-02-13 11:58:12 -07:00
snipe
db0c0e7908 Merge pull request #10665 from snipe/fixes/adds_gate_to_supplier_view
Adds gate to supplier
2022-02-13 10:56:55 -08:00
snipe
d77a47765e Adds gate to supplier
Signed-off-by: snipe <snipe@snipe.net>
2022-02-13 11:53:45 -07:00
Dampfklon
0d49fc3a2e remove unused route, controller functions and view 2022-02-13 12:10:19 +01:00
Dampfklon
43d92bec5b apply translation to view
rearrange eula on top
small design fixes
2022-02-13 12:02:20 +01:00
snipe
05c0819776 Updated language string
Signed-off-by: snipe <snipe@snipe.net>
2022-02-11 15:55:42 -08:00
snipe
16f963fa3d Merge branch 'master' of https://github.com/snipe/snipe-it 2022-02-11 13:07:29 -08:00
snipe
e032cf1fda Bumped version
Signed-off-by: snipe <snipe@snipe.net>
2022-02-11 13:07:26 -08:00
snipe
10c26f38c4 Merge pull request #10662 from snipe/fixes/tighter_security_on_select_lists
Added additional gate for selectlists
2022-02-11 12:48:55 -08:00
snipe
d6b8222371 Refactor to combine permissions
Signed-off-by: snipe <snipe@snipe.net>
2022-02-11 12:48:30 -08:00
snipe
2c5abaaea4 Fixed copypasta
Signed-off-by: snipe <snipe@snipe.net>
2022-02-11 12:32:09 -08:00
snipe
c1a0653847 Restrict to update or create gate methods for select lists
Signed-off-by: snipe <snipe@snipe.net>
2022-02-11 12:31:11 -08:00
snipe
9226c8292d Fixed typos in comments
Signed-off-by: snipe <snipe@snipe.net>
2022-02-11 12:02:14 -08:00
snipe
5fafa81dc1 Forgot components
Signed-off-by: snipe <snipe@snipe.net>
2022-02-11 11:57:29 -08:00
snipe
b30d1dce89 Removed selectlist
Signed-off-by: snipe <snipe@snipe.net>
2022-02-11 11:55:24 -08:00
snipe
2dad27eed6 Added additional gate for selectlists
Signed-off-by: snipe <snipe@snipe.net>
2022-02-11 11:46:14 -08:00
snipe
de6f922e54 Fixed migration
Signed-off-by: snipe <snipe@snipe.net>
2022-02-10 22:44:46 -08:00
snipe
f5ffda8053 Ahem.
Signed-off-by: snipe <snipe@snipe.net>
2022-02-10 22:43:51 -08:00
snipe
99541f0bee Fixed string
Signed-off-by: snipe <snipe@snipe.net>
2022-02-10 21:05:23 -08:00
snipe
8b8e93d703 Fixed #10659 - wrong translation string reference
Signed-off-by: snipe <snipe@snipe.net>
2022-02-10 21:03:09 -08:00
snipe
5703b95de3 Merge pull request #10657 from snipe/fixes/handle_deleted_auditor
Fixed - Check for valid user before trying to present the auditor name
2022-02-10 20:14:24 -08:00
snipe
d406dc43c2 Check for valid user before trying to present the auditor name
Signed-off-by: snipe <snipe@snipe.net>
2022-02-10 20:13:02 -08:00
snipe
2ce44bd4e6 Line break for easier debugging
Signed-off-by: snipe <snipe@snipe.net>
2022-02-10 20:06:55 -08:00
snyk-bot
15b96f304b fix: upgrade jquery-ui from 1.13.0 to 1.13.1
Snyk has created this PR to upgrade jquery-ui from 1.13.0 to 1.13.1.

See this package in npm:
https://www.npmjs.com/package/jquery-ui

See this project in Snyk:
https://app.snyk.io/org/snipe/project/3d53e1dd-b8bf-46b5-ba61-18ce26933166?utm_source=github&utm_medium=referral&page=upgrade-pr
2022-02-11 01:11:13 +00:00
snipe
ed931ef0cd Merge pull request #10654 from inietov/fixes/trying_to_get_property_checkin_email_of_non-object
Fixes  ErrorException: Trying to get property 'checkin_email' of non-object [sc-17568]
2022-02-10 12:23:50 -08:00
Ivan Nieto Vivanco
f36de6c670 Validates if model and model->category exist before return the checkin_email property 2022-02-10 13:53:49 -06:00
Ivan Nieto Vivanco
bf4ee18123 Validates if model and model->category exist before return the checkin_email property 2022-02-10 11:58:55 -06:00
snipe
70af10ae6c Merge pull request #10640 from JonathonReinhart/10552-add-checkin-api-date
Fix #10552: Add checkin_at parameter to /hardware/:id/checkin API
2022-02-10 09:54:20 -08:00
snipe
9892e5bf60 Merge pull request #10646 from snipe/fixes/check_field_exist_before_detaching
Check that the field exists before trying to detach it from the fieldset
2022-02-09 16:33:02 -08:00
snipe
b9a8d45c07 Better messaging
Signed-off-by: snipe <snipe@snipe.net>
2022-02-09 16:30:42 -08:00
snipe
7794c2f44b Check that the fieldset exists before trying to detach it from the fieldset
Signed-off-by: snipe <snipe@snipe.net>
2022-02-09 16:16:16 -08:00
snipe
eedc14401a Switch to searching on semicolon instead of &
Signed-off-by: snipe <snipe@snipe.net>
2022-02-09 15:55:22 -08:00
snipe
4e14d70427 Added jobtitle to unescaper
Signed-off-by: snipe <snipe@snipe.net>
2022-02-09 15:50:44 -08:00
snipe
2a71690aaf Added license_name to unescaper
Signed-off-by: snipe <snipe@snipe.net>
2022-02-09 15:17:57 -08:00
snipe
e4da00ca82 Catch potential validation errors on unescape tool
Signed-off-by: snipe <snipe@snipe.net>
2022-02-09 15:09:49 -08:00
snipe
4fd14e5859 Added slightly more output because wtf?
Signed-off-by: snipe <snipe@snipe.net>
2022-02-09 15:05:28 -08:00
snipe
441f1fbb64 Remove html_entities_decode restriction
Signed-off-by: snipe <snipe@snipe.net>
2022-02-09 14:56:36 -08:00
snipe
bf194d7794 Regenerate JS assets
Signed-off-by: snipe <snipe@snipe.net>
2022-02-09 14:43:30 -08:00
snipe
d06e3dd892 Merge branch 'master' of https://github.com/snipe/snipe-it 2022-02-09 14:40:33 -08:00
snipe
6b25b53462 Merge pull request #10628 from inietov/fixes/default_values_dont_allow_checkbox_radio
Fixes #10299 Default Values do not allow Checkbox/Radio Buttons
2022-02-09 14:39:46 -08:00
Ivan Nieto Vivanco
6d79c9f3e2 Save the default values for custom fields with same format than Assets do for actual values 2022-02-09 13:41:33 -06:00
Ivan Nieto Vivanco
a36957dd77 Finish the implementation of custom fields default values for checkboxes 2022-02-09 13:12:42 -06:00
Ivan Nieto Vivanco
2f3499e4b9 Show checkboxes a little less assy, actually save the data checked by them 2022-02-09 10:49:10 -06:00
Jonathon Reinhart
3536d08477 Add checkin_at parameter to /hardware/:id/checkin API
Fixes #10552
2022-02-08 20:23:09 -05:00
snipe
ee3166cdc2 Add @savornicesei as a contributor 2022-02-08 15:38:20 -08:00
snipe
2852359225 Merge pull request #10638 from uberbrady/report_invalid_json_develop
Report invalid json develop
2022-02-08 12:27:29 -08:00
Brady Wetherington
c300e7c7f6 Remove extraneous backslash 2022-02-08 12:23:15 -08:00
Brady Wetherington
fb890fbc30 Properly alert when invalid JSON is submitted to something that wants JSON 2022-02-08 12:22:59 -08:00
snipe
7a117a22c8 Merge pull request #10637 from uberbrady/report_invalid_json
Alert when invalid JSON is submitted to something that wants it
2022-02-08 12:17:20 -08:00
Brady Wetherington
9a66f6a254 Remove extraneous backslash 2022-02-08 12:09:40 -08:00
Brady Wetherington
5e94726ec1 Properly alert when invalid JSON is submitted to something that wants JSON 2022-02-08 12:05:05 -08:00
snipe
66c3559e1c Merge pull request #10636 from inietov/fixes/inconsistencies_between_checkout_checkin_dates_master
Fixes #10627 Inconsistencies between checkout/checkin dates on asset history and activity log for master branch
2022-02-08 10:19:16 -08:00
snipe
ad52f9df72 Merge pull request #10635 from inietov/fixes/inconsistencies_between_checkout_checkin_dates
Fixes #10627 Inconsistencies between checkout/checkin dates on asset history and activity log
2022-02-08 10:18:52 -08:00
Ivan Nieto Vivanco
413e44be2f Add custom date to checkin actionlogs and show it in the history of the asset tab 2022-02-08 11:58:23 -06:00
Ivan Nieto Vivanco
d71aa859fc Add custom date to checkin actionlogs and show it in the history of the asset tab 2022-02-08 11:43:24 -06:00
snipe
ebc35c4519 Merge pull request #10630 from JonathonReinhart/10629-checkin-API-error-status
Fix /hardware/{id}/checkin API response on error
2022-02-08 08:54:17 -08:00
Jonathon Reinhart
cd963179fd Fix /hardware/{id}/checkin API response on error
Fixes #10629
2022-02-08 01:08:42 -05:00
Ivan Nieto Vivanco
796a0ebdaa Add initial support for default values in checkboxes customfields 2022-02-07 22:17:40 -06:00
snipe
474f24e40e Merge branch 'master' of https://github.com/snipe/snipe-it 2022-02-07 18:27:59 -08:00
snipe
b3a0f86431 Temp fix for weird JSON format in history
Signed-off-by: snipe <snipe@snipe.net>
2022-02-07 18:27:55 -08:00
snipe
959074f836 Merge pull request #10625 from inietov/fixes/checkin_checkout_api_routes_broken
Fixes #10614 Checkin/Checkout API route's broken
2022-02-07 11:56:48 -08:00
Ivan Nieto Vivanco
b4d2b1322f Pass ID of the checkin/checkout assets in API 2022-02-07 13:43:13 -06:00
snipe
a77c51c5f2 Merge pull request #10624 from uberbrady/develop_fix_secure_hosts_in_subdirectory
(Develop) fix secure hosts in subdirectory
2022-02-07 11:41:33 -08:00
Brady Wetherington
a15c0adc79 Fix "secure hostnames" feature for subdirectory-based Snipe-IT installs 2022-02-07 11:33:38 -08:00
snipe
1a31231569 Merge pull request #10623 from uberbrady/fix_secure_hosts_in_subdirectory
Fixes #10577 - Fix "secure hostnames" feature for subdirectory-based Snipe-IT installs
2022-02-07 11:33:33 -08:00
Brady Wetherington
f1d4087317 Fix "secure hostnames" feature for subdirectory-based Snipe-IT installs 2022-02-07 11:26:54 -08:00
snipe
f2b8091b31 Merge pull request #10622 from Godmartinz/bug/sc-18678/add-required-field-marker-to-default-currency
Fixed Bug/sc 18678/add required field marker to default currency
2022-02-07 10:34:27 -08:00
Godfrey M
67882f5531 Removed untracked fileseetvert "adding untracked files"
This reverts commit 9d0b163c11.
2022-02-07 10:23:24 -08:00
Godfrey M
5a70bba51b changed model for default currency requirement check 2022-02-07 09:51:35 -08:00
Godfrey M
9d0b163c11 adding untracked files 2022-02-07 08:58:49 -08:00
snipe
f4069e00cd Merge pull request #10611 from uberbrady/master
D'oh! Migration fails on empty settings table :(
2022-02-03 20:07:01 -08:00
Brady Wetherington
8650faf0d8 D'oh! Migration fails on empty settings table :( 2022-02-03 20:04:33 -08:00
snipe
796ef741e8 Merge pull request #10610 from uberbrady/fixes/ldap_active_status
Fixes #10563 - Rework the LDAP sync command to better handle the active flag
2022-02-03 19:45:41 -08:00
Brady Wetherington
36ae6f9430 Yanked debugging code, tightened up comments. 2022-02-03 19:41:16 -08:00
Brady Wetherington
1945b97b72 Just trying to really tighten up on the LDAP Active Flag and how we parse it. 2022-02-03 19:04:56 -08:00
Brady Wetherington
392e61688d Rework the LDAP sync command to better handle the active flag 2022-02-03 15:01:45 -08:00
snipe
db82e06665 Fixed migration with invalid LDAP prepopulation value
Signed-off-by: snipe <snipe@snipe.net>
2022-02-02 18:22:51 -08:00
snipe
ac5c6123bc Fixes #10563 - LDAP active flag - hopefully?
Signed-off-by: snipe <snipe@snipe.net>
2022-02-02 18:07:34 -08:00
snipe
8add47739e Merge pull request #10604 from inietov/fixes/column_activated_cannot_be_null
Fixes: Column activated cannot be null [sc-18528]
2022-02-02 12:21:31 -08:00
snipe
c0cc90066f Merge pull request #10605 from inietov/fixes/column_activated_cannot_be_null_develop
Fixes: Column activated cannot be null for develop [sc-18528]
2022-02-02 12:16:39 -08:00
Ivan Nieto Vivanco
fa2f8409f9 Add a casting to a truthy/falsy that needs to be integer 2022-02-02 14:09:23 -06:00
Ivan Nieto Vivanco
eac8e0bdba Add a casting to a truthy/falsy that needs to be integer 2022-02-02 13:54:57 -06:00
snipe
ce154a2382 Merge pull request #10455 from adagioajanes/features/quickscan_checkin
Added #10454: Quick Scan Checkin
2022-02-01 20:19:45 -08:00
snipe
06a5ea1530 Fixed duplicate use statement
Signed-off-by: snipe <snipe@snipe.net>
2022-02-01 18:57:45 -08:00
snipe
99c4fd8f84 Updated assets
Signed-off-by: snipe <snipe@snipe.net>
2022-02-01 18:56:18 -08:00
snipe
d2655c1092 Bumped RC version
Signed-off-by: snipe <snipe@snipe.net>
2022-02-01 18:54:46 -08:00
snipe
5fded57ec6 Merge remote-tracking branch 'origin/master' into develop
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	README.md
#	app/Console/Commands/LdapSync.php
#	app/Http/Controllers/Api/AssetsController.php
#	app/Http/Controllers/ProfileController.php
#	app/Importer/ItemImporter.php
#	app/Importer/UserImporter.php
#	app/Models/Asset.php
#	app/Models/License.php
#	app/Providers/AppServiceProvider.php
#	app/Services/LdapAd.php
#	config/version.php
#	public/js/build/app.js
#	public/js/dist/all.js
#	public/mix-manifest.json
#	resources/lang/ar/button.php
#	resources/lang/de/admin/companies/general.php
#	resources/lang/de/admin/custom_fields/general.php
#	resources/lang/de/admin/groups/titles.php
#	resources/lang/de/admin/hardware/form.php
#	resources/lang/de/admin/hardware/general.php
#	resources/lang/de/admin/hardware/message.php
#	resources/lang/de/admin/hardware/table.php
#	resources/lang/de/admin/kits/general.php
#	resources/lang/de/admin/locations/table.php
#	resources/lang/de/admin/reports/general.php
#	resources/lang/de/admin/settings/general.php
#	resources/lang/de/admin/settings/message.php
#	resources/lang/de/admin/users/general.php
#	resources/lang/de/general.php
#	resources/lang/de/mail.php
#	resources/lang/en/admin/asset_maintenances/message.php
#	resources/lang/en/admin/asset_maintenances/table.php
#	resources/lang/en/admin/companies/general.php
#	resources/lang/en/admin/companies/message.php
#	resources/lang/en/admin/custom_fields/general.php
#	resources/lang/en/admin/depreciations/general.php
#	resources/lang/en/admin/groups/titles.php
#	resources/lang/en/admin/hardware/form.php
#	resources/lang/en/admin/hardware/general.php
#	resources/lang/en/admin/hardware/table.php
#	resources/lang/en/admin/kits/general.php
#	resources/lang/en/admin/locations/table.php
#	resources/lang/en/admin/reports/general.php
#	resources/lang/en/admin/settings/general.php
#	resources/lang/en/admin/settings/message.php
#	resources/lang/en/admin/users/general.php
#	resources/lang/en/button.php
#	resources/lang/en/general.php
#	resources/lang/en/help.php
#	resources/lang/en/mail.php
#	resources/lang/en/passwords.php
#	resources/lang/hu/admin/hardware/general.php
#	resources/lang/hu/admin/hardware/table.php
#	resources/lang/hu/admin/locations/table.php
#	resources/lang/is/admin/locations/table.php
#	resources/lang/ko/admin/custom_fields/general.php
#	resources/lang/ko/general.php
#	resources/lang/nl/admin/hardware/general.php
#	resources/lang/nl/admin/hardware/message.php
#	resources/lang/nl/admin/hardware/table.php
#	resources/lang/nl/admin/locations/table.php
#	resources/lang/nl/admin/statuslabels/message.php
#	resources/lang/nl/admin/users/general.php
#	resources/lang/no/admin/companies/general.php
#	resources/lang/no/admin/custom_fields/general.php
#	resources/lang/no/admin/depreciations/general.php
#	resources/lang/no/admin/depreciations/table.php
#	resources/lang/no/admin/groups/titles.php
#	resources/lang/no/admin/hardware/form.php
#	resources/lang/no/admin/hardware/general.php
#	resources/lang/no/admin/hardware/table.php
#	resources/lang/no/admin/kits/general.php
#	resources/lang/no/admin/locations/table.php
#	resources/lang/no/admin/reports/general.php
#	resources/lang/no/admin/settings/general.php
#	resources/lang/no/admin/settings/message.php
#	resources/lang/no/admin/statuslabels/message.php
#	resources/lang/no/admin/users/general.php
#	resources/lang/no/button.php
#	resources/lang/no/general.php
#	resources/lang/no/mail.php
#	resources/lang/no/validation.php
#	resources/lang/pl/admin/companies/general.php
#	resources/lang/pl/admin/custom_fields/general.php
#	resources/lang/pl/admin/depreciations/general.php
#	resources/lang/pl/admin/depreciations/table.php
#	resources/lang/pl/admin/groups/titles.php
#	resources/lang/pl/admin/hardware/form.php
#	resources/lang/pl/admin/hardware/general.php
#	resources/lang/pl/admin/hardware/table.php
#	resources/lang/pl/admin/kits/general.php
#	resources/lang/pl/admin/locations/table.php
#	resources/lang/pl/admin/reports/general.php
#	resources/lang/pl/admin/settings/general.php
#	resources/lang/pl/admin/settings/message.php
#	resources/lang/pl/admin/users/general.php
#	resources/lang/pl/button.php
#	resources/lang/pl/general.php
#	resources/lang/pt-PT/admin/companies/general.php
#	resources/lang/pt-PT/admin/custom_fields/general.php
#	resources/lang/pt-PT/admin/depreciations/general.php
#	resources/lang/pt-PT/admin/depreciations/table.php
#	resources/lang/pt-PT/admin/groups/titles.php
#	resources/lang/pt-PT/admin/hardware/form.php
#	resources/lang/pt-PT/admin/hardware/general.php
#	resources/lang/pt-PT/general.php
#	resources/lang/pt-PT/help.php
#	resources/lang/pt-PT/validation.php
#	resources/lang/ro/admin/companies/general.php
#	resources/lang/ro/admin/custom_fields/general.php
#	resources/lang/ro/admin/groups/titles.php
#	resources/lang/ro/admin/hardware/form.php
#	resources/lang/ro/admin/hardware/general.php
#	resources/lang/ro/admin/hardware/message.php
#	resources/lang/ro/admin/hardware/table.php
#	resources/lang/ro/admin/locations/table.php
#	resources/lang/ro/admin/settings/message.php
#	resources/lang/ru/admin/companies/general.php
#	resources/lang/ru/admin/custom_fields/general.php
#	resources/lang/ru/admin/settings/general.php
#	resources/lang/ru/button.php
#	resources/lang/ru/general.php
#	resources/lang/ru/validation.php
#	resources/lang/sk/admin/settings/general.php
#	resources/lang/sk/button.php
#	resources/lang/sk/general.php
#	resources/lang/tr/admin/hardware/form.php
#	resources/lang/tr/admin/hardware/table.php
#	resources/lang/tr/admin/kits/general.php
#	resources/lang/tr/admin/locations/table.php
#	resources/lang/tr/admin/reports/general.php
#	resources/lang/tr/admin/settings/general.php
#	resources/lang/tr/admin/settings/message.php
#	resources/lang/tr/admin/statuslabels/message.php
#	resources/lang/tr/admin/users/general.php
#	resources/lang/tr/button.php
#	resources/lang/tr/general.php
#	resources/lang/zh-CN/admin/companies/general.php
#	resources/lang/zh-CN/admin/custom_fields/general.php
#	resources/lang/zh-CN/admin/depreciations/general.php
#	resources/lang/zh-CN/admin/depreciations/table.php
#	resources/lang/zh-CN/admin/groups/titles.php
#	resources/lang/zh-CN/admin/hardware/form.php
#	resources/lang/zh-CN/admin/hardware/general.php
#	resources/lang/zh-CN/admin/hardware/message.php
#	resources/lang/zh-CN/admin/hardware/table.php
#	resources/lang/zh-CN/admin/kits/general.php
#	resources/lang/zh-CN/admin/locations/table.php
#	resources/lang/zh-CN/admin/reports/general.php
#	resources/lang/zh-CN/admin/settings/general.php
#	resources/lang/zh-CN/admin/settings/message.php
#	resources/lang/zh-CN/admin/statuslabels/message.php
#	resources/lang/zh-CN/admin/users/general.php
#	resources/lang/zh-CN/button.php
#	resources/lang/zh-CN/general.php
#	resources/lang/zh-CN/mail.php
#	resources/views/depreciations/edit.blade.php
2022-02-01 18:53:05 -08:00
snipe
2815e0d36e Fixed audit email template (applies #10592 to master)
Signed-off-by: snipe <snipe@snipe.net>
2022-02-01 17:27:32 -08:00
snipe
cda13f69ae Merge pull request #10592 from uberbrady/fix_upcoming_audits_email
Fixed markdown upcoming audits email table
2022-02-01 17:25:46 -08:00
snipe
669826f6b2 Merge pull request #10574 from uberbrady/fix_force_root_url_v6
Add some guardrails around very-badly formatted APP_URL settings
2022-02-01 16:14:48 -08:00
snipe
a7d34dfb19 Merge pull request #10579 from misilot/fix-10176-webui
Replace .my.cnf with column-statistics.cnf at the system level for mysqldump
2022-02-01 16:14:37 -08:00
snipe
8083ba8dca Merge pull request #10590 from inietov/fixes/bulkedit_does_not_show_in_history_develop
Fixes Bulk edit doesn't show in Asset's history nor Activity report for develop [sc-16550]
2022-02-01 16:14:25 -08:00
snipe
237bc22a5c Merge pull request #10591 from uberbrady/allow_invalid_app_urls_develop
Allow invalid app urls develop
2022-02-01 14:17:08 -08:00
Brady Wetherington
eaba560877 We had a markdown failure in the upcoming audits table, this fixes it. 2022-02-01 14:06:01 -08:00
snipe
2e998b110f Add @TenOfTens as a contributor 2022-02-01 13:40:31 -08:00
Brady Wetherington
f70c238b1c Merge remote-tracking branch 'upstream/develop' into develop 2022-02-01 11:53:33 -08:00
Ivan Nieto Vivanco
3ef775533a Adds actionlog for bulk edits 2022-02-01 12:10:46 -06:00
snipe
b9d6708181 Merge pull request #10588 from TenOfTens/develop
Typo found in snipeit/routes/api.php @ line 391
2022-02-01 07:21:08 -08:00
TenOfTens
70eeafd2a3 Update api.php
Typo at line 391 GroupsCOntroller to GroupsController. Was causing an error with the groups view not reflecting the actual groups seen from the database.
2022-02-01 08:51:34 -06:00
snipe
f45c963428 Merge pull request #10586 from inietov/fixes/bulkedit_does_not_show_in_history
Fixes Bulk edit doesn't show in Asset's history nor Activity report [sc-16550]
2022-01-31 23:07:02 -08:00
Ivan Nieto Vivanco
2fec40d7df Adds actionlog for bulk edits 2022-02-01 00:00:12 -06:00
Brady Wetherington
72e9360228 Merge remote-tracking branch 'upstream/develop' into develop 2022-01-31 10:13:30 -08:00
snipe
215beb9d8a Merge pull request #10580 from misilot/fix-10176-webui-master
Replace .my.cnf with column-statistics.cnf at the system level for mysqldump (master)
2022-01-29 07:16:24 -08:00
Tom Misilo
b0c61ee044 Replace .my.cnf with column-statistics.cnf at the system level for mysqldump
Fixes #10176

The `column-statistics.cnf` file is copied to `/etc/mysql/conf.d/column-statistics.cnf` for each Dockerfile that exists.

This puts it as a system level mysql client change, so the web ui interface also works.
2022-01-29 07:28:12 -06:00
Tom Misilo
fb585955b4 Replace .my.cnf with column-statistics.cnf at the system level for mysqldump
Fixes #10176

The `column-statistics.cnf` file is copied to `/etc/mysql/conf.d/column-statistics.cnf` for each Dockerfile that exists.

This puts it as a system level mysql client change, so the web ui interface also works.
2022-01-29 07:24:50 -06:00
snipe
16fb2213b5 Updated language strings
Signed-off-by: snipe <snipe@snipe.net>
2022-01-28 12:40:03 -08:00
snipe
a0d0645453 Bumped version
Signed-off-by: snipe <snipe@snipe.net>
2022-01-28 12:38:42 -08:00
snipe
1ef336a08b Merge pull request #10576 from snipe/features/add_custom_fields_search
Added #9576 - Lookup Asset by Custom Field via API [sc-18632]
2022-01-28 09:51:28 -08:00
snipe
aa3aa78204 Adds Lookup Asset by Custom Field via API [sc-18632]
Signed-off-by: snipe <snipe@snipe.net>
2022-01-28 09:08:48 -08:00
snipe
db0a078c0b Merge pull request #10573 from uberbrady/fix_force_root_url
Add some guardrails around very-badly formatted APP_URL settings
2022-01-27 11:29:29 -08:00
Brady Wetherington
44719e3dcc Fix whitespace issues 2022-01-27 11:29:20 -08:00
Brady Wetherington
1cf1278b3b Fix whitespace issues 2022-01-27 11:28:51 -08:00
Brady Wetherington
476075235a Add some guardrails around very-badly formatted APP_URL settings 2022-01-27 11:24:21 -08:00
Brady Wetherington
70648dedd3 Add some guardrails around very-badly formatted APP_URL settings 2022-01-27 11:21:46 -08:00
snipe
a65fb63b6b Merge pull request #10511 from inietov/features/audit_date_in_importer
Adds audit dates in the asset importer
2022-01-27 10:58:53 -08:00
snipe
9634dde0dd Merge pull request #10567 from inietov/fixes/importing_and_checking_out_licenses_master
Fixes Importing licenses without product key duplicates the license
2022-01-27 10:58:06 -08:00
snipe
0eab249819 Merge pull request #10569 from inietov/fixes/donked_layout_required_field_error_depreciation_develop
Fixes donked layout required field error depreciation in develop[sc-17111]
2022-01-27 10:57:33 -08:00
snipe
077caa29f8 Merge pull request #10570 from inietov/fixes/donked_layout_required_field_error_depreciation
Fixes donked layout required field error depreciation [sc-17111]
2022-01-26 21:23:51 -08:00
Ivan Nieto Vivanco
a87478d3ac Set the actual field we are evaluating as required (months) 2022-01-26 23:02:27 -06:00
Ivan Nieto Vivanco
34819ec5cf Fixes the appearance of some error messages 2022-01-26 23:00:52 -06:00
Ivan Nieto Vivanco
44349db597 Fixes the appearance of some error messages 2022-01-26 22:58:02 -06:00
snipe
c70ae19c28 Merge pull request #10529 from uberbrady/fix_insecure_host_headers
Force UrlGenerator's Root URL to be the base of APP_URL unless overriden (v5)
2022-01-26 16:59:55 -08:00
snipe
b153138d1e Merge pull request #10534 from inietov/feature/add_remaining_address_field_to_user_import_develop
Add Zip field in the User Importer for develop [sc-18556]
2022-01-26 16:58:37 -08:00
snipe
d0b90bdff9 Merge pull request #10568 from inietov/fixes/importing_and_checking_out_licenses
Fixes Importing licenses without product key duplicates the license for develop branch
2022-01-26 16:30:00 -08:00
Ivan Nieto Vivanco
55fdc86e02 Tweak query in the License Importer to not require a Product Key 2022-01-26 17:51:04 -06:00
Ivan Nieto Vivanco
450cb8f92f Tweak query in the License Importer to not require a Product Key 2022-01-26 17:49:34 -06:00
snipe
8ebade7892 Merge pull request #10566 from inietov/fixes/cant_add_customfield_to_fieldset
Fix #10564: Edit the route to associate custom fields with fieldsets
2022-01-26 13:02:26 -08:00
Ivan Nieto Vivanco
fcd203f4dc Fix the route to associate custom fields with fieldsets 2022-01-26 14:43:20 -06:00
Brady Wetherington
48f1380f6e Merge pull request #10528 from uberbrady/fix_insecure_host_headers_v6
Force UrlGenerator's Root URL to be the base of APP_URL unless overriden
2022-01-24 18:26:30 -08:00
snipe
eade041b6e Merge branch 'develop' of https://github.com/snipe/snipe-it into develop 2022-01-21 12:33:53 -08:00
snipe
ee47a02792 Updated assets
Signed-off-by: snipe <snipe@snipe.net>
2022-01-21 12:33:49 -08:00
snipe
8813f55770 Merge pull request #10545 from inietov/fixes/unable_to_add_asset_model
Fixes #10536 Unable to add asset model (v6.0.0-RC-1)
2022-01-21 10:13:10 -08:00
Ivan Nieto Vivanco
7383ec7f1e Add an early return if the model id is not set (for new Asset Models) 2022-01-21 11:45:45 -06:00
snipe
0721ab8bbf Regenerated production assets
Signed-off-by: snipe <snipe@snipe.net>
2022-01-20 11:01:04 -08:00
snipe
00c8a1ee21 Merge pull request #10533 from inietov/feature/add_remaining_address_field_to_user_import
Add Zip field in the User Importer [sc-18556]
2022-01-19 12:07:18 -08:00
Ivan Nieto Vivanco
c86ed892ab Add Zip field in the User Importer 2022-01-19 13:52:15 -06:00
Ivan Nieto Vivanco
1fc71a4111 Add Zip field in the User Importer 2022-01-19 13:35:54 -06:00
Brady Wetherington
0c4768fd2a Force UrlGenerator's Root URL to be the base of APP_URL unless overriden
(For v5)
2022-01-18 15:52:59 -08:00
Brady Wetherington
455bc736be Force UrlGenerator's Root URL to be the base of APP_URL unless overriden 2022-01-18 15:31:30 -08:00
snipe
a26119c262 Merge branch 'develop' of https://github.com/snipe/snipe-it into develop 2022-01-18 14:50:35 -08:00
snipe
e7541f29d2 Use php artisan serve url
Signed-off-by: snipe <snipe@snipe.net>
2022-01-18 14:50:24 -08:00
snipe
f9647614ab Merge pull request #10527 from inietov/fixes/pdo_exception_syntax_error_when_sendexpirationalers_is_called
Fixes PDO exeception syntax error when Expiring Alerts Threshold is not set
2022-01-18 12:43:08 -08:00
Ivan Nieto Vivanco
a05795420a Respect the default value of 60 days in expiring licenses 2022-01-18 14:34:14 -06:00
Ivan Nieto Vivanco
42d86bf57b Adds default values if the expiring alerts threshold is null 2022-01-18 14:21:49 -06:00
snipe
201b52baf8 Merge pull request #10523 from inietov/fixes/depreciation_report_shows_assets_that_not_deprecate_master
Fixes bug where the depreciation report shows assets that not deprecate for master
2022-01-18 10:37:21 -08:00
snipe
c8c559784d Merge pull request #10522 from inietov/fixes/depreciation_report_shows_assets_that_not_deprecate
Fixes bug where the depreciation report shows assets that not depreciate
2022-01-15 12:23:58 -08:00
Ivan Nieto Vivanco
f510b9c2a9 Add query to filter non-deprecable assets when the Depreciation Report is called 2022-01-15 14:21:31 -06:00
Ivan Nieto Vivanco
8334ed6f7e Add query to filter non-deprecable assets when the Depreciation Report is called 2022-01-15 14:01:19 -06:00
Ivan Nieto Vivanco
9ae03f21dc Adds condition to only charge custom field's livewire when the model is updated 2022-01-15 12:14:34 -06:00
Ivan Nieto Vivanco
92b3576395 Fixes a route definition to correctly populate the deprecation report 2022-01-15 12:02:43 -06:00
snipe
6d96f96615 Merge pull request #10520 from inietov/fixes/sc-14356/importer_creating_duplicate_asset_models
Fixes an issue where importer is creating duplicate asset models
2022-01-15 07:47:36 -08:00
snipe
75bd365ca1 Merge pull request #10521 from inietov/fixes/sc-14356/importer_creating_duplicate_asset_models_master
Fixes an issue where importer is creating duplicate asset models for Master Branch
2022-01-15 07:46:39 -08:00
Ivan Nieto Vivanco
153c30eda8 Add to Importer the capacity to search Models only with Model Name since Model Number is not required 2022-01-15 04:32:47 -06:00
Ivan Nieto Vivanco
58b1db29e2 Adds condition to only update the Asset's Model Number if is provided by import file 2022-01-15 04:15:38 -06:00
Ivan Nieto Vivanco
8bd280b416 Add to Importer the capacity to search Models only with Model Name since Model Number is not required 2022-01-15 04:12:30 -06:00
Ivan Nieto Vivanco
d5f6f6cafe Fixes duplicate API endpoint that returns fieldsets instead of customfields 2022-01-15 03:46:28 -06:00
snipe
b9cc0c9d4c Merge pull request #10519 from uberbrady/request_pending_assets
Make 'pending' assets properly requestable; use requestable scope
2022-01-14 13:07:16 -08:00
Brady Wetherington
ef463a37d8 Make 'pending' assets properly requestable; use requestable scope 2022-01-14 12:48:33 -08:00
snipe
cfb64be9a4 More specific RC version number
Signed-off-by: snipe <snipe@snipe.net>
2022-01-13 21:41:04 -08:00
snipe
91017aed52 Bumped to RC-1
Signed-off-by: snipe <snipe@snipe.net>
2022-01-13 21:38:10 -08:00
snipe
af2e407543 Normalize array format in en language to the new shitty way
Signed-off-by: snipe <snipe@snipe.net>
2022-01-13 21:30:35 -08:00
snipe
ddfa5776c5 Updated language strings
This absolutely sucks. Something changed in CrowdIn or something else, which results in this push being *thousands* of files because someone somewhere decided that `return [];` was vastly inferior to `return array();`

I'll try to fix it. :(

FML

Signed-off-by: snipe <snipe@snipe.net>
2022-01-13 21:27:29 -08:00
snipe
da47f62d17 Added strings
Signed-off-by: snipe <snipe@snipe.net>
2022-01-13 21:20:38 -08:00
snipe
207ff014b1 Merge pull request #10514 from uberbrady/fix_double_wildcard_query_requestable
Fixed extraneous wildcard query in requestable asset search
2022-01-13 19:39:08 -08:00
Brady Wetherington
65e584c2bd Revert the unnecessary optimization for asset->count() 2022-01-13 19:37:08 -08:00
snipe
591e1c6a9d Merge pull request #10512 from uberbrady/fix_asset_acceptance_routing_bug
Duplicate route meant overwrite of route-name
2022-01-13 17:08:26 -08:00
snipe
24a234ede3 Merge pull request #10503 from uberbrady/develop_fix_dont_req_preauth_uac
Permit DONT_REQ_PREAUTH AD users to log in
2022-01-13 17:01:59 -08:00
snipe
be7e6ed847 Merge pull request #10502 from uberbrady/ldap_useraccountcontrol_dont_req_preauth
Add new UserAccountControl to permitted UAC's for AD.
2022-01-13 17:01:47 -08:00
Brady Wetherington
4e8ae8a162 Fix extraneous wildcard query in requestable asset search 2022-01-13 16:32:40 -08:00
Brady Wetherington
c527a5c6e7 Duplicate route meant overwrite of route-name 2022-01-13 16:03:32 -08:00
snipe
115109f612 Merge pull request #10510 from misilot/fix-10176-master
Looks great, thanks!
2022-01-13 13:22:22 -08:00
Thomas Misilo
037a912e21 Adding .my.cnf to disable column-statistics backup
Fixes #10176

The ```.my.cnf``` file is copied to ```/root/.my.cnf``` for each
Dockerfile that exists
2022-01-13 15:16:59 -06:00
Ivan Nieto Vivanco
949fe2a14a Adds last_audit_date and next_audit_date in the asset importer 2022-01-13 15:14:20 -06:00
snipe
4e3fd6bfaf Merge pull request #10509 from misilot/fix-10176
Adding .my.cnf to disable column-statistics backup
2022-01-13 13:13:54 -08:00
Thomas Misilo
930666ffa0 Adding .my.cnf to disable column-statistics backup
Fixes #10176

The ```.my.cnf``` file is copied to ```/root/.my.cnf``` for each
Dockerfile that exists
2022-01-13 14:36:00 -06:00
snipe
984db1ef44 Apply personal API token fix to master
Signed-off-by: snipe <snipe@snipe.net>
2022-01-13 01:39:56 -08:00
snipe
0e5ef53c35 Merge pull request #10504 from snipe/fixes/auth_controls_on_api_key_creation
Fixes auth controls on api key creation
2022-01-13 01:36:52 -08:00
snipe
512dbfee7a Added gate to check that the user is allowed to view API keys
Signed-off-by: snipe <snipe@snipe.net>
2022-01-13 01:33:27 -08:00
snipe
eb8f23a888 Removed commented code
Signed-off-by: snipe <snipe@snipe.net>
2022-01-13 01:32:28 -08:00
snipe
8f4ec95fbb Remove assets query, since we handle that via API call now and just need the count()
Signed-off-by: snipe <snipe@snipe.net>
2022-01-12 23:23:00 -08:00
snipe
67ba8a6281 Removed extra spaces
Signed-off-by: snipe <snipe@snipe.net>
2022-01-12 23:18:39 -08:00
snipe
9368ddeaf0 Added badge count on requestable assets
Signed-off-by: snipe <snipe@snipe.net>
2022-01-12 23:17:54 -08:00
snipe
f206d4ed4e Fixed double div in current purchase value
Signed-off-by: snipe <snipe@snipe.net>
2022-01-12 22:26:56 -08:00
snipe
224d0b2fd2 Small language file additions
Signed-off-by: snipe <snipe@snipe.net>
2022-01-12 22:21:00 -08:00
snipe
ae50f86c39 Bumped version
Signed-off-by: snipe <snipe@snipe.net>
2022-01-12 20:52:30 -08:00
snipe
43c57c8461 Merge master into develop
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	.all-contributorsrc
#	README.md
#	app/Http/Controllers/BulkAssetModelsController.php
#	app/Http/Controllers/CustomFieldsController.php
#	app/Http/Controllers/CustomFieldsetsController.php
#	app/Http/Controllers/ModalController.php
#	app/Http/Transformers/GroupsTransformer.php
#	config/version.php
#	package-lock.json
#	public/css/build/app.css
#	public/css/build/overrides.css
#	public/css/dist/all.css
#	public/css/dist/bootstrap-table.css
#	public/js/build/app.js
#	public/js/dist/all.js
#	public/js/dist/bootstrap-table.js
#	public/mix-manifest.json
#	resources/assets/less/overrides.less
#	resources/lang/en/admin/hardware/message.php
#	resources/lang/en/admin/settings/general.php
#	resources/views/partials/bootstrap-table.blade.php
#	routes/web.php
2022-01-12 20:51:33 -08:00
snipe
ba5b835933 Lock seeder to english
Signed-off-by: snipe <snipe@snipe.net>
2022-01-12 13:10:29 -08:00
Brady Wetherington
a063806bcc Permit DONT_REQ_PREAUTH AD users to log in 2022-01-12 12:50:39 -08:00
Brady Wetherington
c8fe929e09 Add new UserAccountControl to permitted UAC's for AD. 2022-01-12 12:07:51 -08:00
snipe
df0da0f3bc Fixed escaped string
Signed-off-by: snipe <snipe@snipe.net>
2022-01-12 11:20:31 -08:00
snipe
181dc5127f Add @UniversalSuperBox as a contributor 2022-01-11 15:03:08 -08:00
snipe
303fc39966 Regenerated assets to pikc up #10089 changes
Signed-off-by: snipe <snipe@snipe.net>
2022-01-11 14:38:17 -08:00
snipe
730c2a6821 Merge pull request #10496 from UniversalSuperBox/fix/improve-asset-card-view
Fixed #10089 (partially): Back to master: Added some BS tables style overrides for mobile
2022-01-11 14:10:18 -08:00
Alex Janes
d2bb3e6377 Merge branch 'develop' into features/quickscan_checkin 2022-01-11 16:40:20 -05:00
snipe
2262176a60 Merge pull request #10449 from adagioajanes/features/lock_logins_to_saml
Added #10436: Restricted Logins to SAML controlled via environment variable
2022-01-11 12:37:54 -08:00
Alex Janes
edef640d35 Merge branch 'develop' into features/lock_logins_to_saml 2022-01-11 09:05:14 -05:00
snipe
23a2700178 Merge pull request #10491 from snipe/fixes/migration_licenses_table_issue
Fixed - v6 migration licenses table issue
2022-01-10 15:51:18 -08:00
snipe
ea83567e7d Merge pull request #10494 from exula/fix/increase_max_licenses
Fixed #7824
2022-01-10 15:04:47 -08:00
snipe
dcc199835b Add @nuraeil as a contributor 2022-01-10 14:56:22 -08:00
snipe
d9624b59b4 Merge pull request #10264 from nuraeil/added-localized-strings
Added #10242: Improved localized strings
2022-01-10 14:48:52 -08:00
snipe
b98c97b00e Merge pull request #10265 from uberbrady/remove_old_ldap
Remove old ldap
2022-01-10 14:34:34 -08:00
snipe
b18b3812df Back to master: Added some BS tables style overrides for mobile
This repeats 06e8e826, which alone improves the mobile view immensely,
on master.
2022-01-10 15:23:43 -06:00
Brad
6b6a83a525 Removing something stupid PHPStorm put in the use area 2022-01-10 14:21:19 -05:00
Brad
81084fa717 Fixed #7824
Previously there was a 999 max seats on Licenses as anything above that seemed to cause slowdowns and failure.

This commit allievates those pain points

- removed freeSeats as a hydrated Eloquent model on JSON requests for the licenses index
- removed 'licenseSeats.user', 'licenseSeats.asset' from the 'with' clause as it's not needed in the view (Datatabales takes care of that)
- removed the 999 max seats limit from the License Model,
- reworked how new license seats are created when increasing seats or creating licenses
- Added an index the license_seats table to help speed up lookups
2022-01-10 14:03:28 -05:00
Wächtler, Yannick
f906dbd81e Added missed translation strings, fixed the column width for the date selector (too small in certain languages) 2022-01-10 09:21:23 +01:00
Nuraeil
5bb2f6fa0f Merge branch 'develop' into added-localized-strings 2022-01-09 17:40:54 +01:00
Wächtler, Yannick
b77e7f88d4 fix(bootstrap-table): adds locale env to table init, adds bootstrap-table-locale-all to webpack-mix 2022-01-09 17:35:28 +01:00
snipe
66976d9359 Merge pull request #10492 from snipe/fixes/finish_localizing_backup_restore
Finished localizing backup restore strings
2022-01-07 16:51:43 -08:00
snipe
0f5bb0e65d Localize bakcup restore strings
Signed-off-by: snipe <snipe@snipe.net>
2022-01-07 16:50:19 -08:00
snipe
8719b3d3e9 Only try to create the licenses table if it doesn't exist
Signed-off-by: snipe <snipe@snipe.net>
2022-01-07 15:43:34 -08:00
Wächtler, Yannick
c3ab4c7512 Fixed the tables not displaying the correct language 2022-01-06 14:29:10 +01:00
Wächtler, Yannick
04d649122b Fixed duplication for a couple of items, removed TODO markers, added lots of translation strings where there was a TODO 2022-01-06 12:35:37 +01:00
Nuraeil
271c364ef8 Merge pull request #9 from snipe/develop
Merge snipe/snipe-it:develop into nuraeil/snipe-it:added-localized-strings
2022-01-04 10:48:51 +01:00
Brady Wetherington
95c30cae8d Some duplicate imports at the top of the Settings file 2022-01-03 13:53:53 -08:00
Brady Wetherington
3c7f2e89ec Merge branch 'develop' into remove_old_ldap
Had to re-do the composer install because the conflicts were too complicated.
2022-01-03 12:56:58 -08:00
snipe
359b22e17a Applies #10470 to develop
Signed-off-by: snipe <snipe@snipe.net>
2021-12-27 13:22:47 -08:00
snipe
aaeda5bf76 Merge pull request #10468 from snipe/fixes/10467_safari_font_awesome_content_code_headers
Fixed #10467 - Safari only font-awesome bug
2021-12-24 12:34:36 -08:00
snipe
8be6d10dbe Fixed #10467 - Safari only font-awesome bug
Signed-off-by: snipe <snipe@snipe.net>
2021-12-24 12:30:34 -08:00
snipe
fde5c6c226 Add @adagioajanes as a contributor 2021-12-24 11:21:46 -08:00
snipe
f4ef828332 Fixex js table export
Signed-off-by: snipe <snipe@snipe.net>
2021-12-24 11:17:36 -08:00
snipe
87f52cbfec Seeder fixes
Signed-off-by: snipe <snipe@snipe.net>
2021-12-24 10:47:06 -08:00
Alex Janes
ea93f82bde added the notes field to allow users to quickly add notes to multiple checkins at once 2021-12-23 17:37:48 -05:00
snipe
69bc02727b Merge pull request #10460 from inietov/fixes/duplicate_department_in_user_import
Fixes Duplicate department in user import
2021-12-21 13:30:24 -08:00
Ivan Nieto Vivanco
e03a8cc721 Delete an extra entry for Departments when importing Users via GUI 2021-12-21 14:42:51 -06:00
Alex Janes
2e5820e29d small phrase change 2021-12-20 23:31:10 -05:00
Alex Janes
b01a4468c7 refactored from bulkcheckin to quickscancheckin 2021-12-20 23:27:36 -05:00
snipe
48d3bfef03 Merge pull request #10421 from Robert-Azelis/patch-5
Create new user account from asset form - additional fields
2021-12-20 17:05:38 -08:00
Alex Janes
7acb559069 corrected issue with asset not found errors 2021-12-20 19:55:00 -05:00
Alex Janes
55b8d080b9 more lang changes 2021-12-20 19:39:06 -05:00
Alex Janes
fcc9815c6e Revert "Added phrase to all language files to prevent errors (translation still needs to happen)"
This reverts commit 87ef37b0b4.
2021-12-20 18:05:21 -05:00
Alex Janes
cb14abfc54 Revert "fixed zh-CN file format"
This reverts commit 20f66a1b55.
2021-12-20 18:05:09 -05:00
Alex Janes
3841c3560b changed a page title 2021-12-20 16:52:00 -05:00
Alex Janes
20f66a1b55 fixed zh-CN file format 2021-12-20 14:05:13 -05:00
Alex Janes
2b5aca183c removed unnecessary additional data call from api method 2021-12-19 19:21:58 -05:00
Alex Janes
14b21a6e95 removed some whitespace 2021-12-19 19:17:32 -05:00
Alex Janes
08cb8c354b more cleanup to fit formatting convention 2021-12-19 19:11:24 -05:00
Alex Janes
87ef37b0b4 Added phrase to all language files to prevent errors (translation still needs to happen) 2021-12-19 18:50:55 -05:00
Alex Janes
29da4f4325 Removed a bunch of redundant code I created from the API 2021-12-19 18:39:57 -05:00
Alex Janes
bc4fe88ac0 First version of bulk checkin 2021-12-19 16:53:31 -05:00
Alex Janes
ead142cdf7 Corrected a tiny HTML typo in the SAML view. (Unrelated to this PR) 2021-12-18 12:00:07 -05:00
Alex Janes
9d4a6b85ed Merge remote-tracking branch 'origin/features/lock_logins_to_saml' into features/lock_logins_to_saml 2021-12-18 11:56:57 -05:00
Alex Janes
227ca61301 Changed phrasing of "SAML Force Login" to "SAML Default Login" (English only at this point) 2021-12-18 11:56:36 -05:00
Alex Janes
a68ec8bb57 Update LoginController.php
Updated if statements to match convention exactly.
2021-12-17 18:52:42 -05:00
Alex Janes
74de91c31a Merge pull request #1 from snipe/develop
Develop
2021-12-17 14:51:03 -05:00
snipe
4ca2252e3b Switches GET to POST for request assset
Signed-off-by: snipe <snipe@snipe.net>
2021-12-16 20:32:29 -08:00
Alex Janes
d99db5c63b bug fix and formatting fix 2021-12-16 19:04:37 -05:00
Wächtler, Yannick
2901525194 Merge branch 'snipe-develop' into added-localized-strings 2021-12-17 00:22:08 +01:00
Wächtler, Yannick
279fced877 merge 2021-12-17 00:14:36 +01:00
snipe
8c5dce5dcf Merge pull request #10450 from snipe/master_into_develop
Master into develop
2021-12-16 14:45:53 -08:00
snipe
398180dc59 Small merge unmagling
Signed-off-by: snipe <snipe@snipe.net>
2021-12-16 14:38:04 -08:00
snipe
6be98638ed Bumped hash
Signed-off-by: snipe <snipe@snipe.net>
2021-12-16 14:29:38 -08:00
snipe
c3d55ee27e Merge master down into develop
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	.all-contributorsrc
#	README.md
#	app/Exceptions/Handler.php
#	app/Http/Controllers/Api/AssetsController.php
#	app/Http/Controllers/Api/SettingsController.php
#	app/Http/Controllers/CustomFieldsController.php
#	app/Http/Controllers/SettingsController.php
#	app/Http/Transformers/AssetsTransformer.php
#	app/Models/Setting.php
#	config/version.php
#	resources/lang/af/button.php
#	resources/lang/ar/button.php
#	resources/lang/bg/button.php
#	resources/lang/cs/button.php
#	resources/lang/cy/button.php
#	resources/lang/da/button.php
#	resources/lang/de/button.php
#	resources/lang/el/button.php
#	resources/lang/en-GB/button.php
#	resources/lang/en-ID/button.php
#	resources/lang/es-CO/admin/groups/message.php
#	resources/lang/es-MX/button.php
#	resources/lang/et/admin/custom_fields/general.php
#	resources/lang/et/admin/hardware/table.php
#	resources/lang/et/admin/kits/general.php
#	resources/lang/et/admin/manufacturers/message.php
#	resources/lang/et/admin/models/general.php
#	resources/lang/et/admin/settings/general.php
#	resources/lang/et/button.php
#	resources/lang/et/mail.php
#	resources/lang/fa/button.php
#	resources/lang/fa/help.php
#	resources/lang/fi/button.php
#	resources/lang/fil/button.php
#	resources/lang/fr/button.php
#	resources/lang/ga-IE/button.php
#	resources/lang/he/button.php
#	resources/lang/hr/button.php
#	resources/lang/hu/admin/settings/general.php
#	resources/lang/hu/auth/message.php
#	resources/lang/hu/button.php
#	resources/lang/hu/mail.php
#	resources/lang/id/admin/hardware/table.php
#	resources/lang/id/button.php
#	resources/lang/it/button.php
#	resources/lang/iu/button.php
#	resources/lang/ja/button.php
#	resources/lang/ko/button.php
#	resources/lang/lt/button.php
#	resources/lang/lv/button.php
#	resources/lang/mi/button.php
#	resources/lang/mk/button.php
#	resources/lang/ml-IN/button.php
#	resources/lang/mn/button.php
#	resources/lang/ms/admin/hardware/table.php
#	resources/lang/ms/admin/kits/general.php
#	resources/lang/ms/admin/models/general.php
#	resources/lang/ms/admin/models/message.php
#	resources/lang/ms/admin/settings/general.php
#	resources/lang/ms/button.php
#	resources/lang/nl/button.php
#	resources/lang/no/admin/hardware/table.php
#	resources/lang/no/admin/kits/general.php
#	resources/lang/no/admin/settings/general.php
#	resources/lang/no/auth/message.php
#	resources/lang/no/button.php
#	resources/lang/no/help.php
#	resources/lang/no/mail.php
#	resources/lang/pl/button.php
#	resources/lang/pt-BR/button.php
#	resources/lang/pt-PT/auth/message.php
#	resources/lang/pt-PT/button.php
#	resources/lang/pt-PT/mail.php
#	resources/lang/ro/button.php
#	resources/lang/ru/admin/settings/general.php
#	resources/lang/ru/button.php
#	resources/lang/ru/help.php
#	resources/lang/sl/admin/custom_fields/general.php
#	resources/lang/sl/admin/hardware/table.php
#	resources/lang/sl/admin/kits/general.php
#	resources/lang/sl/admin/manufacturers/message.php
#	resources/lang/sl/admin/models/general.php
#	resources/lang/sl/admin/settings/general.php
#	resources/lang/sl/admin/users/general.php
#	resources/lang/sl/auth/message.php
#	resources/lang/sl/button.php
#	resources/lang/sl/help.php
#	resources/lang/sr-CS/button.php
#	resources/lang/ta/button.php
#	resources/lang/th/button.php
#	resources/lang/th/mail.php
#	resources/lang/tl/button.php
#	resources/lang/tr/admin/settings/general.php
#	resources/lang/tr/auth/message.php
#	resources/lang/tr/button.php
#	resources/lang/uk/button.php
#	resources/lang/ur-PK/button.php
#	resources/lang/vi/button.php
#	resources/lang/zh-CN/button.php
#	resources/lang/zh-HK/button.php
#	resources/lang/zh-TW/admin/hardware/table.php
#	resources/lang/zh-TW/button.php
#	resources/lang/zu/button.php
#	resources/views/models/custom_fields_form.blade.php
#	resources/views/reports/custom.blade.php
#	resources/views/settings/slack.blade.php
2021-12-16 14:26:24 -08:00
Alex Janes
6898119891 Replaced env() with config() to check environment variables
Made the app.php description for 'REQUIRE_SAML' a bit more... descriptive.
2021-12-16 16:56:39 -05:00
Alex Janes
a6116a1b15 If SAML required, don't accept login form post. 2021-12-16 14:33:25 -05:00
Alex Janes
696943b04b Add option to environment to require SAML for a more secure installation. 2021-12-16 11:44:34 -05:00
Alex Janes
3c8d70c5fb Add option to environment to require SAML for a more secure installation. 2021-12-16 11:44:07 -05:00
Nuraeil
c3b7576d99 Merge pull request #7 from snipe/develop
Develop
2021-12-14 19:51:40 +01:00
Wächtler, Yannick
484b996879 fixed merge conflicts 2021-12-14 19:48:59 +01:00
snipe
52322806fa Merge pull request #10434 from inietov/fixes/v6_components_error
Fix route to checkout components from the details page
2021-12-14 10:41:24 -08:00
Wächtler, Yannick
4397a12efc Merge branch 'develop' of https://github.com/snipe/snipe-it into snipe-develop 2021-12-14 19:37:27 +01:00
Ivan Nieto Vivanco
d083f89f30 Delete extra character remaining from previous tests :( 2021-12-14 12:32:30 -06:00
snipe
59555483f3 Merge pull request #10432 from inietov/features/adding_title_to_custom_report
Add title column to custom reports
2021-12-14 10:28:02 -08:00
Ivan Nieto Vivanco
2402f00a2e Fix route to checkout components from the details page 2021-12-14 12:26:46 -06:00
Ivan Nieto Vivanco
0037cdb00c Add title column to custom reports 2021-12-13 20:27:23 -06:00
Robert-Azelis
01608d81ab Update user.blade.php
Create new user account from asset form - additional fields #10420
2021-12-13 09:22:25 +01:00
Ivan Nieto Vivanco
5bda4b79d2 Fixes the Asset Factory to assign example Suppliers and Locations to Assets 2021-12-11 21:36:54 -06:00
Ivan Nieto Vivanco
b43a0569b1 Fixes trying to get property 'id' of non-object in develop seeders 2021-12-11 17:26:41 -06:00
snipe
503c802d70 Merge pull request #10416 from uberbrady/yank_assetlogs_from_asset_api
Yank assetlog from eager-load clause in API query for develop
2021-12-10 19:09:55 -08:00
Brady Wetherington
ea71086dfc Yank assetlog from eager-load clause in API query for develop 2021-12-10 18:50:34 -08:00
snipe
713fbdc0a6 Merge pull request #10239 from Godmartinz/Adds-info-on-how-to-nullify-reorder-alerts
adds info on how to nullify reorder alerts for consumables, component…
2021-12-08 14:26:22 -08:00
snipe
6d84482104 Merge pull request #10388 from snipe/features/switch_to_dusk
WIP - Fixing unit tests, switching to dusk
2021-12-06 14:19:36 -08:00
snipe
0ba55e0eaf Merge pull request #10393 from aranar-pro/fix/#10365-Total-Purchase
Fixed #10365: Snipe-IT has a wrong total purchase cost when reaches m…
2021-12-06 14:08:24 -08:00
snipe
4612b9e711 Merge pull request #10394 from snipe/fixes/add_stricter_validation_for_slack_hooks
Adds stricter validation for slack hooks
2021-12-06 11:41:11 -08:00
snipe
ebdbc20740 Adds stricter validation for slack endpoints
Signed-off-by: snipe <snipe@snipe.net>
2021-12-06 11:40:24 -08:00
Andrew Roth
d1d3b84f77 Fixed #10365: Snipe-IT has a wrong total purchase cost when reaches million. Fixed to remove multiple commas in +1M per item. 2021-12-06 13:06:23 -05:00
snipe
66ed311914 Fixed asset maintenances test
Signed-off-by: snipe <snipe@snipe.net>
2021-12-02 20:14:39 -08:00
snipe
f334bf1058 Fixed notification tests
Signed-off-by: snipe <snipe@snipe.net>
2021-12-02 20:01:03 -08:00
snipe
0104f35f31 Fixed Component Test, commented Consumables
Signed-off-by: snipe <snipe@snipe.net>
2021-12-02 19:43:15 -08:00
snipe
222ee8e0bf Slight refactor on depreciation test
Signed-off-by: snipe <snipe@snipe.net>
2021-12-02 19:36:07 -08:00
snipe
0e3bafd5b4 Fixed depreciation tests
Signed-off-by: snipe <snipe@snipe.net>
2021-12-02 19:19:42 -08:00
snipe
17bc562ac4 Commented out broken permissions and importer tests for now
Signed-off-by: snipe <snipe@snipe.net>
2021-12-02 19:19:35 -08:00
snipe
1e46fde5e2 Fixed status labels tests
Signed-off-by: snipe <snipe@snipe.net>
2021-12-02 19:01:57 -08:00
snipe
872bd29cb3 Removed repetitive tests
Signed-off-by: snipe <snipe@snipe.net>
2021-12-02 18:27:52 -08:00
snipe
21e2504f79 Trying unsuccessfully to get nested factories working
Signed-off-by: snipe <snipe@snipe.net>
2021-12-02 17:38:28 -08:00
snipe
3a1e2a56d6 Use the proper ID for status ID factory
Signed-off-by: snipe <snipe@snipe.net>
2021-12-02 17:38:06 -08:00
snipe
5a01fff79c Use the Setting model for basetest
Signed-off-by: snipe <snipe@snipe.net>
2021-12-02 17:37:51 -08:00
snipe
390e8a6cc3 Fixed company unit test
Signed-off-by: snipe <snipe@snipe.net>
2021-12-02 16:43:03 -08:00
snipe
b0d2fc787a Fixed accessory test
Signed-off-by: snipe <snipe@snipe.net>
2021-12-02 16:33:16 -08:00
snipe
35ba28bff9 Continuing to refactor tests
Signed-off-by: snipe <snipe@snipe.net>
2021-12-02 16:14:45 -08:00
snipe
c2709be4a1 Removed pointless tests
Signed-off-by: snipe <snipe@snipe.net>
2021-12-02 16:14:23 -08:00
snipe
00d2235610 Lowercase tests in composer.json per previous revert
Signed-off-by: snipe <snipe@snipe.net>
2021-12-02 15:12:47 -08:00
snipe
21575cf674 Lowercase tests dir
Signed-off-by: snipe <snipe@snipe.net>
2021-12-02 15:09:52 -08:00
snipe
c949a1f5f2 renamed Tests to tests 2021-12-02 15:08:26 -08:00
snipe
9536f836f0 Beginning of CompanyTest fixes (not done yet)
Signed-off-by: snipe <snipe@snipe.net>
2021-12-02 15:02:46 -08:00
snipe
064e0b7a1c Removed dd for debugging
Signed-off-by: snipe <snipe@snipe.net>
2021-12-02 15:02:25 -08:00
snipe
37033fb2f7 Removed some defaul values to handle validation
Signed-off-by: snipe <snipe@snipe.net>
2021-12-02 15:02:11 -08:00
snipe
77d6649e38 One more case change because I have NOTHING else to do
Signed-off-by: snipe <snipe@snipe.net>
2021-12-02 14:26:31 -08:00
snipe
f61f386f31 Fixed again because I suck
Signed-off-by: snipe <snipe@snipe.net>
2021-12-02 14:07:48 -08:00
snipe
d20a0f7c6d Update composer autoload for test case case
Signed-off-by: snipe <snipe@snipe.net>
2021-12-02 14:05:35 -08:00
snipe
406aed6b07 Case sensitive dir stuff
Signed-off-by: snipe <snipe@snipe.net>
2021-12-02 14:03:32 -08:00
snipe
5555553307 renamed again for git to accept case 2021-12-02 14:02:16 -08:00
snipe
00b63fe7c7 Fixed category factory methods
Signed-off-by: snipe <snipe@snipe.net>
2021-12-02 13:40:16 -08:00
snipe
cae62fd4c7 Merge pull request #9902 from SidingsMedia/sum_cost_by_quantity
Fixed #5676: Sum cost by quantity
2021-12-02 12:13:04 -08:00
snipe
44b6907919 Updated phpunit.xml
Signed-off-by: snipe <snipe@snipe.net>
2021-12-02 11:44:32 -08:00
snipe
406211d2fe Move mockery to require-dev
Signed-off-by: snipe <snipe@snipe.net>
2021-12-02 11:22:46 -08:00
snipe
fb06c136b9 Added mockery (because reasons?)
Signed-off-by: snipe <snipe@snipe.net>
2021-12-02 11:11:14 -08:00
snipe
957d092844 Upgraded phpunit to v9
Signed-off-by: snipe <snipe@snipe.net>
2021-12-02 11:04:04 -08:00
snipe
ed2797afdd Small fixes
Signed-off-by: snipe <snipe@snipe.net>
2021-12-01 23:33:20 -08:00
snipe
ad6d70b86f Removed unused Str
Signed-off-by: snipe <snipe@snipe.net>
2021-12-01 23:30:48 -08:00
snipe
17bd6d71e7 Fixed location unit test
Signed-off-by: snipe <snipe@snipe.net>
2021-12-01 22:45:39 -08:00
snipe
d96e95abd6 Small mods to configs, removed old faker, added new
Signed-off-by: snipe <snipe@snipe.net>
2021-12-01 13:46:21 -08:00
snipe
bc355e1f26 Remve unused use Hash statements
Signed-off-by: snipe <snipe@snipe.net>
2021-11-30 20:47:02 -08:00
snipe
d8234d5a0b Trying to unfuck the TestCase
A lot has changed between versions

Signed-off-by: snipe <snipe@snipe.net>
2021-11-30 20:46:44 -08:00
snipe
f3f6a04c43 Use hash::
Signed-off-by: snipe <snipe@snipe.net>
2021-11-30 20:46:20 -08:00
snipe
fe2cd8b708 Switched back to sqlite for unit
Signed-off-by: snipe <snipe@snipe.net>
2021-11-30 20:45:54 -08:00
snipe
e73373a75a Removed empty tests
Signed-off-by: snipe <snipe@snipe.net>
2021-11-30 20:45:42 -08:00
snipe
d08c1787a1 First steps at getting dusk working
Signed-off-by: snipe <snipe@snipe.net>
2021-11-30 20:09:29 -08:00
Nuraeil
d3972888dc Merge pull request #6 from snipe/develop
Develop
2021-11-30 06:37:17 +01:00
snipe
4c2d47e7c6 Merge pull request #10354 from inietov/fixes/customfields_with_date_format_doesnt_display_default_value
Fixes Default Values - Date not applying
2021-11-24 19:41:51 -08:00
snipe
29bbfad693 Applied escaping fix from master to develop
Signed-off-by: snipe <snipe@snipe.net>
2021-11-24 19:38:27 -08:00
Ivan Nieto Vivanco
741eb28622 Add the call to defaultValue() function in custom fields with date format 2021-11-23 17:11:21 -06:00
snipe
ef8f646ab2 Merge pull request #10349 from snipe/chore/sc-17719/add-sodium-as-a-requirement-in-upgrade-php
Update upgrade.php with newer requires
2021-11-22 15:32:51 -08:00
snipe
686e58806f Update upgrade.php with newer requires
Signed-off-by: snipe <snipe@snipe.net>
2021-11-22 15:31:23 -08:00
Matthew Nickson
9381ba2404 Merge branch 'develop' into sum_cost_by_quantity 2021-11-21 18:59:34 +00:00
Brady Wetherington
e8f5dc85a6 Downgraded a FIXME to a TODO 2021-11-19 16:38:46 -08:00
Wächtler, Yannick
1b76185798 Added TODO: comments to pages, where there are non-localized strings, in order to keep track of them 2021-11-19 15:32:13 +01:00
Wächtler, Yannick
9164daf5bc Added localized strings for admin/settings 2021-11-19 15:23:48 +01:00
Wächtler, Yannick
6917d59185 Added localized strings for reports 2021-11-19 12:39:19 +01:00
Wächtler, Yannick
04fec144a0 Added localization strings for partials, added file structure 2021-11-19 12:12:11 +01:00
Nuraeil
6eb120d101 Merge pull request #5 from snipe/develop
Develop
2021-11-19 11:51:16 +01:00
snipe
df0b240a05 Merge pull request #10288 from uberbrady/composer_install_under_phpv8
[sc-17645] Composer install under phpv8
2021-11-18 15:28:54 -08:00
snipe
3e83b2ff2f Merge pull request #10334 from snipe/feature/sc-17704/make-all-currency-values-right-aligned
Added text-right to presenters for money values
2021-11-18 15:10:19 -08:00
snipe
c49c5f4164 Added text-right to presenters for money values
Signed-off-by: snipe <snipe@snipe.net>
2021-11-18 15:09:17 -08:00
snipe
6d545ff11b Merge pull request #10333 from snipe/bug/sc-17711/v6-bug-500-server-error-when-trying-to-checkin
Fixed v6 bug 500 server error when trying to checkin
2021-11-18 14:38:17 -08:00
snipe
250f6b6fb8 Fixed v6 bug 500 server error when trying to checkin [sc-17711]
Signed-off-by: snipe <snipe@snipe.net>
2021-11-18 14:37:12 -08:00
Nuraeil
7084703b5a Merge pull request #4 from snipe/develop
Merge current develop into branch
2021-11-18 21:30:45 +01:00
snipe
f6d5d6cc09 Merge pull request #10316 from snipe/bug/sc-17684/v6-bug-error-when-editing-model-with-no-custom
v6 bug - Error when editing model with no custom
2021-11-17 18:38:48 -08:00
Wächtler, Yannick
5a2f8788a9 Fixed merge issue in view.blade.php and added translatable string 2021-11-16 19:34:20 +01:00
Wächtler, Yannick
f2c3e51a83 Catching up to snipe-it/develop branch 2021-11-16 19:25:23 +01:00
Wächtler, Yannick
74ed790d20 Merge branch 'snipe-develop' into added-localized-strings 2021-11-16 08:51:06 +01:00
Wächtler, Yannick
6feb39f6b9 Merge branch 'develop' of https://github.com/snipe/snipe-it into snipe-develop 2021-11-16 08:50:45 +01:00
snipe
bbb0d1be17 Possible fix for asset model editing when no custom fieldset is associated
Signed-off-by: snipe <snipe@snipe.net>
2021-11-15 21:09:35 -08:00
snipe
476e17055b Escape custom fields in API response
Signed-off-by: snipe <snipe@snipe.net>
2021-11-15 20:31:01 -08:00
snipe
db45de5da2 Fixed old style user routes
Signed-off-by: snipe <snipe@snipe.net>
2021-11-15 20:26:07 -08:00
snipe
207c785b1d Added missing use statements for Laravel 8 routes
Signed-off-by: snipe <snipe@snipe.net>
2021-11-15 20:20:10 -08:00
snipe
8a747be3a0 Fixed routes for newer format (l8)
Signed-off-by: snipe <snipe@snipe.net>
2021-11-15 20:16:40 -08:00
snipe
65d1855b38 Display app_locked message on front-end
Signed-off-by: snipe <snipe@snipe.net>
2021-11-15 19:50:55 -08:00
snipe
46d2f8a81d Disallow file upload to backups on demo
Signed-off-by: snipe <snipe@snipe.net>
2021-11-15 19:42:02 -08:00
snipe
92b7aaf44b Log the user out upon successful restore
Signed-off-by: snipe <snipe@snipe.net>
2021-11-15 19:40:01 -08:00
snipe
8bf11e9417 Bummped hash fpr v6-pre-alpha
Signed-off-by: snipe <snipe@snipe.net>
2021-11-15 19:31:20 -08:00
snipe
174d23a42a Updated assets
Signed-off-by: snipe <snipe@snipe.net>
2021-11-15 19:29:57 -08:00
snipe
f2f8f96991 Merge remote-tracking branch 'origin/master' into develop
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	app/Http/Controllers/Api/AssetsController.php
#	app/Http/Transformers/AssetsTransformer.php
#	app/Importer/ConsumableImporter.php
#	app/Models/Consumable.php
#	config/version.php
#	package-lock.json
#	package.json
#	public/css/dist/all.css
#	public/css/dist/bootstrap-table.css
#	public/js/build/app.js
#	public/js/dist/all.js
#	public/js/dist/bootstrap-table.js
#	public/mix-manifest.json
#	resources/views/custom_fields/fieldsets/view.blade.php
#	resources/views/layouts/default.blade.php
#	routes/web.php
#	routes/web/fields.php
2021-11-15 19:24:38 -08:00
snipe
ce69e54202 Merge pull request #10297 from snipe/features/backup_importer_ui
v6 Feature - Added backup restore from GUI
2021-11-15 19:09:37 -08:00
snipe
cc5b8f3d6d Merge pull request #10302 from SBrown2021/patch-1
Typo in upgrade.php
2021-11-11 10:32:42 -08:00
SBrown2021
c668cc3103 Typo in upgrade.php
Fixed typo on line 181. bootsrap/cache/services.php -> bootstrap/cache/services.php
2021-11-11 17:05:24 +00:00
snipe
bc21875324 More refinements to the UI
Signed-off-by: snipe <snipe@snipe.net>
2021-11-10 18:15:38 -08:00
snipe
1a703bf78b Added logout clarification
Signed-off-by: snipe <snipe@snipe.net>
2021-11-10 17:59:52 -08:00
snipe
494c72d92b Fixed typo
Signed-off-by: snipe <snipe@snipe.net>
2021-11-10 17:58:04 -08:00
snipe
69fe3c0299 Added some comments on the JS
Signed-off-by: snipe <snipe@snipe.net>
2021-11-10 17:57:15 -08:00
snipe
0c58fa1b1e Merge branch 'features/backup_importer_ui' of https://github.com/snipe/snipe-it into features/backup_importer_ui 2021-11-10 17:49:04 -08:00
snipe
e2702186a9 Slightly reworked UI
Signed-off-by: snipe <snipe@snipe.net>
2021-11-10 17:48:59 -08:00
snipe
595c3bfd57 Merge pull request #10298 from uberbrady/features/backup_importer_ui
Cleaned up the output and added some better checks for errors
2021-11-10 17:21:23 -08:00
Brady Wetherington
c2b5f9b372 Cleaned up the output and added some better checks for errors 2021-11-10 17:08:04 -08:00
snipe
b069eec43a Fixed upload disabled button
Signed-off-by: snipe <snipe@snipe.net>
2021-11-10 16:01:22 -08:00
snipe
040bdd2f32 Merge branch 'features/backup_importer_ui' of https://github.com/snipe/snipe-it into features/backup_importer_ui 2021-11-10 13:01:05 -08:00
snipe
f8cf65bbb3 Small layout fixes
Signed-off-by: snipe <snipe@snipe.net>
2021-11-10 13:01:02 -08:00
snipe
c1a844cce6 Merge pull request #10296 from uberbrady/features/backup_importer_ui
Tweak Restore command to _also_ run via webserver via Artisan::call()
2021-11-10 13:00:40 -08:00
Brady Wetherington
2b6614e2dd Tweak Restore command to _also_ run via webserver via Artisan::call() 2021-11-10 12:44:19 -08:00
Brady Wetherington
864cc4f8d5 Fix FIXME's by downgrading them to TODO's :) 2021-11-10 11:37:10 -08:00
snipe
ec2a3b0f35 Updated label names
Signed-off-by: snipe <snipe@snipe.net>
2021-11-10 01:44:34 -08:00
snipe
230a568145 Added help text and more info in the modal
Signed-off-by: snipe <snipe@snipe.net>
2021-11-10 01:44:11 -08:00
snipe
457c6080cc Better handling if there was no file uploaded
Signed-off-by: snipe <snipe@snipe.net>
2021-11-10 01:43:45 -08:00
snipe
856b9294f8 Improved BS tables on backups
Signed-off-by: snipe <snipe@snipe.net>
2021-11-10 00:08:43 -08:00
snipe
8590e5d67e UNRELATED: fixed wrong html tag for license view badge count
Signed-off-by: snipe <snipe@snipe.net>
2021-11-10 00:08:15 -08:00
snipe
cf070866f0 INCOMPLETE: Added more generic language strings
Signed-off-by: snipe <snipe@snipe.net>
2021-11-10 00:07:47 -08:00
snipe
76685d7fd3 Clearer text in restore artisan command
Signed-off-by: snipe <snipe@snipe.net>
2021-11-10 00:07:32 -08:00
snipe
96f76e1f6b INCOMPLETE: Added restore and upload methods for backups
Signed-off-by: snipe <snipe@snipe.net>
2021-11-10 00:07:17 -08:00
snipe
05c6254fdc Updated snipeit.js with "restore" modal code
Signed-off-by: snipe <snipe@snipe.net>
2021-11-09 22:39:33 -08:00
snipe
3b25093aeb Removed noisy debugging
Signed-off-by: snipe <snipe@snipe.net>
2021-11-09 22:38:27 -08:00
snipe
76506dabbf Made helpers call full namespace (tho I have no idea why this was necessary)
Signed-off-by: snipe <snipe@snipe.net>
2021-11-09 22:38:14 -08:00
snipe
1b1b54fbf4 Add modified_value and modified_display so we can use the formatted date but still sort correctly
Signed-off-by: snipe <snipe@snipe.net>
2021-11-09 22:37:49 -08:00
snipe
542ab75d89 Added new backup routes
Signed-off-by: snipe <snipe@snipe.net>
2021-11-09 19:39:50 -08:00
snipe
0e21a95817 Escape error message in asset autdit apI (same as in v5)
Signed-off-by: snipe <snipe@snipe.net>
2021-11-09 19:39:32 -08:00
snipe
fb21712a68 Added restore modal HTML
Signed-off-by: snipe <snipe@snipe.net>
2021-11-09 19:38:40 -08:00
Brady Wetherington
91f087258b Merge branch 'develop' into remove_old_ldap 2021-11-09 18:33:41 -08:00
Brady Wetherington
25d72d2978 Make composer install work on 7.4 as well as 8.0 2021-11-09 13:06:24 -08:00
Brady Wetherington
ec030e9e1f Tweak some version requirements to make composer install run under phpv8 2021-11-08 21:19:23 -08:00
Brady Wetherington
a58c5ce27f Better documentation, disable AdLdap2-based "Add domain" setting 2021-11-08 17:11:47 -08:00
Wächtler, Yannick
6b2801867d Renamed account/api to account/general to match naming schema, changed the associated account/api trans() to account/general 2021-11-04 20:15:23 +01:00
Wächtler, Yannick
97030866e4 Adding newly added template files 2021-11-04 20:12:47 +01:00
Nuraeil
3f2749d5d6 Merge pull request #2 from snipe/develop
Develop
2021-11-04 19:16:00 +01:00
Brady Wetherington
b0417e5bd7 Finish pulling out the AdLdap2-based LDAP remnants that were still in the system 2021-11-03 15:22:06 -07:00
snipe
98de8526db Merge pull request #10258 from PlaneNuts/Fix_Advanced_Search/Checked_Out_To
Fixed #8828: Can't search by checked out user in advanced search
2021-11-02 14:53:08 -07:00
Wächtler, Yannick
63b30489df Added localized strings for notifications 2021-11-02 15:44:57 +01:00
Wächtler, Yannick
670b70c7e1 Added localized strings for models 2021-11-02 15:34:50 +01:00
Wächtler, Yannick
c0891e6827 Added localized strings for modals 2021-11-02 15:27:13 +01:00
Wächtler, Yannick
30d30490a3 Added localized strings for locations 2021-11-02 15:14:54 +01:00
Wächtler, Yannick
4af6412da6 Added localized strings for licenses 2021-11-02 14:55:49 +01:00
Wächtler, Yannick
4fcd4a930f Added localized strings for layouts 2021-11-02 14:45:58 +01:00
Wächtler, Yannick
8bad9c5140 Added localized strings for kits 2021-11-02 14:25:21 +01:00
Wächtler, Yannick
26e056fb3c Added localized strings for improter, added en structure 2021-11-02 14:09:22 +01:00
Wächtler, Yannick
c16ade2d87 Added localized strings for hardware 2021-11-02 14:02:48 +01:00
Wächtler, Yannick
167bf97d46 Added localized strings for groups 2021-11-02 12:03:41 +01:00
Wächtler, Yannick
e825fa81aa Added localized strings for depreciations 2021-11-02 11:50:56 +01:00
Wächtler, Yannick
a96c53784c Added localized strings for custom_fields 2021-11-02 11:27:53 +01:00
Wächtler, Yannick
c11af0e222 Added missing localized strings for account/accept/index.blade.php and view-assets.blade.php 2021-11-02 10:40:41 +01:00
Wächtler, Yannick
433d6fd3e0 Added localized strings for admin/companies 2021-11-02 10:23:15 +01:00
Wächtler, Yannick
b784e63aa8 Added localized strings for account 2021-11-02 10:13:22 +01:00
Terrell Eaton
2c7a71a2a1 Fixes not being able to search by checked out user in advanced search 2021-11-01 22:14:19 +01:00
Godfrey M
1683b04244 changed min_amt_help message 2021-11-01 11:05:44 -07:00
Matthew Nickson
90ca66834b Fixed sumFormatterQuantity if using 1.234,56 fomat
Previously sumFormatterQuantity used the parseFloat to convert the
string purchase_cost to a floating point number. parseFloat does not
return the correct value when using the comma format. To fix this
sumFormatterQuantity now used the cleanFloat function to convert
purchase_cost to a float.

Signed-off-by: Matthew Nickson <mnickson@sidingsmedia.com>
2021-10-30 22:48:45 +01:00
snipe
eae9bf574f Merge branch 'develop' of https://github.com/snipe/snipe-it into develop 2021-10-29 14:11:58 -07:00
snipe
409600f29d Added S3 commented out settings in env example for clarity
Signed-off-by: snipe <snipe@snipe.net>
2021-10-29 14:11:54 -07:00
Brady Wetherington
4dda28de9e WIP: cleaning up LDAP 2021-10-28 18:19:50 -07:00
snipe
e932cdf106 Merge pull request #9799 from Toreg87/fixes/fmcs_departments
Fixed #9798: Scope departments for FullMultipleCompanySupport
2021-10-28 18:18:16 -07:00
Brady Wetherington
31933a56fa Trying to get the login screen working 2021-10-28 18:18:11 -07:00
snipe
ea0d92c439 Merge branch 'develop' into fixes/fmcs_departments 2021-10-28 18:18:08 -07:00
snipe
5458e44a40 Merge pull request #9508 from sh1hab/feature/remove_deleted_user_from_unaccepted_assets_report
Feature #9378 remove deleted user from unaccepted assets report
2021-10-28 18:11:19 -07:00
snipe
d36849bd41 Merge branch 'develop' into feature/remove_deleted_user_from_unaccepted_assets_report 2021-10-28 18:11:03 -07:00
snipe
84a3a85823 Fixed parse error for merge conflict
Signed-off-by: snipe <snipe@snipe.net>
2021-10-28 18:04:03 -07:00
snipe
798f6d65de Merge pull request #9847 from inietov/bug/ch15357/requested_assets_allow_to_cancel_if_checkedout_to_self
Adds a check to know if the asset is checked out to the logged in user to allow check the state in the view
2021-10-28 17:53:24 -07:00
snipe
d54434fdf7 Merge pull request #9541 from misilot/change-var-aws-public-url
Change from ENV to config value for PUBLIC_AWS_URL
2021-10-28 17:46:25 -07:00
snipe
bdf321ecc9 Merge branch 'develop' into change-var-aws-public-url 2021-10-28 17:46:16 -07:00
snipe
3ede7c7f18 Use icon and string for maintained value in license view
Signed-off-by: snipe <snipe@snipe.net>
2021-10-28 17:26:03 -07:00
snipe
2d782cd31f Merge branch 'develop' of https://github.com/snipe/snipe-it into develop 2021-10-28 17:20:27 -07:00
snipe
645529ba78 Merge pull request #9889 from ncareau/api-licenses
Add licenses api parameters and fix a missing variable in license view.
2021-10-28 17:20:09 -07:00
snipe
636dc6877b Merge pull request #10113 from Godmartinz/bug/sc-17129/v6-integration-pie-chart-disappears-if-you
Fixed #sc17129 - Pie chart disappears when window resizes
2021-10-28 17:14:14 -07:00
snipe
3951de1669 Merge branch 'develop' into bug/sc-17129/v6-integration-pie-chart-disappears-if-you 2021-10-28 17:13:37 -07:00
snipe
3088230236 Merge pull request #10209 from Godmartinz/feature/sc-1474/sync-parent-asset-location-with-children-assets
Fixes Bug: When parent asset is assigned to other location, children assets loca…
2021-10-28 16:49:44 -07:00
snipe
984bc501a5 Merge pull request #9906 from Toreg87/fixes/advanced_search_serial_v2
Fixed #9904: Advanced search with serial and another field produce incorrect results (v2)
2021-10-28 16:42:32 -07:00
snipe
371a39a118 Merge branch 'develop' into fixes/advanced_search_serial_v2 2021-10-28 16:42:10 -07:00
snipe
d3d199efc3 Add @PlaneNuts as a contributor 2021-10-28 16:39:28 -07:00
snipe
7821d38e60 Merge pull request #10238 from inietov/fixes/asset_components_must_return_relationship_instance
Fixes asset components must return relationship instance
2021-10-28 16:38:21 -07:00
snipe
1895dd326f Merge pull request #10245 from Sxderp/pr-support-appache-rewrite-redirect-headers-for-remote-user
support apache REDIRECT_* for remote user login
2021-10-28 16:34:57 -07:00
snipe
1975afaca6 Merge pull request #10248 from snipe/features/add_requestable_to_bulk_model_edit
Adds reqestable as model bulk edit field
2021-10-28 16:30:55 -07:00
snipe
52ef9280ba Adds reqestable as model bulk edit field
Signed-off-by: snipe <snipe@snipe.net>
2021-10-28 15:15:54 -07:00
snipe
30cfc34ecf Merge branch 'develop' of https://github.com/snipe/snipe-it into develop 2021-10-28 14:42:58 -07:00
snipe
668e8a357c Fixed labels in profile form
Signed-off-by: snipe <snipe@snipe.net>
2021-10-28 12:57:27 -07:00
Steven Daniele
efc644c960 support apache REDIRECT_* for remote user login 2021-10-28 14:23:38 -04:00
Godfrey M
b0da936c5c changed get to receive in the message 2021-10-27 16:41:38 -07:00
Godfrey M
8719667c44 adds info on how to nullify reorder alerts for consumables, components and accessories 2021-10-27 16:36:04 -07:00
Ivan Nieto Vivanco
ee9133f722 Return the proper Asset-Components relationship 2021-10-27 16:42:51 -05:00
snipe
8cfa8d97b4 Merge pull request #10215 from inietov/fixes/bulk_edit_counts_more_users_selected
Fixes bulk edit message counts more users than the actual selected users number
2021-10-21 13:02:03 -07:00
Ivan Nieto Vivanco
9eaf89aaa7 Add a variable to better control the selected user's ids 2021-10-21 13:28:58 -05:00
snipe
31d49b5c9b Fixed merge error parse error
Signed-off-by: snipe <snipe@snipe.net>
2021-10-20 18:11:34 -07:00
snipe
6e0f8068b2 Fixed duplicate use statement from merge fuckery
Signed-off-by: snipe <snipe@snipe.net>
2021-10-20 17:54:32 -07:00
snipe
9ee13f0d2a Fixed dupe use statement from merge fuckery
Signed-off-by: snipe <snipe@snipe.net>
2021-10-20 17:53:43 -07:00
snipe
ae1a4bb3c9 Fixed extra braces from merge fuckery
Signed-off-by: snipe <snipe@snipe.net>
2021-10-20 17:36:06 -07:00
snipe
aa8f1378c9 Merge remote-tracking branch 'origin/master' into develop
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	README.md
#	app/Http/Controllers/Accessories/AccessoriesController.php
#	app/Http/Controllers/Api/AssetMaintenancesController.php
#	app/Http/Controllers/Api/AssetModelsController.php
#	app/Http/Controllers/Api/AssetsController.php
#	app/Http/Controllers/Api/UsersController.php
#	app/Http/Controllers/AssetMaintenancesController.php
#	app/Http/Controllers/Assets/AssetFilesController.php
#	app/Http/Controllers/Assets/AssetsController.php
#	app/Http/Controllers/Assets/BulkAssetsController.php
#	app/Http/Controllers/Components/ComponentsController.php
#	app/Http/Controllers/Consumables/ConsumablesController.php
#	app/Http/Controllers/Licenses/LicenseFilesController.php
#	app/Http/Controllers/Licenses/LicensesController.php
#	app/Http/Controllers/Users/UserFilesController.php
#	app/Http/Transformers/AssetsTransformer.php
#	app/Http/Transformers/LicensesTransformer.php
#	app/Importer/UserImporter.php
#	app/Models/Asset.php
#	config/app.php
#	config/version.php
#	package-lock.json
#	public/js/build/app.js
#	public/js/dist/all.js
#	public/js/dist/bootstrap-table.js
#	public/mix-manifest.json
#	resources/lang/en/admin/users/message.php
#	resources/lang/is/button.php
#	resources/lang/ja/admin/kits/general.php
#	resources/lang/ro/admin/users/general.php
#	resources/lang/zh-HK/admin/depreciations/general.php
#	resources/lang/zh-HK/admin/models/general.php
#	resources/views/hardware/qr-view.blade.php
#	resources/views/hardware/view.blade.php
#	resources/views/partials/bootstrap-table.blade.php
#	resources/views/users/view.blade.php
#	routes/web.php
#	routes/web/hardware.php
#	routes/web/models.php
#	routes/web/users.php
2021-10-20 17:26:41 -07:00
Godfrey M
9ae7d0b23a when parent asset is assigned to other location, children assets location are updated as well. 2021-10-20 17:01:25 -07:00
snipe
365349fd91 Center custom fields email icon
Signed-off-by: snipe <snipe@snipe.net>
2021-10-18 18:39:46 -07:00
snipe
4095a3f8c4 Removed dupe bars
Signed-off-by: snipe <snipe@snipe.net>
2021-10-12 12:31:08 -07:00
snipe
94c4265524 Merge branch 'develop' of https://github.com/snipe/snipe-it into develop 2021-10-12 12:30:39 -07:00
snipe
4a98519c1f Compiled assets
Signed-off-by: snipe <snipe@snipe.net>
2021-10-12 12:30:25 -07:00
snipe
d126b265ee Merge pull request #10192 from snipe/bug/sc-17471/font-awesome-hamburger-menu-is-showing-as
Fixed misisng hamburger menu
2021-10-12 12:10:53 -07:00
snipe
892fc0004a Fixed misisng hamburger menu
Signed-off-by: snipe <snipe@snipe.net>
2021-10-12 12:09:46 -07:00
snipe
2cbbf7efe2 Merge pull request #10186 from tanji/patch-2
Exclude web.config from Apache
2021-10-11 10:03:37 -07:00
Guillaume Lefranc
494ed3d17a Exclude web.config from Apache 2021-10-11 14:14:00 +02:00
Matthew Nickson
8996c24d1f Merge branch 'develop' into sum_cost_by_quantity 2021-10-10 13:01:44 +01:00
snipe
1f5c38ad7e Merge pull request #10179 from inietov/features/allow_same_category_name_for_different_types
Fixes #9365 #9800 Added a validation to use the same name in categories with different types [sc-17487]
2021-10-08 14:10:29 -07:00
Ivan Nieto Vivanco
23b770fac6 Added a validation to use the same name in categories with different types 2021-10-08 15:19:16 -05:00
snipe
5f52ee59b2 Merge pull request #9529 from dampfklon/Feature_#9514_Asset_Acceptance,_resend_mail/_send_remainder
Feature #9514, Feature #9378 Unaccepted Assets Report Actions, Fixed [ch16410]
2021-10-07 12:49:42 -07:00
Dampfklon
ab4a234e20 fix rebase errors 2021-10-07 21:32:57 +02:00
Dampfklon
7645f23f5c remove pending Acceptances on checkin 2021-10-07 21:03:46 +02:00
Dampfklon
4418ad2340 Enable display of deleted acceptances, strike deleted users, add date, enable sorting 2021-10-07 21:03:46 +02:00
Dampfklon
12ee06deb6 add Download All Button, change route analogue to activity report 2021-10-07 21:01:50 +02:00
Dampfklon
9a9ca59544 Fix decprecated implode usage 2021-10-07 20:55:47 +02:00
Dampfklon
ed99532c30 Unaccepted Assets Report Actions (send reminder, delete) added
Unaccepted Assets Export fixed
2021-10-07 20:53:02 +02:00
snipe
3980c80c70 Merge pull request #10166 from uberbrady/fix_default_values_for_custom_fields_for_models_rebased
Fix default values for custom fields for models rebased
2021-10-04 22:27:45 -07:00
Brady Wetherington
bbeedc026d A lot of cleanups to the Livewire stuff, and got it kinda-sorta basically working. 2021-10-04 22:07:29 -07:00
Brady Wetherington
d80604f2ac Most of the basics are working, but not done and lots of debug messages are about
I picked up the change that picked a point-release difference on the AWS library since that usually
works out for us (x.y.1 vs. x.y.2 - usually a good call)
2021-10-04 22:06:48 -07:00
snipe
1457fda508 Merge pull request #10159 from AL4AL/specify_docker_images_version
Fixed #10158 Specify docker images versions
2021-10-04 18:28:11 -07:00
Sajjad
f036e2b2a3 Specify docker images versions
Fix unquoted sentences
2021-10-03 11:12:53 +03:30
snipe
b919f5b1e9 Merge pull request #10150 from inietov/fixes/new_department_error_importing_users
Fixes New department error importing users.
2021-09-30 15:31:17 -07:00
Ivan Nieto Vivanco
11aa8971c8 Fix error if the Department is also empty 2021-09-30 17:20:44 -05:00
Ivan Nieto Vivanco
5c7aaaac22 Fix error when department is null 2021-09-30 16:46:23 -05:00
snipe
43a437000b Slightly better right-padding on row-new-striped
Signed-off-by: snipe <snipe@snipe.net>
2021-09-29 11:20:32 -07:00
snipe
228c8223a8 Merge pull request #10148 from uberbrady/snipe_it_v6_php_73
Try to generate a new composer lockfile under PHP 7.3
2021-09-29 10:57:56 -07:00
Brady Wetherington
3a73fa19f0 Try to generate a new composer lockfile under PHP 7.3 2021-09-29 10:53:44 -07:00
snipe
85b5f52cd8 Nicer mobile view for user view icons
Signed-off-by: snipe <snipe@snipe.net>
2021-09-28 23:04:30 -07:00
snipe
61f16f47a2 Use Helper alias
Signed-off-by: snipe <snipe@snipe.net>
2021-09-28 19:44:55 -07:00
snipe
9a83b90e44 Make row-new-striped 100% width
Signed-off-by: snipe <snipe@snipe.net>
2021-09-28 15:04:57 -07:00
snipe
9311f8694f Fixed incorrect icon for map marker
Signed-off-by: snipe <snipe@snipe.net>
2021-09-28 09:35:48 -07:00
NMC
c680977791 Merge branch 'develop' into api-licenses 2021-09-27 15:02:51 -04:00
snipe
c8ac19a5a0 Merge pull request #10135 from svpernova09/recreate-license-table-migration-issue
Rename license migration to resolve fatal error running migrations
2021-09-27 11:03:17 -07:00
Joe Ferguson
8c49f78218 Rename license migration to resolve fatal error running migrations during setup 2021-09-27 12:53:17 -05:00
snipe
2a6b59f0f8 Removed extra paramater from hasTable
Signed-off-by: snipe <snipe@snipe.net>
2021-09-27 09:48:03 -07:00
snipe
4c3f59c5fd Remove first migration for licenses
Signed-off-by: snipe <snipe@snipe.net>
2021-09-26 15:51:17 -07:00
snipe
6f96b25440 Attempt fix at Laravel "magic" class in migrations resulting in table already exists
Signed-off-by: snipe <snipe@snipe.net>
2021-09-26 15:48:43 -07:00
snipe
1657ba396f Added available license seat count to top tabs for licenses
Signed-off-by: snipe <snipe@snipe.net>
2021-09-26 15:03:56 -07:00
snipe
f0da1977fb Small visual improvements on consumables view
Signed-off-by: snipe <snipe@snipe.net>
2021-09-26 14:32:51 -07:00
snipe
d88c0ae5ec Merge pull request #10103 from snipe/fixes/make_boolean_fields_nullable
Fixed issue when creating a status label via API - default_label and show_in_nav being not nullable
2021-09-26 13:41:52 -07:00
snipe
450da5661d Add additional info on accessories view page
Signed-off-by: snipe <snipe@snipe.net>
2021-09-26 03:59:04 -07:00
snipe
a6632a7b9f Use new row striping on licenses detail page
Signed-off-by: snipe <snipe@snipe.net>
2021-09-26 03:58:53 -07:00
snipe
638e5a5bf6 Merge pull request #10132 from snipe/features/upgrade_the_rest_of_fa_icons
Upgraded FA icons to latest
2021-09-26 01:12:33 -07:00
snipe
7e41c74cc3 Updated more fa icons
Signed-off-by: snipe <snipe@snipe.net>
2021-09-26 01:11:08 -07:00
snipe
8738451685 Fixed font awesome caret
Signed-off-by: snipe <snipe@snipe.net>
2021-09-25 23:17:35 -07:00
snipe
65a6da5bd2 Added files tab back to assets
Signed-off-by: snipe <snipe@snipe.net>
2021-09-25 22:59:02 -07:00
snipe
a7b3f98e9f Updated angle icon with new font awesome
Signed-off-by: snipe <snipe@snipe.net>
2021-09-25 22:57:27 -07:00
snipe
8ee00d0f42 Changed paperflip to file icon
Signed-off-by: snipe <snipe@snipe.net>
2021-09-25 22:57:06 -07:00
snipe
667639b9fb Backed out the ribbon CSS for now
Signed-off-by: snipe <snipe@snipe.net>
2021-09-25 22:56:54 -07:00
snipe
749f364186 Removed gitter
Signed-off-by: snipe <snipe@snipe.net>
2021-09-25 22:56:32 -07:00
snipe
67d898e897 Updated map icons
Signed-off-by: snipe <snipe@snipe.net>
2021-09-24 14:30:36 -07:00
snipe
a9b306f2d2 Backing out the ribbon - too finicky on mobile :(
Signed-off-by: snipe <snipe@snipe.net>
2021-09-24 14:30:29 -07:00
snipe
e03d7b7016 More fa icon updates
Signed-off-by: snipe <snipe@snipe.net>
2021-09-24 13:07:02 -07:00
snipe
20e23c1248 Fixed 500 on wrong association
Signed-off-by: snipe <snipe@snipe.net>
2021-09-24 12:54:47 -07:00
snipe
5875cf1e9e Removed test code
Signed-off-by: snipe <snipe@snipe.net>
2021-09-24 12:33:34 -07:00
snipe
03e3c21d7e Merge pull request #10129 from snipe/features/improved_mobile_ux
Features/improved mobile ux
2021-09-24 12:30:56 -07:00
snipe
decc771459 Starting to refactor the hardware page
Signed-off-by: snipe <snipe@snipe.net>
2021-09-24 12:05:48 -07:00
snipe
78fa6452ee Fixed typo
Signed-off-by: snipe <snipe@snipe.net>
2021-09-24 12:05:18 -07:00
snipe
2c141813f1 Better formatting
Signed-off-by: snipe <snipe@snipe.net>
2021-09-24 11:51:52 -07:00
snipe
3317b5107a Added ribbon to show on user's photo that they are an admin
Signed-off-by: snipe <snipe@snipe.net>
2021-09-24 11:13:55 -07:00
snipe
0d1bd5b470 Updated more fa icons
Signed-off-by: snipe <snipe@snipe.net>
2021-09-24 11:13:34 -07:00
snipe
8d1c3106b5 Building assets again
Signed-off-by: snipe <snipe@snipe.net>
2021-09-24 11:13:15 -07:00
snipe
d480084c01 Merge pull request #10128 from inietov/fixes/route_not_defined_components_consumables
Fixes route not defined exception on components and consumables
2021-09-24 10:50:46 -07:00
Ivan Nieto Vivanco
efc9a8e2c9 Fixes route not defined exception on components and consumables 2021-09-24 11:38:07 -05:00
snipe
299ad681f7 More fa icons
Signed-off-by: snipe <snipe@snipe.net>
2021-09-24 07:21:30 -07:00
snipe
b2dc92b088 And a few more missed icons
Signed-off-by: snipe <snipe@snipe.net>
2021-09-24 06:44:38 -07:00
snipe
ad6f073c82 Few more icon updates
Signed-off-by: snipe <snipe@snipe.net>
2021-09-24 06:38:23 -07:00
snipe
8aba37522d More FA icons
Signed-off-by: snipe <snipe@snipe.net>
2021-09-24 06:18:22 -07:00
snipe
dbe93d91cd Updated fontawesome icons
Signed-off-by: snipe <snipe@snipe.net>
2021-09-24 06:07:46 -07:00
snipe
383c2c8466 New assets
Signed-off-by: snipe <snipe@snipe.net>
2021-09-24 04:12:55 -07:00
snipe
06e8e826bc Added some BS tables style overrides for mobile
Signed-off-by: snipe <snipe@snipe.net>
2021-09-24 04:12:41 -07:00
snipe
4a8f06b0f1 Added badge counters to tabs
Signed-off-by: snipe <snipe@snipe.net>
2021-09-24 04:12:22 -07:00
snipe
c69a883409 Fixed Groups route
Signed-off-by: snipe <snipe@snipe.net>
2021-09-24 04:12:07 -07:00
snipe
1574d24dde Fixed accessories route
Signed-off-by: snipe <snipe@snipe.net>
2021-09-24 04:11:58 -07:00
snipe
8937396a26 Added padding to the sidenav on mobile
Signed-off-by: snipe <snipe@snipe.net>
2021-09-24 03:02:57 -07:00
snipe
fd7c6179d5 Show the user's photo frst on mobile view
Signed-off-by: snipe <snipe@snipe.net>
2021-09-24 03:02:47 -07:00
snipe
9a299973ff Mobile CSS overrides
Signed-off-by: snipe <snipe@snipe.net>
2021-09-24 03:02:19 -07:00
snipe
7f41bdf0b0 Use new striping on hardware page
Signed-off-by: snipe <snipe@snipe.net>
2021-09-24 02:17:57 -07:00
snipe
90c22caa4b Rework user page to no longer use tables for data layout
This also fixes the weird display when lines break

Signed-off-by: snipe <snipe@snipe.net>
2021-09-24 02:17:40 -07:00
snipe
12df310449 Updated assets
Signed-off-by: snipe <snipe@snipe.net>
2021-09-24 02:16:58 -07:00
snipe
7cbdf2c727 A few seeder fixes
Signed-off-by: snipe <snipe@snipe.net>
2021-09-23 22:16:19 -07:00
snipe
28a5838dfb Merge pull request #10125 from snipe/features/add_demo_user_images
Added userpics from thispersondoesnotexist.com
2021-09-23 22:08:39 -07:00
snipe
932c1364ee Added userpics from thispersondoesnotexist.com
Signed-off-by: snipe <snipe@snipe.net>
2021-09-23 22:05:42 -07:00
snipe
1ecd11dd2e More route fixes
Signed-off-by: snipe <snipe@snipe.net>
2021-09-23 21:46:17 -07:00
snipe
d82490f4a6 Updated package-lock
Signed-off-by: snipe <snipe@snipe.net>
2021-09-23 19:05:41 -07:00
snipe
71644696d1 Removed duplicate migration
Signed-off-by: snipe <snipe@snipe.net>
2021-09-22 17:21:48 -07:00
snipe
61cf9ec009 Small conflict handling bits
Signed-off-by: snipe <snipe@snipe.net>
2021-09-22 00:00:44 -07:00
snipe
e27065fe16 Merge branch 'develop-v6-integration' into develop-v6-rc1
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	.all-contributorsrc
#	README.md
#	app/Console/Commands/ResetDemoSettings.php
#	app/Helpers/Helper.php
#	app/Http/Controllers/Api/AccessoriesController.php
#	app/Http/Controllers/Api/AssetsController.php
#	app/Http/Controllers/Api/CategoriesController.php
#	app/Http/Controllers/Api/ComponentsController.php
#	app/Http/Controllers/Api/ConsumablesController.php
#	app/Http/Controllers/Api/LocationsController.php
#	app/Http/Controllers/Api/StatuslabelsController.php
#	app/Http/Controllers/Api/SuppliersController.php
#	app/Http/Controllers/AssetMaintenancesController.php
#	app/Http/Controllers/Auth/ForgotPasswordController.php
#	app/Http/Controllers/DepreciationsController.php
#	app/Http/Controllers/ReportsController.php
#	app/Http/Controllers/SettingsController.php
#	app/Http/Requests/ImageUploadRequest.php
#	app/Http/Transformers/ActionlogsTransformer.php
#	app/Http/Transformers/DepreciationsTransformer.php
#	app/Listeners/CheckoutableListener.php
#	app/Models/Accessory.php
#	app/Models/Asset.php
#	app/Models/Company.php
#	app/Models/Ldap.php
#	app/Models/User.php
#	app/Presenters/AssetPresenter.php
#	app/Presenters/CategoryPresenter.php
#	composer.json
#	composer.lock
#	config/version.php
#	database/factories/AssetModelFactory.php
#	database/migrations/2020_10_22_233743_move_accessory_checkout_note_to_join_table.php
#	database/seeds/AssetModelSeeder.php
#	package-lock.json
#	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/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
#	resources/assets/js/vue.js
#	resources/lang/af/validation.php
#	resources/lang/ar/admin/settings/general.php
#	resources/lang/ar/validation.php
#	resources/lang/bg/admin/settings/general.php
#	resources/lang/bg/validation.php
#	resources/lang/cs/admin/settings/general.php
#	resources/lang/cs/validation.php
#	resources/lang/cy/help.php
#	resources/lang/cy/validation.php
#	resources/lang/da/admin/settings/general.php
#	resources/lang/da/validation.php
#	resources/lang/de/admin/settings/general.php
#	resources/lang/de/validation.php
#	resources/lang/el/validation.php
#	resources/lang/en-GB/admin/settings/general.php
#	resources/lang/en-GB/validation.php
#	resources/lang/en-ID/admin/hardware/table.php
#	resources/lang/en-ID/admin/settings/general.php
#	resources/lang/en-ID/validation.php
#	resources/lang/es-CO/admin/settings/general.php
#	resources/lang/es-CO/auth/message.php
#	resources/lang/es-CO/button.php
#	resources/lang/es-CO/help.php
#	resources/lang/es-CO/validation.php
#	resources/lang/es-ES/admin/settings/general.php
#	resources/lang/es-ES/auth/message.php
#	resources/lang/es-ES/button.php
#	resources/lang/es-ES/help.php
#	resources/lang/es-ES/validation.php
#	resources/lang/es-MX/admin/settings/general.php
#	resources/lang/es-MX/validation.php
#	resources/lang/es-VE/admin/settings/general.php
#	resources/lang/es-VE/auth/message.php
#	resources/lang/es-VE/button.php
#	resources/lang/es-VE/help.php
#	resources/lang/es-VE/validation.php
#	resources/lang/et/validation.php
#	resources/lang/fa/validation.php
#	resources/lang/fi/admin/settings/general.php
#	resources/lang/fi/validation.php
#	resources/lang/fil/validation.php
#	resources/lang/fr/admin/settings/general.php
#	resources/lang/fr/validation.php
#	resources/lang/ga-IE/validation.php
#	resources/lang/he/admin/settings/general.php
#	resources/lang/he/general.php
#	resources/lang/he/validation.php
#	resources/lang/hr/validation.php
#	resources/lang/hu/validation.php
#	resources/lang/id/validation.php
#	resources/lang/is/admin/categories/general.php
#	resources/lang/is/admin/companies/message.php
#	resources/lang/is/admin/companies/table.php
#	resources/lang/is/admin/components/general.php
#	resources/lang/is/admin/components/table.php
#	resources/lang/is/admin/consumables/table.php
#	resources/lang/is/admin/depreciations/general.php
#	resources/lang/is/admin/depreciations/message.php
#	resources/lang/is/admin/hardware/form.php
#	resources/lang/is/admin/hardware/general.php
#	resources/lang/is/admin/hardware/message.php
#	resources/lang/is/admin/hardware/table.php
#	resources/lang/is/admin/kits/general.php
#	resources/lang/is/admin/licenses/form.php
#	resources/lang/is/admin/licenses/general.php
#	resources/lang/is/admin/locations/table.php
#	resources/lang/is/admin/manufacturers/table.php
#	resources/lang/is/admin/reports/message.php
#	resources/lang/is/admin/settings/general.php
#	resources/lang/is/admin/settings/message.php
#	resources/lang/is/admin/statuslabels/message.php
#	resources/lang/is/admin/suppliers/message.php
#	resources/lang/is/admin/suppliers/table.php
#	resources/lang/is/admin/users/table.php
#	resources/lang/is/mail.php
#	resources/lang/is/validation.php
#	resources/lang/it/admin/settings/general.php
#	resources/lang/it/validation.php
#	resources/lang/iu/validation.php
#	resources/lang/ja/mail.php
#	resources/lang/ja/validation.php
#	resources/lang/ko/validation.php
#	resources/lang/lt/validation.php
#	resources/lang/lv/validation.php
#	resources/lang/mi/validation.php
#	resources/lang/mk/validation.php
#	resources/lang/ml-IN/validation.php
#	resources/lang/mn/validation.php
#	resources/lang/ms/validation.php
#	resources/lang/nl/admin/settings/general.php
#	resources/lang/nl/validation.php
#	resources/lang/no/validation.php
#	resources/lang/pl/admin/settings/general.php
#	resources/lang/pl/validation.php
#	resources/lang/pt-BR/admin/settings/general.php
#	resources/lang/pt-BR/mail.php
#	resources/lang/pt-BR/validation.php
#	resources/lang/pt-PT/validation.php
#	resources/lang/ro/validation.php
#	resources/lang/ru/validation.php
#	resources/lang/sl/validation.php
#	resources/lang/sr-CS/admin/settings/general.php
#	resources/lang/sr-CS/validation.php
#	resources/lang/sv-SE/admin/settings/general.php
#	resources/lang/sv-SE/auth/message.php
#	resources/lang/sv-SE/button.php
#	resources/lang/sv-SE/mail.php
#	resources/lang/sv-SE/validation.php
#	resources/lang/ta/validation.php
#	resources/lang/th/validation.php
#	resources/lang/tl/validation.php
#	resources/lang/tr/mail.php
#	resources/lang/tr/validation.php
#	resources/lang/uk/admin/accessories/table.php
#	resources/lang/uk/admin/asset_maintenances/message.php
#	resources/lang/uk/admin/asset_maintenances/table.php
#	resources/lang/uk/validation.php
#	resources/lang/ur-PK/validation.php
#	resources/lang/vi/admin/settings/general.php
#	resources/lang/vi/validation.php
#	resources/lang/zh-CN/admin/settings/general.php
#	resources/lang/zh-CN/validation.php
#	resources/lang/zh-HK/validation.php
#	resources/lang/zh-TW/validation.php
#	resources/lang/zu/validation.php
#	resources/views/partials/bootstrap-table.blade.php
#	resources/views/partials/forms/edit/company-select.blade.php
#	routes/api.php
2021-09-21 23:46:50 -07:00
snipe
b7f0e76e4c Merge branch 'develop-v6-integration' of https://github.com/snipe/snipe-it into develop-v6-integration 2021-09-21 20:07:07 -07:00
snipe
6d3c8a9189 Add @Delta5 as a contributor 2021-09-21 20:06:45 -07:00
snipe
df1b1bc972 Merge pull request #10111 from Delta5/add-restore-user-api-endpoint
Added restore functionality to user API
2021-09-21 20:05:52 -07:00
Godfrey M
160017c720 more deadspace 2021-09-21 19:28:39 -07:00
Godfrey M
941cba73b9 removed deadspace and unnecessary css changes 2021-09-21 19:27:17 -07:00
Godfrey M
4a0c8de82a adds jquery eventlistner to monitor chart.js width and refresh accordingly 2021-09-21 19:13:09 -07:00
Delta5
c8c3c7fbbd Fixed issue with incorrect error message 2021-09-21 19:45:18 +00:00
Delta5
615f7e3c69 Fix author name and remove additional line spacing 2021-09-21 19:18:19 +00:00
Delta5
59302e1d19 Add restore to users api endpoint 2021-09-21 17:42:26 +00:00
Delta5
20f7fe1ecc Add restore to users api endpoint 2021-09-21 17:36:11 +00:00
snipe
d24822e342 Retroactively fix any existing settings for that table
Signed-off-by: snipe <snipe@snipe.net>
2021-09-20 15:47:29 -07:00
snipe
c59c7337a5 Forgot the ->change() method
Signed-off-by: snipe <snipe@snipe.net>
2021-09-20 15:42:25 -07:00
snipe
b331bb33d9 Code fixes and a new migration
Signed-off-by: snipe <snipe@snipe.net>
2021-09-20 15:37:24 -07:00
snipe
9f3b63387a Merge pull request #9987 from Godmartinz/bug/ch17111/donked-layout-on-required-field-error-in
Bug/ch17111/donked layout on required field error in
2021-08-24 15:11:22 -07:00
Godfrey M
a407fe9312 removed more dead space 2021-08-24 15:07:56 -07:00
Godfrey M
53ddf5ae04 removed dead space 2021-08-24 15:07:18 -07:00
Godfrey M
a197b730a1 fixed a layout issue with the month field in depreciations [ch17111] 2021-08-24 15:02:42 -07:00
snipe
193a52876e Fix incorrect resource route name
Signed-off-by: snipe <snipe@snipe.net>
2021-08-18 15:01:10 -07:00
snipe
d3844811b5 Updated composer lock
Signed-off-by: snipe <snipe@snipe.net>
2021-08-17 20:28:26 -07:00
snipe
211e0c6bd4 Dropped down to PHP 7.3 compat packages
Signed-off-by: snipe <snipe@snipe.net>
2021-08-17 20:21:43 -07:00
snipe
4c13ddd0c5 Merge pull request #9937 from Godmartinz/depreciation_min_feature
adds a Floor value for depreciation models
2021-08-16 18:29:48 -07:00
Godfrey M
9480709ea3 changed value to current value 2021-08-16 18:22:24 -07:00
Godfrey M
cef0e424e1 adds a Floor value for depreciation models 2021-08-16 18:14:10 -07:00
snipe
29008545bc Merge pull request #9924 from snipe/chore/ch16531/update-demo-photos-of-iphones-to-be-more
Update demo photos of iPhones to be more [ch16531]
2021-08-11 13:16:09 -07:00
Godfrey M
4c2257b67d Update demo photos of iPhones to be more [ch16531] 2021-08-11 13:13:12 -07:00
Tobias Regnery
eced1ab77f Fix advanced search with serial and another field
The advanced search in /hardware produces incorrect results if the serial is combined with another field like category.
There is a typo as the fieldname 'product_key' doesn't exist. Change this to 'serial'.

Also change the last If-Statement from ->orWhere() to ->where(). Now additional fields like custom fields can be combined with other searches in an And-Clause.
I think this function could be simplified further, but this is the minimal bugfix.
2021-08-05 15:07:28 +02:00
Computroniks
8121d904e7 Licence cost calculation
Licences use diffrent key to track quantity. sumFormatterQuantity has
been modified to detect which key to use.

Signed-off-by: Computroniks <mnickson@sidingsmedia.com>
2021-08-04 22:33:39 +01:00
Computroniks
f994af16da Added function to calculate cost based on quantity
sumFormatterQuantity takes the same input as sumFormatter but instead
of calculating the specified columns total it calculates the total
purchase cost of an item based upon its quantity. Also updated affected
pressenters to use this formatter.

Signed-off-by: Computroniks <mnickson@sidingsmedia.com>
2021-08-04 22:09:50 +01:00
NMC
4cfc4aec1d fix false search in api. 2021-08-01 15:10:22 -04:00
NMC
976957ddd4 Add Maintained filed in licenses view and api. + Expires in API 2021-08-01 14:30:16 -04:00
Tobias Regnery
1a908e361e Make locations deletable for non Superuser-Accounts with FullMultipleCompanySupport
locations->isDeletable() checks via gate::allows if a locations is deletable.
This calls SnipePermissionsPolicy->before() and checks for !Company::isCurrentUserHasAccess($item).
This returns false because locations don't have a company_id.

Check for this and return true if the item don't have a company_id.
2021-07-29 10:43:01 +02:00
snipe
071325f368 Merge pull request #9824 from PetriAsi/feature/api-image-uploads-v6
Added #9594:  Feature/api image uploads for v6
2021-07-27 14:35:16 -07:00
snipe
476ab2888c Merge pull request #9852 from Godmartinz/develop-v6-integration
adds newer versions of devices for demo
2021-07-27 14:34:15 -07:00
snipe
5f077cc33a Merge pull request #9858 from dampfklon/fix-dockerfile-v6
Add new php extension dependencies for v6
2021-07-27 14:32:23 -07:00
Dampfklon
20df7be2f4 add new php extensions dependencies for v6 2021-07-24 23:15:17 +02:00
Godfrey M
013e168883 adds newer versions of devices for demo 2021-07-21 15:12:27 -07:00
Ivan Nieto Vivanco
35ffe8b902 Adds a check to know if the asset is checked out to the logged in user to allow check the state int the view 2021-07-20 18:56:22 -05:00
Petri Asikainen
f753404197 missed this when rebasing 2021-07-15 12:26:14 +03:00
Petri Asikainen
5d999d2572 legacy image_source support for store 2021-07-15 12:26:14 +03:00
Petri Asikainen
d50294e8e2 Just mention source of idea as code rewriten 2021-07-15 12:26:14 +03:00
Petri Asikainen
2fc3ff671e hand legacy image_source field 2021-07-15 12:26:14 +03:00
Petri Asikainen
89cc84f1d9 convert image_source field
This reverts commit b2d3ba7410.
2021-07-15 12:26:14 +03:00
Petri Asikainen
f24138da44 Revert "Handle image_source with ConvertBase64ToFiles"
This reverts commit 168d7f7004.
2021-07-15 12:26:14 +03:00
Petri Asikainen
a76b36cad9 Handle image_source with ConvertBase64ToFiles 2021-07-15 12:26:14 +03:00
Petri Asikainen
1936fc2ea9 Better debug comment 2021-07-15 12:26:14 +03:00
Petri Asikainen
23f77b2894 Fixed case again 2021-07-15 12:26:14 +03:00
Petri Asikainen
15dd7061ed removed unused Bag-functions 2021-07-15 12:26:14 +03:00
Petri Asikainen
5f81488679 fix debug placement 2021-07-15 12:26:14 +03:00
Petri Asikainen
c894e8ceb3 handle files via standard field 2021-07-15 12:26:14 +03:00
Petri Asikainen
bbe964c6b2 debug trait 2021-07-15 12:26:14 +03:00
Petri Asikainen
2325b1d8c2 Try without trait 2021-07-15 12:26:14 +03:00
Petri Asikainen
948a741935 case case again.. 2021-07-15 12:26:14 +03:00
Petri Asikainen
d7d3681d71 trait base64 encoded files 2021-07-15 12:26:13 +03:00
Petri Asikainen
e6d432423d trait base64 encoded files 2021-07-15 12:26:13 +03:00
Petri Asikainen
6173aaa25c fixed capitalization 2021-07-15 12:26:13 +03:00
Petri Asikainen
91af3f2661 Support images and multipart requests 2021-07-15 12:26:13 +03:00
Petri Asikainen
4191dd39ea Support images and multipart requests 2021-07-15 12:26:13 +03:00
Petri Asikainen
2f3501bdc2 Support images and multipart requests 2021-07-15 12:26:13 +03:00
Petri Asikainen
f1b8ce0a1b Support images and multipart requests 2021-07-15 12:26:13 +03:00
Petri Asikainen
6a21660c14 Support images and multipart requests 2021-07-15 12:26:13 +03:00
Petri Asikainen
64c8767e81 Support images and multipart requests 2021-07-15 12:26:13 +03:00
Petri Asikainen
0e7af80806 Support images and multipart requests 2021-07-15 12:26:13 +03:00
Petri Asikainen
e95b15d553 Support images and multipart requests 2021-07-15 12:26:13 +03:00
Petri Asikainen
bb269e0e5f Support images and multipart requests 2021-07-15 12:26:13 +03:00
Petri Asikainen
60f13c8d79 Support images and multipart requests 2021-07-15 12:26:13 +03:00
Petri Asikainen
5081ca3512 Support images and multipart requests 2021-07-15 12:26:13 +03:00
Petri Asikainen
b4380c8012 Support images and multipart requests 2021-07-15 12:26:13 +03:00
Petri Asikainen
f6766c5f23 Support images and multipart requests 2021-07-15 12:26:07 +03:00
Petri Asikainen
8bbbb06c5e testing image upload via api 2021-07-15 12:24:25 +03:00
snipe
06806341c7 Nicer tab names for permissions
Signed-off-by: snipe <snipe@snipe.net>
2021-07-08 15:57:41 -07:00
Tobias Regnery
9e1d7ffb5d Fix scope of departments for FullMultipleCompanySupport
If a user tries to view or edit a department from a different company
with FullMultipleCompanySupport enabled, there is a 403 error displayed.
Apply the correct company scope in order to only display the departments
from the own company in the departments view.

Signed-off-by: Tobias Regnery <tobias.regnery@gmail.com>
2021-07-06 09:45:46 +02:00
snipe
533c3f1651 Fixed incorrect resource route
Signed-off-by: snipe <snipe@snipe.net>
2021-06-29 20:58:04 -07:00
snipe
a12ae19e32 Try deferring the load so it doesn’t query the server server 7 times for login
This doesn’t work?

Signed-off-by: snipe <snipe@snipe.net>
2021-06-29 10:50:32 -07:00
snipe
50a644a2c0 Did I seriously spell my own goddamned name wrong in the docblock??
Signed-off-by: snipe <snipe@snipe.net>
2021-06-29 10:28:00 -07:00
snipe
3332bbe072 Removed unused properties on login
This may be dumb anyway - we probably don’t need to make so many round trips to the server just to see if things are required or not… But I’d really like to standardize the validation across the system

Signed-off-by: snipe <snipe@snipe.net>
2021-06-29 10:27:44 -07:00
snipe
c517ec849d Small refactor for login Livewire
Signed-off-by: snipe <snipe@snipe.net>
2021-06-29 10:05:23 -07:00
snipe
ca41e2b7f3 Fixed typo in ansible playbook
Signed-off-by: snipe <snipe@snipe.net>
2021-06-29 07:59:12 -07:00
snipe
8780fa0a26 Use correct auth failure message
Signed-off-by: snipe <snipe@snipe.net>
2021-06-29 07:46:39 -07:00
snipe
d5881523d9 Removed unused translations
Signed-off-by: snipe <snipe@snipe.net>
2021-06-29 07:46:27 -07:00
snipe
704eb728bc Added livewire the login screen
Signed-off-by: snipe <snipe@snipe.net>
2021-06-29 02:16:57 -07:00
snipe
576e605f73 Make livewire less assy looking
Signed-off-by: snipe <snipe@snipe.net>
2021-06-28 22:40:18 -07:00
snipe
ebb0aa5532 Merge pull request #9766 from uberbrady/livewire_integration_v6
Livewire integration for Snipe-IT v6
2021-06-28 21:51:00 -07:00
Brady Wetherington
f3427ee670 Tweak to composer packages to get it to composer install correctly 2021-06-28 21:08:05 -07:00
Brady Wetherington
a6ac4f94f1 Breaking out field-listing into its own Livewire blade for use elsewhere 2021-06-28 21:00:20 -07:00
Brady Wetherington
ea1f1eb972 Get some basic Livewire going for 'edit model's default values. 2021-06-28 21:00:20 -07:00
Brady Wetherington
8e66abb926 Basic Laravel7 compatibility, starting getting Livewire going 2021-06-28 21:00:16 -07:00
snipe
dc125af029 Fixed locations link on homepage module
Signed-off-by: snipe <snipe@snipe.net>
2021-06-28 19:56:41 -07:00
snipe
2365634139 Added dashboard module for locations [ch9199]
Signed-off-by: snipe <snipe@snipe.net>
2021-06-28 19:46:56 -07:00
snipe
4af247f845 Added additional boxes to the dashboard
Signed-off-by: snipe <snipe@snipe.net>
2021-06-28 16:36:15 -07:00
snipe
d4e46ee41f Added comma in US currency format [ch16628]
Signed-off-by: snipe <snipe@snipe.net>
2021-06-28 16:14:32 -07:00
snipe
68c751fe63 Break out name into first name and last name [ch1382]
Signed-off-by: snipe <snipe@snipe.net>
2021-06-28 15:55:33 -07:00
snipe
a016f4ecd0 Applies PR #9761 to integration
Signed-off-by: snipe <snipe@snipe.net>
2021-06-28 13:11:22 -07:00
snipe
7af4c3a15f Fixed incorrect maintenances route
Signed-off-by: snipe <snipe@snipe.net>
2021-06-23 21:06:19 -07:00
snipe
d20c425a56 Un-donked assets
Signed-off-by: snipe <snipe@snipe.net>
2021-06-23 20:10:06 -07:00
snipe
1ea843248b Fixed #9729 - bulk edit order number capped at 20
Signed-off-by: snipe <snipe@snipe.net>
2021-06-23 20:04:45 -07:00
snipe
bdc285cebf Merge branch 'develop-v6-integration' of https://github.com/snipe/snipe-it into develop-v6-integration 2021-06-23 20:02:49 -07:00
snipe
71a53b3cbb Merge pull request #9741 from uberbrady/develop-v6-integration
Removed Ziggy.baseUrl references for meta references that already had baseUrl
2021-06-23 20:02:32 -07:00
Brady Wetherington
8268aca9fc Removed Ziggy.baseUrl references for meta references that had baseUrl 2021-06-23 19:57:45 -07:00
snipe
2e6bac7db5 Bumped version
Signed-off-by: snipe <snipe@snipe.net>
2021-06-23 18:36:43 -07:00
snipe
d037ec5b9c Dev assets
Signed-off-by: snipe <snipe@snipe.net>
2021-06-23 18:08:50 -07:00
snipe
2218155700 Remove phantomJS
Signed-off-by: snipe <snipe@snipe.net>
2021-06-23 18:04:00 -07:00
snipe
32a6fa5f0c Pushed less changes into integration branch
Signed-off-by: snipe <snipe@snipe.net>
2021-06-23 18:00:33 -07:00
snipe
b3ec4bb31b Porting PR #9720 to v6 integration
Signed-off-by: snipe <snipe@snipe.net>
2021-06-23 14:28:06 -07:00
snipe
6e7ef585e4 Merge branch 'develop-v6-integration' of https://github.com/snipe/snipe-it into develop-v6-integration 2021-06-23 14:27:26 -07:00
snipe
58d674cca8 Merge pull request #9737 from uberbrady/develop-v6-integration
Develop v6 integration
2021-06-23 11:25:40 -07:00
Brady Wetherington
17aab61987 Some fixes to some typos in other routes, commeting out parameters parameter which seems crashy 2021-06-22 18:58:25 -07:00
Brady Wetherington
9456a03a88 Almost finished with the routes which is...hopefully? The last thing? 2021-06-22 16:58:23 -07:00
snipe
dc157f8f78 Add components and users count to dashboard
Signed-off-by: snipe <snipe@snipe.net>
2021-06-19 16:16:18 -07:00
snipe
60538508d4 Added missing route
Signed-off-by: snipe <snipe@snipe.net>
2021-06-12 01:51:53 -07:00
snipe
17fb56d3b9 More updated routes
Signed-off-by: snipe <snipe@snipe.net>
2021-06-12 01:35:29 -07:00
snipe
346d879344 Updated routes
Signed-off-by: snipe <snipe@snipe.net>
2021-06-12 01:05:20 -07:00
snipe
14ac7a2181 Updated API routes
Signed-off-by: snipe <snipe@snipe.net>
2021-06-12 00:42:34 -07:00
snipe
aebb30cea8 Fixed Cors wildcard
Signed-off-by: snipe <snipe@snipe.net>
2021-06-12 00:23:51 -07:00
snipe
c407b52bbf Updated Cors
Signed-off-by: snipe <snipe@snipe.net>
2021-06-12 00:23:30 -07:00
snipe
b5ddc637b8 Merge branch 'develop-v6-integration' of https://github.com/snipe/snipe-it into develop-v6-integration 2021-06-11 22:20:02 -07:00
snipe
7f74b65834 Merge pull request #9704 from uberbrady/develop-v6-integration
Get it so that we can re-build assets.
2021-06-11 22:19:51 -07:00
snipe
226b208f7c Reset handler to stock for now
Signed-off-by: snipe <snipe@snipe.net>
2021-06-11 22:19:10 -07:00
Brady Wetherington
5b42481d8f Get it so that we can re-build assets. 2021-06-11 21:54:29 -07:00
snipe
c08f70b03c Restore exeption handler functionality
Signed-off-by: snipe <snipe@snipe.net>
2021-06-11 21:51:28 -07:00
snipe
9e0e952576 Updated composer
Signed-off-by: snipe <snipe@snipe.net>
2021-06-11 20:12:39 -07:00
snipe
1b70b533aa Merge branch 'develop-v6-integration' of https://github.com/snipe/snipe-it into develop-v6-integration 2021-06-11 19:41:57 -07:00
snipe
b30bbe1740 Fixed more factories
Signed-off-by: snipe <snipe@snipe.net>
2021-06-11 19:41:20 -07:00
snipe
b3e9c51584 Merge pull request #9703 from uberbrady/develop-v6-integration
Remove barryvdh's laravel-cors for fruitcake's laravel-cors
2021-06-11 19:25:11 -07:00
Brady Wetherington
0118ff8a78 Remove barryvdh's laravel-cors for fruitcake's laravel-cors 2021-06-11 19:12:43 -07:00
snipe
b7f45d2ae2 Re-emable auth routes
Signed-off-by: snipe <snipe@snipe.net>
2021-06-11 19:02:25 -07:00
snipe
fa786e615e Moved HasFactory
Signed-off-by: snipe <snipe@snipe.net>
2021-06-11 19:02:19 -07:00
snipe
2ed2007888 Merge pull request #9702 from uberbrady/develop-v6-integration
Finished fixing the web routes file
2021-06-11 17:15:35 -07:00
Brady Wetherington
42316f3ba7 Finished fixing the web routes file and put a gigantic warning in the api routes file 2021-06-11 17:12:06 -07:00
snipe
ebfb3ed5b7 Merge pull request #9699 from uberbrady/develop-v6-integration
Basic fixes to at least get the dashboard up
2021-06-11 15:56:59 -07:00
Brady Wetherington
fc5c0a0e95 Basic fixes to at least get the dashboard up 2021-06-11 15:23:44 -07:00
snipe
3095a78664 Small tweaks to Dashboard controller
Still gettiing a bizarre `Non-static method App\Http\Controllers\DashboardController::index() should not be called statically` error

Signed-off-by: snipe <snipe@snipe.net>
2021-06-11 14:43:47 -07:00
snipe
2cddd7faf0 Fixed filesystem config
Signed-off-by: snipe <snipe@snipe.net>
2021-06-11 14:26:10 -07:00
snipe
a5f144b4e0 Merge branch 'shift-46327' into develop-v6-integration
Signed-off-by: snipe <snipe@snipe.net>

# Conflicts:
#	config/version.php
2021-06-11 14:10:10 -07:00
snipe
a8123092af Misc fixes for shift
// TODO - re-fix the exception handler

Signed-off-by: snipe <snipe@snipe.net>
2021-06-11 14:07:50 -07:00
Laravel Shift
b62d1f49e4 Shift cleanup 2021-06-10 20:19:27 +00:00
Laravel Shift
9838c0c2ef Upgrade to Laravel Mix 6 2021-06-10 20:18:15 +00:00
Laravel Shift
8b82262777 Shift return type of base TestCase methods
From the [PHPUnit 8 release notes][1], the `TestCase` methods below now declare a `void` return type:

- `setUpBeforeClass()`
- `setUp()`
- `assertPreConditions()`
- `assertPostConditions()`
- `tearDown()`
- `tearDownAfterClass()`
- `onNotSuccessfulTest()`

[1]: https://phpunit.de/announcements/phpunit-8.html
2021-06-10 20:18:12 +00:00
Laravel Shift
30607ac268 Shift Laravel dependencies 2021-06-10 20:18:11 +00:00
Laravel Shift
7e93086dd4 Default config files
In an effort to make upgrading the constantly changing config files
easier, Shift defaulted them and merged your true customizations -
where ENV variables may not be used.
2021-06-10 20:18:10 +00:00
Laravel Shift
cc3c59bf97 Shift config files 2021-06-10 20:18:10 +00:00
Laravel Shift
c367fa7e40 Shift PSR-4 autoloading 2021-06-10 20:18:01 +00:00
Laravel Shift
c90b1c6a43 Namespace seeders 2021-06-10 20:18:00 +00:00
Laravel Shift
104b441e0d Shift to class based factories 2021-06-10 20:17:44 +00:00
Laravel Shift
c02a95e73f Ignore temporary framework files 2021-06-10 20:17:22 +00:00
Laravel Shift
3c40c6fe25 Shift console routes 2021-06-10 20:17:20 +00:00
Laravel Shift
9f43ce97e9 Convert deprecated $dates property to $casts 2021-06-10 20:17:18 +00:00
Laravel Shift
bdf23e472e Shift to class based routes 2021-06-10 20:17:14 +00:00
Laravel Shift
ddc8b8648b Shift service providers 2021-06-10 20:17:07 +00:00
Laravel Shift
4ed3d6afb8 Shift HTTP kernel and middleware 2021-06-10 20:17:04 +00:00
Laravel Shift
ec0dc681ba Shift core files 2021-06-10 20:16:59 +00:00
Laravel Shift
802dc9240d Shift bindings
PHP 5.5.9+ adds the new static `class` property which provides the fully qualified class name. This is preferred over using class name strings as these references are checked by the parser.
2021-06-10 20:16:56 +00:00
Laravel Shift
934afa036f Adopt Laravel coding style
Shift automatically applies the Laravel coding style - which uses the PSR-2 coding style as a base with some minor additions.

You may customize the adopted coding style by adding your own [PHP CS Fixer][1] `.php_cs` config file to your project root. Feel free to use [Shift's Laravel ruleset][2] to help you get started.

[1]: https://github.com/FriendsOfPHP/PHP-CS-Fixer
[2]: https://gist.github.com/laravel-shift/cab527923ed2a109dda047b97d53c200
2021-06-10 20:15:52 +00:00
sh1hab
f43413bdc3 Feature snipe#9378 update 2021-05-21 10:19:04 +06:00
sh1hab
cd4b1d8acb Merge branch 'develop' of https://github.com/snipe/snipe-it into feature/remove_deleted_user_from_unaccepted_assets_report 2021-05-21 10:09:05 +06:00
Thomas Misilo
18b1a155bf Change from ENV to config value for PUBLIC_AWS_URL
When running config:cache the env('PUBLIC_AWS'URL') value disappears and isn't available, so it doesn't get added to the CSP Policy.
2021-05-11 09:51:35 -05:00
sh1hab
6799ce9bfd merge develop with remove_deleted_user_from_unaccepted_assets_report 2021-05-05 16:19:14 +06:00
sh1hab
193a8d923b Feature #9378 update phpdoc comment 2021-04-29 16:32:37 +06:00
sh1hab
98a42afa78 Feature #9378 remove deleted user from unaccepted assets report 2021-04-29 15:34:05 +06:00
8960 changed files with 560097 additions and 247237 deletions

View File

@@ -1,11 +1,14 @@
{
"projectName": "snipe-it",
"projectOwner": "snipe",
"repoType": "github",
"repoHost": "https://github.com",
"files": [
"README.md"
"CONTRIBUTORS.md"
],
"imageSize": 110,
"commit": true,
"commitConvention": "angular",
"contributors": [
{
"login": "snipe",
@@ -2361,6 +2364,15 @@
"code"
]
},
{
"login": "Delta5",
"name": "Evan Taylor",
"avatar_url": "https://avatars.githubusercontent.com/u/1975640?v=4",
"profile": "https://github.com/Delta5",
"contributions": [
"code"
]
},
{
"login": "PetriAsi",
"name": "Petri Asikainen",
@@ -2514,6 +2526,15 @@
"code"
]
},
{
"login": "PlaneNuts",
"name": "PlaneNuts",
"avatar_url": "https://avatars.githubusercontent.com/u/88776392?v=4",
"profile": "https://github.com/PlaneNuts",
"contributions": [
"code"
]
},
{
"login": "exula",
"name": "Bradley Coudriet",
@@ -2522,6 +2543,599 @@
"contributions": [
"code"
]
},
{
"login": "UniversalSuperBox",
"name": "Dalton Durst",
"avatar_url": "https://avatars.githubusercontent.com/u/21966173?v=4",
"profile": "https://daltondur.st",
"contributions": [
"code"
]
},
{
"login": "adagioajanes",
"name": "Alex Janes",
"avatar_url": "https://avatars.githubusercontent.com/u/38761237?v=4",
"profile": "https://adagiohealth.org",
"contributions": [
"code"
]
},
{
"login": "nuraeil",
"name": "Nuraeil",
"avatar_url": "https://avatars.githubusercontent.com/u/32387849?v=4",
"profile": "https://github.com/nuraeil",
"contributions": [
"code"
]
},
{
"login": "TenOfTens",
"name": "TenOfTens",
"avatar_url": "https://avatars.githubusercontent.com/u/48162670?v=4",
"profile": "https://github.com/TenOfTens",
"contributions": [
"code"
]
},
{
"login": "insert-waffle",
"name": "waffle",
"avatar_url": "https://avatars.githubusercontent.com/u/9415391?v=4",
"profile": "https://ditisjens.be/",
"contributions": [
"code"
]
},
{
"login": "QveenSi",
"name": "Yevhenii Huzii",
"avatar_url": "https://avatars.githubusercontent.com/u/19945501?v=4",
"profile": "https://github.com/QveenSi",
"contributions": [
"code"
]
},
{
"login": "veenone",
"name": "Achmad Fienan Rahardianto",
"avatar_url": "https://avatars.githubusercontent.com/u/3839381?v=4",
"profile": "https://github.com/veenone",
"contributions": [
"code"
]
},
{
"login": "QveenSi",
"name": "Yevhenii Huzii",
"avatar_url": "https://avatars.githubusercontent.com/u/19945501?v=4",
"profile": "https://github.com/QveenSi",
"contributions": [
"code"
]
},
{
"login": "chrisweirich",
"name": "Christian Weirich",
"avatar_url": "https://avatars.githubusercontent.com/u/97299851?v=4",
"profile": "https://github.com/chrisweirich",
"contributions": [
"code"
]
},
{
"login": "denzfarid",
"name": "denzfarid",
"avatar_url": "https://avatars.githubusercontent.com/u/1294403?v=4",
"profile": "https://github.com/denzfarid",
"contributions": []
},
{
"login": "ntbutler-nbcs",
"name": "ntbutler-nbcs",
"avatar_url": "https://avatars.githubusercontent.com/u/94018771?v=4",
"profile": "https://github.com/ntbutler-nbcs",
"contributions": [
"code"
]
},
{
"login": "naveensrinivasan",
"name": "Naveen",
"avatar_url": "https://avatars.githubusercontent.com/u/172697?v=4",
"profile": "https://naveensrinivasan.dev",
"contributions": [
"code"
]
},
{
"login": "mikeroq",
"name": "Mike Roquemore",
"avatar_url": "https://avatars.githubusercontent.com/u/55674383?v=4",
"profile": "https://github.com/mikeroq",
"contributions": [
"code"
]
},
{
"login": "reederda",
"name": "Daniel Reeder",
"avatar_url": "https://avatars.githubusercontent.com/u/7991086?v=4",
"profile": "https://github.com/reederda",
"contributions": [
"translation",
"translation",
"code"
]
},
{
"login": "vickyjaura183",
"name": "vickyjaura183",
"avatar_url": "https://avatars.githubusercontent.com/u/109422491?v=4",
"profile": "https://github.com/vickyjaura183",
"contributions": [
"code"
]
},
{
"login": "julian-piehl",
"name": "Peace",
"avatar_url": "https://avatars.githubusercontent.com/u/32363424?v=4",
"profile": "https://github.com/julian-piehl",
"contributions": [
"code"
]
},
{
"login": "kylegordon",
"name": "Kyle Gordon",
"avatar_url": "https://avatars.githubusercontent.com/u/231528?v=4",
"profile": "https://github.com/kylegordon",
"contributions": [
"code"
]
},
{
"login": "sunflowerbofh",
"name": "Katharina Drexel",
"avatar_url": "https://avatars.githubusercontent.com/u/53009155?v=4",
"profile": "http://www.bfh.ch",
"contributions": [
"code"
]
},
{
"login": "dsferruzza",
"name": "David Sferruzza",
"avatar_url": "https://avatars.githubusercontent.com/u/1931963?v=4",
"profile": "https://david.sferruzza.fr/",
"contributions": [
"code"
]
},
{
"login": "rnelsonee",
"name": "Rick Nelson",
"avatar_url": "https://avatars.githubusercontent.com/u/19511639?v=4",
"profile": "https://github.com/rnelsonee",
"contributions": [
"code"
]
},
{
"login": "BasO12",
"name": "BasO12",
"avatar_url": "https://avatars.githubusercontent.com/u/94169344?v=4",
"profile": "https://github.com/BasO12",
"contributions": [
"code"
]
},
{
"login": "Vautia",
"name": "Vautia",
"avatar_url": "https://avatars.githubusercontent.com/u/111710123?v=4",
"profile": "https://github.com/Vautia",
"contributions": [
"code"
]
},
{
"login": "chartjes",
"name": "Chris Hartjes",
"avatar_url": "https://avatars.githubusercontent.com/u/28321?v=4",
"profile": "http://www.littlehart.net/atthekeyboard",
"contributions": [
"code"
]
},
{
"login": "geo-chen",
"name": "geo-chen",
"avatar_url": "https://avatars.githubusercontent.com/u/2404584?v=4",
"profile": "https://github.com/geo-chen",
"contributions": [
"code"
]
},
{
"login": "nh314",
"name": "Phan Nguyen",
"avatar_url": "https://avatars.githubusercontent.com/u/6006620?v=4",
"profile": "https://github.com/nh314",
"contributions": [
"code"
]
},
{
"login": "StarlessNights",
"name": "Iisakki Jaakkola",
"avatar_url": "https://avatars.githubusercontent.com/u/115993812?v=4",
"profile": "https://github.com/StarlessNights",
"contributions": [
"code"
]
},
{
"login": "eltociear",
"name": "Ikko Ashimine",
"avatar_url": "https://avatars.githubusercontent.com/u/22633385?v=4",
"profile": "https://bandism.net/",
"contributions": [
"code"
]
},
{
"login": "lukasfehling",
"name": "Lukas Fehling",
"avatar_url": "https://avatars.githubusercontent.com/u/56871540?v=4",
"profile": "https://github.com/lukasfehling",
"contributions": [
"code"
]
},
{
"login": "fernando-almeida",
"name": "Fernando Almeida",
"avatar_url": "https://avatars.githubusercontent.com/u/1975990?v=4",
"profile": "https://github.com/fernando-almeida",
"contributions": [
"code"
]
},
{
"login": "akemidx",
"name": "akemidx",
"avatar_url": "https://avatars.githubusercontent.com/u/116301219?v=4",
"profile": "https://github.com/akemidx",
"contributions": [
"code"
]
},
{
"login": "oguzbilgic",
"name": "Oguz Bilgic",
"avatar_url": "https://avatars.githubusercontent.com/u/144778?v=4",
"profile": "http://oguz.site",
"contributions": [
"code"
]
},
{
"login": "scoo73r",
"name": "Scooter Crawford",
"avatar_url": "https://avatars.githubusercontent.com/u/9262438?v=4",
"profile": "https://github.com/scoo73r",
"contributions": [
"code"
]
},
{
"login": "subdriven",
"name": "subdriven",
"avatar_url": "https://avatars.githubusercontent.com/u/5957345?v=4",
"profile": "https://github.com/subdriven",
"contributions": [
"code"
]
},
{
"login": "AndrewSav",
"name": "Andrew Savinykh",
"avatar_url": "https://avatars.githubusercontent.com/u/658865?v=4",
"profile": "https://github.com/AndrewSav",
"contributions": [
"code"
]
},
{
"login": "kenchan0130",
"name": "Tadayuki Onishi",
"avatar_url": "https://avatars.githubusercontent.com/u/1155067?v=4",
"profile": "https://kenchan0130.github.io",
"contributions": [
"code"
]
},
{
"login": "floschoepfer",
"name": "Florian",
"avatar_url": "https://avatars.githubusercontent.com/u/112496896?v=4",
"profile": "https://github.com/floschoepfer",
"contributions": [
"code"
]
},
{
"login": "spencerrlongg",
"name": "Spencer Long",
"avatar_url": "https://avatars.githubusercontent.com/u/7305753?v=4",
"profile": "http://spencerlong.com",
"contributions": [
"code"
]
},
{
"login": "marcusmoore",
"name": "Marcus Moore",
"avatar_url": "https://avatars.githubusercontent.com/u/1141514?v=4",
"profile": "https://github.com/marcusmoore",
"contributions": [
"code"
]
},
{
"login": "Mezzle",
"name": "Martin Meredith",
"avatar_url": "https://avatars.githubusercontent.com/u/570639?v=4",
"profile": "https://github.com/Mezzle",
"contributions": []
},
{
"login": "dboth",
"name": "dboth",
"avatar_url": "https://avatars.githubusercontent.com/u/5731963?v=4",
"profile": "http://dboth.de",
"contributions": [
"code"
]
},
{
"login": "zacharyfleck",
"name": "Zachary Fleck",
"avatar_url": "https://avatars.githubusercontent.com/u/87536651?v=4",
"profile": "https://github.com/zacharyfleck",
"contributions": [
"code"
]
},
{
"login": "vikaas-cyper",
"name": "VIKAAS-A",
"avatar_url": "https://avatars.githubusercontent.com/u/74609912?v=4",
"profile": "https://github.com/vikaas-cyper",
"contributions": [
"code"
]
},
{
"login": "ak-piracha",
"name": "Abdul Kareem",
"avatar_url": "https://avatars.githubusercontent.com/u/88882041?v=4",
"profile": "https://github.com/ak-piracha",
"contributions": [
"code"
]
},
{
"login": "NojoudAlshehri",
"name": "NojoudAlshehri",
"avatar_url": "https://avatars.githubusercontent.com/u/111287779?v=4",
"profile": "https://github.com/NojoudAlshehri",
"contributions": [
"code"
]
},
{
"login": "stefanstidlffg",
"name": "Stefan Stidl",
"avatar_url": "https://avatars.githubusercontent.com/u/54367449?v=4",
"profile": "https://github.com/stefanstidlffg",
"contributions": [
"code"
]
},
{
"login": "qay21",
"name": "Quentin Aymard",
"avatar_url": "https://avatars.githubusercontent.com/u/87803479?v=4",
"profile": "https://github.com/qay21",
"contributions": [
"code"
]
},
{
"login": "cram42",
"name": "Grant Le Roux",
"avatar_url": "https://avatars.githubusercontent.com/u/5396871?v=4",
"profile": "https://github.com/cram42",
"contributions": [
"code"
]
},
{
"login": "Singrity",
"name": "Bogdan",
"avatar_url": "https://avatars.githubusercontent.com/u/58479551?v=4",
"profile": "http://@singrity",
"contributions": [
"code"
]
},
{
"login": "mmanjos",
"name": "mmanjos",
"avatar_url": "https://avatars.githubusercontent.com/u/3483684?v=4",
"profile": "https://github.com/mmanjos",
"contributions": [
"code"
]
},
{
"login": "Azooz2014",
"name": "Abdelaziz Faki",
"avatar_url": "https://avatars.githubusercontent.com/u/7429229?v=4",
"profile": "https://azooz2014.github.io/",
"contributions": [
"code"
]
},
{
"login": "bilias",
"name": "bilias",
"avatar_url": "https://avatars.githubusercontent.com/u/47315739?v=4",
"profile": "https://github.com/bilias",
"contributions": [
"code"
]
},
{
"login": "coach1988",
"name": "coach1988",
"avatar_url": "https://avatars.githubusercontent.com/u/2565989?v=4",
"profile": "https://github.com/coach1988",
"contributions": [
"code"
]
},
{
"login": "mauro-miatello",
"name": "MrM",
"avatar_url": "https://avatars.githubusercontent.com/u/11910225?v=4",
"profile": "https://github.com/mauro-miatello",
"contributions": [
"code"
]
},
{
"login": "koiakoia",
"name": "koiakoia",
"avatar_url": "https://avatars.githubusercontent.com/u/60405354?v=4",
"profile": "https://github.com/koiakoia",
"contributions": [
"code"
]
},
{
"login": "mustafa-online",
"name": "Mustafa Online",
"avatar_url": "https://avatars.githubusercontent.com/u/5323832?v=4",
"profile": "https://github.com/mustafa-online",
"contributions": [
"code"
]
},
{
"login": "franceslui",
"name": "franceslui",
"avatar_url": "https://avatars.githubusercontent.com/u/104601439?v=4",
"profile": "https://github.com/franceslui",
"contributions": [
"code"
]
},
{
"login": "Q4kK",
"name": "Q4kK",
"avatar_url": "https://avatars.githubusercontent.com/u/125313163?v=4",
"profile": "https://github.com/Q4kK",
"contributions": [
"code"
]
},
{
"login": "squintfox",
"name": "squintfox",
"avatar_url": "https://avatars.githubusercontent.com/u/55590532?v=4",
"profile": "https://github.com/squintfox",
"contributions": [
"code"
]
},
{
"login": "jeffclay",
"name": "Jeff Clay",
"avatar_url": "https://avatars.githubusercontent.com/u/1380084?v=4",
"profile": "https://github.com/jeffclay",
"contributions": [
"code"
]
},
{
"login": "PP-JN-RL",
"name": "Phil J R",
"avatar_url": "https://avatars.githubusercontent.com/u/52716446?v=4",
"profile": "https://github.com/PP-JN-RL",
"contributions": [
"code"
]
},
{
"login": "chandanchowdhury",
"name": "i_virus",
"avatar_url": "https://avatars.githubusercontent.com/u/1496725?v=4",
"profile": "https://www.corelight.com/",
"contributions": [
"code"
]
},
{
"login": "gitgrimbo",
"name": "Paul Grime",
"avatar_url": "https://avatars.githubusercontent.com/u/1020541?v=4",
"profile": "https://github.com/gitgrimbo",
"contributions": [
"code"
]
},
{
"login": "LeePorte",
"name": "Lee Porte",
"avatar_url": "https://avatars.githubusercontent.com/u/922815?v=4",
"profile": "https://leeporte.co.uk",
"contributions": [
"code"
]
},
{
"login": "bryanlopezinc",
"name": "BRYAN ",
"avatar_url": "https://avatars.githubusercontent.com/u/23613427?v=4",
"profile": "https://github.com/bryanlopezinc",
"contributions": [
"code",
"test"
]
},
{
"login": "U-H-T",
"name": "U-H-T",
"avatar_url": "https://avatars.githubusercontent.com/u/64061710?v=4",
"profile": "https://github.com/U-H-T",
"contributions": [
"code"
]
},
{
"login": "Tyree",
"name": "Matt Tyree",
"avatar_url": "https://avatars.githubusercontent.com/u/5395363?v=4",
"profile": "https://github.com/Tyree",
"contributions": [
"doc"
]
}
]
}

166
.env.dev.docker Normal file
View File

@@ -0,0 +1,166 @@
# --------------------------------------------
# REQUIRED: DB SETUP
# --------------------------------------------
MYSQL_DATABASE=snipeit
MYSQL_USER=snipeit
MYSQL_PASSWORD=changeme1234
MYSQL_ROOT_PASSWORD=changeme1234
# --------------------------------------------
# REQUIRED: BASIC APP SETTINGS
# --------------------------------------------
APP_ENV=develop
APP_DEBUG=false
# 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
MAX_RESULTS=500
# --------------------------------------------
# REQUIRED: UPLOADED FILE STORAGE SETTINGS
# --------------------------------------------
PRIVATE_FILESYSTEM_DISK=local
PUBLIC_FILESYSTEM_DISK=local_public
# --------------------------------------------
# REQUIRED: DATABASE SETTINGS
# --------------------------------------------
DB_CONNECTION=mysql
DB_HOST=mariadb
DB_DATABASE=snipeit
DB_USERNAME=snipeit
DB_PASSWORD=changeme1234
DB_PREFIX=null
DB_DUMP_PATH='/usr/bin'
DB_CHARSET=utf8mb4
DB_COLLATION=utf8mb4_unicode_ci
# --------------------------------------------
# OPTIONAL: SSL DATABASE SETTINGS
# --------------------------------------------
DB_SSL=false
DB_SSL_IS_PAAS=false
DB_SSL_KEY_PATH=null
DB_SSL_CERT_PATH=null
DB_SSL_CA_PATH=null
DB_SSL_CIPHER=null
DB_SSL_VERIFY_SERVER=null
# --------------------------------------------
# REQUIRED: OUTGOING MAIL SERVER SETTINGS
# --------------------------------------------
MAIL_DRIVER=smtp
MAIL_HOST=mailhog
MAIL_PORT=1025
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
MAIL_FROM_ADDR=you@example.com
MAIL_FROM_NAME='Snipe-IT'
MAIL_REPLYTO_ADDR=you@example.com
MAIL_REPLYTO_NAME='Snipe-IT'
MAIL_AUTO_EMBED_METHOD='attachment'
# --------------------------------------------
# REQUIRED: IMAGE LIBRARY
# This should be gd or imagick
# --------------------------------------------
IMAGE_LIB=gd
# --------------------------------------------
# OPTIONAL: BACKUP SETTINGS
# --------------------------------------------
MAIL_BACKUP_NOTIFICATION_DRIVER=null
MAIL_BACKUP_NOTIFICATION_ADDRESS=null
BACKUP_ENV=true
# --------------------------------------------
# OPTIONAL: SESSION SETTINGS
# --------------------------------------------
SESSION_LIFETIME=12000
EXPIRE_ON_CLOSE=false
ENCRYPT=false
COOKIE_NAME=snipeit_session
COOKIE_DOMAIN=null
SECURE_COOKIES=false
API_TOKEN_EXPIRATION_YEARS=40
# --------------------------------------------
# OPTIONAL: SECURITY HEADER SETTINGS
# --------------------------------------------
APP_TRUSTED_PROXIES=192.168.1.1,10.0.0.1
ALLOW_IFRAMING=false
REFERRER_POLICY=same-origin
ENABLE_CSP=false
CORS_ALLOWED_ORIGINS=null
ENABLE_HSTS=false
# --------------------------------------------
# OPTIONAL: CACHE SETTINGS
# --------------------------------------------
CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_DRIVER=sync
CACHE_PREFIX=snipeit
# --------------------------------------------
# OPTIONAL: REDIS SETTINGS
# --------------------------------------------
REDIS_HOST=redis
REDIS_PASSWORD=null
REDIS_PORT=6379
# --------------------------------------------
# OPTIONAL: MEMCACHED SETTINGS
# --------------------------------------------
MEMCACHED_HOST=null
MEMCACHED_PORT=null
# --------------------------------------------
# OPTIONAL: PUBLIC S3 Settings
# --------------------------------------------
PUBLIC_AWS_SECRET_ACCESS_KEY=null
PUBLIC_AWS_ACCESS_KEY_ID=null
PUBLIC_AWS_DEFAULT_REGION=null
PUBLIC_AWS_BUCKET=null
PUBLIC_AWS_URL=null
PUBLIC_AWS_BUCKET_ROOT=null
# --------------------------------------------
# OPTIONAL: PRIVATE S3 Settings
# --------------------------------------------
PRIVATE_AWS_ACCESS_KEY_ID=null
PRIVATE_AWS_SECRET_ACCESS_KEY=null
PRIVATE_AWS_DEFAULT_REGION=null
PRIVATE_AWS_BUCKET=null
PRIVATE_AWS_URL=null
PRIVATE_AWS_BUCKET_ROOT=null
# --------------------------------------------
# OPTIONAL: AWS Settings
# --------------------------------------------
AWS_ACCESS_KEY_ID=null
AWS_SECRET_ACCESS_KEY=null
AWS_DEFAULT_REGION=null
# --------------------------------------------
# OPTIONAL: LOGIN THROTTLING
# --------------------------------------------
LOGIN_MAX_ATTEMPTS=5
LOGIN_LOCKOUT_DURATION=60
RESET_PASSWORD_LINK_EXPIRES=900
# --------------------------------------------
# OPTIONAL: MISC
# --------------------------------------------
LOG_CHANNEL=stderr
LOG_MAX_DAYS=10
APP_LOCKED=false
APP_CIPHER=AES-256-CBC
APP_FORCE_TLS=false
GOOGLE_MAPS_API=
LDAP_MEM_LIM=500M
LDAP_TIME_LIM=600

View File

@@ -1,18 +1,18 @@
# --------------------------------------------
# REQUIRED: DB SETUP
# REQUIRED: DOCKER SPECIFIC SETTINGS
# --------------------------------------------
MYSQL_DATABASE=snipeit
MYSQL_USER=snipeit
MYSQL_PASSWORD=changeme1234
MYSQL_ROOT_PASSWORD=changeme1234
APP_VERSION=v6.4.1
APP_PORT=8000
# --------------------------------------------
# REQUIRED: BASIC APP SETTINGS
# --------------------------------------------
APP_ENV=develop
APP_ENV=production
APP_DEBUG=false
# 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
# Please regenerate the APP_KEY value by calling `docker compose run --rm snipeit 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
APP_TIMEZONE='UTC'
APP_LOCALE=en
MAX_RESULTS=500
@@ -27,10 +27,12 @@ PUBLIC_FILESYSTEM_DISK=local_public
# REQUIRED: DATABASE SETTINGS
# --------------------------------------------
DB_CONNECTION=mysql
DB_HOST=mariadb
DB_HOST=db
DB_PORT='3306'
DB_DATABASE=snipeit
DB_USERNAME=snipeit
DB_PASSWORD=changeme1234
MYSQL_ROOT_PASSWORD=changeme1234
DB_PREFIX=null
DB_DUMP_PATH='/usr/bin'
DB_CHARSET=utf8mb4
@@ -45,29 +47,35 @@ DB_SSL_KEY_PATH=null
DB_SSL_CERT_PATH=null
DB_SSL_CA_PATH=null
DB_SSL_CIPHER=null
DB_SSL_VERIFY_SERVER=null
# --------------------------------------------
# REQUIRED: OUTGOING MAIL SERVER SETTINGS
# --------------------------------------------
MAIL_DRIVER=smtp
MAIL_MAILER=smtp
MAIL_HOST=mailhog
MAIL_PORT=1025
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
MAIL_TLS_VERIFY_PEER=true
MAIL_FROM_ADDR=you@example.com
MAIL_FROM_NAME='Snipe-IT'
MAIL_REPLYTO_ADDR=you@example.com
MAIL_REPLYTO_NAME='Snipe-IT'
MAIL_AUTO_EMBED_METHOD='attachment'
# --------------------------------------------
# REQUIRED: DATA PROTECTION
# --------------------------------------------
ALLOW_BACKUP_DELETE=false
ALLOW_DATA_PURGE=false
# --------------------------------------------
# REQUIRED: IMAGE LIBRARY
# This should be gd or imagick
# --------------------------------------------
IMAGE_LIB=gd
# --------------------------------------------
# OPTIONAL: BACKUP SETTINGS
# --------------------------------------------
@@ -75,7 +83,6 @@ MAIL_BACKUP_NOTIFICATION_DRIVER=null
MAIL_BACKUP_NOTIFICATION_ADDRESS=null
BACKUP_ENV=true
# --------------------------------------------
# OPTIONAL: SESSION SETTINGS
# --------------------------------------------
@@ -90,7 +97,7 @@ API_TOKEN_EXPIRATION_YEARS=40
# --------------------------------------------
# OPTIONAL: SECURITY HEADER SETTINGS
# --------------------------------------------
APP_TRUSTED_PROXIES=192.168.1.1,10.0.0.1
APP_TRUSTED_PROXIES=192.168.1.1,10.0.0.1,172.0.0.0/8
ALLOW_IFRAMING=false
REFERRER_POLICY=same-origin
ENABLE_CSP=false
@@ -108,7 +115,7 @@ CACHE_PREFIX=snipeit
# --------------------------------------------
# OPTIONAL: REDIS SETTINGS
# --------------------------------------------
REDIS_HOST=redis
REDIS_HOST=null
REDIS_PASSWORD=null
REDIS_PORT=6379
@@ -138,6 +145,13 @@ PRIVATE_AWS_BUCKET=null
PRIVATE_AWS_URL=null
PRIVATE_AWS_BUCKET_ROOT=null
# --------------------------------------------
# OPTIONAL: AWS Settings
# --------------------------------------------
AWS_ACCESS_KEY_ID=null
AWS_SECRET_ACCESS_KEY=null
AWS_DEFAULT_REGION=null
# --------------------------------------------
# OPTIONAL: LOGIN THROTTLING
# --------------------------------------------
@@ -148,10 +162,11 @@ RESET_PASSWORD_LINK_EXPIRES=900
# --------------------------------------------
# OPTIONAL: MISC
# --------------------------------------------
APP_LOG=stderr
APP_LOG_MAX_FILES=10
LOG_CHANNEL=stderr
LOG_MAX_DAYS=10
APP_LOCKED=false
APP_CIPHER=AES-256-CBC
APP_FORCE_TLS=false
GOOGLE_MAPS_API=
LDAP_MEM_LIM=500M
LDAP_TIME_LIM=600

107
.env.dusk.example Normal file
View File

@@ -0,0 +1,107 @@
# --------------------------------------------
# REQUIRED: BASIC APP SETTINGS
# --------------------------------------------
APP_ENV=local
APP_DEBUG=false
APP_KEY=base64:hTUIUh9CP6dQx+6EjSlfWTgbaMaaRvlpEwk45vp+xmk=
APP_URL=http://127.0.0.1:8000
APP_TIMEZONE='US/Eastern'
APP_LOCALE=en
APP_LOCKED=false
MAX_RESULTS=200
# --------------------------------------------
# REQUIRED: UPLOADED FILE STORAGE SETTINGS
# --------------------------------------------
PRIVATE_FILESYSTEM_DISK=local
PUBLIC_FILESYSTEM_DISK=local_public
# --------------------------------------------
# REQUIRED: DATABASE SETTINGS
# --------------------------------------------
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=null
DB_USERNAME=null
DB_PASSWORD=null
DB_PREFIX=null
#DB_DUMP_PATH=
# --------------------------------------------
# OPTIONAL: SSL DATABASE SETTINGS
# --------------------------------------------
DB_SSL=false
DB_SSL_KEY_PATH=null
DB_SSL_CERT_PATH=null
DB_SSL_CA_PATH=null
DB_SSL_CIPHER=null
DB_SSL_VERIFY_SERVER=null
# --------------------------------------------
# REQUIRED: OUTGOING MAIL SERVER SETTINGS
# --------------------------------------------
MAIL_MAILER="log"
# --------------------------------------------
# REQUIRED: IMAGE LIBRARY
# This should be gd or imagick
# --------------------------------------------
IMAGE_LIB=gd
# --------------------------------------------
# OPTIONAL: SESSION SETTINGS
# --------------------------------------------
SESSION_LIFETIME=12000
EXPIRE_ON_CLOSE=false
ENCRYPT=true
COOKIE_NAME=snipeit_v5_local
SECURE_COOKIES=true
# --------------------------------------------
# OPTIONAL: SECURITY HEADER SETTINGS
# --------------------------------------------
REFERRER_POLICY=same-origin
ENABLE_CSP=true
CORS_ALLOWED_ORIGINS="*"
# --------------------------------------------
# OPTIONAL: CACHE SETTINGS
# --------------------------------------------
CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_DRIVER=sync
# --------------------------------------------
# OPTIONAL: LOGIN THROTTLING
# --------------------------------------------
LOGIN_MAX_ATTEMPTS=50000
LOGIN_LOCKOUT_DURATION=1000
RESET_PASSWORD_LINK_EXPIRES=15
# --------------------------------------------
# OPTIONAL: API
# --------------------------------------------
API_MAX_REQUESTS_PER_HOUR=200
# --------------------------------------------
# OPTIONAL: SAML SETTINGS
# --------------------------------------------
DISABLE_NOSAML_LOCAL_LOGIN=true
# --------------------------------------------
# OPTIONAL: MISC
# --------------------------------------------
LOG_CHANNEL=single
LOG_LEVEL=debug
LOG_CHANNEL=stack
LOG_SLACK_WEBHOOK_URL=null
APP_TRUSTED_PROXIES=192.168.1.1,10.0.0.1
ALLOW_IFRAMING=true
ENABLE_HSTS=false
WARN_DEBUG=false
APP_CIPHER=AES-256-CBC

View File

@@ -6,7 +6,7 @@ APP_DEBUG=false
APP_KEY=ChangeMe
APP_URL=null
APP_TIMEZONE='UTC'
APP_LOCALE=en
APP_LOCALE='en-US'
MAX_RESULTS=500
# --------------------------------------------
@@ -15,11 +15,16 @@ MAX_RESULTS=500
PRIVATE_FILESYSTEM_DISK=local
PUBLIC_FILESYSTEM_DISK=local_public
#PRIVATE_FILESYSTEM_DISK=s3_private
#PUBLIC_FILESYSTEM_DISK=s3_public
# --------------------------------------------
# REQUIRED: DATABASE SETTINGS
# --------------------------------------------
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=null
DB_USERNAME=null
DB_PASSWORD=null
@@ -37,21 +42,26 @@ DB_SSL_KEY_PATH=null
DB_SSL_CERT_PATH=null
DB_SSL_CA_PATH=null
DB_SSL_CIPHER=null
DB_SSL_VERIFY_SERVER=null
# --------------------------------------------
# REQUIRED: OUTGOING MAIL SERVER SETTINGS
# --------------------------------------------
MAIL_DRIVER=smtp
MAIL_MAILER=smtp
MAIL_HOST=email-smtp.us-west-2.amazonaws.com
MAIL_PORT=587
MAIL_USERNAME=YOURUSERNAME
MAIL_PASSWORD=YOURPASSWORD
MAIL_ENCRYPTION=null
MAIL_FROM_ADDR=you@example.com
MAIL_FROM_NAME='Snipe-IT'
MAIL_REPLYTO_ADDR=you@example.com
MAIL_REPLYTO_NAME='Snipe-IT'
MAIL_AUTO_EMBED_METHOD='attachment'
MAIL_TLS_VERIFY_PEER=true
# MAIL_ENCRYPTION is no longer supported. SymfonyMailer will use tls if it's
# advertised, and won't if it's not. If you want to use your mail server's IP but it's failing
# because of certificate errors, set MAIL_TLS_VERIFY_PEER-true
# --------------------------------------------
# REQUIRED: IMAGE LIBRARY
@@ -66,11 +76,13 @@ IMAGE_LIB=gd
MAIL_BACKUP_NOTIFICATION_DRIVER=null
MAIL_BACKUP_NOTIFICATION_ADDRESS=null
BACKUP_ENV=true
ALLOW_BACKUP_DELETE=false
ALLOW_DATA_PURGE=false
# --------------------------------------------
# OPTIONAL: SESSION SETTINGS
# --------------------------------------------
SESSION_DRIVER=file
SESSION_LIFETIME=12000
EXPIRE_ON_CLOSE=false
ENCRYPT=false
@@ -78,6 +90,8 @@ COOKIE_NAME=snipeit_session
COOKIE_DOMAIN=null
SECURE_COOKIES=false
API_TOKEN_EXPIRATION_YEARS=15
BS_TABLE_STORAGE=cookieStorage
BS_TABLE_DEEPLINK=true
# --------------------------------------------
# OPTIONAL: SECURITY HEADER SETTINGS
@@ -86,6 +100,7 @@ APP_TRUSTED_PROXIES=192.168.1.1,10.0.0.1
ALLOW_IFRAMING=false
REFERRER_POLICY=same-origin
ENABLE_CSP=false
ADDITIONAL_CSP_URLS=null
CORS_ALLOWED_ORIGINS=null
ENABLE_HSTS=false
@@ -93,7 +108,6 @@ ENABLE_HSTS=false
# OPTIONAL: CACHE SETTINGS
# --------------------------------------------
CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_DRIVER=sync
CACHE_PREFIX=snipeit
@@ -130,25 +144,57 @@ PRIVATE_AWS_BUCKET=null
PRIVATE_AWS_URL=null
PRIVATE_AWS_BUCKET_ROOT=null
# --------------------------------------------
# OPTIONAL: AWS Settings
# --------------------------------------------
AWS_ACCESS_KEY_ID=null
AWS_SECRET_ACCESS_KEY=null
AWS_DEFAULT_REGION=null
# --------------------------------------------
# OPTIONAL: LOGIN THROTTLING
# --------------------------------------------
LOGIN_MAX_ATTEMPTS=5
LOGIN_LOCKOUT_DURATION=60
RESET_PASSWORD_LINK_EXPIRES=900
LOGIN_AUTOCOMPLETE=false
# --------------------------------------------
# OPTIONAL: FORGOTTEN PASSWORD SETTINGS
# --------------------------------------------
RESET_PASSWORD_LINK_EXPIRES=15
PASSWORD_CONFIRM_TIMEOUT=10800
PASSWORD_RESET_MAX_ATTEMPTS_PER_MIN=50
# --------------------------------------------
# OPTIONAL: MISC
# --------------------------------------------
APP_LOG=single
APP_LOG_MAX_FILES=10
LOG_CHANNEL=single
LOG_MAX_DAYS=10
APP_LOCKED=false
APP_CIPHER=AES-256-CBC
APP_FORCE_TLS=false
APP_ALLOW_INSECURE_HOSTS=false
GOOGLE_MAPS_API=
LDAP_MEM_LIM=500M
LDAP_TIME_LIM=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
# --------------------------------------------
# OPTIONAL: HASHING
# --------------------------------------------
HASHING_DRIVER='bcrypt'
BCRYPT_ROUNDS=10
ARGON_MEMORY=1024
ARGON_THREADS=2
ARGON_TIME=2
# --------------------------------------------
# OPTIONAL: SCIM
# --------------------------------------------
SCIM_TRACE=false
SCIM_STANDARDS_COMPLIANCE=false

View File

@@ -1,74 +0,0 @@
# --------------------------------------------
# REQUIRED: BASIC APP SETTINGS
# --------------------------------------------
APP_ENV=testing
APP_DEBUG=true
APP_KEY=base64:glJpcM7BYwWiBggp3SQ/+NlRkqsBQMaGEOjemXqJzOU=
APP_URL=http://localhost:8000
APP_TIMEZONE='US/Pacific'
APP_LOCALE=en
FILESYSTEM_DISK=local
# --------------------------------------------
# REQUIRED: DATABASE SETTINGS
# --------------------------------------------
DB_CONNECTION=sqlite_testing
DB_HOST=localhost
DB_DATABASE=testing.sqlite
DB_USERNAME=null
DB_PASSWORD=null
# --------------------------------------------
# REQUIRED: OUTGOING MAIL SERVER SETTINGS
# --------------------------------------------
MAIL_DRIVER=log
MAIL_HOST=email-smtp.us-west-2.amazonaws.com
MAIL_PORT=587
MAIL_USERNAME=YOURUSERNAME
MAIL_PASSWORD=YOURPASSWORD
MAIL_ENCRYPTION=null
MAIL_FROM_ADDR=you@example.com
MAIL_FROM_NAME=Snipe-IT
# --------------------------------------------
# REQUIRED: IMAGE LIBRARY
# This should be gd or imagick
# --------------------------------------------
IMAGE_LIB=gd
# --------------------------------------------
# OPTIONAL: AWS S3 SETTINGS
# --------------------------------------------
AWS_SECRET_ACCESS_KEY=null
AWS_ACCESS_KEY_ID=null
AWS_DEFAULT_REGION=null
AWS_BUCKET=null
AWS_BUCKET_ROOT=null
AWS_URL=null
# --------------------------------------------
# OPTIONAL: CACHE SETTINGS
# --------------------------------------------
CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_DRIVER=sync
# --------------------------------------------
# OPTIONAL: SESSION SETTINGS
# --------------------------------------------
SESSION_LIFETIME=12000
EXPIRE_ON_CLOSE=false
ENCRYPT=false
COOKIE_NAME=snipeittest_session
COOKIE_DOMAIN=null
SECURE_COOKIES=false
# --------------------------------------------
# OPTIONAL: APP LOG FORMAT
# --------------------------------------------
APP_LOG=single
APP_LOG_LEVEL=debug

View File

@@ -1,34 +1,29 @@
# --------------------------------------------
# REQUIRED: BASIC APP SETTINGS
# --------------------------------------------
APP_ENV=testing-ci
APP_ENV='testing-ci'
APP_DEBUG=false
APP_KEY=ChangeMe
APP_URL=http://localhost:8000
APP_KEY='base64:glJpcM7BYwWiBggp3SQ/+NlRkqsBQMaGEOjemXqJzOU='
APP_URL='http://localhost:8000'
APP_TIMEZONE='US/Pacific'
APP_LOCALE=en
APP_LOCALE='en-US'
FILESYSTEM_DISK=local
# --------------------------------------------
# REQUIRED: DATABASE SETTINGS
# --------------------------------------------
DB_CONNECTION=mysql
DB_CONNECTION=sqlite
DB_HOST=localhost
DB_DATABASE=snipeit_unit
DB_PORT=3306
DB_DATABASE='sqlite_testing'
DB_USERNAME=root
DB_PASSWORD=null
# --------------------------------------------
# REQUIRED: OUTGOING MAIL SERVER SETTINGS
# --------------------------------------------
MAIL_DRIVER=log
MAIL_HOST=email-smtp.us-west-2.amazonaws.com
MAIL_PORT=587
MAIL_USERNAME=YOURUSERNAME
MAIL_PASSWORD=YOURPASSWORD
MAIL_ENCRYPTION=null
MAIL_FROM_ADDR=you@example.com
MAIL_FROM_NAME=Snipe-IT
MAIL_MAILER=log
# --------------------------------------------
# REQUIRED: IMAGE LIBRARY
@@ -37,37 +32,7 @@ MAIL_FROM_NAME=Snipe-IT
IMAGE_LIB=gd
# --------------------------------------------
# OPTIONAL: AWS S3 SETTINGS
# --------------------------------------------
AWS_SECRET_ACCESS_KEY=null
AWS_ACCESS_KEY_ID=null
AWS_DEFAULT_REGION=null
AWS_BUCKET=null
AWS_BUCKET_ROOT=null
AWS_URL=null
# --------------------------------------------
# OPTIONAL: CACHE SETTINGS
# --------------------------------------------
CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_DRIVER=sync
# --------------------------------------------
# OPTIONAL: SESSION SETTINGS
# --------------------------------------------
SESSION_LIFETIME=12000
EXPIRE_ON_CLOSE=false
ENCRYPT=false
COOKIE_NAME=snipeittest_session
COOKIE_DOMAIN=null
SECURE_COOKIES=false
# --------------------------------------------
# OPTIONAL: APP LOG FORMAT
# --------------------------------------------
APP_LOG=single
LOG_CHANNEL=single

19
.env.testing.example Normal file
View File

@@ -0,0 +1,19 @@
# --------------------------------------------
# REQUIRED: BASIC APP SETTINGS
# --------------------------------------------
APP_ENV=testing
APP_DEBUG=true
APP_KEY=base64:glJpcM7BYwWiBggp3SQ/+NlRkqsBQMaGEOjemXqJzOU=
APP_URL=http://localhost:8000
APP_TIMEZONE='UTC'
APP_LOCALE='en-US'
# --------------------------------------------
# REQUIRED: DATABASE SETTINGS
# --------------------------------------------
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=null
DB_USERNAME=null
DB_PASSWORD=null

View File

@@ -4,6 +4,7 @@ APP_URL=http://snipe-it.localapp
DB_CONNECTION=mysql
DB_DEFAULT=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=snipeittests
DB_USERNAME=snipeit
DB_PASSWORD=snipe
@@ -17,6 +18,6 @@ APP_KEY=base64:tu9NRh/a6+dCXBDGvg0Gv/0TcABnFsbT4AKxrr8mwQo=
LOGIN_MAX_ATTEMPTS=1000000
LOGIN_LOCKOUT_DURATION=100000000
MAIL_DRIVER=log
MAIL_MAILER=log
MAIL_FROM_ADDR=you@example.com
MAIL_FROM_NAME=Snipe-IT

View File

@@ -4,6 +4,7 @@ APP_URL=http://snipe-it.localapp
DB_CONNECTION=sqlite_testing
DB_DEFAULT=sqlite_testing
DB_HOST=localhost
DB_PORT=3306
APP_KEY=base64:tu9NRh/a6+dCXBDGvg0Gv/0TcABnFsbT4AKxrr8mwQo=
@@ -14,6 +15,6 @@ APP_KEY=base64:tu9NRh/a6+dCXBDGvg0Gv/0TcABnFsbT4AKxrr8mwQo=
LOGIN_MAX_ATTEMPTS=1000000
LOGIN_LOCKOUT_DURATION=100000000
MAIL_DRIVER=log
MAIL_MAILER=log
MAIL_FROM_ADDR=you@example.com
MAIL_FROM_NAME=Snipe-IT

2
.github/CODEOWNERS vendored
View File

@@ -15,8 +15,8 @@
# *.js @octocat @github/js
app/Importer/* @dmeltzer
app/Http/Controllers/CustomFields* @uberbrady
app/Http/Controllers/Api/CustomFields* @uberbrady
resources/views/custom_fields/* @uberbrady
docker/* @uberbrady
app/Providers/SamlServiceProvider.php @uberbrady

View File

@@ -1,42 +1,25 @@
name: Feature Request
description: Suggest an idea for this project
body:
- 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: textarea
attributes:
label: Is your feature request related to a problem? Please describe. A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
validations:
required: true
- type: textarea
attributes:
label: Describe the solution you'd like A clear and concise description of what you want to happen.
validations:
required: true
- type: textarea
attributes:
label: Describe alternatives you've considered A clear and concise description of any alternative solutions or features you've considered.
- type: textarea
attributes:
label: Additional context Add any other context or screenshots about the feature request here.
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.

View File

@@ -1,4 +1,22 @@
frontend: ["*.js", "*.css", "*.vue", "*.scss", "*.less", "*.blade.*"]
backend: ["/app", "*.php"]
legal: ["LICENSE*", "NOTICES*"]
frontend: ["*.js", "*.css", "*.vue", "*.scss", "*.less", "*.blade.*", "resources/views/livewire/*"]
skins: ["*.js", "*.css", "*.scss", "*.less"]
css: ["*.css","*.scss", "*.less"]
javascript: ["*.js", "package.json", "package.lock"]
backend: ["/app/*", "composer.json", "composer.lock"]
translations: ["/resources/lang"]
livewire: ["/app/Http/Livewire/*", "resources/views/livewire/*"]
backups: ["*backup*"]
restore: ["*restore*"]
saml: ["*saml*"]
scim: ["*scim*"]
custom fields: ["*fields*", "*fieldsets*"]
dependencies: ["composer.json", "composer.lock", "package.json", "package.lock"]
consumables: ["*consumables*"]
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"]
docker: ["*docker/*", "Dockerfile", "Dockerfile.alpine", "Dockerfile.fpm-alpine", ".dockerignore", ".env.docker"]
tests: ["/tests/*", "/database/factories/*", "/stubs"]
config: .github

7
.github/dependabot.yml vendored Normal file
View File

@@ -0,0 +1,7 @@
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
target-branch: "develop"
schedule:
interval: "weekly"

39
.github/workflows/SA-codeql.yml vendored Normal file
View File

@@ -0,0 +1,39 @@
# This workflow checks out code, performs a CodeQL analysis (for JavaScript) and integrates the results
# with the GitHub Advanced Security code scanning feature.
# More information: https://codeql.github.com/
name: CodeQL Security Scan
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
# schedule:
# - cron: '15 17 * * 1'
jobs:
analyze:
name: CodeQL Security Scan
runs-on: ubuntu-latest
permissions:
actions: read
contents: read
security-events: write
strategy:
fail-fast: false
matrix:
language: [ 'javascript' ]
steps:
- name: Checkout repository
uses: actions/checkout@v4
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v3
with:
languages: ${{ matrix.language }}
- name: Autobuild
uses: github/codeql-action/autobuild@v3
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3

View File

@@ -17,18 +17,26 @@ on:
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@v2
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@1.1.0
uses: codacy/codacy-analysis-cli-action@v4.4.1
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
@@ -44,6 +52,6 @@ jobs:
# Upload the SARIF file generated in the previous step
- name: Upload SARIF results file
uses: github/codeql-action/upload-sarif@v1
uses: github/codeql-action/upload-sarif@v3
with:
sarif_file: results.sarif

21
.github/workflows/crowdin-upload.yml vendored Normal file
View File

@@ -0,0 +1,21 @@
name: Crowdin Action
on:
push:
branches: [ develop ]
jobs:
upload-sources-to-crowdin:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Crowdin push
uses: crowdin/github-action@v2
with:
upload_sources: true
upload_translations: false
download_translations: false
project_id: ${{ secrets.CROWDIN_PROJECT_ID }}
token: ${{ secrets.CROWDIN_PERSONAL_TOKEN }}

View File

@@ -15,6 +15,9 @@ on:
pull_request:
permissions:
contents: read
jobs:
docker:
# Ensure this job never runs on forked repos. It's only executed for 'snipe/snipe-it'
@@ -29,6 +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
# Define default tag "flavor" for docker/metadata-action per
# https://github.com/docker/metadata-action#flavor-input
# We turn off 'latest' tag by default.
@@ -38,17 +42,17 @@ jobs:
steps:
# https://github.com/actions/checkout
- name: Checkout codebase
uses: actions/checkout@v2
uses: actions/checkout@v4
# https://github.com/docker/setup-buildx-action
- name: Setup Docker Buildx
uses: docker/setup-buildx-action@v1
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@v1
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_ACCESS_TOKEN }}
@@ -60,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@v3
uses: docker/metadata-action@v5
with:
images: snipe/snipe-it
tags: ${{ env.IMAGE_TAGS }}
@@ -69,11 +73,11 @@ jobs:
# https://github.com/docker/build-push-action
- name: Build and push 'snipe-it' image
id: docker_build
uses: docker/build-push-action@v2
uses: docker/build-push-action@v6
with:
context: .
file: ./Dockerfile.alpine
platforms: linux/amd64
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' }}

View File

@@ -15,6 +15,9 @@ on:
pull_request:
permissions:
contents: read
jobs:
docker:
# Ensure this job never runs on forked repos. It's only executed for 'snipe/snipe-it'
@@ -29,6 +32,7 @@ jobs:
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.
@@ -38,17 +42,17 @@ jobs:
steps:
# https://github.com/actions/checkout
- name: Checkout codebase
uses: actions/checkout@v2
uses: actions/checkout@v4
# https://github.com/docker/setup-buildx-action
- name: Setup Docker Buildx
uses: docker/setup-buildx-action@v1
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@v1
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_ACCESS_TOKEN }}
@@ -60,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@v3
uses: docker/metadata-action@v5
with:
images: snipe/snipe-it
tags: ${{ env.IMAGE_TAGS }}
@@ -69,11 +73,11 @@ jobs:
# https://github.com/docker/build-push-action
- name: Build and push 'snipe-it' image
id: docker_build
uses: docker/build-push-action@v2
uses: docker/build-push-action@v6
with:
context: .
file: ./Dockerfile
platforms: linux/amd64
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' }}

View File

@@ -0,0 +1,22 @@
name: Update Docker Hub Description
on:
push:
branches:
- master
- develop
paths:
- README.md
- .github/workflows/dockerhub-description.yml
jobs:
dockerHubDescription:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Docker Hub Description
uses: grokability/dockerhub-description@7ea9d275c7cdbe2b676a093a0308c50665e3b8b4
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_ACCESS_TOKEN }}
repository: snipe/snipe-it
readme-filepath: ./README.md

79
.github/workflows/tests-mysql.yml vendored Normal file
View File

@@ -0,0 +1,79 @@
name: Tests in MySQL
on:
push:
branches:
- master
- develop
pull_request:
jobs:
tests:
runs-on: ubuntu-latest
services:
mysql:
image: mysql:5.7
env:
MYSQL_ALLOW_EMPTY_PASSWORD: yes
MYSQL_DATABASE: snipeit
ports:
- 33306:3306
options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3
strategy:
fail-fast: false
matrix:
php-version:
- "8.1"
- "8.2"
- "8.3"
name: PHP ${{ matrix.php-version }}
steps:
- uses: shivammathur/setup-php@v2
with:
php-version: "${{ matrix.php-version }}"
coverage: none
- uses: actions/checkout@v4
- name: Get Composer Cache Directory
id: composer-cache
run: |
echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
- uses: actions/cache@v4
with:
path: ${{ steps.composer-cache.outputs.dir }}
key: ${{ runner.os }}-${{ matrix.php-version }}-composer-${{ hashFiles('**/composer.lock') }}
restore-keys: |
${{ runner.os }}-composer-
- name: Copy .env
run: |
cp -v .env.testing.example .env
cp -v .env.testing.example .env.testing
- name: Install Dependencies
run: composer install -q --no-ansi --no-interaction --no-scripts --no-progress --prefer-dist
- name: Setup Laravel
env:
DB_CONNECTION: mysql
DB_DATABASE: snipeit
DB_PORT: ${{ job.services.mysql.ports[3306] }}
DB_USERNAME: root
run: |
php artisan key:generate
php artisan migrate --force
php artisan passport:install
chmod -R 777 storage bootstrap/cache
- name: Execute tests (Unit and Feature tests) via PHPUnit
env:
DB_CONNECTION: mysql
DB_DATABASE: snipeit
DB_PORT: ${{ job.services.mysql.ports[3306] }}
DB_USERNAME: root
run: php artisan test --parallel

75
.github/workflows/tests-postgres.yml vendored Normal file
View File

@@ -0,0 +1,75 @@
name: Tests in Postgres
on: workflow_dispatch
jobs:
tests:
runs-on: ubuntu-latest
services:
postgresql:
image: postgres
env:
POSTGRES_DB: snipeit
POSTGRES_USER: snipeit
POSTGRES_PASSWORD: password
ports:
- 5432:5432
options: --health-cmd=pg_isready --health-interval=10s --health-timeout=5s --health-retries=3
strategy:
fail-fast: false
matrix:
php-version:
- "8.2"
name: PHP ${{ matrix.php-version }}
steps:
- uses: shivammathur/setup-php@v2
with:
php-version: "${{ matrix.php-version }}"
coverage: none
- uses: actions/checkout@v4
- name: Get Composer Cache Directory
id: composer-cache
run: |
echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
- uses: actions/cache@v4
with:
path: ${{ steps.composer-cache.outputs.dir }}
key: ${{ runner.os }}-${{ matrix.php-version }}-composer-${{ hashFiles('**/composer.lock') }}
restore-keys: |
${{ runner.os }}-composer-
- name: Copy .env
run: |
cp -v .env.testing.example .env
cp -v .env.testing.example .env.testing
- name: Install Dependencies
run: composer install -q --no-ansi --no-interaction --no-scripts --no-progress --prefer-dist
- name: Setup Laravel
env:
DB_CONNECTION: pgsql
DB_DATABASE: snipeit
DB_PORT: ${{ job.services.postgresql.ports[5432] }}
DB_USERNAME: snipeit
DB_PASSWORD: password
run: |
php artisan key:generate
php artisan migrate --force
php artisan passport:install
chmod -R 777 storage bootstrap/cache
- name: Execute tests (Unit and Feature tests) via PHPUnit
env:
DB_CONNECTION: pgsql
DB_DATABASE: snipeit
DB_PORT: ${{ job.services.postgresql.ports[5432] }}
DB_USERNAME: snipeit
DB_PASSWORD: password
run: php artisan test --parallel

61
.github/workflows/tests-sqlite.yml vendored Normal file
View File

@@ -0,0 +1,61 @@
name: Tests in SQLite
on:
push:
branches:
- master
- develop
pull_request:
jobs:
tests:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
php-version:
- "8.1.1"
name: PHP ${{ matrix.php-version }}
steps:
- uses: shivammathur/setup-php@v2
with:
php-version: "${{ matrix.php-version }}"
coverage: none
- uses: actions/checkout@v4
- name: Get Composer Cache Directory
id: composer-cache
run: |
echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
- uses: actions/cache@v4
with:
path: ${{ steps.composer-cache.outputs.dir }}
key: ${{ runner.os }}-${{ matrix.php-version }}-composer-${{ hashFiles('**/composer.lock') }}
restore-keys: |
${{ runner.os }}-composer-
- name: Copy .env
run: |
cp -v .env.testing.example .env
cp -v .env.testing.example .env.testing
- name: Install Dependencies
run: composer install -q --no-ansi --no-interaction --no-scripts --no-progress --prefer-dist
- name: Generate key
run: php artisan key:generate
- name: Setup Passport
run: php artisan passport:keys
- name: Directory Permissions
run: chmod -R 777 storage bootstrap/cache
- name: Execute tests (Unit and Feature tests) via PHPUnit
env:
DB_CONNECTION: sqlite_testing
run: php artisan test --parallel

2
.gitignore vendored
View File

@@ -1,6 +1,8 @@
.couscous
.DS_Store
.env
.env.testing
phpstan.neon
.idea
/bin/
/bootstrap/compiled.php

2
.nvmrc
View File

@@ -1 +1 @@
v10.15.1
v18.16.0

View File

@@ -0,0 +1,10 @@
{
"DOC1": "This file is meant to be pulled from the current HEAD of the desired branch, NOT referenced locally",
"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"
}

461
CONTRIBUTORS.md Normal file
View File

@@ -0,0 +1,461 @@
Thanks goes to all of these wonderful people ([emoji key](https://github.com/kentcdodds/all-contributors#emoji-key)) who have helped Snipe-IT get this far:
<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
<!-- prettier-ignore-start -->
<!-- markdownlint-disable -->
<table>
<tbody>
<tr>
<td align="center" valign="top" width="14.28%"><a href="http://www.snipe.net"><img src="https://avatars3.githubusercontent.com/u/197404?v=3?s=110" width="110px;" alt="snipe"/><br /><sub><b>snipe</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=snipe" title="Code">💻</a> <a href="#infra-snipe" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="https://github.com/snipe/snipe-it/commits?author=snipe" title="Documentation">📖</a> <a href="https://github.com/snipe/snipe-it/commits?author=snipe" title="Tests">⚠️</a> <a href="https://github.com/snipe/snipe-it/issues?q=author%3Asnipe" title="Bug reports">🐛</a> <a href="#design-snipe" title="Design">🎨</a> <a href="https://github.com/snipe/snipe-it/pulls?q=is%3Apr+reviewed-by%3Asnipe" title="Reviewed Pull Requests">👀</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://www.uberbrady.com"><img src="https://avatars0.githubusercontent.com/u/36335?v=3?s=110" width="110px;" alt="Brady Wetherington"/><br /><sub><b>Brady Wetherington</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=uberbrady" title="Code">💻</a> <a href="https://github.com/snipe/snipe-it/commits?author=uberbrady" title="Documentation">📖</a> <a href="#infra-uberbrady" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="https://github.com/snipe/snipe-it/pulls?q=is%3Apr+reviewed-by%3Auberbrady" title="Reviewed Pull Requests">👀</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/dmeltzer"><img src="https://avatars0.githubusercontent.com/u/3803132?v=3?s=110" width="110px;" alt="Daniel Meltzer"/><br /><sub><b>Daniel Meltzer</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=dmeltzer" title="Code">💻</a> <a href="https://github.com/snipe/snipe-it/commits?author=dmeltzer" title="Tests">⚠️</a> <a href="https://github.com/snipe/snipe-it/commits?author=dmeltzer" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://www.tuckertechonline.com"><img src="https://avatars0.githubusercontent.com/u/1609106?v=3?s=110" width="110px;" alt="Michael T"/><br /><sub><b>Michael T</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=mtucker6784" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/madd15"><img src="https://avatars2.githubusercontent.com/u/3274937?v=3?s=110" width="110px;" alt="madd15"/><br /><sub><b>madd15</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=madd15" title="Documentation">📖</a> <a href="#question-madd15" title="Answering Questions">💬</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/vsposato"><img src="https://avatars2.githubusercontent.com/u/894126?v=3?s=110" width="110px;" alt="Vincent Sposato"/><br /><sub><b>Vincent Sposato</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=vsposato" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/vjandrea"><img src="https://avatars0.githubusercontent.com/u/1639757?v=3?s=110" width="110px;" alt="Andrea Bergamasco"/><br /><sub><b>Andrea Bergamasco</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=vjandrea" title="Code">💻</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/kpawelski"><img src="https://avatars0.githubusercontent.com/u/10640152?v=3?s=110" width="110px;" alt="Karol"/><br /><sub><b>Karol</b></sub></a><br /><a href="#translation-kpawelski" title="Translation">🌍</a> <a href="https://github.com/snipe/snipe-it/commits?author=kpawelski" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://blog.morph027.de/"><img src="https://avatars3.githubusercontent.com/u/600106?v=3?s=110" width="110px;" alt="morph027"/><br /><sub><b>morph027</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=morph027" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/fvleminckx"><img src="https://avatars3.githubusercontent.com/u/22935755?v=3?s=110" width="110px;" alt="fvleminckx"/><br /><sub><b>fvleminckx</b></sub></a><br /><a href="#infra-fvleminckx" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/itsupportcmsukorg"><img src="https://avatars2.githubusercontent.com/u/15633547?v=3?s=110" width="110px;" alt="itsupportcmsukorg"/><br /><sub><b>itsupportcmsukorg</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=itsupportcmsukorg" title="Code">💻</a> <a href="https://github.com/snipe/snipe-it/issues?q=author%3Aitsupportcmsukorg" title="Bug reports">🐛</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://override.io"><img src="https://avatars3.githubusercontent.com/u/12373799?v=3?s=110" width="110px;" alt="Frank"/><br /><sub><b>Frank</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=base-zero" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/ghost"><img src="https://avatars0.githubusercontent.com/u/10137?v=3?s=110" width="110px;" alt="Deleted user"/><br /><sub><b>Deleted user</b></sub></a><br /><a href="#translation-ghost" title="Translation">🌍</a> <a href="https://github.com/snipe/snipe-it/commits?author=ghost" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/tiagom62"><img src="https://avatars1.githubusercontent.com/u/10802313?v=3?s=110" width="110px;" alt="tiagom62"/><br /><sub><b>tiagom62</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=tiagom62" title="Code">💻</a> <a href="#infra-tiagom62" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/rystaf"><img src="https://avatars3.githubusercontent.com/u/2389047?v=3?s=110" width="110px;" alt="Ryan Stafford"/><br /><sub><b>Ryan Stafford</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=rystaf" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/ehanlon"><img src="https://avatars2.githubusercontent.com/u/10345935?v=3?s=110" width="110px;" alt="Eammon Hanlon"/><br /><sub><b>Eammon Hanlon</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=ehanlon" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/zjean"><img src="https://avatars0.githubusercontent.com/u/441924?v=3?s=110" width="110px;" alt="zjean"/><br /><sub><b>zjean</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=zjean" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://www.frei.media"><img src="https://avatars0.githubusercontent.com/u/12660103?v=3?s=110" width="110px;" alt="Matthias Frei"/><br /><sub><b>Matthias Frei</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=FREImedia" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/opsydev"><img src="https://avatars0.githubusercontent.com/u/3767518?v=3?s=110" width="110px;" alt="opsydev"/><br /><sub><b>opsydev</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=opsydev" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://www.ddreier.com"><img src="https://avatars1.githubusercontent.com/u/82290?v=3?s=110" width="110px;" alt="Daniel Dreier"/><br /><sub><b>Daniel Dreier</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=ddreier" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://rassie.org"><img src="https://avatars0.githubusercontent.com/u/23448?v=3?s=110" width="110px;" alt="Nikolai Prokoschenko"/><br /><sub><b>Nikolai Prokoschenko</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=rassie" title="Code">💻</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/YetAnotherCodeMonkey"><img src="https://avatars0.githubusercontent.com/u/13452757?v=3?s=110" width="110px;" alt="Drew"/><br /><sub><b>Drew</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=YetAnotherCodeMonkey" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/merid14"><img src="https://avatars0.githubusercontent.com/u/1342320?v=3?s=110" width="110px;" alt="Walter"/><br /><sub><b>Walter</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=merid14" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/balous"><img src="https://avatars3.githubusercontent.com/u/11254614?v=3?s=110" width="110px;" alt="Petr Baloun"/><br /><sub><b>Petr Baloun</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=balous" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/reidblomquist"><img src="https://avatars0.githubusercontent.com/u/6117660?v=3?s=110" width="110px;" alt="reidblomquist"/><br /><sub><b>reidblomquist</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=reidblomquist" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/mathieuk"><img src="https://avatars0.githubusercontent.com/u/539914?v=3?s=110" width="110px;" alt="Mathieu Kooiman"/><br /><sub><b>Mathieu Kooiman</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=mathieuk" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/csayre"><img src="https://avatars3.githubusercontent.com/u/6606421?v=3?s=110" width="110px;" alt="csayre"/><br /><sub><b>csayre</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=csayre" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/adamdunson"><img src="https://avatars1.githubusercontent.com/u/768488?v=3?s=110" width="110px;" alt="Adam Dunson"/><br /><sub><b>Adam Dunson</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=adamdunson" title="Code">💻</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/thehereward"><img src="https://avatars0.githubusercontent.com/u/5547470?v=3?s=110" width="110px;" alt="Hereward"/><br /><sub><b>Hereward</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=thehereward" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/swoopdk"><img src="https://avatars0.githubusercontent.com/u/5802977?v=3?s=110" width="110px;" alt="swoopdk"/><br /><sub><b>swoopdk</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=swoopdk" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://linkedin.com/in/ahimta"><img src="https://avatars1.githubusercontent.com/u/3470403?v=3?s=110" width="110px;" alt="Abdullah Alansari"/><br /><sub><b>Abdullah Alansari</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=Ahimta" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/MicaelRodrigues"><img src="https://avatars0.githubusercontent.com/u/796443?v=3?s=110" width="110px;" alt="Micael Rodrigues"/><br /><sub><b>Micael Rodrigues</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=MicaelRodrigues" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://macadmincorner.com"><img src="https://avatars0.githubusercontent.com/u/614564?v=3?s=110" width="110px;" alt="Patrick Gallagher"/><br /><sub><b>Patrick Gallagher</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=patgmac" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Miliamber"><img src="https://avatars3.githubusercontent.com/u/7165922?v=3?s=110" width="110px;" alt="Miliamber"/><br /><sub><b>Miliamber</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=Miliamber" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/hawk554"><img src="https://avatars3.githubusercontent.com/u/861766?v=3?s=110" width="110px;" alt="hawk554"/><br /><sub><b>hawk554</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=hawk554" title="Code">💻</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="http://jbirdkerr.net"><img src="https://avatars1.githubusercontent.com/u/1695622?v=3?s=110" width="110px;" alt="Justin Kerr"/><br /><sub><b>Justin Kerr</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=jbirdkerr" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://www.irasnyder.com/devel/"><img src="https://avatars3.githubusercontent.com/u/11426176?v=3?s=110" width="110px;" alt="Ira W. Snyder"/><br /><sub><b>Ira W. Snyder</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=irasnyd" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/aalaily"><img src="https://avatars2.githubusercontent.com/u/2475759?v=3?s=110" width="110px;" alt="Aladin Alaily"/><br /><sub><b>Aladin Alaily</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=aalaily" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/kobie-chasehansen"><img src="https://avatars0.githubusercontent.com/u/10247644?v=3?s=110" width="110px;" alt="Chase Hansen"/><br /><sub><b>Chase Hansen</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=kobie-chasehansen" title="Code">💻</a> <a href="#question-kobie-chasehansen" title="Answering Questions">💬</a> <a href="https://github.com/snipe/snipe-it/issues?q=author%3Akobie-chasehansen" title="Bug reports">🐛</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/IDM-Helpdesk"><img src="https://avatars2.githubusercontent.com/u/13545400?v=3?s=110" width="110px;" alt="IDM Helpdesk"/><br /><sub><b>IDM Helpdesk</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=IDM-Helpdesk" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://balticer.de"><img src="https://avatars2.githubusercontent.com/u/614439?v=3?s=110" width="110px;" alt="Kai"/><br /><sub><b>Kai</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=balticer" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://www.michaeldaniels.me"><img src="https://avatars1.githubusercontent.com/u/8762511?v=3?s=110" width="110px;" alt="Michael Daniels"/><br /><sub><b>Michael Daniels</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=mdaniels5757" title="Code">💻</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="http://tomcastleman.me"><img src="https://avatars3.githubusercontent.com/u/1532660?v=3?s=110" width="110px;" alt="Tom Castleman"/><br /><sub><b>Tom Castleman</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=tomcastleman" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/DanielNemanic"><img src="https://avatars3.githubusercontent.com/u/10723243?v=3?s=110" width="110px;" alt="Daniel Nemanic"/><br /><sub><b>Daniel Nemanic</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=DanielNemanic" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/southwolf"><img src="https://avatars0.githubusercontent.com/u/150648?v=3?s=110" width="110px;" alt="SouthWolf"/><br /><sub><b>SouthWolf</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=southwolf" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/ivarne"><img src="https://avatars2.githubusercontent.com/u/131616?v=3?s=110" width="110px;" alt="Ivar Nesje"/><br /><sub><b>Ivar Nesje</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=ivarne" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://www.j0k3r.net"><img src="https://avatars1.githubusercontent.com/u/62333?v=3?s=110" width="110px;" alt="Jérémy Benoist"/><br /><sub><b>Jérémy Benoist</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=j0k3r" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/cleathley"><img src="https://avatars2.githubusercontent.com/u/724344?v=3?s=110" width="110px;" alt="Chris Leathley"/><br /><sub><b>Chris Leathley</b></sub></a><br /><a href="#infra-cleathley" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/splaer"><img src="https://avatars0.githubusercontent.com/u/972498?v=3?s=110" width="110px;" alt="splaer"/><br /><sub><b>splaer</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/issues?q=author%3Asplaer" title="Bug reports">🐛</a> <a href="https://github.com/snipe/snipe-it/commits?author=splaer" title="Code">💻</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="http://www.joeferguson.me"><img src="https://avatars1.githubusercontent.com/u/967362?v=3?s=110" width="110px;" alt="Joe Ferguson"/><br /><sub><b>Joe Ferguson</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=svpernova09" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/diwanicki"><img src="https://avatars3.githubusercontent.com/u/6108682?v=3?s=110" width="110px;" alt="diwanicki"/><br /><sub><b>diwanicki</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=diwanicki" title="Code">💻</a> <a href="https://github.com/snipe/snipe-it/commits?author=diwanicki" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/pakkua80"><img src="https://avatars3.githubusercontent.com/u/2527115?v=3?s=110" width="110px;" alt="Lee Thoong Ching"/><br /><sub><b>Lee Thoong Ching</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=pakkua80" title="Documentation">📖</a> <a href="https://github.com/snipe/snipe-it/commits?author=pakkua80" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://shu.io"><img src="https://avatars1.githubusercontent.com/u/461491?v=3?s=110" width="110px;" alt="Marek Šuppa"/><br /><sub><b>Marek Šuppa</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=mrshu" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/mizar1616"><img src="https://avatars1.githubusercontent.com/u/8693762?v=3?s=110" width="110px;" alt="Juan J. Martinez"/><br /><sub><b>Juan J. Martinez</b></sub></a><br /><a href="#translation-mizar1616" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/rrdial"><img src="https://avatars1.githubusercontent.com/u/1458388?v=3?s=110" width="110px;" alt="R Ryan Dial"/><br /><sub><b>R Ryan Dial</b></sub></a><br /><a href="#translation-rrdial" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/burlito"><img src="https://avatars2.githubusercontent.com/u/2871745?v=3?s=110" width="110px;" alt="Andrej Manduch"/><br /><sub><b>Andrej Manduch</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=burlito" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="http://www.cordeos.com"><img src="https://avatars0.githubusercontent.com/u/8341172?v=3?s=110" width="110px;" alt="Jay Richards"/><br /><sub><b>Jay Richards</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=technogenus" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://necurity.co.uk"><img src="https://avatars2.githubusercontent.com/u/7295127?v=3?s=110" width="110px;" alt="Alexander Innes"/><br /><sub><b>Alexander Innes</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=leostat" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://buzzedword.codes"><img src="https://avatars2.githubusercontent.com/u/334485?v=3?s=110" width="110px;" alt="Danny Garcia"/><br /><sub><b>Danny Garcia</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=buzzedword" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/archpoint"><img src="https://avatars2.githubusercontent.com/u/366855?v=3?s=110" width="110px;" alt="archpoint"/><br /><sub><b>archpoint</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=archpoint" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://www.jakemcgraw.com"><img src="https://avatars1.githubusercontent.com/u/67991?v=3?s=110" width="110px;" alt="Jake McGraw"/><br /><sub><b>Jake McGraw</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=jakemcgraw" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/FleischKarussel"><img src="https://avatars1.githubusercontent.com/u/1714374?v=3?s=110" width="110px;" alt="FleischKarussel"/><br /><sub><b>FleischKarussel</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=FleischKarussel" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/feeva"><img src="https://avatars3.githubusercontent.com/u/319644?v=3?s=110" width="110px;" alt="Dylan Yi"/><br /><sub><b>Dylan Yi</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=feeva" title="Code">💻</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="http://FlashingCursor.com"><img src="https://avatars2.githubusercontent.com/u/857740?v=3?s=110" width="110px;" alt="Gil Rutkowski"/><br /><sub><b>Gil Rutkowski</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=flashingcursor" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://www.desmondmorris.com"><img src="https://avatars3.githubusercontent.com/u/129360?v=3?s=110" width="110px;" alt="Desmond Morris"/><br /><sub><b>Desmond Morris</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=desmondmorris" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://peelman.us"><img src="https://avatars2.githubusercontent.com/u/52936?v=3?s=110" width="110px;" alt="Nick Peelman"/><br /><sub><b>Nick Peelman</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=peelman" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://abrahamvegh.com"><img src="https://avatars0.githubusercontent.com/u/53161?v=3?s=110" width="110px;" alt="Abraham Vegh"/><br /><sub><b>Abraham Vegh</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=abrahamvegh" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/rashivkp"><img src="https://avatars0.githubusercontent.com/u/2818680?v=3?s=110" width="110px;" alt="Mohamed Rashid"/><br /><sub><b>Mohamed Rashid</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=rashivkp" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://hinchk.github.io"><img src="https://avatars3.githubusercontent.com/u/1509456?v=3?s=110" width="110px;" alt="Kasey"/><br /><sub><b>Kasey</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=HinchK" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/BrettFagerlund"><img src="https://avatars2.githubusercontent.com/u/10522541?v=3?s=110" width="110px;" alt="Brett"/><br /><sub><b>Brett</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=BrettFagerlund" title="Tests">⚠️</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="http://jasonspriggs.com"><img src="https://avatars2.githubusercontent.com/u/16108587?v=3?s=110" width="110px;" alt="Jason Spriggs"/><br /><sub><b>Jason Spriggs</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=jasonspriggs" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://n8felton.wordpress.com"><img src="https://avatars2.githubusercontent.com/u/1134568?v=3?s=110" width="110px;" alt="Nate Felton"/><br /><sub><b>Nate Felton</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=n8felton" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://homepages.dcc.ufmg.br/~manassesferreira"><img src="https://avatars2.githubusercontent.com/u/14036694?v=3?s=110" width="110px;" alt="Manasses Ferreira"/><br /><sub><b>Manasses Ferreira</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=manassesferreira" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/steveelwood"><img src="https://avatars0.githubusercontent.com/u/15913949?v=3?s=110" width="110px;" alt="Steve"/><br /><sub><b>Steve</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=steveelwood" title="Tests">⚠️</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://twitter.com/matc"><img src="https://avatars1.githubusercontent.com/u/3361683?v=3?s=110" width="110px;" alt="matc"/><br /><sub><b>matc</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=matc" title="Tests">⚠️</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://www.davisracingteam.com"><img src="https://avatars3.githubusercontent.com/u/7405702?v=3?s=110" width="110px;" alt="Cole R. Davis"/><br /><sub><b>Cole R. Davis</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=VanillaNinjaD" title="Tests">⚠️</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/gibsonjoshua55"><img src="https://avatars2.githubusercontent.com/u/10167681?v=3?s=110" width="110px;" alt="gibsonjoshua55"/><br /><sub><b>gibsonjoshua55</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=gibsonjoshua55" title="Code">💻</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/zwerch"><img src="https://avatars2.githubusercontent.com/u/2809241?v=4?s=110" width="110px;" alt="Robin Temme"/><br /><sub><b>Robin Temme</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=zwerch" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/imanghafoori1"><img src="https://avatars0.githubusercontent.com/u/6961695?v=4?s=110" width="110px;" alt="Iman"/><br /><sub><b>Iman</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=imanghafoori1" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/richardhofman6"><img src="https://avatars1.githubusercontent.com/u/6551003?v=4?s=110" width="110px;" alt="Richard Hofman"/><br /><sub><b>Richard Hofman</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=richardhofman6" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/gizzmojr"><img src="https://avatars0.githubusercontent.com/u/3697569?v=4?s=110" width="110px;" alt="gizzmojr"/><br /><sub><b>gizzmojr</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=gizzmojr" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/imjennyli"><img src="https://avatars3.githubusercontent.com/u/404729?v=4?s=110" width="110px;" alt="Jenny Li"/><br /><sub><b>Jenny Li</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=imjennyli" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/GeoffYoung"><img src="https://avatars0.githubusercontent.com/u/869227?v=4?s=110" width="110px;" alt="Geoff Young"/><br /><sub><b>Geoff Young</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=GeoffYoung" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://www.elliotblackburn.com"><img src="https://avatars3.githubusercontent.com/u/1068477?v=4?s=110" width="110px;" alt="Elliot Blackburn"/><br /><sub><b>Elliot Blackburn</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=BlueHatbRit" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="http://andmemasin.eu"><img src="https://avatars1.githubusercontent.com/u/6357451?v=4?s=110" width="110px;" alt="Tõnis Ormisson"/><br /><sub><b>Tõnis Ormisson</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=TonisOrmisson" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://www.nicolai-essig.de"><img src="https://avatars0.githubusercontent.com/u/449411?v=4?s=110" width="110px;" alt="Nicolai Essig"/><br /><sub><b>Nicolai Essig</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=thakilla" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/techincolor"><img src="https://avatars1.githubusercontent.com/u/14809698?v=4?s=110" width="110px;" alt="Danielle"/><br /><sub><b>Danielle</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=techincolor" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/TheVakman"><img src="https://avatars1.githubusercontent.com/u/18545156?v=4?s=110" width="110px;" alt="Lawrence"/><br /><sub><b>Lawrence</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=TheVakman" title="Tests">⚠️</a> <a href="https://github.com/snipe/snipe-it/issues?q=author%3ATheVakman" title="Bug reports">🐛</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/uknzaeinozpas"><img src="https://avatars1.githubusercontent.com/u/22473767?v=4?s=110" width="110px;" alt="uknzaeinozpas"/><br /><sub><b>uknzaeinozpas</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=uknzaeinozpas" title="Tests">⚠️</a> <a href="https://github.com/snipe/snipe-it/commits?author=uknzaeinozpas" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Gelob"><img src="https://avatars3.githubusercontent.com/u/422752?v=4?s=110" width="110px;" alt="Ryan"/><br /><sub><b>Ryan</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=Gelob" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/vcordes79"><img src="https://avatars1.githubusercontent.com/u/10672546?v=4?s=110" width="110px;" alt="vcordes79"/><br /><sub><b>vcordes79</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=vcordes79" title="Code">💻</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/fordster78"><img src="https://avatars3.githubusercontent.com/u/27958330?v=4?s=110" width="110px;" alt="fordster78"/><br /><sub><b>fordster78</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=fordster78" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/CronKz"><img src="https://avatars0.githubusercontent.com/u/34064225?v=4?s=110" width="110px;" alt="CronKz"/><br /><sub><b>CronKz</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=CronKz" title="Code">💻</a> <a href="#translation-CronKz" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/tdb"><img src="https://avatars1.githubusercontent.com/u/585486?v=4?s=110" width="110px;" alt="Tim Bishop"/><br /><sub><b>Tim Bishop</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=tdb" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://www.seanmcilvenna.com"><img src="https://avatars2.githubusercontent.com/u/5384694?v=4?s=110" width="110px;" alt="Sean McIlvenna"/><br /><sub><b>Sean McIlvenna</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=seanmcilvenna" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/cepacs"><img src="https://avatars3.githubusercontent.com/u/36515590?v=4?s=110" width="110px;" alt="cepacs"/><br /><sub><b>cepacs</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/issues?q=author%3Acepacs" title="Bug reports">🐛</a> <a href="https://github.com/snipe/snipe-it/commits?author=cepacs" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/lea-mink"><img src="https://avatars2.githubusercontent.com/u/37537300?v=4?s=110" width="110px;" alt="lea-mink"/><br /><sub><b>lea-mink</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=lea-mink" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/hannahtinkler"><img src="https://avatars0.githubusercontent.com/u/7140719?v=4?s=110" width="110px;" alt="Hannah Tinkler"/><br /><sub><b>Hannah Tinkler</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=hannahtinkler" title="Code">💻</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/doekman"><img src="https://avatars1.githubusercontent.com/u/1086388?v=4?s=110" width="110px;" alt="Doeke Zanstra"/><br /><sub><b>Doeke Zanstra</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=doekman" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://www.sdhd.nl/"><img src="https://avatars1.githubusercontent.com/u/4325936?v=4?s=110" width="110px;" alt="Djamon Staal"/><br /><sub><b>Djamon Staal</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=SjamonDaal" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/EarlRamirez"><img src="https://avatars3.githubusercontent.com/u/12306859?v=4?s=110" width="110px;" alt="Earl Ramirez"/><br /><sub><b>Earl Ramirez</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=EarlRamirez" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/RichardRay"><img src="https://avatars2.githubusercontent.com/u/8671456?v=4?s=110" width="110px;" alt="Richard Ray Thomas"/><br /><sub><b>Richard Ray Thomas</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=RichardRay" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://www.taisun.io/"><img src="https://avatars3.githubusercontent.com/u/1852688?v=4?s=110" width="110px;" alt="Ryan Kuba"/><br /><sub><b>Ryan Kuba</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=thelamer" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/ParadoxGuitarist"><img src="https://avatars1.githubusercontent.com/u/6751928?v=4?s=110" width="110px;" alt="Brian Monroe"/><br /><sub><b>Brian Monroe</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=ParadoxGuitarist" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/plexorama"><img src="https://avatars1.githubusercontent.com/u/605167?v=4?s=110" width="110px;" alt="plexorama"/><br /><sub><b>plexorama</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=plexorama" title="Code">💻</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://tilldeeke.de"><img src="https://avatars2.githubusercontent.com/u/1795149?v=4?s=110" width="110px;" alt="Till Deeke"/><br /><sub><b>Till Deeke</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=tilldeeke" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/5quirrel"><img src="https://avatars0.githubusercontent.com/u/12634129?v=4?s=110" width="110px;" alt="5quirrel"/><br /><sub><b>5quirrel</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=5quirrel" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/jasonlshelton"><img src="https://avatars1.githubusercontent.com/u/13071957?v=4?s=110" width="110px;" alt="Jason"/><br /><sub><b>Jason</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=jasonlshelton" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/chemfy"><img src="https://avatars3.githubusercontent.com/u/7128321?v=4?s=110" width="110px;" alt="Antti"/><br /><sub><b>Antti</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=chemfy" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/DeusMaximus"><img src="https://avatars3.githubusercontent.com/u/10080364?v=4?s=110" width="110px;" alt="DeusMaximus"/><br /><sub><b>DeusMaximus</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=DeusMaximus" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/A-ROYAL"><img src="https://avatars2.githubusercontent.com/u/16384611?v=4?s=110" width="110px;" alt="a-royal"/><br /><sub><b>a-royal</b></sub></a><br /><a href="#translation-A-ROYAL" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/albertoaldrigo"><img src="https://avatars0.githubusercontent.com/u/5358208?v=4?s=110" width="110px;" alt="Alberto Aldrigo"/><br /><sub><b>Alberto Aldrigo</b></sub></a><br /><a href="#translation-albertoaldrigo" title="Translation">🌍</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="http://alex.stanev.org/blog"><img src="https://avatars0.githubusercontent.com/u/1412342?v=4?s=110" width="110px;" alt="Alex Stanev"/><br /><sub><b>Alex Stanev</b></sub></a><br /><a href="#translation-RealEnder" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://devel.itsolution2.de"><img src="https://avatars0.githubusercontent.com/u/177295?v=4?s=110" width="110px;" alt="Andreas Rehm"/><br /><sub><b>Andreas Rehm</b></sub></a><br /><a href="#translation-sirrus" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/xelan"><img src="https://avatars0.githubusercontent.com/u/5080535?v=4?s=110" width="110px;" alt="Andreas Erhard"/><br /><sub><b>Andreas Erhard</b></sub></a><br /><a href="#translation-xelan" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/angeldeejay"><img src="https://avatars2.githubusercontent.com/u/142350?v=4?s=110" width="110px;" alt="Andrés Vanegas Jiménez"/><br /><sub><b>Andrés Vanegas Jiménez</b></sub></a><br /><a href="#translation-angeldeejay" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/aschiavon91"><img src="https://avatars0.githubusercontent.com/u/3910403?v=4?s=110" width="110px;" alt="Antonio Schiavon"/><br /><sub><b>Antonio Schiavon</b></sub></a><br /><a href="#translation-aschiavon91" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/benunter"><img src="https://avatars0.githubusercontent.com/u/10464547?v=4?s=110" width="110px;" alt="benunter"/><br /><sub><b>benunter</b></sub></a><br /><a href="#translation-benunter" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://catweb24.pl"><img src="https://avatars1.githubusercontent.com/u/5038647?v=4?s=110" width="110px;" alt="Borys Żmuda"/><br /><sub><b>Borys Żmuda</b></sub></a><br /><a href="#translation-rudashi" title="Translation">🌍</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/chibacityblues"><img src="https://avatars0.githubusercontent.com/u/5539359?v=4?s=110" width="110px;" alt="chibacityblues"/><br /><sub><b>chibacityblues</b></sub></a><br /><a href="#translation-chibacityblues" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/cwlin0416"><img src="https://avatars1.githubusercontent.com/u/1954830?v=4?s=110" width="110px;" alt="Chien Wei Lin"/><br /><sub><b>Chien Wei Lin</b></sub></a><br /><a href="#translation-cwlin0416" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Againstreality"><img src="https://avatars3.githubusercontent.com/u/11700533?v=4?s=110" width="110px;" alt="Christian Schuster"/><br /><sub><b>Christian Schuster</b></sub></a><br /><a href="#translation-Againstreality" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://chriss.webhostid.com"><img src="https://avatars1.githubusercontent.com/u/4308704?v=4?s=110" width="110px;" alt="Christian Stefanus"/><br /><sub><b>Christian Stefanus</b></sub></a><br /><a href="#translation-kopi-item" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://wxcafe.net"><img src="https://avatars3.githubusercontent.com/u/3009327?v=4?s=110" width="110px;" alt="wxcafé"/><br /><sub><b>wxcafé</b></sub></a><br /><a href="#translation-wxcafe" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/dpyroc"><img src="https://avatars3.githubusercontent.com/u/35761525?v=4?s=110" width="110px;" alt="dpyroc"/><br /><sub><b>dpyroc</b></sub></a><br /><a href="#translation-dpyroc" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://www.friedlmaier.net"><img src="https://avatars1.githubusercontent.com/u/2153639?v=4?s=110" width="110px;" alt="Daniel Friedlmaier"/><br /><sub><b>Daniel Friedlmaier</b></sub></a><br /><a href="#translation-da-friedl" title="Translation">🌍</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/danielheene"><img src="https://avatars1.githubusercontent.com/u/2947640?v=4?s=110" width="110px;" alt="Daniel Heene"/><br /><sub><b>Daniel Heene</b></sub></a><br /><a href="#translation-danielheene" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/danielcb"><img src="https://avatars3.githubusercontent.com/u/319022?v=4?s=110" width="110px;" alt="danielcb"/><br /><sub><b>danielcb</b></sub></a><br /><a href="#translation-danielcb" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/dominiksenti"><img src="https://avatars3.githubusercontent.com/u/15846537?v=4?s=110" width="110px;" alt="Dominik Senti"/><br /><sub><b>Dominik Senti</b></sub></a><br /><a href="#translation-dominiksenti" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://www.konectik.com"><img src="https://avatars0.githubusercontent.com/u/25570954?v=4?s=110" width="110px;" alt="Eric Gautheron"/><br /><sub><b>Eric Gautheron</b></sub></a><br /><a href="#translation-EpixFr" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://erlpil.com"><img src="https://avatars1.githubusercontent.com/u/5732623?v=4?s=110" width="110px;" alt="Erlend Pilø"/><br /><sub><b>Erlend Pilø</b></sub></a><br /><a href="#translation-Erlpil" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://fabio.technology"><img src="https://avatars0.githubusercontent.com/u/541832?v=4?s=110" width="110px;" alt="Fabio Rapposelli"/><br /><sub><b>Fabio Rapposelli</b></sub></a><br /><a href="#translation-frapposelli" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/fgbs"><img src="https://avatars2.githubusercontent.com/u/3605240?v=4?s=110" width="110px;" alt="Felipe Barros"/><br /><sub><b>Felipe Barros</b></sub></a><br /><a href="#translation-fgbs" title="Translation">🌍</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/possebon"><img src="https://avatars0.githubusercontent.com/u/257745?v=4?s=110" width="110px;" alt="Fernando Possebon"/><br /><sub><b>Fernando Possebon</b></sub></a><br /><a href="#translation-possebon" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/gdraque"><img src="https://avatars3.githubusercontent.com/u/2540832?v=4?s=110" width="110px;" alt="gdraque"/><br /><sub><b>gdraque</b></sub></a><br /><a href="#translation-gdraque" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/georgwallisch"><img src="https://avatars0.githubusercontent.com/u/23440381?v=4?s=110" width="110px;" alt="Georg Wallisch"/><br /><sub><b>Georg Wallisch</b></sub></a><br /><a href="#translation-georgwallisch" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/jgroblesr85"><img src="https://avatars1.githubusercontent.com/u/9852832?v=4?s=110" width="110px;" alt="Gerardo Robles"/><br /><sub><b>Gerardo Robles</b></sub></a><br /><a href="#translation-jgroblesr85" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://t.me/Gluek"><img src="https://avatars2.githubusercontent.com/u/11082640?v=4?s=110" width="110px;" alt="Gluek"/><br /><sub><b>Gluek</b></sub></a><br /><a href="#translation-mrgluek" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/AdnanAbuShahad"><img src="https://avatars0.githubusercontent.com/u/6847946?v=4?s=110" width="110px;" alt="AdnanAbuShahad"/><br /><sub><b>AdnanAbuShahad</b></sub></a><br /><a href="#translation-AdnanAbuShahad" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://hafidzi.my"><img src="https://avatars1.githubusercontent.com/u/3580608?v=4?s=110" width="110px;" alt="Hafidzi My"/><br /><sub><b>Hafidzi My</b></sub></a><br /><a href="#translation-hafidzi" title="Translation">🌍</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/fofwisdom"><img src="https://avatars2.githubusercontent.com/u/205521?v=4?s=110" width="110px;" alt="Harim Park"/><br /><sub><b>Harim Park</b></sub></a><br /><a href="#translation-fofwisdom" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://www.kentsson.se"><img src="https://avatars2.githubusercontent.com/u/3333841?v=4?s=110" width="110px;" alt="Henrik Kentsson"/><br /><sub><b>Henrik Kentsson</b></sub></a><br /><a href="#translation-Kentsson" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/husnulyaqien"><img src="https://avatars0.githubusercontent.com/u/36551034?v=4?s=110" width="110px;" alt="Husnul Yaqien"/><br /><sub><b>Husnul Yaqien</b></sub></a><br /><a href="#translation-husnulyaqien" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://abaalkhail.org"><img src="https://avatars1.githubusercontent.com/u/2372747?v=4?s=110" width="110px;" alt="Ibrahim"/><br /><sub><b>Ibrahim</b></sub></a><br /><a href="#translation-abaalkh" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/igolman"><img src="https://avatars0.githubusercontent.com/u/1389334?v=4?s=110" width="110px;" alt="igolman"/><br /><sub><b>igolman</b></sub></a><br /><a href="#translation-igolman" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/itangiang"><img src="https://avatars1.githubusercontent.com/u/3257070?v=4?s=110" width="110px;" alt="itangiang"/><br /><sub><b>itangiang</b></sub></a><br /><a href="#translation-itangiang" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/jarby1211"><img src="https://avatars2.githubusercontent.com/u/14814254?v=4?s=110" width="110px;" alt="jarby1211"/><br /><sub><b>jarby1211</b></sub></a><br /><a href="#translation-jarby1211" title="Translation">🌍</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="http://jwillker.com"><img src="https://avatars3.githubusercontent.com/u/6719357?v=4?s=110" width="110px;" alt="Jhonn Willker"/><br /><sub><b>Jhonn Willker</b></sub></a><br /><a href="#translation-JohnWillker" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/joxelito94"><img src="https://avatars2.githubusercontent.com/u/10983635?v=4?s=110" width="110px;" alt="Jose"/><br /><sub><b>Jose</b></sub></a><br /><a href="#translation-joxelito94" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/laopangzi"><img src="https://avatars0.githubusercontent.com/u/5206122?v=4?s=110" width="110px;" alt="laopangzi"/><br /><sub><b>laopangzi</b></sub></a><br /><a href="#translation-laopangzi" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://usrportage.de"><img src="https://avatars2.githubusercontent.com/u/79707?v=4?s=110" width="110px;" alt="Lars Strojny"/><br /><sub><b>Lars Strojny</b></sub></a><br /><a href="#translation-lstrojny" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://twitter.com/marcosbl"><img src="https://avatars0.githubusercontent.com/u/389801?v=4?s=110" width="110px;" alt="MarcosBL"/><br /><sub><b>MarcosBL</b></sub></a><br /><a href="#translation-MarcosBL" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/mariejoyacajes"><img src="https://avatars3.githubusercontent.com/u/35664606?v=4?s=110" width="110px;" alt="marie joy cajes"/><br /><sub><b>marie joy cajes</b></sub></a><br /><a href="#translation-mariejoyacajes" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://www.markjohansen.dk"><img src="https://avatars2.githubusercontent.com/u/3052816?v=4?s=110" width="110px;" alt="Mark S. Johansen"/><br /><sub><b>Mark S. Johansen</b></sub></a><br /><a href="#translation-msjohansen" title="Translation">🌍</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="http://martinstub.dk"><img src="https://avatars2.githubusercontent.com/u/982885?v=4?s=110" width="110px;" alt="Martin Stub"/><br /><sub><b>Martin Stub</b></sub></a><br /><a href="#translation-stubben" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/meyerf99"><img src="https://avatars2.githubusercontent.com/u/28959963?v=4?s=110" width="110px;" alt="Meyer Flavio"/><br /><sub><b>Meyer Flavio</b></sub></a><br /><a href="#translation-meyerf99" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/MicaelRodrigues"><img src="https://avatars3.githubusercontent.com/u/796443?v=4?s=110" width="110px;" alt="Micael Rodrigues"/><br /><sub><b>Micael Rodrigues</b></sub></a><br /><a href="#translation-MicaelRodrigues" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://rubixy.com/"><img src="https://avatars0.githubusercontent.com/u/10481331?v=4?s=110" width="110px;" alt="Mikael Rasmussen"/><br /><sub><b>Mikael Rasmussen</b></sub></a><br /><a href="#translation-mikaelssen" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/IxFail"><img src="https://avatars1.githubusercontent.com/u/1544552?v=4?s=110" width="110px;" alt="IxFail"/><br /><sub><b>IxFail</b></sub></a><br /><a href="#translation-IxFail" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://www.mohammedfota.com"><img src="https://avatars3.githubusercontent.com/u/18483118?v=4?s=110" width="110px;" alt="Mohammed Fota"/><br /><sub><b>Mohammed Fota</b></sub></a><br /><a href="#translation-MohammedFota" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/omego"><img src="https://avatars0.githubusercontent.com/u/227080?v=4?s=110" width="110px;" alt="Moayad Alserihi"/><br /><sub><b>Moayad Alserihi</b></sub></a><br /><a href="#translation-omego" title="Translation">🌍</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/saymd"><img src="https://avatars0.githubusercontent.com/u/1680266?v=4?s=110" width="110px;" alt="saymd"/><br /><sub><b>saymd</b></sub></a><br /><a href="#translation-saymd" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://nordsken.se"><img src="https://avatars0.githubusercontent.com/u/1826808?v=4?s=110" width="110px;" alt="Patrik Larsson"/><br /><sub><b>Patrik Larsson</b></sub></a><br /><a href="#translation-pooot" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/drcryo"><img src="https://avatars1.githubusercontent.com/u/20584746?v=4?s=110" width="110px;" alt="drcryo"/><br /><sub><b>drcryo</b></sub></a><br /><a href="#translation-drcryo" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/pawel1615"><img src="https://avatars1.githubusercontent.com/u/19408004?v=4?s=110" width="110px;" alt="pawel1615"/><br /><sub><b>pawel1615</b></sub></a><br /><a href="#translation-pawel1615" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/bodrovics"><img src="https://avatars2.githubusercontent.com/u/23340468?v=4?s=110" width="110px;" alt="bodrovics"/><br /><sub><b>bodrovics</b></sub></a><br /><a href="#translation-bodrovics" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/priatna"><img src="https://avatars0.githubusercontent.com/u/3257654?v=4?s=110" width="110px;" alt="priatna"/><br /><sub><b>priatna</b></sub></a><br /><a href="#translation-priatna" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://amayume.net"><img src="https://avatars1.githubusercontent.com/u/5358374?v=4?s=110" width="110px;" alt="Fan Jiang"/><br /><sub><b>Fan Jiang</b></sub></a><br /><a href="#translation-ProfFan" title="Translation">🌍</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/ragnarcx"><img src="https://avatars1.githubusercontent.com/u/22555451?v=4?s=110" width="110px;" alt="ragnarcx"/><br /><sub><b>ragnarcx</b></sub></a><br /><a href="#translation-ragnarcx" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://www.reinvanhaaren.nl/"><img src="https://avatars2.githubusercontent.com/u/18654582?v=4?s=110" width="110px;" alt="Rein van Haaren"/><br /><sub><b>Rein van Haaren</b></sub></a><br /><a href="#translation-reinvanhaaren" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://dheche.songolimo.net"><img src="https://avatars1.githubusercontent.com/u/386672?v=4?s=110" width="110px;" alt="Teguh Dwicaksana"/><br /><sub><b>Teguh Dwicaksana</b></sub></a><br /><a href="#translation-dheche" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/FRaccie"><img src="https://avatars2.githubusercontent.com/u/2572552?v=4?s=110" width="110px;" alt="fraccie"/><br /><sub><b>fraccie</b></sub></a><br /><a href="#translation-FRaccie" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/vinzruzell"><img src="https://avatars0.githubusercontent.com/u/35182720?v=4?s=110" width="110px;" alt="vinzruzell"/><br /><sub><b>vinzruzell</b></sub></a><br /><a href="#translation-vinzruzell" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://kevinaustin.com"><img src="https://avatars1.githubusercontent.com/u/7883603?v=4?s=110" width="110px;" alt="Kevin Austin"/><br /><sub><b>Kevin Austin</b></sub></a><br /><a href="#translation-vipsystem" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://azuraweb.xyz"><img src="https://avatars3.githubusercontent.com/u/3861828?v=4?s=110" width="110px;" alt="Wira Sandy"/><br /><sub><b>Wira Sandy</b></sub></a><br /><a href="#translation-wira-sandy" title="Translation">🌍</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/GrayHoax"><img src="https://avatars2.githubusercontent.com/u/8663789?v=4?s=110" width="110px;" alt="Илья"/><br /><sub><b>Илья</b></sub></a><br /><a href="#translation-GrayHoax" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/godusevpn"><img src="https://avatars3.githubusercontent.com/u/30119111?v=4?s=110" width="110px;" alt="GodUseVPN"/><br /><sub><b>GodUseVPN</b></sub></a><br /><a href="#translation-godusevpn" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/EngrZhou"><img src="https://avatars1.githubusercontent.com/u/745576?v=4?s=110" width="110px;" alt="周周"/><br /><sub><b>周周</b></sub></a><br /><a href="#translation-EngrZhou" title="Translation">🌍</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/takuy"><img src="https://avatars3.githubusercontent.com/u/1631095?v=4?s=110" width="110px;" alt="Sam"/><br /><sub><b>Sam</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=takuy" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://www.illisian.com.au"><img src="https://avatars1.githubusercontent.com/u/264022?v=4?s=110" width="110px;" alt="Azerothian"/><br /><sub><b>Azerothian</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=Azerothian" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://macfoo.wordpress.com/"><img src="https://avatars1.githubusercontent.com/u/4930051?v=4?s=110" width="110px;" alt="Wes Hulette"/><br /><sub><b>Wes Hulette</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=jwhulette" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/patrict"><img src="https://avatars0.githubusercontent.com/u/8134591?v=4?s=110" width="110px;" alt="patrict"/><br /><sub><b>patrict</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=patrict" title="Code">💻</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/VELIKII-DIVAN"><img src="https://avatars3.githubusercontent.com/u/2611616?v=4?s=110" width="110px;" alt="Dmitriy Minaev"/><br /><sub><b>Dmitriy Minaev</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=VELIKII-DIVAN" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/liquidhorse"><img src="https://avatars0.githubusercontent.com/u/5132245?v=4?s=110" width="110px;" alt="liquidhorse"/><br /><sub><b>liquidhorse</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=liquidhorse" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://seld.be/"><img src="https://avatars1.githubusercontent.com/u/183678?v=4?s=110" width="110px;" alt="Jordi Boggiano"/><br /><sub><b>Jordi Boggiano</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=Seldaek" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/inietov"><img src="https://avatars0.githubusercontent.com/u/653557?v=4?s=110" width="110px;" alt="Ivan Nieto"/><br /><sub><b>Ivan Nieto</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=inietov" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/benrubson"><img src="https://avatars2.githubusercontent.com/u/6764151?v=4?s=110" width="110px;" alt="Ben RUBSON"/><br /><sub><b>Ben RUBSON</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=benrubson" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/NMathar"><img src="https://avatars2.githubusercontent.com/u/8554558?v=4?s=110" width="110px;" alt="NMathar"/><br /><sub><b>NMathar</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=NMathar" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/smb"><img src="https://avatars1.githubusercontent.com/u/139566?v=4?s=110" width="110px;" alt="Steffen"/><br /><sub><b>Steffen</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=smb" title="Code">💻</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Sxderp"><img src="https://avatars0.githubusercontent.com/u/6609453?v=4?s=110" width="110px;" alt="Sxderp"/><br /><sub><b>Sxderp</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=Sxderp" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/fanta8897"><img src="https://avatars1.githubusercontent.com/u/4807843?v=4?s=110" width="110px;" alt="fanta8897"/><br /><sub><b>fanta8897</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=fanta8897" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://andreybolonin.com/phpconsulting/"><img src="https://avatars2.githubusercontent.com/u/2576509?v=4?s=110" width="110px;" alt="Andrey Bolonin"/><br /><sub><b>Andrey Bolonin</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=andreybolonin" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://www.shinayoshi.net/"><img src="https://avatars3.githubusercontent.com/u/2173307?v=4?s=110" width="110px;" alt="shinayoshi"/><br /><sub><b>shinayoshi</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=shinayoshi" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/reuser"><img src="https://avatars3.githubusercontent.com/u/2130159?v=4?s=110" width="110px;" alt="Hubert"/><br /><sub><b>Hubert</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=reuser" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://brashear.me"><img src="https://avatars0.githubusercontent.com/u/6865789?v=4?s=110" width="110px;" alt="KeenRivals"/><br /><sub><b>KeenRivals</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=KeenRivals" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/omyno"><img src="https://avatars3.githubusercontent.com/u/2902513?v=4?s=110" width="110px;" alt="omyno"/><br /><sub><b>omyno</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=omyno" title="Code">💻</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/jackka"><img src="https://avatars1.githubusercontent.com/u/6271335?v=4?s=110" width="110px;" alt="Evgeny"/><br /><sub><b>Evgeny</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=jackka" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://digitalist.se"><img src="https://avatars2.githubusercontent.com/u/1169963?v=4?s=110" width="110px;" alt="Colin Campbell"/><br /><sub><b>Colin Campbell</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=colin-campbell" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/lubo"><img src="https://avatars3.githubusercontent.com/u/2872098?v=4?s=110" width="110px;" alt="Ľubomír Kučera"/><br /><sub><b>Ľubomír Kučera</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=lubo" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://www.sourceguru.net"><img src="https://avatars3.githubusercontent.com/u/570639?v=4?s=110" width="110px;" alt="Martin Meredith"/><br /><sub><b>Martin Meredith</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=Mezzle" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/timothyfarmer"><img src="https://avatars1.githubusercontent.com/u/7632599?v=4?s=110" width="110px;" alt="Tim Farmer"/><br /><sub><b>Tim Farmer</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=timothyfarmer" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/mskrip"><img src="https://avatars0.githubusercontent.com/u/17459600?v=4?s=110" width="110px;" alt="Marián Skrip"/><br /><sub><b>Marián Skrip</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=mskrip" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Godmartinz"><img src="https://avatars2.githubusercontent.com/u/47435081?v=4?s=110" width="110px;" alt="Godfrey Martinez"/><br /><sub><b>Godfrey Martinez</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=Godmartinz" title="Code">💻</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/bigtreeEdo"><img src="https://avatars1.githubusercontent.com/u/2075128?v=4?s=110" width="110px;" alt="bigtreeEdo"/><br /><sub><b>bigtreeEdo</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=bigtreeEdo" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://colinmcneil.me/"><img src="https://avatars0.githubusercontent.com/u/5000430?v=4?s=110" width="110px;" alt="Colin McNeil"/><br /><sub><b>Colin McNeil</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=ColinMcNeil" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/JoKneeMo"><img src="https://avatars0.githubusercontent.com/u/421625?v=4?s=110" width="110px;" alt="JoKneeMo"/><br /><sub><b>JoKneeMo</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=JoKneeMo" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://www.redbridge.se"><img src="https://avatars0.githubusercontent.com/u/54849013?v=4?s=110" width="110px;" alt="Joshi"/><br /><sub><b>Joshi</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=joshi-redbridge" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/anthonypburns"><img src="https://avatars2.githubusercontent.com/u/15731458?v=4?s=110" width="110px;" alt="Anthony Burns"/><br /><sub><b>Anthony Burns</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=anthonypburns" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/johnson-yi"><img src="https://avatars1.githubusercontent.com/u/63399474?v=4?s=110" width="110px;" alt="johnson-yi"/><br /><sub><b>johnson-yi</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=johnson-yi" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://tangentmc.net"><img src="https://avatars1.githubusercontent.com/u/1862720?v=4?s=110" width="110px;" alt="Sanjay Govind"/><br /><sub><b>Sanjay Govind</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=sanjay900" title="Code">💻</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://peter.upfold.org.uk/"><img src="https://avatars0.githubusercontent.com/u/1255375?v=4?s=110" width="110px;" alt="Peter Upfold"/><br /><sub><b>Peter Upfold</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=PeterUpfold" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/jbiel"><img src="https://avatars2.githubusercontent.com/u/961717?v=4?s=110" width="110px;" alt="Jared Biel"/><br /><sub><b>Jared Biel</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=jbiel" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/dampfklon"><img src="https://avatars1.githubusercontent.com/u/1733625?v=4?s=110" width="110px;" alt="Dampfklon"/><br /><sub><b>Dampfklon</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=dampfklon" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://communityclosing.com"><img src="https://avatars2.githubusercontent.com/u/52973156?v=4?s=110" width="110px;" alt="Charles Hamilton"/><br /><sub><b>Charles Hamilton</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=chamilton-ccn" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/giannello"><img src="https://avatars.githubusercontent.com/u/551789?v=4?s=110" width="110px;" alt="Giuseppe Iannello"/><br /><sub><b>Giuseppe Iannello</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=giannello" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://www.peterdavehello.org/"><img src="https://avatars.githubusercontent.com/u/3691490?v=4?s=110" width="110px;" alt="Peter Dave Hello"/><br /><sub><b>Peter Dave Hello</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=PeterDaveHello" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/sigmoidal"><img src="https://avatars.githubusercontent.com/u/6106332?v=4?s=110" width="110px;" alt="sigmoidal"/><br /><sub><b>sigmoidal</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=sigmoidal" title="Code">💻</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/phenixdotnet"><img src="https://avatars.githubusercontent.com/u/2082554?v=4?s=110" width="110px;" alt="Vincent Lainé"/><br /><sub><b>Vincent Lainé</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=phenixdotnet" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://www.lucas-pless.com"><img src="https://avatars.githubusercontent.com/u/1943040?v=4?s=110" width="110px;" alt="Lucas Pleß"/><br /><sub><b>Lucas Pleß</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=derlucas" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://twitter.com/iansltx"><img src="https://avatars.githubusercontent.com/u/472804?v=4?s=110" width="110px;" alt="Ian Littman"/><br /><sub><b>Ian Littman</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=iansltx" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/PauloLuna"><img src="https://avatars.githubusercontent.com/u/3519029?v=4?s=110" width="110px;" alt="João Paulo"/><br /><sub><b>João Paulo</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=PauloLuna" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/ThoBur"><img src="https://avatars.githubusercontent.com/u/70443365?v=4?s=110" width="110px;" alt="ThoBur"/><br /><sub><b>ThoBur</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=ThoBur" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://phpprofi.ru/"><img src="https://avatars.githubusercontent.com/u/1972329?v=4?s=110" width="110px;" alt="Alexander Chibrikin"/><br /><sub><b>Alexander Chibrikin</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=alek13" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/winstan"><img src="https://avatars.githubusercontent.com/u/438332?v=4?s=110" width="110px;" alt="Anthony Winstanley"/><br /><sub><b>Anthony Winstanley</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=winstan" title="Code">💻</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/fashberg"><img src="https://avatars.githubusercontent.com/u/3075214?v=4?s=110" width="110px;" alt="Folke"/><br /><sub><b>Folke</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=fashberg" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/benwa"><img src="https://avatars.githubusercontent.com/u/1351571?v=4?s=110" width="110px;" alt="Bennett Blodinger"/><br /><sub><b>Bennett Blodinger</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=benwa" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://nmc.dev"><img src="https://avatars.githubusercontent.com/u/2974631?v=4?s=110" width="110px;" alt="NMC"/><br /><sub><b>NMC</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=ncareau" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/andres-baller"><img src="https://avatars.githubusercontent.com/u/52182449?v=4?s=110" width="110px;" alt="andres-baller"/><br /><sub><b>andres-baller</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=andres-baller" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/sean-borg"><img src="https://avatars.githubusercontent.com/u/67109348?v=4?s=110" width="110px;" alt="sean-borg"/><br /><sub><b>sean-borg</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=sean-borg" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/EDVLeer"><img src="https://avatars.githubusercontent.com/u/32170051?v=4?s=110" width="110px;" alt="EDVLeer"/><br /><sub><b>EDVLeer</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=EDVLeer" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Kurokat"><img src="https://avatars.githubusercontent.com/u/23075196?v=4?s=110" width="110px;" alt="Kurokat"/><br /><sub><b>Kurokat</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=Kurokat" title="Code">💻</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://www.kevinkoellmann.de"><img src="https://avatars.githubusercontent.com/u/915514?v=4?s=110" width="110px;" alt="Kevin Köllmann"/><br /><sub><b>Kevin Köllmann</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=koelle25" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/sw-mreyes"><img src="https://avatars.githubusercontent.com/u/49025941?v=4?s=110" width="110px;" alt="sw-mreyes"/><br /><sub><b>sw-mreyes</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=sw-mreyes" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://pittet.ca"><img src="https://avatars.githubusercontent.com/u/70129?v=4?s=110" width="110px;" alt="Joel Pittet"/><br /><sub><b>Joel Pittet</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=joelpittet" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://elyscape.com"><img src="https://avatars.githubusercontent.com/u/792695?v=4?s=110" width="110px;" alt="Eli Young"/><br /><sub><b>Eli Young</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=elyscape" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/raelldottin"><img src="https://avatars.githubusercontent.com/u/317015?v=4?s=110" width="110px;" alt="Raell Dottin"/><br /><sub><b>Raell Dottin</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=raelldottin" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/misilot"><img src="https://avatars.githubusercontent.com/u/1446856?v=4?s=110" width="110px;" alt="Tom Misilo"/><br /><sub><b>Tom Misilo</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=misilot" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://david.davenne.be"><img src="https://avatars.githubusercontent.com/u/4496300?v=4?s=110" width="110px;" alt="David Davenne"/><br /><sub><b>David Davenne</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=JuustoMestari" title="Code">💻</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://markstenglein.com"><img src="https://avatars.githubusercontent.com/u/9255772?v=4?s=110" width="110px;" alt="Mark Stenglein"/><br /><sub><b>Mark Stenglein</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=ocelotsloth" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/ajsy"><img src="https://avatars.githubusercontent.com/u/35658596?v=4?s=110" width="110px;" alt="ajsy"/><br /><sub><b>ajsy</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=ajsy" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/t3easy"><img src="https://avatars.githubusercontent.com/u/3628035?v=4?s=110" width="110px;" alt="Jan Kiesewetter"/><br /><sub><b>Jan Kiesewetter</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=t3easy" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Tetrachloromethane250"><img src="https://avatars.githubusercontent.com/u/79449630?v=4?s=110" width="110px;" alt="Tetrachloromethane250"/><br /><sub><b>Tetrachloromethane250</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=Tetrachloromethane250" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://www.kajes.se/"><img src="https://avatars.githubusercontent.com/u/22004482?v=4?s=110" width="110px;" alt="Lars Kajes"/><br /><sub><b>Lars Kajes</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=kajes" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Joly0"><img src="https://avatars.githubusercontent.com/u/13993216?v=4?s=110" width="110px;" alt="Joly0"/><br /><sub><b>Joly0</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=Joly0" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/limeless"><img src="https://avatars.githubusercontent.com/u/1501022?v=4?s=110" width="110px;" alt="theburger"/><br /><sub><b>theburger</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=limeless" title="Code">💻</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/deivishome"><img src="https://avatars.githubusercontent.com/u/36065681?v=4?s=110" width="110px;" alt="David Valin Alonso"/><br /><sub><b>David Valin Alonso</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=deivishome" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/andreaci"><img src="https://avatars.githubusercontent.com/u/8290389?v=4?s=110" width="110px;" alt="andreaci"/><br /><sub><b>andreaci</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=andreaci" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://www.jellesebreghts.be"><img src="https://avatars.githubusercontent.com/u/1828542?v=4?s=110" width="110px;" alt="Jelle Sebreghts"/><br /><sub><b>Jelle Sebreghts</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=Jelle-S" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Skywalker-11"><img src="https://avatars.githubusercontent.com/u/11180862?v=4?s=110" width="110px;" alt="Michael Pietsch"/><br /><sub><b>Michael Pietsch</b></sub></a><br /></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/sh1hab"><img src="https://avatars.githubusercontent.com/u/22068886?v=4?s=110" width="110px;" alt="Masudul Haque Shihab"/><br /><sub><b>Masudul Haque Shihab</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=sh1hab" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://www.freedomdive.com/"><img src="https://avatars.githubusercontent.com/u/16099942?v=4?s=110" width="110px;" alt="Supapong Areeprasertkul"/><br /><sub><b>Supapong Areeprasertkul</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=zybersup" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/psarossy"><img src="https://avatars.githubusercontent.com/u/207358?v=4?s=110" width="110px;" alt="Peter Sarossy"/><br /><sub><b>Peter Sarossy</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=psarossy" title="Code">💻</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/nepella"><img src="https://avatars.githubusercontent.com/u/11823649?v=4?s=110" width="110px;" alt="Renee Margaret McConahy"/><br /><sub><b>Renee Margaret McConahy</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=nepella" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/JohnnyPicnic"><img src="https://avatars.githubusercontent.com/u/5553884?v=4?s=110" width="110px;" alt="JohnnyPicnic"/><br /><sub><b>JohnnyPicnic</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=JohnnyPicnic" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/markbrule"><img src="https://avatars.githubusercontent.com/u/8799594?v=4?s=110" width="110px;" alt="markbrule"/><br /><sub><b>markbrule</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=markbrule" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/mikecmpbll"><img src="https://avatars.githubusercontent.com/u/1962801?v=4?s=110" width="110px;" alt="Mike Campbell"/><br /><sub><b>Mike Campbell</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=mikecmpbll" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/tbrconnect"><img src="https://avatars.githubusercontent.com/u/11973217?v=4?s=110" width="110px;" alt="tbrconnect"/><br /><sub><b>tbrconnect</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=tbrconnect" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/kcoyo"><img src="https://avatars.githubusercontent.com/u/12447225?v=4?s=110" width="110px;" alt="kcoyo"/><br /><sub><b>kcoyo</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=kcoyo" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://travismiller.com/"><img src="https://avatars.githubusercontent.com/u/494017?v=4?s=110" width="110px;" alt="Travis Miller"/><br /><sub><b>Travis Miller</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=travismiller" title="Code">💻</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Delta5"><img src="https://avatars.githubusercontent.com/u/1975640?v=4?s=110" width="110px;" alt="Evan Taylor"/><br /><sub><b>Evan Taylor</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=Delta5" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/PetriAsi"><img src="https://avatars.githubusercontent.com/u/8735148?v=4?s=110" width="110px;" alt="Petri Asikainen"/><br /><sub><b>Petri Asikainen</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=PetriAsi" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/derdeagle"><img src="https://avatars.githubusercontent.com/u/11424540?v=4?s=110" width="110px;" alt="derdeagle"/><br /><sub><b>derdeagle</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=derdeagle" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://wh0rd.org/"><img src="https://avatars.githubusercontent.com/u/176950?v=4?s=110" width="110px;" alt="Mike Frysinger"/><br /><sub><b>Mike Frysinger</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=vapier" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/AL4AL"><img src="https://avatars.githubusercontent.com/u/22044358?v=4?s=110" width="110px;" alt="ALPHA"/><br /><sub><b>ALPHA</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=AL4AL" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://www.ifern.de"><img src="https://avatars.githubusercontent.com/u/1042587?v=4?s=110" width="110px;" alt="FliegenKLATSCH"/><br /><sub><b>FliegenKLATSCH</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=FliegenKLATSCH" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/jerm"><img src="https://avatars.githubusercontent.com/u/442138?v=4?s=110" width="110px;" alt="Jeremy Price"/><br /><sub><b>Jeremy Price</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=jerm" title="Code">💻</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Toreg87"><img src="https://avatars.githubusercontent.com/u/84392209?v=4?s=110" width="110px;" alt="Toreg87"/><br /><sub><b>Toreg87</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=Toreg87" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Computroniks"><img src="https://avatars.githubusercontent.com/u/67638596?v=4?s=110" width="110px;" alt="Matthew Nickson"/><br /><sub><b>Matthew Nickson</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=Computroniks" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://jethron.id.au"><img src="https://avatars.githubusercontent.com/u/1646397?v=4?s=110" width="110px;" alt="Jethro Nederhof"/><br /><sub><b>Jethro Nederhof</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=jethron" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/01ste02"><img src="https://avatars.githubusercontent.com/u/23289826?v=4?s=110" width="110px;" alt="Oskar Stenberg"/><br /><sub><b>Oskar Stenberg</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=01ste02" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Robert-Azelis"><img src="https://avatars.githubusercontent.com/u/82208283?v=4?s=110" width="110px;" alt="Robert-Azelis"/><br /><sub><b>Robert-Azelis</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=Robert-Azelis" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/alwism"><img src="https://avatars.githubusercontent.com/u/60648387?v=4?s=110" width="110px;" alt="Alexander William Smith"/><br /><sub><b>Alexander William Smith</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=alwism" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://www.leitwerk.de/"><img src="https://avatars.githubusercontent.com/u/24418301?v=4?s=110" width="110px;" alt="LEITWERK AG"/><br /><sub><b>LEITWERK AG</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=leitwerk-ag" title="Code">💻</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="http://www.aboutcher.co.uk"><img src="https://avatars.githubusercontent.com/u/1911435?v=4?s=110" width="110px;" alt="Adam"/><br /><sub><b>Adam</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=adamboutcher" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://snksrv.com"><img src="https://avatars.githubusercontent.com/u/16104273?v=4?s=110" width="110px;" alt="Ian"/><br /><sub><b>Ian</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=sneak-it" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://blog.bestlong.idv.tw/"><img src="https://avatars.githubusercontent.com/u/4023909?v=4?s=110" width="110px;" alt="Shao Yu-Lung (Allen)"/><br /><sub><b>Shao Yu-Lung (Allen)</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=bestlong" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Haxatron"><img src="https://avatars.githubusercontent.com/u/76475453?v=4?s=110" width="110px;" alt="Haxatron"/><br /><sub><b>Haxatron</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=Haxatron" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/PlaneNuts"><img src="https://avatars.githubusercontent.com/u/88776392?v=4?s=110" width="110px;" alt="PlaneNuts"/><br /><sub><b>PlaneNuts</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=PlaneNuts" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://bjcpgd.cias.rit.edu"><img src="https://avatars.githubusercontent.com/u/3842948?v=4?s=110" width="110px;" alt="Bradley Coudriet"/><br /><sub><b>Bradley Coudriet</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=exula" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://daltondur.st"><img src="https://avatars.githubusercontent.com/u/21966173?v=4?s=110" width="110px;" alt="Dalton Durst"/><br /><sub><b>Dalton Durst</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=UniversalSuperBox" title="Code">💻</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://adagiohealth.org"><img src="https://avatars.githubusercontent.com/u/38761237?v=4?s=110" width="110px;" alt="Alex Janes"/><br /><sub><b>Alex Janes</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=adagioajanes" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/nuraeil"><img src="https://avatars.githubusercontent.com/u/32387849?v=4?s=110" width="110px;" alt="Nuraeil"/><br /><sub><b>Nuraeil</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=nuraeil" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/TenOfTens"><img src="https://avatars.githubusercontent.com/u/48162670?v=4?s=110" width="110px;" alt="TenOfTens"/><br /><sub><b>TenOfTens</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=TenOfTens" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://ditisjens.be/"><img src="https://avatars.githubusercontent.com/u/9415391?v=4?s=110" width="110px;" alt="waffle"/><br /><sub><b>waffle</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=insert-waffle" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/QveenSi"><img src="https://avatars.githubusercontent.com/u/19945501?v=4?s=110" width="110px;" alt="Yevhenii Huzii"/><br /><sub><b>Yevhenii Huzii</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=QveenSi" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/veenone"><img src="https://avatars.githubusercontent.com/u/3839381?v=4?s=110" width="110px;" alt="Achmad Fienan Rahardianto"/><br /><sub><b>Achmad Fienan Rahardianto</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=veenone" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/QveenSi"><img src="https://avatars.githubusercontent.com/u/19945501?v=4?s=110" width="110px;" alt="Yevhenii Huzii"/><br /><sub><b>Yevhenii Huzii</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=QveenSi" title="Code">💻</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/chrisweirich"><img src="https://avatars.githubusercontent.com/u/97299851?v=4?s=110" width="110px;" alt="Christian Weirich"/><br /><sub><b>Christian Weirich</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=chrisweirich" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/denzfarid"><img src="https://avatars.githubusercontent.com/u/1294403?v=4?s=110" width="110px;" alt="denzfarid"/><br /><sub><b>denzfarid</b></sub></a><br /></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/ntbutler-nbcs"><img src="https://avatars.githubusercontent.com/u/94018771?v=4?s=110" width="110px;" alt="ntbutler-nbcs"/><br /><sub><b>ntbutler-nbcs</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=ntbutler-nbcs" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://naveensrinivasan.dev"><img src="https://avatars.githubusercontent.com/u/172697?v=4?s=110" width="110px;" alt="Naveen"/><br /><sub><b>Naveen</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=naveensrinivasan" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/mikeroq"><img src="https://avatars.githubusercontent.com/u/55674383?v=4?s=110" width="110px;" alt="Mike Roquemore"/><br /><sub><b>Mike Roquemore</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=mikeroq" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/reederda"><img src="https://avatars.githubusercontent.com/u/7991086?v=4?s=110" width="110px;" alt="Daniel Reeder"/><br /><sub><b>Daniel Reeder</b></sub></a><br /><a href="#translation-reederda" title="Translation">🌍</a> <a href="#translation-reederda" title="Translation">🌍</a> <a href="https://github.com/snipe/snipe-it/commits?author=reederda" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/vickyjaura183"><img src="https://avatars.githubusercontent.com/u/109422491?v=4?s=110" width="110px;" alt="vickyjaura183"/><br /><sub><b>vickyjaura183</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=vickyjaura183" title="Code">💻</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/julian-piehl"><img src="https://avatars.githubusercontent.com/u/32363424?v=4?s=110" width="110px;" alt="Peace"/><br /><sub><b>Peace</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=julian-piehl" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/kylegordon"><img src="https://avatars.githubusercontent.com/u/231528?v=4?s=110" width="110px;" alt="Kyle Gordon"/><br /><sub><b>Kyle Gordon</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=kylegordon" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://www.bfh.ch"><img src="https://avatars.githubusercontent.com/u/53009155?v=4?s=110" width="110px;" alt="Katharina Drexel"/><br /><sub><b>Katharina Drexel</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=sunflowerbofh" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://david.sferruzza.fr/"><img src="https://avatars.githubusercontent.com/u/1931963?v=4?s=110" width="110px;" alt="David Sferruzza"/><br /><sub><b>David Sferruzza</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=dsferruzza" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/rnelsonee"><img src="https://avatars.githubusercontent.com/u/19511639?v=4?s=110" width="110px;" alt="Rick Nelson"/><br /><sub><b>Rick Nelson</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=rnelsonee" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/BasO12"><img src="https://avatars.githubusercontent.com/u/94169344?v=4?s=110" width="110px;" alt="BasO12"/><br /><sub><b>BasO12</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=BasO12" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Vautia"><img src="https://avatars.githubusercontent.com/u/111710123?v=4?s=110" width="110px;" alt="Vautia"/><br /><sub><b>Vautia</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=Vautia" title="Code">💻</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="http://www.littlehart.net/atthekeyboard"><img src="https://avatars.githubusercontent.com/u/28321?v=4?s=110" width="110px;" alt="Chris Hartjes"/><br /><sub><b>Chris Hartjes</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=chartjes" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/geo-chen"><img src="https://avatars.githubusercontent.com/u/2404584?v=4?s=110" width="110px;" alt="geo-chen"/><br /><sub><b>geo-chen</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=geo-chen" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/nh314"><img src="https://avatars.githubusercontent.com/u/6006620?v=4?s=110" width="110px;" alt="Phan Nguyen"/><br /><sub><b>Phan Nguyen</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=nh314" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/StarlessNights"><img src="https://avatars.githubusercontent.com/u/115993812?v=4?s=110" width="110px;" alt="Iisakki Jaakkola"/><br /><sub><b>Iisakki Jaakkola</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=StarlessNights" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://bandism.net/"><img src="https://avatars.githubusercontent.com/u/22633385?v=4?s=110" width="110px;" alt="Ikko Ashimine"/><br /><sub><b>Ikko Ashimine</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=eltociear" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/lukasfehling"><img src="https://avatars.githubusercontent.com/u/56871540?v=4?s=110" width="110px;" alt="Lukas Fehling"/><br /><sub><b>Lukas Fehling</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=lukasfehling" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/fernando-almeida"><img src="https://avatars.githubusercontent.com/u/1975990?v=4?s=110" width="110px;" alt="Fernando Almeida"/><br /><sub><b>Fernando Almeida</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=fernando-almeida" title="Code">💻</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/akemidx"><img src="https://avatars.githubusercontent.com/u/116301219?v=4?s=110" width="110px;" alt="akemidx"/><br /><sub><b>akemidx</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=akemidx" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://oguz.site"><img src="https://avatars.githubusercontent.com/u/144778?v=4?s=110" width="110px;" alt="Oguz Bilgic"/><br /><sub><b>Oguz Bilgic</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=oguzbilgic" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/scoo73r"><img src="https://avatars.githubusercontent.com/u/9262438?v=4?s=110" width="110px;" alt="Scooter Crawford"/><br /><sub><b>Scooter Crawford</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=scoo73r" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/subdriven"><img src="https://avatars.githubusercontent.com/u/5957345?v=4?s=110" width="110px;" alt="subdriven"/><br /><sub><b>subdriven</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=subdriven" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/AndrewSav"><img src="https://avatars.githubusercontent.com/u/658865?v=4?s=110" width="110px;" alt="Andrew Savinykh"/><br /><sub><b>Andrew Savinykh</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=AndrewSav" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://kenchan0130.github.io"><img src="https://avatars.githubusercontent.com/u/1155067?v=4?s=110" width="110px;" alt="Tadayuki Onishi"/><br /><sub><b>Tadayuki Onishi</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=kenchan0130" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/floschoepfer"><img src="https://avatars.githubusercontent.com/u/112496896?v=4?s=110" width="110px;" alt="Florian"/><br /><sub><b>Florian</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=floschoepfer" title="Code">💻</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="http://spencerlong.com"><img src="https://avatars.githubusercontent.com/u/7305753?v=4?s=110" width="110px;" alt="Spencer Long"/><br /><sub><b>Spencer Long</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=spencerrlongg" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/marcusmoore"><img src="https://avatars.githubusercontent.com/u/1141514?v=4?s=110" width="110px;" alt="Marcus Moore"/><br /><sub><b>Marcus Moore</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=marcusmoore" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Mezzle"><img src="https://avatars.githubusercontent.com/u/570639?v=4?s=110" width="110px;" alt="Martin Meredith"/><br /><sub><b>Martin Meredith</b></sub></a><br /></td>
<td align="center" valign="top" width="14.28%"><a href="http://dboth.de"><img src="https://avatars.githubusercontent.com/u/5731963?v=4?s=110" width="110px;" alt="dboth"/><br /><sub><b>dboth</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=dboth" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/zacharyfleck"><img src="https://avatars.githubusercontent.com/u/87536651?v=4?s=110" width="110px;" alt="Zachary Fleck"/><br /><sub><b>Zachary Fleck</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=zacharyfleck" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/vikaas-cyper"><img src="https://avatars.githubusercontent.com/u/74609912?v=4?s=110" width="110px;" alt="VIKAAS-A"/><br /><sub><b>VIKAAS-A</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=vikaas-cyper" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/ak-piracha"><img src="https://avatars.githubusercontent.com/u/88882041?v=4?s=110" width="110px;" alt="Abdul Kareem"/><br /><sub><b>Abdul Kareem</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=ak-piracha" title="Code">💻</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/NojoudAlshehri"><img src="https://avatars.githubusercontent.com/u/111287779?v=4?s=110" width="110px;" alt="NojoudAlshehri"/><br /><sub><b>NojoudAlshehri</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=NojoudAlshehri" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/stefanstidlffg"><img src="https://avatars.githubusercontent.com/u/54367449?v=4?s=110" width="110px;" alt="Stefan Stidl"/><br /><sub><b>Stefan Stidl</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=stefanstidlffg" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/qay21"><img src="https://avatars.githubusercontent.com/u/87803479?v=4?s=110" width="110px;" alt="Quentin Aymard"/><br /><sub><b>Quentin Aymard</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=qay21" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/cram42"><img src="https://avatars.githubusercontent.com/u/5396871?v=4?s=110" width="110px;" alt="Grant Le Roux"/><br /><sub><b>Grant Le Roux</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=cram42" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://@singrity"><img src="https://avatars.githubusercontent.com/u/58479551?v=4?s=110" width="110px;" alt="Bogdan"/><br /><sub><b>Bogdan</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=Singrity" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/mmanjos"><img src="https://avatars.githubusercontent.com/u/3483684?v=4?s=110" width="110px;" alt="mmanjos"/><br /><sub><b>mmanjos</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=mmanjos" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://azooz2014.github.io/"><img src="https://avatars.githubusercontent.com/u/7429229?v=4?s=110" width="110px;" alt="Abdelaziz Faki"/><br /><sub><b>Abdelaziz Faki</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=Azooz2014" title="Code">💻</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/bilias"><img src="https://avatars.githubusercontent.com/u/47315739?v=4?s=110" width="110px;" alt="bilias"/><br /><sub><b>bilias</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=bilias" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/coach1988"><img src="https://avatars.githubusercontent.com/u/2565989?v=4?s=110" width="110px;" alt="coach1988"/><br /><sub><b>coach1988</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=coach1988" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/mauro-miatello"><img src="https://avatars.githubusercontent.com/u/11910225?v=4?s=110" width="110px;" alt="MrM"/><br /><sub><b>MrM</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=mauro-miatello" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/koiakoia"><img src="https://avatars.githubusercontent.com/u/60405354?v=4?s=110" width="110px;" alt="koiakoia"/><br /><sub><b>koiakoia</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=koiakoia" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/mustafa-online"><img src="https://avatars.githubusercontent.com/u/5323832?v=4?s=110" width="110px;" alt="Mustafa Online"/><br /><sub><b>Mustafa Online</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=mustafa-online" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/franceslui"><img src="https://avatars.githubusercontent.com/u/104601439?v=4?s=110" width="110px;" alt="franceslui"/><br /><sub><b>franceslui</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=franceslui" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Q4kK"><img src="https://avatars.githubusercontent.com/u/125313163?v=4?s=110" width="110px;" alt="Q4kK"/><br /><sub><b>Q4kK</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=Q4kK" title="Code">💻</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/squintfox"><img src="https://avatars.githubusercontent.com/u/55590532?v=4?s=110" width="110px;" alt="squintfox"/><br /><sub><b>squintfox</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=squintfox" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/jeffclay"><img src="https://avatars.githubusercontent.com/u/1380084?v=4?s=110" width="110px;" alt="Jeff Clay"/><br /><sub><b>Jeff Clay</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=jeffclay" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/PP-JN-RL"><img src="https://avatars.githubusercontent.com/u/52716446?v=4?s=110" width="110px;" alt="Phil J R"/><br /><sub><b>Phil J R</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=PP-JN-RL" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://www.corelight.com/"><img src="https://avatars.githubusercontent.com/u/1496725?v=4?s=110" width="110px;" alt="i_virus"/><br /><sub><b>i_virus</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=chandanchowdhury" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/gitgrimbo"><img src="https://avatars.githubusercontent.com/u/1020541?v=4?s=110" width="110px;" alt="Paul Grime"/><br /><sub><b>Paul Grime</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=gitgrimbo" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://leeporte.co.uk"><img src="https://avatars.githubusercontent.com/u/922815?v=4?s=110" width="110px;" alt="Lee Porte"/><br /><sub><b>Lee Porte</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=LeePorte" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/bryanlopezinc"><img src="https://avatars.githubusercontent.com/u/23613427?v=4?s=110" width="110px;" alt="BRYAN "/><br /><sub><b>BRYAN </b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=bryanlopezinc" title="Code">💻</a> <a href="https://github.com/snipe/snipe-it/commits?author=bryanlopezinc" title="Tests">⚠️</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/U-H-T"><img src="https://avatars.githubusercontent.com/u/64061710?v=4?s=110" width="110px;" alt="U-H-T"/><br /><sub><b>U-H-T</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=U-H-T" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Tyree"><img src="https://avatars.githubusercontent.com/u/5395363?v=4?s=110" width="110px;" alt="Matt Tyree"/><br /><sub><b>Matt Tyree</b></sub></a><br /><a href="https://github.com/snipe/snipe-it/commits?author=Tyree" title="Documentation">📖</a></td>
</tr>
</tbody>
</table>
<!-- markdownlint-restore -->
<!-- prettier-ignore-end -->
<!-- ALL-CONTRIBUTORS-LIST:END -->
This project follows the [all-contributors](https://github.com/kentcdodds/all-contributors) specification. Contributions of any kind welcome!

View File

@@ -1,5 +1,5 @@
FROM ubuntu:focal
LABEL maintainer Brady Wetherington <bwetherington@grokability.com>
FROM ubuntu:22.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
@@ -14,15 +14,17 @@ RUN export DEBIAN_FRONTEND=noninteractive; \
apt-utils \
apache2 \
apache2-bin \
libapache2-mod-php7.4 \
php7.4-curl \
php7.4-ldap \
php7.4-mysql \
php7.4-gd \
php7.4-xml \
php7.4-mbstring \
php7.4-zip \
php7.4-bcmath \
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 \
php-memcached \
patch \
curl \
wget \
@@ -36,27 +38,29 @@ gcc \
make \
autoconf \
libc-dev \
libldap-common \
pkg-config \
libmcrypt-dev \
php7.4-dev \
php8.1-dev \
ca-certificates \
unzip \
dnsutils \
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
RUN curl -L -O https://github.com/pear/pearweb_phars/raw/master/go-pear.phar
RUN php go-pear.phar
RUN pecl install mcrypt-1.0.3
RUN pecl install mcrypt
RUN bash -c "echo extension=/usr/lib/php/20190902/mcrypt.so > /etc/php/7.4/mods-available/mcrypt.ini"
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/7.4/apache2/php.ini
RUN sed -i 's/variables_order = .*/variables_order = "EGPCS"/' /etc/php/7.4/cli/php.ini
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 useradd -m --uid 1000 --gid 50 docker
@@ -77,6 +81,8 @@ COPY . /var/www/html
RUN a2enmod rewrite
COPY docker/column-statistics.cnf /etc/mysql/conf.d/column-statistics.cnf
############ INITIAL APPLICATION SETUP #####################
WORKDIR /var/www/html
@@ -99,7 +105,7 @@ RUN \
&& ln -fs "/var/lib/snipeit/keys/ldap_client_tls.cert" "/var/www/html/storage/ldap_client_tls.cert" \
&& ln -fs "/var/lib/snipeit/keys/ldap_client_tls.key" "/var/www/html/storage/ldap_client_tls.key" \
&& chown docker "/var/lib/snipeit/keys/" \
&& chown -h docker "/var/www/html/storage/" \
&& chown -Rh docker "/var/www/html/storage/" \
&& chmod +x /var/www/html/artisan \
&& echo "Finished setting up application in /var/www/html"

View File

@@ -1,30 +1,35 @@
FROM alpine:3
FROM alpine:3.18.6
# Apache + PHP
RUN apk add --no-cache \
apache2 \
php7 \
php7-common \
php7-apache2 \
php7-curl \
php7-ldap \
php7-mysqli \
php7-gd \
php7-xml \
php7-mbstring \
php7-zip \
php7-ctype \
php7-tokenizer \
php7-pdo_mysql \
php7-openssl \
php7-bcmath \
php7-phar \
php7-json \
php7-iconv \
php7-fileinfo \
php7-simplexml \
php7-session \
php7-dom \
php7-xmlwriter \
php81 \
php81-common \
php81-apache2 \
php81-curl \
php81-ldap \
php81-mysqli \
php81-gd \
php81-xml \
php81-mbstring \
php81-zip \
php81-ctype \
php81-tokenizer \
php81-pdo_mysql \
php81-openssl \
php81-bcmath \
php81-phar \
php81-json \
php81-iconv \
php81-fileinfo \
php81-simplexml \
php81-session \
php81-dom \
php81-xmlwriter \
php81-xmlreader \
php81-sodium \
php81-redis \
php81-pecl-memcached \
php81-exif \
curl \
wget \
vim \
@@ -32,10 +37,12 @@ RUN apk add --no-cache \
mysql-client \
tini
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/php7/php.ini
RUN sed -i 's/variables_order = .*/variables_order = "EGPCS"/' /etc/php81/php.ini
COPY docker/000-default-2.4.conf /etc/apache2/conf.d/default.conf
# Enable mod_rewrite

View File

@@ -1,8 +1,8 @@
ARG ENVIRONMENT=production
ARG SNIPEIT_RELEASE=5.1.3
ARG PHP_VERSION=7.4.16
ARG PHP_ALPINE_VERSION=3.13
ARG COMPOSER_VERSION=2.0.11
ARG SNIPEIT_RELEASE=6.1.0
ARG PHP_VERSION=8.2
ARG PHP_ALPINE_VERSION=3.17
ARG COMPOSER_VERSION=2
# Cannot use arguments with 'COPY --from' workaround
# https://github.com/moby/moby/issues/34482#issuecomment-454716952
@@ -52,7 +52,7 @@ RUN { \
# Install php extensions inside docker containers easily
# https://github.com/mlocati/docker-php-extension-installer
COPY --from=mlocati/php-extension-installer:1.2.19 /usr/bin/install-php-extensions /usr/local/bin/
COPY --from=mlocati/php-extension-installer:2.1.15 /usr/bin/install-php-extensions /usr/local/bin/
RUN set -eux; \
install-php-extensions \
bcmath \
@@ -75,14 +75,14 @@ RUN set -eux; \
rm snipeit.tar.gz; \
# Install composer php dependencies
if [ "$ENVIRONMENT" = "production" ]; then \
echo "production enviroment detected!"; \
echo "production environment detected!"; \
composer update \
--no-cache \
--no-dev \
--optimize-autoloader \
--working-dir=/var/www/html; \
else \
echo "development enviroment detected!"; \
echo "development environment detected!"; \
apk add --no-cache \
${DEV_PACKAGES}; \
composer update \
@@ -98,5 +98,6 @@ VOLUME [ "/var/lib/snipeit" ]
COPY --chown=www-data:www-data docker/docker-secrets.env /var/www/html/.env
COPY --chmod=655 docker/docker-entrypoint.sh /usr/local/bin/docker-snipeit-entrypoint
COPY docker/column-statistics.cnf /etc/mysql/conf.d/column-statistics.cnf
ENTRYPOINT [ "/usr/local/bin/docker-snipeit-entrypoint" ]
CMD [ "/usr/local/bin/docker-php-entrypoint", "php-fpm" ]
CMD [ "/usr/local/bin/docker-php-entrypoint", "php-fpm" ]

View File

@@ -1,15 +1,18 @@
![Build Status](https://app.chipperci.com/projects/0e5f8979-31eb-4ee6-9abf-050b76ab0383/status/master) [![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://api.codacy.com/project/badge/Grade/553ce52037fc43ea99149785afcfe641)](https://www.codacy.com/app/snipe/snipe-it?utm_source=github.com&amp;utm_medium=referral&amp;utm_content=snipe/snipe-it&amp;utm_campaign=Badge_Grade)
[![All Contributors](https://img.shields.io/badge/all_contributors-277-orange.svg?style=flat-square)](#contributors) [![Discord](https://badgen.net/badge/icon/discord?icon=discord&label)](https://discord.gg/yZFtShAcKk) [![huntr](https://cdn.huntr.dev/huntr_security_badge_mono.svg)](https://huntr.dev)
![snipe-it-by-grok](https://github.com/snipe/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)
[![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 6](http://laravel.com).
It is built on [Laravel 10](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/).)
__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, 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.
> [!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.
-----
@@ -19,7 +22,7 @@ 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)
<!-- [![Deploy](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy) -->
-----
### User's Manual
@@ -30,8 +33,9 @@ For help using Snipe-IT, check out the [user's manual](https://snipe-it.readme.i
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.
**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.**
> [!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.**
>
-----
### Upgrading
@@ -55,18 +59,25 @@ Please see the [translations documentation](https://snipe-it.readme.io/docs/tran
Since the release of the JSON REST API, several third-party developers have been developing modules and libraries to work with Snipe-IT.
> [!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)
- [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/ParadoxGuitarist/jamf2snipe) by [@ParadoxGuitarist](https://github.com/ParadoxGuitarist) - Python script to sync assets between a JAMFPro instance and a Snipe-IT instance
- [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)
- [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.
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. :)
- [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.
- [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 - Windows agent for Snipe-IT
-----
@@ -74,64 +85,15 @@ As these were created by third-parties, Snipe-IT cannot provide support for thes
Please see the 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.
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.
-----
### Security
To report a security vulnerability, please email security@snipeitapp.com instead of using the issue tracker.
-----
### Contributors
Thanks goes to all of these wonderful people ([emoji key](https://github.com/kentcdodds/all-contributors#emoji-key)) who have helped Snipe-IT get this far:
<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
| [<img src="https://avatars3.githubusercontent.com/u/197404?v=3" width="110px;"/><br /><sub>snipe</sub>](http://www.snipe.net)<br />[💻](https://github.com/snipe/snipe-it/commits?author=snipe "Code") [🚇](#infra-snipe "Infrastructure (Hosting, Build-Tools, etc)") [📖](https://github.com/snipe/snipe-it/commits?author=snipe "Documentation") [⚠️](https://github.com/snipe/snipe-it/commits?author=snipe "Tests") [🐛](https://github.com/snipe/snipe-it/issues?q=author%3Asnipe "Bug reports") [🎨](#design-snipe "Design") [👀](#review-snipe "Reviewed Pull Requests") | [<img src="https://avatars0.githubusercontent.com/u/36335?v=3" width="110px;"/><br /><sub>Brady Wetherington</sub>](http://www.uberbrady.com)<br />[💻](https://github.com/snipe/snipe-it/commits?author=uberbrady "Code") [📖](https://github.com/snipe/snipe-it/commits?author=uberbrady "Documentation") [🚇](#infra-uberbrady "Infrastructure (Hosting, Build-Tools, etc)") [👀](#review-uberbrady "Reviewed Pull Requests") | [<img src="https://avatars0.githubusercontent.com/u/3803132?v=3" width="110px;"/><br /><sub>Daniel Meltzer</sub>](https://github.com/dmeltzer)<br />[💻](https://github.com/snipe/snipe-it/commits?author=dmeltzer "Code") [⚠️](https://github.com/snipe/snipe-it/commits?author=dmeltzer "Tests") [📖](https://github.com/snipe/snipe-it/commits?author=dmeltzer "Documentation") | [<img src="https://avatars0.githubusercontent.com/u/1609106?v=3" width="110px;"/><br /><sub>Michael T</sub>](http://www.tuckertechonline.com)<br />[💻](https://github.com/snipe/snipe-it/commits?author=mtucker6784 "Code") | [<img src="https://avatars2.githubusercontent.com/u/3274937?v=3" width="110px;"/><br /><sub>madd15</sub>](https://github.com/madd15)<br />[📖](https://github.com/snipe/snipe-it/commits?author=madd15 "Documentation") [💬](#question-madd15 "Answering Questions") | [<img src="https://avatars2.githubusercontent.com/u/894126?v=3" width="110px;"/><br /><sub>Vincent Sposato</sub>](https://github.com/vsposato)<br />[💻](https://github.com/snipe/snipe-it/commits?author=vsposato "Code") | [<img src="https://avatars0.githubusercontent.com/u/1639757?v=3" width="110px;"/><br /><sub>Andrea Bergamasco</sub>](https://github.com/vjandrea)<br />[💻](https://github.com/snipe/snipe-it/commits?author=vjandrea "Code") |
| :---: | :---: | :---: | :---: | :---: | :---: | :---: |
| [<img src="https://avatars0.githubusercontent.com/u/10640152?v=3" width="110px;"/><br /><sub>Karol</sub>](https://github.com/kpawelski)<br />[🌍](#translation-kpawelski "Translation") [💻](https://github.com/snipe/snipe-it/commits?author=kpawelski "Code") | [<img src="https://avatars3.githubusercontent.com/u/600106?v=3" width="110px;"/><br /><sub>morph027</sub>](http://blog.morph027.de/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=morph027 "Code") | [<img src="https://avatars3.githubusercontent.com/u/22935755?v=3" width="110px;"/><br /><sub>fvleminckx</sub>](https://github.com/fvleminckx)<br />[🚇](#infra-fvleminckx "Infrastructure (Hosting, Build-Tools, etc)") | [<img src="https://avatars2.githubusercontent.com/u/15633547?v=3" width="110px;"/><br /><sub>itsupportcmsukorg</sub>](https://github.com/itsupportcmsukorg)<br />[💻](https://github.com/snipe/snipe-it/commits?author=itsupportcmsukorg "Code") [🐛](https://github.com/snipe/snipe-it/issues?q=author%3Aitsupportcmsukorg "Bug reports") | [<img src="https://avatars3.githubusercontent.com/u/12373799?v=3" width="110px;"/><br /><sub>Frank</sub>](https://override.io)<br />[💻](https://github.com/snipe/snipe-it/commits?author=base-zero "Code") | [<img src="https://avatars0.githubusercontent.com/u/10137?v=3" width="110px;"/><br /><sub>Deleted user</sub>](https://github.com/ghost)<br />[🌍](#translation-ghost "Translation") [💻](https://github.com/snipe/snipe-it/commits?author=ghost "Code") | [<img src="https://avatars1.githubusercontent.com/u/10802313?v=3" width="110px;"/><br /><sub>tiagom62</sub>](https://github.com/tiagom62)<br />[💻](https://github.com/snipe/snipe-it/commits?author=tiagom62 "Code") [🚇](#infra-tiagom62 "Infrastructure (Hosting, Build-Tools, etc)") |
| [<img src="https://avatars3.githubusercontent.com/u/2389047?v=3" width="110px;"/><br /><sub>Ryan Stafford</sub>](https://github.com/rystaf)<br />[💻](https://github.com/snipe/snipe-it/commits?author=rystaf "Code") | [<img src="https://avatars2.githubusercontent.com/u/10345935?v=3" width="110px;"/><br /><sub>Eammon Hanlon</sub>](https://github.com/ehanlon)<br />[💻](https://github.com/snipe/snipe-it/commits?author=ehanlon "Code") | [<img src="https://avatars0.githubusercontent.com/u/441924?v=3" width="110px;"/><br /><sub>zjean</sub>](https://github.com/zjean)<br />[💻](https://github.com/snipe/snipe-it/commits?author=zjean "Code") | [<img src="https://avatars0.githubusercontent.com/u/12660103?v=3" width="110px;"/><br /><sub>Matthias Frei</sub>](http://www.frei.media)<br />[💻](https://github.com/snipe/snipe-it/commits?author=FREImedia "Code") | [<img src="https://avatars0.githubusercontent.com/u/3767518?v=3" width="110px;"/><br /><sub>opsydev</sub>](https://github.com/opsydev)<br />[💻](https://github.com/snipe/snipe-it/commits?author=opsydev "Code") | [<img src="https://avatars1.githubusercontent.com/u/82290?v=3" width="110px;"/><br /><sub>Daniel Dreier</sub>](http://www.ddreier.com)<br />[💻](https://github.com/snipe/snipe-it/commits?author=ddreier "Code") | [<img src="https://avatars0.githubusercontent.com/u/23448?v=3" width="110px;"/><br /><sub>Nikolai Prokoschenko</sub>](http://rassie.org)<br />[💻](https://github.com/snipe/snipe-it/commits?author=rassie "Code") |
| [<img src="https://avatars0.githubusercontent.com/u/13452757?v=3" width="110px;"/><br /><sub>Drew</sub>](https://github.com/YetAnotherCodeMonkey)<br />[💻](https://github.com/snipe/snipe-it/commits?author=YetAnotherCodeMonkey "Code") | [<img src="https://avatars0.githubusercontent.com/u/1342320?v=3" width="110px;"/><br /><sub>Walter</sub>](https://github.com/merid14)<br />[💻](https://github.com/snipe/snipe-it/commits?author=merid14 "Code") | [<img src="https://avatars3.githubusercontent.com/u/11254614?v=3" width="110px;"/><br /><sub>Petr Baloun</sub>](https://github.com/balous)<br />[💻](https://github.com/snipe/snipe-it/commits?author=balous "Code") | [<img src="https://avatars0.githubusercontent.com/u/6117660?v=3" width="110px;"/><br /><sub>reidblomquist</sub>](https://github.com/reidblomquist)<br />[📖](https://github.com/snipe/snipe-it/commits?author=reidblomquist "Documentation") | [<img src="https://avatars0.githubusercontent.com/u/539914?v=3" width="110px;"/><br /><sub>Mathieu Kooiman</sub>](https://github.com/mathieuk)<br />[💻](https://github.com/snipe/snipe-it/commits?author=mathieuk "Code") | [<img src="https://avatars3.githubusercontent.com/u/6606421?v=3" width="110px;"/><br /><sub>csayre</sub>](https://github.com/csayre)<br />[📖](https://github.com/snipe/snipe-it/commits?author=csayre "Documentation") | [<img src="https://avatars1.githubusercontent.com/u/768488?v=3" width="110px;"/><br /><sub>Adam Dunson</sub>](https://github.com/adamdunson)<br />[💻](https://github.com/snipe/snipe-it/commits?author=adamdunson "Code") |
| [<img src="https://avatars0.githubusercontent.com/u/5547470?v=3" width="110px;"/><br /><sub>Hereward</sub>](https://github.com/thehereward)<br />[💻](https://github.com/snipe/snipe-it/commits?author=thehereward "Code") | [<img src="https://avatars0.githubusercontent.com/u/5802977?v=3" width="110px;"/><br /><sub>swoopdk</sub>](https://github.com/swoopdk)<br />[💻](https://github.com/snipe/snipe-it/commits?author=swoopdk "Code") | [<img src="https://avatars1.githubusercontent.com/u/3470403?v=3" width="110px;"/><br /><sub>Abdullah Alansari</sub>](https://linkedin.com/in/ahimta)<br />[💻](https://github.com/snipe/snipe-it/commits?author=Ahimta "Code") | [<img src="https://avatars0.githubusercontent.com/u/796443?v=3" width="110px;"/><br /><sub>Micael Rodrigues</sub>](https://github.com/MicaelRodrigues)<br />[💻](https://github.com/snipe/snipe-it/commits?author=MicaelRodrigues "Code") | [<img src="https://avatars0.githubusercontent.com/u/614564?v=3" width="110px;"/><br /><sub>Patrick Gallagher</sub>](http://macadmincorner.com)<br />[📖](https://github.com/snipe/snipe-it/commits?author=patgmac "Documentation") | [<img src="https://avatars3.githubusercontent.com/u/7165922?v=3" width="110px;"/><br /><sub>Miliamber</sub>](https://github.com/Miliamber)<br />[💻](https://github.com/snipe/snipe-it/commits?author=Miliamber "Code") | [<img src="https://avatars3.githubusercontent.com/u/861766?v=3" width="110px;"/><br /><sub>hawk554</sub>](https://github.com/hawk554)<br />[💻](https://github.com/snipe/snipe-it/commits?author=hawk554 "Code") |
| [<img src="https://avatars1.githubusercontent.com/u/1695622?v=3" width="110px;"/><br /><sub>Justin Kerr</sub>](http://jbirdkerr.net)<br />[💻](https://github.com/snipe/snipe-it/commits?author=jbirdkerr "Code") | [<img src="https://avatars3.githubusercontent.com/u/11426176?v=3" width="110px;"/><br /><sub>Ira W. Snyder</sub>](http://www.irasnyder.com/devel/)<br />[📖](https://github.com/snipe/snipe-it/commits?author=irasnyd "Documentation") | [<img src="https://avatars2.githubusercontent.com/u/2475759?v=3" width="110px;"/><br /><sub>Aladin Alaily</sub>](https://github.com/aalaily)<br />[💻](https://github.com/snipe/snipe-it/commits?author=aalaily "Code") | [<img src="https://avatars0.githubusercontent.com/u/10247644?v=3" width="110px;"/><br /><sub>Chase Hansen</sub>](https://github.com/kobie-chasehansen)<br />[💻](https://github.com/snipe/snipe-it/commits?author=kobie-chasehansen "Code") [💬](#question-kobie-chasehansen "Answering Questions") [🐛](https://github.com/snipe/snipe-it/issues?q=author%3Akobie-chasehansen "Bug reports") | [<img src="https://avatars2.githubusercontent.com/u/13545400?v=3" width="110px;"/><br /><sub>IDM Helpdesk</sub>](https://github.com/IDM-Helpdesk)<br />[💻](https://github.com/snipe/snipe-it/commits?author=IDM-Helpdesk "Code") | [<img src="https://avatars2.githubusercontent.com/u/614439?v=3" width="110px;"/><br /><sub>Kai</sub>](http://balticer.de)<br />[💻](https://github.com/snipe/snipe-it/commits?author=balticer "Code") | [<img src="https://avatars1.githubusercontent.com/u/8762511?v=3" width="110px;"/><br /><sub>Michael Daniels</sub>](http://www.michaeldaniels.me)<br />[💻](https://github.com/snipe/snipe-it/commits?author=mdaniels5757 "Code") |
| [<img src="https://avatars3.githubusercontent.com/u/1532660?v=3" width="110px;"/><br /><sub>Tom Castleman</sub>](http://tomcastleman.me)<br />[💻](https://github.com/snipe/snipe-it/commits?author=tomcastleman "Code") | [<img src="https://avatars3.githubusercontent.com/u/10723243?v=3" width="110px;"/><br /><sub>Daniel Nemanic</sub>](https://github.com/DanielNemanic)<br />[💻](https://github.com/snipe/snipe-it/commits?author=DanielNemanic "Code") | [<img src="https://avatars0.githubusercontent.com/u/150648?v=3" width="110px;"/><br /><sub>SouthWolf</sub>](https://github.com/southwolf)<br />[💻](https://github.com/snipe/snipe-it/commits?author=southwolf "Code") | [<img src="https://avatars2.githubusercontent.com/u/131616?v=3" width="110px;"/><br /><sub>Ivar Nesje</sub>](https://github.com/ivarne)<br />[💻](https://github.com/snipe/snipe-it/commits?author=ivarne "Code") | [<img src="https://avatars1.githubusercontent.com/u/62333?v=3" width="110px;"/><br /><sub>Jérémy Benoist</sub>](http://www.j0k3r.net)<br />[📖](https://github.com/snipe/snipe-it/commits?author=j0k3r "Documentation") | [<img src="https://avatars2.githubusercontent.com/u/724344?v=3" width="110px;"/><br /><sub>Chris Leathley</sub>](https://github.com/cleathley)<br />[🚇](#infra-cleathley "Infrastructure (Hosting, Build-Tools, etc)") | [<img src="https://avatars0.githubusercontent.com/u/972498?v=3" width="110px;"/><br /><sub>splaer</sub>](https://github.com/splaer)<br />[🐛](https://github.com/snipe/snipe-it/issues?q=author%3Asplaer "Bug reports") [💻](https://github.com/snipe/snipe-it/commits?author=splaer "Code") |
| [<img src="https://avatars1.githubusercontent.com/u/967362?v=3" width="110px;"/><br /><sub>Joe Ferguson</sub>](http://www.joeferguson.me)<br />[💻](https://github.com/snipe/snipe-it/commits?author=svpernova09 "Code") | [<img src="https://avatars3.githubusercontent.com/u/6108682?v=3" width="110px;"/><br /><sub>diwanicki</sub>](https://github.com/diwanicki)<br />[💻](https://github.com/snipe/snipe-it/commits?author=diwanicki "Code") [📖](https://github.com/snipe/snipe-it/commits?author=diwanicki "Documentation") | [<img src="https://avatars3.githubusercontent.com/u/2527115?v=3" width="110px;"/><br /><sub>Lee Thoong Ching</sub>](https://github.com/pakkua80)<br />[📖](https://github.com/snipe/snipe-it/commits?author=pakkua80 "Documentation") [💻](https://github.com/snipe/snipe-it/commits?author=pakkua80 "Code") | [<img src="https://avatars1.githubusercontent.com/u/461491?v=3" width="110px;"/><br /><sub>Marek Šuppa</sub>](http://shu.io)<br />[💻](https://github.com/snipe/snipe-it/commits?author=mrshu "Code") | [<img src="https://avatars1.githubusercontent.com/u/8693762?v=3" width="110px;"/><br /><sub>Juan J. Martinez</sub>](https://github.com/mizar1616)<br />[🌍](#translation-mizar1616 "Translation") | [<img src="https://avatars1.githubusercontent.com/u/1458388?v=3" width="110px;"/><br /><sub>R Ryan Dial</sub>](https://github.com/rrdial)<br />[🌍](#translation-rrdial "Translation") | [<img src="https://avatars2.githubusercontent.com/u/2871745?v=3" width="110px;"/><br /><sub>Andrej Manduch</sub>](https://github.com/burlito)<br />[📖](https://github.com/snipe/snipe-it/commits?author=burlito "Documentation") |
| [<img src="https://avatars0.githubusercontent.com/u/8341172?v=3" width="110px;"/><br /><sub>Jay Richards</sub>](http://www.cordeos.com)<br />[💻](https://github.com/snipe/snipe-it/commits?author=technogenus "Code") | [<img src="https://avatars2.githubusercontent.com/u/7295127?v=3" width="110px;"/><br /><sub>Alexander Innes</sub>](https://necurity.co.uk)<br />[💻](https://github.com/snipe/snipe-it/commits?author=leostat "Code") | [<img src="https://avatars2.githubusercontent.com/u/334485?v=3" width="110px;"/><br /><sub>Danny Garcia</sub>](https://buzzedword.codes)<br />[💻](https://github.com/snipe/snipe-it/commits?author=buzzedword "Code") | [<img src="https://avatars2.githubusercontent.com/u/366855?v=3" width="110px;"/><br /><sub>archpoint</sub>](https://github.com/archpoint)<br />[💻](https://github.com/snipe/snipe-it/commits?author=archpoint "Code") | [<img src="https://avatars1.githubusercontent.com/u/67991?v=3" width="110px;"/><br /><sub>Jake McGraw</sub>](http://www.jakemcgraw.com)<br />[💻](https://github.com/snipe/snipe-it/commits?author=jakemcgraw "Code") | [<img src="https://avatars1.githubusercontent.com/u/1714374?v=3" width="110px;"/><br /><sub>FleischKarussel</sub>](https://github.com/FleischKarussel)<br />[📖](https://github.com/snipe/snipe-it/commits?author=FleischKarussel "Documentation") | [<img src="https://avatars3.githubusercontent.com/u/319644?v=3" width="110px;"/><br /><sub>Dylan Yi</sub>](https://github.com/feeva)<br />[💻](https://github.com/snipe/snipe-it/commits?author=feeva "Code") |
| [<img src="https://avatars2.githubusercontent.com/u/857740?v=3" width="110px;"/><br /><sub>Gil Rutkowski</sub>](http://FlashingCursor.com)<br />[💻](https://github.com/snipe/snipe-it/commits?author=flashingcursor "Code") | [<img src="https://avatars3.githubusercontent.com/u/129360?v=3" width="110px;"/><br /><sub>Desmond Morris</sub>](http://www.desmondmorris.com)<br />[💻](https://github.com/snipe/snipe-it/commits?author=desmondmorris "Code") | [<img src="https://avatars2.githubusercontent.com/u/52936?v=3" width="110px;"/><br /><sub>Nick Peelman</sub>](http://peelman.us)<br />[💻](https://github.com/snipe/snipe-it/commits?author=peelman "Code") | [<img src="https://avatars0.githubusercontent.com/u/53161?v=3" width="110px;"/><br /><sub>Abraham Vegh</sub>](https://abrahamvegh.com)<br />[💻](https://github.com/snipe/snipe-it/commits?author=abrahamvegh "Code") | [<img src="https://avatars0.githubusercontent.com/u/2818680?v=3" width="110px;"/><br /><sub>Mohamed Rashid</sub>](https://github.com/rashivkp)<br />[📖](https://github.com/snipe/snipe-it/commits?author=rashivkp "Documentation") | [<img src="https://avatars3.githubusercontent.com/u/1509456?v=3" width="110px;"/><br /><sub>Kasey</sub>](http://hinchk.github.io)<br />[💻](https://github.com/snipe/snipe-it/commits?author=HinchK "Code") | [<img src="https://avatars2.githubusercontent.com/u/10522541?v=3" width="110px;"/><br /><sub>Brett</sub>](https://github.com/BrettFagerlund)<br />[⚠️](https://github.com/snipe/snipe-it/commits?author=BrettFagerlund "Tests") |
| [<img src="https://avatars2.githubusercontent.com/u/16108587?v=3" width="110px;"/><br /><sub>Jason Spriggs</sub>](http://jasonspriggs.com)<br />[💻](https://github.com/snipe/snipe-it/commits?author=jasonspriggs "Code") | [<img src="https://avatars2.githubusercontent.com/u/1134568?v=3" width="110px;"/><br /><sub>Nate Felton</sub>](http://n8felton.wordpress.com)<br />[💻](https://github.com/snipe/snipe-it/commits?author=n8felton "Code") | [<img src="https://avatars2.githubusercontent.com/u/14036694?v=3" width="110px;"/><br /><sub>Manasses Ferreira</sub>](http://homepages.dcc.ufmg.br/~manassesferreira)<br />[💻](https://github.com/snipe/snipe-it/commits?author=manassesferreira "Code") | [<img src="https://avatars0.githubusercontent.com/u/15913949?v=3" width="110px;"/><br /><sub>Steve</sub>](https://github.com/steveelwood)<br />[⚠️](https://github.com/snipe/snipe-it/commits?author=steveelwood "Tests") | [<img src="https://avatars1.githubusercontent.com/u/3361683?v=3" width="110px;"/><br /><sub>matc</sub>](http://twitter.com/matc)<br />[⚠️](https://github.com/snipe/snipe-it/commits?author=matc "Tests") | [<img src="https://avatars3.githubusercontent.com/u/7405702?v=3" width="110px;"/><br /><sub>Cole R. Davis</sub>](http://www.davisracingteam.com)<br />[⚠️](https://github.com/snipe/snipe-it/commits?author=VanillaNinjaD "Tests") | [<img src="https://avatars2.githubusercontent.com/u/10167681?v=3" width="110px;"/><br /><sub>gibsonjoshua55</sub>](https://github.com/gibsonjoshua55)<br />[💻](https://github.com/snipe/snipe-it/commits?author=gibsonjoshua55 "Code") |
| [<img src="https://avatars2.githubusercontent.com/u/2809241?v=4" width="110px;"/><br /><sub>Robin Temme</sub>](https://github.com/zwerch)<br />[💻](https://github.com/snipe/snipe-it/commits?author=zwerch "Code") | [<img src="https://avatars0.githubusercontent.com/u/6961695?v=4" width="110px;"/><br /><sub>Iman</sub>](https://github.com/imanghafoori1)<br />[💻](https://github.com/snipe/snipe-it/commits?author=imanghafoori1 "Code") | [<img src="https://avatars1.githubusercontent.com/u/6551003?v=4" width="110px;"/><br /><sub>Richard Hofman</sub>](https://github.com/richardhofman6)<br />[💻](https://github.com/snipe/snipe-it/commits?author=richardhofman6 "Code") | [<img src="https://avatars0.githubusercontent.com/u/3697569?v=4" width="110px;"/><br /><sub>gizzmojr</sub>](https://github.com/gizzmojr)<br />[💻](https://github.com/snipe/snipe-it/commits?author=gizzmojr "Code") | [<img src="https://avatars3.githubusercontent.com/u/404729?v=4" width="110px;"/><br /><sub>Jenny Li</sub>](https://github.com/imjennyli)<br />[📖](https://github.com/snipe/snipe-it/commits?author=imjennyli "Documentation") | [<img src="https://avatars0.githubusercontent.com/u/869227?v=4" width="110px;"/><br /><sub>Geoff Young</sub>](https://github.com/GeoffYoung)<br />[💻](https://github.com/snipe/snipe-it/commits?author=GeoffYoung "Code") | [<img src="https://avatars3.githubusercontent.com/u/1068477?v=4" width="110px;"/><br /><sub>Elliot Blackburn</sub>](http://www.elliotblackburn.com)<br />[📖](https://github.com/snipe/snipe-it/commits?author=BlueHatbRit "Documentation") |
| [<img src="https://avatars1.githubusercontent.com/u/6357451?v=4" width="110px;"/><br /><sub>Tõnis Ormisson</sub>](http://andmemasin.eu)<br />[💻](https://github.com/snipe/snipe-it/commits?author=TonisOrmisson "Code") | [<img src="https://avatars0.githubusercontent.com/u/449411?v=4" width="110px;"/><br /><sub>Nicolai Essig</sub>](http://www.nicolai-essig.de)<br />[💻](https://github.com/snipe/snipe-it/commits?author=thakilla "Code") | [<img src="https://avatars1.githubusercontent.com/u/14809698?v=4" width="110px;"/><br /><sub>Danielle</sub>](https://github.com/techincolor)<br />[📖](https://github.com/snipe/snipe-it/commits?author=techincolor "Documentation") | [<img src="https://avatars1.githubusercontent.com/u/18545156?v=4" width="110px;"/><br /><sub>Lawrence</sub>](https://github.com/TheVakman)<br />[⚠️](https://github.com/snipe/snipe-it/commits?author=TheVakman "Tests") [🐛](https://github.com/snipe/snipe-it/issues?q=author%3ATheVakman "Bug reports") | [<img src="https://avatars1.githubusercontent.com/u/22473767?v=4" width="110px;"/><br /><sub>uknzaeinozpas</sub>](https://github.com/uknzaeinozpas)<br />[⚠️](https://github.com/snipe/snipe-it/commits?author=uknzaeinozpas "Tests") [💻](https://github.com/snipe/snipe-it/commits?author=uknzaeinozpas "Code") | [<img src="https://avatars3.githubusercontent.com/u/422752?v=4" width="110px;"/><br /><sub>Ryan</sub>](https://github.com/Gelob)<br />[📖](https://github.com/snipe/snipe-it/commits?author=Gelob "Documentation") | [<img src="https://avatars1.githubusercontent.com/u/10672546?v=4" width="110px;"/><br /><sub>vcordes79</sub>](https://github.com/vcordes79)<br />[💻](https://github.com/snipe/snipe-it/commits?author=vcordes79 "Code") |
| [<img src="https://avatars3.githubusercontent.com/u/27958330?v=4" width="110px;"/><br /><sub>fordster78</sub>](https://github.com/fordster78)<br />[💻](https://github.com/snipe/snipe-it/commits?author=fordster78 "Code") | [<img src="https://avatars0.githubusercontent.com/u/34064225?v=4" width="110px;"/><br /><sub>CronKz</sub>](https://github.com/CronKz)<br />[💻](https://github.com/snipe/snipe-it/commits?author=CronKz "Code") [🌍](#translation-CronKz "Translation") | [<img src="https://avatars1.githubusercontent.com/u/585486?v=4" width="110px;"/><br /><sub>Tim Bishop</sub>](https://github.com/tdb)<br />[💻](https://github.com/snipe/snipe-it/commits?author=tdb "Code") | [<img src="https://avatars2.githubusercontent.com/u/5384694?v=4" width="110px;"/><br /><sub>Sean McIlvenna</sub>](https://www.seanmcilvenna.com)<br />[💻](https://github.com/snipe/snipe-it/commits?author=seanmcilvenna "Code") | [<img src="https://avatars3.githubusercontent.com/u/36515590?v=4" width="110px;"/><br /><sub>cepacs</sub>](https://github.com/cepacs)<br />[🐛](https://github.com/snipe/snipe-it/issues?q=author%3Acepacs "Bug reports") [📖](https://github.com/snipe/snipe-it/commits?author=cepacs "Documentation") | [<img src="https://avatars2.githubusercontent.com/u/37537300?v=4" width="110px;"/><br /><sub>lea-mink</sub>](https://github.com/lea-mink)<br />[💻](https://github.com/snipe/snipe-it/commits?author=lea-mink "Code") | [<img src="https://avatars0.githubusercontent.com/u/7140719?v=4" width="110px;"/><br /><sub>Hannah Tinkler</sub>](https://github.com/hannahtinkler)<br />[💻](https://github.com/snipe/snipe-it/commits?author=hannahtinkler "Code") |
| [<img src="https://avatars1.githubusercontent.com/u/1086388?v=4" width="110px;"/><br /><sub>Doeke Zanstra</sub>](https://github.com/doekman)<br />[💻](https://github.com/snipe/snipe-it/commits?author=doekman "Code") | [<img src="https://avatars1.githubusercontent.com/u/4325936?v=4" width="110px;"/><br /><sub>Djamon Staal</sub>](https://www.sdhd.nl/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=SjamonDaal "Code") | [<img src="https://avatars3.githubusercontent.com/u/12306859?v=4" width="110px;"/><br /><sub>Earl Ramirez</sub>](https://github.com/EarlRamirez)<br />[💻](https://github.com/snipe/snipe-it/commits?author=EarlRamirez "Code") | [<img src="https://avatars2.githubusercontent.com/u/8671456?v=4" width="110px;"/><br /><sub>Richard Ray Thomas</sub>](https://github.com/RichardRay)<br />[💻](https://github.com/snipe/snipe-it/commits?author=RichardRay "Code") | [<img src="https://avatars3.githubusercontent.com/u/1852688?v=4" width="110px;"/><br /><sub>Ryan Kuba</sub>](https://www.taisun.io/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=thelamer "Code") | [<img src="https://avatars1.githubusercontent.com/u/6751928?v=4" width="110px;"/><br /><sub>Brian Monroe</sub>](https://github.com/ParadoxGuitarist)<br />[💻](https://github.com/snipe/snipe-it/commits?author=ParadoxGuitarist "Code") | [<img src="https://avatars1.githubusercontent.com/u/605167?v=4" width="110px;"/><br /><sub>plexorama</sub>](https://github.com/plexorama)<br />[💻](https://github.com/snipe/snipe-it/commits?author=plexorama "Code") |
| [<img src="https://avatars2.githubusercontent.com/u/1795149?v=4" width="110px;"/><br /><sub>Till Deeke</sub>](https://tilldeeke.de)<br />[💻](https://github.com/snipe/snipe-it/commits?author=tilldeeke "Code") | [<img src="https://avatars0.githubusercontent.com/u/12634129?v=4" width="110px;"/><br /><sub>5quirrel</sub>](https://github.com/5quirrel)<br />[💻](https://github.com/snipe/snipe-it/commits?author=5quirrel "Code") | [<img src="https://avatars1.githubusercontent.com/u/13071957?v=4" width="110px;"/><br /><sub>Jason</sub>](https://github.com/jasonlshelton)<br />[💻](https://github.com/snipe/snipe-it/commits?author=jasonlshelton "Code") | [<img src="https://avatars3.githubusercontent.com/u/7128321?v=4" width="110px;"/><br /><sub>Antti</sub>](https://github.com/chemfy)<br />[💻](https://github.com/snipe/snipe-it/commits?author=chemfy "Code") | [<img src="https://avatars3.githubusercontent.com/u/10080364?v=4" width="110px;"/><br /><sub>DeusMaximus</sub>](https://github.com/DeusMaximus)<br />[💻](https://github.com/snipe/snipe-it/commits?author=DeusMaximus "Code") | [<img src="https://avatars2.githubusercontent.com/u/16384611?v=4" width="110px;"/><br /><sub>a-royal</sub>](https://github.com/A-ROYAL)<br />[🌍](#translation-A-ROYAL "Translation") | [<img src="https://avatars0.githubusercontent.com/u/5358208?v=4" width="110px;"/><br /><sub>Alberto Aldrigo</sub>](https://github.com/albertoaldrigo)<br />[🌍](#translation-albertoaldrigo "Translation") |
| [<img src="https://avatars0.githubusercontent.com/u/1412342?v=4" width="110px;"/><br /><sub>Alex Stanev</sub>](http://alex.stanev.org/blog)<br />[🌍](#translation-RealEnder "Translation") | [<img src="https://avatars0.githubusercontent.com/u/177295?v=4" width="110px;"/><br /><sub>Andreas Rehm</sub>](http://devel.itsolution2.de)<br />[🌍](#translation-sirrus "Translation") | [<img src="https://avatars0.githubusercontent.com/u/5080535?v=4" width="110px;"/><br /><sub>Andreas Erhard</sub>](https://github.com/xelan)<br />[🌍](#translation-xelan "Translation") | [<img src="https://avatars2.githubusercontent.com/u/142350?v=4" width="110px;"/><br /><sub>Andrés Vanegas Jiménez</sub>](https://github.com/angeldeejay)<br />[🌍](#translation-angeldeejay "Translation") | [<img src="https://avatars0.githubusercontent.com/u/3910403?v=4" width="110px;"/><br /><sub>Antonio Schiavon</sub>](https://github.com/aschiavon91)<br />[🌍](#translation-aschiavon91 "Translation") | [<img src="https://avatars0.githubusercontent.com/u/10464547?v=4" width="110px;"/><br /><sub>benunter</sub>](https://github.com/benunter)<br />[🌍](#translation-benunter "Translation") | [<img src="https://avatars1.githubusercontent.com/u/5038647?v=4" width="110px;"/><br /><sub>Borys Żmuda</sub>](http://catweb24.pl)<br />[🌍](#translation-rudashi "Translation") |
| [<img src="https://avatars0.githubusercontent.com/u/5539359?v=4" width="110px;"/><br /><sub>chibacityblues</sub>](https://github.com/chibacityblues)<br />[🌍](#translation-chibacityblues "Translation") | [<img src="https://avatars1.githubusercontent.com/u/1954830?v=4" width="110px;"/><br /><sub>Chien Wei Lin</sub>](https://github.com/cwlin0416)<br />[🌍](#translation-cwlin0416 "Translation") | [<img src="https://avatars3.githubusercontent.com/u/11700533?v=4" width="110px;"/><br /><sub>Christian Schuster</sub>](https://github.com/Againstreality)<br />[🌍](#translation-Againstreality "Translation") | [<img src="https://avatars1.githubusercontent.com/u/4308704?v=4" width="110px;"/><br /><sub>Christian Stefanus</sub>](http://chriss.webhostid.com)<br />[🌍](#translation-kopi-item "Translation") | [<img src="https://avatars3.githubusercontent.com/u/3009327?v=4" width="110px;"/><br /><sub>wxcafé</sub>](http://wxcafe.net)<br />[🌍](#translation-wxcafe "Translation") | [<img src="https://avatars3.githubusercontent.com/u/35761525?v=4" width="110px;"/><br /><sub>dpyroc</sub>](https://github.com/dpyroc)<br />[🌍](#translation-dpyroc "Translation") | [<img src="https://avatars1.githubusercontent.com/u/2153639?v=4" width="110px;"/><br /><sub>Daniel Friedlmaier</sub>](http://www.friedlmaier.net)<br />[🌍](#translation-da-friedl "Translation") |
| [<img src="https://avatars1.githubusercontent.com/u/2947640?v=4" width="110px;"/><br /><sub>Daniel Heene</sub>](https://github.com/danielheene)<br />[🌍](#translation-danielheene "Translation") | [<img src="https://avatars3.githubusercontent.com/u/319022?v=4" width="110px;"/><br /><sub>danielcb</sub>](https://github.com/danielcb)<br />[🌍](#translation-danielcb "Translation") | [<img src="https://avatars3.githubusercontent.com/u/15846537?v=4" width="110px;"/><br /><sub>Dominik Senti</sub>](https://github.com/dominiksenti)<br />[🌍](#translation-dominiksenti "Translation") | [<img src="https://avatars0.githubusercontent.com/u/25570954?v=4" width="110px;"/><br /><sub>Eric Gautheron</sub>](http://www.konectik.com)<br />[🌍](#translation-EpixFr "Translation") | [<img src="https://avatars1.githubusercontent.com/u/5732623?v=4" width="110px;"/><br /><sub>Erlend Pilø</sub>](https://erlpil.com)<br />[🌍](#translation-Erlpil "Translation") | [<img src="https://avatars0.githubusercontent.com/u/541832?v=4" width="110px;"/><br /><sub>Fabio Rapposelli</sub>](http://fabio.technology)<br />[🌍](#translation-frapposelli "Translation") | [<img src="https://avatars2.githubusercontent.com/u/3605240?v=4" width="110px;"/><br /><sub>Felipe Barros</sub>](https://github.com/fgbs)<br />[🌍](#translation-fgbs "Translation") |
| [<img src="https://avatars0.githubusercontent.com/u/257745?v=4" width="110px;"/><br /><sub>Fernando Possebon</sub>](https://github.com/possebon)<br />[🌍](#translation-possebon "Translation") | [<img src="https://avatars3.githubusercontent.com/u/2540832?v=4" width="110px;"/><br /><sub>gdraque</sub>](https://github.com/gdraque)<br />[🌍](#translation-gdraque "Translation") | [<img src="https://avatars0.githubusercontent.com/u/23440381?v=4" width="110px;"/><br /><sub>Georg Wallisch</sub>](https://github.com/georgwallisch)<br />[🌍](#translation-georgwallisch "Translation") | [<img src="https://avatars1.githubusercontent.com/u/9852832?v=4" width="110px;"/><br /><sub>Gerardo Robles</sub>](https://github.com/jgroblesr85)<br />[🌍](#translation-jgroblesr85 "Translation") | [<img src="https://avatars2.githubusercontent.com/u/11082640?v=4" width="110px;"/><br /><sub>Gluek</sub>](https://t.me/Gluek)<br />[🌍](#translation-mrgluek "Translation") | [<img src="https://avatars0.githubusercontent.com/u/6847946?v=4" width="110px;"/><br /><sub>AdnanAbuShahad</sub>](https://github.com/AdnanAbuShahad)<br />[🌍](#translation-AdnanAbuShahad "Translation") | [<img src="https://avatars1.githubusercontent.com/u/3580608?v=4" width="110px;"/><br /><sub>Hafidzi My</sub>](https://hafidzi.my)<br />[🌍](#translation-hafidzi "Translation") |
| [<img src="https://avatars2.githubusercontent.com/u/205521?v=4" width="110px;"/><br /><sub>Harim Park</sub>](https://github.com/fofwisdom)<br />[🌍](#translation-fofwisdom "Translation") | [<img src="https://avatars2.githubusercontent.com/u/3333841?v=4" width="110px;"/><br /><sub>Henrik Kentsson</sub>](http://www.kentsson.se)<br />[🌍](#translation-Kentsson "Translation") | [<img src="https://avatars0.githubusercontent.com/u/36551034?v=4" width="110px;"/><br /><sub>Husnul Yaqien</sub>](https://github.com/husnulyaqien)<br />[🌍](#translation-husnulyaqien "Translation") | [<img src="https://avatars1.githubusercontent.com/u/2372747?v=4" width="110px;"/><br /><sub>Ibrahim</sub>](http://abaalkhail.org)<br />[🌍](#translation-abaalkh "Translation") | [<img src="https://avatars0.githubusercontent.com/u/1389334?v=4" width="110px;"/><br /><sub>igolman</sub>](https://github.com/igolman)<br />[🌍](#translation-igolman "Translation") | [<img src="https://avatars1.githubusercontent.com/u/3257070?v=4" width="110px;"/><br /><sub>itangiang</sub>](https://github.com/itangiang)<br />[🌍](#translation-itangiang "Translation") | [<img src="https://avatars2.githubusercontent.com/u/14814254?v=4" width="110px;"/><br /><sub>jarby1211</sub>](https://github.com/jarby1211)<br />[🌍](#translation-jarby1211 "Translation") |
| [<img src="https://avatars3.githubusercontent.com/u/6719357?v=4" width="110px;"/><br /><sub>Jhonn Willker</sub>](http://jwillker.com)<br />[🌍](#translation-JohnWillker "Translation") | [<img src="https://avatars2.githubusercontent.com/u/10983635?v=4" width="110px;"/><br /><sub>Jose</sub>](https://github.com/joxelito94)<br />[🌍](#translation-joxelito94 "Translation") | [<img src="https://avatars0.githubusercontent.com/u/5206122?v=4" width="110px;"/><br /><sub>laopangzi</sub>](https://github.com/laopangzi)<br />[🌍](#translation-laopangzi "Translation") | [<img src="https://avatars2.githubusercontent.com/u/79707?v=4" width="110px;"/><br /><sub>Lars Strojny</sub>](http://usrportage.de)<br />[🌍](#translation-lstrojny "Translation") | [<img src="https://avatars0.githubusercontent.com/u/389801?v=4" width="110px;"/><br /><sub>MarcosBL</sub>](http://twitter.com/marcosbl)<br />[🌍](#translation-MarcosBL "Translation") | [<img src="https://avatars3.githubusercontent.com/u/35664606?v=4" width="110px;"/><br /><sub>marie joy cajes</sub>](https://github.com/mariejoyacajes)<br />[🌍](#translation-mariejoyacajes "Translation") | [<img src="https://avatars2.githubusercontent.com/u/3052816?v=4" width="110px;"/><br /><sub>Mark S. Johansen</sub>](http://www.markjohansen.dk)<br />[🌍](#translation-msjohansen "Translation") |
| [<img src="https://avatars2.githubusercontent.com/u/982885?v=4" width="110px;"/><br /><sub>Martin Stub</sub>](http://martinstub.dk)<br />[🌍](#translation-stubben "Translation") | [<img src="https://avatars2.githubusercontent.com/u/28959963?v=4" width="110px;"/><br /><sub>Meyer Flavio</sub>](https://github.com/meyerf99)<br />[🌍](#translation-meyerf99 "Translation") | [<img src="https://avatars3.githubusercontent.com/u/796443?v=4" width="110px;"/><br /><sub>Micael Rodrigues</sub>](https://github.com/MicaelRodrigues)<br />[🌍](#translation-MicaelRodrigues "Translation") | [<img src="https://avatars0.githubusercontent.com/u/10481331?v=4" width="110px;"/><br /><sub>Mikael Rasmussen</sub>](http://rubixy.com/)<br />[🌍](#translation-mikaelssen "Translation") | [<img src="https://avatars1.githubusercontent.com/u/1544552?v=4" width="110px;"/><br /><sub>IxFail</sub>](https://github.com/IxFail)<br />[🌍](#translation-IxFail "Translation") | [<img src="https://avatars3.githubusercontent.com/u/18483118?v=4" width="110px;"/><br /><sub>Mohammed Fota</sub>](http://www.mohammedfota.com)<br />[🌍](#translation-MohammedFota "Translation") | [<img src="https://avatars0.githubusercontent.com/u/227080?v=4" width="110px;"/><br /><sub>Moayad Alserihi</sub>](https://github.com/omego)<br />[🌍](#translation-omego "Translation") |
| [<img src="https://avatars0.githubusercontent.com/u/1680266?v=4" width="110px;"/><br /><sub>saymd</sub>](https://github.com/saymd)<br />[🌍](#translation-saymd "Translation") | [<img src="https://avatars0.githubusercontent.com/u/1826808?v=4" width="110px;"/><br /><sub>Patrik Larsson</sub>](https://nordsken.se)<br />[🌍](#translation-pooot "Translation") | [<img src="https://avatars1.githubusercontent.com/u/20584746?v=4" width="110px;"/><br /><sub>drcryo</sub>](https://github.com/drcryo)<br />[🌍](#translation-drcryo "Translation") | [<img src="https://avatars1.githubusercontent.com/u/19408004?v=4" width="110px;"/><br /><sub>pawel1615</sub>](https://github.com/pawel1615)<br />[🌍](#translation-pawel1615 "Translation") | [<img src="https://avatars2.githubusercontent.com/u/23340468?v=4" width="110px;"/><br /><sub>bodrovics</sub>](https://github.com/bodrovics)<br />[🌍](#translation-bodrovics "Translation") | [<img src="https://avatars0.githubusercontent.com/u/3257654?v=4" width="110px;"/><br /><sub>priatna</sub>](https://github.com/priatna)<br />[🌍](#translation-priatna "Translation") | [<img src="https://avatars1.githubusercontent.com/u/5358374?v=4" width="110px;"/><br /><sub>Fan Jiang</sub>](https://amayume.net)<br />[🌍](#translation-ProfFan "Translation") |
| [<img src="https://avatars1.githubusercontent.com/u/22555451?v=4" width="110px;"/><br /><sub>ragnarcx</sub>](https://github.com/ragnarcx)<br />[🌍](#translation-ragnarcx "Translation") | [<img src="https://avatars2.githubusercontent.com/u/18654582?v=4" width="110px;"/><br /><sub>Rein van Haaren</sub>](http://www.reinvanhaaren.nl/)<br />[🌍](#translation-reinvanhaaren "Translation") | [<img src="https://avatars1.githubusercontent.com/u/386672?v=4" width="110px;"/><br /><sub>Teguh Dwicaksana</sub>](http://dheche.songolimo.net)<br />[🌍](#translation-dheche "Translation") | [<img src="https://avatars2.githubusercontent.com/u/2572552?v=4" width="110px;"/><br /><sub>fraccie</sub>](https://github.com/FRaccie)<br />[🌍](#translation-FRaccie "Translation") | [<img src="https://avatars0.githubusercontent.com/u/35182720?v=4" width="110px;"/><br /><sub>vinzruzell</sub>](https://github.com/vinzruzell)<br />[🌍](#translation-vinzruzell "Translation") | [<img src="https://avatars1.githubusercontent.com/u/7883603?v=4" width="110px;"/><br /><sub>Kevin Austin</sub>](http://kevinaustin.com)<br />[🌍](#translation-vipsystem "Translation") | [<img src="https://avatars3.githubusercontent.com/u/3861828?v=4" width="110px;"/><br /><sub>Wira Sandy</sub>](http://azuraweb.xyz)<br />[🌍](#translation-wira-sandy "Translation") |
| [<img src="https://avatars2.githubusercontent.com/u/8663789?v=4" width="110px;"/><br /><sub>Илья</sub>](https://github.com/GrayHoax)<br />[🌍](#translation-GrayHoax "Translation") | [<img src="https://avatars3.githubusercontent.com/u/30119111?v=4" width="110px;"/><br /><sub>GodUseVPN</sub>](https://github.com/godusevpn)<br />[🌍](#translation-godusevpn "Translation") | [<img src="https://avatars1.githubusercontent.com/u/745576?v=4" width="110px;"/><br /><sub>周周</sub>](https://github.com/EngrZhou)<br />[🌍](#translation-EngrZhou "Translation") | [<img src="https://avatars3.githubusercontent.com/u/1631095?v=4" width="110px;"/><br /><sub>Sam</sub>](https://github.com/takuy)<br />[💻](https://github.com/snipe/snipe-it/commits?author=takuy "Code") | [<img src="https://avatars1.githubusercontent.com/u/264022?v=4" width="110px;"/><br /><sub>Azerothian</sub>](https://www.illisian.com.au)<br />[💻](https://github.com/snipe/snipe-it/commits?author=Azerothian "Code") | [<img src="https://avatars1.githubusercontent.com/u/4930051?v=4" width="110px;"/><br /><sub>Wes Hulette</sub>](http://macfoo.wordpress.com/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=jwhulette "Code") | [<img src="https://avatars0.githubusercontent.com/u/8134591?v=4" width="110px;"/><br /><sub>patrict</sub>](https://github.com/patrict)<br />[💻](https://github.com/snipe/snipe-it/commits?author=patrict "Code") |
| [<img src="https://avatars3.githubusercontent.com/u/2611616?v=4" width="110px;"/><br /><sub>Dmitriy Minaev</sub>](https://github.com/VELIKII-DIVAN)<br />[💻](https://github.com/snipe/snipe-it/commits?author=VELIKII-DIVAN "Code") | [<img src="https://avatars0.githubusercontent.com/u/5132245?v=4" width="110px;"/><br /><sub>liquidhorse</sub>](https://github.com/liquidhorse)<br />[💻](https://github.com/snipe/snipe-it/commits?author=liquidhorse "Code") | [<img src="https://avatars1.githubusercontent.com/u/183678?v=4" width="110px;"/><br /><sub>Jordi Boggiano</sub>](https://seld.be/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=Seldaek "Code") | [<img src="https://avatars0.githubusercontent.com/u/653557?v=4" width="110px;"/><br /><sub>Ivan Nieto</sub>](https://github.com/inietov)<br />[💻](https://github.com/snipe/snipe-it/commits?author=inietov "Code") | [<img src="https://avatars2.githubusercontent.com/u/6764151?v=4" width="110px;"/><br /><sub>Ben RUBSON</sub>](https://github.com/benrubson)<br />[💻](https://github.com/snipe/snipe-it/commits?author=benrubson "Code") | [<img src="https://avatars2.githubusercontent.com/u/8554558?v=4" width="110px;"/><br /><sub>NMathar</sub>](https://github.com/NMathar)<br />[💻](https://github.com/snipe/snipe-it/commits?author=NMathar "Code") | [<img src="https://avatars1.githubusercontent.com/u/139566?v=4" width="110px;"/><br /><sub>Steffen</sub>](https://github.com/smb)<br />[💻](https://github.com/snipe/snipe-it/commits?author=smb "Code") |
| [<img src="https://avatars0.githubusercontent.com/u/6609453?v=4" width="110px;"/><br /><sub>Sxderp</sub>](https://github.com/Sxderp)<br />[💻](https://github.com/snipe/snipe-it/commits?author=Sxderp "Code") | [<img src="https://avatars1.githubusercontent.com/u/4807843?v=4" width="110px;"/><br /><sub>fanta8897</sub>](https://github.com/fanta8897)<br />[💻](https://github.com/snipe/snipe-it/commits?author=fanta8897 "Code") | [<img src="https://avatars2.githubusercontent.com/u/2576509?v=4" width="110px;"/><br /><sub>Andrey Bolonin</sub>](https://andreybolonin.com/phpconsulting/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=andreybolonin "Code") | [<img src="https://avatars3.githubusercontent.com/u/2173307?v=4" width="110px;"/><br /><sub>shinayoshi</sub>](http://www.shinayoshi.net/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=shinayoshi "Code") | [<img src="https://avatars3.githubusercontent.com/u/2130159?v=4" width="110px;"/><br /><sub>Hubert</sub>](https://github.com/reuser)<br />[💻](https://github.com/snipe/snipe-it/commits?author=reuser "Code") | [<img src="https://avatars0.githubusercontent.com/u/6865789?v=4" width="110px;"/><br /><sub>KeenRivals</sub>](https://brashear.me)<br />[💻](https://github.com/snipe/snipe-it/commits?author=KeenRivals "Code") | [<img src="https://avatars3.githubusercontent.com/u/2902513?v=4" width="110px;"/><br /><sub>omyno</sub>](https://github.com/omyno)<br />[💻](https://github.com/snipe/snipe-it/commits?author=omyno "Code") |
| [<img src="https://avatars1.githubusercontent.com/u/6271335?v=4" width="110px;"/><br /><sub>Evgeny</sub>](https://github.com/jackka)<br />[💻](https://github.com/snipe/snipe-it/commits?author=jackka "Code") | [<img src="https://avatars2.githubusercontent.com/u/1169963?v=4" width="110px;"/><br /><sub>Colin Campbell</sub>](https://digitalist.se)<br />[💻](https://github.com/snipe/snipe-it/commits?author=colin-campbell "Code") | [<img src="https://avatars3.githubusercontent.com/u/2872098?v=4" width="110px;"/><br /><sub>Ľubomír Kučera</sub>](https://github.com/lubo)<br />[💻](https://github.com/snipe/snipe-it/commits?author=lubo "Code") | [<img src="https://avatars3.githubusercontent.com/u/570639?v=4" width="110px;"/><br /><sub>Martin Meredith</sub>](https://www.sourceguru.net)<br />[💻](https://github.com/snipe/snipe-it/commits?author=Mezzle "Code") | [<img src="https://avatars1.githubusercontent.com/u/7632599?v=4" width="110px;"/><br /><sub>Tim Farmer</sub>](https://github.com/timothyfarmer)<br />[💻](https://github.com/snipe/snipe-it/commits?author=timothyfarmer "Code") | [<img src="https://avatars0.githubusercontent.com/u/17459600?v=4" width="110px;"/><br /><sub>Marián Skrip</sub>](https://github.com/mskrip)<br />[💻](https://github.com/snipe/snipe-it/commits?author=mskrip "Code") | [<img src="https://avatars2.githubusercontent.com/u/47435081?v=4" width="110px;"/><br /><sub>Godfrey Martinez</sub>](https://github.com/Godmartinz)<br />[💻](https://github.com/snipe/snipe-it/commits?author=Godmartinz "Code") |
| [<img src="https://avatars1.githubusercontent.com/u/2075128?v=4" width="110px;"/><br /><sub>bigtreeEdo</sub>](https://github.com/bigtreeEdo)<br />[💻](https://github.com/snipe/snipe-it/commits?author=bigtreeEdo "Code") | [<img src="https://avatars0.githubusercontent.com/u/5000430?v=4" width="110px;"/><br /><sub>Colin McNeil</sub>](https://colinmcneil.me/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=ColinMcNeil "Code") | [<img src="https://avatars0.githubusercontent.com/u/421625?v=4" width="110px;"/><br /><sub>JoKneeMo</sub>](https://github.com/JoKneeMo)<br />[💻](https://github.com/snipe/snipe-it/commits?author=JoKneeMo "Code") | [<img src="https://avatars0.githubusercontent.com/u/54849013?v=4" width="110px;"/><br /><sub>Joshi</sub>](http://www.redbridge.se)<br />[💻](https://github.com/snipe/snipe-it/commits?author=joshi-redbridge "Code") | [<img src="https://avatars2.githubusercontent.com/u/15731458?v=4" width="110px;"/><br /><sub>Anthony Burns</sub>](https://github.com/anthonypburns)<br />[💻](https://github.com/snipe/snipe-it/commits?author=anthonypburns "Code") | [<img src="https://avatars1.githubusercontent.com/u/63399474?v=4" width="110px;"/><br /><sub>johnson-yi</sub>](https://github.com/johnson-yi)<br />[💻](https://github.com/snipe/snipe-it/commits?author=johnson-yi "Code") | [<img src="https://avatars1.githubusercontent.com/u/1862720?v=4" width="110px;"/><br /><sub>Sanjay Govind</sub>](https://tangentmc.net)<br />[💻](https://github.com/snipe/snipe-it/commits?author=sanjay900 "Code") |
| [<img src="https://avatars0.githubusercontent.com/u/1255375?v=4" width="110px;"/><br /><sub>Peter Upfold</sub>](https://peter.upfold.org.uk/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=PeterUpfold "Code") | [<img src="https://avatars2.githubusercontent.com/u/961717?v=4" width="110px;"/><br /><sub>Jared Biel</sub>](https://github.com/jbiel)<br />[💻](https://github.com/snipe/snipe-it/commits?author=jbiel "Code") | [<img src="https://avatars1.githubusercontent.com/u/1733625?v=4" width="110px;"/><br /><sub>Dampfklon</sub>](https://github.com/dampfklon)<br />[💻](https://github.com/snipe/snipe-it/commits?author=dampfklon "Code") | [<img src="https://avatars2.githubusercontent.com/u/52973156?v=4" width="110px;"/><br /><sub>Charles Hamilton</sub>](https://communityclosing.com)<br />[💻](https://github.com/snipe/snipe-it/commits?author=chamilton-ccn "Code") | [<img src="https://avatars.githubusercontent.com/u/551789?v=4" width="110px;"/><br /><sub>Giuseppe Iannello</sub>](https://github.com/giannello)<br />[💻](https://github.com/snipe/snipe-it/commits?author=giannello "Code") | [<img src="https://avatars.githubusercontent.com/u/3691490?v=4" width="110px;"/><br /><sub>Peter Dave Hello</sub>](https://www.peterdavehello.org/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=PeterDaveHello "Code") | [<img src="https://avatars.githubusercontent.com/u/6106332?v=4" width="110px;"/><br /><sub>sigmoidal</sub>](https://github.com/sigmoidal)<br />[💻](https://github.com/snipe/snipe-it/commits?author=sigmoidal "Code") |
| [<img src="https://avatars.githubusercontent.com/u/2082554?v=4" width="110px;"/><br /><sub>Vincent Lainé</sub>](https://github.com/phenixdotnet)<br />[💻](https://github.com/snipe/snipe-it/commits?author=phenixdotnet "Code") | [<img src="https://avatars.githubusercontent.com/u/1943040?v=4" width="110px;"/><br /><sub>Lucas Pleß</sub>](http://www.lucas-pless.com)<br />[💻](https://github.com/snipe/snipe-it/commits?author=derlucas "Code") | [<img src="https://avatars.githubusercontent.com/u/472804?v=4" width="110px;"/><br /><sub>Ian Littman</sub>](http://twitter.com/iansltx)<br />[💻](https://github.com/snipe/snipe-it/commits?author=iansltx "Code") | [<img src="https://avatars.githubusercontent.com/u/3519029?v=4" width="110px;"/><br /><sub>João Paulo</sub>](https://github.com/PauloLuna)<br />[💻](https://github.com/snipe/snipe-it/commits?author=PauloLuna "Code") | [<img src="https://avatars.githubusercontent.com/u/70443365?v=4" width="110px;"/><br /><sub>ThoBur</sub>](https://github.com/ThoBur)<br />[💻](https://github.com/snipe/snipe-it/commits?author=ThoBur "Code") | [<img src="https://avatars.githubusercontent.com/u/1972329?v=4" width="110px;"/><br /><sub>Alexander Chibrikin</sub>](http://phpprofi.ru/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=alek13 "Code") | [<img src="https://avatars.githubusercontent.com/u/438332?v=4" width="110px;"/><br /><sub>Anthony Winstanley</sub>](https://github.com/winstan)<br />[💻](https://github.com/snipe/snipe-it/commits?author=winstan "Code") |
| [<img src="https://avatars.githubusercontent.com/u/3075214?v=4" width="110px;"/><br /><sub>Folke</sub>](https://github.com/fashberg)<br />[💻](https://github.com/snipe/snipe-it/commits?author=fashberg "Code") | [<img src="https://avatars.githubusercontent.com/u/1351571?v=4" width="110px;"/><br /><sub>Bennett Blodinger</sub>](https://github.com/benwa)<br />[💻](https://github.com/snipe/snipe-it/commits?author=benwa "Code") | [<img src="https://avatars.githubusercontent.com/u/2974631?v=4" width="110px;"/><br /><sub>NMC</sub>](https://nmc.dev)<br />[💻](https://github.com/snipe/snipe-it/commits?author=ncareau "Code") | [<img src="https://avatars.githubusercontent.com/u/52182449?v=4" width="110px;"/><br /><sub>andres-baller</sub>](https://github.com/andres-baller)<br />[💻](https://github.com/snipe/snipe-it/commits?author=andres-baller "Code") | [<img src="https://avatars.githubusercontent.com/u/67109348?v=4" width="110px;"/><br /><sub>sean-borg</sub>](https://github.com/sean-borg)<br />[💻](https://github.com/snipe/snipe-it/commits?author=sean-borg "Code") | [<img src="https://avatars.githubusercontent.com/u/32170051?v=4" width="110px;"/><br /><sub>EDVLeer</sub>](https://github.com/EDVLeer)<br />[💻](https://github.com/snipe/snipe-it/commits?author=EDVLeer "Code") | [<img src="https://avatars.githubusercontent.com/u/23075196?v=4" width="110px;"/><br /><sub>Kurokat</sub>](https://github.com/Kurokat)<br />[💻](https://github.com/snipe/snipe-it/commits?author=Kurokat "Code") |
| [<img src="https://avatars.githubusercontent.com/u/915514?v=4" width="110px;"/><br /><sub>Kevin Köllmann</sub>](https://www.kevinkoellmann.de)<br />[💻](https://github.com/snipe/snipe-it/commits?author=koelle25 "Code") | [<img src="https://avatars.githubusercontent.com/u/49025941?v=4" width="110px;"/><br /><sub>sw-mreyes</sub>](https://github.com/sw-mreyes)<br />[💻](https://github.com/snipe/snipe-it/commits?author=sw-mreyes "Code") | [<img src="https://avatars.githubusercontent.com/u/70129?v=4" width="110px;"/><br /><sub>Joel Pittet</sub>](https://pittet.ca)<br />[💻](https://github.com/snipe/snipe-it/commits?author=joelpittet "Code") | [<img src="https://avatars.githubusercontent.com/u/792695?v=4" width="110px;"/><br /><sub>Eli Young</sub>](https://elyscape.com)<br />[💻](https://github.com/snipe/snipe-it/commits?author=elyscape "Code") | [<img src="https://avatars.githubusercontent.com/u/317015?v=4" width="110px;"/><br /><sub>Raell Dottin</sub>](https://github.com/raelldottin)<br />[💻](https://github.com/snipe/snipe-it/commits?author=raelldottin "Code") | [<img src="https://avatars.githubusercontent.com/u/1446856?v=4" width="110px;"/><br /><sub>Tom Misilo</sub>](https://github.com/misilot)<br />[💻](https://github.com/snipe/snipe-it/commits?author=misilot "Code") | [<img src="https://avatars.githubusercontent.com/u/4496300?v=4" width="110px;"/><br /><sub>David Davenne</sub>](http://david.davenne.be)<br />[💻](https://github.com/snipe/snipe-it/commits?author=JuustoMestari "Code") |
| [<img src="https://avatars.githubusercontent.com/u/9255772?v=4" width="110px;"/><br /><sub>Mark Stenglein</sub>](https://markstenglein.com)<br />[💻](https://github.com/snipe/snipe-it/commits?author=ocelotsloth "Code") | [<img src="https://avatars.githubusercontent.com/u/35658596?v=4" width="110px;"/><br /><sub>ajsy</sub>](https://github.com/ajsy)<br />[💻](https://github.com/snipe/snipe-it/commits?author=ajsy "Code") | [<img src="https://avatars.githubusercontent.com/u/3628035?v=4" width="110px;"/><br /><sub>Jan Kiesewetter</sub>](https://github.com/t3easy)<br />[💻](https://github.com/snipe/snipe-it/commits?author=t3easy "Code") | [<img src="https://avatars.githubusercontent.com/u/79449630?v=4" width="110px;"/><br /><sub>Tetrachloromethane250</sub>](https://github.com/Tetrachloromethane250)<br />[💻](https://github.com/snipe/snipe-it/commits?author=Tetrachloromethane250 "Code") | [<img src="https://avatars.githubusercontent.com/u/22004482?v=4" width="110px;"/><br /><sub>Lars Kajes</sub>](https://www.kajes.se/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=kajes "Code") | [<img src="https://avatars.githubusercontent.com/u/13993216?v=4" width="110px;"/><br /><sub>Joly0</sub>](https://github.com/Joly0)<br />[💻](https://github.com/snipe/snipe-it/commits?author=Joly0 "Code") | [<img src="https://avatars.githubusercontent.com/u/1501022?v=4" width="110px;"/><br /><sub>theburger</sub>](https://github.com/limeless)<br />[💻](https://github.com/snipe/snipe-it/commits?author=limeless "Code") |
| [<img src="https://avatars.githubusercontent.com/u/36065681?v=4" width="110px;"/><br /><sub>David Valin Alonso</sub>](https://github.com/deivishome)<br />[💻](https://github.com/snipe/snipe-it/commits?author=deivishome "Code") | [<img src="https://avatars.githubusercontent.com/u/8290389?v=4" width="110px;"/><br /><sub>andreaci</sub>](https://github.com/andreaci)<br />[💻](https://github.com/snipe/snipe-it/commits?author=andreaci "Code") | [<img src="https://avatars.githubusercontent.com/u/1828542?v=4" width="110px;"/><br /><sub>Jelle Sebreghts</sub>](http://www.jellesebreghts.be)<br />[💻](https://github.com/snipe/snipe-it/commits?author=Jelle-S "Code") | [<img src="https://avatars.githubusercontent.com/u/11180862?v=4" width="110px;"/><br /><sub>Michael Pietsch</sub>](https://github.com/Skywalker-11)<br /> | [<img src="https://avatars.githubusercontent.com/u/22068886?v=4" width="110px;"/><br /><sub>Masudul Haque Shihab</sub>](https://github.com/sh1hab)<br />[💻](https://github.com/snipe/snipe-it/commits?author=sh1hab "Code") | [<img src="https://avatars.githubusercontent.com/u/16099942?v=4" width="110px;"/><br /><sub>Supapong Areeprasertkul</sub>](http://www.freedomdive.com/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=zybersup "Code") | [<img src="https://avatars.githubusercontent.com/u/207358?v=4" width="110px;"/><br /><sub>Peter Sarossy</sub>](https://github.com/psarossy)<br />[💻](https://github.com/snipe/snipe-it/commits?author=psarossy "Code") |
| [<img src="https://avatars.githubusercontent.com/u/11823649?v=4" width="110px;"/><br /><sub>Renee Margaret McConahy</sub>](https://github.com/nepella)<br />[💻](https://github.com/snipe/snipe-it/commits?author=nepella "Code") | [<img src="https://avatars.githubusercontent.com/u/5553884?v=4" width="110px;"/><br /><sub>JohnnyPicnic</sub>](https://github.com/JohnnyPicnic)<br />[💻](https://github.com/snipe/snipe-it/commits?author=JohnnyPicnic "Code") | [<img src="https://avatars.githubusercontent.com/u/8799594?v=4" width="110px;"/><br /><sub>markbrule</sub>](https://github.com/markbrule)<br />[💻](https://github.com/snipe/snipe-it/commits?author=markbrule "Code") | [<img src="https://avatars.githubusercontent.com/u/1962801?v=4" width="110px;"/><br /><sub>Mike Campbell</sub>](https://github.com/mikecmpbll)<br />[💻](https://github.com/snipe/snipe-it/commits?author=mikecmpbll "Code") | [<img src="https://avatars.githubusercontent.com/u/11973217?v=4" width="110px;"/><br /><sub>tbrconnect</sub>](https://github.com/tbrconnect)<br />[💻](https://github.com/snipe/snipe-it/commits?author=tbrconnect "Code") | [<img src="https://avatars.githubusercontent.com/u/12447225?v=4" width="110px;"/><br /><sub>kcoyo</sub>](https://github.com/kcoyo)<br />[💻](https://github.com/snipe/snipe-it/commits?author=kcoyo "Code") | [<img src="https://avatars.githubusercontent.com/u/494017?v=4" width="110px;"/><br /><sub>Travis Miller</sub>](https://travismiller.com/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=travismiller "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/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") |
<!-- ALL-CONTRIBUTORS-LIST:END -->
This project follows the [all-contributors](https://github.com/kentcdodds/all-contributors) specification. Contributions of any kind welcome!
> [!IMPORTANT]
> **To report a security vulnerability, please email security@snipeitapp.com instead of using the issue tracker.**

65
TESTING.md Normal file
View File

@@ -0,0 +1,65 @@
# Running the Test Suite
This document is targeted at developers looking to make modifications to this application's code base and want to run the existing test suite.
Before starting, follow the [instructions](README.md#installation) for installing the application locally and ensure you can load it in a browser properly.
## Unit and Feature Tests
Before attempting to run the test suite copy the example environment file for tests and update the values to match your environment:
`cp .env.testing.example .env.testing`
The following should work for running tests in memory with sqlite:
```
# --------------------------------------------
# REQUIRED: BASIC APP SETTINGS
# --------------------------------------------
APP_ENV=testing
APP_DEBUG=true
APP_KEY=base64:glJpcM7BYwWiBggp3SQ/+NlRkqsBQMaGEOjemXqJzOU=
APP_URL=http://localhost:8000
APP_TIMEZONE='UTC'
APP_LOCALE=en
# --------------------------------------------
# REQUIRED: DATABASE SETTINGS
# --------------------------------------------
DB_CONNECTION=sqlite_testing
#DB_HOST=127.0.0.1
#DB_PORT=3306
#DB_DATABASE=null
#DB_USERNAME=null
#DB_PASSWORD=null
```
To use MySQL you should update the `DB_` variables to match your local test database:
```
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE={}
DB_USERNAME={}
DB_PASSWORD={}
```
Now you are ready to run the entire test suite from your terminal:
```shell
php artisan test
````
To run individual test files, you can pass the path to the test that you want to run:
```shell
php artisan test tests/Unit/AccessoryTest.php
```
Some tests, like ones concerning LDAP, are marked with the `@group` annotation. Those groups can be run, or excluded, using the `--group` or `--exclude-group` flags:
```shell
php artisan test --group=ldap
php artisan test --exclude-group=ldap
```
This can be helpful if a set of tests are failing because you don't have an extension, like LDAP, installed.

View File

@@ -38,7 +38,7 @@
"description": "The maximum number of search results that can be returned at one time.",
"value": "500"
},
"MAIL_DRIVER": {
"MAIL_MAILER": {
"description": "Mail driver - Generally SMTP on Heroku - https://snipe-it.readme.io/docs/configuration#required-outgoing-mail-settings",
"value": "smtp"
},
@@ -58,9 +58,9 @@
"description": "SMTP Server Password",
"value": "YOURPASSWORD"
},
"MAIL_ENCRYPTION": {
"description": "Encryption protocol for email sending.",
"value": "null"
"MAIL_TLS_VERIFY_PEER": {
"description": "Ensure validity of TLS certificate on remote mail server",
"value": true
},
"MAIL_FROM_ADDR": {
"description": "Email from address",
@@ -118,7 +118,7 @@
"description": "The duration (in seconds) that the user should be blocked from attempting to authenticate again.",
"value": "60"
},
"APP_LOG": {
"LOG_CHANNEL": {
"description": "Driver to send logs to. (errorlog for stderr)",
"value": "errorlog"
},
@@ -148,7 +148,7 @@
"image": "heroku/php",
"addons": [
"cleardb:ignite",
"heroku-redis:hobby-dev",
"heroku-redis:mini",
"papertrail:choklad"
]
}
}

View File

@@ -2,10 +2,10 @@
namespace App\Console\Commands;
use App\Models\LicenseSeat;
use Illuminate\Console\Command;
use App\Models\User;
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
@@ -41,55 +41,48 @@ class CheckinLicensesFromAllUsers extends Command
*/
public function handle()
{
$license_id = $this->option('license_id');
$notify = $this->option('notify');
if (!$license_id) {
if (! $license_id) {
$this->error('ERROR: License ID is required.');
return false;
}
if (!$license = License::where('id','=',$license_id)->first()) {
if (! $license = License::where('id', '=', $license_id)->first()) {
$this->error('Invalid license ID');
return false;
}
$this->info('Checking in ALL seats for '.$license->name);
$licenseSeats = LicenseSeat::where('license_id', '=', $license_id)
->whereNotNull('assigned_to')
->with('user')
->get();
$this->info(' There are ' .$licenseSeats->count(). ' seats checked out: ');
$this->info(' There are '.$licenseSeats->count().' seats checked out: ');
if (!$notify) {
if (! $notify) {
$this->info('No mail will be sent.');
}
foreach ($licenseSeats as $seat) {
$this->info($seat->user->username .' has a license seat for '.$license->name);
$this->info($seat->user->username.' has a license seat for '.$license->name);
$seat->assigned_to = null;
if ($seat->save()) {
// Override the email address so we don't notify on checkin
if (!$notify) {
if (! $notify) {
$seat->user->email = null;
}
// Log the checkin
$seat->logCheckin($seat->user, 'Checked in via cli tool');
}
}
}
}

View File

@@ -2,10 +2,10 @@
namespace App\Console\Commands;
use App\Models\LicenseSeat;
use Illuminate\Console\Command;
use App\Models\User;
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
@@ -22,7 +22,7 @@ class CheckoutLicenseToAllUsers extends Command
*
* @var string
*/
protected $description = 'Command description';
protected $description = 'Checks out licenses to all users';
/**
* Create a new command instance.
@@ -41,22 +41,22 @@ class CheckoutLicenseToAllUsers extends Command
*/
public function handle()
{
$license_id = $this->option('license_id');
$notify = $this->option('notify');
if (!$license_id) {
$this->error('ERROR: License ID is required.');
return false;
}
if (! $license_id) {
$this->error('ERROR: License ID is required.');
if (!$license = License::where('id','=',$license_id)->with('assignedusers')->first()) {
$this->error('Invalid license ID');
return false;
}
$users = User::whereNull('deleted_at')->with('licenses')->get();
if (! $license = License::where('id', '=', $license_id)->with('assignedusers')->first()) {
$this->error('Invalid license ID');
return false;
}
$users = User::whereNull('deleted_at')->where('autoassign_licenses', '=', 1)->with('licenses')->get();
if ($users->count() > $license->getAvailSeatsCountAttribute()) {
$this->info('You do not have enough free seats to complete this task, so we will check out as many as we can. ');
@@ -64,7 +64,7 @@ class CheckoutLicenseToAllUsers extends Command
$this->info('Checking out '.$users->count().' of '.$license->getAvailSeatsCountAttribute().' seats for '.$license->name);
if (!$notify) {
if (! $notify) {
$this->info('No mail will be sent.');
}
@@ -74,14 +74,14 @@ class CheckoutLicenseToAllUsers extends Command
// to them
if ($user->licenses->where('id', '=', $license_id)->count()) {
$this->info($user->username .' already has this license checked out to them. Skipping... ');
$this->info($user->username.' already has this license checked out to them. Skipping... ');
continue;
}
// If the license is valid, check that there is an available seat
if ($license->availCount()->count() < 1) {
$this->error('ERROR: No available seats');
return false;
}
@@ -89,13 +89,12 @@ class CheckoutLicenseToAllUsers extends Command
// Get the seat ID
$licenseSeat = $license->freeSeat();
// Update the seat with checkout info,
$licenseSeat->assigned_to = $user->id;
$licenseSeat->assigned_to = $user->id;
if ($licenseSeat->save()) {
// Temporarily null the user's email address so we don't send mail if we're not supposed to
if (!$notify) {
if (! $notify) {
$user->email = null;
}
@@ -103,10 +102,6 @@ class CheckoutLicenseToAllUsers extends Command
$licenseSeat->logCheckout('Checked out via cli tool', $user);
$this->info('License '.$license_id.' seat '.$licenseSeat->id.' checked out to '.$user->username);
}
}
}
}

View File

@@ -3,15 +3,31 @@
namespace App\Console\Commands;
use Illuminate\Console\Command;
use \App\Models\User;
class CreateAdmin extends Command
{
/** @mixin User **/
/**
* The name and signature of the console command.
*
* @var string
* 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 mixed $created_by
*/
protected $signature = 'snipeit:create-admin {--first_name=} {--last_name=} {--email=} {--username=} {--password=} {show_in_list?}';
protected $signature = 'snipeit:create-admin {--first_name=} {--last_name=} {--email=} {--username=} {--password=} {show_in_list?} {autoassign_licenses?}';
/**
* The console command description.
@@ -30,25 +46,23 @@ class CreateAdmin extends Command
parent::__construct();
}
/**
* Execute the console command.
*
* @return mixed
*/
public function handle()
{
$first_name = $this->option('first_name');
$last_name = $this->option('last_name');
$username = $this->option('username');
$email = $this->option('email');
$password = $this->option('password');
$show_in_list = $this->argument('show_in_list');
$autoassign_licenses = $this->argument('autoassign_licenses');
if (($first_name=='') || ($last_name=='') || ($username=='') || ($email=='') || ($password=='')) {
if (($first_name == '') || ($last_name == '') || ($username == '') || ($email == '') || ($password == '')) {
$this->info('ERROR: All fields are required.');
} else {
$user = new \App\Models\User;
$user = new User;
$user->first_name = $first_name;
$user->last_name = $last_name;
$user->username = $username;
@@ -60,6 +74,11 @@ class CreateAdmin extends Command
if ($show_in_list == 'false') {
$user->show_in_list = 0;
}
if ($autoassign_licenses == 'false') {
$user->autoassign_licenses = 0;
}
if ($user->save()) {
$this->info('New user created');
$user->groups()->attach(1);
@@ -68,12 +87,9 @@ class CreateAdmin extends Command
$errors = $user->getErrors();
foreach ($errors->all() as $error) {
$this->info('ERROR:'. $error);
$this->info('ERROR:'.$error);
}
}
}
}
}

View File

@@ -38,9 +38,7 @@ class DisableLDAP extends Command
*/
public function handle()
{
if ($this->confirm("\n****************************************************\nThis will disable LDAP 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->ldap_enabled = 0;
if ($setting->save()) {
@@ -51,6 +49,5 @@ class DisableLDAP extends Command
} else {
$this->info('Canceled. No actions taken.');
}
}
}

View File

@@ -37,49 +37,43 @@ class FixDoubleEscape extends Command
*/
public function handle()
{
$tables = [
'\App\Models\Asset' => ['name'],
'\App\Models\License' => ['name'],
'\App\Models\Consumable' => ['name'],
'\App\Models\Accessory' => ['name'],
'\App\Models\Component' => ['name'],
'\App\Models\Company' => ['name'],
'\App\Models\Manufacturer' => ['name'],
'\App\Models\Supplier' => ['name'],
'\App\Models\Statuslabel' => ['name'],
'\App\Models\Depreciation' => ['name'],
'\App\Models\AssetModel' => ['name'],
'\App\Models\Group' => ['name'],
'\App\Models\Department' => ['name'],
'\App\Models\Location' => ['name'],
'\App\Models\User' => ['first_name', 'last_name'],
\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'],
];
$count = array();
$count = [];
foreach ($tables as $classname => $fields) {
$count[$classname] = [];
$count[$classname]['classname'] = 0;
foreach ($fields as $field) {
$count[$classname]['classname']++;
$count[$classname][$field] = 0;
foreach ($tables as $classname => $fields) {
$count[$classname] = array();
$count[$classname]['classname'] = 0;
foreach($fields as $field) {
$count[$classname]['classname']++;
$count[$classname][$field] = 0;
foreach($classname::where("$field",'LIKE','%&%')->get() as $row) {
$this->info('Updating '.$field.' for '.$classname);
$row->{$field} = html_entity_decode($row->{$field},ENT_QUOTES);
$row->save();
$count[$classname][$field]++;
}
foreach ($classname::where("$field", 'LIKE', '%&%')->get() as $row) {
$this->info('Updating '.$field.' for '.$classname);
$row->{$field} = html_entity_decode($row->{$field}, ENT_QUOTES);
$row->save();
$count[$classname][$field]++;
}
}
}
$this->info('Update complete');
}
}

View File

@@ -29,7 +29,6 @@ class FixMismatchedAssetsAndLogs extends Command
*/
private $dryrun = false;
/**
* Create a new command instance.
*
@@ -47,30 +46,29 @@ class FixMismatchedAssetsAndLogs extends Command
*/
public function handle()
{
if ($this->option('dryrun')) {
$this->dryrun = true;
}
if ($this->dryrun) {
$this->info('This is a DRY RUN - no changes will be saved.' );
$this->info('This is a DRY RUN - no changes will be saved.');
}
$mismatch_count = 0;
$assets = Asset::whereNotNull('assigned_to')
->where('assigned_type', '=', 'App\\Models\\User')
->where('assigned_type', '=', \App\Models\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')
if ($checkout_log = Actionlog::where('target_type', '=', \App\Models\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')
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)
@@ -78,28 +76,24 @@ class FixMismatchedAssetsAndLogs extends Command
->first()) {
//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 );
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);
if (!$this->dryrun) {
$asset->assigned_to = $checkout_log->target_id;
if ($asset->save()) {
$this->info('Asset record updated.');
} else {
$this->error('Error updating asset: '.$asset->getErrors());
}
if (! $this->dryrun) {
$asset->assigned_to = $checkout_log->target_id;
if ($asset->save()) {
$this->info('Asset record updated.');
} else {
$this->error('Error updating asset: '.$asset->getErrors());
}
$mismatch_count++;
}
} else {
//$this->info('Asset ID '.$asset->id.': There is a checkin '.$checkin_log->created_at.' after this checkout '.$checkout_log->created_at);
$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($mismatch_count.' mismatched assets.');
}
}

View File

@@ -0,0 +1,97 @@
<?php
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\Support\Facades\DB;
class GeneratePersonalAccessToken extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'snipeit:make-api-key
{--user_id= : The ID of the user to create the token for.}
{--name= : The name of the new API token}
{--key-only : Only return the value of the API key}';
/**
* The console command description.
*
* @var string
*/
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
*/
protected $tokenRepository;
/**
* Create a new command instance.
*
* @return void
*/
public function __construct(TokenRepository $tokenRepository, ValidationFactory $validation)
{
$this->validation = $validation;
$this->tokenRepository = $tokenRepository;
parent::__construct();
}
/**
* Execute the console command.
*
* @return int
*/
public function handle()
{
$accessTokenName = $this->option('name');
if ($accessTokenName=='') {
$accessTokenName = 'CLI Auth Token';
}
if ($this->option('user_id')=='') {
return $this->error('ERROR: user_id cannot be blank.');
}
if ($user = User::find($this->option('user_id'))) {
$createAccessToken = $user->createToken($accessTokenName)->accessToken;
if ($this->option('key-only')) {
$this->info($createAccessToken);
} else {
$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()) {
$this->info('API Token ID: '.$token->id);
}
$this->info('API Token User: '.$user->present()->fullName.' ('.$user->username.')');
$this->info('API Token Name: '.$accessTokenName);
$this->info('API Token: '.$createAccessToken);
}
} else {
return $this->error('ERROR: Invalid user. API key was not created.');
}
}
}

View File

@@ -2,9 +2,9 @@
namespace App\Console\Commands;
use App\Models\Location;
use Illuminate\Console\Command;
use League\Csv\Reader;
use App\Models\Location;
class ImportLocations extends Command
{
@@ -39,10 +39,8 @@ class ImportLocations extends Command
*/
public function handle()
{
if (!ini_get("auto_detect_line_endings")) {
ini_set("auto_detect_line_endings", '1');
if (! ini_get('auto_detect_line_endings')) {
ini_set('auto_detect_line_endings', '1');
}
$filename = $this->argument('filename');
@@ -53,18 +51,17 @@ class ImportLocations extends Command
// Import parent location names first if they don't exist
foreach ($results as $parent_index => $parent_row) {
if (array_key_exists('Parent Name', $parent_row)) {
$parent_name = trim($parent_row['Parent Name']);
if (array_key_exists('Name', $parent_row)) {
$this->info('- Parent: ' . $parent_name . ' in row as: ' . trim($parent_row['Parent Name']));
$this->info('- Parent: '.$parent_name.' in row as: '.trim($parent_row['Parent Name']));
}
// Save parent location name
// This creates a sort of name-stub that we'll update later on in this script
$parent_location = Location::firstOrCreate(array('name' => $parent_name));
$parent_location = Location::firstOrCreate(['name' => $parent_name]);
if (array_key_exists('Name', $parent_row)) {
$this->info('Parent for ' . $parent_row['Name'] . ' is ' . $parent_name . '. Attempting to save ' . $parent_name . '.');
$this->info('Parent for '.$parent_row['Name'].' is '.$parent_name.'. Attempting to save '.$parent_name.'.');
}
// Check if the record was updated or created.
@@ -74,18 +71,15 @@ class ImportLocations extends Command
} else {
$this->info('- Parent location '.$parent_name.' was created.');
}
} else {
$this->info('- No Parent Name provided, so no parent location will be created.');
}
}
$this->info('----- Parents Created.... backfilling additional details... --------');
// Loop through ALL records and add/update them if there are additional fields
// besides name
foreach ($results as $index => $row) {
if (array_key_exists('Parent Name', $row)) {
$parent_name = trim($row['Parent Name']);
} else {
@@ -94,11 +88,12 @@ class ImportLocations extends Command
// Set the location attributes to save
if (array_key_exists('Name', $row)) {
$location = Location::firstOrCreate(array('name' => trim($row['Name'])));
$location = Location::firstOrCreate(['name' => trim($row['Name'])]);
$location->name = trim($row['Name']);
$this->info('Checking location: '.$location->name);
} else {
$this->error('Location name is required and is missing from at least one row in this dataset. Check your CSV for extra trailing rows and try again.');
return false;
}
if (array_key_exists('Currency', $row)) {
@@ -126,7 +121,6 @@ class ImportLocations extends Command
$location->ldap_ou = trim($row['OU']);
}
// If a parent name is provided, we created it earlier in the script,
// so let's grab that ID
if ($parent_name) {
@@ -142,21 +136,15 @@ class ImportLocations extends Command
// Check if the record was updated or created.
// This is mostly for clearer debugging.
if ($location->exists) {
$this->info('Location ' . $location->name . ' already exists. Updating...');
$this->info('Location '.$location->name.' already exists. Updating...');
} else {
$this->info('- Location '.$location->name.' was created. ');
}
// If there's a validation error, display that
// If there's a validation error, display that
} else {
$this->error('- Non-parent Location '.$location->name.' could not be created: '.$location->getErrors() );
$this->error('- Non-parent Location '.$location->name.' could not be created: '.$location->getErrors());
}
}
}
}

View File

@@ -0,0 +1,59 @@
<?php
namespace App\Console\Commands;
use Illuminate\Console\Command;
class KillAllSessions extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'snipeit:global-logout {--force : Skip the danger prompt; assuming you enter "y"} ';
/**
* The console command description.
*
* @var string
*/
protected $description = 'This command will destroy all web sessions on disk and will force a re-login for all users.';
/**
* Create a new command instance.
*
* @return void
*/
public function __construct()
{
parent::__construct();
}
/**
* Execute the console command.
*
* @return mixed
*/
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");
}
$session_files = glob(storage_path("framework/sessions/*"));
$count = 0;
foreach ($session_files as $file) {
if (is_file($file))
unlink($file);
$count++;
}
\DB::table('users')->update(['remember_token' => null]);
$this->info($count. ' sessions cleared!');
}
}

View File

@@ -3,12 +3,13 @@
namespace App\Console\Commands;
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 Log;
use Illuminate\Support\Facades\Log;
class LdapSync extends Command
{
@@ -17,7 +18,7 @@ class LdapSync extends Command
*
* @var string
*/
protected $signature = 'snipeit:ldap-sync {--location=} {--location_id=} {--base_dn=} {--summary} {--json_summary}';
protected $signature = 'snipeit:ldap-sync {--location=} {--location_id=*} {--base_dn=} {--filter=} {--summary} {--json_summary}';
/**
* The console command description.
@@ -43,116 +44,155 @@ class LdapSync extends Command
*/
public function handle()
{
// 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') {
$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('memory_limit', env('LDAP_MEM_LIM', '500M'));
$ldap_result_username = Setting::getSettings()->ldap_username_field;
$ldap_result_last_name = Setting::getSettings()->ldap_lname_field;
$ldap_result_first_name = Setting::getSettings()->ldap_fname_field;
$ldap_result_active_flag = Setting::getSettings()->ldap_active_flag_field;
$ldap_result_active_flag = Setting::getSettings()->ldap_active_flag;
$ldap_result_emp_num = Setting::getSettings()->ldap_emp_num;
$ldap_result_email = Setting::getSettings()->ldap_email;
$ldap_result_phone = Setting::getSettings()->ldap_phone_field;
$ldap_result_jobtitle = Setting::getSettings()->ldap_jobtitle;
$ldap_result_country = Setting::getSettings()->ldap_country;
$ldap_result_country = Setting::getSettings()->ldap_country;
$ldap_result_location = Setting::getSettings()->ldap_location;
$ldap_result_dept = Setting::getSettings()->ldap_dept;
$ldap_result_manager = Setting::getSettings()->ldap_manager;
$ldap_default_group = Setting::getSettings()->ldap_default_group;
$search_base = Setting::getSettings()->ldap_base_dn;
try {
$ldapconn = Ldap::connectToLdap();
Ldap::bindAdminToLdap($ldapconn);
} catch (\Exception $e) {
if ($this->option('json_summary')) {
$json_summary = [ "error" => true, "error_message" => $e->getMessage(), "summary" => [] ];
$json_summary = ['error' => true, 'error_message' => $e->getMessage(), 'summary' => []];
$this->info(json_encode($json_summary));
}
LOG::info($e);
Log::info($e);
return [];
}
$summary = array();
$summary = [];
try {
/**
* if a location ID has been specified, use that OU
*/
if ( $this->option('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.'\".');
}
}
/**
* if a manual base DN has been specified, use that. Allow the Base DN to override
* even if there's a location-based DN - if you picked it, you must have picked it for a reason.
*/
if ($this->option('base_dn') != '') {
$search_base = $this->option('base_dn');
LOG::debug('Importing users from specified base DN: \"'.$search_base.'\".');
} else {
$search_base = null;
Log::debug('Importing users from specified base DN: \"'.$search_base.'\".');
}
$results = Ldap::findLdapUsers($search_base);
/**
* If a filter has been specified, use that
*/
if ($this->option('filter') != '') {
$results = Ldap::findLdapUsers($search_base, -1, $this->option('filter'));
} else {
$results = Ldap::findLdapUsers($search_base);
}
} catch (\Exception $e) {
if ($this->option('json_summary')) {
$json_summary = [ "error" => true, "error_message" => $e->getMessage(), "summary" => [] ];
$json_summary = ['error' => true, 'error_message' => $e->getMessage(), 'summary' => []];
$this->info(json_encode($json_summary));
}
LOG::info($e);
Log::info($e);
return [];
}
/* Determine which location to assign users to by default. */
$location = NULL; // FIXME - this would be better called "$default_location", which is more explicit about its purpose
$location = null; // TODO - this would be better called "$default_location", which is more explicit about its purpose
if ($this->option('location') != '') {
if ($location = Location::where('name', '=', $this->option('location'))->first()) {
Log::debug('Location name ' . $this->option('location') . ' passed');
Log::debug('Importing to ' . $location->name . ' (' . $location->id . ')');
}
if ($this->option('location')!='') {
$location = Location::where('name', '=', $this->option('location'))->first();
LOG::debug('Location name '.$this->option('location').' passed');
LOG::debug('Importing to '.$location->name.' ('.$location->id.')');
} elseif ($this->option('location_id')!='') {
$location = Location::where('id', '=', $this->option('location_id'))->first();
LOG::debug('Location ID '.$this->option('location_id').' passed');
LOG::debug('Importing to '.$location->name.' ('.$location->id.')');
} elseif ($this->option('location_id')) {
foreach($this->option('location_id') as $location_id) {
if ($location = Location::where('id', '=', $location_id)->first()) {
Log::debug('Location ID ' . $location_id . ' passed');
Log::debug('Importing to ' . $location->name . ' (' . $location->id . ')');
}
}
}
if (!isset($location)) {
LOG::debug('That location is invalid or a location was not provided, so no location will be assigned by default.');
if (! isset($location)) {
Log::debug('That location is invalid or a location was not provided, so no location will be assigned by default.');
}
/* Process locations with explicitly defined OUs, if doing a full import. */
if ($this->option('base_dn')=='') {
if ($this->option('base_dn') == '' && $this->option('filter') == '') {
// Retrieve locations with a mapped OU, and sort them from the shallowest to deepest OU (see #3993)
$ldap_ou_locations = Location::where('ldap_ou', '!=', '')->get()->toArray();
$ldap_ou_lengths = array();
$ldap_ou_lengths = [];
foreach ($ldap_ou_locations as $ou_loc) {
$ldap_ou_lengths[] = strlen($ou_loc["ldap_ou"]);
$ldap_ou_lengths[] = strlen($ou_loc['ldap_ou']);
}
array_multisort($ldap_ou_lengths, SORT_ASC, $ldap_ou_locations);
if (sizeof($ldap_ou_locations) > 0) {
LOG::debug('Some locations have special OUs set. Locations will be automatically set for users in those OUs.');
if (count($ldap_ou_locations) > 0) {
Log::debug('Some locations have special OUs set. Locations will be automatically set for users in those OUs.');
}
// Inject location information fields
for ($i = 0; $i < $results["count"]; $i++) {
$results[$i]["ldap_location_override"] = false;
$results[$i]["location_id"] = 0;
for ($i = 0; $i < $results['count']; $i++) {
$results[$i]['ldap_location_override'] = false;
$results[$i]['location_id'] = 0;
}
// Grab subsets based on location-specific DNs, and overwrite location for these users.
foreach ($ldap_ou_locations as $ldap_loc) {
try {
$location_users = Ldap::findLdapUsers($ldap_loc["ldap_ou"]);
} catch (\Exception $e) { // FIXME: this is stolen from line 77 or so above
$location_users = Ldap::findLdapUsers($ldap_loc['ldap_ou']);
} catch (\Exception $e) { // TODO: this is stolen from line 77 or so above
if ($this->option('json_summary')) {
$json_summary = [ "error" => true, "error_message" => trans('admin/users/message.error.ldap_could_not_search')." Location: ".$ldap_loc['name']." (ID: ".$ldap_loc['id'].") cannot connect to \"".$ldap_loc["ldap_ou"]."\" - ".$e->getMessage(), "summary" => [] ];
$json_summary = ['error' => true, 'error_message' => trans('admin/users/message.error.ldap_could_not_search').' Location: '.$ldap_loc['name'].' (ID: '.$ldap_loc['id'].') cannot connect to "'.$ldap_loc['ldap_ou'].'" - '.$e->getMessage(), 'summary' => []];
$this->info(json_encode($json_summary));
}
LOG::info($e);
Log::info($e);
return [];
}
$usernames = array();
for ($i = 0; $i < $location_users["count"]; $i++) {
$usernames = [];
for ($i = 0; $i < $location_users['count']; $i++) {
if (array_key_exists($ldap_result_username, $location_users[$i])) {
$location_users[$i]["ldap_location_override"] = true;
$location_users[$i]["location_id"] = $ldap_loc["id"];
$location_users[$i]['ldap_location_override'] = true;
$location_users[$i]['location_id'] = $ldap_loc['id'];
$usernames[] = $location_users[$i][$ldap_result_username][0];
}
}
// Delete located users from the general group.
foreach ($results as $key => $generic_entry) {
if ((is_array($generic_entry)) && (array_key_exists($ldap_result_username, $generic_entry))) {
if ((is_array($generic_entry)) && (array_key_exists($ldap_result_username, $generic_entry))) {
if (in_array($generic_entry[$ldap_result_username][0], $usernames)) {
unset($results[$key]);
}
@@ -165,57 +205,146 @@ class LdapSync extends Command
}
}
/* Create user account entries in Snipe-IT */
$tmp_pass = substr(str_shuffle("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"), 0, 20);
$pass = bcrypt($tmp_pass);
$manager_cache = [];
for ($i = 0; $i < $results["count"]; $i++) {
if (empty($ldap_result_active_flag) || $results[$i][$ldap_result_active_flag][0] == "TRUE") {
if($ldap_default_group != null) {
$item = array();
$item["username"] = isset($results[$i][$ldap_result_username][0]) ? $results[$i][$ldap_result_username][0] : "";
$item["employee_number"] = isset($results[$i][$ldap_result_emp_num][0]) ? $results[$i][$ldap_result_emp_num][0] : "";
$item["lastname"] = isset($results[$i][$ldap_result_last_name][0]) ? $results[$i][$ldap_result_last_name][0] : "";
$item["firstname"] = isset($results[$i][$ldap_result_first_name][0]) ? $results[$i][$ldap_result_first_name][0] : "";
$item["email"] = isset($results[$i][$ldap_result_email][0]) ? $results[$i][$ldap_result_email][0] : "" ;
$item["ldap_location_override"] = isset($results[$i]["ldap_location_override"]) ? $results[$i]["ldap_location_override"]:"";
$item["location_id"] = isset($results[$i]["location_id"]) ? $results[$i]["location_id"]:"";
$item["telephone"] = isset($results[$i][$ldap_result_phone][0]) ? $results[$i][$ldap_result_phone][0] : "";
$item["jobtitle"] = isset($results[$i][$ldap_result_jobtitle][0]) ? $results[$i][$ldap_result_jobtitle][0] : "";
$item["country"] = isset($results[$i][$ldap_result_country][0]) ? $results[$i][$ldap_result_country][0] : "";
$item["department"] = isset($results[$i][$ldap_result_dept][0]) ? $results[$i][$ldap_result_dept][0] : "";
$default = Group::find($ldap_default_group);
if (!$default) {
$ldap_default_group = null; // un-set the default group if that group doesn't exist
}
}
for ($i = 0; $i < $results['count']; $i++) {
$item = [];
$item['username'] = $results[$i][$ldap_result_username][0] ?? '';
$item['employee_number'] = $results[$i][$ldap_result_emp_num][0] ?? '';
$item['lastname'] = $results[$i][$ldap_result_last_name][0] ?? '';
$item['firstname'] = $results[$i][$ldap_result_first_name][0] ?? '';
$item['email'] = $results[$i][$ldap_result_email][0] ?? '';
$item['ldap_location_override'] = $results[$i]['ldap_location_override'] ?? '';
$item['location_id'] = $results[$i]['location_id'] ?? '';
$item['telephone'] = $results[$i][$ldap_result_phone][0] ?? '';
$item['jobtitle'] = $results[$i][$ldap_result_jobtitle][0] ?? '';
$item['country'] = $results[$i][$ldap_result_country][0] ?? '';
$item['department'] = $results[$i][$ldap_result_dept][0] ?? '';
$item['manager'] = $results[$i][$ldap_result_manager][0] ?? '';
$item['location'] = $results[$i][$ldap_result_location][0] ?? '';
// ONLY if you are using the "ldap_location" option *AND* you have an actual result
if ($ldap_result_location && $item['location']) {
$location = Location::firstOrCreate([
'name' => $item['location'],
]);
}
$department = Department::firstOrCreate([
'name' => $item["department"],
'name' => $item['department'],
]);
$user = User::where('username', $item["username"])->first();
$user = User::where('username', $item['username'])->first();
if ($user) {
// Updating an existing user.
$item["createorupdate"] = 'updated';
$item['createorupdate'] = 'updated';
} else {
// Creating a new user.
$user = new User;
$user->password = $pass;
$user->activated = 0;
$item["createorupdate"] = 'created';
$user->password = $user->noPassword();
$user->activated = 1; // newly created users can log in by default, unless AD's UAC is in use, or an active flag is set (below)
$item['createorupdate'] = 'created';
}
$user->first_name = $item["firstname"];
$user->last_name = $item["lastname"];
$user->username = $item["username"];
$user->email = $item["email"];
$user->employee_num = e($item["employee_number"]);
$user->phone = $item["telephone"];
$user->jobtitle = $item["jobtitle"];
$user->country = $item["country"];
//If a sync option is not filled in on the LDAP settings don't populate the user field
if($ldap_result_username != null){
$user->username = $item['username'];
}
if($ldap_result_last_name != null){
$user->last_name = $item['lastname'];
}
if($ldap_result_first_name != null){
$user->first_name = $item['firstname'];
}
if($ldap_result_emp_num != null){
$user->employee_num = e($item['employee_number']);
}
if($ldap_result_email != null){
$user->email = $item['email'];
}
if($ldap_result_phone != null){
$user->phone = $item['telephone'];
}
if($ldap_result_jobtitle != null){
$user->jobtitle = $item['jobtitle'];
}
if($ldap_result_country != null){
$user->country = $item['country'];
}
if($ldap_result_dept != null){
$user->department_id = $department->id;
}
if($ldap_result_location != null){
$user->location_id = $location ? $location->id : null;
}
if($ldap_result_manager != null){
if($item['manager'] != null) {
// Check Cache first
if (isset($manager_cache[$item['manager']])) {
// found in cache; use that and avoid extra lookups
$user->manager_id = $manager_cache[$item['manager']];
} else {
// Get the LDAP Manager
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");
// Hail-mary for Okta manager 'shortnames' - will only work if
// Okta configuration is using full email-address-style usernames
$ldap_manager = [
"count" => 1,
0 => [
$ldap_result_username => [$item['manager']]
]
];
}
if ($ldap_manager["count"] > 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_result_username][0];
// 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;
}
}
$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 ( array_key_exists('useraccountcontrol', $results[$i]) ) {
/* The following is _probably_ the correct logic, but we can't use it because
if ( !empty($ldap_result_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_result_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
} 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
to allow to log in.
@@ -231,68 +360,69 @@ class LdapSync extends Command
} else {
$user->activated = 0;
} */
$enabled_accounts = [
'512', // 0x200 NORMAL_ACCOUNT
'544', // 0x220 NORMAL_ACCOUNT, PASSWD_NOTREQD
'66048', // 0x10200 NORMAL_ACCOUNT, DONT_EXPIRE_PASSWORD
'66080', // 0x10220 NORMAL_ACCOUNT, PASSWD_NOTREQD, DONT_EXPIRE_PASSWORD
'262656', // 0x40200 NORMAL_ACCOUNT, SMARTCARD_REQUIRED
'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
'4260352',// 0x410200 NORMAL_ACCOUNT, DONT_EXPIRE_PASSWORD, DONT_REQ_PREAUTH
'1049088',// 0x100200 NORMAL_ACCOUNT, NOT_DELEGATED
$enabled_accounts = [
'512', // 0x200 NORMAL_ACCOUNT
'544', // 0x220 NORMAL_ACCOUNT, PASSWD_NOTREQD
'66048', // 0x10200 NORMAL_ACCOUNT, DONT_EXPIRE_PASSWORD
'66080', // 0x10220 NORMAL_ACCOUNT, PASSWD_NOTREQD, DONT_EXPIRE_PASSWORD
'262656', // 0x40200 NORMAL_ACCOUNT, SMARTCARD_REQUIRED
'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
'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,
];
$user->activated = ( in_array($results[$i]['useraccountcontrol'][0], $enabled_accounts) ) ? 1 : 0;
}
$user->activated = (in_array($results[$i]['useraccountcontrol'][0], $enabled_accounts)) ? 1 : 0;
// If we're not using AD, and there isn't an activated flag set, activate all users
elseif (empty($ldap_result_active_flag)) {
$user->activated = 1;
}
} /* 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;
}
}
$location = null;
$user->ldap_import = 1;
$errors = '';
if ($user->save()) {
$item["note"] = $item["createorupdate"];
$item["status"]='success';
$item['note'] = $item['createorupdate'];
$item['status'] = 'success';
if ( $item['createorupdate'] === 'created' && $ldap_default_group) {
$user->groups()->attach($ldap_default_group);
}
} else {
foreach ($user->getErrors()->getMessages() as $key => $err) {
$errors .= $err[0];
}
$item["note"] = $errors;
$item["status"]='error';
$item['note'] = $errors;
$item['status'] = 'error';
}
array_push($summary, $item);
}
}
if ($this->option('summary')) {
for ($x = 0; $x < count($summary); $x++) {
if ($summary[$x]['status']=='error') {
if ($summary[$x]['status'] == 'error') {
$this->error('ERROR: '.$summary[$x]['firstname'].' '.$summary[$x]['lastname'].' (username: '.$summary[$x]['username'].') was not imported: '.$summary[$x]['note']);
} else {
$this->info('User '.$summary[$x]['firstname'].' '.$summary[$x]['lastname'].' (username: '.$summary[$x]['username'].') was '.strtoupper($summary[$x]['createorupdate']).'.');
}
}
} else if ($this->option('json_summary')) {
$json_summary = [ "error" => false, "error_message" => "", "summary" => $summary ]; // hardcoding the error to false and the error_message to blank seems a bit weird
} elseif ($this->option('json_summary')) {
$json_summary = ['error' => false, 'error_message' => '', 'summary' => $summary]; // hardcoding the error to false and the error_message to blank seems a bit weird
$this->info(json_encode($json_summary));
} else {
return $summary;

View File

@@ -1,399 +0,0 @@
<?php
declare(strict_types=1);
namespace App\Console\Commands;
use Log;
use Exception;
use App\Models\User;
use App\Services\LdapAd;
use App\Models\Location;
use Illuminate\Console\Command;
use Adldap\Models\User as AdldapUser;
/**
* LDAP / AD sync command.
*
* @author Wes Hulette <jwhulette@gmail.com>
*
* @since 5.0.0
*/
class LdapSyncNg extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'snipeit:ldap-sync-ng
{--location= : A location name }
{--location_id= : A location id}
{--base_dn= : A diffrent base DN to use }
{--summary : Print summary }
{--json_summary : Print summary in json format }
{--dryrun : Run the sync process but don\'t update the database}';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Command line LDAP/AD sync';
/**
* An LdapAd instance.
*
* @var \App\Models\LdapAd
*/
private $ldap;
/**
* LDAP settings collection.
*
* @var \Illuminate\Support\Collection
*/
private $settings = null;
/**
* A default location collection.
*
* @var \Illuminate\Support\Collection
*/
private $defaultLocation = null;
/**
* Mapped locations collection.
*
* @var \Illuminate\Support\Collection
*/
private $mappedLocations = null;
/**
* The summary collection.
*
* @var \Illuminate\Support\Collection
*/
private $summary;
/**
* Is dry-run?
*
* @var bool
*/
private $dryrun = false;
/**
* Show users to be imported.
*
* @var array
*/
private $userlist = [];
/**
* Create a new command instance.
*/
public function __construct(LdapAd $ldap)
{
parent::__construct();
$this->ldap = $ldap;
$this->settings = $this->ldap->ldapSettings;
$this->summary = collect();
}
/**
* Execute the console command.
*
* @return mixed
*/
public function handle()
{
$dispatcher = \Adldap\Adldap::getEventDispatcher();
// Listen for all model events.
$dispatcher->listen('Adldap\Models\Events\*', function ($eventName, array $data) {
echo $eventName; // Returns 'Adldap\Models\Events\Updating'
var_dump($data); // Returns [0] => (object) Adldap\Models\Events\Updating;
\Log::debug("Event: ".$eventName." data - ".print_r($data, true));
});
$dispatcher->listen('Adldap\Auth\Events\*', function ($eventName, array $data) {
echo $eventName; // Returns 'Adldap\Models\Events\Updating'
var_dump($data); // Returns [0] => (object) Adldap\Models\Events\Updating;
\Log::debug("Event: ".$eventName." data - ".print_r($data, true));
});
ini_set('max_execution_time', env('LDAP_TIME_LIM', "600")); //600 seconds = 10 minutes
ini_set('memory_limit', '500M');
$old_error_reporting = error_reporting(); // grab old error_reporting .ini setting, for later re-enablement
error_reporting($old_error_reporting & ~E_DEPRECATED); // disable deprecation warnings, for LDAP in PHP 7.4 (and greater)
if ($this->option('dryrun')) {
$this->dryrun = true;
}
$this->checkIfLdapIsEnabled();
$this->checkLdapConnection();
$this->setBaseDn();
$this->getUserDefaultLocation();
/*
* Use the default location if set, this is needed for the LDAP users sync page
*/
if (!$this->option('base_dn') && null == $this->defaultLocation) {
$this->getMappedLocations();
}
$this->processLdapUsers();
// Print table of users
if ($this->dryrun) {
$this->info('The following users will be synced!');
$headers = ['First Name', 'Last Name', 'Username', 'Email', 'Employee #', 'Location Id', 'Status'];
$this->table($headers, $this->summary->toArray());
}
error_reporting($old_error_reporting); // re-enable deprecation warnings.
return $this->getSummary();
}
/**
* Generate the LDAP sync summary.
*
* @author Wes Hulette <jwhulette@gmail.com>
*
* @since 5.0.0
*
* @return string
*/
private function getSummary(): string
{
if ($this->option('summary') && null === $this->dryrun) {
$this->summary->each(function ($item) {
$this->info('USER: '.$item['note']);
if ('ERROR' === $item['status']) {
$this->error('ERROR: '.$item['note']);
}
});
} elseif ($this->option('json_summary')) {
$json_summary = [
'error' => false,
'error_message' => '',
'summary' => $this->summary->toArray(),
];
$this->info(json_encode($json_summary));
}
return '';
}
/**
* Create a new user or update an existing user.
*
* @author Wes Hulette <jwhulette@gmail.com>
*
* @since 5.0.0
*
* @param \Adldap\Models\User $snipeUser
*/
private function updateCreateUser(AdldapUser $snipeUser): void
{
$user = $this->ldap->processUser($snipeUser, $this->defaultLocation, $this->mappedLocations);
$summary = [
'firstname' => $user->first_name,
'lastname' => $user->last_name,
'username' => $user->username,
'employee_number' => $user->employee_num,
'email' => $user->email,
'location_id' => $user->location_id,
];
// Only update the database if is not a dry run
if (!$this->dryrun) {
if ($user->isDirty()) { //if nothing on the user changed, don't bother trying to save anything nor put anything in the summary
if ($user->save()) {
$summary['note'] = ($user->wasRecentlyCreated ? 'CREATED' : 'UPDATED');
$summary['status'] = 'SUCCESS';
} else {
$errors = '';
foreach ($user->getErrors()->getMessages() as $error) {
$errors .= implode(", ",$error);
}
$summary['note'] = $snipeUser->getDN().' was not imported. REASON: '.$errors;
$summary['status'] = 'ERROR';
}
} else {
$summary = null;
}
}
// $summary['note'] = ($user->getOriginal('username') ? 'UPDATED' : 'CREATED'); // this seems, kinda, like, superfluous, relative to the $summary['note'] thing above, yeah?
if($summary) { //if the $user wasn't dirty, $summary was set to null so that we will skip the following push()
$this->summary->push($summary);
}
}
/**
* Process the users to update / create.
*
* @author Wes Hulette <jwhulette@gmail.com>
*
* @since 5.0.0
*
*/
private function processLdapUsers(): void
{
try {
\Log::debug("CAL:LING GET LDAP SUSERS");
$ldapUsers = $this->ldap->getLdapUsers();
\Log::debug("END CALLING GET LDAP USERS");
} catch (Exception $e) {
$this->outputError($e);
exit($e->getMessage());
}
if (0 == $ldapUsers->count()) {
$msg = 'ERROR: No users found!';
Log::error($msg);
if ($this->dryrun) {
$this->error($msg);
}
exit($msg);
}
// Process each individual users
foreach ($ldapUsers->getResults() as $user) { // AdLdap2's paginate() method is weird, it gets *everything* and ->getResults() returns *everything*
$this->updateCreateUser($user);
}
}
/**
* Get the mapped locations if a base_dn is provided.
*
* @author Wes Hulette <jwhulette@gmail.com>
*
* @since 5.0.0
*/
private function getMappedLocations()
{
$ldapOuLocation = Location::where('ldap_ou', '!=', '')->select(['id', 'ldap_ou'])->get();
$locations = $ldapOuLocation->sortBy(function ($ou, $key) {
return strlen($ou->ldap_ou);
});
if ($locations->count() > 0) {
$msg = 'Some locations have special OUs set. Locations will be automatically set for users in those OUs.';
LOG::debug($msg);
if ($this->dryrun) {
$this->info($msg);
}
$this->mappedLocations = $locations->pluck('ldap_ou', 'id'); // TODO: this seems ok-ish, but the key-> value is going location_id -> OU name, and the primary action here is the opposite of that - going from OU's to location ID's.
}
}
/**
* Set the base dn if supplied.
*
* @author Wes Hulette <jwhulette@gmail.com>
*
* @since 5.0.0
*/
private function setBaseDn(): void
{
if ($this->option('base_dn')) {
$this->ldap->baseDn = $this->option('base_dn');
$msg = sprintf('Importing users from specified base DN: "%s"', $this->ldap->baseDn);
LOG::debug($msg);
if ($this->dryrun) {
$this->info($msg);
}
}
}
/**
* Get a default location id for imported users.
*
* @author Wes Hulette <jwhulette@gmail.com>
*
* @since 5.0.0
*/
private function getUserDefaultLocation(): void
{
$location = $this->option('location_id') ?? $this->option('location');
if ($location) {
$userLocation = Location::where('name', '=', $location)
->orWhere('id', '=', intval($location))
->select(['name', 'id'])
->first();
if ($userLocation) {
$msg = 'Importing users with default location: '.$userLocation->name.' ('.$userLocation->id.')';
LOG::debug($msg);
if ($this->dryrun) {
$this->info($msg);
}
$this->defaultLocation = collect([
$userLocation->id => $userLocation->name,
]);
} else {
$msg = 'The supplied location is invalid!';
LOG::error($msg);
if ($this->dryrun) {
$this->error($msg);
}
exit(0);
}
}
}
/**
* Check if LDAP intergration is enabled.
*
* @author Wes Hulette <jwhulette@gmail.com>
*
* @since 5.0.0
*/
private function checkIfLdapIsEnabled(): void
{
if (false === $this->settings['ldap_enabled']) {
$msg = 'LDAP intergration is not enabled. Exiting sync process.';
$this->info($msg);
Log::info($msg);
exit(0);
}
}
/**
* Check to make sure we can access the server.
*
* @author Wes Hulette <jwhulette@gmail.com>
*
* @since 5.0.0
*/
private function checkLdapConnection(): void
{
try {
$this->ldap->testLdapAdUserConnection();
$this->ldap->testLdapAdBindConnection();
} catch (Exception $e) {
$this->outputError($e);
exit(0);
}
}
/**
* Output the json summary to the screen if enabled.
*
* @param Exception $error
*/
private function outputError($error): void
{
if ($this->option('json_summary')) {
$json_summary = [
'error' => true,
'error_message' => $error->getMessage(),
'summary' => [],
];
$this->info(json_encode($json_summary));
}
$this->error($error->getMessage());
LOG::error($error);
}
}

View File

@@ -0,0 +1,517 @@
<?php
namespace App\Console\Commands;
use Illuminate\Console\Command;
use App\Models\Setting;
use Exception;
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.
*/
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 ) );
}
// NOTE - this function was shamelessly stolen from this gist: https://gist.github.com/tott/7684443
/**
* Ensure LDAP filters are parentheses-wrapped
*/
function parenthesized_filter($filter)
{
if(substr($filter,0,1) == "(" ) {
return $filter;
} else {
return "(".$filter.")";
}
}
class LdapTroubleshooter extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'ldap:troubleshoot
{--ldap-search : Output an ldapsearch command-line for testing your LDAP config}
{--force : Skip the interactive yes/no prompt for confirmation}
{--debug : Include debugging output (verbose)}
{--trace : Include extremely verbose LDAP trace output}
{--timeout=15 : Timeout for LDAP Bind operations}';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Runs a series of non-destructive LDAP commands to help try and determine correct LDAP settings for your environment.';
/**
* Create a new command instance.
*
* @return void
*/
public function __construct()
{
parent::__construct();
}
/**
* Output something *only* if debug is enabled
*
* @return void
*/
public function debugout($string)
{
if($this->option('debug')) {
$this->line($string);
}
}
/**
* Clean the results from ldap_get_entries into something useful
* @param array $array
* @return array
*/
public function ldap_results_cleaner ($array) {
$cleaned = [];
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") {
$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) {
$clean_row[$key] = $val[0];
} else {
unset($val['count']); //these counts are annoying
$elements = [];
foreach($val as $entry) {
if(isset($ldap_constants[$entry])) {
$elements[] = $ldap_constants[$entry];
} else {
$elements[] = $entry;
}
}
$clean_row[$key] = $elements;
}
} else {
$clean_row[$key] = $val;
}
}
$cleaned[$i] = $clean_row;
}
return $cleaned;
}
/**
* Execute the console command.
*
* @return mixed
*/
public function handle()
{
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')) {
$confirmation = $this->confirm('WARNING: This command will display your LDAP password on your terminal. Are you sure this is ok?');
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_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[] = escapeshellarg(parenthesized_filter($settings->ldap_filter));
if($settings->ldap_tls) {
$this->line("# adding STARTTLS option");
$output[] = "-Z";
}
$output[] = "-v";
$this->line("\n");
$this->line(implode(" \\\n",$output));
exit(0);
}
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) {
$this->error('ABORTING');
exit(-1);
}
}
//$this->line(print_r($settings,true));
$this->info("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)");
}
$ldap_conn = false;
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.");
}
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)
$parsed = parse_url($settings->ldap_server);
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.");
exit(-1);
} else {
$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(!$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'];
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");
}
}
$this->info("STAGE 2: Checking basic network connectivity");
$ports = [389,636];
if(@$parsed['port'] && !in_array($parsed['port'],$ports)) {
$ports[] = $parsed['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");
try {
$result = fsockopen($parsed['host'], $port, $errno, $errstr, 30.0);
} catch(Exception $e) {
$this->error("Exception: ".$e->getMessage());
}
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.");
exit(-1);
}
$this->info("STAGE 3: Determine encryption algorithm, if any");
$ldap_urls = [];
$pretty_ldap_urls = [];
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)) {
$this->info("Anonymous bind succesful to $ldap_url!");
$ldap_urls[] = [ $ldap_url, true, false ];
$pretty_ldap_urls[] = [ $ldap_url, "YES", "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" ];
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)) {
$this->info("Plain connection to $ldap_url with STARTTLS succesful!");
$ldap_urls[] = [ $ldap_url, true, true ];
$pretty_ldap_urls[] = [ $ldap_url, "YES", "YES" ];
continue;
} else {
$this->error("WARNING: Failed to bind to $ldap_url with STARTTLS enabled. 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" ];
continue;
} else {
$this->error("WARNING: Failed to bind to $ldap_url. Giving up on port $port");
}
}
$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"));
}
$this->table(["URL", "Cert Checks Enabled?", "STARTTLS Enabled?"],$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->info("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)) {
$ldap_constants[$val] = $key; // INVERT the meaning here!
}
}
$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!");
} else {
$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?")) {
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?
}
}
$this->info("LDAP TROUBLESHOOTING COMPLETE!");
}
public function connect_to_ldap($ldap_url, $check_cert, $start_tls)
{
$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) {
// 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");
return false;
}
}
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!");
}
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) {
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");
$bind_results = ldap_bind($lconn);
$this->info("Bind results are: ".$bind_results." which translate into boolean: ".(bool)$bind_results);
return (bool)$bind_results;
} catch (Exception $e) {
$this->error("WARNING: Exception caught during bind - ".$e->getMessage());
return false;
}
});
}
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) {
$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;
}
} 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)
{
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) {
$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]);
}
} catch (\Exception $e) {
$this->error("WARNING: Exception caught during Authed bind to $username - ".$e->getMessage());
return false;
}
});
}
/***********************************************
*
* 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'))) {
// 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');
return $function();
} else {
$parent_pid = posix_getpid();
$pid = pcntl_fork();
switch($pid) {
case 0:
//we're the 'child'
if($function()) {
//SUCCESS = SIGUSR1
posix_kill($parent_pid, SIGUSR1);
} else {
//FAILURE = SIGUSR2
posix_kill($parent_pid, SIGUSR2);
}
exit();
break; //yes I know we don't need it.
case -1:
//couldn't fork
$this->error("COULD NOT FORK - assuming failure");
return false;
break; //I still know that we don't need it
default:
//we remain the 'parent', $pid is the PID of the forked process.
$siginfo = [];
$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
return false;
}
break; //Yeah I get it already, shush.
}
}
}
}

View File

@@ -2,10 +2,10 @@
namespace App\Console\Commands;
use Illuminate\Console\Command;
use App\Events\UserMerged;
use App\Models\User;
use Carbon\Carbon;
use Illuminate\Console\Command;
class MergeUsersByUsername extends Command
{
@@ -42,71 +42,91 @@ class MergeUsersByUsername extends Command
{
// Get the list of users who have an email address as their username
$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("@", $user->username);
$bad_users = User::where('username', '=', $parts[0])->whereNull('deleted_at')->with('assets', 'manager', 'userlog', 'licenses', 'consumables', 'accessories', 'managedLocations')->get();
$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')
->get();
foreach ($bad_users as $bad_user) {
$this->info($bad_user->username.' ('.$bad_user->id.') will be merged into '.$user->username.' ('.$user->id.') ');
// Walk the list of assets
foreach ($bad_user->assets as $asset) {
$this->info( 'Updating asset '.$asset->asset_tag.' '.$asset->id.' to user '.$user->id);
$this->info('Updating asset '.$asset->asset_tag.' '.$asset->id.' to user '.$user->id);
$asset->assigned_to = $user->id;
if (!$asset->save()) {
$this->error( 'Could not update assigned_to field on asset '.$asset->asset_tag.' '.$asset->id.' to user '.$user->id);
$this->error( 'Error saving: '.$asset->getErrors());
if (! $asset->save()) {
$this->error('Could not update assigned_to field on asset '.$asset->asset_tag.' '.$asset->id.' to user '.$user->id);
$this->error('Error saving: '.$asset->getErrors());
}
}
// Walk the list of licenses
foreach ($bad_user->licenses as $license) {
$this->info( 'Updating license '.$license->name.' '.$license->id.' to user '.$user->id);
$this->info('Updating license '.$license->name.' '.$license->id.' to user '.$user->id);
$bad_user->licenses()->updateExistingPivot($license->id, ['assigned_to' => $user->id]);
}
// Walk the list of consumables
foreach ($bad_user->consumables as $consumable) {
$this->info( 'Updating consumable '.$consumable->id.' to user '.$user->id);
$this->info('Updating consumable '.$consumable->id.' to user '.$user->id);
$bad_user->consumables()->updateExistingPivot($consumable->id, ['assigned_to' => $user->id]);
}
// Walk the list of accessories
foreach ($bad_user->accessories as $accessory) {
$this->info( 'Updating accessory '.$accessory->id.' to user '.$user->id);
$this->info('Updating accessory '.$accessory->id.' to user '.$user->id);
$bad_user->accessories()->updateExistingPivot($accessory->id, ['assigned_to' => $user->id]);
}
// Walk the list of logs
foreach ($bad_user->userlog as $log) {
$this->info( 'Updating action log record '.$log->id.' to user '.$user->id);
$this->info('Updating action log record '.$log->id.' to user '.$user->id);
$log->target_id = $user->id;
$log->save();
}
// Update any manager IDs
$this->info( 'Updating managed user records to user '.$user->id);
$this->info('Updating managed user records to user '.$user->id);
User::where('manager_id', '=', $bad_user->id)->update(['manager_id' => $user->id]);
// Update location manager IDs
foreach ($bad_user->managedLocations as $managedLocation) {
$this->info( 'Updating managed location record '.$managedLocation->name.' to manager '.$user->id);
$this->info('Updating managed location record '.$managedLocation->name.' to manager '.$user->id);
$managedLocation->manager_id = $user->id;
$managedLocation->save();
}
foreach ($bad_user->uploads as $upload) {
$this->info('Updating upload log record '.$upload->id.' to user '.$user->id);
$upload->item_id = $user->id;
$upload->save();
}
foreach ($bad_user->acceptances as $acceptance) {
$this->info('Updating acceptance log record '.$acceptance->id.' to user '.$user->id);
$acceptance->item_id = $user->id;
$acceptance->save();
}
// Mark the user as deleted
$this->info( 'Marking the user as deleted');
$this->info('Marking the user as deleted');
$bad_user->deleted_at = Carbon::now()->timestamp;
$bad_user->save();
event(new UserMerged($bad_user, $user, null));
}
}
}
}

View File

@@ -2,9 +2,9 @@
namespace App\Console\Commands;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\Storage;
use Illuminate\Support\Facades\Log;
class MoveUploadsToNewDisk extends Command
{
@@ -39,49 +39,46 @@ class MoveUploadsToNewDisk extends Command
*/
public function handle()
{
if (config('filesystems.default')=='local') {
if (config('filesystems.default') == 'local') {
$this->error('Your current disk is set to local so we cannot proceed.');
$this->warn("Please configure your .env settings for S3. \nChange your PUBLIC_FILESYSTEM_DISK value to 's3_public' and your PRIVATE_FILESYSTEM_DISK to s3_private.");
return false;
}
$delete_local = $this->argument('delete_local');
$public_uploads['accessories'] = glob('public/accessories'."/*.*");
$public_uploads['assets'] = glob('public/assets'."/*.*");
$public_uploads['avatars'] = glob('public/avatars'."/*.*");
$public_uploads['categories'] = glob('public/categories'."/*.*");
$public_uploads['companies'] = glob('public/companies'."/*.*");
$public_uploads['components'] = glob('public/components'."/*.*");
$public_uploads['consumables'] = glob('public/consumables'."/*.*");
$public_uploads['departments'] = glob('public/departments'."/*.*");
$public_uploads['locations'] = glob('public/locations'."/*.*");
$public_uploads['manufacturers'] = glob('public/manufacturers'."/*.*");
$public_uploads['suppliers'] = glob('public/suppliers'."/*.*");
$public_uploads['assetmodels'] = glob('public/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)
{
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 {
Storage::disk('public')->put('uploads/'.public_type.'/'.$filename, file_get_contents($public_upload[$i]));
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);
} catch (\Exception $e) {
\Log::debug($e);
Log::debug($e);
$this->error($e);
}
}
}
$logos = glob("public/uploads/setting*.*");
@@ -92,8 +89,8 @@ class MoveUploadsToNewDisk extends Command
$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'."/*.*");
@@ -103,81 +100,69 @@ class MoveUploadsToNewDisk extends Command
$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/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.');
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]);
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);
}
}
}
if ($delete_local=='true') {
$public_delete_count = 0;
$private_delete_count = 0;
$this->info("\n\n");
$this->error('!!!!!!!!!!!!!!!!!!!!!!!!!!!!! WARNING!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!');
$this->warn("\nTHIS WILL DELETE ALL OF YOUR LOCAL UPLOADED FILES. \n\nThis cannot be undone, so you should take a backup of your system before you proceed.\n");
$this->error('!!!!!!!!!!!!!!!!!!!!!!!!!!!!! WARNING!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!');
if ($this->confirm("Do you wish to continue?")) {
foreach($public_uploads as $public_type => $public_upload) {
for ($i = 0; $i < count($public_upload); $i++) {
$filename = $public_upload[$i];
try {
unlink($filename);
$public_delete_count++;
} 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[$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);
}
}
}
foreach($private_uploads as $private_type => $private_upload)
{
for ($i = 0; $i < count($private_upload); $i++) {
$filename = $private_upload[$i];
try {
unlink($filename);
$private_delete_count++;
} catch (\Exception $e) {
\Log::debug($e);
$this->error($e);
if ($delete_local == 'true') {
$public_delete_count = 0;
$private_delete_count = 0;
$this->info("\n\n");
$this->error('!!!!!!!!!!!!!!!!!!!!!!!!!!!!! WARNING!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!');
$this->warn("\nTHIS WILL DELETE ALL OF YOUR LOCAL UPLOADED FILES. \n\nThis cannot be undone, so you should take a backup of your system before you proceed.\n");
$this->error('!!!!!!!!!!!!!!!!!!!!!!!!!!!!! WARNING!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!');
if ($this->confirm('Do you wish to continue?')) {
foreach ($public_uploads as $public_type => $public_upload) {
for ($i = 0; $i < count($public_upload); $i++) {
$filename = $public_upload[$i];
try {
unlink($filename);
$public_delete_count++;
} catch (\Exception $e) {
Log::debug($e);
$this->error($e);
}
}
}
}
$this->info($public_delete_count." PUBLIC local files and ".$private_delete_count." PRIVATE local files were deleted from your filesystem.");
foreach ($private_uploads as $private_type => $private_upload) {
for ($i = 0; $i < count($private_upload); $i++) {
$filename = $private_upload[$i];
try {
unlink($filename);
$private_delete_count++;
} catch (\Exception $e) {
Log::debug($e);
$this->error($e);
}
}
}
$this->info($public_delete_count . ' PUBLIC local files and ' . $private_delete_count . ' PRIVATE local files were deleted from your filesystem.');
}
}
}
}
}

View File

@@ -0,0 +1,52 @@
<?php
namespace App\Console\Commands;
use Illuminate\Console\Command;
use App\Models\User;
class NormalizeUserNames extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'snipeit:normalize-names';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Normalizes weirdly formatted names as first-letter upercased';
/**
* Create a new command instance.
*
* @return void
*/
public function __construct()
{
parent::__construct();
}
/**
* Execute the console command.
*
* @return int
*/
public function handle()
{
$users = User::get();
$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();
}
}
}

View File

@@ -1,9 +1,11 @@
<?php
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;
ini_set('max_execution_time', env('IMPORT_TIME_LIMIT', 600)); //600 seconds = 10 minutes
ini_set('memory_limit', env('IMPORT_MEMORY_LIMIT', '500M'));
@@ -13,7 +15,6 @@ ini_set('memory_limit', env('IMPORT_MEMORY_LIMIT', '500M'));
*/
class ObjectImportCommand extends Command
{
/**
* The console command name.
*
@@ -37,7 +38,9 @@ class ObjectImportCommand extends Command
{
parent::__construct();
}
private $bar;
/**
* Execute the console command.
*
@@ -55,38 +58,36 @@ class ObjectImportCommand extends Command
->setShouldNotify($this->option('send-welcome'))
->setUsernameFormat($this->option('username_format'));
// This $logFile/useFiles() bit is currently broken, so commenting it out for now
// $logFile = $this->option('logfile');
// \Log::useFiles($logFile);
// Log::useFiles($logFile);
$this->comment('======= Importing Items from '.$filename.' =========');
$importer->import();
$this->bar = null;
if (!empty($this->errors)) {
$this->comment("The following Errors were encountered.");
if (! empty($this->errors)) {
$this->comment('The following Errors were encountered.');
foreach ($this->errors as $asset => $error) {
$this->comment('Error: Item: ' . $asset . ' failed validation: ' . json_encode($error));
$this->comment('Error: Item: '.$asset.' failed validation: '.json_encode($error));
}
} else {
$this->comment("All Items imported successfully!");
$this->comment('All Items imported successfully!');
}
$this->comment("");
return;
$this->comment('');
}
public function errorCallback($item, $field, $errorString)
{
$this->errors[$item->name][$field] = $errorString;
}
public function progress($count)
{
if (!$this->bar) {
if (! $this->bar) {
$this->bar = $this->output->createProgressBar($count);
}
static $index =0;
static $index = 0;
$index++;
if ($index < $count) {
$this->bar->advance();
@@ -94,12 +95,12 @@ class ObjectImportCommand extends Command
$this->bar->finish();
}
}
// Tracks the current item for error messages
private $updating;
// An array of errors encountered while parsing
private $errors;
/**
* Log a message to file, configurable by the --log-file parameter.
* If a warning message is passed, we'll spit it to the console as well.
@@ -108,19 +109,20 @@ class ObjectImportCommand extends Command
* @since 3.0
* @param string $string
* @param string $level
*/
*/
public function log($string, $level = 'info')
{
if ($level === 'warning') {
\Log::warning($string);
Log::warning($string);
$this->comment($string);
} else {
\Log::Info($string);
Log::Info($string);
if ($this->option('verbose')) {
$this->comment($string);
}
}
}
/**
* Get the console command arguments.
*
@@ -130,12 +132,11 @@ class ObjectImportCommand extends Command
*/
protected function getArguments()
{
return array(
array('filename', InputArgument::REQUIRED, 'File for the CSV import.'),
);
return [
['filename', InputArgument::REQUIRED, 'File for the CSV import.'],
];
}
/**
* Get the console command options.
*
@@ -145,16 +146,15 @@ class ObjectImportCommand extends Command
*/
protected function getOptions()
{
return array(
array('email_format', null, InputOption::VALUE_REQUIRED, 'The format of the email addresses that should be generated. Options are firstname.lastname, firstname, filastname', null),
array('username_format', null, InputOption::VALUE_REQUIRED, 'The format of the username that should be generated. Options are firstname.lastname, firstname, filastname, email', null),
array('logfile', null, InputOption::VALUE_REQUIRED, 'The path to log output to. storage/logs/importer.log by default', storage_path('logs/importer.log') ),
array('item-type', null, InputOption::VALUE_REQUIRED, 'Item Type To import. Valid Options are Asset, Consumable, Accessory, License, or User', 'Asset'),
array('web-importer', null, InputOption::VALUE_NONE, 'Internal: packages output for use with the web importer'),
array('user_id', null, InputOption::VALUE_REQUIRED, 'ID of user creating items', 1),
array('update', null, InputOption::VALUE_NONE, 'If a matching item is found, update item information'),
array('send-welcome', null, InputOption::VALUE_NONE, 'Whether to send a welcome email to any new users that are created.'),
);
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.'],
];
}
}

View File

@@ -5,7 +5,7 @@ namespace App\Console\Commands;
use App\Models\Asset;
use App\Models\CustomField;
use Schema;
use DB;
use Illuminate\Support\Facades\DB;
use Illuminate\Console\Command;
class PaveIt extends Command

View File

@@ -50,7 +50,7 @@ class Purge extends Command
public function handle()
{
$force = $this->option('force');
if (($this->confirm("\n****************************************************\nTHIS WILL PURGE ALL SOFT-DELETED ITEMS IN YOUR SYSTEM. \nThere is NO undo. This WILL permanently destroy \nALL of your deleted data. \n****************************************************\n\nDo you wish to continue? No backsies! [y|N]")) || $force == 'true') {
if (($this->confirm("\n****************************************************\nTHIS WILL PURGE ALL SOFT-DELETED ITEMS IN YOUR SYSTEM. \nThere is NO undo. This WILL permanently destroy \nALL of your deleted data. \n****************************************************\n\nDo you wish to continue? No backsies! [y|N]")) || $force == 'true') {
/**
* Delete assets
@@ -80,9 +80,8 @@ class Purge extends Command
$location->forceDelete();
}
$accessories = Accessory::whereNotNull('deleted_at')->withTrashed()->get();
$accessory_assoc=0;
$accessory_assoc = 0;
$this->info($accessories->count().' accessories purged.');
foreach ($accessories as $accessory) {
$this->info('- Accessory "'.$accessory->name.'" deleted.');
@@ -92,7 +91,6 @@ class Purge extends Command
}
$this->info($accessory_assoc.' corresponding log records purged.');
$consumables = Consumable::whereNotNull('deleted_at')->withTrashed()->get();
$this->info($consumables->count().' consumables purged.');
foreach ($consumables as $consumable) {
@@ -101,7 +99,6 @@ class Purge extends Command
$consumable->forceDelete();
}
$components = Component::whereNotNull('deleted_at')->withTrashed()->get();
$this->info($components->count().' components purged.');
foreach ($components as $component) {
@@ -126,7 +123,6 @@ class Purge extends Command
$model->forceDelete();
}
$categories = Category::whereNotNull('deleted_at')->withTrashed()->get();
$this->info($categories->count().' categories purged.');
foreach ($categories as $category) {
@@ -165,11 +161,8 @@ class Purge extends Command
$this->info('- Status Label "'.$status_label->name.'" deleted.');
$status_label->forceDelete();
}
} else {
$this->info('Action canceled. Nothing was purged.');
}
}
}

View File

@@ -38,7 +38,7 @@ class PurgeLoginAttempts extends Command
public function handle()
{
if ($this->confirm("\n****************************************************\nTHIS WILL DELETE ALL OF THE YOUR LOGIN ATTEMPT RECORDS. \nThere is NO undo! \n****************************************************\n\nDo you wish to continue? No backsies! [y|N]")) {
\DB::statement('delete from login_attempts');
\DB::statement('delete from login_attempts');
}
}
}

View File

@@ -48,15 +48,13 @@ class ReEncodeCustomFieldNames extends Command
*/
public function handle()
{
if ($this->confirm('This will regenerate all of the custom field database fieldnames in your database. THIS WILL CHANGE YOUR SCHEMA AND SHOULD NOT BE DONE WITHOUT MAKING A BACKUP FIRST. Do you wish to continue?'))
{
if ($this->confirm('This will regenerate all of the custom field database fieldnames in your database. THIS WILL CHANGE YOUR SCHEMA AND SHOULD NOT BE DONE WITHOUT MAKING A BACKUP FIRST. Do you wish to continue?')) {
/** Get all of the custom fields */
$fields = CustomField::get();
$asset_columns = \DB::getSchemaBuilder()->getColumnListing('assets');
$custom_field_columns = array();
$custom_field_columns = [];
/** Loop through the columns on the assets table */
foreach ($asset_columns as $asset_column) {
@@ -71,43 +69,55 @@ class ReEncodeCustomFieldNames extends Command
* Then use that ID as the array key for use comparing the actual assets field name
* and the db_column value from the custom fields table.
*/
$last_part = substr(strrchr($asset_column, "_snipeit_"), 1);
$last_part = substr(strrchr($asset_column, '_snipeit_'), 1);
$custom_field_columns[$last_part] = $asset_column;
}
}
foreach ($fields as $field) {
$this->info($field->name .' ('.$field->id.') column should be '. $field->convertUnicodeDbSlug().'');
$this->info($field->name.' ('.$field->id.') column should be '.$field->convertUnicodeDbSlug());
/** The assets table has the column it should have, all is well */
if (\Schema::hasColumn('assets', $field->convertUnicodeDbSlug()))
{
$this->info('-- ✓ This field exists - all good');
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.
*/
} else {
$this->warn('-- X Field mismatch: updating... ');
/** Make sure the custom_field_columns array has the ID */
if (array_key_exists($field->id, $custom_field_columns)) {
if ($field->db_column != $field->convertUnicodeDbSlug()) {
$this->error('-- ✘ Field mismatch: '.$field->name.' value should be '.$field->convertUnicodeDbSlug().' but is '.$field->db_column.' in the custom_fields table');
/**
* Update the asset schema to the corrected fieldname that will be recognized by the
* system elsewhere that we use $field->convertUnicodeDbSlug()
*/
\Schema::table('assets', function($table) use ($custom_field_columns, $field) {
$table->renameColumn($custom_field_columns[$field->id], $field->convertUnicodeDbSlug());
});
} else {
$this->error('-- ✘ Field mismatch: '.$field->name.' column should be '.$field->convertUnicodeDbSlug().' but is '.$custom_field_columns[$field->id].' on the assets table.');
$this->warn('-- ✓ Field updated from '.$custom_field_columns[$field->id].' to '.$field->convertUnicodeDbSlug());
}
} else {
$this->warn('-- X 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.');
}
/** Make sure the custom_field_columns array has the ID */
if (array_key_exists($field->id, $custom_field_columns)) {
/**
* Update the asset schema to the corrected fieldname that will be recognized by the
* system elsewhere that we use $field->convertUnicodeDbSlug()
*/
$this->info('-- ✓ Updating field from '.$field->db_column.' to '.$field->convertUnicodeDbSlug().' in the assets table');
\Schema::table('assets', function ($table) use ($custom_field_columns, $field) {
$table->renameColumn($custom_field_columns[$field->id], $field->convertUnicodeDbSlug());
});
$this->info('-- ✓ Updating field from '.$field->db_column.' to '.$field->convertUnicodeDbSlug().' in the custom fields table');
$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.');
}
}
/** Update the db_column property in the custom fields table, just in case it doesn't match the other
@@ -115,12 +125,7 @@ class ReEncodeCustomFieldNames extends Command
*/
$field->db_column = $field->convertUnicodeDbSlug();
$field->save();
}
}
}
}

View File

@@ -44,37 +44,35 @@ class RecryptFromMcrypt extends Command
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 = array();
$errors = [];
if (!$legacy_key) {
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);
} 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;
}
@@ -84,8 +82,7 @@ class RecryptFromMcrypt extends Command
$force = ($this->option('force')) ? true : false;
if ($force || ($this->confirm("Are you SURE you wish to continue?"))) {
if ($force || ($this->confirm('Are you SURE you wish to continue?'))) {
$backup_file = 'backups/env-backups/'.'app_key-'.date('Y-m-d-gis');
try {
@@ -95,63 +92,57 @@ class RecryptFromMcrypt extends Command
$this->info('WARNING: Could not backup app keys');
}
if ($legacy_cipher){
$mcrypter = new McryptEncrypter($legacy_key,$legacy_cipher);
}else{
if ($legacy_cipher) {
$mcrypter = new McryptEncrypter($legacy_key, $legacy_cipher);
} else {
$mcrypter = new McryptEncrypter($legacy_key);
}
$settings = Setting::getSettings();
if ($settings->ldap_pword=='') {
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->ldap_pword = Crypt::encrypt($decrypted_ldap_pword);
$settings->save();
}
/** @var CustomField[] $custom_fields */
$custom_fields = CustomField::where('field_encrypted','=', 1)->get();
$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.')');
$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}!='') {
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);
$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) {
@@ -162,6 +153,5 @@ class RecryptFromMcrypt extends Command
}
}
}
}
}

View File

@@ -4,7 +4,7 @@ namespace App\Console\Commands;
use App\Models\Asset;
use App\Models\Setting;
use Artisan;
use Illuminate\Support\Facades\Artisan;
use Illuminate\Console\Command;
class RegenerateAssetTags extends Command
@@ -40,31 +40,27 @@ class RegenerateAssetTags extends Command
*/
public function handle()
{
if ($this->confirm('This will regenerate all of the asset tags within your system. This action is data-destructive and should be used with caution. Do you wish to continue?'))
{
if ($this->confirm('This will regenerate all of the asset tags within your system. This action is data-destructive and should be used with caution. Do you wish to continue?')) {
$output['info'] = [];
$output['warn'] = [];
$output['error'] = [];
$settings = Setting::getSettings();
$start_tag = ($this->option('start')) ? $this->option('start') : (($settings->next_auto_tag_base) ? Setting::getSettings()->next_auto_tag_base : 1) ;
$start_tag = ($this->option('start')) ? $this->option('start') : (($settings->next_auto_tag_base) ? Setting::getSettings()->next_auto_tag_base : 1);
$this->info('Starting at '.$start_tag);
$total_assets = Asset::orderBy('id','asc')->get();
$total_assets = Asset::orderBy('id', 'asc')->get();
$bar = $this->output->createProgressBar(count($total_assets));
try {
try {
Artisan::call('backup:run');
} catch (\Exception $e) {
$output['error'][] = $e;
}
foreach ($total_assets as $asset) {
$start_tag++;
$output['info'][] = 'Asset tag:'.$asset->asset_tag;
$asset->asset_tag = $settings->auto_increment_prefix.$settings->auto_increment_prefix.$start_tag;
@@ -76,29 +72,33 @@ class RegenerateAssetTags extends Command
// Use forceSave here to override model level validation
$asset->forceSave();
$start_tag++;
if ($bar) {
$bar->advance();
}
}
$settings->next_auto_tag_base = Asset::zerofill($start_tag, $settings->zerofill_count);
$settings->save();
$bar->finish();
$this->info("\n");
if (($this->option('output')=='all') || ($this->option('output')=='info')) {
if (($this->option('output') == 'all') || ($this->option('output') == 'info')) {
foreach ($output['info'] as $key => $output_text) {
$this->info($output_text);
}
}
if (($this->option('output')=='all') || ($this->option('output')=='warn')) {
if (($this->option('output') == 'all') || ($this->option('output') == 'warn')) {
foreach ($output['warn'] as $key => $output_text) {
$this->warn($output_text);
}
}
if (($this->option('output')=='all') || ($this->option('output')=='error')) {
if (($this->option('output') == 'all') || ($this->option('output') == 'error')) {
foreach ($output['error'] as $key => $output_text) {
$this->error($output_text);
}
}
}
}
}

View File

@@ -48,6 +48,7 @@ class ResetDemoSettings extends Command
$settings->auto_increment_assets = 1;
$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->default_currency = 'USD';
@@ -62,7 +63,7 @@ class ResetDemoSettings extends Command
$settings->date_display_format = 'D M d, Y';
$settings->time_display_format = 'g:iA';
$settings->thumbnail_max_h = '30';
$settings->locale = 'en';
$settings->locale = 'en-US';
$settings->version_footer = 'on';
$settings->support_footer = null;
$settings->saml_enabled = '0';
@@ -77,7 +78,7 @@ class ResetDemoSettings extends Command
$settings->save();
if ($user = User::where('username', '=', 'admin')->first()) {
$user->locale = 'en';
$user->locale = 'en-US';
$user->save();
}

View File

@@ -6,8 +6,8 @@ use App\Models\Actionlog;
use App\Models\Asset;
use App\Models\License;
use App\Models\User;
use Artisan;
use DB;
use Illuminate\Support\Facades\Artisan;
use Illuminate\Support\Facades\DB;
use Illuminate\Console\Command;
class RestoreDeletedUsers extends Command
@@ -43,16 +43,15 @@ class RestoreDeletedUsers extends Command
*/
public function handle()
{
$start_date = $this->option('start_date');
$end_date = $this->option('end_date');
$asset_totals = 0;
$license_totals = 0;
$user_count = 0;
if (($start_date=='') || ($end_date=='')) {
if (($start_date == '') || ($end_date == '')) {
$this->info('ERROR: All fields are required.');
return false;
}
@@ -63,15 +62,15 @@ class RestoreDeletedUsers extends Command
foreach ($users as $user) {
$user_count++;
$user_logs = Actionlog::where('target_id', $user->id)->where('target_type',User::class)
->where('action_type','checkout')->with('item')->get();
$user_logs = Actionlog::where('target_id', $user->id)->where('target_type', User::class)
->where('action_type', 'checkout')->with('item')->get();
$this->info($user_count.'. '.$user->username.' ('.$user->id.') was deleted at '.$user->deleted_at. ' and has '.$user_logs->count().' checkouts associated.');
$this->info($user_count.'. '.$user->username.' ('.$user->id.') was deleted at '.$user->deleted_at.' and has '.$user_logs->count().' checkouts associated.');
foreach ($user_logs as $user_log) {
$this->info(' * '.$user_log->item_type.': '.$user_log->item->name.' - item_id: '.$user_log->item_id);
if ($user_log->item_type==Asset::class) {
if ($user_log->item_type == Asset::class) {
$asset_totals++;
DB::table('assets')
@@ -79,11 +78,10 @@ class RestoreDeletedUsers extends Command
->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) {
} elseif ($user_log->item_type == License::class) {
$license_totals++;
$avail_seat = DB::table('license_seats')->where('license_id','=',$user_log->item->id)
$avail_seat = DB::table('license_seats')->where('license_id', '=', $user_log->item->id)
->whereNull('assigned_to')->whereNull('asset_id')->whereBetween('updated_at', [$start_date, $end_date])->first();
if ($avail_seat) {
$this->info(' ** Allocating seat '.$avail_seat->id.' for this License');
@@ -91,27 +89,17 @@ class RestoreDeletedUsers extends Command
DB::table('license_seats')
->where('id', $avail_seat->id)
->update(['assigned_to' => $user->id]);
} else {
$this->warn('ERROR: No available seats for '.$user_log->item->name);
}
}
}
$this->warn('Restoring user '.$user->username.'!');
$user->restore();
}
$this->info($asset_totals.' assets affected');
$this->info($license_totals.' licenses affected');
}
}

View File

@@ -3,8 +3,153 @@
namespace App\Console\Commands;
use Illuminate\Console\Command;
use ZipArchive;
use Illuminate\Support\Facades\Log;
class SQLStreamer {
private $input;
private $output;
// embed the prefix here?
public ?string $prefix;
private bool $reading_beginning_of_line = true;
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)
{
$this->input = $input;
$this->output = $output;
$this->prefix = $prefix;
}
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.
if($this->statement_is_permitted && $line[0] === ' ') {
return $line;
}
$table_regex = '`?([a-zA-Z0-9_]+)`?';
$allowed_statements = [
"/^(DROP TABLE (?:IF EXISTS )?)`$table_regex(.*)$/" => false,
"/^(CREATE TABLE )$table_regex(.*)$/" => true, //sets up 'continuation'
"/^(LOCK TABLES )$table_regex(.*)$/" => false,
"/^(INSERT INTO )$table_regex(.*)$/" => 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
// ^^^^^^ that bit should *exit* the 'perimitted' black
];
foreach($allowed_statements as $statement => $statechange) {
// $this->info("Checking regex: $statement...\n");
$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";
if ($this->should_guess) {
@$this->tablenames[$matches[2]] += 1;
continue; //oh? FIXME
} else {
$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;
}
}
// all that is not allowed is denied.
return "";
}
//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
{
$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_users' table?
// can't use 'assets' because 'ver1_components_assets'
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));
}
}
}
$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($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();
}
}
}
return $guessed_prefix;
}
public function line_aware_piping(): int
{
$bytes_read = 0;
if (! $this->input) {
throw new \Exception("No Input available for line_aware_piping");
}
while (($buffer = fgets($this->input, SQLStreamer::$buffer_size)) !== false) {
$bytes_read += strlen($buffer);
if ($this->reading_beginning_of_line) {
// Log::debug("Buffer is: '$buffer'");
$cleaned_buffer = $this->parse_sql($buffer);
if ($this->output) {
$bytes_written = fwrite($this->output, $cleaned_buffer);
if ($bytes_written === false) {
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") {
$this->reading_beginning_of_line = true;
} else {
$this->reading_beginning_of_line = false;
}
}
return $bytes_read;
}
}
class RestoreFromBackup extends Command
{
@@ -13,17 +158,20 @@ class RestoreFromBackup extends Command
*
* @var string
*/
// FIXME - , stripping prefixes and nonstandard SQL statements. Without --prefix, guess and return the correct prefix to strip
protected $signature = 'snipeit:restore
{--force : Skip the danger prompt; assuming you hit "y"}
{--force : Skip the danger prompt; assuming you enter "y"}
{filename : The zip file to be migrated}
{--no-progress : Don\'t show a progress bar}';
{--no-progress : Don\'t show a progress bar}
{--sanitize-guess-prefix : Guess and output the table-prefix needed to "sanitize" the SQL}
{--sanitize-with-prefix= : "Sanitize" the SQL, using the passed-in table prefix (can be learned from --sanitize-guess-prefix). Pass as just \'--sanitize-with-prefix=\' to use no prefix}';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Restore from a previously created backup';
protected $description = 'Restore from a previously created Snipe-IT backup file';
/**
* Create a new command instance.
@@ -43,20 +191,23 @@ class RestoreFromBackup extends Command
public function handle()
{
$dir = getcwd();
print "Current working directory is: $dir\n";
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?!
}
//
$filename = $this->argument('filename');
if (!$filename) {
return $this->error("Missing required filename");
if (! $filename) {
return $this->error('Missing required filename');
}
if (!$this->option('force') && !$this->confirm('Are you sure you wish to restore from the given backup file? This can lead to MASSIVE DATA LOSS!')) {
return $this->error("Data loss not confirmed");
if (! $this->option('force') && ! $this->option('sanitize-guess-prefix') && ! $this->confirm('Are you sure you wish to restore from the given backup file? This can lead to MASSIVE DATA LOSS!')) {
return $this->error('Data loss not confirmed');
}
if (config('database.default') != 'mysql') {
return $this->error("DB_CONNECTION must be MySQL in order to perform a restore. Detected: ".config('database.default'));
return $this->error('DB_CONNECTION must be MySQL in order to perform a restore. Detected: '.config('database.default'));
}
$za = new ZipArchive();
@@ -64,60 +215,61 @@ class RestoreFromBackup extends Command
$errcode = $za->open($filename/* , ZipArchive::RDONLY */); // that constant only exists in PHP 7.4 and higher
if ($errcode !== true) {
$errors = [
ZipArchive::ER_EXISTS => "File already exists.",
ZipArchive::ER_INCONS => "Zip archive inconsistent.",
ZipArchive::ER_INVAL => "Invalid argument.",
ZipArchive::ER_MEMORY => "Malloc failure.",
ZipArchive::ER_NOENT => "No such file.",
ZipArchive::ER_NOZIP => "Not a zip archive.",
ZipArchive::ER_EXISTS => 'File already exists.',
ZipArchive::ER_INCONS => 'Zip archive inconsistent.',
ZipArchive::ER_INVAL => 'Invalid argument.',
ZipArchive::ER_MEMORY => 'Malloc failure.',
ZipArchive::ER_NOENT => 'No such file ('.$filename.') in directory '.$dir.'.',
ZipArchive::ER_NOZIP => 'Not a zip archive.',
ZipArchive::ER_OPEN => "Can't open file.",
ZipArchive::ER_READ => "Read error.",
ZipArchive::ER_SEEK => "Seek error."
ZipArchive::ER_READ => 'Read error.',
ZipArchive::ER_SEEK => 'Seek error.',
];
return $this->error("Could not access file: ".$filename." - ".array_key_exists($errcode,$errors) ? $errors[$errcode] : " Unknown reason: $errcode");
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/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/assetmodels',
'storage/private_uploads/users',
'storage/private_uploads/licenses',
'storage/private_uploads/signatures'
'storage/private_uploads/signatures',
'storage/private_uploads/users',
];
$private_files = [
'storage/oauth-private.key',
'storage/oauth-public.key'
'storage/oauth-public.key',
];
$public_dirs = [
'public/uploads/accessories',
'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',
'public/uploads/categories',
'public/uploads/manufacturers',
//'public/uploads/barcodes', // we don't want this, let the barcodes be regenerated
'public/uploads/consumables',
'public/uploads/departments',
'public/uploads/avatars',
'public/uploads/suppliers',
'public/uploads/assets', // these are asset _pictures_, not asset files
'public/uploads/locations',
'public/uploads/accessories',
'public/uploads/manufacturers',
'public/uploads/models',
'public/uploads/categories',
'public/uploads/avatars',
'public/uploads/manufacturers'
'public/uploads/suppliers',
];
$public_files = [
'public/uploads/logo.*',
'public/uploads/setting-email_logo*',
'public/uploads/setting-label_logo*',
'public/uploads/setting-logo*',
'public/uploads/favicon.*',
'public/uploads/favicon-uploaded.*'
'public/uploads/favicon-uploaded.*',
];
$all_files = $private_dirs + $public_dirs;
@@ -127,96 +279,116 @@ class RestoreFromBackup extends Command
$interesting_files = [];
$boring_files = [];
for ($i=0; $i<$za->numFiles;$i++) {
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
$raw_path = strtr($raw_path,'\\','/');
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";
}
// skip macOS resource fork files (?!?!?!)
if(strpos($raw_path,"__MACOSX")!==false && strpos($raw_path,"._") !== false) {
if (strpos($raw_path, '__MACOSX') !== false && strpos($raw_path, '._') !== false) {
//print "SKIPPING macOS Resource fork file: $raw_path\n";
$boring_files[] = $raw_path;
continue;
}
if(@pathinfo($raw_path)['extension'] == "sql") {
print "Found a sql file!\n";
if (@pathinfo($raw_path, PATHINFO_EXTENSION) == 'sql') {
Log::debug("Found a sql file!");
$sqlfiles[] = $raw_path;
$sqlfile_indices[] = $i;
continue;
}
foreach(array_merge($private_dirs,$public_dirs) as $dir) {
$last_pos = strrpos($raw_path,$dir.'/');
if($last_pos !== false ) {
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];
$interesting_files[$raw_path] = ['dest' => $dir, 'index' => $i];
continue 2;
if($last_pos + strlen($dir) +1 == strlen($raw_path)) {
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");
}
}
}
$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)
$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 ) {
$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");
if (!in_array($extension, $good_extensions)) {
$this->warn('Potentially unsafe file ' . $raw_path . ' is being skipped');
$boring_files[] = $raw_path;
continue 2;
}
//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.
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];
$interesting_files[$raw_path] = ['dest' => dirname($file), 'index' => $i];
continue 2;
}
}
}
$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);
if( count($sqlfiles) != 1) {
return $this->error("There should be exactly *one* sql backup file found, found: ".( count($sqlfiles) == 0 ? "None" : implode(", ",$sqlfiles)));
if (count($sqlfiles) != 1) {
return $this->error('There should be exactly *one* sql backup file found, found: '.(count($sqlfiles) == 0 ? 'None' : implode(', ', $sqlfiles)));
}
if( strpos($sqlfiles[0], "db-dumps") === false ) {
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
}
$sql_stat = $za->statIndex($sqlfile_indices[0]);
//$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.");
}
//how to invoke the restore?
$pipes = [];
$env_vars = getenv();
$env_vars['MYSQL_PWD'] = config("database.connections.mysql.password");
$proc_results = proc_open("mysql -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']],
$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) ) {
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.
if($proc_results === false) {
return $this->error("Unable to invoke mysql via CLI");
if ($proc_results === false) {
return $this->error('Unable to invoke mysql via CLI');
}
// I'm not sure about these?
stream_set_blocking($pipes[1], false); // use non-blocking reads for stdout
stream_set_blocking($pipes[2], false); // use non-blocking reads for stderr
// $this->info("Stdout says? ".fgets($pipes[1])); //FIXME: I think we might need to set non-blocking mode to use this properly?
// $this->info("Stderr says? ".fgets($pipes[2])); //FIXME: ditto, same.
// should we read stdout?
@@ -224,28 +396,50 @@ class RestoreFromBackup extends Command
//$sql_contents = fopen($sqlfiles[0], "r"); //NOPE! This isn't a real file yet, silly-billy!
$sql_stat = $za->statIndex($sqlfile_indices[0]);
//$this->info("SQL Stat is: ".print_r($sql_stat,true));
$sql_contents = $za->getStream($sql_stat['name']);
// 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,
// why do we care what's happening with pipes and stdout and stderr?!
if ($sql_contents === false) {
$stdout = fgets($pipes[1]);
$this->info($stdout);
$stderr = fgets($pipes[2]);
$this->info($stderr);
return false;
}
while(($buffer = fgets($sql_contents)) !== false ) {
//$this->info("Buffer is: '$buffer'");
$bytes_written = fwrite($pipes[0],$buffer);
if($bytes_written === false) {
$stdout = fgets($pipes[1]);
$this->info($stdout);
$stderr = fgets($pipes[2]);
$this->info($stderr);
return false;
try {
if ( $this->option('sanitize-with-prefix') === null) {
// "Legacy" direct-piping
$bytes_read = 0;
while (($buffer = fgets($sql_contents, SQLStreamer::$buffer_size)) !== false) {
$bytes_read += strlen($buffer);
// Log::debug("Buffer is: '$buffer'");
$bytes_written = fwrite($pipes[0], $buffer);
if ($bytes_written === false) {
throw new Exception("Unable to write to pipe");
}
}
} else {
$sql_importer = new SQLStreamer($sql_contents, $pipes[0], $this->option('sanitize-with-prefix'));
$bytes_read = $sql_importer->line_aware_piping();
}
} catch (\Exception $e) {
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);
$this->info($err_out);
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!");
}
fclose($pipes[0]);
fclose($sql_contents);
@@ -257,41 +451,40 @@ class RestoreFromBackup extends Command
//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);
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!!!!
if($this->option('no-progress')) {
if ($this->option('no-progress')) {
$bar = null;
} else {
$bar = $this->output->createProgressBar(count($interesting_files));
}
foreach($interesting_files AS $pretty_file_name => $file_details) {
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));
$migrated_file = fopen($file_details['dest']."/".basename($pretty_file_name),"w");
while(($buffer = fgets($fp))!== false) {
fwrite($migrated_file,$buffer);
$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) {
if ($bar) {
$bar->advance();
}
}
if($bar) {
if ($bar) {
$bar->finish();
$this->line("");
$this->line('');
} else {
$this->info(count($interesting_files)." files were succesfully transferred");
$this->info(count($interesting_files).' files were succesfully transferred');
}
foreach($boring_files as $boring_file) {
$this->warn($boring_file." was skipped.");
foreach ($boring_files as $boring_file) {
$this->warn($boring_file.' was skipped.');
}
}
}

View File

@@ -2,12 +2,13 @@
namespace App\Console\Commands;
use Illuminate\Console\Command;
use Artisan;
use App\Models\CustomField;
use App\Models\Asset;
use App\Models\CustomField;
use App\Models\Setting;
use \Illuminate\Encryption\Encrypter;
use Illuminate\Support\Facades\Artisan;
use Illuminate\Console\Command;
use Illuminate\Contracts\Encryption\DecryptException;
use Illuminate\Encryption\Encrypter;
class RotateAppKey extends Command
{
@@ -16,14 +17,17 @@ class RotateAppKey extends Command
*
* @var string
*/
protected $signature = 'snipeit:rotate-key';
protected $signature = 'snipeit:rotate-key
{previous_key? : The previous key to rotate from}
{--emergency : Emergency mode - rotate from .env APP_KEY to newly-generated one, modifying .env}
{--force : Skip interactive confirmation}';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Command description';
protected $description = 'Rotates APP_KEY to a new value, optionally taking the previous key as an argument';
/**
* Create a new command instance.
@@ -42,28 +46,42 @@ class RotateAppKey extends Command
*/
public function handle()
{
if ($this->confirm("\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? ")) {
//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') ) {
$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? ";
}
if ($this->option('force') || $this->confirm($msg)) {
// Get the existing app_key and ciphers
// We put them in a variable since we clear the cache partway through here.
$old_app_key = config('app.key');
$cipher = config('app.cipher');
if ($this->option('emergency')) {
$old_app_key = config('app.key');
$cipher = config('app.cipher');
// Generate a new one
Artisan::call('key:generate', ['--show' => true]);
$new_app_key = Artisan::output();
// Generate a new one
Artisan::call('key:generate', ['--show' => true]);
$new_app_key = trim(Artisan::output());
// Clear the config cache
Artisan::call('config:clear');
// Clear the config cache
Artisan::call('config:clear');
$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);
// Write the new app key to the .env file
$this->writeNewEnvironmentFileWith($new_app_key);
} elseif ($this->argument('previous_key')) {
$old_app_key = $this->argument('previous_key');
$cipher = config('app.cipher'); // just a guess?
$new_app_key = config('app.key');
}
// Write the new app key to the .env file
$this->writeNewEnvironmentFileWith($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
@@ -73,33 +91,38 @@ class RotateAppKey extends Command
$fields = CustomField::where('field_encrypted', '1')->get();
foreach ($fields as $field) {
$assets = Asset::whereNotNull($field->db_column)->get();
foreach ($assets as $asset) {
$asset->{$field->db_column} = $oldEncrypter->decrypt($asset->{$field->db_column});
$this->line('DECRYPTED: '. $field->db_column);
try {
$asset->{$field->db_column} = $oldEncrypter->decrypt($asset->{$field->db_column});
$this->line('DECRYPTED: ' . $field->db_column);
} catch (DecryptException $e) {
$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");
throw $e;
}
$asset->{$field->db_column} = $newEncrypter->encrypt($asset->{$field->db_column});
$this->line('ENCRYPTED: '.$field->db_column);
$asset->save();
}
}
// Handle the LDAP password if one is provided
$setting = Setting::first();
if ($setting->ldap_pword!='') {
$setting->ldap_pword = $oldEncrypter->decrypt($setting->ldap_pword);
$setting->ldap_pword = $newEncrypter->encrypt($setting->ldap_pword);
$setting->save();
$this->warn('LDAP password has been re-encrypted.');
if ($setting->ldap_pword != '') {
try {
$setting->ldap_pword = $oldEncrypter->decrypt($setting->ldap_pword);
$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");
}
}
} else {
$this->info('This operation has been canceled. No changes have been made.');
}
@@ -113,10 +136,9 @@ class RotateAppKey extends Command
*/
protected function writeNewEnvironmentFileWith($key)
{
file_put_contents($this->laravel->environmentFilePath(), preg_replace(
$this->keyReplacementPattern(),
'APP_KEY='.$key,
'APP_KEY="'.$key.'"',
file_get_contents($this->laravel->environmentFilePath())
));
}
@@ -128,8 +150,8 @@ class RotateAppKey extends Command
*/
protected function keyReplacementPattern()
{
$escaped = preg_quote('='.$this->laravel['config']['app.key'], '/');
$escaped = '="?'.preg_quote($this->laravel['config']['app.key'], '/').'"?';
return "/^APP_KEY{$escaped}/m";
}
}

View File

@@ -0,0 +1,44 @@
<?php
namespace App\Console\Commands;
use Illuminate\Console\Command;
use App\Models\SamlNonce;
class SamlClearExpiredNonces extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'saml:clear_expired_nonces';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Clears out expired SAML assertions from the saml_nonces table';
/**
* Create a new command instance.
*
* @return void
*/
public function __construct()
{
parent::__construct();
}
/**
* Execute the console command.
*
* @return int
*/
public function handle()
{
SamlNonce::where('not_valid_after','<=',now())->delete();
return 0;
}
}

View File

@@ -39,22 +39,16 @@ class SendCurrentInventoryToUsers extends Command
*/
public function handle()
{
$users = User::whereNull('deleted_at')->whereNotNull('email')->with('assets', 'accessories', 'licenses')->get();
$count = 0;
foreach ($users as $user) {
if (($user->assets->count() > 0) || ($user->accessories->count() > 0) || ($user->licenses->count() > 0))
{
if (($user->assets->count() > 0) || ($user->accessories->count() > 0) || ($user->licenses->count() > 0) || ($user->consumables->count() > 0)) {
$count++;
$user->notify((new CurrentInventory($user)));
}
}
$this->info($count.' users notified.');
}
}

View File

@@ -3,12 +3,12 @@
namespace App\Console\Commands;
use App\Models\Asset;
use App\Models\Recipients\AlertRecipient;
use App\Models\Setting;
use App\Notifications\ExpectedCheckinAdminNotification;
use App\Notifications\ExpectedCheckinNotification;
use Carbon\Carbon;
use Illuminate\Console\Command;
use App\Models\Recipients\AlertRecipient;
class SendExpectedCheckinAlerts extends Command
{
@@ -41,25 +41,32 @@ class SendExpectedCheckinAlerts extends Command
*/
public function handle()
{
$settings = Setting::getSettings();
$whenNotify = Carbon::now()->addDays(7);
$assets = Asset::with('assignedTo')->whereNotNull('assigned_to')->whereNotNull('expected_checkin')->where('expected_checkin', '<=', $whenNotify)->get();
$settings = Setting::getSettings();
$interval = $settings->audit_warning_days ?? 0;
$today = Carbon::now();
$interval_date = $today->copy()->addDays($interval);
$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($whenNotify . ' is deadline');
$this->info($assets->count() . ' assets');
foreach ($assets as $asset) {
if ($asset->assigned && $asset->checkedOutToUser()) {
$asset->assigned->notify((new ExpectedCheckinNotification($asset)));
if ($asset->assignedTo && (isset($asset->assignedTo->email)) && ($asset->assignedTo->email!='') && $asset->checkedOutToUser()) {
$this->info('Sending User ExpectedCheckinNotification to: '.$asset->assignedTo->email);
$asset->assignedTo->notify((new ExpectedCheckinNotification($asset)));
}
}
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, $key) {
$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));
}
}
}

View File

@@ -41,7 +41,7 @@ class SendExpirationAlerts extends Command
*/
public function handle()
{
$settings = Setting::getSettings();
$settings = Setting::getSettings();
$threshold = $settings->alert_interval;
if (($settings->alert_email != '') && ($settings->alerts_enabled == 1)) {

View File

@@ -3,14 +3,12 @@
namespace App\Console\Commands;
use App\Models\Asset;
use App\Models\License;
use App\Models\Recipients\AlertRecipient;
use App\Models\Setting;
use App\Notifications\ExpiringAssetsNotification;
use App\Models\Recipients;
use DB;
use Illuminate\Console\Command;
use App\Notifications\SendUpcomingAuditNotification;
use Carbon\Carbon;
use Illuminate\Support\Facades\DB;
use Illuminate\Console\Command;
class SendUpcomingAuditReport extends Command
{
@@ -46,46 +44,24 @@ class SendUpcomingAuditReport extends Command
public function handle()
{
$settings = Setting::getSettings();
$interval = $settings->audit_warning_days ?? 0;
$today = Carbon::now();
$interval_date = $today->copy()->addDays($interval);
if (($settings->alert_email != '') && ($settings->audit_warning_days) && ($settings->alerts_enabled == 1)) {
$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');
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, $key) {
return new \App\Models\Recipients\AlertRecipient($item);
$recipients = collect(explode(',', $settings->alert_email))->map(function ($item) {
return new AlertRecipient($item);
});
$this->info('Sending Admin SendUpcomingAuditNotification to: '.$settings->alert_email);
\Notification::send($recipients, new SendUpcomingAuditNotification($assets, $settings->audit_warning_days));
// Assets due for auditing
$assets = Asset::whereNotNull('next_audit_date')
->DueOrOverdueForAudit($settings)
->orderBy('last_audit_date', 'asc')->get();
if ($assets->count() > 0) {
$this->info(trans_choice('mail.upcoming-audits', $assets->count(),
['count' => $assets->count(), 'threshold' => $settings->audit_warning_days]));
\Notification::send($recipients, new SendUpcomingAuditNotification($assets, $settings->audit_warning_days));
$this->info('Audit report sent to '.$settings->alert_email);
} else {
$this->info('No assets to be audited. No report sent.');
}
} elseif ($settings->alert_email=='') {
$this->error('Could not send email. No alert email configured in settings');
} elseif (!$settings->audit_warning_days) {
$this->error('No audit warning days set in Admin Notifications. No mail will be sent.');
} elseif ($settings->alerts_enabled!=1) {
$this->info('Alerts are disabled in the settings. No mail will be sent');
} else {
$this->error('Something went wrong. :( ');
$this->error('Admin Notifications Email Setting: '.$settings->alert_email);
$this->error('Admin Audit Warning Setting: '.$settings->audit_warning_days);
$this->error('Admin Alerts Emnabled: '.$settings->alerts_enabled);
}
}
}

View File

@@ -4,6 +4,7 @@ namespace App\Console\Commands;
use App\Models\Asset;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\Log;
class SyncAssetCounters extends Command
{
@@ -39,37 +40,38 @@ class SyncAssetCounters extends Command
public function handle()
{
$start = microtime(true);
// We need the whole count of all assets in order to set up the progress bar
$assets_count = Asset::withTrashed()->count();
$bar = $this->output->createProgressBar($assets_count);
$assets = Asset::withCount('checkins as checkins_count', 'checkouts as checkouts_count', 'userRequests as user_requests_count')
->withTrashed()->get();
->withTrashed()->chunk(100, function ($assets) use ($bar) {
if ($assets) {
if ($assets->count() > 0) {
$bar = $this->output->createProgressBar($assets->count());
foreach ($assets as $asset) {
$asset->checkin_counter = (int) $asset->checkins_count;
$asset->checkout_counter = (int) $asset->checkouts_count;
$asset->requests_counter = (int) $asset->user_requests_count;
$asset->unsetEventDispatcher();
$asset->save();
$output['info'][] = 'Asset: ' . $asset->id . ' has ' . $asset->checkin_counter . ' checkins, ' . $asset->checkout_counter . ' checkouts, and ' . $asset->requests_counter . ' requests';
$bar->advance();
}
$bar->finish();
if ($assets->count() > 0) {
foreach ($output['info'] as $key => $output_text) {
$this->info($output_text);
}
foreach ($assets as $asset) {
$time_elapsed_secs = microtime(true) - $start;
$this->info('Sync executed in ' . $time_elapsed_secs . ' seconds');
$asset->checkin_counter = (int) $asset->checkins_count;
$asset->checkout_counter = (int) $asset->checkouts_count;
$asset->requests_counter = (int) $asset->user_requests_count;
$asset->unsetEventDispatcher();
$asset->save();
$bar->advance();
Log::debug('Asset: '.$asset->id.' has '.$asset->checkin_counter.' checkins, '.$asset->checkout_counter.' checkouts, and '.$asset->requests_counter.' requests');
}
} 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');
}

View File

@@ -38,7 +38,6 @@ class SyncAssetLocations extends Command
*/
public function handle()
{
$output['info'] = [];
$output['warn'] = [];
$output['error'] = [];
@@ -51,96 +50,89 @@ class SyncAssetLocations extends Command
$output['info'][] = 'There are '.$rtd_assets->count().' unassigned assets.';
foreach ($rtd_assets as $rtd_asset) {
$output['info'][] = 'Setting Unassigned Asset ' . $rtd_asset->id . ' ('.$rtd_asset->asset_tag.') to location: ' . $rtd_asset->rtd_location_id . " because their default location is: " . $rtd_asset->rtd_location_id;
$rtd_asset->location_id=$rtd_asset->rtd_location_id;
$output['info'][] = 'Setting Unassigned Asset '.$rtd_asset->id.' ('.$rtd_asset->asset_tag.') to location: '.$rtd_asset->rtd_location_id.' because their default location is: '.$rtd_asset->rtd_location_id;
$rtd_asset->location_id = $rtd_asset->rtd_location_id;
$rtd_asset->unsetEventDispatcher();
$rtd_asset->save();
$bar->advance();
}
$assigned_user_assets = Asset::where('assigned_type','App\Models\User')->whereNotNull('assigned_to')->whereNull('deleted_at')->get();
$assigned_user_assets = Asset::where('assigned_type', \App\Models\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)) {
$new_location = $assigned_user_asset->assignedTo->userLoc->id;
$output['info'][] ='Setting User Asset ' . $assigned_user_asset->id . ' ('.$assigned_user_asset->asset_tag.') to ' . $assigned_user_asset->assignedTo->userLoc->name . ' which is id: ' . $new_location;
$output['info'][] = 'Setting User Asset '.$assigned_user_asset->id.' ('.$assigned_user_asset->asset_tag.') to '.$assigned_user_asset->assignedTo->userLoc->name.' which is id: '.$new_location;
} else {
$output['warn'][] ='Asset ' . $assigned_user_asset->id . ' ('.$assigned_user_asset->asset_tag.') still has no location! ';
$output['warn'][] = 'Asset '.$assigned_user_asset->id.' ('.$assigned_user_asset->asset_tag.') still has no location! ';
$new_location = $assigned_user_asset->rtd_location_id;
}
$assigned_user_asset->location_id=$new_location;
$assigned_user_asset->location_id = $new_location;
$assigned_user_asset->unsetEventDispatcher();
$assigned_user_asset->save();
$bar->advance();
}
$assigned_location_assets = Asset::where('assigned_type','App\Models\Location')
$assigned_location_assets = Asset::where('assigned_type', \App\Models\Location::class)
->whereNotNull('assigned_to')->whereNull('deleted_at')->get();
$output['info'][] = 'There are '.$assigned_location_assets->count().' assets checked out to locations.';
foreach ($assigned_location_assets as $assigned_location_asset) {
if ($assigned_location_asset->assignedTo) {
$assigned_location_asset->location_id = $assigned_location_asset->assignedTo->id;
$output['info'][] ='Setting Location Assigned asset ' . $assigned_location_asset->id . ' ('.$assigned_location_asset->asset_tag.') that is checked out to '.$assigned_location_asset->assignedTo->name.' (#'.$assigned_location_asset->assignedTo->id.') to location: ' . $assigned_location_asset->assetLoc()->id;
$output['info'][] = 'Setting Location Assigned asset '.$assigned_location_asset->id.' ('.$assigned_location_asset->asset_tag.') that is checked out to '.$assigned_location_asset->assignedTo->name.' (#'.$assigned_location_asset->assignedTo->id.') to location: '.$assigned_location_asset->assetLoc()->id;
$assigned_location_asset->unsetEventDispatcher();
$assigned_location_asset->save();
} else {
$output['warn'][] ='Asset ' . $assigned_location_asset->id . ' ('.$assigned_location_asset->asset_tag.') did not return a valid associated location - perhaps it was deleted?';
$output['warn'][] = 'Asset '.$assigned_location_asset->id.' ('.$assigned_location_asset->asset_tag.') did not return a valid associated location - perhaps it was deleted?';
}
$bar->advance();
}
// Assigned to assets
$assigned_asset_assets = Asset::where('assigned_type','App\Models\Asset')
$assigned_asset_assets = Asset::where('assigned_type', \App\Models\Asset::class)
->whereNotNull('assigned_to')->whereNull('deleted_at')->get();
$output['info'][] ='Asset-assigned assets: '.$assigned_asset_assets->count();
$output['info'][] = 'Asset-assigned assets: '.$assigned_asset_assets->count();
foreach ($assigned_asset_assets as $assigned_asset_asset) {
foreach ($assigned_asset_assets as $assigned_asset_asset) {
// 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;
$assigned_asset_asset->unsetEventDispatcher();
$assigned_asset_asset->save();
} else {
$output['warn'][] ='Asset Assigned asset ' . $assigned_asset_asset->id. ' ('.$assigned_asset_asset->asset_tag.') does not seem to have a valid location';
}
$bar->advance();
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;
$assigned_asset_asset->unsetEventDispatcher();
$assigned_asset_asset->save();
} else {
$output['warn'][] = 'Asset Assigned asset '.$assigned_asset_asset->id.' ('.$assigned_asset_asset->asset_tag.') does not seem to have a valid location';
}
$unlocated_assets = Asset::whereNull("location_id")->whereNull('deleted_at')->get();
$output['info'][] ='Assets still without a location: '.$unlocated_assets->count();
foreach($unlocated_assets as $unlocated_asset) {
$output['warn'][] ='Asset: '.$unlocated_asset->id.' still has no location. ';
$bar->advance();
}
$unlocated_assets = Asset::whereNull('location_id')->whereNull('deleted_at')->get();
$output['info'][] = 'Assets still without a location: '.$unlocated_assets->count();
foreach ($unlocated_assets as $unlocated_asset) {
$output['warn'][] = 'Asset: '.$unlocated_asset->id.' still has no location. ';
$bar->advance();
}
$bar->finish();
$this->info("\n");
if (($this->option('output')=='all') || ($this->option('output')=='info')) {
if (($this->option('output') == 'all') || ($this->option('output') == 'info')) {
foreach ($output['info'] as $key => $output_text) {
$this->info($output_text);
}
}
if (($this->option('output')=='all') || ($this->option('output')=='warn')) {
if (($this->option('output') == 'all') || ($this->option('output') == 'warn')) {
foreach ($output['warn'] as $key => $output_text) {
$this->warn($output_text);
}
}
if (($this->option('output')=='all') || ($this->option('output')=='error')) {
if (($this->option('output') == 'all') || ($this->option('output') == 'error')) {
foreach ($output['error'] as $key => $output_text) {
$this->error($output_text);
}
}
}
}

View File

@@ -6,13 +6,12 @@ use Illuminate\Console\Command;
class SystemBackup extends Command
{
/**
* The console command name.
*
* @var string
*/
protected $name = 'snipeit:backup';
protected $signature = 'snipeit:backup {--filename=}';
/**
* The console command description.
@@ -38,8 +37,18 @@ class SystemBackup extends Command
*/
public function handle()
{
//
$this->call('backup:run');
if ($this->option('filename')) {
$filename = $this->option('filename');
// Make sure the filename ends in .zip
if (!ends_with($filename, '.zip')) {
$filename = $filename.'.zip';
}
$this->call('backup:run', ['--filename' => $filename]);
} else {
$this->call('backup:run');
}
}
}

View File

@@ -0,0 +1,76 @@
<?php
namespace App\Console\Commands;
use App\Models\Asset;
use App\Models\CustomField;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\DB;
class ToggleCustomfieldEncryption extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'snipeit:customfield-encryption
{fieldname : the db_column_name of the field}';
/**
* The console command description.
*
* @var string
*/
protected $description = 'This command should be used to convert an unencrypted custom field into a custom field and encrypt the associated data in the assets table for that column.';
/**
* Create a new command instance.
*
* @return void
*/
public function __construct()
{
parent::__construct();
}
/**
* Execute the console command.
*
* @return int
*/
public function handle()
{
$fieldname = $this->argument('fieldname');
if ($field = CustomField::where('db_column', $fieldname)->first()) {
// If the field is not encrypted, make it encrypted and encrypt the data in the assets table for the
// corresponding field.
DB::transaction(function () use ($field) {
if ($field->field_encrypted == 0) {
$assets = Asset::whereNotNull($field->db_column)->get();
foreach ($assets as $asset) {
$asset->{$field->db_column} = encrypt($asset->{$field->db_column});
$asset->save();
}
$field->field_encrypted = 1;
$field->save();
// This field is already encrypted. Do nothing.
} else {
$this->error('The custom field ' . $field->db_column.' is already encrypted. No action was taken.');
}
});
// No matching column name found
} else {
$this->error('No matching results for unencrypted custom fields with db_column name: ' . $fieldname.'. Please check the fieldname.');
}
}
}

View File

@@ -37,7 +37,6 @@ class Version extends Command
*/
public function handle()
{
$use_branch = $this->option('branch');
$use_type = $this->option('type');
$git_branch = trim(shell_exec('git rev-parse --abbrev-ref HEAD'));
@@ -54,72 +53,66 @@ class Version extends Command
$this->line('Type is: '.$use_type);
$this->line('Current version is: '.$full_hash_version);
if (count($version)==3) {
if (count($version) == 3) {
$this->line('This does not look like an alpha/beta release.');
} else {
if (array_key_exists('3',$version)) {
if (array_key_exists('3', $version)) {
$this->line('The current version looks like a beta release.');
$prerelease_version = $version[1];
$hash_version = $version[3];
}
}
$app_version_raw = explode('.', $app_version);
$maj = str_replace('v', '', $app_version_raw[0]);
$min = $app_version_raw[1];
$patch = '';
// This is a major release that might not have a third .0
if (array_key_exists(2, $app_version_raw)) {
$patch = $app_version_raw[2];
}
if ($use_type=='major') {
$app_version = "v".($maj + 1).".$min.$patch";
} elseif ($use_type=='minor') {
$app_version = "v"."$maj.".($min + 1).".$patch";
} elseif ($use_type=='pre') {
$pre_raw = str_replace('beta','', $prerelease_version);
$pre_raw = str_replace('alpha','', $pre_raw);
$pre_raw = str_ireplace('rc','', $pre_raw);
if ($use_type == 'major') {
$app_version = 'v'.($maj + 1).".$min.$patch";
} elseif ($use_type == 'minor') {
$app_version = 'v'."$maj.".($min + 1).".$patch";
} elseif ($use_type == 'pre') {
$pre_raw = str_replace('beta', '', $prerelease_version);
$pre_raw = str_replace('alpha', '', $pre_raw);
$pre_raw = str_ireplace('rc', '', $pre_raw);
$pre_raw = $pre_raw++;
$this->line('Setting the pre-release to '. $prerelease_version.'-'.$pre_raw);
$app_version = "v"."$maj.".($min + 1).".$patch";
} elseif ($use_type=='patch') {
$app_version = "v" . "$maj.$min." . ($patch + 1);
$this->line('Setting the pre-release to '.$prerelease_version.'-'.$pre_raw);
$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
} else {
$app_version = "v" . "$maj.$min." . $patch;
$app_version = 'v'."$maj.$min.".$patch;
}
// Determine if this tag already exists, or if this prior to a release
$this->line('Running: git rev-parse master '.$current_app_version);
// $pre_release = trim(shell_exec('git rev-parse '.$use_branch.' '.$current_app_version.' 2>&1 1> /dev/null'));
if ($use_branch=='develop') {
if ($use_branch == 'develop') {
$app_version = $app_version.'-pre';
}
$full_app_version = $app_version.' - build '.$build_version.'-'.$hash_version;
$array = var_export(
array(
[
'app_version' => $app_version,
'full_app_version' => $full_app_version,
'build_version' => $build_version,
'prerelease_version' => $prerelease_version,
'hash_version' => $hash_version,
'full_hash' => $full_hash_version,
'branch' => $git_branch),
'branch' => $git_branch, ],
true
);
// Construct our file content
$content = <<<CON
@@ -129,7 +122,6 @@ CON;
// And finally write the file and output the current version
\File::put($versionFile, $content);
$this->info('Setting NEW version: '. $full_app_version.' ('.$git_branch.')');
$this->info('Setting NEW version: '.$full_app_version.' ('.$git_branch.')');
}
}

View File

@@ -10,7 +10,6 @@ use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
class Kernel extends ConsoleKernel
{
/**
* Define the application's command schedule.
*
@@ -25,6 +24,8 @@ class Kernel extends ConsoleKernel
$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();
}
/**

View File

@@ -18,6 +18,6 @@ class CheckoutAccepted
*/
public function __construct(CheckoutAcceptance $acceptance)
{
$this->acceptance = $acceptance;
$this->acceptance = $acceptance;
}
}

View File

@@ -10,7 +10,7 @@ use Illuminate\Queue\SerializesModels;
class CheckoutDeclined
{
use Dispatchable, SerializesModels;
/**
* Create a new event instance.
*
@@ -18,6 +18,6 @@ class CheckoutDeclined
*/
public function __construct(CheckoutAcceptance $acceptance)
{
$this->acceptance = $acceptance;
$this->acceptance = $acceptance;
}
}

View File

@@ -15,18 +15,20 @@ class CheckoutableCheckedIn
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;
/**
* Create a new event instance.
*
* @return void
*/
public function __construct($checkoutable, $checkedOutTo, User $checkedInBy, $note, $action_date = null)
public function __construct($checkoutable, $checkedOutTo, User $checkedInBy, $note, $action_date = null, $originalValues = [])
{
$this->checkoutable = $checkoutable;
$this->checkedOutTo = $checkedOutTo;
$this->checkedInBy = $checkedInBy;
$this->note = $note;
$this->action_date = $action_date ?? date('Y-m-d');
$this->checkedInBy = $checkedInBy;
$this->note = $note;
$this->action_date = $action_date ?? date('Y-m-d');
$this->originalValues = $originalValues;
}
}

View File

@@ -14,17 +14,19 @@ class CheckoutableCheckedOut
public $checkedOutTo;
public $checkedOutBy;
public $note;
public $originalValues;
/**
* Create a new event instance.
*
* @return void
*/
public function __construct($checkoutable, $checkedOutTo, User $checkedOutBy, $note)
public function __construct($checkoutable, $checkedOutTo, User $checkedOutBy, $note, $originalValues = [])
{
$this->checkoutable = $checkoutable;
$this->checkedOutTo = $checkedOutTo;
$this->checkedOutBy = $checkedOutBy;
$this->note = $note;
$this->note = $note;
$this->originalValues = $originalValues;
}
}

24
app/Events/UserMerged.php Normal file
View File

@@ -0,0 +1,24 @@
<?php
namespace App\Events;
use Illuminate\Foundation\Events\Dispatchable;
use Illuminate\Queue\SerializesModels;
use App\Models\User;
class UserMerged
{
use Dispatchable, SerializesModels;
/**
* Create a new event instance.
*
* @return void
*/
public function __construct(User $from_user, User $to_user, ?User $admin)
{
$this->merged_from = $from_user;
$this->merged_to = $to_user;
$this->admin = $admin;
}
}

View File

@@ -6,17 +6,17 @@ use Exception;
class CheckoutNotAllowed extends Exception
{
private $errorMessage;
function __construct($errorMessage = null)
public function __construct($errorMessage = null)
{
$this->errorMessage = $errorMessage;
parent::__construct($errorMessage);
}
public function __toString()
{
return is_null($this->errorMessage) ? "A checkout is not allowed under these circumstances" : $this->errorMessage;
return is_null($this->errorMessage) ? 'A checkout is not allowed under these circumstances' : $this->errorMessage;
}
}

View File

@@ -2,18 +2,20 @@
namespace App\Exceptions;
use Exception;
use Illuminate\Auth\AuthenticationException;
use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
use App\Helpers\Helper;
use Illuminate\Validation\ValidationException;
use Log;
use Illuminate\Auth\AuthenticationException;
use ArieTimmerman\Laravel\SCIMServer\Exceptions\SCIMException;
use Illuminate\Support\Facades\Log;
use Throwable;
use JsonException;
use Carbon\Exceptions\InvalidFormatException;
class Handler extends ExceptionHandler
{
/**
* A list of the exception types that should not be reported.
* A list of the exception types that are not reported.
*
* @var array
*/
@@ -26,6 +28,9 @@ class Handler extends ExceptionHandler
\Illuminate\Validation\ValidationException::class,
\Intervention\Image\Exception\NotSupportedException::class,
\League\OAuth2\Server\Exception\OAuthServerException::class,
JsonException::class,
SCIMException::class, //these generally don't need to be reported
InvalidFormatException::class,
];
/**
@@ -33,25 +38,27 @@ class Handler extends ExceptionHandler
*
* This is a great spot to send exceptions to Sentry, Bugsnag, etc.
*
* @param \Exception $exception
* @param \Throwable $exception
* @return void
*/
public function report(Exception $exception)
public function report(Throwable $exception)
{
if ($this->shouldReport($exception)) {
\Log::error($exception);
if (class_exists(Log::class)) {
Log::error($exception);
}
return parent::report($exception);
}
}
/**
* Render an exception into an HTTP response.
*
*
* @param \Illuminate\Http\Request $request
* @param \Exception $e
* @return \Illuminate\Http\Response
* @return \Illuminate\Http\JsonResponse|\Illuminate\Http\RedirectResponse|\Illuminate\Http\Response
*/
public function render($request, Exception $e)
public function render($request, Throwable $e)
{
@@ -60,15 +67,42 @@ class Handler extends ExceptionHandler
return redirect()->back()->with('error', trans('general.token_expired'));
}
// Invalid JSON exception
// TODO: don't understand why we have to do this when we have the invalidJson() method, below, but, well, whatever
if ($e instanceof JsonException) {
return response()->json(Helper::formatStandardApiResponse('error', null, 'Invalid JSON'), 422);
}
// Handle Ajax requests that fail because the model doesn't exist
// Handle SCIM exceptions
if ($e instanceof SCIMException) {
try {
$e->report(); // logs as 'debug', so shouldn't get too noisy
} catch(\Exception $reportException) {
//do nothing
}
return $e->render($request); // ALL SCIMExceptions have the 'render()' method
}
// Handle standard requests that fail because Carbon cannot parse the date on validation (when a submitted date value is definitely not a date)
if ($e instanceof InvalidFormatException) {
return redirect()->back()->withInput()->with('error', trans('validation.date', ['attribute' => 'date']));
}
// Handle API requests that fail
if ($request->ajax() || $request->wantsJson()) {
// Handle API requests that fail because Carbon cannot parse the date on validation (when a submitted date value is definitely not a date)
if ($e instanceof InvalidFormatException) {
return response()->json(Helper::formatStandardApiResponse('error', null, trans('validation.date', ['attribute' => 'date'])), 200);
}
// Handle API requests that fail because the model doesn't exist
if ($e instanceof \Illuminate\Database\Eloquent\ModelNotFoundException) {
$className = last(explode('\\', $e->getModel()));
return response()->json(Helper::formatStandardApiResponse('error', null, $className . ' not found'), 200);
}
// Handle API requests that fail because of an HTTP status code and return a useful error message
if ($this->isHttpException($e)) {
$statusCode = $e->getStatusCode();
@@ -76,16 +110,20 @@ class Handler extends ExceptionHandler
switch ($e->getStatusCode()) {
case '404':
return response()->json(Helper::formatStandardApiResponse('error', null, $statusCode . ' endpoint not found'), 404);
case '405':
case '429':
return response()->json(Helper::formatStandardApiResponse('error', null, 'Too many requests'), 429);
case '405':
return response()->json(Helper::formatStandardApiResponse('error', null, 'Method not allowed'), 405);
default:
return response()->json(Helper::formatStandardApiResponse('error', null, $statusCode), 405);
return response()->json(Helper::formatStandardApiResponse('error', null, $statusCode), $statusCode);
}
}
}
if ($this->isHttpException($e) && (isset($statusCode)) && ($statusCode == '404' )) {
return response()->view('layouts/basic', [
'content' => view('errors/404')
@@ -96,13 +134,13 @@ class Handler extends ExceptionHandler
}
/**
/**
* Convert an authentication exception into an unauthenticated response.
*
* @param \Illuminate\Http\Request $request
* @param \Illuminate\Auth\AuthenticationException $exception
* @return \Illuminate\Http\Response
*/
* @return \Illuminate\Http\JsonResponse|\Illuminate\Http\RedirectResponse
*/
protected function unauthenticated($request, AuthenticationException $exception)
{
if ($request->expectsJson()) {
@@ -112,15 +150,32 @@ class Handler extends ExceptionHandler
return redirect()->guest('login');
}
/**
* Convert a validation exception into a JSON response.
*
* @param \Illuminate\Http\Request $request
* @param \Illuminate\Validation\ValidationException $exception
* @return \Illuminate\Http\JsonResponse
*/
protected function invalidJson($request, ValidationException $exception)
{
return response()->json(Helper::formatStandardApiResponse('error', null, $exception->errors(), 422));
return response()->json(Helper::formatStandardApiResponse('error', null, $exception->errors()), 200);
}
}
/**
* A list of the inputs that are never flashed for validation exceptions.
*
* @var array
*/
protected $dontFlash = [
'current_password',
'password',
'password_confirmation',
];
/**
* Register the exception handling callbacks for the application.
*
* @return void
*/
public function register()
{
$this->reportable(function (Throwable $e) {
//
});
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -1,15 +1,17 @@
<?php
namespace App\Helpers;
use Illuminate\Support\Facades\Storage;
class StorageHelper
{
static function downloader($filename, $disk = 'default') {
if($disk == 'default') {
public static function downloader($filename, $disk = 'default')
{
if ($disk == 'default') {
$disk = config('filesystems.default');
}
switch(config("filesystems.disks.$disk.driver")) {
switch (config("filesystems.disks.$disk.driver")) {
case 'local':
return response()->download(Storage::disk($disk)->path($filename)); //works for PRIVATE or public?!
@@ -20,4 +22,4 @@ class StorageHelper
return Storage::disk($disk)->download($filename);
}
}
}
}

View File

@@ -1,4 +1,5 @@
<?php
namespace App\Http\Controllers\Accessories;
use App\Helpers\Helper;
@@ -8,7 +9,9 @@ use App\Models\Accessory;
use App\Models\Company;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Storage;
use Illuminate\Support\Facades\Validator;
use Redirect;
use Illuminate\Support\Facades\Log;
/** This controller handles all actions related to Accessories for
* the Snipe-IT Asset Management application.
@@ -30,10 +33,10 @@ class AccessoriesController extends Controller
public function index()
{
$this->authorize('index', Accessory::class);
return view('accessories/index');
}
/**
* Returns a view with a form to create a new Accessory.
*
@@ -45,22 +48,23 @@ class AccessoriesController extends Controller
{
$this->authorize('create', Accessory::class);
$category_type = 'accessory';
return view('accessories/edit')->with('category_type', $category_type)
->with('item', new Accessory);
}
/**
* Validate and save new Accessory from form post
*
* @author [A. Gianotto] [<snipe@snipe.net>]
* @param ImageUploadRequest $request
* @return Redirect
* @return \Illuminate\Http\RedirectResponse
* @throws \Illuminate\Auth\Access\AuthorizationException
*/
public function store(ImageUploadRequest $request)
{
$this->authorize(Accessory::class);
// create a new model instance
$accessory = new Accessory();
@@ -74,18 +78,20 @@ class AccessoriesController extends Controller
$accessory->manufacturer_id = request('manufacturer_id');
$accessory->model_number = request('model_number');
$accessory->purchase_date = request('purchase_date');
$accessory->purchase_cost = Helper::ParseCurrency(request('purchase_cost'));
$accessory->purchase_cost = request('purchase_cost');
$accessory->qty = request('qty');
$accessory->user_id = Auth::user()->id;
$accessory->supplier_id = request('supplier_id');
$accessory->notes = request('notes');
$accessory = $request->handleImages($accessory);
// Was the accessory created?
if ($accessory->save()) {
// Redirect to the new accessory page
return redirect()->route('accessories.index')->with('success', trans('admin/accessories/message.create.success'));
}
return redirect()->back()->withInput()->withErrors($accessory->getErrors());
}
@@ -102,6 +108,7 @@ class AccessoriesController extends Controller
if ($item = Accessory::find($accessoryId)) {
$this->authorize($item);
return view('accessories/edit', compact('item'))->with('category_type', 'accessory');
}
@@ -109,6 +116,34 @@ class AccessoriesController extends Controller
}
/**
* Returns a view that presents a form to clone an accessory.
*
* @author [J. Vinsmoke]
* @param int $accessoryId
* @since [v6.0]
* @return View
*/
public function getClone($accessoryId = null)
{
$this->authorize('create', Accessory::class);
// Check if the asset exists
if (is_null($accessory_to_clone = Accessory::find($accessoryId))) {
// Redirect to the asset management page
return redirect()->route('accessories.index')
->with('error', trans('admin/accessories/message.does_not_exist', ['id' => $accessoryId]));
}
$accessory = clone $accessory_to_clone;
$accessory->id = null;
$accessory->location_id = null;
return view('accessories/edit')
->with('item', $accessory);
}
/**
* Save edited Accessory from form post
@@ -116,37 +151,52 @@ class AccessoriesController extends Controller
* @author [A. Gianotto] [<snipe@snipe.net>]
* @param ImageUploadRequest $request
* @param int $accessoryId
* @return Redirect
* @return \Illuminate\Http\RedirectResponse
* @throws \Illuminate\Auth\Access\AuthorizationException
*/
public function update(ImageUploadRequest $request, $accessoryId = null)
{
if (is_null($accessory = Accessory::find($accessoryId))) {
if ($accessory = Accessory::withCount('users as users_count')->find($accessoryId)) {
$this->authorize($accessory);
$validator = Validator::make($request->all(), [
"qty" => "required|numeric|min:$accessory->users_count"
]);
if ($validator->fails()) {
return redirect()->back()
->withErrors($validator)
->withInput();
}
// Update the accessory data
$accessory->name = request('name');
$accessory->location_id = request('location_id');
$accessory->min_amt = request('min_amt');
$accessory->category_id = request('category_id');
$accessory->company_id = Company::getIdForCurrentUser(request('company_id'));
$accessory->manufacturer_id = request('manufacturer_id');
$accessory->order_number = request('order_number');
$accessory->model_number = request('model_number');
$accessory->purchase_date = request('purchase_date');
$accessory->purchase_cost = request('purchase_cost');
$accessory->qty = request('qty');
$accessory->supplier_id = request('supplier_id');
$accessory->notes = request('notes');
$accessory = $request->handleImages($accessory);
// Was the accessory updated?
if ($accessory->save()) {
return redirect()->route('accessories.index')->with('success', trans('admin/accessories/message.update.success'));
}
} else {
return redirect()->route('accessories.index')->with('error', trans('admin/accessories/message.does_not_exist'));
}
$this->authorize($accessory);
// Update the accessory data
$accessory->name = request('name');
$accessory->location_id = request('location_id');
$accessory->min_amt = request('min_amt');
$accessory->category_id = request('category_id');
$accessory->company_id = Company::getIdForCurrentUser(request('company_id'));
$accessory->manufacturer_id = request('manufacturer_id');
$accessory->order_number = request('order_number');
$accessory->model_number = request('model_number');
$accessory->purchase_date = request('purchase_date');
$accessory->purchase_cost = Helper::ParseCurrency(request('purchase_cost'));
$accessory->qty = request('qty');
$accessory->supplier_id = request('supplier_id');
$accessory = $request->handleImages($accessory);
// Was the accessory updated?
if ($accessory->save()) {
return redirect()->route('accessories.index')->with('success', trans('admin/accessories/message.update.success'));
}
return redirect()->back()->withInput()->withErrors($accessory->getErrors());
}
@@ -155,7 +205,7 @@ class AccessoriesController extends Controller
*
* @author [A. Gianotto] [<snipe@snipe.net>]
* @param int $accessoryId
* @return Redirect
* @return \Illuminate\Http\RedirectResponse
* @throws \Illuminate\Auth\Access\AuthorizationException
*/
public function destroy($accessoryId)
@@ -168,18 +218,19 @@ class AccessoriesController extends Controller
if ($accessory->hasUsers() > 0) {
return redirect()->route('accessories.index')->with('error', trans('admin/accessories/message.assoc_users', array('count'=> $accessory->hasUsers())));
return redirect()->route('accessories.index')->with('error', trans('admin/accessories/message.assoc_users', ['count'=> $accessory->hasUsers()]));
}
if ($accessory->image) {
try {
try {
Storage::disk('public')->delete('accessories'.'/'.$accessory->image);
} catch (\Exception $e) {
\Log::debug($e);
Log::debug($e);
}
}
$accessory->delete();
return redirect()->route('accessories.index')->with('success', trans('admin/accessories/message.delete.success'));
}
@@ -197,11 +248,12 @@ class AccessoriesController extends Controller
*/
public function show($accessoryID = null)
{
$accessory = Accessory::find($accessoryID);
$accessory = Accessory::withCount('users as users_count')->find($accessoryID);
$this->authorize('view', $accessory);
if (isset($accessory->id)) {
return view('accessories/view', compact('accessory'));
}
return redirect()->route('accessories.index')->with('error', trans('admin/accessories/message.does_not_exist', ['id' => $accessoryID]));
}
}

View File

@@ -0,0 +1,159 @@
<?php
namespace App\Http\Controllers\Accessories;
use App\Helpers\StorageHelper;
use App\Http\Controllers\Controller;
use App\Http\Requests\UploadFileRequest;
use App\Models\Actionlog;
use App\Models\Accessory;
use Illuminate\Support\Facades\Response;
use Illuminate\Support\Facades\Storage;
use Symfony\Accessory\HttpFoundation\JsonResponse;
use Illuminate\Support\Facades\Log;
class AccessoriesFilesController extends Controller
{
/**
* Validates and stores files associated with a accessory.
*
* @param UploadFileRequest $request
* @param int $accessoryId
* @return \Illuminate\Http\RedirectResponse
* @throws \Illuminate\Auth\Access\AuthorizationException
*@author [A. Gianotto] [<snipe@snipe.net>]
* @since [v1.0]
* @todo Switch to using the AssetFileRequest form request validator.
*/
public function store(UploadFileRequest $request, $accessoryId = null)
{
if (config('app.lock_passwords')) {
return redirect()->route('accessories.show', ['accessory'=>$accessoryId])->with('error', trans('general.feature_disabled'));
}
$accessory = Accessory::find($accessoryId);
if (isset($accessory->id)) {
$this->authorize('accessories.files', $accessory);
if ($request->hasFile('file')) {
if (! Storage::exists('private_uploads/accessories')) {
Storage::makeDirectory('private_uploads/accessories', 775);
}
foreach ($request->file('file') as $file) {
$file_name = $request->handleFile('private_uploads/accessories/', 'accessory-'.$accessory->id, $file);
//Log the upload to the log
$accessory->logUpload($file_name, e($request->input('notes')));
}
return redirect()->route('accessories.show', $accessory->id)->with('success', trans('general.file_upload_success'));
}
return redirect()->route('accessories.show', $accessory->id)->with('error', trans('general.no_files_uploaded'));
}
// Prepare the error message
return redirect()->route('accessories.index')
->with('error', trans('general.file_does_not_exist'));
}
/**
* Deletes the selected accessory file.
*
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v1.0]
* @param int $accessoryId
* @param int $fileId
* @return \Illuminate\Http\RedirectResponse
* @throws \Illuminate\Auth\Access\AuthorizationException
*/
public function destroy($accessoryId = null, $fileId = null)
{
$accessory = Accessory::find($accessoryId);
// the asset is valid
if (isset($accessory->id)) {
$this->authorize('update', $accessory);
$log = Actionlog::find($fileId);
// Remove the file if one exists
if (Storage::exists('accessories/'.$log->filename)) {
try {
Storage::delete('accessories/'.$log->filename);
} catch (\Exception $e) {
Log::debug($e);
}
}
$log->delete();
return redirect()->back()
->with('success', trans('admin/hardware/message.deletefile.success'));
}
// Redirect to the licence management page
return redirect()->route('accessories.index')->with('error', trans('general.file_does_not_exist'));
}
/**
* Allows the selected file to be viewed.
*
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v1.4]
* @param int $accessoryId
* @param int $fileId
* @return \Symfony\Accessory\HttpFoundation\Response
* @throws \Illuminate\Auth\Access\AuthorizationException
*/
public function show($accessoryId = null, $fileId = null, $download = true)
{
Log::debug('Private filesystem is: '.config('filesystems.default'));
$accessory = Accessory::find($accessoryId);
// the accessory is valid
if (isset($accessory->id)) {
$this->authorize('view', $accessory);
$this->authorize('accessories.files', $accessory);
if (! $log = Actionlog::whereNotNull('filename')->where('item_id', $accessory->id)->find($fileId)) {
return redirect()->route('accessories.index')->with('error', trans('admin/users/message.log_record_not_found'));
}
$file = 'private_uploads/accessories/'.$log->filename;
if (Storage::missing($file)) {
Log::debug('FILE DOES NOT EXISTS for '.$file);
Log::debug('URL should be '.Storage::url($file));
return response('File '.$file.' ('.Storage::url($file).') not found on server', 404)
->header('Content-Type', 'text/plain');
} else {
// Display the file inline
if (request('inline') == 'true') {
$headers = [
'Content-Disposition' => 'inline',
];
return Storage::download($file, $log->filename, $headers);
}
// We have to override the URL stuff here, since local defaults in Laravel's Flysystem
// won't work, as they're not accessible via the web
if (config('filesystems.default') == 'local') { // TODO - is there any way to fix this at the StorageHelper layer?
return StorageHelper::downloader($file);
}
}
}
return redirect()->route('accessories.index')->with('error', trans('general.file_does_not_exist', ['id' => $fileId]));
}
}

View File

@@ -17,7 +17,7 @@ class AccessoryCheckinController extends Controller
*
* @author [A. Gianotto] [<snipe@snipe.net>]
* @param Request $request
* @param integer $accessoryUserId
* @param int $accessoryUserId
* @param string $backto
* @return View
* @internal param int $accessoryId
@@ -33,6 +33,7 @@ class AccessoryCheckinController extends Controller
$accessory = Accessory::find($accessory_user->accessory_id);
$this->authorize('checkin', $accessory);
return view('accessories/checkin', compact('accessory'))->with('backto', $backto);
}
@@ -43,13 +44,13 @@ class AccessoryCheckinController extends Controller
* @author [A. Gianotto] [<snipe@snipe.net>]
* @param null $accessoryUserId
* @param string $backto
* @return Redirect
* @return \Illuminate\Http\RedirectResponse
* @throws \Illuminate\Auth\Access\AuthorizationException
* @internal param int $accessoryId
*/
public function store(Request $request, $accessoryUserId = null, $backto = null)
{
// Check if the accessory exists
// Check if the accessory exists
if (is_null($accessory_user = DB::table('accessories_users')->find($accessoryUserId))) {
// Redirect to the accessory management page with error
return redirect()->route('accessories.index')->with('error', trans('admin/accessories/message.does_not_exist'));
@@ -59,9 +60,10 @@ class AccessoryCheckinController extends Controller
$this->authorize('checkin', $accessory);
$checkin_at = date('Y-m-d');
if($request->filled('checkin_at')){
$checkin_at = $request->input('checkin_at');
$checkin_hours = date('H:i:s');
$checkin_at = date('Y-m-d H:i:s');
if ($request->filled('checkin_at')) {
$checkin_at = $request->input('checkin_at').' '.$checkin_hours;
}
// Was the accessory updated?
@@ -70,7 +72,7 @@ class AccessoryCheckinController extends Controller
event(new CheckoutableCheckedIn($accessory, User::find($return_to), Auth::user(), $request->input('note'), $checkin_at));
return redirect()->route("accessories.show", $accessory->id)->with('success', trans('admin/accessories/message.checkin.success'));
return redirect()->route('accessories.show', $accessory->id)->with('success', trans('admin/accessories/message.checkin.success'));
}
// Redirect to the accessory management page with error
return redirect()->route('accessories.index')->with('error', trans('admin/accessories/message.checkin.error'));

View File

@@ -14,32 +14,40 @@ use Illuminate\Support\Facades\Input;
class AccessoryCheckoutController extends Controller
{
/**
* Return the form to checkout an Accessory to a user.
*
* @author [A. Gianotto] [<snipe@snipe.net>]
* @param int $accessoryId
* @param int $id
* @return View
* @throws \Illuminate\Auth\Access\AuthorizationException
*/
public function create($accessoryId)
public function create($id)
{
// Check if the accessory exists
if (is_null($accessory = Accessory::find($accessoryId))) {
// Redirect to the accessory management page with error
return redirect()->route('accessories.index')->with('error', trans('admin/accessories/message.not_found'));
}
if ($accessory->category) {
if ($accessory = Accessory::withCount('users as users_count')->find($id)) {
$this->authorize('checkout', $accessory);
// Get the dropdown of users and then pass it to the checkout view
return view('accessories/checkout', compact('accessory'));
if ($accessory->category) {
// Make sure there is at least one available to checkout
if ($accessory->numRemaining() <= 0){
return redirect()->route('accessories.index')->with('error', trans('admin/accessories/message.checkout.unavailable'));
}
// Return the checkout view
return view('accessories/checkout', compact('accessory'));
}
// Invalid category
return redirect()->route('accessories.edit', ['accessory' => $accessory->id])
->with('error', trans('general.invalid_item_category_single', ['type' => trans('general.accessory')]));
}
return redirect()->back()->with('error', 'The category type for this accessory is not valid. Edit the accessory and select a valid accessory category.');
// Not found
return redirect()->route('accessories.index')->with('error', trans('admin/accessories/message.not_found'));
}
/**
@@ -51,13 +59,13 @@ class AccessoryCheckoutController extends Controller
* @author [A. Gianotto] [<snipe@snipe.net>]
* @param Request $request
* @param int $accessoryId
* @return Redirect
* @return \Illuminate\Http\RedirectResponse
* @throws \Illuminate\Auth\Access\AuthorizationException
*/
public function store(Request $request, $accessoryId)
{
// Check if the accessory exists
if (is_null($accessory = Accessory::find($accessoryId))) {
// Check if the accessory exists
if (is_null($accessory = Accessory::withCount('users as users_count')->find($accessoryId))) {
// Redirect to the accessory management page with error
return redirect()->route('accessories.index')->with('error', trans('admin/accessories/message.user_not_found'));
}
@@ -65,10 +73,16 @@ class AccessoryCheckoutController extends Controller
$this->authorize('checkout', $accessory);
if (!$user = User::find($request->input('assigned_to'))) {
return redirect()->route('checkout/accessory', $accessory->id)->with('error', trans('admin/accessories/message.checkout.user_does_not_exist'));
return redirect()->route('accessories.checkout.show', $accessory->id)->with('error', trans('admin/accessories/message.checkout.user_does_not_exist'));
}
// Update the accessory data
// Make sure there is at least one available to checkout
if ($accessory->numRemaining() <= 0){
return redirect()->route('accessories.index')->with('error', trans('admin/accessories/message.checkout.unavailable'));
}
// Update the accessory data
$accessory->assigned_to = e($request->input('assigned_to'));
$accessory->users()->attach($accessory->id, [
@@ -76,14 +90,14 @@ class AccessoryCheckoutController extends Controller
'created_at' => Carbon::now(),
'user_id' => Auth::id(),
'assigned_to' => $request->get('assigned_to'),
'note' => $request->input('note')
'note' => $request->input('note'),
]);
DB::table('accessories_users')->where('assigned_to', '=', $accessory->assigned_to)->where('accessory_id', '=', $accessory->id)->first();
event(new CheckoutableCheckedOut($accessory, $user, Auth::user(), $request->input('note')));
// Redirect to the new accessory page
// Redirect to the new accessory page
return redirect()->route('accessories.index')->with('success', trans('admin/accessories/message.checkout.success'));
}
}

View File

@@ -1,4 +1,5 @@
<?php
<?php
namespace App\Http\Controllers\Account;
use App\Events\CheckoutAccepted;
@@ -6,22 +7,39 @@ use App\Events\CheckoutDeclined;
use App\Events\ItemAccepted;
use App\Events\ItemDeclined;
use App\Http\Controllers\Controller;
use App\Models\Actionlog;
use App\Models\Asset;
use App\Models\CheckoutAcceptance;
use App\Models\Company;
use App\Models\Contracts\Acceptable;
use App\Models\Setting;
use App\Models\User;
use App\Models\AssetModel;
use App\Models\Accessory;
use App\Models\License;
use App\Models\Component;
use App\Models\Consumable;
use App\Notifications\AcceptanceAssetAcceptedNotification;
use App\Notifications\AcceptanceAssetDeclinedNotification;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Storage;
use Illuminate\Support\Str;
use App\Http\Controllers\SettingsController;
use Barryvdh\DomPDF\Facade\Pdf;
use Carbon\Carbon;
use phpDocumentor\Reflection\Types\Compound;
use Illuminate\Support\Facades\Log;
class AcceptanceController extends Controller {
class AcceptanceController extends Controller
{
/**
* Show a listing of pending checkout acceptances for the current user
*
*
* @return View
*/
public function index() {
public function index()
{
$acceptances = CheckoutAcceptance::forUser(Auth::user())->pending()->get();
return view('account/accept.index', compact('acceptances'));
@@ -29,42 +47,43 @@ class AcceptanceController extends Controller {
/**
* Shows a form to either accept or decline the checkout acceptance
*
*
* @param int $id
* @return mixed
*/
public function create($id) {
public function create($id)
{
$acceptance = CheckoutAcceptance::find($id);
if (is_null($acceptance)) {
return redirect()->route('account.accept')->with('error', trans('admin/hardware/message.does_not_exist'));
}
if (! $acceptance->isPending()) {
return redirect()->route('account.accept')->with('error', trans('admin/users/message.error.asset_already_accepted'));
}
}
if (! $acceptance->isCheckedOutTo(Auth::user())) {
return redirect()->route('account.accept')->with('error', trans('admin/users/message.error.incorrect_user_accepted'));
}
if (!Company::isCurrentUserHasAccess($acceptance->checkoutable)) {
return redirect()->route('account.accept')->with('error', trans('general.insufficient_permissions'));
}
if (! Company::isCurrentUserHasAccess($acceptance->checkoutable)) {
return redirect()->route('account.accept')->with('error', trans('general.error_user_company'));
}
return view('account/accept.create', compact('acceptance'));
}
}
/**
* Stores the accept/decline of the checkout acceptance
*
*
* @param Request $request
* @param int $id
* @return Redirect
* @return \Illuminate\Http\RedirectResponse
*/
public function store(Request $request, $id) {
public function store(Request $request, $id)
{
$acceptance = CheckoutAcceptance::find($id);
if (is_null($acceptance)) {
@@ -73,55 +92,248 @@ class AcceptanceController extends Controller {
if (! $acceptance->isPending()) {
return redirect()->route('account.accept')->with('error', trans('admin/users/message.error.asset_already_accepted'));
}
}
if (! $acceptance->isCheckedOutTo(Auth::user())) {
return redirect()->route('account.accept')->with('error', trans('admin/users/message.error.incorrect_user_accepted'));
}
if (!Company::isCurrentUserHasAccess($acceptance->checkoutable)) {
if (! Company::isCurrentUserHasAccess($acceptance->checkoutable)) {
return redirect()->route('account.accept')->with('error', trans('general.insufficient_permissions'));
}
}
if (!$request->filled('asset_acceptance')) {
if (! $request->filled('asset_acceptance')) {
return redirect()->back()->with('error', trans('admin/users/message.error.accept_or_decline'));
}
/**
* Get the signature and save it
*/
if (!Storage::exists('private_uploads/signatures')) Storage::makeDirectory('private_uploads/signatures', 775);
$sig_filename = '';
if ($request->filled('signature_output')) {
$sig_filename = "siglog-" .Str::uuid() . '-'.date('Y-m-d-his').".png";
$data_uri = e($request->input('signature_output'));
$encoded_image = explode(",", $data_uri);
$decoded_image = base64_decode($encoded_image[1]);
Storage::put('private_uploads/signatures/'.$sig_filename, (string)$decoded_image);
if (! Storage::exists('private_uploads/signatures')) {
Storage::makeDirectory('private_uploads/signatures', 775);
}
$item = $acceptance->checkoutable_type::find($acceptance->checkoutable_id);
$display_model = '';
$pdf_view_route = '';
$pdf_filename = 'accepted-eula-'.date('Y-m-d-h-i-s').'.pdf';
$sig_filename='';
if ($request->input('asset_acceptance') == 'accepted') {
$acceptance->accept($sig_filename);
/**
* Check for the eula-pdfs directory
*/
if (! Storage::exists('private_uploads/eula-pdfs')) {
Storage::makeDirectory('private_uploads/eula-pdfs', 775);
}
if (Setting::getSettings()->require_accept_signature == '1') {
// Check if the signature directory exists, if not create it
if (!Storage::exists('private_uploads/signatures')) {
Storage::makeDirectory('private_uploads/signatures', 775);
}
// The item was accepted, check for a signature
if ($request->filled('signature_output')) {
$sig_filename = 'siglog-' . Str::uuid() . '-' . date('Y-m-d-his') . '.png';
$data_uri = $request->input('signature_output');
$encoded_image = explode(',', $data_uri);
$decoded_image = base64_decode($encoded_image[1]);
Storage::put('private_uploads/signatures/' . $sig_filename, (string)$decoded_image);
// No image data is present, kick them back.
// This mostly only applies to users on super-duper crapola browsers *cough* IE *cough*
} else {
return redirect()->back()->with('error', trans('general.shitty_browser'));
}
}
// this is horrible
switch($acceptance->checkoutable_type){
case 'App\Models\Asset':
$pdf_view_route ='account.accept.accept-asset-eula';
$asset_model = AssetModel::find($item->model_id);
if (!$asset_model) {
return redirect()->back()->with('error', trans('admin/models/message.does_not_exist'));
}
$display_model = $asset_model->name;
$assigned_to = User::find($acceptance->assigned_to_id)->present()->fullName;
break;
case 'App\Models\Accessory':
$pdf_view_route ='account.accept.accept-accessory-eula';
$accessory = Accessory::find($item->id);
$display_model = $accessory->name;
$assigned_to = User::find($acceptance->assigned_to_id)->present()->fullName;
break;
case 'App\Models\LicenseSeat':
$pdf_view_route ='account.accept.accept-license-eula';
$license = License::find($item->license_id);
$display_model = $license->name;
$assigned_to = User::find($acceptance->assigned_to_id)->present()->fullName;
break;
case 'App\Models\Component':
$pdf_view_route ='account.accept.accept-component-eula';
$component = Component::find($item->id);
$display_model = $component->name;
$assigned_to = User::find($acceptance->assigned_to_id)->present()->fullName;
break;
case 'App\Models\Consumable':
$pdf_view_route ='account.accept.accept-consumable-eula';
$consumable = Consumable::find($item->id);
$display_model = $consumable->name;
$assigned_to = User::find($acceptance->assigned_to_id)->present()->fullName;
break;
}
// if ($acceptance->checkoutable_type == 'App\Models\Asset') {
// $pdf_view_route ='account.accept.accept-asset-eula';
// $asset_model = AssetModel::find($item->model_id);
// $display_model = $asset_model->name;
// $assigned_to = User::find($item->assigned_to)->present()->fullName;
//
// } elseif ($acceptance->checkoutable_type== 'App\Models\Accessory') {
// $pdf_view_route ='account.accept.accept-accessory-eula';
// $accessory = Accessory::find($item->id);
// $display_model = $accessory->name;
// $assigned_to = User::find($item->assignedTo);
//
// }
/**
* Gather the data for the PDF. We fire this whether there is a signature required or not,
* since we want the moment-in-time proof of what the EULA was when they accepted it.
*/
$branding_settings = SettingsController::getPDFBranding();
if (is_null($branding_settings->logo)){
$path_logo = "";
} else {
$path_logo = public_path() . '/uploads/' . $branding_settings->logo;
}
$data = [
'item_tag' => $item->asset_tag,
'item_model' => $display_model,
'item_serial' => $item->serial,
'eula' => $item->getEula(),
'note' => $request->input('note'),
'check_out_date' => Carbon::parse($acceptance->created_at)->format('Y-m-d'),
'accepted_date' => Carbon::parse($acceptance->accepted_at)->format('Y-m-d'),
'assigned_to' => $assigned_to,
'company_name' => $branding_settings->site_name,
'signature' => ($sig_filename) ? storage_path() . '/private_uploads/signatures/' . $sig_filename : null,
'logo' => $path_logo,
'date_settings' => $branding_settings->date_display_format,
];
if ($pdf_view_route!='') {
Log::debug($pdf_filename.' is the filename, and the route was specified.');
$pdf = Pdf::loadView($pdf_view_route, $data);
Storage::put('private_uploads/eula-pdfs/' .$pdf_filename, $pdf->output());
}
$acceptance->accept($sig_filename, $item->getEula(), $pdf_filename, $request->input('note'));
$acceptance->notify(new AcceptanceAssetAcceptedNotification($data));
event(new CheckoutAccepted($acceptance));
$return_msg = trans('admin/users/message.accepted');
} else {
$acceptance->decline($sig_filename);
/**
* Check for the eula-pdfs directory
*/
if (! Storage::exists('private_uploads/eula-pdfs')) {
Storage::makeDirectory('private_uploads/eula-pdfs', 775);
}
if (Setting::getSettings()->require_accept_signature == '1') {
// Check if the signature directory exists, if not create it
if (!Storage::exists('private_uploads/signatures')) {
Storage::makeDirectory('private_uploads/signatures', 775);
}
// The item was accepted, check for a signature
if ($request->filled('signature_output')) {
$sig_filename = 'siglog-' . Str::uuid() . '-' . date('Y-m-d-his') . '.png';
$data_uri = $request->input('signature_output');
$encoded_image = explode(',', $data_uri);
$decoded_image = base64_decode($encoded_image[1]);
Storage::put('private_uploads/signatures/' . $sig_filename, (string)$decoded_image);
// No image data is present, kick them back.
// This mostly only applies to users on super-duper crapola browsers *cough* IE *cough*
} else {
return redirect()->back()->with('error', trans('general.shitty_browser'));
}
}
// Format the data to send the declined notification
$branding_settings = SettingsController::getPDFBranding();
// This is the most horriblest
switch($acceptance->checkoutable_type){
case 'App\Models\Asset':
$asset_model = AssetModel::find($item->model_id);
$display_model = $asset_model->name;
$assigned_to = User::find($acceptance->assigned_to_id)->present()->fullName;
break;
case 'App\Models\Accessory':
$accessory = Accessory::find($item->id);
$display_model = $accessory->name;
$assigned_to = User::find($acceptance->assigned_to_id)->present()->fullName;
break;
case 'App\Models\LicenseSeat':
$assigned_to = User::find($acceptance->assigned_to_id)->present()->fullName;
break;
case 'App\Models\Component':
$assigned_to = User::find($acceptance->assigned_to_id)->present()->fullName;
break;
case 'App\Models\Consumable':
$consumable = Consumable::find($item->id);
$display_model = $consumable->name;
$assigned_to = User::find($acceptance->assigned_to_id)->present()->fullName;
break;
}
$data = [
'item_tag' => $item->asset_tag,
'item_model' => $display_model,
'item_serial' => $item->serial,
'note' => $request->input('note'),
'declined_date' => Carbon::parse($acceptance->declined_at)->format('Y-m-d'),
'signature' => ($sig_filename) ? storage_path() . '/private_uploads/signatures/' . $sig_filename : null,
'assigned_to' => $assigned_to,
'company_name' => $branding_settings->site_name,
'date_settings' => $branding_settings->date_display_format,
];
if ($pdf_view_route!='') {
Log::debug($pdf_filename.' is the filename, and the route was specified.');
$pdf = Pdf::loadView($pdf_view_route, $data);
Storage::put('private_uploads/eula-pdfs/' .$pdf_filename, $pdf->output());
}
$acceptance->decline($sig_filename, $request->input('note'));
$acceptance->notify(new AcceptanceAssetDeclinedNotification($data));
event(new CheckoutDeclined($acceptance));
$return_msg = trans('admin/users/message.declined');
}
return redirect()->to('account/accept')->with('success', $return_msg);
}
}
}

View File

@@ -3,16 +3,42 @@
namespace App\Http\Controllers;
use App\Helpers\Helper;
use Response;
use App\Models\Actionlog;
use Illuminate\Support\Facades\Response;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Storage;
class ActionlogController extends Controller
{
public function displaySig($filename)
{
// PHP doesn't let you handle file not found errors well with
// file_get_contents, so we set the error reporting for just this class
error_reporting(0);
$disk = config('filesystems.default');
switch (config("filesystems.disks.$disk.driver")) {
case 's3':
$file = 'private_uploads/signatures/'.$filename;
return redirect()->away(Storage::disk($disk)->temporaryUrl($file, now()->addMinutes(5)));
default:
$this->authorize('view', \App\Models\Asset::class);
$file = config('app.private_uploads').'/signatures/'.$filename;
$filetype = Helper::checkUploadIsImage($file);
$contents = file_get_contents($file, false, stream_context_create(['http' => ['ignore_errors' => true]]));
if ($contents === false) {
Log::warning('File '.$file.' not found');
return false;
} else {
return Response::make($contents)->header('Content-Type', $filetype);
}
}
}
public function getStoredEula($filename){
$this->authorize('view', \App\Models\Asset::class);
$file = config('app.private_uploads') . '/signatures/' . $filename;
$filetype = Helper::checkUploadIsImage($file);
$contents = file_get_contents($file);
return Response::make($contents)->header('Content-Type', $filetype);
$file = config('app.private_uploads').'/eula-pdfs/'.$filename;
return Response::download($file);
}
}

View File

@@ -2,6 +2,7 @@
namespace App\Http\Controllers\Api;
use App\Events\CheckoutableCheckedOut;
use App\Helpers\Helper;
use App\Http\Controllers\Controller;
use App\Http\Transformers\AccessoriesTransformer;
@@ -9,9 +10,9 @@ use App\Http\Transformers\SelectlistTransformer;
use App\Models\Accessory;
use App\Models\Company;
use App\Models\User;
use Illuminate\Support\Facades\Auth;
use Carbon\Carbon;
use Auth;
use DB;
use Illuminate\Support\Facades\DB;
use Illuminate\Http\Request;
use App\Http\Requests\ImageUploadRequest;
@@ -26,8 +27,11 @@ class AccessoriesController extends Controller
*/
public function index(Request $request)
{
$this->authorize('view', Accessory::class);
if ($request->user()->cannot('reports.view')) {
$this->authorize('view', Accessory::class);
}
// This array is what determines which fields should be allowed to be sorted on ON the table itself, no relations
// Relations will be handled in query scopes a little further down.
$allowed_columns =
@@ -39,42 +43,47 @@ class AccessoriesController extends Controller
'notes',
'created_at',
'min_amt',
'company_id'
'company_id',
'notes',
'users_count',
'qty',
];
$accessories = Accessory::select('accessories.*')->with('category', 'company', 'manufacturer', 'users', 'location', 'supplier');
$accessories = Accessory::select('accessories.*')->with('category', 'company', 'manufacturer', 'users', 'location', 'supplier')
->withCount('users as users_count');
if ($request->filled('search')) {
$accessories = $accessories->TextSearch($request->input('search'));
}
if ($request->filled('company_id')) {
$accessories->where('company_id','=',$request->input('company_id'));
$accessories->where('company_id', '=', $request->input('company_id'));
}
if ($request->filled('category_id')) {
$accessories->where('category_id','=',$request->input('category_id'));
$accessories->where('category_id', '=', $request->input('category_id'));
}
if ($request->filled('manufacturer_id')) {
$accessories->where('manufacturer_id','=',$request->input('manufacturer_id'));
$accessories->where('manufacturer_id', '=', $request->input('manufacturer_id'));
}
if ($request->filled('supplier_id')) {
$accessories->where('supplier_id','=',$request->input('supplier_id'));
$accessories->where('supplier_id', '=', $request->input('supplier_id'));
}
if ($request->filled('location_id')) {
$accessories->where('location_id','=',$request->input('location_id'));
}
// Set the offset to the API call's offset, unless the offset is higher than the actual count of items in which
// case we override with the actual count, so we should return 0 items.
$offset = (($accessories) && ($request->get('offset') > $accessories->count())) ? $accessories->count() : $request->get('offset', 0);
if ($request->filled('notes')) {
$accessories->where('notes','=',$request->input('notes'));
}
// Check to make sure the limit is not higher than the max allowed
((config('app.max_results') >= $request->input('limit')) && ($request->filled('limit'))) ? $limit = $request->input('limit') : $limit = config('app.max_results');
// Make sure the offset and limit are actually integers and do not exceed system limits
$offset = ($request->input('offset') > $accessories->count()) ? $accessories->count() : abs($request->input('offset'));
$limit = app('api_limit_value');
$order = $request->input('order') === 'asc' ? 'asc' : 'desc';
$sort_override = $request->input('sort');
@@ -100,10 +109,10 @@ class AccessoriesController extends Controller
$accessories = $accessories->orderBy($column_sort, $order);
break;
}
$total = $accessories->count();
$accessories = $accessories->skip($offset)->take($limit)->get();
return (new AccessoriesTransformer)->transformAccessories($accessories, $total);
}
@@ -126,6 +135,7 @@ class AccessoriesController extends Controller
if ($accessory->save()) {
return response()->json(Helper::formatStandardApiResponse('success', $accessory, trans('admin/accessories/message.create.success')));
}
return response()->json(Helper::formatStandardApiResponse('error', null, $accessory->getErrors()));
}
@@ -141,7 +151,8 @@ class AccessoriesController extends Controller
public function show($id)
{
$this->authorize('view', Accessory::class);
$accessory = Accessory::findOrFail($id);
$accessory = Accessory::withCount('users as users_count')->findOrFail($id);
return (new AccessoriesTransformer)->transformAccessory($accessory);
}
@@ -158,6 +169,7 @@ class AccessoriesController extends Controller
{
$this->authorize('view', Accessory::class);
$accessory = Accessory::findOrFail($id);
return (new AccessoriesTransformer)->transformAccessory($accessory);
}
@@ -175,7 +187,7 @@ class AccessoriesController extends Controller
$this->authorize('view', Accessory::class);
$accessory = Accessory::with('lastCheckout')->findOrFail($id);
if (!Company::isCurrentUserHasAccess($accessory)) {
if (! Company::isCurrentUserHasAccess($accessory)) {
return ['total' => 0, 'rows' => []];
}
@@ -185,7 +197,7 @@ class AccessoriesController extends Controller
$accessory_users = $accessory->users;
$total = $accessory_users->count();
if($total < $offset){
if ($total < $offset) {
$offset = 0;
}
@@ -245,12 +257,12 @@ class AccessoriesController extends Controller
$this->authorize($accessory);
if ($accessory->hasUsers() > 0) {
return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/accessories/message.assoc_users', array('count'=> $accessory->hasUsers()))));
return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/accessories/message.assoc_users', ['count'=> $accessory->hasUsers()])));
}
$accessory->delete();
return response()->json(Helper::formatStandardApiResponse('success', null, trans('admin/accessories/message.delete.success')));
return response()->json(Helper::formatStandardApiResponse('success', null, trans('admin/accessories/message.delete.success')));
}
@@ -262,12 +274,12 @@ class AccessoriesController extends Controller
*
* @author [A. Gianotto] [<snipe@snipe.net>]
* @param int $accessoryId
* @return Redirect
* @return \Illuminate\Http\RedirectResponse
*/
public function checkout(Request $request, $accessoryId)
{
// Check if the accessory exists
if (is_null($accessory = Accessory::find($accessoryId))) {
if (is_null($accessory = Accessory::withCount('users as users_count')->find($accessoryId))) {
return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/accessories/message.does_not_exist')));
}
@@ -276,7 +288,7 @@ class AccessoriesController extends Controller
if ($accessory->numRemaining() > 0) {
if (!$user = User::find($request->input('assigned_to'))) {
if (! $user = User::find($request->input('assigned_to'))) {
return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/accessories/message.checkout.user_does_not_exist')));
}
@@ -288,12 +300,12 @@ class AccessoriesController extends Controller
'created_at' => Carbon::now(),
'user_id' => Auth::id(),
'assigned_to' => $request->get('assigned_to'),
'note' => $request->get('note')
'note' => $request->get('note'),
]);
$accessory->logCheckout($request->input('note'), $user);
event(new CheckoutableCheckedOut($accessory, $user, Auth::user(), $request->input('note')));
return response()->json(Helper::formatStandardApiResponse('success', null, trans('admin/accessories/message.checkout.success')));
return response()->json(Helper::formatStandardApiResponse('success', null, trans('admin/accessories/message.checkout.success')));
}
return response()->json(Helper::formatStandardApiResponse('error', null, 'No accessories remaining'));
@@ -306,9 +318,9 @@ class AccessoriesController extends Controller
* @uses Accessory::checkin_email() to determine if an email can and should be sent
* @author [A. Gianotto] [<snipe@snipe.net>]
* @param Request $request
* @param integer $accessoryUserId
* @param int $accessoryUserId
* @param string $backto
* @return Redirect
* @return \Illuminate\Http\RedirectResponse
* @internal param int $accessoryId
*/
public function checkin(Request $request, $accessoryUserId = null)
@@ -320,11 +332,11 @@ class AccessoriesController extends Controller
$accessory = Accessory::find($accessory_user->accessory_id);
$this->authorize('checkin', $accessory);
$logaction = $accessory->logCheckin(User::find($accessory_user->user_id), $request->input('note'));
$logaction = $accessory->logCheckin(User::find($accessory_user->assigned_to), $request->input('note'));
// Was the accessory updated?
if (DB::table('accessories_users')->where('id', '=', $accessory_user->id)->delete()) {
if (!is_null($accessory_user->assigned_to)) {
if (! is_null($accessory_user->assigned_to)) {
$user = User::find($accessory_user->assigned_to);
}
@@ -339,7 +351,7 @@ class AccessoriesController extends Controller
return response()->json(Helper::formatStandardApiResponse('success', null, trans('admin/accessories/message.checkin.success')));
}
return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/accessories/message.checkin.error')));
return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/accessories/message.checkin.error')));
}
@@ -355,7 +367,7 @@ class AccessoriesController extends Controller
$accessories = Accessory::select([
'accessories.id',
'accessories.name'
'accessories.name',
]);
if ($request->filled('search')) {
@@ -364,10 +376,7 @@ class AccessoriesController extends Controller
$accessories = $accessories->orderBy('name', 'ASC')->paginate(50);
return (new SelectlistTransformer)->transformSelectlist($accessories);
}
}

View File

@@ -0,0 +1,219 @@
<?php
namespace App\Http\Controllers\Api;
use App\Helpers\StorageHelper;
use Illuminate\Support\Facades\Storage;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Http\JsonResponse;
use Illuminate\Support\Facades\Crypt;
use Illuminate\Support\Facades\Gate;
use App\Helpers\Helper;
use App\Http\Controllers\Controller;
use App\Models\Asset;
use App\Models\AssetModel;
use App\Models\Actionlog;
use \Illuminate\Support\Facades\Auth;
use Carbon\Carbon;
use DB;
use Illuminate\Http\Request;
use App\Http\Requests\UploadFileRequest;
use Illuminate\Support\Facades\Log;
use Input;
use Paginator;
use Slack;
use Str;
use TCPDF;
use Validator;
use Route;
/**
* This class controls file related actions related
* to assets for the Snipe-IT Asset Management application.
*
* Based on the Assets/AssetFilesController by A. Gianotto <snipe@snipe.net>
*
* @version v1.0
* @author [T. Scarsbrook] [<snipe@scarzybrook.co.uk>]
*/
class AssetFilesController extends Controller
{
/**
* Accepts a POST to upload a file to the server.
*
* @param \App\Http\Requests\UploadFileRequest $request
* @param int $assetId
* @return \Illuminate\Http\JsonResponse
* @throws \Illuminate\Auth\Access\AuthorizationException
* @since [v6.0]
* @author [T. Scarsbrook] [<snipe@scarzybrook.co.uk>]
*/
public function store(UploadFileRequest $request, $assetId = null)
{
// Start by checking if the asset being acted upon exists
if (! $asset = Asset::find($assetId)) {
return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/hardware/message.does_not_exist')), 404);
}
// Make sure we are allowed to update this asset
$this->authorize('update', $asset);
if ($request->hasFile('file')) {
// If the file storage directory doesn't exist; create it
if (! Storage::exists('private_uploads/assets')) {
Storage::makeDirectory('private_uploads/assets', 775);
}
// Loop over the attached files and add them to the asset
foreach ($request->file('file') as $file) {
$file_name = $request->handleFile('private_uploads/assets/','hardware-'.$asset->id, $file);
$asset->logUpload($file_name, e($request->get('notes')));
}
// All done - report success
return response()->json(Helper::formatStandardApiResponse('success', $asset, trans('admin/hardware/message.upload.success')));
}
// We only reach here if no files were included in the POST, so tell the user this
return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/hardware/message.upload.nofiles')), 500);
}
/**
* List the files for an asset.
*
* @param int $assetId
* @return \Illuminate\Http\JsonResponse
* @throws \Illuminate\Auth\Access\AuthorizationException
* @since [v6.0]
* @author [T. Scarsbrook] [<snipe@scarzybrook.co.uk>]
*/
public function list($assetId = null)
{
// Start by checking if the asset being acted upon exists
if (! $asset = Asset::find($assetId)) {
return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/hardware/message.does_not_exist')), 404);
}
// the asset is valid
if (isset($asset->id)) {
$this->authorize('view', $asset);
// Check that there are some uploads on this asset that can be listed
if ($asset->uploads->count() > 0) {
$files = array();
foreach ($asset->uploads as $upload) {
array_push($files, $upload);
}
// Give the list of files back to the user
return response()->json(Helper::formatStandardApiResponse('success', $files, trans('admin/hardware/message.upload.success')));
}
// There are no files.
return response()->json(Helper::formatStandardApiResponse('success', array(), trans('admin/hardware/message.upload.success')));
}
// Send back an error message
return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/hardware/message.download.error')), 500);
}
/**
* Check for permissions and display the file.
*
* @param int $assetId
* @param int $fileId
* @return \Illuminate\Http\JsonResponse
* @throws \Illuminate\Auth\Access\AuthorizationException
* @since [v6.0]
* @author [T. Scarsbrook] [<snipe@scarzybrook.co.uk>]
*/
public function show($assetId = null, $fileId = null)
{
// Start by checking if the asset being acted upon exists
if (! $asset = Asset::find($assetId)) {
return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/hardware/message.does_not_exist')), 404);
}
// the asset is valid
if (isset($asset->id)) {
$this->authorize('view', $asset);
// Check that the file being requested exists for the asset
if (! $log = Actionlog::whereNotNull('filename')->where('item_id', $asset->id)->find($fileId)) {
return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/hardware/message.download.no_match', ['id' => $fileId])), 404);
}
// Form the full filename with path
$file = 'private_uploads/assets/'.$log->filename;
\Log::debug('Checking for '.$file);
if ($log->action_type == 'audit') {
$file = 'private_uploads/audits/'.$log->filename;
}
// Check the file actually exists on the filesystem
if (! Storage::exists($file)) {
return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/hardware/message.download.does_not_exist', ['id' => $fileId])), 404);
}
if (request('inline') == 'true') {
$headers = [
'Content-Disposition' => 'inline',
];
return Storage::download($file, $log->filename, $headers);
}
return StorageHelper::downloader($file);
}
// Send back an error message
return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/hardware/message.download.error', ['id' => $fileId])), 500);
}
/**
* Delete the associated file
*
* @param int $assetId
* @param int $fileId
* @return \Illuminate\Http\JsonResponse
* @throws \Illuminate\Auth\Access\AuthorizationException
* @since [v6.0]
* @author [T. Scarsbrook] [<snipe@scarzybrook.co.uk>]
*/
public function destroy($assetId = null, $fileId = null)
{
// Start by checking if the asset being acted upon exists
if (! $asset = Asset::find($assetId)) {
return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/hardware/message.does_not_exist')), 404);
}
$rel_path = 'private_uploads/assets';
// the asset is valid
if (isset($asset->id)) {
$this->authorize('update', $asset);
// Check for the file
$log = Actionlog::find($fileId);
if ($log) {
// Check the file actually exists, and delete it
if (Storage::exists($rel_path.'/'.$log->filename)) {
Storage::delete($rel_path.'/'.$log->filename);
}
// Delete the record of the file
$log->delete();
// All deleting done - notify the user of success
return response()->json(Helper::formatStandardApiResponse('success', null, trans('admin/hardware/message.deletefile.success')), 200);
}
// The file doesn't seem to really exist, so report an error
return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/hardware/message.deletefile.error')), 500);
}
return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/hardware/message.deletefile.error')), 500);
}
}

View File

@@ -1,4 +1,5 @@
<?php
namespace App\Http\Controllers\Api;
use App\Helpers\Helper;
@@ -7,7 +8,7 @@ use App\Http\Transformers\AssetMaintenancesTransformer;
use App\Models\Asset;
use App\Models\AssetMaintenance;
use App\Models\Company;
use Auth;
use Illuminate\Support\Facades\Auth;
use Carbon\Carbon;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Input;
@@ -29,11 +30,14 @@ class AssetMaintenancesController extends Controller
* @author Vincent Sposato <vincent.sposato@gmail.com>
* @version v1.0
* @since [v1.8]
* @return String JSON
* @return string JSON
*/
public function index(Request $request)
{
$maintenances = AssetMaintenance::with('asset', 'asset.model','asset.location', 'supplier', 'asset.company', 'admin');
$this->authorize('view', Asset::class);
$maintenances = AssetMaintenance::select('asset_maintenances.*')
->with('asset', 'asset.model', 'asset.location', 'asset.defaultLoc', 'supplier', 'asset.company', 'asset.assetstatus', 'admin');
if ($request->filled('search')) {
$maintenances = $maintenances->TextSearch($request->input('search'));
@@ -43,14 +47,19 @@ class AssetMaintenancesController extends Controller
$maintenances->where('asset_id', '=', $request->input('asset_id'));
}
// Set the offset to the API call's offset, unless the offset is higher than the actual count of items in which
// case we override with the actual count, so we should return 0 items.
$offset = (($maintenances) && ($request->get('offset') > $maintenances->count())) ? $maintenances->count() : $request->get('offset', 0);
if ($request->filled('supplier_id')) {
$maintenances->where('asset_maintenances.supplier_id', '=', $request->input('supplier_id'));
}
// Check to make sure the limit is not higher than the max allowed
((config('app.max_results') >= $request->input('limit')) && ($request->filled('limit'))) ? $limit = $request->input('limit') : $limit = config('app.max_results');
if ($request->filled('asset_maintenance_type')) {
$maintenances->where('asset_maintenance_type', '=', $request->input('asset_maintenance_type'));
}
// Make sure the offset and limit are actually integers and do not exceed system limits
$offset = ($request->input('offset') > $maintenances->count()) ? $maintenances->count() : abs($request->input('offset'));
$limit = app('api_limit_value');
$allowed_columns = [
'id',
'title',
@@ -62,8 +71,13 @@ class AssetMaintenancesController extends Controller
'notes',
'asset_tag',
'asset_name',
'user_id'
'serial',
'user_id',
'supplier',
'is_warranty',
'status_label',
];
$order = $request->input('order') === 'asc' ? 'asc' : 'desc';
$sort = in_array($request->input('sort'), $allowed_columns) ? e($request->input('sort')) : 'created_at';
@@ -71,12 +85,21 @@ class AssetMaintenancesController extends Controller
case 'user_id':
$maintenances = $maintenances->OrderAdmin($order);
break;
case 'supplier':
$maintenances = $maintenances->OrderBySupplier($order);
break;
case 'asset_tag':
$maintenances = $maintenances->OrderByTag($order);
break;
case 'asset_name':
$maintenances = $maintenances->OrderByAssetName($order);
break;
case 'serial':
$maintenances = $maintenances->OrderByAssetSerial($order);
break;
case 'status_label':
$maintenances = $maintenances->OrderStatusName($order);
break;
default:
$maintenances = $maintenances->orderBy($sort, $order);
break;
@@ -97,112 +120,63 @@ class AssetMaintenancesController extends Controller
* @author Vincent Sposato <vincent.sposato@gmail.com>
* @version v1.0
* @since [v1.8]
* @return String JSON
* @return string JSON
*/
public function store(Request $request)
{
$this->authorize('update', Asset::class);
// create a new model instance
$assetMaintenance = new AssetMaintenance();
$assetMaintenance->supplier_id = $request->input('supplier_id');
$assetMaintenance->is_warranty = $request->input('is_warranty');
$assetMaintenance->cost = Helper::ParseCurrency($request->input('cost'));
$assetMaintenance->notes = e($request->input('notes'));
$asset = Asset::find(e($request->input('asset_id')));
if (!Company::isCurrentUserHasAccess($asset)) {
return response()->json(Helper::formatStandardApiResponse('error', null, 'You cannot add a maintenance for that asset'));
}
// Save the asset maintenance data
$assetMaintenance->asset_id = $request->input('asset_id');
$assetMaintenance->asset_maintenance_type = $request->input('asset_maintenance_type');
$assetMaintenance->title = $request->input('title');
$assetMaintenance->start_date = $request->input('start_date');
$assetMaintenance->completion_date = $request->input('completion_date');
$assetMaintenance->user_id = Auth::id();
if (( $assetMaintenance->completion_date !== null )
&& ( $assetMaintenance->start_date !== "" )
&& ( $assetMaintenance->start_date !== "0000-00-00" )
) {
$startDate = Carbon::parse($assetMaintenance->start_date);
$completionDate = Carbon::parse($assetMaintenance->completion_date);
$assetMaintenance->asset_maintenance_time = $completionDate->diffInDays($startDate);
}
$maintenance = new AssetMaintenance();
$maintenance->fill($request->all());
$maintenance->user_id = Auth::id();
// Was the asset maintenance created?
if ($assetMaintenance->save()) {
return response()->json(Helper::formatStandardApiResponse('success', $assetMaintenance, trans('admin/asset_maintenances/message.create.success')));
if ($maintenance->save()) {
return response()->json(Helper::formatStandardApiResponse('success', $maintenance, trans('admin/asset_maintenances/message.create.success')));
}
return response()->json(Helper::formatStandardApiResponse('error', null, $assetMaintenance->getErrors()));
return response()->json(Helper::formatStandardApiResponse('error', null, $maintenance->getErrors()));
}
/**
* Validates and stores an update to an asset maintenance
*
* @author A. Gianotto <snipe@snipe.net>
* @param int $assetMaintenanceId
* @param int $id
* @param int $request
* @version v1.0
* @since [v4.0]
* @return String JSON
* @return string JSON
*/
public function update(Request $request, $assetMaintenanceId = null)
public function update(Request $request, $id)
{
// Check if the asset maintenance exists
$assetMaintenance = AssetMaintenance::findOrFail($assetMaintenanceId);
$this->authorize('update', Asset::class);
if (!Company::isCurrentUserHasAccess($assetMaintenance->asset)) {
return response()->json(Helper::formatStandardApiResponse('error', null, 'You cannot edit a maintenance for that asset'));
}
if ($maintenance = AssetMaintenance::with('asset')->find($id)) {
$assetMaintenance->supplier_id = e($request->input('supplier_id'));
$assetMaintenance->is_warranty = e($request->input('is_warranty'));
$assetMaintenance->cost = Helper::ParseCurrency($request->input('cost'));
$assetMaintenance->notes = e($request->input('notes'));
$asset = Asset::find(request('asset_id'));
if (!Company::isCurrentUserHasAccess($asset)) {
return response()->json(Helper::formatStandardApiResponse('error', null, 'You cannot edit a maintenance for that asset'));
}
// Save the asset maintenance data
$assetMaintenance->asset_id = $request->input('asset_id');
$assetMaintenance->asset_maintenance_type = $request->input('asset_maintenance_type');
$assetMaintenance->title = $request->input('title');
$assetMaintenance->start_date = $request->input('start_date');
$assetMaintenance->completion_date = $request->input('completion_date');
if (( $assetMaintenance->completion_date == null )
) {
if (( $assetMaintenance->asset_maintenance_time !== 0 )
|| ( !is_null($assetMaintenance->asset_maintenance_time) )
) {
$assetMaintenance->asset_maintenance_time = null;
// Can this user manage this asset?
if (! Company::isCurrentUserHasAccess($maintenance->asset)) {
return response()->json(Helper::formatStandardApiResponse('error', null, trans('general.action_permission_denied', ['item_type' => trans('admin/asset_maintenances/general.maintenance'), 'id' => $id, 'action' => trans('general.edit')])));
}
// The asset this miantenance is attached to is not valid or has been deleted
if (!$maintenance->asset) {
return response()->json(Helper::formatStandardApiResponse('error', null, trans('general.item_not_found', ['item_type' => trans('general.asset'), 'id' => $id])));
}
$maintenance->fill($request->all());
if ($maintenance->save()) {
return response()->json(Helper::formatStandardApiResponse('success', $maintenance, trans('admin/asset_maintenances/message.edit.success')));
}
return response()->json(Helper::formatStandardApiResponse('error', null, $maintenance->getErrors()));
}
if (( $assetMaintenance->completion_date !== null )
&& ( $assetMaintenance->start_date !== "" )
&& ( $assetMaintenance->start_date !== "0000-00-00" )
) {
$startDate = Carbon::parse($assetMaintenance->start_date);
$completionDate = Carbon::parse($assetMaintenance->completion_date);
$assetMaintenance->asset_maintenance_time = $completionDate->diffInDays($startDate);
}
return response()->json(Helper::formatStandardApiResponse('error', null, trans('general.item_not_found', ['item_type' => trans('admin/asset_maintenances/general.maintenance'), 'id' => $id])));
// Was the asset maintenance created?
if ($assetMaintenance->save()) {
return response()->json(Helper::formatStandardApiResponse('success', $assetMaintenance, trans('admin/asset_maintenances/message.edit.success')));
}
return response()->json(Helper::formatStandardApiResponse('error', null, $assetMaintenance->getErrors()));
}
/**
@@ -212,14 +186,15 @@ class AssetMaintenancesController extends Controller
* @param int $assetMaintenanceId
* @version v1.0
* @since [v4.0]
* @return String JSON
* @return string JSON
*/
public function destroy($assetMaintenanceId)
{
$this->authorize('update', Asset::class);
// Check if the asset maintenance exists
$assetMaintenance = AssetMaintenance::findOrFail($assetMaintenanceId);
if (!Company::isCurrentUserHasAccess($assetMaintenance->asset)) {
if (! Company::isCurrentUserHasAccess($assetMaintenance->asset)) {
return response()->json(Helper::formatStandardApiResponse('error', null, 'You cannot delete a maintenance for that asset'));
}
@@ -237,14 +212,16 @@ class AssetMaintenancesController extends Controller
* @param int $assetMaintenanceId
* @version v1.0
* @since [v4.0]
* @return String JSON
* @return string JSON
*/
public function show($assetMaintenanceId)
{
$this->authorize('view', Asset::class);
$assetMaintenance = AssetMaintenance::findOrFail($assetMaintenanceId);
if (!Company::isCurrentUserHasAccess($assetMaintenance->asset)) {
if (! Company::isCurrentUserHasAccess($assetMaintenance->asset)) {
return response()->json(Helper::formatStandardApiResponse('error', null, 'You cannot view a maintenance for that asset'));
}
return (new AssetMaintenancesTransformer())->transformAssetMaintenance($assetMaintenance);
}

View File

@@ -1,4 +1,5 @@
<?php
namespace App\Http\Controllers\Api;
use App\Helpers\Helper;
@@ -11,6 +12,7 @@ use App\Models\AssetModel;
use Illuminate\Http\Request;
use App\Http\Requests\ImageUploadRequest;
use Illuminate\Support\Facades\Storage;
use Illuminate\Support\Facades\Log;
/**
* This class controls all actions related to asset models for
@@ -37,13 +39,15 @@ class AssetModelsController extends Controller
'image',
'name',
'model_number',
'min_amt',
'eol',
'notes',
'created_at',
'manufacturer',
'requestable',
'assets_count',
'category'
'category',
'fieldset',
];
$assetmodels = AssetModel::select([
@@ -51,6 +55,7 @@ class AssetModelsController extends Controller
'models.image',
'models.name',
'model_number',
'min_amt',
'eol',
'requestable',
'models.notes',
@@ -62,25 +67,24 @@ class AssetModelsController extends Controller
'models.deleted_at',
'models.updated_at',
])
->with('category','depreciation', 'manufacturer','fieldset')
->with('category', 'depreciation', 'manufacturer', 'fieldset.fields.defaultValues')
->withCount('assets as assets_count');
if ($request->input('status')=='deleted') {
$assetmodels->onlyTrashed();
}
if ($request->filled('category_id')) {
$assetmodels = $assetmodels->where('models.category_id', '=', $request->input('category_id'));
}
if ($request->filled('search')) {
$assetmodels->TextSearch($request->input('search'));
}
// Set the offset to the API call's offset, unless the offset is higher than the actual count of items in which
// case we override with the actual count, so we should return 0 items.
$offset = (($assetmodels) && ($request->get('offset') > $assetmodels->count())) ? $assetmodels->count() : $request->get('offset', 0);
// Check to make sure the limit is not higher than the max allowed
((config('app.max_results') >= $request->input('limit')) && ($request->filled('limit'))) ? $limit = $request->input('limit') : $limit = config('app.max_results');
// Make sure the offset and limit are actually integers and do not exceed system limits
$offset = ($request->input('offset') > $assetmodels->count()) ? $assetmodels->count() : abs($request->input('offset'));
$limit = app('api_limit_value');
$order = $request->input('order') === 'asc' ? 'asc' : 'desc';
$sort = in_array($request->input('sort'), $allowed_columns) ? $request->input('sort') : 'models.created_at';
@@ -92,6 +96,9 @@ class AssetModelsController extends Controller
case 'category':
$assetmodels->OrderCategory($order);
break;
case 'fieldset':
$assetmodels->OrderFieldset($order);
break;
default:
$assetmodels->orderBy($sort, $order);
break;
@@ -99,6 +106,7 @@ class AssetModelsController extends Controller
$total = $assetmodels->count();
$assetmodels = $assetmodels->skip($offset)->take($limit)->get();
return (new AssetModelsTransformer)->transformAssetModels($assetmodels, $total);
}
@@ -123,6 +131,7 @@ class AssetModelsController extends Controller
}
return response()->json(Helper::formatStandardApiResponse('error', null, $assetmodel->getErrors()));
}
/**
@@ -137,6 +146,7 @@ class AssetModelsController extends Controller
{
$this->authorize('view', AssetModel::class);
$assetmodel = AssetModel::withCount('assets as assets_count')->findOrFail($id);
return (new AssetModelsTransformer)->transformAssetModel($assetmodel);
}
@@ -151,7 +161,8 @@ class AssetModelsController extends Controller
public function assets($id)
{
$this->authorize('view', AssetModel::class);
$assets = Asset::where('model_id','=',$id)->get();
$assets = Asset::where('model_id', '=', $id)->get();
return (new AssetsTransformer)->transformAssets($assets, $assets->count());
}
@@ -181,7 +192,7 @@ class AssetModelsController extends Controller
* it, but I'll be damned if I can think of one. - snipe
*/
if ($request->filled('custom_fieldset_id')) {
$assetmodel->fieldset_id = $request->get("custom_fieldset_id");
$assetmodel->fieldset_id = $request->get('custom_fieldset_id');
}
@@ -207,20 +218,20 @@ class AssetModelsController extends Controller
$this->authorize('delete', $assetmodel);
if ($assetmodel->assets()->count() > 0) {
return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/models/message.assoc_users')));
return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/models/message.assoc_users')));
}
if ($assetmodel->image) {
try {
try {
Storage::disk('public')->delete('assetmodels/'.$assetmodel->image);
} catch (\Exception $e) {
\Log::info($e);
Log::info($e);
}
}
$assetmodel->delete();
return response()->json(Helper::formatStandardApiResponse('success', null, trans('admin/models/message.delete.success')));
return response()->json(Helper::formatStandardApiResponse('success', null, trans('admin/models/message.delete.success')));
}
/**
@@ -229,11 +240,11 @@ class AssetModelsController extends Controller
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0.16]
* @see \App\Http\Transformers\SelectlistTransformer
*
*/
public function selectlist(Request $request)
{
$this->authorize('view.selectlists');
$assetmodels = AssetModel::select([
'models.id',
'models.name',
@@ -241,7 +252,7 @@ class AssetModelsController extends Controller
'models.model_number',
'models.manufacturer_id',
'models.category_id',
])->with('manufacturer','category');
])->with('manufacturer', 'category');
$settings = \App\Models\Setting::getSettings();
@@ -252,7 +263,6 @@ class AssetModelsController extends Controller
$assetmodels = $assetmodels->OrderCategory('ASC')->OrderManufacturer('ASC')->orderby('models.name', 'asc')->orderby('models.model_number', 'asc')->paginate(50);
foreach ($assetmodels as $assetmodel) {
$assetmodel->use_text = '';
if ($settings->modellistCheckedValue('category')) {
@@ -263,10 +273,10 @@ class AssetModelsController extends Controller
$assetmodel->use_text .= (($assetmodel->manufacturer) ? $assetmodel->manufacturer->name.' ' : '');
}
$assetmodel->use_text .= $assetmodel->name;
$assetmodel->use_text .= $assetmodel->name;
if (($settings->modellistCheckedValue('model_number')) && ($assetmodel->model_number!='')) {
$assetmodel->use_text .= ' (#'.$assetmodel->model_number.')';
if (($settings->modellistCheckedValue('model_number')) && ($assetmodel->model_number != '')) {
$assetmodel->use_text .= ' (#'.$assetmodel->model_number.')';
}
$assetmodel->use_image = ($settings->modellistCheckedValue('image') && ($assetmodel->image)) ? Storage::disk('public')->url('models/'.e($assetmodel->image)) : null;
@@ -274,5 +284,4 @@ class AssetModelsController extends Controller
return (new SelectlistTransformer)->transformSelectlist($assetmodels);
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -10,6 +10,7 @@ use App\Models\Category;
use Illuminate\Http\Request;
use App\Http\Requests\ImageUploadRequest;
use Illuminate\Support\Facades\Storage;
use Illuminate\Support\Facades\Validator;
class CategoriesController extends Controller
{
@@ -23,21 +24,76 @@ class CategoriesController extends Controller
public function index(Request $request)
{
$this->authorize('view', Category::class);
$allowed_columns = ['id', 'name','category_type', 'category_type','use_default_eula','eula_text', 'require_acceptance','checkin_email', 'assets_count', 'accessories_count', 'consumables_count', 'components_count','licenses_count', 'image'];
$allowed_columns = [
'id',
'name',
'category_type',
'category_type',
'use_default_eula',
'eula_text',
'require_acceptance',
'checkin_email',
'assets_count',
'accessories_count',
'consumables_count',
'components_count',
'licenses_count',
'image',
];
$categories = Category::select(['id', 'created_at', 'updated_at', 'name','category_type','use_default_eula','eula_text', 'require_acceptance','checkin_email','image'])
->withCount('assets as assets_count', 'accessories as accessories_count', 'consumables as consumables_count', 'components as components_count','licenses as licenses_count');
$categories = Category::select([
'id',
'created_at',
'updated_at',
'name', 'category_type',
'use_default_eula',
'eula_text',
'require_acceptance',
'checkin_email',
'image'
])->withCount('accessories as accessories_count', 'consumables as consumables_count', 'components as components_count', 'licenses as licenses_count');
/*
* This checks to see if we should override the Admin Setting to show archived assets in list.
* We don't currently use it within the Snipe-IT GUI, but will be useful for API integrations where they
* may actually need to fetch assets that are archived.
*
* @see \App\Models\Category::showableAssets()
*/
if ($request->input('archived')=='true') {
$categories = $categories->withCount('assets as assets_count');
} else {
$categories = $categories->withCount('showableAssets as assets_count');
}
if ($request->filled('search')) {
$categories = $categories->TextSearch($request->input('search'));
}
// Set the offset to the API call's offset, unless the offset is higher than the actual count of items in which
// case we override with the actual count, so we should return 0 items.
$offset = (($categories) && ($request->get('offset') > $categories->count())) ? $categories->count() : $request->get('offset', 0);
if ($request->filled('name')) {
$categories->where('name', '=', $request->input('name'));
}
// Check to make sure the limit is not higher than the max allowed
((config('app.max_results') >= $request->input('limit')) && ($request->filled('limit'))) ? $limit = $request->input('limit') : $limit = config('app.max_results');
if ($request->filled('category_type')) {
$categories->where('category_type', '=', $request->input('category_type'));
}
if ($request->filled('use_default_eula')) {
$categories->where('use_default_eula', '=', $request->input('use_default_eula'));
}
if ($request->filled('require_acceptance')) {
$categories->where('require_acceptance', '=', $request->input('require_acceptance'));
}
if ($request->filled('checkin_email')) {
$categories->where('checkin_email', '=', $request->input('checkin_email'));
}
// Make sure the offset and limit are actually integers and do not exceed system limits
$offset = ($request->input('offset') > $categories->count()) ? $categories->count() : app('api_offset_value');
$limit = app('api_limit_value');
$order = $request->input('order') === 'asc' ? 'asc' : 'desc';
$sort = in_array($request->input('sort'), $allowed_columns) ? $request->input('sort') : 'assets_count';
@@ -45,6 +101,7 @@ class CategoriesController extends Controller
$total = $categories->count();
$categories = $categories->skip($offset)->take($limit)->get();
return (new CategoriesTransformer)->transformCategories($categories, $total);
}
@@ -84,7 +141,7 @@ class CategoriesController extends Controller
public function show($id)
{
$this->authorize('view', Category::class);
$category = Category::findOrFail($id);
$category = Category::withCount('assets as assets_count', 'accessories as accessories_count', 'consumables as consumables_count', 'components as components_count', 'licenses as licenses_count')->findOrFail($id);
return (new CategoriesTransformer)->transformCategory($category);
}
@@ -103,8 +160,14 @@ class CategoriesController extends Controller
{
$this->authorize('update', Category::class);
$category = Category::findOrFail($id);
// Don't allow the user to change the category_type once it's been created
if (($request->filled('category_type')) && ($category->category_type != $request->input('category_type'))) {
return response()->json(
Helper::formatStandardApiResponse('error', null, trans('admin/categories/message.update.cannot_change_category_type'))
);
}
$category->fill($request->all());
$category->category_type = strtolower($request->input('category_type'));
$category = $request->handleImages($category);
if ($category->save()) {
@@ -125,16 +188,16 @@ class CategoriesController extends Controller
public function destroy($id)
{
$this->authorize('delete', Category::class);
$category = Category::findOrFail($id);
$category = Category::withCount('assets as assets_count', 'accessories as accessories_count', 'consumables as consumables_count', 'components as components_count', 'licenses as licenses_count')->findOrFail($id);
if (!$category->isDeletable()) {
if (! $category->isDeletable()) {
return response()->json(
Helper::formatStandardApiResponse('error', null, trans('admin/categories/message.assoc_items', ['asset_type'=>$category->category_type]))
Helper::formatStandardApiResponse('error', null, trans('admin/categories/message.assoc_items', ['asset_type'=>$category->category_type]))
);
}
$category->delete();
return response()->json(Helper::formatStandardApiResponse('success', null, trans('admin/categories/message.delete.success')));
return response()->json(Helper::formatStandardApiResponse('success', null, trans('admin/categories/message.delete.success')));
}
@@ -144,11 +207,10 @@ class CategoriesController extends Controller
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0.16]
* @see \App\Http\Transformers\SelectlistTransformer
*
*/
public function selectlist(Request $request, $category_type = 'asset')
{
$this->authorize('view.selectlists');
$categories = Category::select([
'id',
'name',
@@ -169,7 +231,5 @@ class CategoriesController extends Controller
}
return (new SelectlistTransformer)->transformSelectlist($categories);
}
}

View File

@@ -27,6 +27,9 @@ class CompaniesController extends Controller
$allowed_columns = [
'id',
'name',
'phone',
'fax',
'email',
'created_at',
'updated_at',
'users_count',
@@ -37,18 +40,27 @@ class CompaniesController extends Controller
'components_count',
];
$companies = Company::withCount('assets as assets_count','licenses as licenses_count','accessories as accessories_count','consumables as consumables_count','components as components_count','users as users_count');
$companies = Company::withCount(['assets as assets_count' => function ($query) {
$query->AssetsForShow();
}])->withCount('licenses as licenses_count', 'accessories as accessories_count', 'consumables as consumables_count', 'components as components_count', 'users as users_count');
if ($request->filled('search')) {
$companies->TextSearch($request->input('search'));
}
// Set the offset to the API call's offset, unless the offset is higher than the actual count of items in which
// case we override with the actual count, so we should return 0 items.
$offset = (($companies) && ($request->get('offset') > $companies->count())) ? $companies->count() : $request->get('offset', 0);
if ($request->filled('name')) {
$companies->where('name', '=', $request->input('name'));
}
if ($request->filled('email')) {
$companies->where('email', '=', $request->input('email'));
}
// Make sure the offset and limit are actually integers and do not exceed system limits
$offset = ($request->input('offset') > $companies->count()) ? $companies->count() : app('api_offset_value');
$limit = app('api_limit_value');
// Check to make sure the limit is not higher than the max allowed
((config('app.max_results') >= $request->input('limit')) && ($request->filled('limit'))) ? $limit = $request->input('limit') : $limit = config('app.max_results');
$order = $request->input('order') === 'asc' ? 'asc' : 'desc';
$sort = in_array($request->input('sort'), $allowed_columns) ? $request->input('sort') : 'created_at';
@@ -79,9 +91,9 @@ class CompaniesController extends Controller
if ($company->save()) {
return response()->json(Helper::formatStandardApiResponse('success', (new CompaniesTransformer)->transformCompany($company), trans('admin/companies/message.create.success')));
}
return response()
->json(Helper::formatStandardApiResponse('error', null, $company->getErrors()));
}
/**
@@ -140,13 +152,14 @@ class CompaniesController extends Controller
$company = Company::findOrFail($id);
$this->authorize('delete', $company);
if ( !$company->isDeletable() ) {
if (! $company->isDeletable()) {
return response()
->json(Helper::formatStandardApiResponse('error', null, trans('admin/companies/message.assoc_users')));
->json(Helper::formatStandardApiResponse('error', null, trans('admin/companies/message.assoc_users')));
}
$company->delete();
return response()
->json(Helper::formatStandardApiResponse('success', null, trans('admin/companies/message.delete.success')));
->json(Helper::formatStandardApiResponse('success', null, trans('admin/companies/message.delete.success')));
}
/**
@@ -155,14 +168,14 @@ class CompaniesController extends Controller
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0.16]
* @see \App\Http\Transformers\SelectlistTransformer
*
*/
public function selectlist(Request $request)
{
$this->authorize('view.selectlists');
$companies = Company::select([
'companies.id',
'companies.name',
'companies.email',
'companies.image',
]);

View File

@@ -12,6 +12,9 @@ use App\Http\Requests\ImageUploadRequest;
use App\Events\CheckoutableCheckedIn;
use App\Events\ComponentCheckedIn;
use App\Models\Asset;
use Illuminate\Support\Facades\Validator;
use Illuminate\Database\Query\Builder;
use Illuminate\Support\Facades\Log;
class ComponentsController extends Controller
{
@@ -40,36 +43,44 @@ class ComponentsController extends Controller
'purchase_cost',
'qty',
'image',
'notes',
];
$components = Company::scopeCompanyables(Component::select('components.*')
->with('company', 'location', 'category', 'assets'));
$components = Component::select('components.*')
->with('company', 'location', 'category', 'assets', 'supplier');
if ($request->filled('search')) {
$components = $components->TextSearch($request->input('search'));
}
if ($request->filled('name')) {
$components->where('name', '=', $request->input('name'));
}
if ($request->filled('company_id')) {
$components->where('company_id','=',$request->input('company_id'));
$components->where('company_id', '=', $request->input('company_id'));
}
if ($request->filled('category_id')) {
$components->where('category_id','=',$request->input('category_id'));
$components->where('category_id', '=', $request->input('category_id'));
}
if ($request->filled('supplier_id')) {
$components->where('supplier_id', '=', $request->input('supplier_id'));
}
if ($request->filled('location_id')) {
$components->where('location_id','=',$request->input('location_id'));
$components->where('location_id', '=', $request->input('location_id'));
}
// Set the offset to the API call's offset, unless the offset is higher than the actual count of items in which
// case we override with the actual count, so we should return 0 items.
$offset = (($components) && ($request->get('offset') > $components->count())) ? $components->count() : $request->get('offset', 0);
if ($request->filled('notes')) {
$components->where('notes','=',$request->input('notes'));
}
// Check to make sure the limit is not higher than the max allowed
((config('app.max_results') >= $request->input('limit')) && ($request->filled('limit'))) ? $limit = $request->input('limit') : $limit = config('app.max_results');
// Make sure the offset and limit are actually integers and do not exceed system limits
$offset = ($request->input('offset') > $components->count()) ? $components->count() : app('api_offset_value');
$limit = app('api_limit_value');
$order = $request->input('order') === 'asc' ? 'asc' : 'desc';
$sort_override = $request->input('sort');
$column_sort = in_array($sort_override, $allowed_columns) ? $sort_override : 'created_at';
@@ -84,6 +95,9 @@ class ComponentsController extends Controller
case 'company':
$components = $components->OrderCompany($order);
break;
case 'supplier':
$components = $components->OrderSupplier($order);
break;
default:
$components = $components->orderBy($column_sort, $order);
break;
@@ -91,6 +105,7 @@ class ComponentsController extends Controller
$total = $components->count();
$components = $components->skip($offset)->take($limit)->get();
return (new ComponentsTransformer)->transformComponents($components, $total);
}
@@ -113,6 +128,7 @@ class ComponentsController extends Controller
if ($component->save()) {
return response()->json(Helper::formatStandardApiResponse('success', $component, trans('admin/components/message.create.success')));
}
return response()->json(Helper::formatStandardApiResponse('error', null, $component->getErrors()));
}
@@ -133,7 +149,6 @@ class ComponentsController extends Controller
}
}
/**
* Update the specified resource in storage.
*
@@ -172,6 +187,7 @@ class ComponentsController extends Controller
$component = Component::findOrFail($id);
$this->authorize('delete', $component);
$component->delete();
return response()->json(Helper::formatStandardApiResponse('success', null, trans('admin/components/message.delete.success')));
}
@@ -189,12 +205,30 @@ class ComponentsController extends Controller
$this->authorize('view', \App\Models\Asset::class);
$component = Component::findOrFail($id);
$assets = $component->assets();
$offset = request('offset', 0);
$limit = $request->input('limit', 50);
$total = $assets->count();
$assets = $assets->skip($offset)->take($limit)->get();
if ($request->filled('search')) {
$assets = $component->assets()
->where(function ($query) use ($request) {
$search_str = '%' . $request->input('search') . '%';
$query->where('name', 'like', $search_str)
->orWhereIn('model_id', function (Builder $query) use ($request) {
$search_str = '%' . $request->input('search') . '%';
$query->selectRaw('id')->from('models')->where('name', 'like', $search_str);
})
->orWhere('asset_tag', 'like', $search_str);
})
->get();
$total = $assets->count();
} else {
$assets = $component->assets();
$total = $assets->count();
$assets = $assets->skip($offset)->take($limit)->get();
}
return (new ComponentsTransformer)->transformCheckedoutComponents($assets, $total);
}
@@ -213,20 +247,30 @@ class ComponentsController extends Controller
public function checkout(Request $request, $componentId)
{
// Check if the component exists
if (is_null($component = Component::find($componentId))) {
if (!$component = Component::find($componentId)) {
return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/components/message.does_not_exist')));
}
$this->authorize('checkout', $component);
$validator = Validator::make($request->all(), [
'assigned_to' => 'required|exists:assets,id',
'assigned_qty' => "required|numeric|min:1|digits_between:1,".$component->numRemaining(),
]);
if ($validator->fails()) {
return response()->json(Helper::formatStandardApiResponse('error', $validator->errors()));
}
// Make sure there is at least one available to checkout
if ($component->numRemaining() < $request->get('assigned_qty')) {
return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/components/message.checkout.unavailable', ['remaining' => $component->numRemaining(), 'requested' => $request->get('assigned_qty')])));
}
if ($component->numRemaining() >= $request->get('assigned_qty')) {
if (!$asset = Asset::find($request->input('assigned_to'))) {
return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/hardware/message.does_not_exist')));
}
// Update the accessory data
$asset = Asset::find($request->input('assigned_to'));
$component->assigned_to = $request->input('assigned_to');
$component->assets()->attach($component->id, [
@@ -234,7 +278,8 @@ class ComponentsController extends Controller
'created_at' => \Carbon::now(),
'assigned_qty' => $request->get('assigned_qty', 1),
'user_id' => \Auth::id(),
'asset_id' => $request->get('assigned_to')
'asset_id' => $request->get('assigned_to'),
'note' => $request->get('note'),
]);
$component->logCheckout($request->input('note'), $asset);
@@ -242,7 +287,7 @@ class ComponentsController extends Controller
return response()->json(Helper::formatStandardApiResponse('success', null, trans('admin/components/message.checkout.success')));
}
return response()->json(Helper::formatStandardApiResponse('error', null, 'Not enough components remaining: '.$component->numRemaining().' remaining, '.$request->get('assigned_qty').' requested.'));
return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/components/message.checkout.unavailable', ['remaining' => $component->numRemaining(), 'requested' => $request->get('assigned_qty')])));
}
/**
@@ -287,7 +332,7 @@ class ComponentsController extends Controller
// actually checked out.
$component_assets->assigned_qty = $qty_remaining_in_checkout;
\Log::debug($component_asset_id.' - '.$qty_remaining_in_checkout.' remaining in record '.$component_assets->id);
Log::debug($component_asset_id.' - '.$qty_remaining_in_checkout.' remaining in record '.$component_assets->id);
\DB::table('components_assets')->where('id',
$component_asset_id)->update(['assigned_qty' => $qty_remaining_in_checkout]);

View File

@@ -2,6 +2,7 @@
namespace App\Http\Controllers\Api;
use App\Events\CheckoutableCheckedOut;
use App\Helpers\Helper;
use App\Http\Controllers\Controller;
use App\Http\Transformers\ConsumablesTransformer;
@@ -11,6 +12,8 @@ use App\Models\Consumable;
use App\Models\User;
use Illuminate\Http\Request;
use App\Http\Requests\ImageUploadRequest;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Log;
class ConsumablesController extends Controller
{
@@ -42,24 +45,26 @@ class ConsumablesController extends Controller
'item_no',
'qty',
'image',
'notes',
];
$consumables = Company::scopeCompanyables(
Consumable::select('consumables.*')
->with('company', 'location', 'category', 'users', 'manufacturer')
);
$consumables = Consumable::select('consumables.*')
->with('company', 'location', 'category', 'users', 'manufacturer');
if ($request->filled('search')) {
$consumables = $consumables->TextSearch(e($request->input('search')));
}
if ($request->filled('name')) {
$consumables->where('name', '=', $request->input('name'));
}
if ($request->filled('company_id')) {
$consumables->where('company_id','=',$request->input('company_id'));
$consumables->where('company_id', '=', $request->input('company_id'));
}
if ($request->filled('category_id')) {
$consumables->where('category_id','=',$request->input('category_id'));
$consumables->where('category_id', '=', $request->input('category_id'));
}
if ($request->filled('model_number')) {
@@ -67,22 +72,27 @@ class ConsumablesController extends Controller
}
if ($request->filled('manufacturer_id')) {
$consumables->where('manufacturer_id','=',$request->input('manufacturer_id'));
$consumables->where('manufacturer_id', '=', $request->input('manufacturer_id'));
}
if ($request->filled('supplier_id')) {
$consumables->where('supplier_id', '=', $request->input('supplier_id'));
}
if ($request->filled('location_id')) {
$consumables->where('location_id','=',$request->input('location_id'));
}
if ($request->filled('notes')) {
$consumables->where('notes','=',$request->input('notes'));
}
// Set the offset to the API call's offset, unless the offset is higher than the actual count of items in which
// case we override with the actual count, so we should return 0 items.
$offset = (($consumables) && ($request->get('offset') > $consumables->count())) ? $consumables->count() : $request->get('offset', 0);
// Check to make sure the limit is not higher than the max allowed
((config('app.max_results') >= $request->input('limit')) && ($request->filled('limit'))) ? $limit = $request->input('limit') : $limit = config('app.max_results');
// Make sure the offset and limit are actually integers and do not exceed system limits
$offset = ($request->input('offset') > $consumables->count()) ? $consumables->count() : app('api_offset_value');
$limit = app('api_limit_value');
$allowed_columns = ['id', 'name', 'order_number', 'min_amt', 'purchase_date', 'purchase_cost', 'company', 'category', 'model_number', 'item_no', 'manufacturer', 'location', 'qty', 'image'];
$order = $request->input('order') === 'asc' ? 'asc' : 'desc';
$sort_override = $request->input('sort');
@@ -102,20 +112,20 @@ class ConsumablesController extends Controller
case 'company':
$consumables = $consumables->OrderCompany($order);
break;
case 'supplier':
$components = $consumables->OrderSupplier($order);
break;
default:
$consumables = $consumables->orderBy($column_sort, $order);
break;
}
$total = $consumables->count();
$consumables = $consumables->skip($offset)->take($limit)->get();
return (new ConsumablesTransformer)->transformConsumables($consumables, $total);
}
/**
* Store a newly created resource in storage.
*
@@ -134,6 +144,7 @@ class ConsumablesController extends Controller
if ($consumable->save()) {
return response()->json(Helper::formatStandardApiResponse('success', $consumable, trans('admin/consumables/message.create.success')));
}
return response()->json(Helper::formatStandardApiResponse('error', null, $consumable->getErrors()));
}
@@ -147,11 +158,11 @@ class ConsumablesController extends Controller
public function show($id)
{
$this->authorize('view', Consumable::class);
$consumable = Consumable::findOrFail($id);
$consumable = Consumable::with('users')->findOrFail($id);
return (new ConsumablesTransformer)->transformConsumable($consumable);
}
/**
* Update the specified resource in storage.
*
@@ -189,7 +200,8 @@ class ConsumablesController extends Controller
$consumable = Consumable::findOrFail($id);
$this->authorize('delete', $consumable);
$consumable->delete();
return response()->json(Helper::formatStandardApiResponse('success', null, trans('admin/consumables/message.delete.success')));
return response()->json(Helper::formatStandardApiResponse('success', null, trans('admin/consumables/message.delete.success')));
}
/**
@@ -203,32 +215,34 @@ class ConsumablesController extends Controller
*/
public function getDataView($consumableId)
{
$consumable = Consumable::with(array('consumableAssignments'=>
function ($query) {
$consumable = Consumable::with(['consumableAssignments'=> function ($query) {
$query->orderBy($query->getModel()->getTable().'.created_at', 'DESC');
},
'consumableAssignments.admin'=> function ($query) {
},
'consumableAssignments.user'=> function ($query) {
},
))->find($consumableId);
])->find($consumableId);
if (!Company::isCurrentUserHasAccess($consumable)) {
if (! Company::isCurrentUserHasAccess($consumable)) {
return ['total' => 0, 'rows' => []];
}
$this->authorize('view', Consumable::class);
$rows = array();
$rows = [];
foreach ($consumable->consumableAssignments as $consumable_assignment) {
$rows[] = [
'avatar' => ($consumable_assignment->user) ? e($consumable_assignment->user->present()->gravatar) : '',
'name' => ($consumable_assignment->user) ? $consumable_assignment->user->present()->nameUrl() : 'Deleted User',
'created_at' => Helper::getFormattedDateObject($consumable_assignment->created_at, 'datetime'),
'admin' => ($consumable_assignment->admin) ? $consumable_assignment->admin->present()->nameUrl() : '',
'note' => ($consumable_assignment->note) ? e($consumable_assignment->note) : null,
'admin' => ($consumable_assignment->admin) ? $consumable_assignment->admin->present()->nameUrl() : null,
];
}
$consumableCount = $consumable->users->count();
$data = array('total' => $consumableCount, 'rows' => $rows);
$data = ['total' => $consumableCount, 'rows' => $rows];
return $data;
}
@@ -243,58 +257,58 @@ class ConsumablesController extends Controller
public function checkout(Request $request, $id)
{
// Check if the consumable exists
if (is_null($consumable = Consumable::find($id))) {
if (!$consumable = Consumable::with('users')->find($id)) {
return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/consumables/message.does_not_exist')));
}
$this->authorize('checkout', $consumable);
if ($consumable->qty > 0) {
// Check if the user exists
$assigned_to = $request->input('assigned_to');
if (is_null($user = User::find($assigned_to))) {
// Return error message
return response()->json(Helper::formatStandardApiResponse('error', null, 'No user found'));
}
// Update the consumable data
$consumable->assigned_to = e($assigned_to);
$consumable->users()->attach($consumable->id, [
'consumable_id' => $consumable->id,
'user_id' => $user->id,
'assigned_to' => $assigned_to
]);
// Log checkout event
$logaction = $consumable->logCheckout(e($request->input('note')), $user);
$data['log_id'] = $logaction->id;
$data['eula'] = $consumable->getEula();
$data['first_name'] = $user->first_name;
$data['item_name'] = $consumable->name;
$data['checkout_date'] = $logaction->created_at;
$data['note'] = $logaction->note;
$data['require_acceptance'] = $consumable->requireAcceptance();
return response()->json(Helper::formatStandardApiResponse('success', null, trans('admin/consumables/message.checkout.success')));
// Make sure there is at least one available to checkout
if ($consumable->numRemaining() <= 0) {
return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/consumables/message.checkout.unavailable')));
}
return response()->json(Helper::formatStandardApiResponse('error', null, 'No consumables remaining'));
// Make sure there is a valid category
if (!$consumable->category){
return response()->json(Helper::formatStandardApiResponse('error', null, trans('general.invalid_item_category_single', ['type' => trans('general.consumable')])));
}
// Check if the user exists - @TODO: this should probably be handled via validation, not here??
if (!$user = User::find($request->input('assigned_to'))) {
// Return error message
return response()->json(Helper::formatStandardApiResponse('error', null, 'No user found'));
Log::debug('No valid user');
}
// Update the consumable data
$consumable->assigned_to = $request->input('assigned_to');
$consumable->users()->attach($consumable->id,
[
'consumable_id' => $consumable->id,
'user_id' => $user->id,
'assigned_to' => $request->input('assigned_to'),
'note' => $request->input('note'),
]
);
event(new CheckoutableCheckedOut($consumable, $user, Auth::user(), $request->input('note')));
return response()->json(Helper::formatStandardApiResponse('success', null, trans('admin/consumables/message.checkout.success')));
}
/**
* Gets a paginated collection for the select2 menus
*
* @see \App\Http\Transformers\SelectlistTransformer
*
*/
public function selectlist(Request $request)
{
$consumables = Consumable::select([
'consumables.id',
'consumables.name'
'consumables.name',
]);
if ($request->filled('search')) {
@@ -303,7 +317,6 @@ class ConsumablesController extends Controller
$consumables = $consumables->orderBy('name', 'ASC')->paginate(50);
return (new SelectlistTransformer)->transformSelectlist($consumables);
}
}

View File

@@ -18,26 +18,26 @@ class CustomFieldsController extends Controller
* @author [Brady Wetherington] [<uberbrady@gmail.com>]
* @param int $id
* @since [v3.0]
* @return Array
* @return array
*/
public function index()
{
$this->authorize('index', CustomField::class);
$fields = CustomField::get();
return (new CustomFieldsTransformer)->transformCustomFields($fields, $fields->count());
}
/**
* Shows the given field
* @author [V. Cordes] [<volker@fdatek.de>]
* @param int $id
* @since [v4.1.10]
* @return View
*/
* Shows the given field
* @author [V. Cordes] [<volker@fdatek.de>]
* @param int $id
* @since [v4.1.10]
* @return View
*/
public function show($id)
{
$this->authorize('view', CustomField::class);
$this->authorize('view', CustomField::class);
if ($field = CustomField::find($id)) {
return (new CustomFieldsTransformer)->transformCustomField($field);
}
@@ -45,7 +45,7 @@ class CustomFieldsController extends Controller
return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/custom_fields/message.field.invalid')), 200);
}
/**
/**
* Update the specified field
*
* @author [V. Cordes] [<volker@fdatek.de>]
@@ -80,7 +80,6 @@ class CustomFieldsController extends Controller
return response()->json(Helper::formatStandardApiResponse('error', null, $field->getErrors()));
}
/**
* Store a newly created field.
*
@@ -96,9 +95,9 @@ class CustomFieldsController extends Controller
$data = $request->all();
$regex_format = null;
if (str_contains($data["format"], "regex:")){
$regex_format = $data["format"];
if ((array_key_exists('format', $data)) && (str_contains($data['format'], 'regex:'))) {
$regex_format = $data['format'];
}
$validator = Validator::make($data, $field->validationRules($regex_format));
@@ -111,8 +110,8 @@ class CustomFieldsController extends Controller
if ($field->save()) {
return response()->json(Helper::formatStandardApiResponse('success', $field, trans('admin/custom_fields/message.field.create.success')));
}
return response()->json(Helper::formatStandardApiResponse('error', null, $field->getErrors()));
return response()->json(Helper::formatStandardApiResponse('error', null, $field->getErrors()));
}
public function postReorder(Request $request, $id)
@@ -121,8 +120,8 @@ class CustomFieldsController extends Controller
$this->authorize('update', $fieldset);
$fields = array();
$order_array = array();
$fields = [];
$order_array = [];
$items = $request->input('item');
@@ -135,7 +134,6 @@ class CustomFieldsController extends Controller
}
return $fieldset->fields()->sync($fields);
}
public function associate(Request $request, $field_id)
@@ -152,7 +150,8 @@ class CustomFieldsController extends Controller
}
$fieldset = CustomFieldset::findOrFail($fieldset_id);
$fieldset->fields()->attach($field->id, ["required" => ($request->input('required') == "on"), "order" => $request->input('order', $fieldset->fields->count())]);
$fieldset->fields()->attach($field->id, ['required' => ($request->input('required') == 'on'), 'order' => $request->input('order', $fieldset->fields->count())]);
return response()->json(Helper::formatStandardApiResponse('success', $fieldset, trans('admin/custom_fields/message.fieldset.update.success')));
}
@@ -166,10 +165,12 @@ class CustomFieldsController extends Controller
foreach ($field->fieldset as $fieldset) {
if ($fieldset->id == $fieldset_id) {
$fieldset->fields()->detach($field->id);
return response()->json(Helper::formatStandardApiResponse('success', $fieldset, trans('admin/custom_fields/message.fieldset.update.success')));
}
}
$fieldset = CustomFieldset::findOrFail($fieldset_id);
return response()->json(Helper::formatStandardApiResponse('success', $fieldset, trans('admin/custom_fields/message.fieldset.update.success')));
}
@@ -178,7 +179,7 @@ class CustomFieldsController extends Controller
*
* @author [Brady Wetherington] [<uberbrady@gmail.com>]
* @since [v1.8]
* @return Redirect
* @return \Illuminate\Http\RedirectResponse
*/
public function destroy($field_id)
{
@@ -186,13 +187,12 @@ class CustomFieldsController extends Controller
$this->authorize('delete', $field);
if ($field->fieldset->count() >0) {
if ($field->fieldset->count() > 0) {
return response()->json(Helper::formatStandardApiResponse('error', null, 'Field is in use.'));
}
$field->delete();
return response()->json(Helper::formatStandardApiResponse('success', null, trans('admin/custom_fields/message.field.delete.success')));
return response()->json(Helper::formatStandardApiResponse('success', null, trans('admin/custom_fields/message.field.delete.success')));
}
}

View File

@@ -1,4 +1,5 @@
<?php
namespace App\Http\Controllers\Api;
use App\Helpers\Helper;
@@ -6,6 +7,7 @@ use App\Http\Controllers\Controller;
use App\Http\Transformers\CustomFieldsetsTransformer;
use App\Http\Transformers\CustomFieldsTransformer;
use App\Models\CustomFieldset;
use App\Models\CustomField;
use Illuminate\Http\Request;
use Redirect;
use View;
@@ -20,47 +22,43 @@ use View;
* @author [Brady Wetherington] [<uberbrady@gmail.com>]
* @author [Josh Gibson]
*/
class CustomFieldsetsController extends Controller
{
/**
* Shows the given fieldset and its fields
* @author [A. Gianotto] [<snipe@snipe.net>]
* @author [Josh Gibson]
* @param int $id
* @since [v1.8]
* @return View
*/
* Shows the given fieldset and its fields
* @author [A. Gianotto] [<snipe@snipe.net>]
* @author [Josh Gibson]
* @param int $id
* @since [v1.8]
* @return View
*/
public function index()
{
$this->authorize('index', CustomFieldset::class);
$this->authorize('index', CustomField::class);
$fieldsets = CustomFieldset::withCount('fields as fields_count', 'models as models_count')->get();
return (new CustomFieldsetsTransformer)->transformCustomFieldsets($fieldsets, $fieldsets->count());
return (new CustomFieldsetsTransformer)->transformCustomFieldsets($fieldsets, $fieldsets->count());
}
/**
* Shows the given fieldset and its fields
* @author [A. Gianotto] [<snipe@snipe.net>]
* @author [Josh Gibson]
* @param int $id
* @since [v1.8]
* @return View
*/
* Shows the given fieldset and its fields
* @author [A. Gianotto] [<snipe@snipe.net>]
* @author [Josh Gibson]
* @param int $id
* @since [v1.8]
* @return View
*/
public function show($id)
{
$this->authorize('view', CustomFieldset::class);
$this->authorize('view', CustomField::class);
if ($fieldset = CustomFieldset::find($id)) {
return (new CustomFieldsetsTransformer)->transformCustomFieldset($fieldset);
}
return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/custom_fields/message.fieldset.does_not_exist')), 200);
}
/**
/**
* Update the specified resource in storage.
*
* @author [A. Gianotto] [<snipe@snipe.net>]
@@ -71,7 +69,7 @@ class CustomFieldsetsController extends Controller
*/
public function update(Request $request, $id)
{
$this->authorize('update', CustomFieldset::class);
$this->authorize('update', CustomField::class);
$fieldset = CustomFieldset::findOrFail($id);
$fieldset->fill($request->all());
@@ -82,7 +80,6 @@ class CustomFieldsetsController extends Controller
return response()->json(Helper::formatStandardApiResponse('error', null, $fieldset->getErrors()));
}
/**
* Store a newly created resource in storage.
*
@@ -93,45 +90,53 @@ class CustomFieldsetsController extends Controller
*/
public function store(Request $request)
{
$this->authorize('create', CustomFieldset::class);
$this->authorize('create', CustomField::class);
$fieldset = new CustomFieldset;
$fieldset->fill($request->all());
if ($fieldset->save()) {
// Sync fieldset with auto_add_to_fieldsets
$fields = CustomField::select('id')->where('auto_add_to_fieldsets', '=', '1')->get();
if ($fields->count() > 0) {
foreach ($fields as $field) {
$field_ids[] = $field->id;
}
$fieldset->fields()->sync($field_ids);
}
return response()->json(Helper::formatStandardApiResponse('success', $fieldset, trans('admin/custom_fields/message.fieldset.create.success')));
}
return response()->json(Helper::formatStandardApiResponse('error', null, $fieldset->getErrors()));
}
/**
* Delete a custom fieldset.
*
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0]
* @return Redirect
* @return \Illuminate\Http\RedirectResponse
*/
public function destroy($id)
{
$this->authorize('delete', CustomFieldset::class);
$this->authorize('delete', CustomField::class);
$fieldset = CustomFieldset::findOrFail($id);
$modelsCount = $fieldset->models->count();
$fieldsCount = $fieldset->fields->count();
if (($modelsCount > 0) || ($fieldsCount > 0) ){
if (($modelsCount > 0) || ($fieldsCount > 0)) {
return response()->json(Helper::formatStandardApiResponse('error', null, 'Fieldset is in use.'));
}
if ($fieldset->delete()) {
return response()->json(Helper::formatStandardApiResponse('success', null, trans('admin/custom_fields/message.fieldset.delete.success')));
}
if ($fieldset->delete()) {
return response()->json(Helper::formatStandardApiResponse('success', null, trans('admin/custom_fields/message.fieldset.delete.success')));
}
return response()->json(Helper::formatStandardApiResponse('error', null, 'Unspecified error'));
}
/**
@@ -144,9 +149,10 @@ class CustomFieldsetsController extends Controller
*/
public function fields($id)
{
$this->authorize('view', CustomFieldset::class);
$this->authorize('view', CustomField::class);
$set = CustomFieldset::findOrFail($id);
$fields = $set->fields;
return (new CustomFieldsTransformer)->transformCustomFields($fields, $fields->count());
}
@@ -160,7 +166,7 @@ class CustomFieldsetsController extends Controller
*/
public function fieldsWithDefaultValues($fieldsetId, $modelId)
{
$this->authorize('view', CustomFieldset::class);
$this->authorize('view', CustomField::class);
$set = CustomFieldset::findOrFail($fieldsetId);

View File

@@ -6,8 +6,9 @@ use App\Helpers\Helper;
use App\Http\Controllers\Controller;
use App\Http\Transformers\DepartmentsTransformer;
use App\Http\Transformers\SelectlistTransformer;
use App\Models\Company;
use App\Models\Department;
use Auth;
use Illuminate\Support\Facades\Auth;
use Illuminate\Http\Request;
use App\Http\Requests\ImageUploadRequest;
use Illuminate\Support\Facades\Storage;
@@ -24,29 +25,44 @@ class DepartmentsController extends Controller
public function index(Request $request)
{
$this->authorize('view', Department::class);
$allowed_columns = ['id','name','image','users_count'];
$allowed_columns = ['id', 'name', 'image', 'users_count'];
$departments = Department::select([
$departments = Department::select(
'departments.id',
'departments.name',
'departments.phone',
'departments.fax',
'departments.location_id',
'departments.company_id',
'departments.manager_id',
'departments.created_at',
'departments.updated_at',
'departments.image'
])->with('users')->with('location')->with('manager')->with('company')->withCount('users as users_count');
)->with('users')->with('location')->with('manager')->with('company')->withCount('users as users_count');
if ($request->filled('search')) {
$departments = $departments->TextSearch($request->input('search'));
}
// Set the offset to the API call's offset, unless the offset is higher than the actual count of items in which
// case we override with the actual count, so we should return 0 items.
$offset = (($departments) && ($request->get('offset') > $departments->count())) ? $departments->count() : $request->get('offset', 0);
if ($request->filled('name')) {
$departments->where('name', '=', $request->input('name'));
}
// Check to make sure the limit is not higher than the max allowed
((config('app.max_results') >= $request->input('limit')) && ($request->filled('limit'))) ? $limit = $request->input('limit') : $limit = config('app.max_results');
if ($request->filled('company_id')) {
$departments->where('company_id', '=', $request->input('company_id'));
}
if ($request->filled('manager_id')) {
$departments->where('manager_id', '=', $request->input('manager_id'));
}
if ($request->filled('location_id')) {
$departments->where('location_id', '=', $request->input('location_id'));
}
// Make sure the offset and limit are actually integers and do not exceed system limits
$offset = ($request->input('offset') > $departments->count()) ? $departments->count() : app('api_offset_value');
$limit = app('api_limit_value');
$order = $request->input('order') === 'asc' ? 'asc' : 'desc';
$sort = in_array($request->input('sort'), $allowed_columns) ? $request->input('sort') : 'created_at';
@@ -85,7 +101,7 @@ class DepartmentsController extends Controller
$department = $request->handleImages($department);
$department->user_id = Auth::user()->id;
$department->manager_id = ($request->filled('manager_id' ) ? $request->input('manager_id') : null);
$department->manager_id = ($request->filled('manager_id') ? $request->input('manager_id') : null);
if ($department->save()) {
return response()->json(Helper::formatStandardApiResponse('success', $department, trans('admin/departments/message.create.success')));
@@ -106,6 +122,7 @@ class DepartmentsController extends Controller
{
$this->authorize('view', Department::class);
$department = Department::findOrFail($id);
return (new DepartmentsTransformer)->transformDepartment($department);
}
@@ -133,7 +150,6 @@ class DepartmentsController extends Controller
}
/**
* Validates and deletes selected department.
*
@@ -163,11 +179,11 @@ class DepartmentsController extends Controller
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v4.0.16]
* @see \App\Http\Transformers\SelectlistTransformer
*
*/
public function selectlist(Request $request)
{
$this->authorize('view.selectlists');
$departments = Department::select([
'id',
'name',
@@ -188,7 +204,5 @@ class DepartmentsController extends Controller
}
return (new SelectlistTransformer)->transformSelectlist($departments);
}
}

View File

@@ -28,12 +28,9 @@ class DepreciationsController extends Controller
$depreciations = $depreciations->TextSearch($request->input('search'));
}
// Set the offset to the API call's offset, unless the offset is higher than the actual count of items in which
// case we override with the actual count, so we should return 0 items.
$offset = (($depreciations) && ($request->get('offset') > $depreciations->count())) ? $depreciations->count() : $request->get('offset', 0);
// Check to make sure the limit is not higher than the max allowed
((config('app.max_results') >= $request->input('limit')) && ($request->filled('limit'))) ? $limit = $request->input('limit') : $limit = config('app.max_results');
// Make sure the offset and limit are actually integers and do not exceed system limits
$offset = ($request->input('offset') > $depreciations->count()) ? $depreciations->count() : app('api_offset_value');
$limit = app('api_limit_value');
$order = $request->input('order') === 'asc' ? 'asc' : 'desc';
$sort = in_array($request->input('sort'), $allowed_columns) ? $request->input('sort') : 'created_at';
@@ -41,10 +38,10 @@ class DepreciationsController extends Controller
$total = $depreciations->count();
$depreciations = $depreciations->skip($offset)->take($limit)->get();
return (new DepreciationsTransformer)->transformDepreciations($depreciations, $total);
}
/**
* Store a newly created resource in storage.
*
@@ -62,8 +59,8 @@ class DepreciationsController extends Controller
if ($depreciation->save()) {
return response()->json(Helper::formatStandardApiResponse('success', $depreciation, trans('admin/depreciations/message.create.success')));
}
return response()->json(Helper::formatStandardApiResponse('error', null, $depreciation->getErrors()));
return response()->json(Helper::formatStandardApiResponse('error', null, $depreciation->getErrors()));
}
/**
@@ -78,10 +75,10 @@ class DepreciationsController extends Controller
{
$this->authorize('view', Depreciation::class);
$depreciation = Depreciation::findOrFail($id);
return (new DepreciationsTransformer)->transformDepreciation($depreciation);
}
/**
* Update the specified resource in storage.
*
@@ -123,10 +120,7 @@ class DepreciationsController extends Controller
}
$depreciation->delete();
return response()->json(Helper::formatStandardApiResponse('success', null, trans('admin/depreciations/message.delete.success')));
return response()->json(Helper::formatStandardApiResponse('success', null, trans('admin/depreciations/message.delete.success')));
}
}

View File

@@ -7,6 +7,8 @@ use App\Http\Controllers\Controller;
use App\Http\Transformers\GroupsTransformer;
use App\Models\Group;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
class GroupsController extends Controller
{
@@ -19,21 +21,24 @@ class GroupsController extends Controller
*/
public function index(Request $request)
{
$this->authorize('view', Group::class);
$allowed_columns = ['id','name','created_at', 'users_count'];
$this->authorize('superadmin');
$groups = Group::select('id','name','permissions','created_at','updated_at')->withCount('users as users_count');
$this->authorize('view', Group::class);
$allowed_columns = ['id', 'name', 'created_at', 'users_count'];
$groups = Group::select('id', 'name', 'permissions', 'created_at', 'updated_at', 'created_by')->with('admin')->withCount('users as users_count');
if ($request->filled('search')) {
$groups = $groups->TextSearch($request->input('search'));
}
// Set the offset to the API call's offset, unless the offset is higher than the actual count of items in which
// case we override with the actual count, so we should return 0 items.
$offset = (($groups) && ($request->get('offset') > $groups->count())) ? $groups->count() : $request->get('offset', 0);
if ($request->filled('name')) {
$groups->where('name', '=', $request->input('name'));
}
// Check to make sure the limit is not higher than the max allowed
((config('app.max_results') >= $request->input('limit')) && ($request->filled('limit'))) ? $limit = $request->input('limit') : $limit = config('app.max_results');
// Make sure the offset and limit are actually integers and do not exceed system limits
$offset = ($request->input('offset') > $groups->count()) ? $groups->count() : app('api_offset_value');
$limit = app('api_limit_value');
$order = $request->input('order') === 'asc' ? 'asc' : 'desc';
$sort = in_array($request->input('sort'), $allowed_columns) ? $request->input('sort') : 'created_at';
@@ -41,10 +46,10 @@ class GroupsController extends Controller
$total = $groups->count();
$groups = $groups->skip($offset)->take($limit)->get();
return (new GroupsTransformer)->transformGroups($groups, $total);
}
/**
* Store a newly created resource in storage.
*
@@ -55,15 +60,21 @@ class GroupsController extends Controller
*/
public function store(Request $request)
{
$this->authorize('create', Group::class);
$this->authorize('superadmin');
$group = new Group;
$group->fill($request->all());
// Get all the available permissions
$permissions = config('permissions');
$groupPermissions = Helper::selectedPermissionsArray($permissions, $permissions);
$group->name = $request->input('name');
$group->created_by = Auth::user()->id;
$group->permissions = json_encode($request->input('permissions', $groupPermissions));
if ($group->save()) {
return response()->json(Helper::formatStandardApiResponse('success', $group, trans('admin/groups/message.create.success')));
return response()->json(Helper::formatStandardApiResponse('success', (new GroupsTransformer)->transformGroup($group), trans('admin/groups/message.success.create')));
}
return response()->json(Helper::formatStandardApiResponse('error', null, $group->getErrors()));
return response()->json(Helper::formatStandardApiResponse('error', null, $group->getErrors()));
}
/**
@@ -76,12 +87,11 @@ class GroupsController extends Controller
*/
public function show($id)
{
$this->authorize('view', Group::class);
$this->authorize('superadmin');
$group = Group::findOrFail($id);
return (new GroupsTransformer)->transformGroup($group);
}
/**
* Update the specified resource in storage.
*
@@ -93,12 +103,14 @@ class GroupsController extends Controller
*/
public function update(Request $request, $id)
{
$this->authorize('update', Group::class);
$this->authorize('superadmin');
$group = Group::findOrFail($id);
$group->fill($request->all());
$group->name = $request->input('name');
$group->permissions = $request->input('permissions'); // Todo - some JSON validation stuff here
if ($group->save()) {
return response()->json(Helper::formatStandardApiResponse('success', $group, trans('admin/groups/message.update.success')));
return response()->json(Helper::formatStandardApiResponse('success', (new GroupsTransformer)->transformGroup($group), trans('admin/groups/message.success.update')));
}
return response()->json(Helper::formatStandardApiResponse('error', null, $group->getErrors()));
@@ -114,13 +126,10 @@ class GroupsController extends Controller
*/
public function destroy($id)
{
$this->authorize('delete', Group::class);
$this->authorize('superadmin');
$group = Group::findOrFail($id);
$this->authorize('delete', $group);
$group->delete();
return response()->json(Helper::formatStandardApiResponse('success', null, trans('admin/groups/message.delete.success')));
return response()->json(Helper::formatStandardApiResponse('success', null, trans('admin/groups/message.delete.success')));
}
}

View File

@@ -9,12 +9,14 @@ use App\Http\Transformers\ImportsTransformer;
use App\Models\Asset;
use App\Models\Company;
use App\Models\Import;
use Artisan;
use Illuminate\Support\Facades\Artisan;
use Illuminate\Database\Eloquent\JsonEncodingException;
use Illuminate\Support\Facades\Request;
use Illuminate\Support\Facades\Session;
use Illuminate\Support\Facades\Storage;
use League\Csv\Reader;
use Symfony\Component\HttpFoundation\File\Exception\FileException;
use Illuminate\Support\Facades\Log;
class ImportController extends Controller
{
@@ -27,90 +29,125 @@ class ImportController extends Controller
{
$this->authorize('import');
$imports = Import::latest()->get();
return (new ImportsTransformer)->transformImports($imports);
return (new ImportsTransformer)->transformImports($imports);
}
/**
* Process and store a CSV upload file.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
* @return \Illuminate\Http\JsonResponse
*/
public function store()
{
$this->authorize('import');
if (!config('app.lock_passwords')) {
if (! config('app.lock_passwords')) {
$files = Request::file('files');
$path = config('app.private_uploads').'/imports';
$results = [];
$import = new Import;
foreach ($files as $file) {
if (!in_array($file->getMimeType(), array(
if (! in_array($file->getMimeType(), [
'application/vnd.ms-excel',
'text/csv',
'application/csv',
'text/x-Algol68', // because wtf CSV files?
'text/plain',
'text/comma-separated-values',
'text/tsv'))) {
$results['error']='File type must be CSV. Uploaded file is '.$file->getMimeType();
return response()->json(Helper::formatStandardApiResponse('error', null, $results['error']), 500);
'text/tsv', ])) {
$results['error'] = 'File type must be CSV. Uploaded file is '.$file->getMimeType();
return response()->json(Helper::formatStandardApiResponse('error', null, $results['error']), 422);
}
//TODO: is there a lighter way to do this?
if (! ini_get("auto_detect_line_endings")) {
ini_set("auto_detect_line_endings", '1');
if (! ini_get('auto_detect_line_endings')) {
ini_set('auto_detect_line_endings', '1');
}
$reader = Reader::createFromFileObject($file->openFile('r')); //file pointer leak?
$import->header_row = $reader->fetchOne(0);
try {
$import->header_row = $reader->fetchOne(0);
} catch (JsonEncodingException $e) {
return response()->json(
Helper::formatStandardApiResponse(
'error',
null,
trans('admin/hardware/message.import.header_row_has_malformed_characters')
),
422
);
}
//duplicate headers check
$duplicate_headers = [];
for($i = 0; $i<count($import->header_row); $i++) {
for ($i = 0; $i < count($import->header_row); $i++) {
$header = $import->header_row[$i];
if(in_array($header, $import->header_row)) {
if (in_array($header, $import->header_row)) {
$found_at = array_search($header, $import->header_row);
if($i > $found_at) {
if ($i > $found_at) {
//avoid reporting duplicates twice, e.g. "1 is same as 17! 17 is same as 1!!!"
//as well as "1 is same as 1!!!" (which is always true)
//has to be > because otherwise the first result of array_search will always be $i itself(!)
array_push($duplicate_headers,"Duplicate header '$header' detected, first at column: ".($found_at+1).", repeats at column: ".($i+1));
array_push($duplicate_headers, "Duplicate header '$header' detected, first at column: ".($found_at + 1).', repeats at column: '.($i + 1));
}
}
}
if(count($duplicate_headers) > 0) {
return response()->json(Helper::formatStandardApiResponse('error',null, implode("; ",$duplicate_headers)), 500); //should this be '4xx'?
if (count($duplicate_headers) > 0) {
return response()->json(Helper::formatStandardApiResponse('error', null, implode('; ', $duplicate_headers)),422);
}
// Grab the first row to display via ajax as the user picks fields
$import->first_row = $reader->fetchOne(1);
try {
// Grab the first row to display via ajax as the user picks fields
$import->first_row = $reader->fetchOne(1);
} catch (JsonEncodingException $e) {
return response()->json(
Helper::formatStandardApiResponse(
'error',
null,
trans('admin/hardware/message.import.content_row_has_malformed_characters')
),
422
);
}
$date = date('Y-m-d-his');
$fixed_filename = str_slug($file->getClientOriginalName());
try {
$file->move($path, $date.'-'.$fixed_filename);
} catch (FileException $exception) {
$results['error']=trans('admin/hardware/message.upload.error');
$results['error'] = trans('admin/hardware/message.upload.error');
if (config('app.debug')) {
$results['error'].= ' ' . $exception->getMessage();
$results['error'] .= ' '.$exception->getMessage();
}
return response()->json(Helper::formatStandardApiResponse('error', null, $results['error']), 500);
}
$file_name = date('Y-m-d-his').'-'.$fixed_filename;
$import->file_path = $file_name;
$import->filesize = null;
if (!file_exists($path.'/'.$file_name)) {
return response()->json(Helper::formatStandardApiResponse('error', null, trans('general.file_not_found')), 500);
}
$import->filesize = filesize($path.'/'.$file_name);
$import->save();
$results[] = $import;
}
$results = (new ImportsTransformer)->transformImports($results);
return [
return response()->json([
'files' => $results,
];
]);
}
return response()->json(Helper::formatStandardApiResponse('error', null, trans('general.feature_disabled')), 500);
return response()->json(Helper::formatStandardApiResponse('error', null, trans('general.feature_disabled')), 422);
}
/**
* Processes the specified Import.
*
@@ -122,33 +159,43 @@ class ImportController extends Controller
$this->authorize('import');
// Run a backup immediately before processing
if ($request->has('run-backup')) {
\Log::debug('Backup manually requested via importer');
Artisan::call('backup:run');
if ($request->get('run-backup')) {
Log::debug('Backup manually requested via importer');
Artisan::call('snipeit:backup', ['--filename' => 'pre-import-backup-'.date('Y-m-d-H:i:s')]);
} else {
\Log::debug('NO BACKUP requested via importer');
Log::debug('NO BACKUP requested via importer');
}
$errors = $request->import(Import::find($import_id));
$redirectTo = "hardware.index";
$import = Import::find($import_id);
if(is_null($import)){
$error[0][0] = trans("validation.exists", ["attribute" => "file"]);
return response()->json(Helper::formatStandardApiResponse('import-errors', null, $error), 500);
}
$errors = $request->import($import);
$redirectTo = 'hardware.index';
switch ($request->get('import-type')) {
case "asset":
$redirectTo = "hardware.index";
case 'asset':
$redirectTo = 'hardware.index';
break;
case "accessory":
$redirectTo = "accessories.index";
case 'accessory':
$redirectTo = 'accessories.index';
break;
case "consumable":
$redirectTo = "consumables.index";
case 'consumable':
$redirectTo = 'consumables.index';
break;
case "component":
$redirectTo = "components.index";
case 'component':
$redirectTo = 'components.index';
break;
case "license":
$redirectTo = "licenses.index";
case 'license':
$redirectTo = 'licenses.index';
break;
case "user":
$redirectTo = "users.index";
case 'user':
$redirectTo = 'users.index';
break;
case 'location':
$redirectTo = 'locations.index';
break;
}
@@ -157,8 +204,8 @@ class ImportController extends Controller
}
//Flash message before the redirect
Session::flash('success', trans('admin/hardware/message.import.success'));
return response()->json(Helper::formatStandardApiResponse('success', null, ['redirect_url' => route($redirectTo)]));
return response()->json(Helper::formatStandardApiResponse('success', null, ['redirect_url' => route($redirectTo)]));
}
/**
@@ -170,20 +217,20 @@ class ImportController extends Controller
public function destroy($import_id)
{
$this->authorize('create', Asset::class);
if ($import = Import::find($import_id)) {
try {
// Try to delete the file
Storage::delete('imports/'.$import->file_path);
$import->delete();
return response()->json(Helper::formatStandardApiResponse('success', null, trans('admin/hardware/message.import.file_delete_success')));
return response()->json(Helper::formatStandardApiResponse('success', null, trans('admin/hardware/message.import.file_delete_success')));
} catch (\Exception $e) {
// If the file delete didn't work, remove it from the database anyway and return a warning
$import->delete();
return response()->json(Helper::formatStandardApiResponse('warning', null, trans('admin/hardware/message.import.file_not_deleted_warning')));
}
}
}
}

Some files were not shown because too many files have changed in this diff Show More