예제 #1
0
    def test_register_user(self):

        # create a new user instance
        user = User()
        user.name = "foo"
        user.email = "foo@foo"
        user.password = "******"
        user.user_type = UserType.CLIENTE
        user.permissions = []
        user.rut = ''

        # save user on database
        message = user.Save()

        assert "success" in message

        # init just created user
        other_instance = (User()).InitById(1)

        assert "error" not in other_instance
        assert other_instance["name"] == "foo"

        # try to loin after creating user
        response_obj = user.Login(user.email, user.password)

        # must contains a success message
        assert "success" in response_obj
예제 #2
0
    def post(self):

        email = self.get_argument("email", "")
        password = self.get_argument("password", "")
        ajax = self.get_argument("ajax", "false")
        user_id = self.get_argument("user_id", "")

        # print "user_id {}".format(user_id)

        if email == "":
            self.write("debe ingresar el email")
        elif password == "":
            self.write("debe ingresar la contraseña")
        else:
            user = User()
            user.email = email
            user.password = password

            response_obj = user.Login(user.email, user.password)

            if "success" in response_obj:

                self.set_secure_cookie("user_giani",
                                       response_obj["success"],
                                       expires_days=None)

                current_user_id = json_util.loads(
                    response_obj["success"])["id"]

                if user_id != current_user_id:

                    cart = Cart()

                    cart.MoveTempToLoggedUser(user_id, current_user_id)

                # if "error" in response:
                #     rtn_obj = {"status":"error","message":"Usuario y contraseña no coinciden, error:{}".format(response["error"])}
                #     self.write( json_util.dumps(rtn_obj) )
                #     return

                rtn_obj = {
                    "status": "ok",
                    "next": self.next,
                    "user_id": current_user_id
                }
                self.write(json_util.dumps(rtn_obj))

                if ajax == "false":
                    self.redirect(self.next)

            else:
                rtn_obj = {
                    "status": "error",
                    "message": "Error:{}".format(response_obj["error"])
                }
                self.write(json_util.dumps(rtn_obj))
예제 #3
0
    def post(self):

        name = self.get_argument("name", "")
        email = self.get_argument("email", "")
        password = self.get_argument("password", "")
        re_password = self.get_argument("re-password", "")
        tos = self.get_argument("tos", "")
        ajax = self.get_argument("ajax", "false")
        user_id = int(self.get_argument("user_id", 0))

        # print tos

        if name == "":
            self.write(json_util.dumps({"error": "debe ingresar su nombre"}))
            return
        elif email == "":
            self.write(json_util.dumps({"error": "debe ingresar el email"}))
            return
        elif password == "":
            self.write(
                json_util.dumps({"error": "debe ingresar la contraseña"}))
            return
        elif password != re_password:
            self.write(
                json_util.dumps({"error": "las contraseñas no coinciden"}))
            return
        elif tos != "on":
            self.write(
                json_util.dumps(
                    {"error": "debe aceptar las condiciones de uso"}))
            return
        else:

            response = User().Exist(email)

            if "success" in response:
                if response["success"]:
                    self.write(
                        json_util.dumps({
                            "error":
                            "ya existe un usuario registrado con este email"
                        }))
                    return
            else:
                self.write(
                    json_util.dumps({
                        "error":
                        "se ha producido un error {}".format(response['error'])
                    }))
                return

            # perform login

            user = User()
            user.name = name
            user.email = email
            user.password = password
            user.user_type = UserType.CLIENTE
            user.status = User.ACEPTADO

            if user_id != 0:
                existe = User().Exist('', user_id)
                if "success" in existe:
                    if existe["success"]:
                        user.id = user_id

            user.Save()

            RegistrationEmail(user.name, user.email)

            response_obj = user.Login(user.email, user.password)

            if "success" in response_obj:

                self.set_secure_cookie("user_giani",
                                       response_obj["success"],
                                       expires_days=None)

                current_user_id = json_util.loads(
                    response_obj["success"])["id"]

                if user_id != current_user_id:

                    cart = Cart()

                    response = cart.MoveTempToLoggedUser(
                        user_id, current_user_id)

                self.write(json_util.dumps({"success": self.next}))
                return
            else:
                self.write(json_util.dumps({"error": str(response_obj)}))
                return

            # redirect is the request isn't aajx
            if ajax == "false":
                self.set_secure_cookie("user_giani",
                                       response_obj["success"],
                                       expires_days=None)
                self.write(json_util.dumps({"success": self.next}))