Files
2FAuth/config/2fauth.php
2025-06-16 17:58:34 +02:00

175 lines
7.0 KiB
PHP

<?php
use App\Helpers\Helpers;
use Illuminate\Support\Arr;
$preferences = [
'showOtpAsDot' => envUnlessEmpty('USERPREF_DEFAULT__SHOW_OTP_AS_DOT', false),
'showNextOtp' => envUnlessEmpty('USERPREF_DEFAULT__SHOW_NEXT_OTP', true),
'revealDottedOTP' => envUnlessEmpty('USERPREF_DEFAULT__REVEAL_DOTTED_OTP', false),
'closeOtpOnCopy' => envUnlessEmpty('USERPREF_DEFAULT__CLOSE_OTP_ON_COPY', false),
'copyOtpOnDisplay' => envUnlessEmpty('USERPREF_DEFAULT__COPY_OTP_ON_DISPLAY', false),
'clearSearchOnCopy' => envUnlessEmpty('USERPREF_DEFAULT__CLEAR_SEARCH_ON_COPY', false),
'useBasicQrcodeReader' => envUnlessEmpty('USERPREF_DEFAULT__USE_BASIC_QRCODE_READER', false),
'displayMode' => envUnlessEmpty('USERPREF_DEFAULT__DISPLAY_MODE', 'list'),
'showAccountsIcons' => envUnlessEmpty('USERPREF_DEFAULT__SHOW_ACCOUNTS_ICONS', true),
'iconCollection' => envUnlessEmpty('USERPREF_DEFAULT__ICON_COLLECTION', 'selfh'),
'iconVariant' => envUnlessEmpty('USERPREF_DEFAULT__ICON_VARIANT', 'regular'),
'iconVariantStrictFetch' => envUnlessEmpty('USERPREF_DEFAULT__ICON_VARIANT_STRICT_FETCH', false),
'kickUserAfter' => envUnlessEmpty('USERPREF_DEFAULT__KICK_USER_AFTER', 15),
'activeGroup' => 0,
'rememberActiveGroup' => envUnlessEmpty('USERPREF_DEFAULT__REMEMBER_ACTIVE_GROUP', true),
'viewDefaultGroupOnCopy' => envUnlessEmpty('USERPREF_DEFAULT__VIEW_DEFAULT_GROUP_ON_COPY', false),
'defaultGroup' => 0,
'defaultCaptureMode' => envUnlessEmpty('USERPREF_DEFAULT__DEFAULT_CAPTURE_MODE', 'livescan'),
'useDirectCapture' => envUnlessEmpty('USERPREF_DEFAULT__USE_DIRECT_CAPTURE', false),
'useWebauthnOnly' => envUnlessEmpty('USERPREF_DEFAULT__USE_WEBAUTHN_ONLY', false),
'getOfficialIcons' => envUnlessEmpty('USERPREF_DEFAULT__GET_OFFICIAL_ICONS', true),
'theme' => envUnlessEmpty('USERPREF_DEFAULT__THEME', 'system'),
'formatPassword' => envUnlessEmpty('USERPREF_DEFAULT__FORMAT_PASSWORD', true),
'formatPasswordBy' => envUnlessEmpty('USERPREF_DEFAULT__FORMAT_PASSWORD_BY', 0.5),
'lang' => envUnlessEmpty('USERPREF_DEFAULT__LANG', 'browser'),
'getOtpOnRequest' => envUnlessEmpty('USERPREF_DEFAULT__GET_OTP_ON_REQUEST', true),
'notifyOnNewAuthDevice' => envUnlessEmpty('USERPREF_DEFAULT__NOTIFY_ON_NEW_AUTH_DEVICE', false),
'notifyOnFailedLogin' => envUnlessEmpty('USERPREF_DEFAULT__NOTIFY_ON_FAILED_LOGIN', false),
'timezone' => envUnlessEmpty('USERPREF_DEFAULT__TIMEZONE', 'UTC'),
'sortCaseSensitive' => envUnlessEmpty('USERPREF_DEFAULT__SORT_CASE_SENSITIVE', false),
'autoCloseTimeout' => envUnlessEmpty('USERPREF_DEFAULT__AUTO_CLOSE_TIMEOUT', 2),
'AutoSaveQrcodedAccount' => envUnlessEmpty('USERPREF_DEFAULT__AUTO_SAVE_QRCODED_ACCOUNT', false),
'showEmailInFooter' => envUnlessEmpty('USERPREF_DEFAULT__SHOW_EMAIL_IN_FOOTER', true),
];
$nonLockablePreferences = [
'activeGroup',
'defaultGroup',
'useWebauthnOnly',
];
return [
/*
|--------------------------------------------------------------------------
| Application infos
|--------------------------------------------------------------------------
|
*/
'version' => '5.6.0',
'repository' => 'https://github.com/Bubka/2FAuth',
'latestReleaseUrl' => 'https://api.github.com/repos/Bubka/2FAuth/releases/latest',
'installDocUrl' => 'https://docs.2fauth.app/getting-started/installation/self-hosted-server/',
'ssoDocUrl' => 'https://docs.2fauth.app/security/authentication/sso/',
'exportSchemaUrl' => 'https://docs.2fauth.app/usage/migration/#export-schema',
/*
|--------------------------------------------------------------------------
| 2FAuth config
|--------------------------------------------------------------------------
|
*/
'config' => [
'isDemoApp' => env('IS_DEMO_APP', false),
'isTestingApp' => env('IS_TESTING_APP', false),
'trustedProxies' => env('TRUSTED_PROXIES', null),
'outgoingProxy' => env('PROXY_FOR_OUTGOING_REQUESTS', ''),
'proxyLogoutUrl' => env('PROXY_LOGOUT_URL', null),
'appSubdirectory' => env('APP_SUBDIRECTORY', ''),
'authLogRetentionTime' => envUnlessEmpty('AUTHENTICATION_LOG_RETENTION', 365),
'contentSecurityPolicy' => envUnlessEmpty('CONTENT_SECURITY_POLICY', true),
],
/*
|--------------------------------------------------------------------------
| Proxy headers
|--------------------------------------------------------------------------
|
*/
'proxy_headers' => [
'forIp' => env('PROXY_HEADER_FOR_IP', null),
],
/*
|--------------------------------------------------------------------------
| 2FAuth API config
|--------------------------------------------------------------------------
|
*/
'api' => [
'throttle' => env('THROTTLE_API', 60),
],
/*
|--------------------------------------------------------------------------
| 2FAuth available translations
|--------------------------------------------------------------------------
|
*/
'locales' => [
'bg',
'zh-CN',
'da',
'nl',
'en',
'fr',
'de',
'hi',
'it',
'ja',
'ko',
'pt-BR',
'ru',
'es-ES',
'tr',
],
/*
|--------------------------------------------------------------------------
| Default values for app (global) settings
| These settings can be overloaded and persisted using the SettingService
|--------------------------------------------------------------------------
|
*/
'settings' => [
'useEncryption' => false,
'checkForUpdate' => true,
'lastRadarScan' => 0,
'latestRelease' => false,
'disableRegistration' => false,
'enableSso' => true,
'useSsoOnly' => false,
'allowPatWhileSsoOnly' => false,
'restrictRegistration' => false,
'restrictList' => '',
'restrictRule' => '',
'keepSsoRegistrationEnabled' => false,
'storeIconsInDatabase' => false,
],
/*
|--------------------------------------------------------------------------
| Default values for user preferences
| These settings can be overloaded and persisted by each user
|--------------------------------------------------------------------------
|
*/
'preferences' => $preferences,
/*
|--------------------------------------------------------------------------
| List of user preferences locked against user customization
| These settings cannot be overloaded and persisted by each user
|--------------------------------------------------------------------------
|
*/
'lockedPreferences' => Helpers::lockedPreferences(Arr::except($preferences, $nonLockablePreferences)),
];