(array $config)
| 138 | } |
| 139 | |
| 140 | public static function buildPublicSubset(array $config): array |
| 141 | { |
| 142 | $isProActive = (defined('FR_PRO_ACTIVE') && FR_PRO_ACTIVE === true); |
| 143 | $proVersion = $config['pro']['version'] ?? ($config['proVersion'] ?? null); |
| 144 | if (!$proVersion && defined('FR_PRO_BUNDLE_VERSION')) { |
| 145 | $proVersion = FR_PRO_BUNDLE_VERSION; |
| 146 | } |
| 147 | $public = [ |
| 148 | 'header_title' => $config['header_title'] ?? 'FileRise', |
| 149 | 'loginOptions' => [ |
| 150 | 'disableFormLogin' => (bool)($config['loginOptions']['disableFormLogin'] ?? false), |
| 151 | 'disableBasicAuth' => (bool)($config['loginOptions']['disableBasicAuth'] ?? false), |
| 152 | 'disableOIDCLogin' => (bool)($config['loginOptions']['disableOIDCLogin'] ?? false), |
| 153 | ], |
| 154 | 'globalOtpauthUrl' => $config['globalOtpauthUrl'] ?? '', |
| 155 | 'enableWebDAV' => (bool)($config['enableWebDAV'] ?? false), |
| 156 | 'safeUploadPolicy' => UploadNamePolicy::normalizeMode($config['safeUploadPolicy'] ?? UploadNamePolicy::MODE_STRICT), |
| 157 | 'sharedMaxUploadSize' => (int)($config['sharedMaxUploadSize'] ?? 0), |
| 158 | 'oidc' => [ |
| 159 | 'providerUrl' => (string)($config['oidc']['providerUrl'] ?? ''), |
| 160 | 'redirectUri' => (string)($config['oidc']['redirectUri'] ?? ''), |
| 161 | ], |
| 162 | 'branding' => [ |
| 163 | 'customLogoUrl' => self::sanitizeLogoUrl( |
| 164 | $config['branding']['customLogoUrl'] ?? '' |
| 165 | ), |
| 166 | 'headerBgLight' => self::sanitizeColorHex( |
| 167 | $config['branding']['headerBgLight'] ?? '' |
| 168 | ), |
| 169 | 'headerBgDark' => self::sanitizeColorHex( |
| 170 | $config['branding']['headerBgDark'] ?? '' |
| 171 | ), |
| 172 | 'metaDescription' => self::sanitizeMetaDescription( |
| 173 | $config['branding']['metaDescription'] ?? '' |
| 174 | ), |
| 175 | 'faviconSvg' => self::sanitizeLogoUrl( |
| 176 | $config['branding']['faviconSvg'] ?? '' |
| 177 | ), |
| 178 | 'faviconPng' => self::sanitizeLogoUrl( |
| 179 | $config['branding']['faviconPng'] ?? '' |
| 180 | ), |
| 181 | 'faviconIco' => self::sanitizeLogoUrl( |
| 182 | $config['branding']['faviconIco'] ?? '' |
| 183 | ), |
| 184 | 'appleTouchIcon' => self::sanitizeLogoUrl( |
| 185 | $config['branding']['appleTouchIcon'] ?? '' |
| 186 | ), |
| 187 | 'maskIcon' => self::sanitizeLogoUrl( |
| 188 | $config['branding']['maskIcon'] ?? '' |
| 189 | ), |
| 190 | 'maskIconColor' => self::sanitizeColorHex( |
| 191 | $config['branding']['maskIconColor'] ?? '' |
| 192 | ), |
| 193 | 'themeColorLight' => self::sanitizeColorHex( |
| 194 | $config['branding']['themeColorLight'] ?? '' |
| 195 | ), |
| 196 | 'themeColorDark' => self::sanitizeColorHex( |
| 197 | $config['branding']['themeColorDark'] ?? '' |
no test coverage detected