mirror of
https://github.com/snipe/snipe-it.git
synced 2024-12-30 07:59:50 -08:00
141 lines
3.7 KiB
PHP
141 lines
3.7 KiB
PHP
<?php
|
|
|
|
namespace Tests\Support;
|
|
|
|
use App\Models\Setting;
|
|
use Illuminate\Support\Facades\Crypt;
|
|
|
|
class Settings
|
|
{
|
|
private Setting $setting;
|
|
|
|
private function __construct()
|
|
{
|
|
$this->setting = Setting::factory()->create();
|
|
}
|
|
|
|
public static function initialize(): Settings
|
|
{
|
|
return new self();
|
|
}
|
|
|
|
public function enableAlertEmail(string $email = 'notifications@afcrichmond.com'): Settings
|
|
{
|
|
return $this->update(['alert_email' => $email]);
|
|
}
|
|
|
|
public function disableAlertEmail(): Settings
|
|
{
|
|
return $this->update(['alert_email' => null]);
|
|
}
|
|
|
|
public function enableMultipleFullCompanySupport(): Settings
|
|
{
|
|
return $this->update(['full_multiple_companies_support' => 1]);
|
|
}
|
|
|
|
public function disableMultipleFullCompanySupport(): Settings
|
|
{
|
|
return $this->update(['full_multiple_companies_support' => 0]);
|
|
}
|
|
|
|
public function enableSlackWebhook(): Settings
|
|
{
|
|
return $this->update([
|
|
'webhook_selected' => 'slack',
|
|
'webhook_botname' => 'SnipeBot5000',
|
|
'webhook_endpoint' => 'https://hooks.slack.com/services/NZ59/Q446/672N',
|
|
'webhook_channel' => '#it',
|
|
]);
|
|
}
|
|
|
|
public function disableWebhook(): Settings
|
|
{
|
|
return $this->update([
|
|
'webhook_selected' => '',
|
|
'webhook_botname' => '',
|
|
'webhook_endpoint' => '',
|
|
'webhook_channel' => '',
|
|
]);
|
|
}
|
|
|
|
public function enableAutoIncrement(): Settings
|
|
{
|
|
return $this->update([
|
|
'auto_increment_assets' => 1,
|
|
'auto_increment_prefix' => 'ABCD',
|
|
'next_auto_tag_base' => 123,
|
|
'zerofill_count' => 5
|
|
]);
|
|
}
|
|
|
|
public function disableAutoIncrement(): Settings
|
|
{
|
|
return $this->update([
|
|
'auto_increment_assets' => 0,
|
|
'auto_increment_prefix' => 0,
|
|
'next_auto_tag_base' => 0,
|
|
'zerofill_count' => 0
|
|
]);
|
|
}
|
|
|
|
public function enableUniqueSerialNumbers(): Settings
|
|
{
|
|
return $this->update(['unique_serial' => 1]);
|
|
}
|
|
|
|
public function disableUniqueSerialNumbers(): Settings
|
|
{
|
|
return $this->update(['unique_serial' => 0]);
|
|
}
|
|
|
|
public function enableLdap(): Settings
|
|
{
|
|
return $this->update([
|
|
'ldap_enabled' => 1,
|
|
'ldap_server' => 'ldaps://ldap.example.com',
|
|
'ldap_uname' => 'fake_username',
|
|
'ldap_pword' => Crypt::encrypt("fake_password"),
|
|
'ldap_basedn' => 'CN=Users,DC=ad,DC=example,Dc=com'
|
|
]);
|
|
}
|
|
|
|
public function enableAnonymousLdap(): Settings
|
|
{
|
|
return $this->update([
|
|
'ldap_enabled' => 1,
|
|
'ldap_server' => 'ldaps://ldap.example.com',
|
|
// 'ldap_uname' => 'fake_username',
|
|
'ldap_pword' => Crypt::encrypt("fake_password"),
|
|
'ldap_basedn' => 'CN=Users,DC=ad,DC=example,Dc=com'
|
|
]);
|
|
}
|
|
|
|
public function enableBadPasswordLdap(): Settings
|
|
{
|
|
return $this->update([
|
|
'ldap_enabled' => 1,
|
|
'ldap_server' => 'ldaps://ldap.example.com',
|
|
'ldap_uname' => 'fake_username',
|
|
'ldap_pword' => "badly_encrypted_password!",
|
|
'ldap_basedn' => 'CN=Users,DC=ad,DC=example,Dc=com'
|
|
]);
|
|
}
|
|
|
|
/**
|
|
* @param array $attributes Attributes to modify in the application's settings.
|
|
*/
|
|
public function set(array $attributes): Settings
|
|
{
|
|
return $this->update($attributes);
|
|
}
|
|
|
|
private function update(array $attributes): Settings
|
|
{
|
|
Setting::unguarded(fn() => $this->setting->update($attributes));
|
|
Setting::$_cache = null;
|
|
|
|
return $this;
|
|
}
|
|
}
|