Compare commits

..

69 Commits

Author SHA1 Message Date
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 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
snipe 23f8e35716 Added route parameter
Signed-off-by: snipe <snipe@snipe.net>
2024-03-05 20:39:56 +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
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
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
Godfrey M 550f9e2afa removes visibility checkmarks for certain fields when in new label engine 2024-02-22 16:19:28 -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
21 changed files with 248 additions and 182 deletions
@@ -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.');
}
}
}
@@ -14,6 +14,7 @@ use App\View\Label;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Session;
use App\Http\Requests\AssetCheckoutRequest;
use App\Models\CustomField;
@@ -93,6 +94,59 @@ class BulkAssetsController extends Controller
$assets = Asset::with('assignedTo', 'location', 'model')->whereIn('assets.id', $asset_ids);
$assets = $assets->get();
if ($assets->isEmpty()) {
Log::debug('No assets were found for the provided IDs', ['ids' => $asset_ids]);
return redirect()->back()->with('error', trans('admin/hardware/message.update.assets_do_not_exist_or_are_invalid'));
}
$models = $assets->unique('model_id');
$modelNames = [];
foreach($models as $model) {
$modelNames[] = $model->model->name;
}
if ($request->filled('bulk_actions')) {
switch ($request->input('bulk_actions')) {
case 'labels':
$this->authorize('view', Asset::class);
return (new Label)
->with('assets', $assets)
->with('settings', Setting::getSettings())
->with('bulkedit', true)
->with('count', 0);
case 'delete':
$this->authorize('delete', Asset::class);
$assets->each(function ($assets) {
$this->authorize('delete', $assets);
});
return view('hardware/bulk-delete')->with('assets', $assets);
case 'restore':
$this->authorize('update', Asset::class);
$assets = Asset::withTrashed()->find($asset_ids);
$assets->each(function ($asset) {
$this->authorize('delete', $asset);
});
return view('hardware/bulk-restore')->with('assets', $assets);
case 'edit':
$this->authorize('update', Asset::class);
return view('hardware/bulk')
->with('assets', $asset_ids)
->with('statuslabel_list', Helper::statusLabelList())
->with('models', $models->pluck(['model']))
->with('modelNames', $modelNames);
}
}
switch ($sort_override) {
case 'model':
$assets->OrderModels($order);
@@ -128,54 +182,6 @@ class BulkAssetsController extends Controller
break;
}
$assets = $assets->get();
$models = $assets->unique('model_id');
$modelNames = [];
foreach($models as $model) {
$modelNames[] = $model->model->name;
}
if ($request->filled('bulk_actions')) {
switch ($request->input('bulk_actions')) {
case 'labels':
$this->authorize('view', Asset::class);
return (new Label)
->with('assets', $assets)
->with('settings', Setting::getSettings())
->with('bulkedit', true)
->with('count', 0);
case 'delete':
$this->authorize('delete', Asset::class);
$assets->each(function ($assets) {
$this->authorize('delete', $assets);
});
return view('hardware/bulk-delete')->with('assets', $assets);
case 'restore':
$this->authorize('update', Asset::class);
$assets = Asset::withTrashed()->find($asset_ids);
$assets->each(function ($asset) {
$this->authorize('delete', $asset);
});
return view('hardware/bulk-restore')->with('assets', $assets);
case 'edit':
$this->authorize('update', Asset::class);
return view('hardware/bulk')
->with('assets', $asset_ids)
->with('statuslabel_list', Helper::statusLabelList())
->with('models', $models->pluck(['model']))
->with('modelNames', $modelNames);
}
}
return redirect()->back()->with('error', 'No action selected');
}
@@ -1178,6 +1178,10 @@ class ReportsController extends Controller
}
}
if ($assetItem->assignedTo->email == ''){
return redirect()->route('reports/unaccepted_assets')->with('error', trans('general.no_email'));
}
return redirect()->route('reports/unaccepted_assets')->with('success', trans('admin/reports/general.reminder_sent'));
}
+1 -3
View File
@@ -31,9 +31,7 @@ class SlackSettingsForm extends Component
'webhook_channel' => 'required_with:webhook_endpoint|starts_with:#|nullable',
'webhook_botname' => 'string|nullable',
];
public $messages = [
'webhook_endpoint.starts_with' => 'your webhook endpoint should begin with http://, https:// or other protocol.',
];
public function mount() {
$this->webhook_text= [
+1 -1
View File
@@ -305,7 +305,7 @@ class Accessory extends SnipeModel
*/
public function requireAcceptance()
{
return $this->category->require_acceptance;
return $this->category->require_acceptance ?? false;
}
/**
+5 -56
View File
@@ -162,10 +162,11 @@ class DefaultLabel extends RectangleSheet
// Fields
$fieldsDone = 0;
if ($settings->labels_display_name && $fieldsDone < $this->getSupportFields()) {
if ($asset->name) {
if ($fieldsDone < $this->getSupportFields()) {
// dd($record->get('fields'));
foreach ($record->get('fields') as $field) {
static::writeText(
$pdf, 'N: '.$asset->name,
$pdf, $field['label'][0]. ': ' . $field['value'],
$textX1, $textY,
'freesans', '', $this->textSize, 'L',
$textW, $this->textSize,
@@ -175,60 +176,8 @@ class DefaultLabel extends RectangleSheet
$fieldsDone++;
}
}
if ($settings->labels_display_company_name && $fieldsDone < $this->getSupportFields()) {
if ($asset->company) {
static::writeText(
$pdf, 'C: '.$asset->company->name,
$textX1, $textY,
'freesans', '', $this->textSize, 'L',
$textW, $this->textSize,
true, 0
);
$textY += $this->textSize + self::TEXT_MARGIN;
$fieldsDone++;
}
}
if ($settings->labels_display_tag && $fieldsDone < $this->getSupportFields()) {
if ($asset->asset_tag) {
static::writeText(
$pdf, 'T: '.$asset->asset_tag,
$textX1, $textY,
'freesans', '', $this->textSize, 'L',
$textW, $this->textSize,
true, 0
);
$textY += $this->textSize + self::TEXT_MARGIN;
$fieldsDone++;
}
}
if ($settings->labels_display_serial && $fieldsDone < $this->getSupportFields()) {
if ($asset->serial) {
static::writeText(
$pdf, 'S: '.$asset->serial,
$textX1, $textY,
'freesans', '', $this->textSize, 'L',
$textW, $this->textSize,
true, 0
);
$textY += $this->textSize + self::TEXT_MARGIN;
$fieldsDone++;
}
}
if ($settings->labels_display_model && $fieldsDone < $this->getSupportFields()) {
if ($asset->model) {
static::writeText(
$pdf, 'M: '.$asset->model->name,
$textX1, $textY,
'freesans', '', $this->textSize, 'L',
$textW, $this->textSize,
true, 0
);
$textY += $this->textSize + self::TEXT_MARGIN;
$fieldsDone++;
}
}
}
}
?>
@@ -43,12 +43,12 @@ class CheckinAccessoryNotification extends Notification
public function via()
{
$notifyBy = [];
if (Setting::getSettings()->webhook_selected == 'google'){
if (Setting::getSettings()->webhook_selected == 'google' && Setting::getSettings()->webhook_endpoint) {
$notifyBy[] = GoogleChatChannel::class;
}
if (Setting::getSettings()->webhook_selected == 'microsoft'){
if (Setting::getSettings()->webhook_selected == 'microsoft' && Setting::getSettings()->webhook_endpoint) {
$notifyBy[] = MicrosoftTeamsChannel::class;
}
@@ -51,12 +51,12 @@ class CheckinAssetNotification extends Notification
public function via()
{
$notifyBy = [];
if (Setting::getSettings()->webhook_selected == 'google'){
if (Setting::getSettings()->webhook_selected == 'google' && Setting::getSettings()->webhook_endpoint) {
$notifyBy[] = GoogleChatChannel::class;
}
if (Setting::getSettings()->webhook_selected == 'microsoft'){
if (Setting::getSettings()->webhook_selected == 'microsoft' && Setting::getSettings()->webhook_endpoint) {
$notifyBy[] = MicrosoftTeamsChannel::class;
}
@@ -48,11 +48,11 @@ class CheckinLicenseSeatNotification extends Notification
{
$notifyBy = [];
if (Setting::getSettings()->webhook_selected == 'google'){
if (Setting::getSettings()->webhook_selected == 'google' && Setting::getSettings()->webhook_endpoint) {
$notifyBy[] = GoogleChatChannel::class;
}
if (Setting::getSettings()->webhook_selected == 'microsoft'){
if (Setting::getSettings()->webhook_selected == 'microsoft' && Setting::getSettings()->webhook_endpoint) {
$notifyBy[] = MicrosoftTeamsChannel::class;
}
@@ -42,12 +42,12 @@ class CheckoutAccessoryNotification extends Notification
public function via()
{
$notifyBy = [];
if (Setting::getSettings()->webhook_selected == 'google'){
if (Setting::getSettings()->webhook_selected == 'google' && Setting::getSettings()->webhook_endpoint) {
$notifyBy[] = GoogleChatChannel::class;
}
if (Setting::getSettings()->webhook_selected == 'microsoft'){
if (Setting::getSettings()->webhook_selected == 'microsoft' && Setting::getSettings()->webhook_endpoint) {
$notifyBy[] = MicrosoftTeamsChannel::class;
}
@@ -62,12 +62,12 @@ class CheckoutAssetNotification extends Notification
public function via()
{
$notifyBy = [];
if (Setting::getSettings()->webhook_selected == 'google'){
if (Setting::getSettings()->webhook_selected == 'google' && Setting::getSettings()->webhook_endpoint) {
$notifyBy[] = GoogleChatChannel::class;
}
if (Setting::getSettings()->webhook_selected == 'microsoft'){
if (Setting::getSettings()->webhook_selected == 'microsoft' && Setting::getSettings()->webhook_endpoint) {
$notifyBy[] = MicrosoftTeamsChannel::class;
}
@@ -49,12 +49,12 @@ class CheckoutConsumableNotification extends Notification
public function via()
{
$notifyBy = [];
if (Setting::getSettings()->webhook_selected == 'google'){
if (Setting::getSettings()->webhook_selected == 'google' && Setting::getSettings()->webhook_endpoint) {
$notifyBy[] = GoogleChatChannel::class;
}
if (Setting::getSettings()->webhook_selected == 'microsoft'){
if (Setting::getSettings()->webhook_selected == 'microsoft' && Setting::getSettings()->webhook_endpoint) {
$notifyBy[] = MicrosoftTeamsChannel::class;
}
+12 -13
View File
@@ -41,7 +41,7 @@ class Label implements View
$template = LabelModel::find($settings->label2_template);
// If disabled, pass to legacy view
if ((!$settings->label2_enable) && (!$template)) {
if ((!$settings->label2_enable)) {
return view('hardware/labels')
->with('assets', $assets)
->with('settings', $settings)
@@ -105,16 +105,15 @@ class Label implements View
}
}
if ($template->getSupport1DBarcode()) {
$barcode1DType = $settings->label2_1d_type;
$barcode1DType = ($barcode1DType == 'default') ?
(($settings->alt_barcode_enabled) ? $settings->alt_barcode : null) :
$barcode1DType;
if ($barcode1DType != 'none') {
$assetData->put('barcode1d', (object)[
'type' => $barcode1DType,
'content' => $asset->asset_tag,
]);
if ($settings->alt_barcode_enabled) {
if ($template->getSupport1DBarcode()) {
$barcode1DType = $settings->alt_barcode;
if ($barcode1DType != 'none') {
$assetData->put('barcode1d', (object)[
'type' => $barcode1DType,
'content' => $asset->asset_tag,
]);
}
}
}
@@ -127,7 +126,7 @@ class Label implements View
switch ($settings->label2_2d_target) {
case 'ht_tag': $barcode2DTarget = route('ht/assetTag', $asset->asset_tag); break;
case 'hardware_id':
default: $barcode2DTarget = route('hardware.show', $asset->id); break;
default: $barcode2DTarget = route('hardware.show', ['hardware' => $asset->id]); break;
}
$assetData->put('barcode2d', (object)[
'type' => $barcode2DType,
@@ -147,7 +146,7 @@ class Label implements View
return $toAdd ? $myFields->push($toAdd) : $myFields;
}, new Collection());
$assetData->put('fields', $fields->take($template->getSupportFields()));
return $assetData;
Generated
+6 -6
View File
@@ -7137,16 +7137,16 @@
},
{
"name": "phpseclib/phpseclib",
"version": "3.0.34",
"version": "3.0.37",
"source": {
"type": "git",
"url": "https://github.com/phpseclib/phpseclib.git",
"reference": "56c79f16a6ae17e42089c06a2144467acc35348a"
"reference": "cfa2013d0f68c062055180dd4328cc8b9d1f30b8"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/56c79f16a6ae17e42089c06a2144467acc35348a",
"reference": "56c79f16a6ae17e42089c06a2144467acc35348a",
"url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/cfa2013d0f68c062055180dd4328cc8b9d1f30b8",
"reference": "cfa2013d0f68c062055180dd4328cc8b9d1f30b8",
"shasum": ""
},
"require": {
@@ -7227,7 +7227,7 @@
],
"support": {
"issues": "https://github.com/phpseclib/phpseclib/issues",
"source": "https://github.com/phpseclib/phpseclib/tree/3.0.34"
"source": "https://github.com/phpseclib/phpseclib/tree/3.0.37"
},
"funding": [
{
@@ -7243,7 +7243,7 @@
"type": "tidelift"
}
],
"time": "2023-11-27T11:13:31+00:00"
"time": "2024-03-03T02:14:58+00:00"
},
{
"name": "phpspec/prophecy",
+5 -5
View File
@@ -1,10 +1,10 @@
<?php
return array (
'app_version' => 'v6.3.2',
'full_app_version' => 'v6.3.2 - build 12834-g9a5c1b812',
'build_version' => '12834',
'app_version' => 'v6.3.3',
'full_app_version' => 'v6.3.3 - build 12903-g0f63fa23e',
'build_version' => '12903',
'prerelease_version' => '',
'hash_version' => 'g9a5c1b812',
'full_hash' => 'v6.3.2-160-g9a5c1b812',
'hash_version' => 'g0f63fa23e',
'full_hash' => 'v6.3.3-67-g0f63fa23e',
'branch' => 'master',
);
+7
View File
@@ -17,16 +17,23 @@ else
fi
# create data directories
# Note: Keep in sync with expected directories by the app
# https://github.com/snipe/snipe-it/blob/master/app/Console/Commands/RestoreFromBackup.php#L232
for dir in \
'data/private_uploads' \
'data/private_uploads/assets' \
'data/private_uploads/accessories' \
'data/private_uploads/audits' \
'data/private_uploads/components' \
'data/private_uploads/consumables' \
'data/private_uploads/eula-pdfs' \
'data/private_uploads/imports' \
'data/private_uploads/assetmodels' \
'data/private_uploads/users' \
'data/private_uploads/licenses' \
'data/private_uploads/signatures' \
'data/uploads/accessories' \
'data/uploads/assets' \
'data/uploads/avatars' \
'data/uploads/barcodes' \
'data/uploads/categories' \
+59 -30
View File
@@ -1351,7 +1351,8 @@
"@jridgewell/set-array": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.1.tgz",
"integrity": "sha512-Ct5MqZkLGEXTVmQYbGtx9SVqD2fqwvdubdps5D3djjAkgkKwT918VNOz65pEHFaYTeWcukmJmH5SwsA9Tn2ObQ=="
"integrity": "sha512-Ct5MqZkLGEXTVmQYbGtx9SVqD2fqwvdubdps5D3djjAkgkKwT918VNOz65pEHFaYTeWcukmJmH5SwsA9Tn2ObQ==",
"dev": true
},
"@jridgewell/source-map": {
"version": "0.3.5",
@@ -1363,14 +1364,42 @@
},
"dependencies": {
"@jridgewell/gen-mapping": {
"version": "0.3.3",
"resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz",
"integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==",
"version": "0.3.5",
"resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz",
"integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==",
"requires": {
"@jridgewell/set-array": "^1.0.1",
"@jridgewell/set-array": "^1.2.1",
"@jridgewell/sourcemap-codec": "^1.4.10",
"@jridgewell/trace-mapping": "^0.3.9"
"@jridgewell/trace-mapping": "^0.3.24"
},
"dependencies": {
"@jridgewell/trace-mapping": {
"version": "0.3.25",
"resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz",
"integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
"requires": {
"@jridgewell/resolve-uri": "^3.1.0",
"@jridgewell/sourcemap-codec": "^1.4.14"
},
"dependencies": {
"@jridgewell/sourcemap-codec": {
"version": "1.4.15",
"resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
"integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg=="
}
}
}
}
},
"@jridgewell/resolve-uri": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
"integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw=="
},
"@jridgewell/set-array": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz",
"integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A=="
}
}
},
@@ -1565,9 +1594,9 @@
}
},
"@types/eslint": {
"version": "8.56.2",
"resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.2.tgz",
"integrity": "sha512-uQDwm1wFHmbBbCZCqAlq6Do9LYwByNZHWzXppSnay9SuwJ+VRbjkbLABer54kcPnMSlG6Fdiy2yaFXm/z9Z5gw==",
"version": "8.56.5",
"resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.5.tgz",
"integrity": "sha512-u5/YPJHo1tvkSF2CE0USEkxon82Z5DBy2xR+qfyYNszpX9qcs4sT6uq2kBbj4BXY1+DBGDPnrhMZV3pKWGNukw==",
"requires": {
"@types/estree": "*",
"@types/json-schema": "*"
@@ -4983,9 +5012,9 @@
}
},
"enhanced-resolve": {
"version": "5.15.0",
"resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz",
"integrity": "sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==",
"version": "5.15.1",
"resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.1.tgz",
"integrity": "sha512-3d3JRbwsCLJsYgvb6NuWEG44jjPSOMuS73L/6+7BZuoKm3W+qXnSoIYVHi8dG7Qcg4inAY4jbzkZ7MnskePeDg==",
"requires": {
"graceful-fs": "^4.2.4",
"tapable": "^2.2.0"
@@ -16345,9 +16374,9 @@
}
},
"jspdf-autotable": {
"version": "3.8.1",
"resolved": "https://registry.npmjs.org/jspdf-autotable/-/jspdf-autotable-3.8.1.tgz",
"integrity": "sha512-UjJqo80Z3/WUzDi4JipTGp0pAvNvR3Gsm38inJ5ZnwsJH0Lw4pEbssRSH6zMWAhR1ZkTrsDpQo5p6rZk987/AQ=="
"version": "3.8.2",
"resolved": "https://registry.npmjs.org/jspdf-autotable/-/jspdf-autotable-3.8.2.tgz",
"integrity": "sha512-zW1ix99/mtR4MbIni7IqvrpfHmuTaICl6iv6wqjRN86Nxtwaw/QtOeDbpXqYSzHIJK9JvgtLM283sc5x+ipkJg=="
},
"junk": {
"version": "3.1.0",
@@ -20101,9 +20130,9 @@
"dev": true
},
"webpack": {
"version": "5.90.1",
"resolved": "https://registry.npmjs.org/webpack/-/webpack-5.90.1.tgz",
"integrity": "sha512-SstPdlAC5IvgFnhiRok8hqJo/+ArAbNv7rhU4fnWGHNVfN59HSQFaxZDSAL3IFG2YmqxuRs+IU33milSxbPlog==",
"version": "5.90.3",
"resolved": "https://registry.npmjs.org/webpack/-/webpack-5.90.3.tgz",
"integrity": "sha512-h6uDYlWCctQRuXBs1oYpVe6sFcWedl0dpcVaTf/YF67J9bKvwJajFulMVSYKHrksMB3I/pIagRzDxwxkebuzKA==",
"requires": {
"@types/eslint-scope": "^3.7.3",
"@types/estree": "^1.0.5",
@@ -20142,9 +20171,9 @@
"integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg=="
},
"@jridgewell/trace-mapping": {
"version": "0.3.22",
"resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.22.tgz",
"integrity": "sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw==",
"version": "0.3.25",
"resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz",
"integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
"requires": {
"@jridgewell/resolve-uri": "^3.1.0",
"@jridgewell/sourcemap-codec": "^1.4.14"
@@ -20167,9 +20196,9 @@
}
},
"caniuse-lite": {
"version": "1.0.30001587",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001587.tgz",
"integrity": "sha512-HMFNotUmLXn71BQxg8cijvqxnIAofforZOwGsxyXJ0qugTdspUF4sPSJ2vhgprHCB996tIDzEq1ubumPDV8ULA=="
"version": "1.0.30001596",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001596.tgz",
"integrity": "sha512-zpkZ+kEr6We7w63ORkoJ2pOfBwBkY/bJrG/UZ90qNb45Isblu8wzDgevEOrRL1r9dWayHjYiiyCMEXPn4DweGQ=="
},
"commander": {
"version": "2.20.3",
@@ -20177,9 +20206,9 @@
"integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="
},
"electron-to-chromium": {
"version": "1.4.670",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.670.tgz",
"integrity": "sha512-hcijYOWjOtjKrKPtNA6tuLlA/bTLO3heFG8pQA6mLpq7dRydSWicXova5lyxDzp1iVJaYhK7J2OQlGE52KYn7A=="
"version": "1.4.698",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.698.tgz",
"integrity": "sha512-f9iZD1t3CLy1AS6vzM5EKGa6p9pRcOeEFXRFbaG2Ta+Oe7MkfRQ3fsvPYidzHe1h4i0JvIvpcY55C+B6BZNGtQ=="
},
"graceful-fs": {
"version": "4.2.11",
@@ -20210,9 +20239,9 @@
}
},
"terser": {
"version": "5.27.0",
"resolved": "https://registry.npmjs.org/terser/-/terser-5.27.0.tgz",
"integrity": "sha512-bi1HRwVRskAjheeYl291n3JC4GgO/Ty4z1nVs5AAsmonJulGxpSektecnNedrwK9C7vpvVtcX3cw00VSLt7U2A==",
"version": "5.29.1",
"resolved": "https://registry.npmjs.org/terser/-/terser-5.29.1.tgz",
"integrity": "sha512-lZQ/fyaIGxsbGxApKmoPTODIzELy3++mXhS5hOqaAWZjQtpq/hFHAc+rm29NND1rYRxRWKcjuARNwULNXa5RtQ==",
"requires": {
"@jridgewell/source-map": "^0.3.3",
"acorn": "^8.8.2",
+2 -2
View File
@@ -49,7 +49,7 @@
"jquery-slimscroll": "^1.3.8",
"jquery-ui": "^1.13.2",
"jquery.iframe-transport": "^1.0.0",
"jspdf-autotable": "^3.8.0",
"jspdf-autotable": "^3.8.2",
"less": "^4.2.0",
"less-loader": "^5.0",
"list.js": "^1.5.0",
@@ -59,6 +59,6 @@
"tableexport.jquery.plugin": "1.28.0",
"tether": "^1.4.0",
"vue-resource": "^1.5.2",
"webpack": "^5.90.0"
"webpack": "^5.90.2"
}
}
@@ -19,6 +19,7 @@ return [
'success' => 'Asset updated successfully.',
'nothing_updated' => 'No fields were selected, so nothing was updated.',
'no_assets_selected' => 'No assets were selected, so nothing was updated.',
'assets_do_not_exist_or_are_invalid' => 'Selected assets cannot be updated.',
],
'restore' => [
+1
View File
@@ -201,6 +201,7 @@ return [
'new_password' => 'New Password',
'next' => 'Next',
'next_audit_date' => 'Next Audit Date',
'no_email' => 'No email address associated with this user',
'last_audit' => 'Last Audit',
'new' => 'new!',
'no_depreciation' => 'No Depreciation',
+2 -6
View File
@@ -255,7 +255,6 @@
{{ Form::hidden('labels_display_model', old('labels_display_model', $setting->labels_display_model)) }}
{{ Form::hidden('labels_display_company_name', old('labels_display_company_name', $setting->labels_display_company_name)) }}
@else
<!-- Legacy settings -->
<div class="form-group{{ $errors->has('labels_per_page') ? ' has-error' : '' }}">
<div class="col-md-3 text-right">
@@ -378,7 +377,8 @@
{!! $errors->first('labels_pageheight', '<span class="alert-msg" aria-hidden="true">:message</span>') !!}
</div>
</div>
@endif
@if(!$setting->label2_enable)
<div class="form-group">
<div class="col-md-3 text-right">
{{ Form::label('labels_display', trans('admin/settings/general.label_fields'), ['class' => 'control-label']) }}
@@ -404,13 +404,9 @@
{{ Form::checkbox('labels_display_company_name', '1', old('labels_display_company_name', $setting->labels_display_company_name),['class' => 'minimal', 'aria-label'=>'labels_display_company_name']) }}
{{ trans('admin/companies/table.name') }}
</label>
</div> <!--/.col-md-9-->
</div> <!--/.form-group-->
@endif
</div>
</div> <!--/.box-body-->