mirror of
https://github.com/snipe/snipe-it.git
synced 2024-12-30 07:59:50 -08:00
Merge pull request #12958 from uberbrady/snipeit_v7_merge_develop_05_01_2022
Snipeit v7 merge develop 05 01 2022
This commit is contained in:
commit
31f1bce16b
|
@ -175,6 +175,15 @@ REQUIRE_SAML=false
|
||||||
API_THROTTLE_PER_MINUTE=120
|
API_THROTTLE_PER_MINUTE=120
|
||||||
CSV_ESCAPE_FORMULAS=true
|
CSV_ESCAPE_FORMULAS=true
|
||||||
|
|
||||||
|
# --------------------------------------------
|
||||||
|
# OPTIONAL: HASHING
|
||||||
|
# --------------------------------------------
|
||||||
|
HASHING_DRIVER='bcrypt'
|
||||||
|
BCRYPT_ROUNDS=10
|
||||||
|
ARGON_MEMORY=1024
|
||||||
|
ARGON_THREADS=2
|
||||||
|
ARGON_TIME=2
|
||||||
|
|
||||||
# --------------------------------------------
|
# --------------------------------------------
|
||||||
# OPTIONAL: SCIM
|
# OPTIONAL: SCIM
|
||||||
# --------------------------------------------
|
# --------------------------------------------
|
||||||
|
|
|
@ -38,6 +38,9 @@ class CategoriesTransformer
|
||||||
case 'component':
|
case 'component':
|
||||||
$category->item_count = $category->components_count;
|
$category->item_count = $category->components_count;
|
||||||
break;
|
break;
|
||||||
|
case 'license':
|
||||||
|
$category->item_count = $category->licenses_count;
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
$category->item_count = 0;
|
$category->item_count = 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,7 +25,7 @@ class Manufacturer extends SnipeModel
|
||||||
'url' => 'url|nullable',
|
'url' => 'url|nullable',
|
||||||
'support_email' => 'email|nullable',
|
'support_email' => 'email|nullable',
|
||||||
'support_url' => 'nullable|url',
|
'support_url' => 'nullable|url',
|
||||||
'warranty_lookup_url' => 'starts_with:http://,https://,afp://,facetime://,file://,irc://','nullable'
|
'warranty_lookup_url' => 'nullable|starts_with:http://,https://,afp://,facetime://,file://,irc://'
|
||||||
];
|
];
|
||||||
|
|
||||||
protected $hidden = ['user_id'];
|
protected $hidden = ['user_id'];
|
||||||
|
|
|
@ -151,6 +151,21 @@ class LicensePresenter extends Presenter
|
||||||
'visible' => false,
|
'visible' => false,
|
||||||
'title' => trans('general.order_number'),
|
'title' => trans('general.order_number'),
|
||||||
], [
|
], [
|
||||||
|
'field' => 'created_at',
|
||||||
|
'searchable' => false,
|
||||||
|
'sortable' => true,
|
||||||
|
'visible' => false,
|
||||||
|
'title' => trans('general.created_at'),
|
||||||
|
'formatter' => 'dateDisplayFormatter',
|
||||||
|
], [
|
||||||
|
'field' => 'updated_at',
|
||||||
|
'searchable' => false,
|
||||||
|
'sortable' => true,
|
||||||
|
'visible' => false,
|
||||||
|
'title' => trans('general.updated_at'),
|
||||||
|
'formatter' => 'dateDisplayFormatter',
|
||||||
|
],
|
||||||
|
[
|
||||||
'field' => 'notes',
|
'field' => 'notes',
|
||||||
'searchable' => true,
|
'searchable' => true,
|
||||||
'sortable' => true,
|
'sortable' => true,
|
||||||
|
|
|
@ -15,7 +15,7 @@ return [
|
||||||
|
|
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
'driver' => 'bcrypt',
|
'driver' => env('HASHING_DRIVER', 'bcrypt'),
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|--------------------------------------------------------------------------
|
|--------------------------------------------------------------------------
|
||||||
|
@ -44,9 +44,9 @@ return [
|
||||||
*/
|
*/
|
||||||
|
|
||||||
'argon' => [
|
'argon' => [
|
||||||
'memory' => 1024,
|
'memory' => env('ARGON_MEMORY', 1024),
|
||||||
'threads' => 2,
|
'threads' => env('ARGON_THREADS', 2),
|
||||||
'time' => 2,
|
'time' => env('ARGON_TIME', 2),
|
||||||
],
|
],
|
||||||
|
|
||||||
];
|
];
|
||||||
|
|
|
@ -514,7 +514,7 @@
|
||||||
|
|
||||||
if (value) {
|
if (value) {
|
||||||
if ((value.indexOf("{") === -1) || (value.indexOf("}") ===-1)) {
|
if ((value.indexOf("{") === -1) || (value.indexOf("}") ===-1)) {
|
||||||
return '<i class="fa fa-external-link"></i> <a href="' + value + '" target="_blank">' + value + '</a>';
|
return '<nobr><a href="' + value + '" target="_blank" title="External link to ' + value + '" data-tooltip="true" ><i class="fa fa-external-link"></i> ' + value + '</a></nobr>';
|
||||||
}
|
}
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,12 +2,16 @@
|
||||||
|
|
||||||
namespace Tests\Support;
|
namespace Tests\Support;
|
||||||
|
|
||||||
|
use App\Models\Setting;
|
||||||
|
|
||||||
trait InteractsWithSettings
|
trait InteractsWithSettings
|
||||||
{
|
{
|
||||||
protected Settings $settings;
|
protected Settings $settings;
|
||||||
|
|
||||||
public function setUpSettings()
|
public function initializeSettings()
|
||||||
{
|
{
|
||||||
$this->settings = Settings::initialize();
|
$this->settings = Settings::initialize();
|
||||||
|
|
||||||
|
$this->beforeApplicationDestroyed(fn() => Setting::$_cache = null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,7 +23,7 @@ abstract class TestCase extends BaseTestCase
|
||||||
$this->withoutMiddleware($this->globallyDisabledMiddleware);
|
$this->withoutMiddleware($this->globallyDisabledMiddleware);
|
||||||
|
|
||||||
if (collect(class_uses_recursive($this))->contains(InteractsWithSettings::class)) {
|
if (collect(class_uses_recursive($this))->contains(InteractsWithSettings::class)) {
|
||||||
$this->setUpSettings();
|
$this->initializeSettings();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,10 +3,13 @@ namespace Tests\Unit;
|
||||||
|
|
||||||
use App\Models\AssetMaintenance;
|
use App\Models\AssetMaintenance;
|
||||||
use Carbon\Carbon;
|
use Carbon\Carbon;
|
||||||
|
use Tests\Support\InteractsWithSettings;
|
||||||
use Tests\TestCase;
|
use Tests\TestCase;
|
||||||
|
|
||||||
class AssetMaintenanceTest extends TestCase
|
class AssetMaintenanceTest extends TestCase
|
||||||
{
|
{
|
||||||
|
use InteractsWithSettings;
|
||||||
|
|
||||||
public function testZerosOutWarrantyIfBlank()
|
public function testZerosOutWarrantyIfBlank()
|
||||||
{
|
{
|
||||||
$c = new AssetMaintenance;
|
$c = new AssetMaintenance;
|
||||||
|
|
|
@ -4,10 +4,13 @@ namespace Tests\Unit;
|
||||||
use App\Models\Asset;
|
use App\Models\Asset;
|
||||||
use App\Models\Category;
|
use App\Models\Category;
|
||||||
use App\Models\AssetModel;
|
use App\Models\AssetModel;
|
||||||
|
use Tests\Support\InteractsWithSettings;
|
||||||
use Tests\TestCase;
|
use Tests\TestCase;
|
||||||
|
|
||||||
class AssetModelTest extends TestCase
|
class AssetModelTest extends TestCase
|
||||||
{
|
{
|
||||||
|
use InteractsWithSettings;
|
||||||
|
|
||||||
public function testAnAssetModelZerosOutBlankEols()
|
public function testAnAssetModelZerosOutBlankEols()
|
||||||
{
|
{
|
||||||
$am = new AssetModel;
|
$am = new AssetModel;
|
||||||
|
|
|
@ -5,10 +5,13 @@ use App\Models\Asset;
|
||||||
use App\Models\AssetModel;
|
use App\Models\AssetModel;
|
||||||
use App\Models\Category;
|
use App\Models\Category;
|
||||||
use Carbon\Carbon;
|
use Carbon\Carbon;
|
||||||
|
use Tests\Support\InteractsWithSettings;
|
||||||
use Tests\TestCase;
|
use Tests\TestCase;
|
||||||
|
|
||||||
class AssetTest extends TestCase
|
class AssetTest extends TestCase
|
||||||
{
|
{
|
||||||
|
use InteractsWithSettings;
|
||||||
|
|
||||||
// public function testAutoIncrementMixed()
|
// public function testAutoIncrementMixed()
|
||||||
// {
|
// {
|
||||||
// $expected = '123411';
|
// $expected = '123411';
|
||||||
|
|
|
@ -4,10 +4,13 @@ namespace Tests\Unit;
|
||||||
use App\Models\Category;
|
use App\Models\Category;
|
||||||
use App\Models\AssetModel;
|
use App\Models\AssetModel;
|
||||||
use App\Models\Asset;
|
use App\Models\Asset;
|
||||||
|
use Tests\Support\InteractsWithSettings;
|
||||||
use Tests\TestCase;
|
use Tests\TestCase;
|
||||||
|
|
||||||
class CategoryTest extends TestCase
|
class CategoryTest extends TestCase
|
||||||
{
|
{
|
||||||
|
use InteractsWithSettings;
|
||||||
|
|
||||||
public function testFailsEmptyValidation()
|
public function testFailsEmptyValidation()
|
||||||
{
|
{
|
||||||
// An Asset requires a name, a qty, and a category_id.
|
// An Asset requires a name, a qty, and a category_id.
|
||||||
|
|
|
@ -5,10 +5,13 @@ use App\Models\Category;
|
||||||
use App\Models\Company;
|
use App\Models\Company;
|
||||||
use App\Models\Component;
|
use App\Models\Component;
|
||||||
use App\Models\Location;
|
use App\Models\Location;
|
||||||
|
use Tests\Support\InteractsWithSettings;
|
||||||
use Tests\TestCase;
|
use Tests\TestCase;
|
||||||
|
|
||||||
class ComponentTest extends TestCase
|
class ComponentTest extends TestCase
|
||||||
{
|
{
|
||||||
|
use InteractsWithSettings;
|
||||||
|
|
||||||
public function testAComponentBelongsToACompany()
|
public function testAComponentBelongsToACompany()
|
||||||
{
|
{
|
||||||
$component = Component::factory()
|
$component = Component::factory()
|
||||||
|
|
|
@ -5,10 +5,13 @@ use App\Models\Depreciation;
|
||||||
use App\Models\Category;
|
use App\Models\Category;
|
||||||
use App\Models\License;
|
use App\Models\License;
|
||||||
use App\Models\AssetModel;
|
use App\Models\AssetModel;
|
||||||
|
use Tests\Support\InteractsWithSettings;
|
||||||
use Tests\TestCase;
|
use Tests\TestCase;
|
||||||
|
|
||||||
class DepreciationTest extends TestCase
|
class DepreciationTest extends TestCase
|
||||||
{
|
{
|
||||||
|
use InteractsWithSettings;
|
||||||
|
|
||||||
public function testADepreciationHasModels()
|
public function testADepreciationHasModels()
|
||||||
{
|
{
|
||||||
$depreciation = Depreciation::factory()->create();
|
$depreciation = Depreciation::factory()->create();
|
||||||
|
|
|
@ -8,10 +8,13 @@ use App\Models\Category;
|
||||||
use Carbon\Carbon;
|
use Carbon\Carbon;
|
||||||
use App\Notifications\CheckoutAssetNotification;
|
use App\Notifications\CheckoutAssetNotification;
|
||||||
use Illuminate\Support\Facades\Notification;
|
use Illuminate\Support\Facades\Notification;
|
||||||
|
use Tests\Support\InteractsWithSettings;
|
||||||
use Tests\TestCase;
|
use Tests\TestCase;
|
||||||
|
|
||||||
class NotificationTest extends TestCase
|
class NotificationTest extends TestCase
|
||||||
{
|
{
|
||||||
|
use InteractsWithSettings;
|
||||||
|
|
||||||
public function testAUserIsEmailedIfTheyCheckoutAnAssetWithEULA()
|
public function testAUserIsEmailedIfTheyCheckoutAnAssetWithEULA()
|
||||||
{
|
{
|
||||||
$admin = User::factory()->superuser()->create();
|
$admin = User::factory()->superuser()->create();
|
||||||
|
|
|
@ -2,10 +2,13 @@
|
||||||
namespace Tests\Unit;
|
namespace Tests\Unit;
|
||||||
|
|
||||||
use App\Models\SnipeModel;
|
use App\Models\SnipeModel;
|
||||||
|
use Tests\Support\InteractsWithSettings;
|
||||||
use Tests\TestCase;
|
use Tests\TestCase;
|
||||||
|
|
||||||
class SnipeModelTest extends TestCase
|
class SnipeModelTest extends TestCase
|
||||||
{
|
{
|
||||||
|
use InteractsWithSettings;
|
||||||
|
|
||||||
public function testSetsPurchaseDatesAppropriately()
|
public function testSetsPurchaseDatesAppropriately()
|
||||||
{
|
{
|
||||||
$c = new SnipeModel;
|
$c = new SnipeModel;
|
||||||
|
|
Loading…
Reference in a new issue