mirror of
https://github.com/OpenBankProject/OBP-API.git
synced 2026-02-06 15:27:01 +00:00
feature/Always create a new term and conditions, never update existing one
This commit is contained in:
parent
0883fabc61
commit
1d098394ee
@ -852,7 +852,7 @@ object NewStyle extends MdcLoggable{
|
||||
}
|
||||
}
|
||||
def getAgreementByUserId(userId: String, agreementType: String, callContext: Option[CallContext]): Future[Box[UserAgreement]] = {
|
||||
Future(UserAgreementProvider.userAgreementProvider.vend.getUserAgreement(userId, agreementType))
|
||||
Future(UserAgreementProvider.userAgreementProvider.vend.getLastUserAgreement(userId, agreementType))
|
||||
}
|
||||
|
||||
def getEntitlementsByBankId(bankId: String, callContext: Option[CallContext]): Future[List[Entitlement]] = {
|
||||
|
||||
@ -686,9 +686,9 @@ import net.liftweb.util.Helpers._
|
||||
val privacyPolicyValue: String = getWebUiPropsValue("webui_privacy_policy", "")
|
||||
val termsAndConditionsValue: String = getWebUiPropsValue("webui_terms_and_conditions", "")
|
||||
// User Agreement table
|
||||
UserAgreementProvider.userAgreementProvider.vend.createOrUpdateUserAgreement(
|
||||
UserAgreementProvider.userAgreementProvider.vend.createUserAgreement(
|
||||
theUser.user.foreign.map(_.userId).getOrElse(""), "privacy_conditions", privacyPolicyValue)
|
||||
UserAgreementProvider.userAgreementProvider.vend.createOrUpdateUserAgreement(
|
||||
UserAgreementProvider.userAgreementProvider.vend.createUserAgreement(
|
||||
theUser.user.foreign.map(_.userId).getOrElse(""), "terms_and_conditions", termsAndConditionsValue)
|
||||
if (!skipEmailValidation) {
|
||||
sendValidationEmail(theUser)
|
||||
@ -1041,13 +1041,13 @@ def restoreSomeSessions(): Unit = {
|
||||
def redirectUri(user: Box[ResourceUser]): String = {
|
||||
val userId = user.map(_.userId).getOrElse("")
|
||||
val hashedAgreementTextOfUser =
|
||||
UserAgreementProvider.userAgreementProvider.vend.getUserAgreement(userId, "terms_and_conditions")
|
||||
UserAgreementProvider.userAgreementProvider.vend.getLastUserAgreement(userId, "terms_and_conditions")
|
||||
.map(_.agreementHash).getOrElse(HashUtil.Sha256Hash("not set"))
|
||||
val agreementText = getWebUiPropsValue("webui_terms_and_conditions", "not set")
|
||||
val hashedAgreementText = HashUtil.Sha256Hash(agreementText)
|
||||
if(hashedAgreementTextOfUser == hashedAgreementText) { // Check terms and conditions
|
||||
val hashedAgreementTextOfUser =
|
||||
UserAgreementProvider.userAgreementProvider.vend.getUserAgreement(userId, "privacy_conditions")
|
||||
UserAgreementProvider.userAgreementProvider.vend.getLastUserAgreement(userId, "privacy_conditions")
|
||||
.map(_.agreementHash).getOrElse(HashUtil.Sha256Hash("not set"))
|
||||
val agreementText = getWebUiPropsValue("webui_privacy_policy", "not set")
|
||||
val hashedAgreementText = HashUtil.Sha256Hash(agreementText)
|
||||
|
||||
@ -68,7 +68,7 @@ class PrivacyPolicy extends MdcLoggable {
|
||||
private def updateUserAgreement() = {
|
||||
if(AuthUser.currentUser.isDefined) {
|
||||
val agreementText = getWebUiPropsValue("webui_privacy_policy", "not set")
|
||||
UserAgreementProvider.userAgreementProvider.vend.createOrUpdateUserAgreement(
|
||||
UserAgreementProvider.userAgreementProvider.vend.createUserAgreement(
|
||||
AuthUser.currentUser.flatMap(_.user.foreign.map(_.userId)).getOrElse(""), "privacy_conditions", agreementText)
|
||||
S.redirectTo("/")
|
||||
}
|
||||
|
||||
@ -69,7 +69,7 @@ class TermsAndConditions extends MdcLoggable {
|
||||
if(AuthUser.currentUser.isDefined) {
|
||||
val agreementText = getWebUiPropsValue("webui_terms_and_conditions", "not set")
|
||||
// val hashedAgreementText = HashUtil.Sha256Hash(agreementText)
|
||||
UserAgreementProvider.userAgreementProvider.vend.createOrUpdateUserAgreement(
|
||||
UserAgreementProvider.userAgreementProvider.vend.createUserAgreement(
|
||||
AuthUser.currentUser.flatMap(_.user.foreign.map(_.userId)).getOrElse(""),
|
||||
"terms_and_conditions",
|
||||
agreementText)
|
||||
|
||||
@ -121,13 +121,13 @@ class UserInvitation extends MdcLoggable {
|
||||
showError(msg)
|
||||
case _ =>
|
||||
// User Agreement table
|
||||
UserAgreementProvider.userAgreementProvider.vend.createOrUpdateUserAgreement(
|
||||
UserAgreementProvider.userAgreementProvider.vend.createUserAgreement(
|
||||
u.userId, "privacy_conditions", privacyConditionsValue)
|
||||
UserAgreementProvider.userAgreementProvider.vend.createOrUpdateUserAgreement(
|
||||
UserAgreementProvider.userAgreementProvider.vend.createUserAgreement(
|
||||
u.userId, "terms_and_conditions", termsAndConditionsValue)
|
||||
UserAgreementProvider.userAgreementProvider.vend.createOrUpdateUserAgreement(
|
||||
UserAgreementProvider.userAgreementProvider.vend.createUserAgreement(
|
||||
u.userId, "accept_marketing_info", marketingInfoCheckboxVar.is.toString)
|
||||
UserAgreementProvider.userAgreementProvider.vend.createOrUpdateUserAgreement(
|
||||
UserAgreementProvider.userAgreementProvider.vend.createUserAgreement(
|
||||
u.userId, "consent_for_collecting_personal_data", consentForCollectingCheckboxVar.is.toString)
|
||||
// Set the status of the user invitation to "FINISHED"
|
||||
UserInvitationProvider.userInvitationProvider.vend.updateStatusOfUserInvitation(userInvitation.map(_.userInvitationId).getOrElse(""), "FINISHED")
|
||||
|
||||
@ -133,9 +133,9 @@ object LiftUsers extends Users with MdcLoggable{
|
||||
}
|
||||
|
||||
private def getUserAgreements(user: ResourceUser) = {
|
||||
val acceptMarketingInfo = UserAgreementProvider.userAgreementProvider.vend.getUserAgreement(user.userId, "accept_marketing_info")
|
||||
val termsAndConditions = UserAgreementProvider.userAgreementProvider.vend.getUserAgreement(user.userId, "terms_and_conditions")
|
||||
val privacyConditions = UserAgreementProvider.userAgreementProvider.vend.getUserAgreement(user.userId, "privacy_conditions")
|
||||
val acceptMarketingInfo = UserAgreementProvider.userAgreementProvider.vend.getLastUserAgreement(user.userId, "accept_marketing_info")
|
||||
val termsAndConditions = UserAgreementProvider.userAgreementProvider.vend.getLastUserAgreement(user.userId, "terms_and_conditions")
|
||||
val privacyConditions = UserAgreementProvider.userAgreementProvider.vend.getLastUserAgreement(user.userId, "privacy_conditions")
|
||||
val agreements = acceptMarketingInfo.toList ::: termsAndConditions.toList ::: privacyConditions.toList
|
||||
agreements
|
||||
}
|
||||
|
||||
@ -10,32 +10,6 @@ import net.liftweb.mapper._
|
||||
import net.liftweb.common.Box.tryo
|
||||
|
||||
object MappedUserAgreementProvider extends UserAgreementProvider {
|
||||
// TODO Change the function name
|
||||
override def createOrUpdateUserAgreement(userId: String, agreementType: String, agreementText: String): Box[UserAgreement] = {
|
||||
UserAgreement.find(
|
||||
By(UserAgreement.UserId, userId),
|
||||
By(UserAgreement.AgreementType, agreementType)
|
||||
) match {
|
||||
// TODO We should be adding an additional record. Not changing existing one.
|
||||
case Full(existingUser) =>
|
||||
Full(
|
||||
existingUser
|
||||
.AgreementType(agreementType)
|
||||
.AgreementText(agreementText)
|
||||
.saveMe()
|
||||
)
|
||||
case Empty =>
|
||||
Full(
|
||||
UserAgreement.create
|
||||
.UserId(userId)
|
||||
.AgreementType(agreementType)
|
||||
.AgreementText(agreementText)
|
||||
.Date(new Date)
|
||||
.saveMe()
|
||||
)
|
||||
case everythingElse => everythingElse
|
||||
}
|
||||
}
|
||||
override def createUserAgreement(userId: String, agreementType: String, agreementText: String): Box[UserAgreement] = {
|
||||
Full(
|
||||
UserAgreement.create
|
||||
@ -46,7 +20,7 @@ object MappedUserAgreementProvider extends UserAgreementProvider {
|
||||
.saveMe()
|
||||
)
|
||||
}
|
||||
override def getUserAgreement(userId: String, agreementType: String): Box[UserAgreement] = {
|
||||
override def getLastUserAgreement(userId: String, agreementType: String): Box[UserAgreement] = {
|
||||
UserAgreement.findAll(
|
||||
By(UserAgreement.UserId, userId),
|
||||
By(UserAgreement.AgreementType, agreementType)
|
||||
|
||||
@ -16,9 +16,8 @@ object UserAgreementProvider extends SimpleInjector {
|
||||
}
|
||||
|
||||
trait UserAgreementProvider {
|
||||
def createOrUpdateUserAgreement(userId: String, agreementType: String, agreementText: String): Box[UserAgreement]
|
||||
def createUserAgreement(userId: String, agreementType: String, agreementText: String): Box[UserAgreement]
|
||||
def getUserAgreement(userId: String, agreementType: String): Box[UserAgreement]
|
||||
def getLastUserAgreement(userId: String, agreementType: String): Box[UserAgreement]
|
||||
}
|
||||
|
||||
trait UserAgreementTrait {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user