feature/Set last used locale for user

This commit is contained in:
Marko Milić 2022-10-21 14:37:40 +02:00
parent 95b704b9f7
commit 89d867124a
3 changed files with 12 additions and 3 deletions

View File

@ -122,7 +122,7 @@ import code.transactionattribute.MappedTransactionAttribute
import code.transactionrequests.{MappedTransactionRequest, MappedTransactionRequestTypeCharge, TransactionRequestReasons}
import code.usercustomerlinks.MappedUserCustomerLink
import code.userlocks.UserLocks
import code.users.{UserAgreement, UserAttribute, UserInitAction, UserInvitation}
import code.users.{UserAgreement, UserAttribute, UserInitAction, UserInvitation, Users}
import code.util.Helper.MdcLoggable
import code.util.{Helper, HydraUtil}
import code.validation.JsonSchemaValidation
@ -130,7 +130,7 @@ import code.views.Views
import code.views.system.{AccountAccess, ViewDefinition}
import code.webhook.{BankAccountNotificationWebhook, MappedAccountWebhook, SystemAccountNotificationWebhook, WebhookHelperActors}
import code.webuiprops.WebUiProps
import com.openbankproject.commons.model.ErrorMessage
import com.openbankproject.commons.model.{ErrorMessage, User}
import com.openbankproject.commons.util.Functions.Implicits._
import com.openbankproject.commons.util.{ApiVersion, Functions}
import javax.mail.{Authenticator, PasswordAuthentication}
@ -611,7 +611,11 @@ class Boot extends MdcLoggable {
// In case it's true we use that value to set up a new cookie value
S.param("locale") match {
case Full(requestedLocale) if requestedLocale != null => {
val computedLocale = I18NUtil.computeLocale(requestedLocale)
val computedLocale: Locale = I18NUtil.computeLocale(requestedLocale)
val id: Long = AuthUser.getCurrentUser.map(_.user.userPrimaryKey.value).getOrElse(0)
Users.users.vend.getResourceUserByResourceUserId(id).map {
u => u.LastUsedLocale(computedLocale.toString).save
}
S.addCookie(HTTPCookie(localeCookieName, requestedLocale))
computedLocale
}

View File

@ -85,6 +85,9 @@ class ResourceUser extends LongKeyedMapper[ResourceUser] with User with ManyToMa
override def defaultValue = false
}
object LastMarketingAgreementSignedDate extends MappedDate(this)
object LastUsedLocale extends MappedString(this, 10) {
override def defaultValue = null
}
def emailAddress = {
val e = email.get
@ -114,6 +117,7 @@ class ResourceUser extends LongKeyedMapper[ResourceUser] with User with ManyToMa
override def createdByUserInvitationId = if(CreatedByUserInvitationId.get == null) None else if (CreatedByUserInvitationId.get.isEmpty) None else Some(CreatedByUserInvitationId.get) //null --> None
override def isDeleted: Option[Boolean] = if(IsDeleted.jdbcFriendly(IsDeleted.calcFieldName) == null) None else Some(IsDeleted.get) // null --> None
override def lastMarketingAgreementSignedDate: Option[Date] = if(IsDeleted.jdbcFriendly(LastMarketingAgreementSignedDate.calcFieldName) == null) None else Some(LastMarketingAgreementSignedDate.get) // null --> None
override def lastUsedLocale: Option[String] = if(LastUsedLocale.get == null) None else Some(LastUsedLocale.get) // null --> None
}
object ResourceUser extends ResourceUser with LongKeyedMetaMapper[ResourceUser]{

View File

@ -69,6 +69,7 @@ trait User {
def isConsentUser = createdByConsentId.nonEmpty
def isDeleted: Option[Boolean]
def lastMarketingAgreementSignedDate: Option[Date]
def lastUsedLocale: Option[String] = None
}
case class UserPrimaryKey(val value : Long) {