Make prettier
This commit is contained in:
parent
75f8928a8c
commit
e22985cc8b
3 changed files with 37 additions and 16 deletions
|
|
@ -167,6 +167,8 @@ class CustomHeaderFragment : DialogFragment() {
|
|||
// Validate header name and check if a user already exists for this server
|
||||
CoroutineScope(Dispatchers.Main).launch {
|
||||
var isValid = true
|
||||
val targetBaseUrl = if (header != null) header!!.baseUrl else baseUrl
|
||||
|
||||
if (headerName.isNotEmpty()) {
|
||||
if (!validateHeaderName(headerName)) {
|
||||
headerNameLayout.error = getString(R.string.custom_headers_dialog_error_invalid_name)
|
||||
|
|
@ -174,20 +176,12 @@ class CustomHeaderFragment : DialogFragment() {
|
|||
} else if (isReservedHeader(headerName)) {
|
||||
headerNameLayout.error = getString(R.string.custom_headers_dialog_error_reserved_name)
|
||||
isValid = false
|
||||
} else if (headerName.equals("Authorization", ignoreCase = true)) {
|
||||
// Check if a user exists for this server (async)
|
||||
val targetBaseUrl = if (header != null) header!!.baseUrl else baseUrl
|
||||
val userExists = if (this@CustomHeaderFragment::repository.isInitialized && validUrl(targetBaseUrl)) {
|
||||
withContext(Dispatchers.IO) {
|
||||
repository.getUser(targetBaseUrl) != null
|
||||
}
|
||||
} else {
|
||||
false
|
||||
}
|
||||
if (userExists) {
|
||||
headerNameLayout.error = getString(R.string.custom_headers_dialog_error_user_exists)
|
||||
isValid = false
|
||||
}
|
||||
} else if (isDuplicateHeader(targetBaseUrl, headerName)) {
|
||||
headerNameLayout.error = getString(R.string.custom_headers_dialog_error_duplicate)
|
||||
isValid = false
|
||||
} else if (headerName.equals("Authorization", ignoreCase = true) && hasUserForServer(targetBaseUrl)) {
|
||||
headerNameLayout.error = getString(R.string.custom_headers_dialog_error_user_exists)
|
||||
isValid = false
|
||||
}
|
||||
}
|
||||
if (header == null) {
|
||||
|
|
@ -228,6 +222,31 @@ class CustomHeaderFragment : DialogFragment() {
|
|||
return reservedHeaders.contains(nameLower) || nameLower.startsWith("sec-websocket-")
|
||||
}
|
||||
|
||||
private suspend fun isDuplicateHeader(baseUrl: String, headerName: String): Boolean {
|
||||
if (!this::repository.isInitialized || !validUrl(baseUrl)) {
|
||||
return false
|
||||
}
|
||||
val existingHeaders = withContext(Dispatchers.IO) {
|
||||
repository.getCustomHeadersForServer(baseUrl)
|
||||
}
|
||||
return existingHeaders.any { existingHeader ->
|
||||
// When editing, exclude the current header being edited
|
||||
val isCurrentHeader = header != null &&
|
||||
existingHeader.baseUrl == header!!.baseUrl &&
|
||||
existingHeader.name == header!!.name
|
||||
!isCurrentHeader && existingHeader.name.equals(headerName, ignoreCase = true)
|
||||
}
|
||||
}
|
||||
|
||||
private suspend fun hasUserForServer(baseUrl: String): Boolean {
|
||||
if (!this::repository.isInitialized || !validUrl(baseUrl)) {
|
||||
return false
|
||||
}
|
||||
return withContext(Dispatchers.IO) {
|
||||
repository.getUser(baseUrl) != null
|
||||
}
|
||||
}
|
||||
|
||||
companion object {
|
||||
const val TAG = "NtfyCustomHeaderFragment"
|
||||
private const val BUNDLE_BASE_URL = "baseUrl"
|
||||
|
|
|
|||
|
|
@ -360,6 +360,7 @@
|
|||
<string name="custom_headers_dialog_error_invalid_name">Ungültige Zeichen im Header-Namen</string>
|
||||
<string name="custom_headers_dialog_error_reserved_name">Dieser Header ist reserviert und wird von ntfy gesetzt</string>
|
||||
<string name="custom_headers_dialog_error_user_exists">Authorization-Header kann nicht hinzugefügt werden, wenn ein Benutzer für diesen Server konfiguriert ist</string>
|
||||
<string name="custom_headers_dialog_error_duplicate">Ein Header mit diesem Namen existiert bereits für diesen Server</string>
|
||||
<string name="custom_headers_dialog_name_hint">Header-Name (z.B. CF-Access-Client-Id)</string>
|
||||
<string name="custom_headers_dialog_value_hint">Wert (z.B. 9f3c2e4a1b2d4e)</string>
|
||||
<string name="custom_headers_dialog_description_add">Einen benutzerdefinierten HTTP-Header hinzufügen, der mit jeder Anfrage an den angegebenen Server gesendet wird.</string>
|
||||
|
|
|
|||
|
|
@ -467,8 +467,8 @@
|
|||
<string name="user_dialog_button_save">Save</string>
|
||||
|
||||
<!-- Custom headers dialog -->
|
||||
<string name="custom_headers_dialog_title_add">Add Custom Header</string>
|
||||
<string name="custom_headers_dialog_title_edit">Edit Custom Header</string>
|
||||
<string name="custom_headers_dialog_title_add">Add custom header</string>
|
||||
<string name="custom_headers_dialog_title_edit">Edit custom header</string>
|
||||
<string name="custom_headers_dialog_base_url_hint">Service URL</string>
|
||||
<string name="custom_headers_dialog_name_hint">Header name (e.g. CF-Access-Client-Id)</string>
|
||||
<string name="custom_headers_dialog_value_hint">Value (e.g. 9f3c2e4a1b2d4e)</string>
|
||||
|
|
@ -477,6 +477,7 @@
|
|||
<string name="custom_headers_dialog_error_invalid_name">Header name contains invalid characters</string>
|
||||
<string name="custom_headers_dialog_error_reserved_name">This header is reserved and set by ntfy</string>
|
||||
<string name="custom_headers_dialog_error_user_exists">Cannot add Authorization header if a user is configured for this server</string>
|
||||
<string name="custom_headers_dialog_error_duplicate">A header with this name already exists for this server</string>
|
||||
<string name="custom_headers_dialog_button_add">Add</string>
|
||||
<string name="custom_headers_dialog_button_save">Save</string>
|
||||
<string name="custom_headers_dialog_button_delete">Delete</string>
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue