From 839ceb8bb86d0a39589f36b1cfabe4a13c456919 Mon Sep 17 00:00:00 2001 From: Georgios Gousios Date: Fri, 16 Mar 2012 18:11:45 +0200 Subject: [PATCH] Create user on new user event arrival --- .../gr/grnet/aquarium/user/actor/UserActor.scala | 26 ++++++++------------ 1 file changed, 10 insertions(+), 16 deletions(-) diff --git a/src/main/scala/gr/grnet/aquarium/user/actor/UserActor.scala b/src/main/scala/gr/grnet/aquarium/user/actor/UserActor.scala index a0259a4..301025a 100644 --- a/src/main/scala/gr/grnet/aquarium/user/actor/UserActor.scala +++ b/src/main/scala/gr/grnet/aquarium/user/actor/UserActor.scala @@ -38,7 +38,6 @@ package gr.grnet.aquarium.user.actor import gr.grnet.aquarium.actor._ import gr.grnet.aquarium.Configurator import gr.grnet.aquarium.processor.actor._ -import gr.grnet.aquarium.logic.accounting.{AccountingException, Policy, Accounting} import gr.grnet.aquarium.user._ import gr.grnet.aquarium.logic.events.{UserEvent, WalletEntry, ResourceEvent} import java.util.Date @@ -46,6 +45,7 @@ import gr.grnet.aquarium.util.{DateUtils, Loggable} import gr.grnet.aquarium.logic.accounting.dsl.{DSLAgreement, DSLResource, DSLComplexResource} import gr.grnet.aquarium.util.date.TimeHelpers import com.ckkloverdos.maybe.{Maybe, Failed, NoVal, Just} +import gr.grnet.aquarium.logic.accounting.{RoleAgreements, AccountingException, Policy, Accounting} /** @@ -128,7 +128,6 @@ class UserActor extends AquariumActor * Persist current user state */ private[this] def saveUserState(): Unit = { - _configurator.storeProvider.userStateStore.deleteUserState(this._userId) _configurator.storeProvider.userStateStore.storeUserState(this._userState) match { case Just(record) => record case NoVal => ERROR("Unknown error saving state") @@ -168,20 +167,15 @@ class UserActor extends AquariumActor case failed @ Failed(e, m) ⇒ ERROR("[%s][%s] %s", e.getClass.getName, e.getMessage, m) case NoVal ⇒ - // OK. Create a default UserState and store it - val now = TimeHelpers.nowMillis - val agreementOpt = Policy.policy.findAgreement(DSLAgreement.DefaultAgreementName) - - if(agreementOpt.isEmpty) { - ERROR("No default agreement found. Cannot initialize user state") - } else { - this._userState = DefaultUserStateComputations.createInitialUserState( - userId, - event.occurredMillis, - true, 0.0) - saveUserState - DEBUG("Created and stored %s", this._userState) - } + val agreement = RoleAgreements.agreementForRole(event.role) + DEBUG("User %s assigned agreement %s".format(userId, agreement.name)) + + this._userState = DefaultUserStateComputations.createInitialUserState( + userId, + event.occurredMillis, + event.isActive, 0.0, List(event.role), agreement.name) + saveUserState + DEBUG("Created and stored %s", this._userState) } } -- 1.7.10.4