From 38c6a321142dd9ffc2299e342bc465dd7815ea5c Mon Sep 17 00:00:00 2001 From: "gowthaman.b" Date: Wed, 20 Mar 2024 14:14:52 +0530 Subject: [PATCH] add locationGroup to tenant --- src/main/kotlin/com/restapi/config/Auth.kt | 67 +++++++++++++++------- 1 file changed, 46 insertions(+), 21 deletions(-) diff --git a/src/main/kotlin/com/restapi/config/Auth.kt b/src/main/kotlin/com/restapi/config/Auth.kt index 9fcfc55..6fa7400 100644 --- a/src/main/kotlin/com/restapi/config/Auth.kt +++ b/src/main/kotlin/com/restapi/config/Auth.kt @@ -75,32 +75,57 @@ object Auth { val roles = ((jwtClaims.jwtClaims.claimsMap["realm_access"] as Map)["roles"]) as List val date = Date(jwtClaims.jwtClaims.expirationTime.valueInMillis) - try { - HttpClients.createDefault().use { h -> - //sync plant's from rmc to here, just name and id - for (plantId in plantIds) { + try { + HttpClients.createDefault().use { h -> + //sync plant's from rmc to here, just name and id + for (plantId in plantIds) { + + val existing = Session.database.find(Plant::class.java).where().eq("plantId", plantId).findOne() + if (existing == null) { + h.execute(HttpGet("${appConfig.integrationRmc()}/plant?id=${plantId}")).use { r -> + if (r.statusLine.statusCode == 200) { + Session.database.save(Plant().apply { + this.plantId = plantId + this.plantName = EntityUtils.toString(r.entity) + }) + } + } + } + } + } + } catch (e: Exception) { + logger.warn("Exception in syncing plants", e) + } - val existing = Session.database.find(Plant::class.java).where().eq("plantId", plantId).findOne() - if (existing == null) { - h.execute(HttpGet("${appConfig.integrationRmc()}/plant?id=${plantId}")).use { r -> - if (r.statusLine.statusCode == 200) { - Session.database.save(Plant().apply { - this.plantId = plantId - this.plantName = EntityUtils.toString(r.entity) - }) - } - } - } - } - } - }catch (e: Exception){ - logger.warn("Exception in syncing plants", e) - } return AuthUser( - userName = userId, tenant = tenant, roles = roles, token = authToken, expiry = LocalDateTime.from(date.toInstant().atZone(ZoneId.systemDefault())), plantIds = plantIds + userName = userId, + tenant = getTenantWithCompany(userId, tenant), + roles = roles, + token = authToken, + expiry = LocalDateTime.from(date.toInstant().atZone(ZoneId.systemDefault())), + plantIds = plantIds ) } + private fun getTenantWithCompany(userId: String, tenant: String): String { + try { + HttpClients.createDefault().use { h -> + //sync plant's from rmc to here, just name and id + + h.execute(HttpGet("${appConfig.integrationRmc()}/tenant?id=${userId}")).use { r -> + if (r.statusLine.statusCode == 200) { + + return "$tenant${EntityUtils.toString(r.entity)}" + } + + } + } + } catch (e: Exception) { + logger.warn("Exception in syncing plants", e) + } + return tenant + } + fun keys(ctx: Context) { ctx.json(Session.jwk()) }