mirror of
https://github.com/greenart7c3/Amber.git
synced 2026-10-05 19:08:23 +00:00
Extend per-relay auth permissions to multi-event screens
Kind 22242 relay auth events in the batch approve/discard flows now store relay-specific permissions just like the single-event screens: - BunkerMultiEventHomeScreen: discard-all extracts kind + relay for SIGN_EVENT requests; approve-all passes relay URL for kind 22242 sign requests to acceptOrRejectPermission. - IntentMultiEventHomeScreen: same treatment for the Intent path — discard-all passes kind + relay for SIGN_EVENT; approve-all passes the relay tag from the event for kind 22242. Non-22242 events are unaffected (relay stays ""). https://claude.ai/code/session_01Dm9zoUbbzdJzuXTNdAVhfW
This commit is contained in:
+15
-1
@@ -38,6 +38,7 @@ import com.greenart7c3.nostrsigner.service.ApplicationNameCache
|
||||
import com.greenart7c3.nostrsigner.service.BunkerRequestUtils
|
||||
import com.greenart7c3.nostrsigner.service.EventNotificationConsumer
|
||||
import com.greenart7c3.nostrsigner.service.MultiEventScreenIntents
|
||||
import com.greenart7c3.nostrsigner.service.model.AmberEvent
|
||||
import com.greenart7c3.nostrsigner.service.toShortenHex
|
||||
import com.greenart7c3.nostrsigner.ui.RememberType
|
||||
import com.greenart7c3.nostrsigner.ui.navigation.Route
|
||||
@@ -294,14 +295,21 @@ fun BunkerMultiEventHomeScreen(
|
||||
)
|
||||
|
||||
if (request.rememberType.value != RememberType.NEVER && request.checked.value) {
|
||||
val rejectKind = if (request.request is BunkerRequestSign) request.request.event.kind else null
|
||||
val rejectRelay = if (request.request is BunkerRequestSign && request.request.event.kind == 22242) {
|
||||
AmberEvent.relay(request.request.event) ?: ""
|
||||
} else {
|
||||
""
|
||||
}
|
||||
AmberUtils.acceptOrRejectPermission(
|
||||
application,
|
||||
localKey,
|
||||
BunkerRequestUtils.getTypeFromBunker(request.request),
|
||||
null,
|
||||
rejectKind,
|
||||
false,
|
||||
request.rememberType.value,
|
||||
thisAccount,
|
||||
relay = rejectRelay,
|
||||
)
|
||||
}
|
||||
|
||||
@@ -376,6 +384,11 @@ fun BunkerMultiEventHomeScreen(
|
||||
val localEvent = request.signedEvent!!
|
||||
|
||||
if (request.rememberType.value != RememberType.NEVER && request.checked.value) {
|
||||
val signRelay = if (localEvent.kind == 22242) {
|
||||
AmberEvent.relay(localEvent) ?: ""
|
||||
} else {
|
||||
""
|
||||
}
|
||||
AmberUtils.acceptOrRejectPermission(
|
||||
application = application,
|
||||
key = localKey,
|
||||
@@ -384,6 +397,7 @@ fun BunkerMultiEventHomeScreen(
|
||||
value = true,
|
||||
rememberType = request.rememberType.value,
|
||||
account = thisAccount,
|
||||
relay = signRelay,
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
+15
-1
@@ -41,6 +41,7 @@ import com.greenart7c3.nostrsigner.models.TagArrayEncryptedDataKind
|
||||
import com.greenart7c3.nostrsigner.service.AmberUtils
|
||||
import com.greenart7c3.nostrsigner.service.ApplicationNameCache
|
||||
import com.greenart7c3.nostrsigner.service.MultiEventScreenIntents
|
||||
import com.greenart7c3.nostrsigner.service.model.AmberEvent
|
||||
import com.greenart7c3.nostrsigner.service.toShortenHex
|
||||
import com.greenart7c3.nostrsigner.ui.RememberType
|
||||
import com.greenart7c3.nostrsigner.ui.navigation.Route
|
||||
@@ -298,14 +299,21 @@ fun IntentMultiEventHomeScreen(
|
||||
)
|
||||
|
||||
if (intentData.rememberType.value != RememberType.NEVER && intentData.checked.value) {
|
||||
val rejectKind = if (intentData.type == SignerType.SIGN_EVENT) intentData.event?.kind else null
|
||||
val rejectRelay = if (intentData.type == SignerType.SIGN_EVENT && intentData.event?.kind == 22242) {
|
||||
intentData.event?.let { AmberEvent.relay(it) } ?: ""
|
||||
} else {
|
||||
""
|
||||
}
|
||||
AmberUtils.acceptOrRejectPermission(
|
||||
application,
|
||||
localKey,
|
||||
intentData.type,
|
||||
null,
|
||||
rejectKind,
|
||||
false,
|
||||
intentData.rememberType.value,
|
||||
thisAccount,
|
||||
relay = rejectRelay,
|
||||
)
|
||||
}
|
||||
|
||||
@@ -388,6 +396,11 @@ fun IntentMultiEventHomeScreen(
|
||||
val localEvent = intentData.event!!
|
||||
|
||||
if (intentData.rememberType.value != RememberType.NEVER && intentData.checked.value) {
|
||||
val signRelay = if (localEvent.kind == 22242) {
|
||||
AmberEvent.relay(localEvent) ?: ""
|
||||
} else {
|
||||
""
|
||||
}
|
||||
AmberUtils.acceptOrRejectPermission(
|
||||
application,
|
||||
localKey,
|
||||
@@ -396,6 +409,7 @@ fun IntentMultiEventHomeScreen(
|
||||
true,
|
||||
intentData.rememberType.value,
|
||||
thisAccount,
|
||||
relay = signRelay,
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user