Skip to content
Closed
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,8 @@ public function destroy($accessoryId = null, $fileId = null) : RedirectResponse
if (Storage::exists('private_uploads/accessories/'.$log->filename)) {
try {
Storage::delete('private_uploads/accessories/' . $log->filename);
$log->delete();
$accessory->logUploadDelete($log->filename);

return redirect()->back()->withFragment('files')->with('success', trans('admin/hardware/message.deletefile.success'));
} catch (\Exception $e) {
Log::debug($e);
Expand Down
3 changes: 2 additions & 1 deletion app/Http/Controllers/Assets/AssetFilesController.php
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,8 @@ public function destroy(Asset $asset, $fileId = null) : RedirectResponse
if (Storage::exists($rel_path.'/'.$log->filename)) {
Storage::delete($rel_path.'/'.$log->filename);
}
$log->delete();
$asset->logUploadDelete($log->filename);

return redirect()->back()->withFragment('files')->with('success', trans('admin/hardware/message.deletefile.success'));
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ public function destroy($componentId = null, $fileId = null)
Log::debug($e);
}
}

$component->logUploadDelete($log->filename);
$log->delete();

return redirect()->back()->withFragment('files')
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -86,8 +86,7 @@ public function destroy($consumableId = null, $fileId = null)
Log::debug($e);
}
}

$log->delete();
$consumable->logUploadDelete($log->filename);

return redirect()->back()->withFragment('files')
->with('success', trans('admin/hardware/message.deletefile.success'));
Expand Down
3 changes: 1 addition & 2 deletions app/Http/Controllers/Licenses/LicenseFilesController.php
Original file line number Diff line number Diff line change
Expand Up @@ -80,8 +80,7 @@ public function destroy($licenseId = null, $fileId = null)
Log::debug($e);
}
}

$log->delete();
$license->logUploadDelete($log->filename);

return redirect()->back()
->with('success', trans('admin/hardware/message.deletefile.success'));
Expand Down
2 changes: 1 addition & 1 deletion app/Http/Transformers/ActionlogsTransformer.php
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ public function transformActionlog (Actionlog $actionlog, $settings = null)
}

if ($actionlog->filename!='') {
$icon = Helper::filetype_icon($actionlog->filename);
$icon = $actionlog->action_type === 'upload deleted' ? 'fas fa-trash' : Helper::filetype_icon($actionlog->filename);
}

// This is necessary since we can't escape special characters within a JSON object
Expand Down
9 changes: 8 additions & 1 deletion app/Models/Accessory.php
Original file line number Diff line number Diff line change
Expand Up @@ -112,10 +112,17 @@ class Accessory extends SnipeModel
*/
public function uploads()
{
return $this->hasMany(\App\Models\Actionlog::class, 'item_id')
return $this->hasMany(Actionlog::class, 'item_id')
->where('item_type', '=', self::class)
->where('action_type', '=', 'uploaded')
->whereNotNull('filename')
->whereNotIn('filename', function ($query) {
$query->select('filename')
->from('action_logs')
->where('item_type', '=', self::class)
->where('action_type', '=', 'upload deleted')
->where('item_id', $this->id);
})
->orderBy('created_at', 'desc');
}

Expand Down
17 changes: 12 additions & 5 deletions app/Models/Asset.php
Original file line number Diff line number Diff line change
Expand Up @@ -480,11 +480,18 @@ public function get_depreciation()
*/
public function uploads()
{
return $this->hasMany('\App\Models\Actionlog', 'item_id')
->where('item_type', '=', Asset::class)
->where('action_type', '=', 'uploaded')
->whereNotNull('filename')
->orderBy('created_at', 'desc');
return $this->hasMany(Actionlog::class, 'item_id')
->where('item_type', '=', self::class)
->where('action_type', '=', 'uploaded')
->whereNotNull('filename')
->whereNotIn('filename', function ($query) {
$query->select('filename')
->from('action_logs')
->where('item_type', '=', self::class)
->where('action_type', '=', 'upload deleted')
->where('item_id', $this->id);
})
->orderBy('created_at', 'desc');
}

/**
Expand Down
11 changes: 9 additions & 2 deletions app/Models/Component.php
Original file line number Diff line number Diff line change
Expand Up @@ -122,10 +122,17 @@ public function isDeletable()
*/
public function uploads()
{
return $this->hasMany(\App\Models\Actionlog::class, 'item_id')
return $this->hasMany(Actionlog::class, 'item_id')
->where('item_type', '=', self::class)
->where('action_type', '=', 'uploaded')
->whereNotNull('filename')
->whereNotIn('filename', function ($query) {
$query->select('filename')
->from('action_logs')
->where('item_type', '=', self::class)
->where('action_type', '=', 'upload deleted')
->where('item_id', $this->id);
})
->orderBy('created_at', 'desc');
}

Expand Down Expand Up @@ -226,7 +233,7 @@ public function manufacturer()
*/
public function assetlog()
{
return $this->hasMany(\App\Models\Actionlog::class, 'item_id')->where('item_type', self::class)->orderBy('created_at', 'desc')->withTrashed();
return $this->hasMany(Actionlog::class, 'item_id')->where('item_type', self::class)->orderBy('created_at', 'desc')->withTrashed();
}

/**
Expand Down
7 changes: 7 additions & 0 deletions app/Models/Consumable.php
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,13 @@ public function uploads()
->where('item_type', '=', self::class)
->where('action_type', '=', 'uploaded')
->whereNotNull('filename')
->whereNotIn('filename', function ($query) {
$query->select('filename')
->from('action_logs')
->where('item_type', '=', self::class)
->where('action_type', '=', 'upload deleted')
->where('item_id', $this->id);
})
->orderBy('created_at', 'desc');
}

Expand Down
9 changes: 8 additions & 1 deletion app/Models/License.php
Original file line number Diff line number Diff line change
Expand Up @@ -416,10 +416,17 @@ public function assetlog()
*/
public function uploads()
{
return $this->hasMany(\App\Models\Actionlog::class, 'item_id')
return $this->hasMany(Actionlog::class, 'item_id')
->where('item_type', '=', self::class)
->where('action_type', '=', 'uploaded')
->whereNotNull('filename')
->whereNotIn('filename', function ($query) {
$query->select('filename')
->from('action_logs')
->where('item_type', '=', self::class)
->where('action_type', '=', 'upload deleted')
->where('item_id', $this->id);
})
->orderBy('created_at', 'desc');
}

Expand Down
23 changes: 23 additions & 0 deletions app/Models/Loggable.php
Original file line number Diff line number Diff line change
Expand Up @@ -345,6 +345,29 @@ public function logUpload($filename, $note)

return $log;
}
/**
* @author Godfrey Martinez
* @since [v8.0.4]
* @return \App\Models\Actionlog
*/
public function logUploadDelete($filename)
{
$log = new Actionlog;
if (static::class == LicenseSeat::class) {
$log->item_type = License::class;
$log->item_id = $this->license_id;
} else {
$log->item_type = static::class;
$log->item_id = $this->id;
}
$log->created_by = auth()->id();
$log->target_id = null;
$log->filename = $filename;
$log->created_at = date('Y-m-d H:i:s');
$log->logaction('upload deleted');

return $log;
}

/**
* Get latest signature from a specific user
Expand Down
1 change: 1 addition & 0 deletions resources/lang/en-US/general.php
Original file line number Diff line number Diff line change
Expand Up @@ -308,6 +308,7 @@
'updating_item' => 'Updating :item',
'upload_filetypes_help' => 'Allowed filetypes are png, gif, jpg, jpeg, doc, docx, pdf, xls, xlsx, txt, lic, xml, zip, rtf and rar. Max upload size allowed is :size.',
'uploaded' => 'Uploaded',
'upload_deleted' => 'Upload Deleted',
'user' => 'User',
'accepted' => 'accepted',
'declined' => 'declined',
Expand Down
Loading