Skip to content

Commit 2c7f629

Browse files
authored
Merge pull request #77 from navikt/debug_unleash
Debug unleash
2 parents b2cdbf0 + 030672c commit 2c7f629

File tree

3 files changed

+36
-13
lines changed

3 files changed

+36
-13
lines changed

src/main/kotlin/no/nav/klage/oppgave/config/FeatureToggleConfig.kt

+3-3
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@ package no.nav.klage.oppgave.config
33
import no.finn.unleash.DefaultUnleash
44
import no.finn.unleash.FakeUnleash
55
import no.finn.unleash.Unleash
6-
import no.finn.unleash.strategy.UserWithIdStrategy
76
import no.finn.unleash.util.UnleashConfig
87
import no.nav.klage.oppgave.service.unleash.ByClusterStrategy
98
import no.nav.klage.oppgave.service.unleash.ByEnhetStrategy
9+
import no.nav.klage.oppgave.service.unleash.ByUserStrategy
1010
import no.nav.klage.oppgave.util.getLogger
1111
import org.springframework.beans.factory.annotation.Value
1212
import org.springframework.context.annotation.Bean
@@ -33,14 +33,14 @@ class FeatureToggleConfig {
3333

3434
@Bean
3535
@Profile("dev-gcp", "prod-gcp")
36-
fun unleash(byClusterStrategy: ByClusterStrategy, byEnhetStrategy: ByEnhetStrategy): Unleash? {
36+
fun unleash(byClusterStrategy: ByClusterStrategy, byEnhetStrategy: ByEnhetStrategy, byUserStrategy: ByUserStrategy): Unleash? {
3737
val unleashConfig = UnleashConfig.builder()
3838
.appName(appName)
3939
.instanceId(instance)
4040
.unleashAPI(unleashUrl)
4141
.build()
4242
logger.info("Unleash settes opp med appName {}, instanceId {} og url {}", appName, instance, unleashUrl)
43-
return DefaultUnleash(unleashConfig, byClusterStrategy, byEnhetStrategy, UserWithIdStrategy())
43+
return DefaultUnleash(unleashConfig, byClusterStrategy, byEnhetStrategy, byUserStrategy)
4444
}
4545

4646
@Bean

src/main/kotlin/no/nav/klage/oppgave/config/FeatureToggleInterceptor.kt

+1-10
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package no.nav.klage.oppgave.config
22

33
import no.finn.unleash.Unleash
4-
import no.finn.unleash.UnleashContext
54
import no.nav.klage.oppgave.config.FeatureToggleConfig.Companion.KLAGE_GENERELL_TILGANG
65
import no.nav.klage.oppgave.exceptions.FeatureNotEnabledException
76
import no.nav.klage.oppgave.repositories.InnloggetSaksbehandlerRepository
@@ -40,15 +39,7 @@ class FeatureToggleInterceptor(
4039

4140
private fun isEnabled(feature: String): Boolean {
4241
logger.debug("Unleash: feature: {}", feature)
43-
val contextMedInnloggetBruker = contextMedInnloggetBruker()
44-
logger.debug("contextMedInnloggetBruker: {}", contextMedInnloggetBruker)
45-
return unleash.isEnabled(feature, contextMedInnloggetBruker)
46-
}
47-
48-
private fun contextMedInnloggetBruker(): UnleashContext? {
49-
val ident = getIdent()
50-
logger.debug("Unleash: getIdent(): {}", ident)
51-
return UnleashContext.builder().userId(ident).build()
42+
return unleash.isEnabled(feature)
5243
}
5344

5445
private fun getIdent() = innloggetSaksbehandlerRepository.getInnloggetIdent()
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
package no.nav.klage.oppgave.service.unleash
2+
3+
import no.finn.unleash.strategy.Strategy
4+
import no.nav.klage.oppgave.repositories.InnloggetSaksbehandlerRepository
5+
import no.nav.klage.oppgave.util.getLogger
6+
import org.springframework.stereotype.Component
7+
8+
@Component
9+
class ByUserStrategy(private val innloggetSaksbehandlerRepository: InnloggetSaksbehandlerRepository) : Strategy {
10+
11+
companion object {
12+
@Suppress("JAVA_CLASS_ON_COMPANION")
13+
private val logger = getLogger(javaClass.enclosingClass)
14+
const val PARAM = "user"
15+
}
16+
17+
override fun getName(): String = "byUserId"
18+
19+
override fun isEnabled(parameters: Map<String, String>?): Boolean =
20+
getEnabledUsers(parameters)?.any { isCurrentUserEnabled(it) } ?: false
21+
22+
private fun getEnabledUsers(parameters: Map<String, String>?) =
23+
parameters?.get(PARAM)?.split(',')
24+
25+
private fun isCurrentUserEnabled(ident: String): Boolean {
26+
val currentIdent = getIdent()
27+
logger.debug("isCurrentUserEnabled? ident: {}, currentIdent: {}", ident, currentIdent)
28+
return ident == currentIdent
29+
}
30+
31+
private fun getIdent() = innloggetSaksbehandlerRepository.getInnloggetIdent()
32+
}

0 commit comments

Comments
 (0)