From 1b473c0c2403101ae4fce0c6806c60e766ed134e Mon Sep 17 00:00:00 2001 From: Petar Bozin Date: Fri, 7 Apr 2017 12:51:03 +0200 Subject: [PATCH] More tests fixed. just a few left to do --- src/main/scala/code/api/directlogin.scala | 2 +- .../scala/code/api/v2_0_0/APIMethods200.scala | 12 +-- .../code/model/dataAccess/AuthUser.scala | 93 +++++++------------ src/test/scala/code/api/directloginTest.scala | 3 + .../code/api/v2_0_0/CreateUserTest.scala | 3 +- 5 files changed, 45 insertions(+), 68 deletions(-) diff --git a/src/main/scala/code/api/directlogin.scala b/src/main/scala/code/api/directlogin.scala index d83f2d07d..f1ca4939a 100644 --- a/src/main/scala/code/api/directlogin.scala +++ b/src/main/scala/code/api/directlogin.scala @@ -323,7 +323,7 @@ object DirectLogin extends RestHelper with Loggable { val password = directLoginParameters.getOrElse("password", "") var userId = for {id <- AuthUser.getResourceUserId(username, password)} yield id - + println("======================> " + username +":"+ password +":"+ userId +".") if (userId.isEmpty) { if ( ! AuthUser.externalUserHelper(username, password).isEmpty) userId = for {id <- AuthUser.getResourceUserId(username, password)} yield id diff --git a/src/main/scala/code/api/v2_0_0/APIMethods200.scala b/src/main/scala/code/api/v2_0_0/APIMethods200.scala index e27b562b0..466da7309 100644 --- a/src/main/scala/code/api/v2_0_0/APIMethods200.scala +++ b/src/main/scala/code/api/v2_0_0/APIMethods200.scala @@ -1414,18 +1414,16 @@ trait APIMethods200 { postedData.username, postedData.password ) - //AuthUser.create - //.firstName(postedData.first_name) - //.lastName(postedData.last_name) - //.username(postedData.username) - //.email(postedData.email) - //.password(postedData.password) - //.validated(true) // TODO Get this from Props + .firstName(postedData.first_name) + .lastName(postedData.last_name) + + println("---::-------------------> " + userCreated) if(userCreated.validate.size > 0){ Full(errorJsonResponse(userCreated.validate.map(_.msg).mkString(";"))) } else { + userCreated.validated(true) userCreated.saveMe() if (userCreated.saved_?) { val json = JSONFactory200.createUserJSONfromAuthUser(userCreated) diff --git a/src/main/scala/code/model/dataAccess/AuthUser.scala b/src/main/scala/code/model/dataAccess/AuthUser.scala index 97ca35a89..4ce6f43d8 100644 --- a/src/main/scala/code/model/dataAccess/AuthUser.scala +++ b/src/main/scala/code/model/dataAccess/AuthUser.scala @@ -85,45 +85,16 @@ class AuthUser extends MegaProtoUser[AuthUser] with Logger { //override def validations = valUnique(S.?("unique.username")) _ :: super.validations //override val fieldId = Some(Text("txtUsername")) override def get = Users.users.vend.getResourceUserByUserId(resourceUserId.get) match { - case Full(u) => println("++++++++++++++++++++++> " + u); u.name - case Empty => println("+++++++++++++++++++++++get"); "" + case Full(u) => u.name + case Empty => "" } override def defaultValue = Users.users.vend.getResourceUserByUserId(resourceUserId.get) match { - case Full(u) => println("++++++++++++++++++++++> " + u); u.name - case Empty => println("+++++++++++++++++++++++defaultValue" + Users.users.vend.getResourceUserByUserId(resourceUserId.get)); "" + case Full(u) => u.name + case Empty => "" } - override def set(u: String) = {println("#########################################################" + u); u} + override def set(u: String) = u } - //lazy val username = new Username() - //class Username { - // def apply( name: String ) : String = - // Users.users.vend.getResourceUserByUserId(resourceUserId.get) match { - // case Full(u) => u.name - // case Empty => println("++++++++++++++++++++++++"); "" - // } - // - // def get : String = - // Users.users.vend.getResourceUserByUserId(resourceUserId.get) match { - // case Full(u) => u.name - // case Empty => println("++++++++++++++++++++++++"); "" - // } - //} - - //class Username { - //private final var username_ = Users.users.vend.getResourceUserByUserId(resourceUserId.get).get.name - //def apply( u: String ) : Box[String] = { - // Users.users.vend.getUserByUserId(resourceUserId.get).map { u => - // u.name - // } - //} - //def obj : Box[String] = Users.users.vend.getUserByUserId(resourceUserId.get).map { u => - // u.name - //} - //def get : String = Users.users.vend.getResourceUserByUserId(resourceUserId.get).get.name - //def defined_? : Boolean = Users.users.vend.getResourceUserByUserId(resourceUserId.get).isDefined - //} - override lazy val password = new MyPasswordNew class MyPasswordNew extends MappedPassword(this) { @@ -182,6 +153,7 @@ class AuthUser extends MegaProtoUser[AuthUser] with Logger { } def getProvider() = { + println("++++++++++++++++++++++++++++++++++++++ " + provider.get) if(provider.get == null) { Props.get("hostname","") } else if ( provider.get == "" || provider.get == Props.get("hostname","") ) { @@ -500,38 +472,38 @@ import net.liftweb.util.Helpers._ val generatedId = java.util.UUID.randomUUID.toString - Users.users.vend.getResourceUserByUserId(resourceUserId.get) match { - case Full(u) => AuthUser.find(By(AuthUser.resourceUserId, resourceUserId.get)).get - case Empty => - val au = Users.users.vend.createResourceUser( - prov, - Some(generatedId), - Some(uname), - Some(mail), - Some(generatedId)) match { - case Empty => null - case Full(r) if r.userId == generatedId => - AuthUser.create - .firstName(uname) - .email(mail) - .password(pass) - .resourceUserId(r.userId) - case Full(r) if r.userId != generatedId => - null - } - - val validationErrors = au.validate - if(validationErrors.nonEmpty) { - au - } + (Users.users.vend.getResourceUserByUserId(resourceUserId.get) :: Nil) match { + case List(Empty) => + val tempAu = AuthUser.create + .firstName(uname) + .email(mail) + .password(pass) + val validationErrors = tempAu.validate + if(validationErrors.nonEmpty) + tempAu else { + val au = Users.users.vend.createResourceUser( + prov, + Some(uname), + Some(uname), + Some(mail), + Some(generatedId)) match { + case Empty => null + case Full(r) if r.userId == generatedId => + tempAu.resourceUserId(r.userId) + case Full(r) if r.userId != generatedId => + null + } au.saveMe + } + case _ => AuthUser.find(By(AuthUser.resourceUserId, resourceUserId.get)).get } } def getResourceUserId(username: String, password: String): Box[Long] = { + println("=================================> " + findUserByUsername(username)) findUserByUsername(username) match { case Full(u) if u.getProvider() == Props.get("hostname","") => if ( @@ -844,7 +816,10 @@ import net.liftweb.util.Helpers._ case Full(i) => i case Empty => "" } - find(By(this.resourceUserId, findId)) + println(":-------------------------------------> "+ findId) + val res = find(By(this.resourceUserId, findId)) + println(":-------------------------------------> "+ res) + res } //overridden to allow redirect to loginRedirect after signup. This is mostly to allow diff --git a/src/test/scala/code/api/directloginTest.scala b/src/test/scala/code/api/directloginTest.scala index a359834f7..220f780f1 100644 --- a/src/test/scala/code/api/directloginTest.scala +++ b/src/test/scala/code/api/directloginTest.scala @@ -36,6 +36,7 @@ class directloginTest extends ServerSetup with BeforeAndAfter { ) .firstName(randomString(10)) .lastName(randomString(10)) .validated(true) + .saveMe if (Consumers.consumers.vend.getConsumerByConsumerKey(KEY).isEmpty) Consumers.consumers.vend.createConsumer(Some(KEY), Some(SECRET), Some(true), Some("test application"), None, None, None, None, None).get @@ -49,6 +50,7 @@ class directloginTest extends ServerSetup with BeforeAndAfter { ) .firstName(randomString(10)) .lastName(randomString(10)) .validated(true) + .saveMe if (Consumers.consumers.vend.getConsumerByConsumerKey(KEY_DISABLED).isEmpty) Consumers.consumers.vend.createConsumer(Some(KEY_DISABLED), Some(SECRET_DISABLED), Some(false), Some("test application disabled"), None, None, None, None, None).get @@ -217,6 +219,7 @@ class directloginTest extends ServerSetup with BeforeAndAfter { val response = makePostRequestAdditionalHeader(request, "", validHeaders) var token = "INVALID" Then("We should get a 200 - OK and a token") + println("-------------------> " + response.body ) response.code should equal(200) response.body match { case JObject(List(JField(name, JString(value)))) => diff --git a/src/test/scala/code/api/v2_0_0/CreateUserTest.scala b/src/test/scala/code/api/v2_0_0/CreateUserTest.scala index 7a64c4e12..b9e7dec82 100644 --- a/src/test/scala/code/api/v2_0_0/CreateUserTest.scala +++ b/src/test/scala/code/api/v2_0_0/CreateUserTest.scala @@ -71,7 +71,8 @@ class CreateUserTest extends V200ServerSetup with BeforeAndAfter { scenario("we create an user with email, first name, last name, username and password", CreateUser) { When("we create a new user") - val params = Map("email" -> EMAIL, + val params = Map( + "email" -> EMAIL, "username" -> USERNAME, "password" -> PASSWORD, "first_name" -> FIRSTNAME,