def test_update_user_authentication(self):
        user_id1 = self.create_user_test1()
        self.assertIsNotNone(user_id1)

        self.assertTrue(
            UserManagementInterface.authenticate_user("test1",
                                                      {"password": "******"}))

        # Positive tests ---------------------------------------------------------------------------
        self.assertTrue(
            UserManagementInterface.update_user_authentication(
                user_id1, "basic", {"password": "******"}))

        self.assertTrue(
            UserManagementInterface.authenticate_user("test1",
                                                      {"password": "******"}))
        self.assertFalse(
            UserManagementInterface.authenticate_user("test1",
                                                      {"password": "******"}))

        # Negative tests ---------------------------------------------------------------------------
        self.assertFalse(
            UserManagementInterface.update_user_authentication(
                user_id1, "", {"password": "******"}))
        self.assertFalse(
            UserManagementInterface.update_user_authentication(
                user_id1, "some_type", {"password": "******"}))

        self.assertTrue(
            UserManagementInterface.authenticate_user("test1",
                                                      {"password": "******"}))
        self.assertFalse(
            UserManagementInterface.authenticate_user("test1",
                                                      {"password": "******"}))
    def test_update_user_authentication(self):
        user_id1 = self.create_user_test1()
        self.assertIsNotNone(user_id1)

        self.assertTrue(UserManagementInterface.authenticate_user("test1",
                                                                  {"password": "******"}))

        # Positive tests ---------------------------------------------------------------------------
        self.assertTrue(UserManagementInterface.update_user_authentication(user_id1,
                                                                           "basic",
                                                                           {"password": "******"}))

        self.assertTrue(UserManagementInterface.authenticate_user("test1",
                                                                  {"password": "******"}))
        self.assertFalse(UserManagementInterface.authenticate_user("test1",
                                                                   {"password": "******"}))

        # Negative tests ---------------------------------------------------------------------------
        self.assertFalse(UserManagementInterface.update_user_authentication(user_id1,
                                                                            "",
                                                                            {"password": "******"}))
        self.assertFalse(UserManagementInterface.update_user_authentication(user_id1,
                                                                            "some_type",
                                                                            {"password": "******"}))

        self.assertTrue(UserManagementInterface.authenticate_user("test1",
                                                                  {"password": "******"}))
        self.assertFalse(UserManagementInterface.authenticate_user("test1",
                                                                   {"password": "******"}))
    def test_authenticate_user(self):
        self.assertIsNotNone(self.create_user_test1())
        self.assertIsNotNone(self.create_user_test2())

        # Positive tests ---------------------------------------------------------------------------
        self.assertTrue(UserManagementInterface.authenticate_user("test1",
                                                                  {"password": "******"}))

        self.assertTrue(UserManagementInterface.authenticate_user("test2",
                                                                  {"password": "******"}))

        # Negative tests ---------------------------------------------------------------------------
        self.assertFalse(UserManagementInterface.authenticate_user("",
                                                                   {"password": "******"}))

        self.assertFalse(UserManagementInterface.authenticate_user("test1",
                                                                   {"password": "******"}))

        self.assertFalse(UserManagementInterface.authenticate_user("test1",
                                                                   {"password": "******"}))

        self.assertFalse(UserManagementInterface.authenticate_user("test1",
                                                                   {"password": ""}))

        self.assertFalse(UserManagementInterface.authenticate_user("test2",
                                                                   {"password": "******"}))

        self.assertFalse(UserManagementInterface.authenticate_user("test2",
                                                                   {"password": "******"}))
    def test_authenticate_user(self):
        self.assertIsNotNone(self.create_user_test1())
        self.assertIsNotNone(self.create_user_test2())

        # Positive tests ---------------------------------------------------------------------------
        self.assertTrue(
            UserManagementInterface.authenticate_user("test1",
                                                      {"password": "******"}))

        self.assertTrue(
            UserManagementInterface.authenticate_user("test2",
                                                      {"password": "******"}))

        # Negative tests ---------------------------------------------------------------------------
        self.assertFalse(
            UserManagementInterface.authenticate_user("",
                                                      {"password": "******"}))

        self.assertFalse(
            UserManagementInterface.authenticate_user("test1",
                                                      {"password": "******"}))

        self.assertFalse(
            UserManagementInterface.authenticate_user("test1",
                                                      {"password": "******"}))

        self.assertFalse(
            UserManagementInterface.authenticate_user("test1",
                                                      {"password": ""}))

        self.assertFalse(
            UserManagementInterface.authenticate_user("test2",
                                                      {"password": "******"}))

        self.assertFalse(
            UserManagementInterface.authenticate_user("test2",
                                                      {"password": "******"}))
Exemplo n.º 5
0
    def post(self):
        """
        Logs in a user with the specified parameters

        :return:    Session token
        """
        # Extract arguments from the request
        request_data = request.get_json()

        if ("user_name" not in request_data) or ("authentication_parameters" not in request_data):
            abort(400, message="Missing parameters")

        # Log in
        token = None
        success = False
        error_code = None
        error_message = None

        connection = DatabaseInterface.create_connection()

        try:
            success = connection.begin_transaction()

            # Authenticate the user
            user_id = None

            if success:
                user_id = UserManagementInterface.authenticate_user(
                    connection,
                    request_data["user_name"],
                    request_data["authentication_parameters"])

                if user_id is None:
                    success = False
                    error_code = 400
                    error_message = "Invalid user name or authentication parameters"

            # Create session token
            if success:
                token = UserManagementInterface.create_session_token(connection, user_id)

                if token is None:
                    success = False
                    error_code = 500
                    error_message = "Failed to generate a session token, please try again"

            if success:
                connection.commit_transaction()
            else:
                connection.rollback_transaction()
        except Exception as e:
            connection.rollback_transaction()
            abort(500, message="Internal error, please try again")

        # Return response
        if success:
            return jsonify({'session_token': token})
        else:
            if (error_code is not None) and (error_message is not None):
                abort(error_code, message=error_message)
            else:
                abort(500, message="Internal error")
 def test_default_administrator(self):
     self.assertTrue(
         UserManagementInterface.authenticate_user(
             "administrator", {"password": "******"}))
 def test_default_administrator(self):
     self.assertTrue(UserManagementInterface.authenticate_user("administrator",
                                                               {"password": "******"}))