From 1f2975326e83a2bf48fe011c8dda0f13e6150de8 Mon Sep 17 00:00:00 2001 From: einhornimmond Date: Mon, 19 Apr 2021 12:21:15 +0200 Subject: [PATCH 0001/1050] add cmake modules for coverage --- login_server/CMakeLists.txt | 9 + login_server/cmake/CodeCoverage.cmake | 682 ++++++++++++++++++ .../cmake/GetGitRevisionDescription.cmake | 141 ++++ login_server/cmake/LICENSE_1_0.txt | 23 + login_server/cmake/README.md | 72 ++ 5 files changed, 927 insertions(+) create mode 100644 login_server/cmake/CodeCoverage.cmake create mode 100644 login_server/cmake/GetGitRevisionDescription.cmake create mode 100644 login_server/cmake/LICENSE_1_0.txt create mode 100644 login_server/cmake/README.md diff --git a/login_server/CMakeLists.txt b/login_server/CMakeLists.txt index 4502249e5..66bcd8d84 100644 --- a/login_server/CMakeLists.txt +++ b/login_server/CMakeLists.txt @@ -220,6 +220,15 @@ endif(UNIX) enable_testing() +if(UNIX) +include(cmake/CodeCoverage.cmake) +append_coverage_compiler_flags() +setup_target_for_coverage_gcovr_html( + NAME coverage + EXECUTABLE Gradido_LoginServer_Test + DEPENDENCIES lib/libmariadb.so.3 +) + # ---------------------- Test ----------------------------------------- #project(Gradido_LoginServer_Test C CXX) #_TEST_BUILD diff --git a/login_server/cmake/CodeCoverage.cmake b/login_server/cmake/CodeCoverage.cmake new file mode 100644 index 000000000..62f64bf75 --- /dev/null +++ b/login_server/cmake/CodeCoverage.cmake @@ -0,0 +1,682 @@ +# Copyright (c) 2012 - 2017, Lars Bilke +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, +# are permitted provided that the following conditions are met: +# +# 1. Redistributions of source code must retain the above copyright notice, this +# list of conditions and the following disclaimer. +# +# 2. Redistributions in binary form must reproduce the above copyright notice, +# this list of conditions and the following disclaimer in the documentation +# and/or other materials provided with the distribution. +# +# 3. Neither the name of the copyright holder nor the names of its contributors +# may be used to endorse or promote products derived from this software without +# specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# +# CHANGES: +# +# 2012-01-31, Lars Bilke +# - Enable Code Coverage +# +# 2013-09-17, Joakim Söderberg +# - Added support for Clang. +# - Some additional usage instructions. +# +# 2016-02-03, Lars Bilke +# - Refactored functions to use named parameters +# +# 2017-06-02, Lars Bilke +# - Merged with modified version from github.com/ufz/ogs +# +# 2019-05-06, Anatolii Kurotych +# - Remove unnecessary --coverage flag +# +# 2019-12-13, FeRD (Frank Dana) +# - Deprecate COVERAGE_LCOVR_EXCLUDES and COVERAGE_GCOVR_EXCLUDES lists in favor +# of tool-agnostic COVERAGE_EXCLUDES variable, or EXCLUDE setup arguments. +# - CMake 3.4+: All excludes can be specified relative to BASE_DIRECTORY +# - All setup functions: accept BASE_DIRECTORY, EXCLUDE list +# - Set lcov basedir with -b argument +# - Add automatic --demangle-cpp in lcovr, if 'c++filt' is available (can be +# overridden with NO_DEMANGLE option in setup_target_for_coverage_lcovr().) +# - Delete output dir, .info file on 'make clean' +# - Remove Python detection, since version mismatches will break gcovr +# - Minor cleanup (lowercase function names, update examples...) +# +# 2019-12-19, FeRD (Frank Dana) +# - Rename Lcov outputs, make filtered file canonical, fix cleanup for targets +# +# 2020-01-19, Bob Apthorpe +# - Added gfortran support +# +# 2020-02-17, FeRD (Frank Dana) +# - Make all add_custom_target()s VERBATIM to auto-escape wildcard characters +# in EXCLUDEs, and remove manual escaping from gcovr targets +# +# 2021-01-19, Robin Mueller +# - Add CODE_COVERAGE_VERBOSE option which will allow to print out commands which are run +# - Added the option for users to set the GCOVR_ADDITIONAL_ARGS variable to supply additional +# flags to the gcovr command +# +# 2020-05-04, Mihchael Davis +# - Add -fprofile-abs-path to make gcno files contain absolute paths +# - Fix BASE_DIRECTORY not working when defined +# - Change BYPRODUCT from folder to index.html to stop ninja from complaining about double defines +# USAGE: +# +# 1. Copy this file into your cmake modules path. +# +# 2. Add the following line to your CMakeLists.txt (best inside an if-condition +# using a CMake option() to enable it just optionally): +# include(CodeCoverage) +# +# 3. Append necessary compiler flags: +# append_coverage_compiler_flags() +# +# 3.a (OPTIONAL) Set appropriate optimization flags, e.g. -O0, -O1 or -Og +# +# 4. If you need to exclude additional directories from the report, specify them +# using full paths in the COVERAGE_EXCLUDES variable before calling +# setup_target_for_coverage_*(). +# Example: +# set(COVERAGE_EXCLUDES +# '${PROJECT_SOURCE_DIR}/src/dir1/*' +# '/path/to/my/src/dir2/*') +# Or, use the EXCLUDE argument to setup_target_for_coverage_*(). +# Example: +# setup_target_for_coverage_lcov( +# NAME coverage +# EXECUTABLE testrunner +# EXCLUDE "${PROJECT_SOURCE_DIR}/src/dir1/*" "/path/to/my/src/dir2/*") +# +# 4.a NOTE: With CMake 3.4+, COVERAGE_EXCLUDES or EXCLUDE can also be set +# relative to the BASE_DIRECTORY (default: PROJECT_SOURCE_DIR) +# Example: +# set(COVERAGE_EXCLUDES "dir1/*") +# setup_target_for_coverage_gcovr_html( +# NAME coverage +# EXECUTABLE testrunner +# BASE_DIRECTORY "${PROJECT_SOURCE_DIR}/src" +# EXCLUDE "dir2/*") +# +# 5. Use the functions described below to create a custom make target which +# runs your test executable and produces a code coverage report. +# +# 6. Build a Debug build: +# cmake -DCMAKE_BUILD_TYPE=Debug .. +# make +# make my_coverage_target +# + +include(CMakeParseArguments) + +option(CODE_COVERAGE_VERBOSE "Verbose information" FALSE) + +# Check prereqs +find_program( GCOV_PATH gcov ) +find_program( LCOV_PATH NAMES lcov lcov.bat lcov.exe lcov.perl) +find_program( FASTCOV_PATH NAMES fastcov fastcov.py ) +find_program( GENHTML_PATH NAMES genhtml genhtml.perl genhtml.bat ) +find_program( GCOVR_PATH gcovr PATHS ${CMAKE_SOURCE_DIR}/scripts/test) +find_program( CPPFILT_PATH NAMES c++filt ) + +if(NOT GCOV_PATH) + message(FATAL_ERROR "gcov not found! Aborting...") +endif() # NOT GCOV_PATH + +get_property(LANGUAGES GLOBAL PROPERTY ENABLED_LANGUAGES) +list(GET LANGUAGES 0 LANG) + +if("${CMAKE_${LANG}_COMPILER_ID}" MATCHES "(Apple)?[Cc]lang") + if("${CMAKE_${LANG}_COMPILER_VERSION}" VERSION_LESS 3) + message(FATAL_ERROR "Clang version must be 3.0.0 or greater! Aborting...") + endif() +elseif(NOT CMAKE_COMPILER_IS_GNUCXX) + if("${CMAKE_Fortran_COMPILER_ID}" MATCHES "[Ff]lang") + # Do nothing; exit conditional without error if true + elseif("${CMAKE_Fortran_COMPILER_ID}" MATCHES "GNU") + # Do nothing; exit conditional without error if true + else() + message(FATAL_ERROR "Compiler is not GNU gcc! Aborting...") + endif() +endif() + +set(COVERAGE_COMPILER_FLAGS "-g -fprofile-arcs -ftest-coverage" + CACHE INTERNAL "") +if(CMAKE_CXX_COMPILER_ID MATCHES "(GNU|Clang)") + include(CheckCXXCompilerFlag) + check_cxx_compiler_flag(-fprofile-abs-path HAVE_fprofile_abs_path) + if(HAVE_fprofile_abs_path) + set(COVERAGE_COMPILER_FLAGS "${COVERAGE_COMPILER_FLAGS} -fprofile-abs-path") + endif() +endif() + +set(CMAKE_Fortran_FLAGS_COVERAGE + ${COVERAGE_COMPILER_FLAGS} + CACHE STRING "Flags used by the Fortran compiler during coverage builds." + FORCE ) +set(CMAKE_CXX_FLAGS_COVERAGE + ${COVERAGE_COMPILER_FLAGS} + CACHE STRING "Flags used by the C++ compiler during coverage builds." + FORCE ) +set(CMAKE_C_FLAGS_COVERAGE + ${COVERAGE_COMPILER_FLAGS} + CACHE STRING "Flags used by the C compiler during coverage builds." + FORCE ) +set(CMAKE_EXE_LINKER_FLAGS_COVERAGE + "" + CACHE STRING "Flags used for linking binaries during coverage builds." + FORCE ) +set(CMAKE_SHARED_LINKER_FLAGS_COVERAGE + "" + CACHE STRING "Flags used by the shared libraries linker during coverage builds." + FORCE ) +mark_as_advanced( + CMAKE_Fortran_FLAGS_COVERAGE + CMAKE_CXX_FLAGS_COVERAGE + CMAKE_C_FLAGS_COVERAGE + CMAKE_EXE_LINKER_FLAGS_COVERAGE + CMAKE_SHARED_LINKER_FLAGS_COVERAGE ) + +if(NOT CMAKE_BUILD_TYPE STREQUAL "Debug") + message(WARNING "Code coverage results with an optimised (non-Debug) build may be misleading") +endif() # NOT CMAKE_BUILD_TYPE STREQUAL "Debug" + +if(CMAKE_C_COMPILER_ID STREQUAL "GNU" OR CMAKE_Fortran_COMPILER_ID STREQUAL "GNU") + link_libraries(gcov) +endif() + +# Defines a target for running and collection code coverage information +# Builds dependencies, runs the given executable and outputs reports. +# NOTE! The executable should always have a ZERO as exit code otherwise +# the coverage generation will not complete. +# +# setup_target_for_coverage_lcov( +# NAME testrunner_coverage # New target name +# EXECUTABLE testrunner -j ${PROCESSOR_COUNT} # Executable in PROJECT_BINARY_DIR +# DEPENDENCIES testrunner # Dependencies to build first +# BASE_DIRECTORY "../" # Base directory for report +# # (defaults to PROJECT_SOURCE_DIR) +# EXCLUDE "src/dir1/*" "src/dir2/*" # Patterns to exclude (can be relative +# # to BASE_DIRECTORY, with CMake 3.4+) +# NO_DEMANGLE # Don't demangle C++ symbols +# # even if c++filt is found +# ) +function(setup_target_for_coverage_lcov) + + set(options NO_DEMANGLE) + set(oneValueArgs BASE_DIRECTORY NAME) + set(multiValueArgs EXCLUDE EXECUTABLE EXECUTABLE_ARGS DEPENDENCIES LCOV_ARGS GENHTML_ARGS) + cmake_parse_arguments(Coverage "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) + + if(NOT LCOV_PATH) + message(FATAL_ERROR "lcov not found! Aborting...") + endif() # NOT LCOV_PATH + + if(NOT GENHTML_PATH) + message(FATAL_ERROR "genhtml not found! Aborting...") + endif() # NOT GENHTML_PATH + + # Set base directory (as absolute path), or default to PROJECT_SOURCE_DIR + if(DEFINED Coverage_BASE_DIRECTORY) + get_filename_component(BASEDIR ${Coverage_BASE_DIRECTORY} ABSOLUTE) + else() + set(BASEDIR ${PROJECT_SOURCE_DIR}) + endif() + + # Collect excludes (CMake 3.4+: Also compute absolute paths) + set(LCOV_EXCLUDES "") + foreach(EXCLUDE ${Coverage_EXCLUDE} ${COVERAGE_EXCLUDES} ${COVERAGE_LCOV_EXCLUDES}) + if(CMAKE_VERSION VERSION_GREATER 3.4) + get_filename_component(EXCLUDE ${EXCLUDE} ABSOLUTE BASE_DIR ${BASEDIR}) + endif() + list(APPEND LCOV_EXCLUDES "${EXCLUDE}") + endforeach() + list(REMOVE_DUPLICATES LCOV_EXCLUDES) + + # Conditional arguments + if(CPPFILT_PATH AND NOT ${Coverage_NO_DEMANGLE}) + set(GENHTML_EXTRA_ARGS "--demangle-cpp") + endif() + + # Setting up commands which will be run to generate coverage data. + # Cleanup lcov + set(LCOV_CLEAN_CMD + ${LCOV_PATH} ${Coverage_LCOV_ARGS} --gcov-tool ${GCOV_PATH} -directory . + -b ${BASEDIR} --zerocounters + ) + # Create baseline to make sure untouched files show up in the report + set(LCOV_BASELINE_CMD + ${LCOV_PATH} ${Coverage_LCOV_ARGS} --gcov-tool ${GCOV_PATH} -c -i -d . -b + ${BASEDIR} -o ${Coverage_NAME}.base + ) + # Run tests + set(LCOV_EXEC_TESTS_CMD + ${Coverage_EXECUTABLE} ${Coverage_EXECUTABLE_ARGS} + ) + # Capturing lcov counters and generating report + set(LCOV_CAPTURE_CMD + ${LCOV_PATH} ${Coverage_LCOV_ARGS} --gcov-tool ${GCOV_PATH} --directory . -b + ${BASEDIR} --capture --output-file ${Coverage_NAME}.capture + ) + # add baseline counters + set(LCOV_BASELINE_COUNT_CMD + ${LCOV_PATH} ${Coverage_LCOV_ARGS} --gcov-tool ${GCOV_PATH} -a ${Coverage_NAME}.base + -a ${Coverage_NAME}.capture --output-file ${Coverage_NAME}.total + ) + # filter collected data to final coverage report + set(LCOV_FILTER_CMD + ${LCOV_PATH} ${Coverage_LCOV_ARGS} --gcov-tool ${GCOV_PATH} --remove + ${Coverage_NAME}.total ${LCOV_EXCLUDES} --output-file ${Coverage_NAME}.info + ) + # Generate HTML output + set(LCOV_GEN_HTML_CMD + ${GENHTML_PATH} ${GENHTML_EXTRA_ARGS} ${Coverage_GENHTML_ARGS} -o + ${Coverage_NAME} ${Coverage_NAME}.info + ) + + + if(CODE_COVERAGE_VERBOSE) + message(STATUS "Executed command report") + message(STATUS "Command to clean up lcov: ") + string(REPLACE ";" " " LCOV_CLEAN_CMD_SPACED "${LCOV_CLEAN_CMD}") + message(STATUS "${LCOV_CLEAN_CMD_SPACED}") + + message(STATUS "Command to create baseline: ") + string(REPLACE ";" " " LCOV_BASELINE_CMD_SPACED "${LCOV_BASELINE_CMD}") + message(STATUS "${LCOV_BASELINE_CMD_SPACED}") + + message(STATUS "Command to run the tests: ") + string(REPLACE ";" " " LCOV_EXEC_TESTS_CMD_SPACED "${LCOV_EXEC_TESTS_CMD}") + message(STATUS "${LCOV_EXEC_TESTS_CMD_SPACED}") + + message(STATUS "Command to capture counters and generate report: ") + string(REPLACE ";" " " LCOV_CAPTURE_CMD_SPACED "${LCOV_CAPTURE_CMD}") + message(STATUS "${LCOV_CAPTURE_CMD_SPACED}") + + message(STATUS "Command to add baseline counters: ") + string(REPLACE ";" " " LCOV_BASELINE_COUNT_CMD_SPACED "${LCOV_BASELINE_COUNT_CMD}") + message(STATUS "${LCOV_BASELINE_COUNT_CMD_SPACED}") + + message(STATUS "Command to filter collected data: ") + string(REPLACE ";" " " LCOV_FILTER_CMD_SPACED "${LCOV_FILTER_CMD}") + message(STATUS "${LCOV_FILTER_CMD_SPACED}") + + message(STATUS "Command to generate lcov HTML output: ") + string(REPLACE ";" " " LCOV_GEN_HTML_CMD_SPACED "${LCOV_GEN_HTML_CMD}") + message(STATUS "${LCOV_GEN_HTML_CMD_SPACED}") + endif() + + # Setup target + add_custom_target(${Coverage_NAME} + COMMAND ${LCOV_CLEAN_CMD} + COMMAND ${LCOV_BASELINE_CMD} + COMMAND ${LCOV_EXEC_TESTS_CMD} + COMMAND ${LCOV_CAPTURE_CMD} + COMMAND ${LCOV_BASELINE_COUNT_CMD} + COMMAND ${LCOV_FILTER_CMD} + COMMAND ${LCOV_GEN_HTML_CMD} + + # Set output files as GENERATED (will be removed on 'make clean') + BYPRODUCTS + ${Coverage_NAME}.base + ${Coverage_NAME}.capture + ${Coverage_NAME}.total + ${Coverage_NAME}.info + ${Coverage_NAME}/index.html + WORKING_DIRECTORY ${PROJECT_BINARY_DIR} + DEPENDS ${Coverage_DEPENDENCIES} + VERBATIM # Protect arguments to commands + COMMENT "Resetting code coverage counters to zero.\nProcessing code coverage counters and generating report." + ) + + # Show where to find the lcov info report + add_custom_command(TARGET ${Coverage_NAME} POST_BUILD + COMMAND ; + COMMENT "Lcov code coverage info report saved in ${Coverage_NAME}.info." + ) + + # Show info where to find the report + add_custom_command(TARGET ${Coverage_NAME} POST_BUILD + COMMAND ; + COMMENT "Open ./${Coverage_NAME}/index.html in your browser to view the coverage report." + ) + +endfunction() # setup_target_for_coverage_lcov + +# Defines a target for running and collection code coverage information +# Builds dependencies, runs the given executable and outputs reports. +# NOTE! The executable should always have a ZERO as exit code otherwise +# the coverage generation will not complete. +# +# setup_target_for_coverage_gcovr_xml( +# NAME ctest_coverage # New target name +# EXECUTABLE ctest -j ${PROCESSOR_COUNT} # Executable in PROJECT_BINARY_DIR +# DEPENDENCIES executable_target # Dependencies to build first +# BASE_DIRECTORY "../" # Base directory for report +# # (defaults to PROJECT_SOURCE_DIR) +# EXCLUDE "src/dir1/*" "src/dir2/*" # Patterns to exclude (can be relative +# # to BASE_DIRECTORY, with CMake 3.4+) +# ) +# The user can set the variable GCOVR_ADDITIONAL_ARGS to supply additional flags to the +# GCVOR command. +function(setup_target_for_coverage_gcovr_xml) + + set(options NONE) + set(oneValueArgs BASE_DIRECTORY NAME) + set(multiValueArgs EXCLUDE EXECUTABLE EXECUTABLE_ARGS DEPENDENCIES) + cmake_parse_arguments(Coverage "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) + + if(NOT GCOVR_PATH) + message(FATAL_ERROR "gcovr not found! Aborting...") + endif() # NOT GCOVR_PATH + + # Set base directory (as absolute path), or default to PROJECT_SOURCE_DIR + if(DEFINED Coverage_BASE_DIRECTORY) + get_filename_component(BASEDIR ${Coverage_BASE_DIRECTORY} ABSOLUTE) + else() + set(BASEDIR ${PROJECT_SOURCE_DIR}) + endif() + + # Collect excludes (CMake 3.4+: Also compute absolute paths) + set(GCOVR_EXCLUDES "") + foreach(EXCLUDE ${Coverage_EXCLUDE} ${COVERAGE_EXCLUDES} ${COVERAGE_GCOVR_EXCLUDES}) + if(CMAKE_VERSION VERSION_GREATER 3.4) + get_filename_component(EXCLUDE ${EXCLUDE} ABSOLUTE BASE_DIR ${BASEDIR}) + endif() + list(APPEND GCOVR_EXCLUDES "${EXCLUDE}") + endforeach() + list(REMOVE_DUPLICATES GCOVR_EXCLUDES) + + # Combine excludes to several -e arguments + set(GCOVR_EXCLUDE_ARGS "") + foreach(EXCLUDE ${GCOVR_EXCLUDES}) + list(APPEND GCOVR_EXCLUDE_ARGS "-e") + list(APPEND GCOVR_EXCLUDE_ARGS "${EXCLUDE}") + endforeach() + + # Set up commands which will be run to generate coverage data + # Run tests + set(GCOVR_XML_EXEC_TESTS_CMD + ${Coverage_EXECUTABLE} ${Coverage_EXECUTABLE_ARGS} + ) + # Running gcovr + set(GCOVR_XML_CMD + ${GCOVR_PATH} --xml -r ${BASEDIR} ${GCOVR_ADDITIONAL_ARGS} ${GCOVR_EXCLUDE_ARGS} + --object-directory=${PROJECT_BINARY_DIR} -o ${Coverage_NAME}.xml + ) + + if(CODE_COVERAGE_VERBOSE) + message(STATUS "Executed command report") + + message(STATUS "Command to run tests: ") + string(REPLACE ";" " " GCOVR_XML_EXEC_TESTS_CMD_SPACED "${GCOVR_XML_EXEC_TESTS_CMD}") + message(STATUS "${GCOVR_XML_EXEC_TESTS_CMD_SPACED}") + + message(STATUS "Command to generate gcovr XML coverage data: ") + string(REPLACE ";" " " GCOVR_XML_CMD_SPACED "${GCOVR_XML_CMD}") + message(STATUS "${GCOVR_XML_CMD_SPACED}") + endif() + + add_custom_target(${Coverage_NAME} + COMMAND ${GCOVR_XML_EXEC_TESTS_CMD} + COMMAND ${GCOVR_XML_CMD} + + BYPRODUCTS ${Coverage_NAME}.xml + WORKING_DIRECTORY ${PROJECT_BINARY_DIR} + DEPENDS ${Coverage_DEPENDENCIES} + VERBATIM # Protect arguments to commands + COMMENT "Running gcovr to produce Cobertura code coverage report." + ) + + # Show info where to find the report + add_custom_command(TARGET ${Coverage_NAME} POST_BUILD + COMMAND ; + COMMENT "Cobertura code coverage report saved in ${Coverage_NAME}.xml." + ) +endfunction() # setup_target_for_coverage_gcovr_xml + +# Defines a target for running and collection code coverage information +# Builds dependencies, runs the given executable and outputs reports. +# NOTE! The executable should always have a ZERO as exit code otherwise +# the coverage generation will not complete. +# +# setup_target_for_coverage_gcovr_html( +# NAME ctest_coverage # New target name +# EXECUTABLE ctest -j ${PROCESSOR_COUNT} # Executable in PROJECT_BINARY_DIR +# DEPENDENCIES executable_target # Dependencies to build first +# BASE_DIRECTORY "../" # Base directory for report +# # (defaults to PROJECT_SOURCE_DIR) +# EXCLUDE "src/dir1/*" "src/dir2/*" # Patterns to exclude (can be relative +# # to BASE_DIRECTORY, with CMake 3.4+) +# ) +# The user can set the variable GCOVR_ADDITIONAL_ARGS to supply additional flags to the +# GCVOR command. +function(setup_target_for_coverage_gcovr_html) + + set(options NONE) + set(oneValueArgs BASE_DIRECTORY NAME) + set(multiValueArgs EXCLUDE EXECUTABLE EXECUTABLE_ARGS DEPENDENCIES) + cmake_parse_arguments(Coverage "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) + + if(NOT GCOVR_PATH) + message(FATAL_ERROR "gcovr not found! Aborting...") + endif() # NOT GCOVR_PATH + + # Set base directory (as absolute path), or default to PROJECT_SOURCE_DIR + if(DEFINED Coverage_BASE_DIRECTORY) + get_filename_component(BASEDIR ${Coverage_BASE_DIRECTORY} ABSOLUTE) + else() + set(BASEDIR ${PROJECT_SOURCE_DIR}) + endif() + + # Collect excludes (CMake 3.4+: Also compute absolute paths) + set(GCOVR_EXCLUDES "") + foreach(EXCLUDE ${Coverage_EXCLUDE} ${COVERAGE_EXCLUDES} ${COVERAGE_GCOVR_EXCLUDES}) + if(CMAKE_VERSION VERSION_GREATER 3.4) + get_filename_component(EXCLUDE ${EXCLUDE} ABSOLUTE BASE_DIR ${BASEDIR}) + endif() + list(APPEND GCOVR_EXCLUDES "${EXCLUDE}") + endforeach() + list(REMOVE_DUPLICATES GCOVR_EXCLUDES) + + # Combine excludes to several -e arguments + set(GCOVR_EXCLUDE_ARGS "") + foreach(EXCLUDE ${GCOVR_EXCLUDES}) + list(APPEND GCOVR_EXCLUDE_ARGS "-e") + list(APPEND GCOVR_EXCLUDE_ARGS "${EXCLUDE}") + endforeach() + + # Set up commands which will be run to generate coverage data + # Run tests + set(GCOVR_HTML_EXEC_TESTS_CMD + ${Coverage_EXECUTABLE} ${Coverage_EXECUTABLE_ARGS} + ) + # Create folder + set(GCOVR_HTML_FOLDER_CMD + ${CMAKE_COMMAND} -E make_directory ${PROJECT_BINARY_DIR}/${Coverage_NAME} + ) + # Running gcovr + set(GCOVR_HTML_CMD + ${GCOVR_PATH} --html --html-details -r ${BASEDIR} ${GCOVR_ADDITIONAL_ARGS} + ${GCOVR_EXCLUDE_ARGS} --object-directory=${PROJECT_BINARY_DIR} + -o ${Coverage_NAME}/index.html + ) + + if(CODE_COVERAGE_VERBOSE) + message(STATUS "Executed command report") + + message(STATUS "Command to run tests: ") + string(REPLACE ";" " " GCOVR_HTML_EXEC_TESTS_CMD_SPACED "${GCOVR_HTML_EXEC_TESTS_CMD}") + message(STATUS "${GCOVR_HTML_EXEC_TESTS_CMD_SPACED}") + + message(STATUS "Command to create a folder: ") + string(REPLACE ";" " " GCOVR_HTML_FOLDER_CMD_SPACED "${GCOVR_HTML_FOLDER_CMD}") + message(STATUS "${GCOVR_HTML_FOLDER_CMD_SPACED}") + + message(STATUS "Command to generate gcovr HTML coverage data: ") + string(REPLACE ";" " " GCOVR_HTML_CMD_SPACED "${GCOVR_HTML_CMD}") + message(STATUS "${GCOVR_HTML_CMD_SPACED}") + endif() + + add_custom_target(${Coverage_NAME} + COMMAND ${GCOVR_HTML_EXEC_TESTS_CMD} + COMMAND ${GCOVR_HTML_FOLDER_CMD} + COMMAND ${GCOVR_HTML_CMD} + + BYPRODUCTS ${PROJECT_BINARY_DIR}/${Coverage_NAME}/index.html # report directory + WORKING_DIRECTORY ${PROJECT_BINARY_DIR} + DEPENDS ${Coverage_DEPENDENCIES} + VERBATIM # Protect arguments to commands + COMMENT "Running gcovr to produce HTML code coverage report." + ) + + # Show info where to find the report + add_custom_command(TARGET ${Coverage_NAME} POST_BUILD + COMMAND ; + COMMENT "Open ./${Coverage_NAME}/index.html in your browser to view the coverage report." + ) + +endfunction() # setup_target_for_coverage_gcovr_html + +# Defines a target for running and collection code coverage information +# Builds dependencies, runs the given executable and outputs reports. +# NOTE! The executable should always have a ZERO as exit code otherwise +# the coverage generation will not complete. +# +# setup_target_for_coverage_fastcov( +# NAME testrunner_coverage # New target name +# EXECUTABLE testrunner -j ${PROCESSOR_COUNT} # Executable in PROJECT_BINARY_DIR +# DEPENDENCIES testrunner # Dependencies to build first +# BASE_DIRECTORY "../" # Base directory for report +# # (defaults to PROJECT_SOURCE_DIR) +# EXCLUDE "src/dir1/" "src/dir2/" # Patterns to exclude. +# NO_DEMANGLE # Don't demangle C++ symbols +# # even if c++filt is found +# SKIP_HTML # Don't create html report +# ) +function(setup_target_for_coverage_fastcov) + + set(options NO_DEMANGLE SKIP_HTML) + set(oneValueArgs BASE_DIRECTORY NAME) + set(multiValueArgs EXCLUDE EXECUTABLE EXECUTABLE_ARGS DEPENDENCIES FASTCOV_ARGS GENHTML_ARGS) + cmake_parse_arguments(Coverage "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) + + if(NOT FASTCOV_PATH) + message(FATAL_ERROR "fastcov not found! Aborting...") + endif() + + if(NOT GENHTML_PATH) + message(FATAL_ERROR "genhtml not found! Aborting...") + endif() + + # Set base directory (as absolute path), or default to PROJECT_SOURCE_DIR + if(Coverage_BASE_DIRECTORY) + get_filename_component(BASEDIR ${Coverage_BASE_DIRECTORY} ABSOLUTE) + else() + set(BASEDIR ${PROJECT_SOURCE_DIR}) + endif() + + # Collect excludes (Patterns, not paths, for fastcov) + set(FASTCOV_EXCLUDES "") + foreach(EXCLUDE ${Coverage_EXCLUDE} ${COVERAGE_EXCLUDES} ${COVERAGE_FASTCOV_EXCLUDES}) + list(APPEND FASTCOV_EXCLUDES "${EXCLUDE}") + endforeach() + list(REMOVE_DUPLICATES FASTCOV_EXCLUDES) + + # Conditional arguments + if(CPPFILT_PATH AND NOT ${Coverage_NO_DEMANGLE}) + set(GENHTML_EXTRA_ARGS "--demangle-cpp") + endif() + + # Set up commands which will be run to generate coverage data + set(FASTCOV_EXEC_TESTS_CMD ${Coverage_EXECUTABLE} ${Coverage_EXECUTABLE_ARGS}) + + set(FASTCOV_CAPTURE_CMD ${FASTCOV_PATH} ${Coverage_FASTCOV_ARGS} --gcov ${GCOV_PATH} + --search-directory ${BASEDIR} + --process-gcno + --lcov + --output ${Coverage_NAME}.info + --exclude ${FASTCOV_EXCLUDES} + --exclude ${FASTCOV_EXCLUDES} + ) + + if(Coverage_SKIP_HTML) + set(FASTCOV_HTML_CMD ";") + else() + set(FASTCOV_HTML_CMD ${GENHTML_PATH} ${GENHTML_EXTRA_ARGS} ${Coverage_GENHTML_ARGS} + -o ${Coverage_NAME} ${Coverage_NAME}.info + ) + endif() + + if(CODE_COVERAGE_VERBOSE) + message(STATUS "Code coverage commands for target ${Coverage_NAME} (fastcov):") + + message(" Running tests:") + string(REPLACE ";" " " FASTCOV_EXEC_TESTS_CMD_SPACED "${FASTCOV_EXEC_TESTS_CMD}") + message(" ${FASTCOV_EXEC_TESTS_CMD_SPACED}") + + message(" Capturing fastcov counters and generating report:") + string(REPLACE ";" " " FASTCOV_CAPTURE_CMD_SPACED "${FASTCOV_CAPTURE_CMD}") + message(" ${FASTCOV_CAPTURE_CMD_SPACED}") + + if(NOT Coverage_SKIP_HTML) + message(" Generating HTML report: ") + string(REPLACE ";" " " FASTCOV_HTML_CMD_SPACED "${FASTCOV_HTML_CMD}") + message(" ${FASTCOV_HTML_CMD_SPACED}") + endif() + endif() + + # Setup target + add_custom_target(${Coverage_NAME} + + # Cleanup fastcov + COMMAND ${FASTCOV_PATH} ${Coverage_FASTCOV_ARGS} --gcov ${GCOV_PATH} + --search-directory ${BASEDIR} + --zerocounters + + COMMAND ${FASTCOV_EXEC_TESTS_CMD} + COMMAND ${FASTCOV_CAPTURE_CMD} + COMMAND ${FASTCOV_HTML_CMD} + + # Set output files as GENERATED (will be removed on 'make clean') + BYPRODUCTS + ${Coverage_NAME}.info + ${Coverage_NAME}/index.html # report directory + + WORKING_DIRECTORY ${PROJECT_BINARY_DIR} + DEPENDS ${Coverage_DEPENDENCIES} + VERBATIM # Protect arguments to commands + COMMENT "Resetting code coverage counters to zero. Processing code coverage counters and generating report." + ) + + set(INFO_MSG "fastcov code coverage info report saved in ${Coverage_NAME}.info.") + if(NOT Coverage_SKIP_HTML) + string(APPEND INFO_MSG " Open ${PROJECT_BINARY_DIR}/${Coverage_NAME}/index.html in your browser to view the coverage report.") + endif() + # Show where to find the fastcov info report + add_custom_command(TARGET ${Coverage_NAME} POST_BUILD + COMMAND ${CMAKE_COMMAND} -E echo ${INFO_MSG} + ) + +endfunction() # setup_target_for_coverage_fastcov + +function(append_coverage_compiler_flags) + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${COVERAGE_COMPILER_FLAGS}" PARENT_SCOPE) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${COVERAGE_COMPILER_FLAGS}" PARENT_SCOPE) + set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} ${COVERAGE_COMPILER_FLAGS}" PARENT_SCOPE) + message(STATUS "Appending code coverage compiler flags: ${COVERAGE_COMPILER_FLAGS}") +endfunction() # append_coverage_compiler_flags diff --git a/login_server/cmake/GetGitRevisionDescription.cmake b/login_server/cmake/GetGitRevisionDescription.cmake new file mode 100644 index 000000000..1175e673a --- /dev/null +++ b/login_server/cmake/GetGitRevisionDescription.cmake @@ -0,0 +1,141 @@ +# - Returns a version string from Git +# +# These functions force a re-configure on each git commit so that you can +# trust the values of the variables in your build system. +# +# get_git_head_revision( [ ...]) +# +# Returns the refspec and sha hash of the current head revision +# +# git_describe( [ ...]) +# +# Returns the results of git describe on the source tree, and adjusting +# the output so that it tests false if an error occurs. +# +# git_get_exact_tag( [ ...]) +# +# Returns the results of git describe --exact-match on the source tree, +# and adjusting the output so that it tests false if there was no exact +# matching tag. +# +# Requires CMake 2.6 or newer (uses the 'function' command) +# +# Original Author: +# 2009-2010 Ryan Pavlik +# http://academic.cleardefinition.com +# Iowa State University HCI Graduate Program/VRAC +# +# Copyright Iowa State University 2009-2010. +# Distributed under the Boost Software License, Version 1.0. +# (See accompanying file LICENSE_1_0.txt or copy at +# http://www.boost.org/LICENSE_1_0.txt) + +if(__get_git_revision_description) + return() +endif() +set(__get_git_revision_description YES) + +# We must run the following at "include" time, not at function call time, +# to find the path to this module rather than the path to a calling list file +get_filename_component(_gitdescmoddir ${CMAKE_CURRENT_LIST_FILE} PATH) + +function(get_git_head_revision _refspecvar _hashvar) + set(GIT_PARENT_DIR "${CMAKE_CURRENT_SOURCE_DIR}") + set(GIT_DIR "${GIT_PARENT_DIR}/.git") + while(NOT EXISTS "${GIT_DIR}") # .git dir not found, search parent directories + set(GIT_PREVIOUS_PARENT "${GIT_PARENT_DIR}") + get_filename_component(GIT_PARENT_DIR ${GIT_PARENT_DIR} PATH) + if(GIT_PARENT_DIR STREQUAL GIT_PREVIOUS_PARENT) + # We have reached the root directory, we are not in git + set(${_refspecvar} "GITDIR-NOTFOUND" PARENT_SCOPE) + set(${_hashvar} "GITDIR-NOTFOUND" PARENT_SCOPE) + return() + endif() + set(GIT_DIR "${GIT_PARENT_DIR}/.git") + endwhile() + # check if this is a submodule + if(NOT IS_DIRECTORY ${GIT_DIR}) + file(READ ${GIT_DIR} submodule) + string(REGEX REPLACE "gitdir: (.*)\n$" "\\1" GIT_DIR_RELATIVE ${submodule}) + get_filename_component(SUBMODULE_DIR ${GIT_DIR} PATH) + + if (IS_ABSOLUTE ${GIT_DIR_RELATIVE}) + set(GIT_DIR ${GIT_DIR_RELATIVE}) + else() + get_filename_component(GIT_DIR ${SUBMODULE_DIR}/${GIT_DIR_RELATIVE} ABSOLUTE) + endif() + + endif() + set(GIT_DATA "${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/git-data") + if(NOT EXISTS "${GIT_DATA}") + file(MAKE_DIRECTORY "${GIT_DATA}") + endif() + + if(NOT EXISTS "${GIT_DIR}/HEAD") + return() + endif() + set(HEAD_FILE "${GIT_DATA}/HEAD") + configure_file("${GIT_DIR}/HEAD" "${HEAD_FILE}" COPYONLY) + + configure_file("${_gitdescmoddir}/GetGitRevisionDescription.cmake.in" + "${GIT_DATA}/grabRef.cmake" + @ONLY) + include("${GIT_DATA}/grabRef.cmake") + + set(${_refspecvar} "${HEAD_REF}" PARENT_SCOPE) + set(${_hashvar} "${HEAD_HASH}" PARENT_SCOPE) +endfunction() + +function(git_describe _var) + if(NOT GIT_FOUND) + find_package(Git QUIET) + endif() + get_git_head_revision(refspec hash) + if(NOT GIT_FOUND) + set(${_var} "GIT-NOTFOUND" PARENT_SCOPE) + return() + endif() + if(NOT hash) + set(${_var} "HEAD-HASH-NOTFOUND" PARENT_SCOPE) + return() + endif() + + # TODO sanitize + #if((${ARGN}" MATCHES "&&") OR + # (ARGN MATCHES "||") OR + # (ARGN MATCHES "\\;")) + # message("Please report the following error to the project!") + # message(FATAL_ERROR "Looks like someone's doing something nefarious with git_describe! Passed arguments ${ARGN}") + #endif() + + #message(STATUS "Arguments to execute_process: ${ARGN}") + + execute_process(COMMAND + ${GIT_EXECUTABLE} + describe + ${hash} + ${ARGN} + WORKING_DIRECTORY + "${CMAKE_SOURCE_DIR}" + RESULT_VARIABLE + res + OUTPUT_VARIABLE + out + ERROR_QUIET + OUTPUT_STRIP_TRAILING_WHITESPACE) + if(NOT res EQUAL 0) + set(out "${out}-${res}-NOTFOUND") + endif() + + set(${_var} "${out}" PARENT_SCOPE) +endfunction() + +function(git_get_exact_tag _var) + git_describe(out --exact-match ${ARGN}) + set(${_var} "${out}" PARENT_SCOPE) +endfunction() + +function(git_get_tag _var) + git_describe(out --tags ${ARGN}) + set(${_var} "${out}" PARENT_SCOPE) +endfunction() diff --git a/login_server/cmake/LICENSE_1_0.txt b/login_server/cmake/LICENSE_1_0.txt new file mode 100644 index 000000000..36b7cd93c --- /dev/null +++ b/login_server/cmake/LICENSE_1_0.txt @@ -0,0 +1,23 @@ +Boost Software License - Version 1.0 - August 17th, 2003 + +Permission is hereby granted, free of charge, to any person or organization +obtaining a copy of the software and accompanying documentation covered by +this license (the "Software") to use, reproduce, display, distribute, +execute, and transmit the Software, and to prepare derivative works of the +Software, and to permit third-parties to whom the Software is furnished to +do so, all subject to the following: + +The copyright notices in the Software and this entire statement, including +the above license grant, this restriction and the following disclaimer, +must be included in all copies of the Software, in whole or in part, and +all derivative works of the Software, unless such copies or derivative +works are solely in the form of machine-executable object code generated by +a source language processor. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT +SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. diff --git a/login_server/cmake/README.md b/login_server/cmake/README.md new file mode 100644 index 000000000..f61e85d03 --- /dev/null +++ b/login_server/cmake/README.md @@ -0,0 +1,72 @@ +Additional CMake Modules +======================== + +Introduction +------------ + +This is a collection of additional CMake modules. +Most of them are from Ryan Pavlik (). + +How to Integrate +---------------- + +These modules are probably best placed wholesale into a "cmake" subdirectory +of your project source. + +If you use Git, try installing [git-subtree][1], +so you can easily use this repository for subtree merges, updating simply. + +For the initial checkout: + + cd projectdir + + git subtree add --squash --prefix=cmake git@github.com:bilke/cmake-modules.git master + +For updates: + + cd projectdir + + git subtree pull --squash --prefix=cmake git@github.com:bilke/cmake-modules.git master + +For pushing to upstream: + + cd projectdir + + git subtree push --prefix=cmake git@github.com:bilke/cmake-modules.git master + + +How to Use +---------- + +At the minimum, all you have to do is add a line like this near the top +of your root CMakeLists.txt file (but not before your project() call): + + list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake") + + +Licenses +-------- + +The modules that are written by Ryan Pavlik are all subject to this license: + +> Copyright Iowa State University 2009-2011 +> +> Distributed under the Boost Software License, Version 1.0. +> +> (See accompanying file `LICENSE_1_0.txt` or copy at +> ) + +Modules based on those included with CMake as well as modules added by me (Lars +Bilke) are under the OSI-approved **BSD** license, which is included in each of +those modules. A few other modules are modified from other sources - when in +doubt, look at the .cmake. + +Important License Note! +----------------------- + +If you find this file inside of another project, rather at the top-level +directory, you're in a separate project that is making use of these modules. +That separate project can (and probably does) have its own license specifics. + + +[1]: http://github.com/apenwarr/git-subtree "Git Subtree master" From b40b6bc289f65b293b98985abac74dc423675905 Mon Sep 17 00:00:00 2001 From: einhornimmond Date: Mon, 19 Apr 2021 12:21:50 +0200 Subject: [PATCH 0002/1050] removed personal data from test/main.cpp (need also a history rewrite after it is merged to master) --- login_server/src/cpp/test/main.cpp | 175 ++--------------------------- 1 file changed, 12 insertions(+), 163 deletions(-) diff --git a/login_server/src/cpp/test/main.cpp b/login_server/src/cpp/test/main.cpp index 62482c664..3d47ae816 100644 --- a/login_server/src/cpp/test/main.cpp +++ b/login_server/src/cpp/test/main.cpp @@ -41,8 +41,14 @@ int load() { // init server config, init seed array Poco::AutoPtr test_config(new Poco::Util::LayeredConfiguration); - auto cfg = new Poco::Util::PropertyFileConfiguration("Gradido_LoginServer_Test.properties"); - test_config->add(cfg); + try { + auto cfg = new Poco::Util::PropertyFileConfiguration("Gradido_LoginServer_Test.properties"); + test_config->add(cfg); + } + catch (Poco::Exception& ex) { + printf("[load] error loading Gradido_LoginServer_Test.properties, make sure this file exist! (%s)\n", ex.displayText().data()); + return -3; + } if (!ServerConfig::initServerCrypto(*test_config)) { //printf("[Gradido_LoginServer::%s] error init server crypto\n", __FUNCTION__); @@ -89,168 +95,8 @@ int load() { } std::stringstream ss; - ss << "INSERT INTO `users` (`id`, `email`, `first_name`, `last_name`, `password`, `pubkey`, `privkey`, `created`, `email_checked`, `passphrase_shown`, `language`, `disabled`) VALUES " - << "(1, 'einhorn_silas@ist-allein.info', 'DDD', 'Schultz', 13134558453895551556, 0x146d3fb9e88abc0fca0b0091c1ab1b32b399be037436f340befa8bf004461889, 0x0dcc08960f45f631fe23bc7ddee0724cedc9ec0c861ce30f5091d20ffd96062d08ca215726fb9bd64860c754772e945eea4cc872ed0a36c7b640e8b0bf7a873ec6765fa510711622341347ce2307b5ce, '2020-02-20 16:05:44', 1, 0, 'de', 0), " - << "(2, 'Dario.Rekowski@buerotiger.de', 'Darios', 'Bruder', 12910944485867375321, 0x952e215a21d4376b4ac252c4bf41e156e1498e1b6b8ccf2a6826d96712f4f461, 0x4d40bf0860655f728312140dc3741e897bc2d13d00ea80a63e2961046a5a7bd8315397dfb488b89377087bc1a5f4f3af8ffdcf203329ae23ba04be7d38ad3852699d90ff1fc00e5b1ca92b64cc59c01f, '2020-02-20 16:05:44', 1, 0, 'de', 0), " - << "(3, 'morgenstern175@es-ist-liebe.de', 'Dieter', 'Schultz', 13528673707291575501, 0xb539944bf6444a2bfc988244f0c0c9dc326452be9b8a2a43fcd90663719f4f6d, 0x5461fda60b719b65ba00bd6298e48410c4cbf0e89deb13cc784ba8978cf047454e8556ee3eddc8487ee835c33a83163bc8d8babbf2a5c431876bc0a0c114ff0a0d6b57baa12cf8f23c64fb642c862db5, '2020-02-20 16:05:45', 1, 0, 'de', 0), " - << "(4, 'spaceteam@gmx.de', 'Bernd', 'Hckstdt', 15522411320147607375, 0x476b059744f08b0995522b484c90f8d2f47d9b59f4b3c96d9dc0ae6ab7b84979, 0x5277bf044cba4fec64e6f4d38da132755b029161231daefc9a7b4692ad37e05cdd88e0a2c2215baf854dd3a813578c214167af1113607e9f999ca848a7598ba5068e38f2a1afb097e4752a88024d79c8, '2020-02-20 16:05:46', 1, 0, 'de', 0), " - << "(5, 'em741@gmx.de', 'Thomas', 'Markuk', 7022671043835614958, 0xb1584e169d60a7e771d3a348235dfd7b5f9e8235fcc26090761a0264b0daa6ff, 0xb46fb7110bf91e28f367aa80f84d1bbd639b6f689f4b0aa28c0f71529232df9bf9ee0fb02fa4c1b9f5a6799c82d119e5646f7231d011517379faaacf6513d973ac3043d4c786490ba62d56d75b86164d, '2020-02-20 16:05:46', 1, 0, 'de', 0), " - << "(6, 'coin-info12@gradido.net', 'coin-info12', 'Test', 1548398919826089202, 0x4046ae49c1b620f2a321aba0c874fa2bc7ba844ab808bb0eeb18a908d468db14, 0x9522657ecd7456eedf86d065aa087ba7a94a8961a8e4950d044136155d38fe0840f2c0a2876ce055b3eaa6e9ab95c5feba89e535e0434fb2648d94d6e6ec68211aa2ea9e42d1ccd40b6b3c31e41f848e, '2020-02-20 16:05:47', 1, 0, 'de', 0), " - << "(7, 'info@einhornimmond.de', 'Alex', 'Wesper', 5822761891727948301, 0xb13ede3402abb8f29722b14fec0a2006ae7a3a51fb677cd6a2bbd797ac6905a5, 0x6aa39d7670c64a31639c7d89b874ad929b2eaeb2e5992dbad71b6cea700bf9e3c6cf866d0f0fdc22b44a0ebf51a860799e880ef86266199931dd0a301e5552db44b9b7fa99ed5945652bc7b31eff767c, '2020-02-20 16:05:47', 1, 0, 'de', 0); "; - runMysql(ss.str()); - ss.str(std::string()); - - ss << "INSERT INTO `groups` (`id`, `alias`, `name`, `url`, `description`) VALUES " - << "(1, 'gdd1', 'Gradido1', 'gdd1.gradido.com', 'Der erste offizielle Gradido Server (zum Testen)'); "; - runMysql(ss.str()); - ss.str(std::string()); - - ss << "INSERT INTO `hedera_accounts` (`id`, `user_id`, `account_hedera_id`, `account_key_id`, `balance`, `network_type`, `updated`) VALUES " - << "(1, 2, 15, 1, 1000000000000, 1, '2020-09-03 11:13:52'), " - << "(2, 2, 17, 2, 22787166159, 0, '2020-09-03 11:13:56'); "; - runMysql(ss.str()); - ss.str(std::string()); - - ss << "INSERT INTO `hedera_ids` (`id`, `shardNum`, `realmNum`, `num`) VALUES " - << "(1, 0, 0, 3), " - << "(2, 0, 0, 4)," - << "(3, 0, 0, 5)," - << "(4, 0, 0, 6)," - << "(6, 0, 0, 3)," - << "(10, 0, 0, 7)," - << "(11, 0, 0, 8)," - << "(12, 0, 0, 9)," - << "(13, 0, 0, 10)," - << "(14, 0, 0, 12)," - << "(15, 0, 0, 3327)," - << "(16, 0, 0, 3323)," - << "(17, 0, 0, 8707)," - << "(18, 0, 0, 39446);"; - runMysql(ss.str()); - ss.str(std::string()); - ss << "INSERT INTO `crypto_keys` (`id`, `private_key`, `public_key`, `crypto_key_type_id`) VALUES " - << "(1, 0xd2d4735174e6d2577573a0ec2767fba6511b1e37cd1cd98674912797fd37e12373d6b4d771034cc114f80b2afb2956b6b3e020ddea2db1142c61f3fa87c72a6c, 0x73d6b4d771034cc114f80b2afb2956b6b3e020ddea2db1142c61f3fa87c72a6c, 3), " - << "(2, 0xf1c3285be6ef869a2a8deef6caee56a5a7c2660e2bce24f39e420dd8d42fe8894bd027b2799e46dc7111a4fdd0eac3848054331f844a358de15c5b0ed3eb1740fab13ecb5a271d480e040c9266bcd584, 0xd6f6d29fb277f86ac7c3098dc799028974223e8dce6b1dd57b03940bf35fae7f, 1); "; - runMysql(ss.str()); - ss.str(std::string()); - - ss << "INSERT INTO `hedera_topics` (`id`, `topic_hedera_id`, `name`, `auto_renew_account_hedera_id`, `auto_renew_period`, `group_id`, `admin_key_id`, `submit_key_id`, `current_timeout`, `sequence_number`, `updated`) VALUES " - << "(1, 18, 'from Pauls created with his python script', 1, 0, 1, NULL, NULL, '1999-12-31 23:00:00', 0, '2020-09-14 18:29:04'); "; - runMysql(ss.str()); - ss.str(std::string()); - - ss << "INSERT INTO `node_servers` (`id`, `url`, `port`, `group_id`, `server_type`, `node_hedera_id`, `last_live_sign`) VALUES " - << "(1, 'http://0.testnet.hedera.com', 50211, 0, 4, 1, '2000-01-01 00:00:00'), " - << "(2, 'http://1.testnet.hedera.com', 50211, 0, 4, 2, '2000-01-01 00:00:00'), " - << "(3, 'http://2.testnet.hedera.com', 50211, 0, 4, 3, '2000-01-01 00:00:00'), " - << "(4, 'http://3.testnet.hedera.com', 50211, 0, 4, 4, '2000-01-01 00:00:00'), " - << "(5, 'http://35.237.200.180', 50211, 0, 3, 6, '2000-01-01 00:00:00'), " - << "(6, 'http://35.186.191.247', 50211, 0, 3, 2, '2000-01-01 00:00:00'), " - << "(7, 'http://35.192.2.25', 50211, 0, 3, 3, '2000-01-01 00:00:00'), " - << "(8, 'http://35.199.161.108', 50211, 0, 3, 4, '2000-01-01 00:00:00'), " - << "(9, 'http://35.203.82.240', 50211, 0, 3, 10, '2000-01-01 00:00:00'), " - << "(10, 'http://35.236.5.219', 50211, 0, 3, 11, '2000-01-01 00:00:00'), " - << "(11, 'http://35.197.192.225', 50211, 0, 3, 12, '2000-01-01 00:00:00'), " - << "(12, 'http://35.242.233.154', 50211, 0, 3, 13, '2000-01-01 00:00:00'), " - << "(13, 'http://35.240.118.96', 50211, 0, 3, 12, '2000-01-01 00:00:00'), " - << "(14, 'http://35.204.86.32', 50211, 0, 3, 14, '2000-01-01 00:00:00'), " - << "(15, 'https://gradido.dario-rekowski.de/', 443, 1, 2, 0, '2000-01-01 00:00:00'), " - << "(16, 'http://192.168.178.232', 8340, 1, 1, 0, '2000-01-01 00:00:00'); "; - runMysql(ss.str()); - - printf("init db in : %s\n", timeUsed.string().data()); - /*mysqlStatement - << "TRUNCATE hedera_accounts; " - << "ALTER TABLE hedera_accounts AUTO_INCREMENT = 1; " - << "TRUNCATE hedera_ids; " - << "ALTER TABLE hedera_ids AUTO_INCREMENT = 1; " - << "TRUNCATE crypto_keys; " - << "ALTER TABLE crypto_keys AUTO_INCREMENT = 1; " - << "TRUNCATE hedera_topics; " - << "ALTER TABLE hedera_topics AUTO_INCREMENT = 1; " - << "TRUNCATE groups; " - << "ALTER TABLE groups AUTO_INCREMENT = 1; " - << "TRUNCATE node_servers; " - << "ALTER TABLE node_servers AUTO_INCREMENT = 1; " - << "TRUNCATE users; " - << "ALTER TABLE users AUTO_INCREMENT = 1; " - ; - - try { - mysqlStatement.execute(true); - } - catch (Poco::Exception& ex) { - printf("exception by cleaning up db: %s\n", ex.displayText().data()); - } - mysqlStatement.reset(session); - mysqlStatement - << "INSERT INTO `users` (`id`, `email`, `first_name`, `last_name`, `password`, `pubkey`, `privkey`, `created`, `email_checked`, `passphrase_shown`, `language`, `disabled`) VALUES " - << "(1, 'einhorn_silas@ist-allein.info', 'DDD', 'Schultz', 13134558453895551556, 0x146d3fb9e88abc0fca0b0091c1ab1b32b399be037436f340befa8bf004461889, 0x0dcc08960f45f631fe23bc7ddee0724cedc9ec0c861ce30f5091d20ffd96062d08ca215726fb9bd64860c754772e945eea4cc872ed0a36c7b640e8b0bf7a873ec6765fa510711622341347ce2307b5ce, '2020-02-20 16:05:44', 1, 0, 'de', 0), " - << "(2, 'Dario.Rekowski@buerotiger.de', 'Darios', 'Bruder', 12910944485867375321, 0x952e215a21d4376b4ac252c4bf41e156e1498e1b6b8ccf2a6826d96712f4f461, 0x4d40bf0860655f728312140dc3741e897bc2d13d00ea80a63e2961046a5a7bd8315397dfb488b89377087bc1a5f4f3af8ffdcf203329ae23ba04be7d38ad3852699d90ff1fc00e5b1ca92b64cc59c01f, '2020-02-20 16:05:44', 1, 0, 'de', 0), " - << "(3, 'morgenstern175@es-ist-liebe.de', 'Dieter', 'Schultz', 13528673707291575501, 0xb539944bf6444a2bfc988244f0c0c9dc326452be9b8a2a43fcd90663719f4f6d, 0x5461fda60b719b65ba00bd6298e48410c4cbf0e89deb13cc784ba8978cf047454e8556ee3eddc8487ee835c33a83163bc8d8babbf2a5c431876bc0a0c114ff0a0d6b57baa12cf8f23c64fb642c862db5, '2020-02-20 16:05:45', 1, 0, 'de', 0), " - << "(4, 'spaceteam@gmx.de', 'Bernd', 'Hckstdt', 15522411320147607375, 0x476b059744f08b0995522b484c90f8d2f47d9b59f4b3c96d9dc0ae6ab7b84979, 0x5277bf044cba4fec64e6f4d38da132755b029161231daefc9a7b4692ad37e05cdd88e0a2c2215baf854dd3a813578c214167af1113607e9f999ca848a7598ba5068e38f2a1afb097e4752a88024d79c8, '2020-02-20 16:05:46', 1, 0, 'de', 0), " - << "(5, 'em741@gmx.de', 'Thomas', 'Markuk', 7022671043835614958, 0xb1584e169d60a7e771d3a348235dfd7b5f9e8235fcc26090761a0264b0daa6ff, 0xb46fb7110bf91e28f367aa80f84d1bbd639b6f689f4b0aa28c0f71529232df9bf9ee0fb02fa4c1b9f5a6799c82d119e5646f7231d011517379faaacf6513d973ac3043d4c786490ba62d56d75b86164d, '2020-02-20 16:05:46', 1, 0, 'de', 0), " - << "(6, 'coin-info12@gradido.net', 'coin-info12', 'Test', 1548398919826089202, 0x4046ae49c1b620f2a321aba0c874fa2bc7ba844ab808bb0eeb18a908d468db14, 0x9522657ecd7456eedf86d065aa087ba7a94a8961a8e4950d044136155d38fe0840f2c0a2876ce055b3eaa6e9ab95c5feba89e535e0434fb2648d94d6e6ec68211aa2ea9e42d1ccd40b6b3c31e41f848e, '2020-02-20 16:05:47', 1, 0, 'de', 0), " - << "(7, 'info@einhornimmond.de', 'Alex', 'Wesper', 5822761891727948301, 0xb13ede3402abb8f29722b14fec0a2006ae7a3a51fb677cd6a2bbd797ac6905a5, 0x6aa39d7670c64a31639c7d89b874ad929b2eaeb2e5992dbad71b6cea700bf9e3c6cf866d0f0fdc22b44a0ebf51a860799e880ef86266199931dd0a301e5552db44b9b7fa99ed5945652bc7b31eff767c, '2020-02-20 16:05:47', 1, 0, 'de', 0); " - - << "INSERT INTO `groups` (`id`, `alias`, `name`, `url`, `description`) VALUES " - << "(1, 'gdd1', 'Gradido1', 'gdd1.gradido.com', 'Der erste offizielle Gradido Server (zum Testen)'); " - - << "INSERT INTO `hedera_accounts` (`id`, `user_id`, `account_hedera_id`, `account_key_id`, `balance`, `network_type`, `updated`) VALUES " - << "(1, 2, 15, 1, 1000000000000, 1, '2020-09-03 11:13:52'), " - << "(2, 2, 17, 2, 22787166159, 0, '2020-09-03 11:13:56'); " - - << "INSERT INTO `hedera_ids` (`id`, `shardNum`, `realmNum`, `num`) VALUES " - << "(1, 0, 0, 3), " - << "(2, 0, 0, 4)," - << "(3, 0, 0, 5)," - << "(4, 0, 0, 6)," - << "(6, 0, 0, 3)," - << "(10, 0, 0, 7)," - << "(11, 0, 0, 8)," - << "(12, 0, 0, 9)," - << "(13, 0, 0, 10)," - << "(14, 0, 0, 12)," - << "(15, 0, 0, 3327)," - << "(16, 0, 0, 3323)," - << "(17, 0, 0, 8707)," - << "(18, 0, 0, 39446);" - - << "INSERT INTO `crypto_keys` (`id`, `private_key`, `public_key`, `crypto_key_type_id`) VALUES " - << "(1, 0xd2d4735174e6d2577573a0ec2767fba6511b1e37cd1cd98674912797fd37e12373d6b4d771034cc114f80b2afb2956b6b3e020ddea2db1142c61f3fa87c72a6c, 0x73d6b4d771034cc114f80b2afb2956b6b3e020ddea2db1142c61f3fa87c72a6c, 3), " - << "(2, 0xf1c3285be6ef869a2a8deef6caee56a5a7c2660e2bce24f39e420dd8d42fe8894bd027b2799e46dc7111a4fdd0eac3848054331f844a358de15c5b0ed3eb1740fab13ecb5a271d480e040c9266bcd584, 0xd6f6d29fb277f86ac7c3098dc799028974223e8dce6b1dd57b03940bf35fae7f, 1); " - - << "INSERT INTO `hedera_topics` (`id`, `topic_hedera_id`, `name`, `auto_renew_account_hedera_id`, `auto_renew_period`, `group_id`, `admin_key_id`, `submit_key_id`, `current_timeout`, `sequence_number`, `updated`) VALUES " - << "(1, 18, 'from Pauls created with his python script', 1, 0, 1, NULL, NULL, '1999-12-31 23:00:00', 0, '2020-09-14 18:29:04'); " - - << "INSERT INTO `node_servers` (`id`, `url`, `port`, `group_id`, `server_type`, `node_hedera_id`, `last_live_sign`) VALUES " - << "(1, 'http://0.testnet.hedera.com', 50211, 0, 4, 1, '2000-01-01 00:00:00'), " - << "(2, 'http://1.testnet.hedera.com', 50211, 0, 4, 2, '2000-01-01 00:00:00'), " - << "(3, 'http://2.testnet.hedera.com', 50211, 0, 4, 3, '2000-01-01 00:00:00'), " - << "(4, 'http://3.testnet.hedera.com', 50211, 0, 4, 4, '2000-01-01 00:00:00'), " - << "(5, 'http://35.237.200.180', 50211, 0, 3, 6, '2000-01-01 00:00:00'), " - << "(6, 'http://35.186.191.247', 50211, 0, 3, 2, '2000-01-01 00:00:00'), " - << "(7, 'http://35.192.2.25', 50211, 0, 3, 3, '2000-01-01 00:00:00'), " - << "(8, 'http://35.199.161.108', 50211, 0, 3, 4, '2000-01-01 00:00:00'), " - << "(9, 'http://35.203.82.240', 50211, 0, 3, 10, '2000-01-01 00:00:00'), " - << "(10, 'http://35.236.5.219', 50211, 0, 3, 11, '2000-01-01 00:00:00'), " - << "(11, 'http://35.197.192.225', 50211, 0, 3, 12, '2000-01-01 00:00:00'), " - << "(12, 'http://35.242.233.154', 50211, 0, 3, 13, '2000-01-01 00:00:00'), " - << "(13, 'http://35.240.118.96', 50211, 0, 3, 12, '2000-01-01 00:00:00'), " - << "(14, 'http://35.204.86.32', 50211, 0, 3, 14, '2000-01-01 00:00:00'), " - << "(15, 'https://gradido.dario-rekowski.de/', 443, 1, 2, 0, '2000-01-01 00:00:00'), " - << "(16, 'http://192.168.178.232', 8340, 1, 1, 0, '2000-01-01 00:00:00'); " - ; - - try { - mysqlStatement.execute(); - } - catch (Poco::Exception& ex) { - printf("exception by init db with data: %s\n", ex.displayText().data()); - } - */ fillTests(); for (std::list::iterator it = gTests.begin(); it != gTests.end(); it++) { @@ -287,7 +133,10 @@ void ende() int main(int argc, char** argv) { - load(); + if (load() < 0) { + printf("early exit\n"); + return -42; + } run(); ende(); ::testing::InitGoogleTest(&argc, argv); From 6cba90dcdba8bcf63830174456aeafe634614ca9 Mon Sep 17 00:00:00 2001 From: einhorn_b Date: Tue, 20 Apr 2021 12:43:15 +0200 Subject: [PATCH 0003/1050] update gradido_protocol --- login_server/src/proto | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/login_server/src/proto b/login_server/src/proto index ff412f735..77dee5685 160000 --- a/login_server/src/proto +++ b/login_server/src/proto @@ -1 +1 @@ -Subproject commit ff412f735667b30233c0ce00d461f209ac7dde7c +Subproject commit 77dee5685ebba543ea1cd2321580ad56c92f5775 From 79d775b642d4d07da00b0e91f8281d416b53042d Mon Sep 17 00:00:00 2001 From: einhorn_b Date: Tue, 20 Apr 2021 13:02:23 +0200 Subject: [PATCH 0004/1050] fix syntax error --- login_server/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/login_server/CMakeLists.txt b/login_server/CMakeLists.txt index 66bcd8d84..340a3ca76 100644 --- a/login_server/CMakeLists.txt +++ b/login_server/CMakeLists.txt @@ -228,7 +228,7 @@ setup_target_for_coverage_gcovr_html( EXECUTABLE Gradido_LoginServer_Test DEPENDENCIES lib/libmariadb.so.3 ) - +endif() # ---------------------- Test ----------------------------------------- #project(Gradido_LoginServer_Test C CXX) #_TEST_BUILD From f9e360ec3f0c606c36725bf39e666e9077879f8b Mon Sep 17 00:00:00 2001 From: einhorn_b Date: Tue, 20 Apr 2021 13:33:11 +0200 Subject: [PATCH 0005/1050] prepare for testing --- .github/workflows/test.yml | 31 +++++++++++++++++++ login_server/Dockerfile.debug | 6 ---- .../Dockerfiles/Dockerfile.dependencies | 8 +++++ login_server/Dockerfiles/build_and_run.sh | 3 +- mariadb/Dockerfile | 18 ++++++++++- 5 files changed, 58 insertions(+), 8 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 78d381820..163604ed1 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -162,6 +162,37 @@ jobs: min_coverage: 10 token: ${{ github.token }} + ############################################################################## + # JOB: UNIT TEST LOGIN-SERVER ############################################### + ############################################################################## + unit_test_login_server: + name: Unit tests - Login-Server + runs-on: ubuntu-latest + needs: [build_test_login_server] + steps: + ########################################################################## + # CHECKOUT CODE ########################################################## + ########################################################################## + - name: Checkout code + uses: actions/checkout@v2 + ########################################################################## + # DOWNLOAD DOCKER IMAGE ################################################## + ########################################################################## + - name: Download Docker Image (Login-Server) + uses: actions/download-artifact@v2 + with: + name: docker-loginserver-test + path: /tmp + - name: Load Docker Image + run: docker load < /tmp/loginserver.tar + ########################################################################## + # UNIT TESTS FRONTEND #################################################### + ########################################################################## + - name: Login-Server | Unit tests + run: | + docker run -v ~/coverage:/app/coverage --rm gradido/frontend:test yarn run test + cp -r ~/coverage ./coverage + #test: # runs-on: ubuntu-latest # steps: diff --git a/login_server/Dockerfile.debug b/login_server/Dockerfile.debug index f1b235e4e..97f9333a9 100644 --- a/login_server/Dockerfile.debug +++ b/login_server/Dockerfile.debug @@ -24,12 +24,6 @@ RUN ./unix_parse_proto.sh FROM debug as login_server_debug ENV DOCKER_WORKDIR="/code" -#RUN apt-get update && \ -# apt-get install -y --no-install-recommends gdb && \ -# apt-get autoclean && \ -# apt-get autoremove && \ -# apt-get clean && \ -# rm -rf /var/lib/apt/lists/* VOLUME /var/log/grd_login VOLUME /code/src diff --git a/login_server/Dockerfiles/Dockerfile.dependencies b/login_server/Dockerfiles/Dockerfile.dependencies index 0194c7c82..569b7a56d 100644 --- a/login_server/Dockerfiles/Dockerfile.dependencies +++ b/login_server/Dockerfiles/Dockerfile.dependencies @@ -11,7 +11,15 @@ WORKDIR ${DOCKER_WORKDIR} COPY ./dependencies ./dependencies COPY ./conanfile.txt ./conanfile.txt +COPY ./cmake ./cmake +# install gcovr because it is needed for coverage report +RUN apt-get update && \ + apt-get install -y --no-install-recommends gcovr && \ + apt-get autoclean && \ + apt-get autoremove && \ + apt-get clean && \ + rm -rf /var/lib/apt/lists/* RUN cd dependencies/mariadb-connector-c && \ mkdir build && \ diff --git a/login_server/Dockerfiles/build_and_run.sh b/login_server/Dockerfiles/build_and_run.sh index 59408daca..11e4ed0fb 100644 --- a/login_server/Dockerfiles/build_and_run.sh +++ b/login_server/Dockerfiles/build_and_run.sh @@ -3,7 +3,8 @@ cp build/conan* build_vol/ cd build_vol cmake -DCMAKE_BUILD_TYPE=Debug .. +make -j$(nproc) protoc grpc_cpp_plugin make -j$(nproc) Gradido_LoginServer #echo "building done" chmod +x ./bin/Gradido_LoginServer -#./bin/Gradido_LoginServer +./bin/Gradido_LoginServer diff --git a/mariadb/Dockerfile b/mariadb/Dockerfile index abfc45d1d..bd490ff9c 100644 --- a/mariadb/Dockerfile +++ b/mariadb/Dockerfile @@ -1,7 +1,7 @@ ######################################################################################################### # mariadb server ######################################################################################################### -From mariadb/server:10.5 as mariadb_server +FROM mariadb/server:10.5 as mariadb_server ENV DOCKER_WORKDIR="/docker-entrypoint-initdb.d" @@ -19,3 +19,19 @@ COPY ./community_server/skeema/ . RUN cd ./gradido_community/ && for f in *.sql; do cp -- "$f" "../d_$f"; sed -i '1i use gradido_community;' "../d_$f"; done RUN cd ./gradido_community/insert && for f in *.sql; do cp -- "$f" "../../e_$f"; sed -i '1i use gradido_community;' "../../e_$f"; done +######################################################################################################### +# mariadb server with test dbs +######################################################################################################### +FROM mariadb_server as mariadb_server_test + +# create test databases +COPY ./mariadb/setup_test_dbs.sql a2_setup_dbs.sql + +# login server test db +COPY ./login_server/skeema/ . +RUN cd ./gradido_login/ && for f in *.sql; do cp -- "$f" "../b_$f"; sed -i '1i use gradido_login_test;' "../b_$f"; done +RUN cd ./gradido_login/insert && for f in *.sql; do cp -- "$f" "../../c_$f"; sed -i '1i use gradido_login_test;' "../../c_$f"; done +# community server test db +COPY ./community_server/skeema/ . +RUN cd ./gradido_community/ && for f in *.sql; do cp -- "$f" "../d_$f"; sed -i '1i use gradido_community_test;' "../d_$f"; done +RUN cd ./gradido_community/insert && for f in *.sql; do cp -- "$f" "../../e_$f"; sed -i '1i use gradido_community_test;' "../../e_$f"; done From 5c411c5cb12a8db4b858df06df7927ddb2df9e88 Mon Sep 17 00:00:00 2001 From: einhorn_b Date: Tue, 20 Apr 2021 19:03:16 +0200 Subject: [PATCH 0006/1050] fix tests, make better output for debugging failing tests --- login_server/src/cpp/Crypto/Passphrase.cpp | 17 ++++--- login_server/src/cpp/ServerConfig.cpp | 50 ++++++++++++------- login_server/src/cpp/ServerConfig.h | 7 +-- login_server/src/cpp/test/TestHash.cpp | 45 ----------------- login_server/src/cpp/test/TestHash.h | 19 ------- .../crypto/TestAuthenticatedEncryption.cpp | 15 +++--- .../src/cpp/test/crypto/TestPassphrase.cpp | 17 ++++--- login_server/src/cpp/test/main.cpp | 19 ++++--- login_server/src/cpp/test/main.h | 1 - 9 files changed, 74 insertions(+), 116 deletions(-) delete mode 100644 login_server/src/cpp/test/TestHash.cpp delete mode 100644 login_server/src/cpp/test/TestHash.h diff --git a/login_server/src/cpp/Crypto/Passphrase.cpp b/login_server/src/cpp/Crypto/Passphrase.cpp index cad034673..fe764cf90 100644 --- a/login_server/src/cpp/Crypto/Passphrase.cpp +++ b/login_server/src/cpp/Crypto/Passphrase.cpp @@ -179,8 +179,8 @@ Poco::AutoPtr Passphrase::create(const Poco::UInt16 wordIndices[PHRA return new Passphrase(clearPassphrase, wordSource); } -Poco::AutoPtr Passphrase::generate(const Mnemonic* wordSource) -{ +Poco::AutoPtr Passphrase::generate(const Mnemonic* wordSource) +{ auto em = ErrorManager::getInstance(); auto mm = MemoryManager::getInstance(); auto word_indices = mm->getFreeMemory(PHRASE_WORD_COUNT * sizeof(Poco::UInt16)); @@ -266,7 +266,7 @@ bool Passphrase::createWordIndices() return false; } - + //DHASH key = DRMakeStringHash(passphrase); size_t pass_phrase_size = mPassphraseString.size(); @@ -352,9 +352,9 @@ const Mnemonic* Passphrase::detectMnemonic(const std::string& passphrase, const if (keyPair) { user_public_key_hex = DataTypeConverter::pubkeyToHex(keyPair->getPublicKey()); - printf("user public key hex: %s\n", user_public_key_hex.data()); + //printf("user public key hex: %s\n", user_public_key_hex.data()); } - + std::string last_word_not_found = ""; for (int i = 0; i < ServerConfig::Mnemonic_Types::MNEMONIC_MAX; i++) { Mnemonic& m = ServerConfig::g_Mnemonic_WordLists[i]; bool existAll = true; @@ -362,6 +362,8 @@ const Mnemonic* Passphrase::detectMnemonic(const std::string& passphrase, const if (*it == "\0" || *it == "" || it->size() < 3) continue; if (!m.isWordExist(*it)) { existAll = false; + //printf("couldn't find word: %s\n", (*it).data()); + last_word_not_found = (*it); // leave inner for-loop break; } @@ -373,7 +375,7 @@ const Mnemonic* Passphrase::detectMnemonic(const std::string& passphrase, const auto key_pair = KeyPairEd25519::create(test_passphrase); if (key_pair) { std::string current_key_pair = DataTypeConverter::pubkeyToHex(key_pair->getPublicKey()); - printf("public key hex to compare: %s\n", current_key_pair.data()); + //printf("public key hex to compare: %s\n", current_key_pair.data()); if (*key_pair != *keyPair) { delete key_pair; @@ -387,5 +389,6 @@ const Mnemonic* Passphrase::detectMnemonic(const std::string& passphrase, const return &ServerConfig::g_Mnemonic_WordLists[i]; } } + printf("last word not found: %s\n", last_word_not_found.data()); return nullptr; -} \ No newline at end of file +} diff --git a/login_server/src/cpp/ServerConfig.cpp b/login_server/src/cpp/ServerConfig.cpp index dc5dbcecf..094d3198e 100644 --- a/login_server/src/cpp/ServerConfig.cpp +++ b/login_server/src/cpp/ServerConfig.cpp @@ -66,18 +66,18 @@ namespace ServerConfig { HederaNetworkType g_HederaNetworkType = HEDERA_TESTNET; Poco::Timespan g_HederaDefaultTimeout; -#ifdef __linux__ -#include +#ifdef __linux__ +#include #include #include -#include -#include +#include +#include #include -#endif //#ifdef __linux__ +#endif //#ifdef __linux__ std::string getHostIpString() { -#ifdef __linux__ +#ifdef __linux__ struct ifaddrs * ifAddrStruct = NULL; struct ifaddrs * ifa = NULL; void * tmpAddrPtr = NULL; @@ -107,7 +107,7 @@ namespace ServerConfig { } if (ifAddrStruct != NULL) freeifaddrs(ifAddrStruct); return ipAddressString; -#else //__linux__ +#else //__linux__ std::string ipAddressString = ""; auto host = Poco::Net::DNS::thisHost(); for (auto it = host.addresses().begin(); it != host.addresses().end(); it++) { @@ -126,10 +126,10 @@ namespace ServerConfig { //break; } return ipAddressString; -#endif // __linux__ +#endif // __linux__ } - bool replaceZeroIPWithLocalhostIP(std::string& url) + bool replaceZeroIPWithLocalhostIP(std::string& url) { auto pos = url.find("0.0.0.0", 0); if (pos != std::string::npos) { @@ -138,7 +138,7 @@ namespace ServerConfig { url.replace(pos, 7, ipAddressString); } } - + //printf("ipaddress: %s\n", ipAddress.data()); return true; @@ -171,7 +171,21 @@ namespace ServerConfig { return HEDERA_CONSENSUS_FORMAT_BINARY; } - + const char* mnemonicTypeToString(Mnemonic_Types type) + { + /* + MNEMONIC_GRADIDO_BOOK_GERMAN_RANDOM_ORDER, + MNEMONIC_GRADIDO_BOOK_GERMAN_RANDOM_ORDER_FIXED_CASES, + MNEMONIC_BIP0039_SORTED_ORDER + */ + switch(type) { + case MNEMONIC_GRADIDO_BOOK_GERMAN_RANDOM_ORDER: return "german random order"; + case MNEMONIC_GRADIDO_BOOK_GERMAN_RANDOM_ORDER_FIXED_CASES: return "german random order fixed cases"; + case MNEMONIC_BIP0039_SORTED_ORDER: return "BIP 0039 sorted"; + } + return ""; + } + bool loadMnemonicWordLists() @@ -227,7 +241,7 @@ namespace ServerConfig { g_ServerCryptoKey = new ObfusArray(realBinSize, key); g_ServerKeySeed = new ObfusArray(9*8); Poco::Int64 i1 = randombytes_random(); - Poco::Int64 i2 = randombytes_random(); + Poco::Int64 i2 = randombytes_random(); g_ServerKeySeed->put(0, i1 | (i2 << 8)); //g_ServerAdminPublic = cfg.getString("crypto.server_admin_public"); @@ -245,7 +259,7 @@ namespace ServerConfig { replaceZeroIPWithLocalhostIP(g_php_serverPath); g_php_serverHost = cfg.getString("phpServer.host", ""); replaceZeroIPWithLocalhostIP(g_php_serverHost); - //g_ServerSetupType + //g_ServerSetupType auto serverSetupTypeString = cfg.getString("ServerSetupType", ""); g_ServerSetupType = getServerSetupTypeFromString(serverSetupTypeString); @@ -284,7 +298,7 @@ namespace ServerConfig { if (cfg.getInt("unsecure.allow_all_passwords", 0) == 1) { g_AllowUnsecureFlags = (AllowUnsecure)(g_AllowUnsecureFlags | UNSECURE_ALLOW_ALL_PASSWORDS); } - + g_HederaDefaultTimeout = cfg.getInt("hedera.default_timeout", 5); g_gRPCRelayServerFullURL = cfg.getString("grpc.server", ""); @@ -338,8 +352,8 @@ namespace ServerConfig { try { #ifdef POCO_NETSSL_WIN g_SSL_CLient_Context = new Context(Context::CLIENT_USE, "cacert.pem", Context::VERIFY_RELAXED, Context::OPT_DEFAULTS); -#else - +#else + g_SSL_CLient_Context = new Context(Context::CLIENT_USE, "", "", Poco::Path::config() + "grd_login/cacert.pem", Context::VERIFY_RELAXED, 9, true, "ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH"); #endif } catch(Poco::Exception& ex) { @@ -391,7 +405,7 @@ namespace ServerConfig { Poco::LocalDateTime now; std::string dateTimeStr = Poco::DateTimeFormatter::format(now, Poco::DateTimeFormat::ISO8601_FORMAT); - file << dateTimeStr << std::endl; + file << dateTimeStr << std::endl; for (std::string line; std::getline(datas, line); ) { file << line << std::endl; @@ -400,4 +414,4 @@ namespace ServerConfig { file.close(); mutex.unlock(); } -} \ No newline at end of file +} diff --git a/login_server/src/cpp/ServerConfig.h b/login_server/src/cpp/ServerConfig.h index 2ae0b6c3d..beaebee13 100644 --- a/login_server/src/cpp/ServerConfig.h +++ b/login_server/src/cpp/ServerConfig.h @@ -61,7 +61,7 @@ namespace ServerConfig { HEDERA_UNKNOWN }; - + extern Mnemonic g_Mnemonic_WordLists[MNEMONIC_MAX]; @@ -101,7 +101,8 @@ namespace ServerConfig { bool initServerCrypto(const Poco::Util::LayeredConfiguration& cfg); bool initEMailAccount(const Poco::Util::LayeredConfiguration& cfg); bool initSSLClientContext(); - + + const char* mnemonicTypeToString(Mnemonic_Types type); void writeToFile(std::istream& datas, std::string fileName); @@ -109,4 +110,4 @@ namespace ServerConfig { }; -#endif //__GRADIDO_LOGIN_SERVER_SERVER_CONFIG__ \ No newline at end of file +#endif //__GRADIDO_LOGIN_SERVER_SERVER_CONFIG__ diff --git a/login_server/src/cpp/test/TestHash.cpp b/login_server/src/cpp/test/TestHash.cpp deleted file mode 100644 index 82c41e37e..000000000 --- a/login_server/src/cpp/test/TestHash.cpp +++ /dev/null @@ -1,45 +0,0 @@ -#include "TestHash.h" -#include "../lib/DRHash.h" - -#include - -TestHash::TestHash() -{ - -} - -TestHash::~TestHash() -{ - -} - -int TestHash::init() -{ - return 0; -} - -int TestHash::test() -{ - std::string testEmails[] = { - "a","b", "c", "d", "aa", "ab", - "@", ".d", "gmx", "@gmx", "@gmx.de", - "***REMOVED***", - "***REMOVED***", - "coin-info5@gradido.net", - "coin-info6@gradido.net", - "coin-info8@gradido.net", - "coin-info9@gradido.net", - "coin-info10@gradido.net", - "coin-info11@gradido.net", - "coin-info12@gradido.net" - }; - printf("hashes: \n"); - for (int i = 0; i < 20; i++) { - DHASH id = DRMakeStringHash(testEmails[i].data(), testEmails[i].size()); - //printf("%s: %lu\n", testEmails[i].data(), id); - //"***REMOVED***" => 1211212 - printf("\"%s\" => %lu,\n", testEmails[i].data(), id); - } - return 0; -} - diff --git a/login_server/src/cpp/test/TestHash.h b/login_server/src/cpp/test/TestHash.h deleted file mode 100644 index 6157195d3..000000000 --- a/login_server/src/cpp/test/TestHash.h +++ /dev/null @@ -1,19 +0,0 @@ -#ifndef __GRADIDO_LOGIN_SERVER_TEST_HASH_ -#define __GRADIDO_LOGIN_SERVER_TEST_HASH_ - -#include "Test.h" - -class TestHash : public Test -{ -public: - TestHash(); - ~TestHash(); - //! \return 0 if init okay, else return != 0 - int init(); - - //! \return 0 if okay, else return != 0 - int test(); - const char* getName() { return "TestHash"; }; -}; - -#endif //__GRADIDO_LOGIN_SERVER_TEST_HASH_ \ No newline at end of file diff --git a/login_server/src/cpp/test/crypto/TestAuthenticatedEncryption.cpp b/login_server/src/cpp/test/crypto/TestAuthenticatedEncryption.cpp index e863e773d..3aa6842cc 100644 --- a/login_server/src/cpp/test/crypto/TestAuthenticatedEncryption.cpp +++ b/login_server/src/cpp/test/crypto/TestAuthenticatedEncryption.cpp @@ -2,7 +2,6 @@ #include "../../Crypto/SecretKeyCryptography.h" -#include "../../lib/Profiler.h" #include "../../lib/DataTypeConverter.h" #include "../ServerConfig.h" @@ -16,9 +15,8 @@ TEST_F(TestAuthenticatedEncryption, encryptDecryptTest) { EXPECT_FALSE(authenticated_encryption.hasKey()); EXPECT_EQ(authenticated_encryption.getKeyHashed(), 0); - Profiler time_used; - EXPECT_EQ(authenticated_encryption.createKey("dariofrodo@gmx.de", "r3an7d_spassw"), SecretKeyCryptography::AUTH_ENCRYPT_OK); - printf("create key duration: %s\n", time_used.string().data()); + EXPECT_EQ(authenticated_encryption.createKey("max.musterman@gmail.com", "r3an7d_spassw"), SecretKeyCryptography::AUTH_CREATE_ENCRYPTION_KEY_SUCCEED); + //printf("create key duration: %s\n", time_used.string().data()); EXPECT_TRUE(authenticated_encryption.hasKey()); @@ -28,15 +26,14 @@ TEST_F(TestAuthenticatedEncryption, encryptDecryptTest) { MemoryBin* encrypted_message = nullptr; memcpy(*test_message_bin, test_message.data(), test_message.size()); - time_used.reset(); EXPECT_EQ(authenticated_encryption.encrypt(test_message_bin, &encrypted_message), SecretKeyCryptography::AUTH_ENCRYPT_OK); - printf("encrypt message duration: %s\n", time_used.string().data()); + //printf("encrypt message duration: %s\n", time_used.string().data()); MemoryBin* decrypted_message = nullptr; - time_used.reset(); EXPECT_EQ(authenticated_encryption.decrypt(encrypted_message, &decrypted_message), SecretKeyCryptography::AUTH_DECRYPT_OK); - printf("decrypt message duration: %s\n", time_used.string().data()); + //printf("decrypt message duration: %s\n", time_used.string().data()); EXPECT_EQ(std::string((const char*)*decrypted_message, decrypted_message->size()), test_message); + mm->releaseMemory(decrypted_message); // */ -} \ No newline at end of file +} diff --git a/login_server/src/cpp/test/crypto/TestPassphrase.cpp b/login_server/src/cpp/test/crypto/TestPassphrase.cpp index 010353e17..405aca2c4 100644 --- a/login_server/src/cpp/test/crypto/TestPassphrase.cpp +++ b/login_server/src/cpp/test/crypto/TestPassphrase.cpp @@ -83,7 +83,7 @@ void PassphraseTest::SetUp() wordIndices3 )); - + } TEST_F(PassphraseTest, detectMnemonic) { @@ -95,7 +95,7 @@ TEST_F(PassphraseTest, detectMnemonic) { if (ServerConfig::MNEMONIC_GRADIDO_BOOK_GERMAN_RANDOM_ORDER_FIXED_CASES == type) continue; EXPECT_EQ(Passphrase::detectMnemonic(testDataSet.passphrases[type]), &ServerConfig::g_Mnemonic_WordLists[type]); } - + } EXPECT_FALSE(Passphrase::detectMnemonic("Dies ist eine ungültige Passphrase")); } @@ -110,6 +110,11 @@ TEST_F(PassphraseTest, detectMnemonicWithPubkey) { auto key_pair = new KeyPairEd25519(*pubkeyBin); for (int i = 0; i < ServerConfig::MNEMONIC_MAX; i++) { ServerConfig::Mnemonic_Types type = (ServerConfig::Mnemonic_Types)i; + auto mnemonic_type = Passphrase::detectMnemonic(testDataSet.passphrases[type], key_pair); + if(nullptr == mnemonic_type) { + printf("no match for passphrase: %s\n", testDataSet.passphrases[type].data()); + printf("type: %s\n", ServerConfig::mnemonicTypeToString(type)); + } EXPECT_EQ(Passphrase::detectMnemonic(testDataSet.passphrases[type], key_pair), &ServerConfig::g_Mnemonic_WordLists[type]); } } @@ -162,19 +167,19 @@ TEST_F(PassphraseTest, createAndTransform) { auto test_data_set = *it; auto mnemonic = &ServerConfig::g_Mnemonic_WordLists[test_data_set.mnemonicType]; auto tr = Passphrase::create(test_data_set.wordIndices, mnemonic); - + auto word_indices = tr->getWordIndices(); - + for (int i = 0; i < PHRASE_WORD_COUNT; i++) { EXPECT_EQ(word_indices[i], test_data_set.wordIndices[i]); } auto key_pair_ed25519 = KeyPairEd25519::create(tr); - //KeyPair key_pair; + //KeyPair key_pair; //key_pair.generateFromPassphrase(test_data_set.passphrases[test_data_set.mnemonicType].data(), mnemonic); EXPECT_EQ(DataTypeConverter::pubkeyToHex(key_pair_ed25519->getPublicKey()), test_data_set.pubkeyHex); //EXPECT_EQ(key_pair.getPubkeyHex(), test_data_set.pubkeyHex); - //auto key_pair_old + //auto key_pair_old delete key_pair_ed25519; ASSERT_FALSE(tr.isNull()); EXPECT_TRUE(tr->checkIfValid()); diff --git a/login_server/src/cpp/test/main.cpp b/login_server/src/cpp/test/main.cpp index 3d47ae816..5d74ff27e 100644 --- a/login_server/src/cpp/test/main.cpp +++ b/login_server/src/cpp/test/main.cpp @@ -16,7 +16,6 @@ std::list gTests; void fillTests() { gTests.push_back(new TestTasks()); - gTests.push_back(new TestHash()); gTests.push_back(new TestRegExp()); gTests.push_back(new TestPassphrase()); // gTests.push_back(new LoginTest()); @@ -73,14 +72,18 @@ int load() { auto conn = ConnectionManager::getInstance(); //conn->setConnection() //printf("try connect login server mysql db\n"); - conn->setConnectionsFromConfig(*test_config, CONNECTION_MYSQL_LOGIN_SERVER); + try { + conn->setConnectionsFromConfig(*test_config, CONNECTION_MYSQL_LOGIN_SERVER); + } catch(Poco::Exception& ex) { + printf("Poco Exception by connecting to db: %s\n", ex.displayText().data()); + } //printf("try connect php server mysql \n"); - conn->setConnectionsFromConfig(*test_config, CONNECTION_MYSQL_PHP_SERVER); + //conn->setConnectionsFromConfig(*test_config, CONNECTION_MYSQL_PHP_SERVER); Profiler timeUsed; // clean up and fill db - std::string tables[] = { + std::string tables[] = { "hedera_accounts", "hedera_ids", "crypto_keys", @@ -95,8 +98,8 @@ int load() { } std::stringstream ss; - - + + fillTests(); for (std::list::iterator it = gTests.begin(); it != gTests.end(); it++) { @@ -125,13 +128,13 @@ void ende() if (*it) { delete *it; } - + } gTests.clear(); } -int main(int argc, char** argv) +int main(int argc, char** argv) { if (load() < 0) { printf("early exit\n"); diff --git a/login_server/src/cpp/test/main.h b/login_server/src/cpp/test/main.h index 33838aa66..730006aab 100644 --- a/login_server/src/cpp/test/main.h +++ b/login_server/src/cpp/test/main.h @@ -1,5 +1,4 @@ #include "TestTasks.h" -#include "TestHash.h" #include "TestRegExp.h" #include "crypto/TestPassphrase.h" From 0d71a37601b63fba78d9c7d1d932426db8aa7cd1 Mon Sep 17 00:00:00 2001 From: einhornimmond Date: Wed, 21 Apr 2021 15:36:55 +0200 Subject: [PATCH 0007/1050] check for null ptr to prevent exception --- .../HTTPInterface/AdminCheckUserBackup.cpp | 61 ++++++++++--------- .../src/cpsp/adminCheckUserBackup.cpsp | 27 ++++---- 2 files changed, 47 insertions(+), 41 deletions(-) diff --git a/login_server/src/cpp/HTTPInterface/AdminCheckUserBackup.cpp b/login_server/src/cpp/HTTPInterface/AdminCheckUserBackup.cpp index 3139ff59a..5cd2f04a8 100644 --- a/login_server/src/cpp/HTTPInterface/AdminCheckUserBackup.cpp +++ b/login_server/src/cpp/HTTPInterface/AdminCheckUserBackup.cpp @@ -5,7 +5,7 @@ #include "Poco/DeflatingStream.h" -#line 7 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminCheckUserBackup.cpsp" +#line 7 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminCheckUserBackup.cpsp" #include "../Crypto/KeyPairEd25519.h" #include "../Crypto/Passphrase.h" @@ -24,7 +24,7 @@ struct SListEntry std::vector> backups; }; -#line 1 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_old.cpsp" +#line 1 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\header_old.cpsp" #include "../ServerConfig.h" @@ -43,7 +43,7 @@ void AdminCheckUserBackup::handleRequest(Poco::Net::HTTPServerRequest& request, if (_compressResponse) response.set("Content-Encoding", "gzip"); Poco::Net::HTMLForm form(request, request.stream()); -#line 26 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminCheckUserBackup.cpsp" +#line 26 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\adminCheckUserBackup.cpsp" const char* pageName = "Admin Check User Backups"; auto cm = ConnectionManager::getInstance(); @@ -80,18 +80,21 @@ void AdminCheckUserBackup::handleRequest(Poco::Net::HTTPServerRequest& request, auto passphrase_object = Passphrase::create(passphrase, wordSource); auto key_pair_from_passhrase = KeyPairEd25519::create(passphrase_object); bool matching = false; - if(key_pair_from_passhrase->isTheSame(key_pair)) { - matching = true; - } - delete key_pair_from_passhrase; - if(user_id != last_user_id) { - last_user_id = user_id; - if(matching) continue; - } else { - auto lastEntry = notMatchingEntrys.back(); - if(lastEntry.user->getModel()->getID() == user_id && matching == true) { - notMatchingEntrys.pop_back(); - continue; + if(key_pair_from_passhrase) + { + if(key_pair_from_passhrase->isTheSame(key_pair)) { + matching = true; + } + delete key_pair_from_passhrase; + if(user_id != last_user_id) { + last_user_id = user_id; + if(matching) continue; + } else { + auto lastEntry = notMatchingEntrys.back(); + if(lastEntry.user->getModel()->getID() == user_id && matching == true) { + notMatchingEntrys.pop_back(); + continue; + } } } @@ -122,12 +125,12 @@ void AdminCheckUserBackup::handleRequest(Poco::Net::HTTPServerRequest& request, responseStream << "\n"; responseStream << "\n"; responseStream << "Gradido Login Server: "; -#line 9 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_old.cpsp" +#line 9 "F:\\Gradido\\gradido_stage2_local\\login_server\\src\\cpsp\\header_old.cpsp" responseStream << ( pageName ); responseStream << "\n"; responseStream << "\n"; responseStream << "\n"; responseStream << " diff --git a/frontend/src/views/Pages/KontoOverview.vue b/frontend/src/views/Pages/KontoOverview.vue index 10942b7f5..a0aa6b5ae 100644 --- a/frontend/src/views/Pages/KontoOverview.vue +++ b/frontend/src/views/Pages/KontoOverview.vue @@ -2,17 +2,17 @@
- +

@@ -28,25 +28,24 @@ export default { name: 'Overview', data() { return { - row_form: true, - row_check: false, - row_thx: false, transactions: [], + showTransactionList: true, } }, + props: { + balance: { type: Number, default: 0 }, + }, components: { GddStatus, GddSend, GddTable, }, - created() { - this.$store.dispatch('accountBalance', this.$store.state.session_id) - }, methods: { - setRows(rows) { - this.row_form = rows.row_form - this.row_check = rows.row_check - this.row_thx = rows.row_thx + toggleShowList(bool) { + this.showTransactionList = bool + }, + updateTransactions(data) { + this.$emit('update-balance', data.ammount) }, setTransactions(transactions) { this.transactions = transactions From 8ba26803bc4392b50f65e5e754e404930caea5b0 Mon Sep 17 00:00:00 2001 From: Dario Rekowski on RockPI Date: Tue, 27 Apr 2021 14:19:12 +0000 Subject: [PATCH 0024/1050] fix bug with object instead of array --- .../src/Controller/AppRequestsController.php | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/community_server/src/Controller/AppRequestsController.php b/community_server/src/Controller/AppRequestsController.php index 9419cf28e..f72085f93 100644 --- a/community_server/src/Controller/AppRequestsController.php +++ b/community_server/src/Controller/AppRequestsController.php @@ -98,8 +98,8 @@ class AppRequestsController extends AppController $data = $this->request->input('json_decode'); } $session_id = 0; - if(isset($data['session_id'])) { - $session_id = $data['session_id']; + if(isset($data->session_id)) { + $session_id = $data->session_id; } $login_request_result = $this->requestLogin($session_id, false); if($login_request_result !== true) { @@ -119,12 +119,12 @@ class AppRequestsController extends AppController return ['state' => 'error', 'msg' => 'amount is invalid', 'details' => $param['amount']]; } - if(isset($data['memo'])) { - $param['memo'] = $data['memo']; + if(isset($data->memo)) { + $param['memo'] = $data->memo; } - if(isset($data['auto_sign'])) { - $param['auto_sign'] = boolval($data['auto_sign']); + if(isset($data->auto_sign)) { + $param['auto_sign'] = boolval($data->auto_sign); } return true; From a24b231547fac2b8aa850f09c08cc743ffe0cad8 Mon Sep 17 00:00:00 2001 From: Moriz Wahl Date: Tue, 27 Apr 2021 16:29:45 +0200 Subject: [PATCH 0025/1050] rename method to update balance --- frontend/src/views/KontoOverview/GddSend.vue | 2 +- frontend/src/views/Pages/KontoOverview.vue | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/frontend/src/views/KontoOverview/GddSend.vue b/frontend/src/views/KontoOverview/GddSend.vue index 7f2bd3601..1e7ef8464 100644 --- a/frontend/src/views/KontoOverview/GddSend.vue +++ b/frontend/src/views/KontoOverview/GddSend.vue @@ -261,7 +261,7 @@ export default { this.$emit('toggle-show-list', false) this.row_check = false this.row_thx = true - this.$emit('update-transctions', { ammount: Number(this.ajaxCreateData.amount) }) + this.$emit('update-balance', { ammount: Number(this.ajaxCreateData.amount) }) } else { alert('error') this.$emit('toggle-show-list', true) diff --git a/frontend/src/views/Pages/KontoOverview.vue b/frontend/src/views/Pages/KontoOverview.vue index a0aa6b5ae..c65916887 100644 --- a/frontend/src/views/Pages/KontoOverview.vue +++ b/frontend/src/views/Pages/KontoOverview.vue @@ -7,7 +7,7 @@
@@ -44,7 +44,7 @@ export default { toggleShowList(bool) { this.showTransactionList = bool }, - updateTransactions(data) { + updateBalance(data) { this.$emit('update-balance', data.ammount) }, setTransactions(transactions) { From fea2c176b429d396a7ec26e8b40a904acee83bb9 Mon Sep 17 00:00:00 2001 From: einhornimmond Date: Tue, 27 Apr 2021 18:58:19 +0200 Subject: [PATCH 0026/1050] update skeema call to allow also for unsafe db updates --- skeema/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/skeema/Dockerfile b/skeema/Dockerfile index 8c921ba23..f2eb27b66 100644 --- a/skeema/Dockerfile +++ b/skeema/Dockerfile @@ -25,4 +25,4 @@ COPY ./mariadb/.skeema.login ./gradido_login/.skeema COPY ./community_server/skeema/ . COPY ./mariadb/.skeema.community ./gradido_community/.skeema -CMD skeema push \ No newline at end of file +CMD skeema push --allow-unsafe \ No newline at end of file From 67326c7840e280d0b83deaa0dc463fa1d761e093 Mon Sep 17 00:00:00 2001 From: einhornimmond Date: Tue, 27 Apr 2021 19:19:32 +0200 Subject: [PATCH 0027/1050] fix error "Integrity constraint violation: 1052 Column 'id' in where clause is ambiguous" --- community_server/src/Model/Table/StateBalancesTable.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/community_server/src/Model/Table/StateBalancesTable.php b/community_server/src/Model/Table/StateBalancesTable.php index 0878f5a23..d3dfa0709 100644 --- a/community_server/src/Model/Table/StateBalancesTable.php +++ b/community_server/src/Model/Table/StateBalancesTable.php @@ -180,7 +180,7 @@ class StateBalancesTable extends Table $transactions = $transactionsTable ->find('all') - ->where(['id IN' => array_keys($transaction_ids)]) + ->where(['Transactions.id IN' => array_keys($transaction_ids)]) ->contain(['TransactionCreations', 'TransactionSendCoins']); $transactions_indiced = []; From 41a5b269fcd4a24c3152593f02261ccc73f5bc9e Mon Sep 17 00:00:00 2001 From: einhornimmond Date: Tue, 27 Apr 2021 19:33:44 +0200 Subject: [PATCH 0028/1050] add some more --- .../src/Controller/AppRequestsController.php | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/community_server/src/Controller/AppRequestsController.php b/community_server/src/Controller/AppRequestsController.php index f72085f93..dfc11d4a2 100644 --- a/community_server/src/Controller/AppRequestsController.php +++ b/community_server/src/Controller/AppRequestsController.php @@ -61,8 +61,8 @@ class AppRequestsController extends AppController if(is_array($field)) { $one_exist = false; foreach($field as $oneField) { - if(isset($data[$oneField])) { - $param[$oneField] = $data[$oneField]; + if(isset($data->$oneField)) { + $param[$oneField] = $data->$oneField; $one_exist = true; break; } @@ -71,10 +71,10 @@ class AppRequestsController extends AppController return ['state' => 'error', 'msg' => 'missing field of set', 'details' => $field]; } } else { - if(!isset($data[$field])) { + if(!isset($data->$field)) { return ['state' => 'error', 'msg' => 'missing field', 'details' => $field . ' not found']; } else { - $param[$field] = $data[$field]; + $param[$field] = $data->$field; } } } @@ -85,9 +85,9 @@ class AppRequestsController extends AppController { foreach(array_keys($replaceKeys) as $key) { $newKey = $replaceKeys[$key]; - if(isset($data[$key])) { - $data[$newKey] = $data[$key]; - unset($data[$key]); + if(isset($data->$key)) { + $data->$newKey = $data->$key; + unset($data->$key); } } } From e82d4d6598a707c71bcd106729e0fa7a34f82eab Mon Sep 17 00:00:00 2001 From: einhornimmond Date: Tue, 27 Apr 2021 19:44:50 +0200 Subject: [PATCH 0029/1050] add short description for target date in creation transaction --- docu/community-server.api.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docu/community-server.api.md b/docu/community-server.api.md index a4b5c327d..1c95c74b3 100644 --- a/docu/community-server.api.md +++ b/docu/community-server.api.md @@ -150,6 +150,7 @@ with - `session_id`: optional, only used if cookie GRADIDO_LOGIN not exist and no sesion_id in php session - `email` or `username` or `pubkey`: used to identify how gets the gradidos (email and username are only aliases for pubkey) - `amount`: gdd amount to transfer in gradido cent (10000000 = 1000,00 GDD) +- `target_date`: target date for creation, can be max 3 months before current date, but not after current date, allowed formats do you find here: https://pocoproject.org/docs/Poco.DateTimeFormat.html - `memo`: text for receiver, currently saved as clear text in blockchain - `auto_sign`: if set to true, transaction will be directly signed on login-server and proceed if needed signs are there if set to false, transaction must be signed after on `http://localhost/account/checkTransactions` From c838e16c04fbfc82a4cad089ca6434c4b984bd7c Mon Sep 17 00:00:00 2001 From: einhornimmond Date: Tue, 27 Apr 2021 23:25:27 +0200 Subject: [PATCH 0030/1050] fix bug with missing default values --- login_server/src/cpp/model/table/PendingTask.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/login_server/src/cpp/model/table/PendingTask.cpp b/login_server/src/cpp/model/table/PendingTask.cpp index 57115ea56..dfaf0c65d 100644 --- a/login_server/src/cpp/model/table/PendingTask.cpp +++ b/login_server/src/cpp/model/table/PendingTask.cpp @@ -10,13 +10,13 @@ namespace model namespace table { PendingTask::PendingTask() - : mUserId(0), mHederaId(0), mTaskTypeId(TASK_TYPE_NONE) + : mUserId(0), mHederaId(0), mTaskTypeId(TASK_TYPE_NONE), mChildPendingTaskId(0), mParentPendingTaskId(0) { } PendingTask::PendingTask(int userId, std::string serializedProtoRequest, TaskType type) : mUserId(userId), mHederaId(0), mRequest((const unsigned char*)serializedProtoRequest.data(), serializedProtoRequest.size()), - mTaskTypeId(TASK_TYPE_NONE) + mTaskTypeId(TASK_TYPE_NONE), mChildPendingTaskId(0), mParentPendingTaskId(0) { } From 4eb712e2178de5cd1e70c285d972ed6a43cff788 Mon Sep 17 00:00:00 2001 From: Ulf Gebhardt Date: Tue, 27 Apr 2021 22:47:32 +0200 Subject: [PATCH 0031/1050] fixed frontend production docker build & refactored frontend file structure - frontend server runs on port 3000 by default - frontend production docker build successfully runs & builds - frontend production docker build is no longer reachable from the outside - moved server.js in subfolder run/ --- docker-compose.override.yml | 2 ++ docker-compose.yml | 6 +++--- frontend/.env.dist | 3 +-- frontend/Dockerfile | 13 ++++++------- frontend/package.json | 2 +- frontend/run/server.js | 14 ++++++++++++++ frontend/server.js | 7 ------- frontend/vue.config.js | 18 ++++++------------ 8 files changed, 33 insertions(+), 32 deletions(-) create mode 100644 frontend/run/server.js delete mode 100644 frontend/server.js diff --git a/docker-compose.override.yml b/docker-compose.override.yml index 5a505478b..944f8d976 100644 --- a/docker-compose.override.yml +++ b/docker-compose.override.yml @@ -8,6 +8,8 @@ services: image: gradido/frontend:development build: target: development + networks: + - external-net environment: - NODE_ENV="development" # - DEBUG=true diff --git a/docker-compose.yml b/docker-compose.yml index 8b5bf33de..59e617d71 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -15,13 +15,13 @@ services: context: ./frontend target: production networks: - - external-net + - internal-net ports: - - 8080:8080 + - 3000:3000 environment: # Envs used in Dockerfile # - DOCKER_WORKDIR="/app" - # - PORT="8080" + # - PORT=3000 - BUILD_DATE - BUILD_VERSION - BUILD_COMMIT diff --git a/frontend/.env.dist b/frontend/.env.dist index 39edd4b4e..7815be556 100644 --- a/frontend/.env.dist +++ b/frontend/.env.dist @@ -1,3 +1,2 @@ LOGIN_API_URL=http://localhost/login_api/ -COMMUNITY_API_URL=http://localhost/api/ -VUE_PATH=/vue +COMMUNITY_API_URL=http://localhost/api/ \ No newline at end of file diff --git a/frontend/Dockerfile b/frontend/Dockerfile index f133926b2..5ec90fe81 100644 --- a/frontend/Dockerfile +++ b/frontend/Dockerfile @@ -15,7 +15,7 @@ ENV BUILD_COMMIT="0000000" ## SET NODE_ENV ENV NODE_ENV="production" ## App relevant Envs -ENV PORT="8080" +ENV PORT="3000" # Labels LABEL org.label-schema.build-date="${BUILD_DATE}" @@ -82,15 +82,14 @@ FROM base as production # Copy "binary"-files from build image COPY --from=build ${DOCKER_WORKDIR}/dist ./dist -#COPY --from=build ${DOCKER_WORKDIR}/node_modules ./node_modules -#COPY --from=build ${DOCKER_WORKDIR}/nuxt.config.js ./nuxt.config.js +# We also copy the node_modules express and serve-static for the run script +COPY --from=build ${DOCKER_WORKDIR}/node_modules ./node_modules # Copy static files -# TODO - this should be one Folder containign all stuff needed to be copied -#COPY --from=build ${DOCKER_WORKDIR}/constants ./constants -#COPY --from=build ${DOCKER_WORKDIR}/static ./static -#COPY --from=build ${DOCKER_WORKDIR}/locales ./locales +COPY --from=build ${DOCKER_WORKDIR}/public ./public # Copy package.json for script definitions (lock file should not be needed) COPY --from=build ${DOCKER_WORKDIR}/package.json ./package.json +# Copy run scripts run/ +COPY --from=build ${DOCKER_WORKDIR}/run ./run # Run command CMD /bin/sh -c "yarn run start" diff --git a/frontend/package.json b/frontend/package.json index 00e0ca45b..222061847 100755 --- a/frontend/package.json +++ b/frontend/package.json @@ -3,7 +3,7 @@ "version": "0.9.4", "private": true, "scripts": { - "start": "node server.js", + "start": "node run/server.js", "serve": "vue-cli-service serve --open", "build": "vue-cli-service build", "lint": "eslint --ext .js,.vue .", diff --git a/frontend/run/server.js b/frontend/run/server.js new file mode 100644 index 000000000..470acdc4e --- /dev/null +++ b/frontend/run/server.js @@ -0,0 +1,14 @@ +// Imports +const express = require('express') +const serveStatic = require('serve-static') + +// Port +const port = process.env.PORT || 3000 + +// Express Server +const app = express() +app.use(serveStatic(__dirname + '/../dist')) +app.listen(port) + +// eslint-disable-next-line no-console +console.log(`http://frontend:${port} server started.`) diff --git a/frontend/server.js b/frontend/server.js deleted file mode 100644 index 5bcebd90a..000000000 --- a/frontend/server.js +++ /dev/null @@ -1,7 +0,0 @@ -var express = require('express') -var serveStatic = require('serve-static') -var app = express() -app.use(serveStatic(__dirname + '/dist')) -var port = process.env.PORT || 5000 -app.listen(port) -// console.log('http://localhost:5000 server started.'); diff --git a/frontend/vue.config.js b/frontend/vue.config.js index ad2c10585..3d196b0c7 100644 --- a/frontend/vue.config.js +++ b/frontend/vue.config.js @@ -1,17 +1,11 @@ const path = require('path') const dotenv = require('dotenv-webpack') -function resolveSrc(_path) { - return path.join(__dirname, _path) -} - -let vue_path = process.env.VUE_PATH -if (vue_path == undefined) { - vue_path = '/vue' -} - // vue.config.js module.exports = { + devServer: { + port: process.env.PORT || 3000, + }, pluginOptions: { i18n: { locale: 'de', @@ -21,12 +15,12 @@ module.exports = { }, }, lintOnSave: true, - publicPath: vue_path + '/', + // publicPath: '/', configureWebpack: { // Set up all the aliases we use in our app. resolve: { alias: { - assets: resolveSrc('src/assets'), + assets: path.join(__dirname, 'src/assets'), }, }, plugins: [new dotenv()], @@ -35,5 +29,5 @@ module.exports = { // Enable CSS source maps. sourceMap: process.env.NODE_ENV !== 'production', }, - outputDir: path.resolve(__dirname, './dist' + vue_path), + outputDir: path.resolve(__dirname, './dist'), } From 47203915999b68822914e73fcd7d5724437ba22a Mon Sep 17 00:00:00 2001 From: Ulf Gebhardt Date: Wed, 28 Apr 2021 03:19:33 +0200 Subject: [PATCH 0032/1050] nginx fix for vue interface - localhost/vue resolves to frontend - localhost:3000/vue resolves to frontend in development - images are resolved properly - remaining services are reachable as normal - fixed image path to be relative instead of absolute - cleaned nginx config --- community_server/webroot/.htaccess | 1 + frontend/src/routes/router.js | 1 + frontend/src/views/KontoOverview/GddSend.vue | 2 +- frontend/vue.config.js | 2 +- nginx/nginx.conf | 73 +++++++------------- 5 files changed, 30 insertions(+), 49 deletions(-) diff --git a/community_server/webroot/.htaccess b/community_server/webroot/.htaccess index f5f2d631c..7f19fb980 100644 --- a/community_server/webroot/.htaccess +++ b/community_server/webroot/.htaccess @@ -1,5 +1,6 @@ RewriteEngine On + RewriteCond %{REQUEST_FILENAME} !^/vue RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.php [L] diff --git a/frontend/src/routes/router.js b/frontend/src/routes/router.js index 6671a8de9..6d2963db5 100644 --- a/frontend/src/routes/router.js +++ b/frontend/src/routes/router.js @@ -6,6 +6,7 @@ Vue.use(VueRouter) // configure router const router = new VueRouter({ + base: '/vue', routes, // short for routes: routes linkActiveClass: 'active', mode: 'history', diff --git a/frontend/src/views/KontoOverview/GddSend.vue b/frontend/src/views/KontoOverview/GddSend.vue index 7230e6326..74acb3f46 100644 --- a/frontend/src/views/KontoOverview/GddSend.vue +++ b/frontend/src/views/KontoOverview/GddSend.vue @@ -10,7 +10,7 @@ - + diff --git a/frontend/vue.config.js b/frontend/vue.config.js index 3d196b0c7..0ff92c052 100644 --- a/frontend/vue.config.js +++ b/frontend/vue.config.js @@ -15,7 +15,7 @@ module.exports = { }, }, lintOnSave: true, - // publicPath: '/', + publicPath: '/vue', configureWebpack: { // Set up all the aliases we use in our app. resolve: { diff --git a/nginx/nginx.conf b/nginx/nginx.conf index 4f3aff146..cfe30b2ac 100644 --- a/nginx/nginx.conf +++ b/nginx/nginx.conf @@ -1,5 +1,3 @@ - - server { listen 80 ; @@ -8,12 +6,10 @@ server { #include /etc/nginx/common/protect.conf; #include /etc/nginx/common/protect_add_header.conf; - #include /etc/nginx/common/ssl.conf; - + #include /etc/nginx/common/ssl.conf; root /var/www/cakephp/webroot; - index index.php; - + index index.php; location ~ \.php$ { fastcgi_pass community-server:9000; @@ -23,7 +19,6 @@ server { fastcgi_buffers 16 16k; fastcgi_buffer_size 32k; include fastcgi_params; - } location ~ /\.ht { @@ -31,65 +26,49 @@ server { } location /account { - proxy_http_version 1.1; - proxy_set_header Upgrade $http_upgrade; - proxy_set_header Connection 'upgrade'; - proxy_cache_bypass $http_upgrade; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $remote_addr; - proxy_set_header Host $host; - rewrite /account/(.*) /$1 break; - - #proxy_next_upstream error timeout invalid_header http_502 non_idempotent; - proxy_pass http://login-server:1200; - proxy_redirect off; - + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection 'upgrade'; + proxy_cache_bypass $http_upgrade; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $remote_addr; + proxy_set_header Host $host; + rewrite /account/(.*) /$1 break; + proxy_pass http://login-server:1200; + proxy_redirect off; } location /login_api { - proxy_http_version 1.1; - proxy_set_header Upgrade $http_upgrade; - proxy_set_header Connection 'upgrade'; - proxy_cache_bypass $http_upgrade; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $remote_addr; - proxy_set_header Host $host; - rewrite /login_api/(.*) /$1 break; - - proxy_pass http://login-server:1201; - proxy_redirect off; + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection 'upgrade'; + proxy_cache_bypass $http_upgrade; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $remote_addr; + proxy_set_header Host $host; + rewrite /login_api/(.*) /$1 break; + + proxy_pass http://login-server:1201; + proxy_redirect off; } location / { - try_files $uri $uri/ /index.php?$args; + try_files $uri $uri/ /index.php?$args; } location /vue { - - location /vue/sockjs-node { - rewrite /vue/(.*) /$1; - } - location ~* \.(png) { - expires 1d; - rewrite /vue/(.*) /$1; - } - - #try_files /vue/$uri /vue/$uri/ /index.html; - proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host; - #rewrite /vue/(.*) /$1 break; - - proxy_pass http://frontend:8080; + + proxy_pass http://frontend:3000; proxy_redirect off; } # access_log /var/log/nginx/access.log main; - } \ No newline at end of file From c5967c3f8db9fda303e650f807e43250e3ae090a Mon Sep 17 00:00:00 2001 From: ogerly Date: Wed, 28 Apr 2021 11:11:48 +0200 Subject: [PATCH 0033/1050] loading spinner on login --- frontend/package.json | 1 + frontend/src/plugins/dashboard-plugin.js | 5 +++++ frontend/src/views/Layout/AuthLayout_gdd.vue | 16 ++++++++++++++++ frontend/src/views/Pages/Login.vue | 4 ++++ 4 files changed, 26 insertions(+) diff --git a/frontend/package.json b/frontend/package.json index 00e0ca45b..18e561232 100755 --- a/frontend/package.json +++ b/frontend/package.json @@ -69,6 +69,7 @@ "vue-good-table": "^2.21.3", "vue-i18n": "^8.22.4", "vue-jest": "^3.0.7", + "vue-loading-overlay": "^3.4.2", "vue-moment": "^4.1.0", "vue-qrcode": "^0.3.5", "vue-qrcode-reader": "^2.3.16", diff --git a/frontend/src/plugins/dashboard-plugin.js b/frontend/src/plugins/dashboard-plugin.js index 9b6e350dc..881fecf7d 100755 --- a/frontend/src/plugins/dashboard-plugin.js +++ b/frontend/src/plugins/dashboard-plugin.js @@ -37,6 +37,10 @@ import 'vue-good-table/dist/vue-good-table.css' import VueMoment from 'vue-moment' +import Loading from 'vue-loading-overlay' +// import the styles +import 'vue-loading-overlay/dist/vue-loading.css' + Object.keys(rules).forEach((rule) => { extend(rule, { ...rules[rule], // copies rule configuration @@ -56,6 +60,7 @@ export default { Vue.use(VueQrcodeReader) Vue.use(VueQrcode) Vue.use(VueFlatPickr) + Vue.use(Loading) configure({ classes: { valid: 'is-valid', diff --git a/frontend/src/views/Layout/AuthLayout_gdd.vue b/frontend/src/views/Layout/AuthLayout_gdd.vue index 5da4d8386..0e963e2ba 100644 --- a/frontend/src/views/Layout/AuthLayout_gdd.vue +++ b/frontend/src/views/Layout/AuthLayout_gdd.vue @@ -1,5 +1,6 @@ - From b12676bc2de1c2e66f865f3818ba863a8323f226 Mon Sep 17 00:00:00 2001 From: ogerly Date: Mon, 3 May 2021 11:41:52 +0200 Subject: [PATCH 0066/1050] =?UTF-8?q?css=20abst=C3=A4nde=20vom=20rand=20in?= =?UTF-8?q?=20mobilen=20style?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/views/KontoOverview/GddStatus.vue | 4 ++-- frontend/src/views/Layout/AuthLayout_gdd.vue | 12 +++++------- frontend/src/views/Pages/ForgotPassword.vue | 2 +- frontend/src/views/Pages/KontoOverview.vue | 4 ++-- frontend/src/views/Pages/Login.vue | 6 +++--- frontend/src/views/Pages/Register.vue | 2 +- frontend/src/views/Pages/ResetPassword.vue | 2 +- 7 files changed, 15 insertions(+), 17 deletions(-) diff --git a/frontend/src/views/KontoOverview/GddStatus.vue b/frontend/src/views/KontoOverview/GddStatus.vue index 87a06dfb6..508744ca0 100644 --- a/frontend/src/views/KontoOverview/GddStatus.vue +++ b/frontend/src/views/KontoOverview/GddStatus.vue @@ -1,7 +1,7 @@ diff --git a/frontend/src/views/Pages/UserProfileCard.vue b/frontend/src/views/Pages/UserProfileCard.vue index 161bb30a0..882b52e78 100644 --- a/frontend/src/views/Pages/UserProfileCard.vue +++ b/frontend/src/views/Pages/UserProfileCard.vue @@ -7,7 +7,7 @@ - + @@ -20,6 +20,9 @@ export default { components: { UserCard, }, + props: { + balance: { type: Number, default: 0 }, + }, } From 5336742c1791cc921c5cbbb26ad1c28e3b2a7464 Mon Sep 17 00:00:00 2001 From: Ulf Gebhardt Date: Tue, 4 May 2021 19:02:18 +0200 Subject: [PATCH 0088/1050] fixed bug_report.md issue template - comment not closed --- .github/ISSUE_TEMPLATE/bug_report.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index 08e03c5b7..c7d06fcbe 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -6,4 +6,4 @@ title: 🐛 [Bug] --- ## 🐛 Bugreport - From 3bff6c1d6fe6ab8d7c6159510def3d257c920b18 Mon Sep 17 00:00:00 2001 From: ogerly Date: Wed, 5 May 2021 08:57:14 +0200 Subject: [PATCH 0089/1050] error messages are displayed --- frontend/src/locales/de.json | 3 +++ frontend/src/locales/en.json | 3 +++ frontend/src/views/Pages/Register.vue | 29 ++++++++++++++++++++++++--- 3 files changed, 32 insertions(+), 3 deletions(-) diff --git a/frontend/src/locales/de.json b/frontend/src/locales/de.json index e3868124c..988f20f0d 100644 --- a/frontend/src/locales/de.json +++ b/frontend/src/locales/de.json @@ -45,6 +45,9 @@ "thx":"Danke!", "send_success":"Deine Zahlung wurde erfolgreich versendet." }, + "error": { + "error":"Fehler" + }, "transaction":{ "show_part": "Die letzten {count} Transaktionen", "show_all":"Alle {count} Transaktionen ansehen", diff --git a/frontend/src/locales/en.json b/frontend/src/locales/en.json index 521f68f0d..32561843c 100644 --- a/frontend/src/locales/en.json +++ b/frontend/src/locales/en.json @@ -45,6 +45,9 @@ "thx":"THX", "send_success":"Deine Zahlung wurde erfolgreich versendet." }, + "error": { + "error":"Error" + }, "transaction":{ "show_part": "The last {count} transactions", "show_all":"View all {count} transactions", diff --git a/frontend/src/views/Pages/Register.vue b/frontend/src/views/Pages/Register.vue index b48ad3e88..aae64330a 100755 --- a/frontend/src/views/Pages/Register.vue +++ b/frontend/src/views/Pages/Register.vue @@ -110,6 +110,20 @@ + + + + {{ $t('error.error') }}! + {{ registererror }} + + +
QR Code Scanner - Scanne den QR Code deines Partners", "max_gdd_info":"maximale anzahl GDD zum versenden erreicht!", "send_check":"Bestätige deine Zahlung. Prüfe bitte nochmal alle Daten!", - "thx":"Danke!", - "send_success":"Deine Zahlung wurde erfolgreich versendet." + "thx":"Danke, ", + "send_success":"deine Transaktion wurde erfolgreich ausgeführt" }, "transaction":{ "show_part": "Die letzten {count} Transaktionen", diff --git a/frontend/src/locales/en.json b/frontend/src/locales/en.json index 521f68f0d..802a4af31 100644 --- a/frontend/src/locales/en.json +++ b/frontend/src/locales/en.json @@ -42,8 +42,8 @@ "scann_code":"QR Code Scanner - Scanne den QR Code deines Partners", "max_gdd_info":"maximale anzahl GDD zum versenden erreicht!", "send_check":"Bestätige deine Zahlung. Prüfe bitte nochmal alle Daten!", - "thx":"THX", - "send_success":"Deine Zahlung wurde erfolgreich versendet." + "thx":"Thank you, ", + "send_success":"your transaction was successfully completed" }, "transaction":{ "show_part": "The last {count} transactions", From 6a8e0b48eaf8f6eff5baf8832f619c98a733539c Mon Sep 17 00:00:00 2001 From: einhornimmond Date: Wed, 5 May 2021 14:01:31 +0200 Subject: [PATCH 0091/1050] fix visual studio build on windows --- login_server/CMakeLists.txt | 85 ++++++++++++++++++---------------- login_server/conanfile.txt | 8 +--- login_server/dependencies/poco | 2 +- 3 files changed, 46 insertions(+), 49 deletions(-) diff --git a/login_server/CMakeLists.txt b/login_server/CMakeLists.txt index bfa5fcb72..2813845ad 100644 --- a/login_server/CMakeLists.txt +++ b/login_server/CMakeLists.txt @@ -2,24 +2,20 @@ cmake_minimum_required(VERSION 3.18.2) project(Gradido_LoginServer C CXX) SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY "bin" ) -SET ( CMAKE_CXX_FLAGS "-std=c++17" ) +SET(CMAKE_CXX_FLAGS "-std=c++17" ) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) -if(WIN32) +IF(WIN32) set(CMAKE_CXX_FLAGS "/MP /EHsc") - set(CMAKE_CXX_FLAGS_DEBUG "-O0 -g3") - set(CMAKE_CXX_FLAGS_RELEASE "-O3") -else() - set(INSTALL_BINDIR "bin") - set(INSTALL_PLUGINDIR "bin") -endif() -set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ./lib) -set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ./lib) +ENDIF() + +set(INSTALL_BINDIR "bin") +set(INSTALL_PLUGINDIR "bin") include_directories( "dependencies" - "dependencies/tinf/src" + "dependencies/tinf/src/" "dependencies/mariadb-connector-c/include" "dependencies/mariadb-connector-c/build/include" "dependencies/spirit-po/include" @@ -56,11 +52,10 @@ if(WIN32) endif() - set(BUILD_TESTING OFF) -set(gRPC_SSL_PROVIDER "package") +#set(gRPC_SSL_PROVIDER "package") add_subdirectory("dependencies/grpc/") -set(gRPC_SSL_PROVIDER "package") +#set(gRPC_SSL_PROVIDER "package") message(STATUS "Using gRPC via add_subdirectory.") set(GRPC_LIBS libprotobuf grpc++_reflection grpc++) @@ -77,10 +72,17 @@ file(MAKE_DIRECTORY ${PROTOBINDING_PATH}/hedera) FILE(GLOB DATAMODEL_GRADIDO_PROTOS "${GRADIDO_PROTO_MODEL_PATH}/gradido/*.proto") FILE(GLOB DATAMODEL_HEDERA_PROTOS "${HEDERA_PROTO_MODEL_PATH}/*.proto") -find_program(GRPC_CPP_PLUGIN grpc_cpp_plugin PATHS "build/dependencies/grpc/bin" REQUIRED) -find_program(PROTOBUF_PROTOC_EXECUTABLE protoc PATHS "build/dependencies/grpc/third_party/protobuf/bin" REQUIRED) +IF(WIN32) + find_program(GRPC_CPP_PLUGIN grpc_cpp_plugin PATHS "build/dependencies/grpc/bin/Debug") + find_program(GRPC_CPP_PLUGIN grpc_cpp_plugin PATHS "build/dependencies/grpc/bin/Release") + find_program(PROTOBUF_PROTOC_EXECUTABLE protoc PATHS "build/dependencies/grpc/third_party/protobuf/bin/Debug" ) + find_program(PROTOBUF_PROTOC_EXECUTABLE protoc PATHS "build/dependencies/grpc/third_party/protobuf/bin/Release" ) +ELSE() + find_program(GRPC_CPP_PLUGIN grpc_cpp_plugin PATHS "build/dependencies/grpc/bin") + find_program(PROTOBUF_PROTOC_EXECUTABLE protoc PATHS "build/dependencies/grpc/third_party/protobuf/bin" ) +ENDIF() FILE(TO_NATIVE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/dependencies/grpc/third_party/protobuf/src GOOGLE_PROTOBUF_INCLUDES) - +MESSAGE("protoc: ${PROTOBUF_PROTOC_EXECUTABLE} in build/dependencies/grpc/bin/${CMAKE_BUILD_TYPE}") FOREACH(proto ${DATAMODEL_GRADIDO_PROTOS}) FILE(TO_NATIVE_PATH ${proto} proto_native) get_filename_component(proto_parsed ${proto} NAME_WLE) @@ -129,8 +131,6 @@ ENDFOREACH(proto) ############################## bind source files ################################### -#set(MYSQL_INCLUDE_DIR "dependencies/mariadb-connector-c/include") - FILE(GLOB CONTROLLER "src/cpp/controller/*.cpp" "src/cpp/controller/*.h") FILE(GLOB TINF "dependencies/tinf/src/*.c" "dependencies/tinf/src/*.h") FILE(GLOB HTTPInterface "src/cpp/HTTPInterface/*.h" "src/cpp/HTTPInterface/*.cpp") @@ -146,8 +146,8 @@ FILE(GLOB MODEL_GRADIDO "src/cpp/model/gradido/*.h" "src/cpp/model/gradido/*.cpp FILE(GLOB CRYPTO "src/cpp/Crypto/*.h" "src/cpp/Crypto/*.cpp") FILE(GLOB MAIN "src/cpp/*.cpp" "src/cpp/*.c" "src/cpp/*.h") FILE(GLOB MYSQL "src/cpp/MySQL/*.cpp" "src/cpp/MySQL/*.h" "src/cpp/MySQL/Poco/*.h") -FILE(GLOB PROTO_GRADIDO "${PROTOBINDING_PATH}/gradido/*.cc" "${PROTOBINDING_PATH}/gradido/*.h") -FILE(GLOB PROTO_HEDERA "${PROTOBINDING_PATH}/hedera/*.cc" "${PROTOBINDING_PATH}/hedera/*.h") +FILE(GLOB PROTO_GRADIDO "build/proto/gradido/*.cc" "build/proto/gradido/*.h") +FILE(GLOB PROTO_HEDERA "build/proto/hedera/*.cc" "build/proto/hedera/*.h") # used only for test project FILE(GLOB TEST "src/cpp/test/*.cpp" "src/cpp/test/*.h") @@ -193,6 +193,11 @@ if(MSVC) source_group("Test" FILES ${TEST}) endif() + +include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake) +conan_basic_setup() + + add_executable(Gradido_LoginServer ${LOCAL_SRCS}) ############################## config and add mariadb ################################### @@ -217,10 +222,10 @@ add_subdirectory("dependencies/mariadb-connector-c") set(DEP_PATH "dependencies") set(MARIADB_CONNECTOR_PATH "${DEP_PATH}/mariadb-connector-c/build/libmariadb") -if(WIN32) - find_library(MYSQL_LIBRARIES mariadbclient PATHS "${MARIADB_CONNECTOR_PATH}/Release" REQUIRED) - find_library(COMPILED_MARIADB_CLIENT_DEBUG mariadbclient PATHS "${MARIADB_CONNECTOR_PATH}/Debug" REQUIRED) -endif() +#if(WIN32) + #find_library(MYSQL_LIBRARIES mariadbclient PATHS "${MARIADB_CONNECTOR_PATH}/Release" REQUIRED) + #find_library(COMPILED_MARIADB_CLIENT_DEBUG mariadbclient PATHS "${MARIADB_CONNECTOR_PATH}/Debug" REQUIRED) +#endif() ############################## config and add poco ################################### #SET(SOME_EXPAT_OPTION OFF CACHE BOOL "Use some expat option") @@ -235,17 +240,15 @@ set(POCO_LIBS PocoFoundation PocoUtil PocoNet PocoNetSSL PocoData) ############################## build login server ################################### -if(UNIX) - set(INSTALL_BINDIR "bin") - set(INSTALL_PLUGINDIR "bin") -endif() -target_link_libraries(Gradido_LoginServer ${GRPC_LIBS} ${POCO_LIBS} sodium) + +target_link_libraries(Gradido_LoginServer ${GRPC_LIBS} ${POCO_LIBS}) if(WIN32) - TARGET_LINK_LIBRARIES(Gradido_LoginServer optimized ${MYSQL_LIBRARIES} Shlwapi) - TARGET_LINK_LIBRARIES(Gradido_LoginServer debug ${COMPILED_MARIADB_CLIENT_DEBUG} Shlwapi) + target_link_libraries(Gradido_LoginServer ${CONAN_LIBS}) + #TARGET_LINK_LIBRARIES(Gradido_LoginServer optimized ${MYSQL_LIBRARIES} Shlwapi) + #TARGET_LINK_LIBRARIES(Gradido_LoginServer debug ${COMPILED_MARIADB_CLIENT_DEBUG} Shlwapi) else() # unix - target_link_libraries(Gradido_LoginServer libmariadb) + target_link_libraries(Gradido_LoginServer libmariadb sodium) endif() # install @@ -260,26 +263,26 @@ install(DIRECTORY src/LOCALE DESTINATION /etc/grd_login/ endif(UNIX) - +enable_testing() # ---------------------- Test ----------------------------------------- -add_subdirectory("dependencies/grpc/third_party/googletest") -enable_testing() #project(Gradido_LoginServer_Test C CXX) #_TEST_BUILD - +#find_package(gtest) add_executable(Gradido_LoginServer_Test ${LOCAL_SRCS} ${LOCAL_TEST_SRC}) target_compile_definitions(Gradido_LoginServer_Test PUBLIC "_TEST_BUILD") -target_link_libraries(Gradido_LoginServer_Test ${POCO_LIBS} ${GRPC_LIBS} sodium gtest) +target_link_libraries(Gradido_LoginServer_Test ${GRPC_LIBS} ${POCO_LIBS}) if(WIN32) - TARGET_LINK_LIBRARIES(Gradido_LoginServer_Test optimized ${MYSQL_LIBRARIES} Shlwapi) - TARGET_LINK_LIBRARIES(Gradido_LoginServer_Test debug ${COMPILED_MARIADB_CLIENT_DEBUG} ${PROTOBUF_DEBUG_LIBS} Shlwapi) + target_link_libraries(Gradido_LoginServer_Test ${CONAN_LIBS} ) + #TARGET_LINK_LIBRARIES(Gradido_LoginServer_Test optimized ${MYSQL_LIBRARIES} Shlwapi) + #TARGET_LINK_LIBRARIES(Gradido_LoginServer_Test debug ${COMPILED_MARIADB_CLIENT_DEBUG} Shlwapi) + #TARGET_LINK_LIBRARIES(Gradido_LoginServer_Test debug ${GRPC_LIBS} ${PROTOBUF_DEBUG_LIBS}) else() - target_link_libraries(Gradido_LoginServer_Test libmariadb ${CMAKE_DL_LIBS} ${PROTOBUF_LIBS}) + target_link_libraries(Gradido_LoginServer_Test libmariadb sodium) endif() add_test(NAME main COMMAND Gradido_LoginServer_Test) diff --git a/login_server/conanfile.txt b/login_server/conanfile.txt index ae0fcd97b..5f7e8f608 100644 --- a/login_server/conanfile.txt +++ b/login_server/conanfile.txt @@ -1,13 +1,7 @@ [requires] -Poco/1.9.4@pocoproject/stable libsodium/1.0.18@bincrafters/stable boost/1.71.0@conan/stable -gtest/1.8.1@bincrafters/stable +libressl/3.2.1 [generators] cmake - -[options] -Poco:enable_data_sqlite=False -Poco:enable_mongodb=False -Poco:enable_redis=False diff --git a/login_server/dependencies/poco b/login_server/dependencies/poco index 3fc3e5f5b..b95393dcc 160000 --- a/login_server/dependencies/poco +++ b/login_server/dependencies/poco @@ -1 +1 @@ -Subproject commit 3fc3e5f5b8462f7666952b43381383a79b8b5d92 +Subproject commit b95393dcc3640807838e8323b4e600e54d2e8116 From 54c96657926fa343cba04a8e62ecc9d8300c7aed Mon Sep 17 00:00:00 2001 From: ogerly Date: Wed, 5 May 2021 15:45:11 +0200 Subject: [PATCH 0092/1050] transactionslist load and icon --- frontend/src/locales/de.json | 2 +- frontend/src/locales/en.json | 2 +- .../src/views/KontoOverview/GddStatus.vue | 3 +- frontend/src/views/KontoOverview/GddTable.vue | 49 ++++++++------- .../src/views/Layout/DashboardLayout_gdd.vue | 63 ++++++++++++++++--- .../src/views/Pages/KontoOverview.spec.js | 4 +- frontend/src/views/Pages/KontoOverview.vue | 19 +++--- .../Pages/UserProfileTransactionList.vue | 17 ++++- 8 files changed, 112 insertions(+), 47 deletions(-) diff --git a/frontend/src/locales/de.json b/frontend/src/locales/de.json index e3868124c..0fd68c060 100644 --- a/frontend/src/locales/de.json +++ b/frontend/src/locales/de.json @@ -46,8 +46,8 @@ "send_success":"Deine Zahlung wurde erfolgreich versendet." }, "transaction":{ - "show_part": "Die letzten {count} Transaktionen", "show_all":"Alle {count} Transaktionen ansehen", + "nullTransactions":"Du hast noch keine Transaktionen auf deinem Konto.", "more": "mehr" }, "site": { diff --git a/frontend/src/locales/en.json b/frontend/src/locales/en.json index 521f68f0d..f734e75ee 100644 --- a/frontend/src/locales/en.json +++ b/frontend/src/locales/en.json @@ -47,7 +47,7 @@ }, "transaction":{ "show_part": "The last {count} transactions", - "show_all":"View all {count} transactions", + "nullTransactions":"You don't have any transactions on your account yet.", "more": "more" }, "site": { diff --git a/frontend/src/views/KontoOverview/GddStatus.vue b/frontend/src/views/KontoOverview/GddStatus.vue index 87a06dfb6..ba4c64e68 100644 --- a/frontend/src/views/KontoOverview/GddStatus.vue +++ b/frontend/src/views/KontoOverview/GddStatus.vue @@ -1,6 +1,6 @@ diff --git a/frontend/src/views/Pages/KontoOverview.spec.js b/frontend/src/views/Pages/KontoOverview.spec.js index b0385cbc3..3cb3b8271 100644 --- a/frontend/src/views/Pages/KontoOverview.spec.js +++ b/frontend/src/views/Pages/KontoOverview.spec.js @@ -35,8 +35,8 @@ describe('KontoOverview', () => { expect(wrapper.find('gdd-table-stub').exists()).toBeTruthy() }) - it('updates transctions data when change-transactions is emitted', async () => { - wrapper.find('gdd-table-stub').vm.$emit('change-transactions', [0, 1]) + it('updates transctions data when update-transactions is emitted', async () => { + wrapper.find('gdd-table-stub').vm.$emit('update-transactions', [0, 1]) await wrapper.vm.$nextTick() expect(wrapper.vm.transactions).toEqual(expect.arrayContaining([0, 1])) }) diff --git a/frontend/src/views/Pages/KontoOverview.vue b/frontend/src/views/Pages/KontoOverview.vue index e05a6236d..52b9f832b 100644 --- a/frontend/src/views/Pages/KontoOverview.vue +++ b/frontend/src/views/Pages/KontoOverview.vue @@ -2,11 +2,7 @@
- +

@@ -32,13 +28,16 @@ export default { name: 'Overview', data() { return { - transactions: [], showTransactionList: true, } }, props: { balance: { type: Number, default: 0 }, GdtBalance: { type: Number, default: 0 }, + + transactions: { + default: [], + }, }, components: { GddStatus, @@ -52,8 +51,8 @@ export default { updateBalance(data) { this.$emit('update-balance', data.ammount) }, - setTransactions(transactions) { - this.transactions = transactions + updateTransactions() { + this.$emit('update-transactions') }, }, } diff --git a/frontend/src/views/Pages/UserProfileTransactionList.vue b/frontend/src/views/Pages/UserProfileTransactionList.vue index 2033a189a..7b4ad2ccc 100644 --- a/frontend/src/views/Pages/UserProfileTransactionList.vue +++ b/frontend/src/views/Pages/UserProfileTransactionList.vue @@ -7,19 +7,32 @@ - + + + {{ $t('transaction.nullTransactions') }} +
From 7c972a1c72b6ef0d3b83d1024f47a29fd5690b19 Mon Sep 17 00:00:00 2001 From: Alexander Friedland Date: Wed, 5 May 2021 15:57:13 +0200 Subject: [PATCH 0093/1050] lehrzeichen entfernt --- frontend/src/locales/de.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/locales/de.json b/frontend/src/locales/de.json index 4859a3422..c5cbffef0 100644 --- a/frontend/src/locales/de.json +++ b/frontend/src/locales/de.json @@ -42,7 +42,7 @@ "scann_code":"QR Code Scanner - Scanne den QR Code deines Partners", "max_gdd_info":"maximale anzahl GDD zum versenden erreicht!", "send_check":"Bestätige deine Zahlung. Prüfe bitte nochmal alle Daten!", - "thx":"Danke, ", + "thx":"Danke,", "send_success":"deine Transaktion wurde erfolgreich ausgeführt" }, "transaction":{ From ff65c78244ffd21c6e2b14ba00ce3ded0f04d57a Mon Sep 17 00:00:00 2001 From: Alexander Friedland Date: Wed, 5 May 2021 15:57:45 +0200 Subject: [PATCH 0094/1050] update --- frontend/src/locales/en.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/locales/en.json b/frontend/src/locales/en.json index 802a4af31..eb30bbc29 100644 --- a/frontend/src/locales/en.json +++ b/frontend/src/locales/en.json @@ -42,7 +42,7 @@ "scann_code":"QR Code Scanner - Scanne den QR Code deines Partners", "max_gdd_info":"maximale anzahl GDD zum versenden erreicht!", "send_check":"Bestätige deine Zahlung. Prüfe bitte nochmal alle Daten!", - "thx":"Thank you, ", + "thx":"Thank you,", "send_success":"your transaction was successfully completed" }, "transaction":{ From 88c05578be3c62a6c9fee8739d4e544170670891 Mon Sep 17 00:00:00 2001 From: Alexander Friedland Date: Wed, 5 May 2021 16:01:59 +0200 Subject: [PATCH 0095/1050] to showError --- frontend/src/views/Pages/Register.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/views/Pages/Register.vue b/frontend/src/views/Pages/Register.vue index aae64330a..bd628b902 100755 --- a/frontend/src/views/Pages/Register.vue +++ b/frontend/src/views/Pages/Register.vue @@ -175,7 +175,7 @@ export default { passwordVisible: false, submitted: false, registerfail: false, - registererror: '', + showError: '', } }, methods: { From b3529c0ea36da438e23909ea8b3df1b409f5729e Mon Sep 17 00:00:00 2001 From: Moriz Wahl Date: Wed, 5 May 2021 16:53:09 +0200 Subject: [PATCH 0096/1050] remove testData, fix test --- .../src/views/Layout/DashboardLayout_gdd.vue | 57 +++---------------- .../src/views/Pages/KontoOverview.spec.js | 6 -- frontend/src/views/Pages/KontoOverview.vue | 3 +- 3 files changed, 8 insertions(+), 58 deletions(-) diff --git a/frontend/src/views/Layout/DashboardLayout_gdd.vue b/frontend/src/views/Layout/DashboardLayout_gdd.vue index cdd72b68d..5fc696574 100755 --- a/frontend/src/views/Layout/DashboardLayout_gdd.vue +++ b/frontend/src/views/Layout/DashboardLayout_gdd.vue @@ -103,56 +103,13 @@ export default { } }, async updateTransactions() { - // const result = await communityAPI.transactions(this.$store.state.session_id) - // if (result.success) { - // this.GdtBalance = result.result.data.gdtSum / 10000 - // this.transactions = result.result.data.transactions - // } else { - // // what to do when loading balance fails? - // } - - this.transactions = [ - { - name: 'Max Mustermann', - email: 'Maxim@Mustermann', - type: 'send', - transaction_id: 2, - date: '2021-02-19T13:25:38+00:00', - balance: 1920000, - memo: 'a piece of cake :)', - pubkey: '038a6f93270dc57b91d76bf110ad3863fcb7d1b08e7692e793fcdb4467e5b6a7', - }, - { - name: 'Bob Bobmann', - email: 'Bob@Bobmann', - type: 'receive', - transaction_id: 3, - date: '2021-03-19T13:27:36+00:00', - balance: 1920000, - memo: 'test text hier eingeben :)', - pubkey: '038a6f93270dc57b91d76bf110ad3863fcb7d1b08e7692e793fcdb4467e5b6a7', - }, - { - name: 'Gradido Akademie', - email: 'Gradido@Akademie', - type: 'creation', - transaction_id: 4, - date: '2021-03-22T13:25:36+00:00', - balance: 10000000, - memo: '1000 Gradidos für das Sammeln von Müll im Wald.', - pubkey: '038a6f93270dc57b91d76bf110ad3863fcb7d1b08e7692e793fcdb4467e5b6a7', - }, - { - name: 'Verfall', - email: 'Gradido@Akademie', - type: 'decay', - transaction_id: 5, - date: '2021-02-22T13:25:37+00:00', - balance: 20000, - memo: 'verfall', - pubkey: '038a6f93270dc57b91d76bf110ad3863fcb7d1b08e7692e793fcdb4467e5b6a7', - }, - ] + const result = await communityAPI.transactions(this.$store.state.session_id) + if (result.success) { + this.GdtBalance = result.result.data.gdtSum / 10000 + this.transactions = result.result.data.transactions + } else { + // what to do when loading balance fails? + } }, updateBalance(ammount) { this.balance -= ammount diff --git a/frontend/src/views/Pages/KontoOverview.spec.js b/frontend/src/views/Pages/KontoOverview.spec.js index 3cb3b8271..7f09e4e2e 100644 --- a/frontend/src/views/Pages/KontoOverview.spec.js +++ b/frontend/src/views/Pages/KontoOverview.spec.js @@ -35,12 +35,6 @@ describe('KontoOverview', () => { expect(wrapper.find('gdd-table-stub').exists()).toBeTruthy() }) - it('updates transctions data when update-transactions is emitted', async () => { - wrapper.find('gdd-table-stub').vm.$emit('update-transactions', [0, 1]) - await wrapper.vm.$nextTick() - expect(wrapper.vm.transactions).toEqual(expect.arrayContaining([0, 1])) - }) - describe('updateBalance method', () => { beforeEach(async () => { wrapper.find('gdd-send-stub').vm.$emit('update-balance', { diff --git a/frontend/src/views/Pages/KontoOverview.vue b/frontend/src/views/Pages/KontoOverview.vue index 52b9f832b..64c5d2417 100644 --- a/frontend/src/views/Pages/KontoOverview.vue +++ b/frontend/src/views/Pages/KontoOverview.vue @@ -34,9 +34,8 @@ export default { props: { balance: { type: Number, default: 0 }, GdtBalance: { type: Number, default: 0 }, - transactions: { - default: [], + default: () => [], }, }, components: { From b10886a8d359c1fd2b701722113674705c40d440 Mon Sep 17 00:00:00 2001 From: Dario Rekowski on RockPI Date: Wed, 5 May 2021 15:30:24 +0000 Subject: [PATCH 0097/1050] move gradido to float into view element --- .../src/Controller/AppRequestsController.php | 40 +++++++++++++------ .../src/Model/Entity/StateBalance.php | 7 +--- .../src/Model/Table/StateUsersTable.php | 4 +- .../src/Model/Table/TransactionsTable.php | 8 ++-- .../src/Template/AppRequests/get_balance.ctp | 11 +++++ .../AppRequests/list_transactions.ctp | 17 ++++++++ .../src/Template/Element/centToFloat.ctp | 15 +++++++ 7 files changed, 78 insertions(+), 24 deletions(-) create mode 100644 community_server/src/Template/AppRequests/get_balance.ctp create mode 100644 community_server/src/Template/AppRequests/list_transactions.ctp create mode 100644 community_server/src/Template/Element/centToFloat.ctp diff --git a/community_server/src/Controller/AppRequestsController.php b/community_server/src/Controller/AppRequestsController.php index 17105e2b9..948d09350 100644 --- a/community_server/src/Controller/AppRequestsController.php +++ b/community_server/src/Controller/AppRequestsController.php @@ -268,7 +268,7 @@ class AppRequestsController extends AppController public function getBalance($session_id = 0) { - + $this->viewBuilder()->setLayout('ajax'); $login_result = $this->requestLogin($session_id, false); if($login_result !== true) { return $this->returnJson($login_result); @@ -284,12 +284,13 @@ class AppRequestsController extends AppController return $this->returnJson(['state' => 'success', 'balance' => 0]); } $now = new FrozenTime(); - return $this->returnJson([ + $body = [ 'state' => 'success', - 'balance' => $state_balance->amount_float, + 'balance' => $state_balance->amount, 'decay' => $state_balance->partDecay($now), 'decay_date' => $now - ]); + ]; + $this->set('body', $body); } public function listTransactions($page = 1, $count = 25, $orderDirection = 'ASC', $session_id = 0) @@ -337,14 +338,29 @@ class AppRequestsController extends AppController $transactions = array_reverse($transactions); } } - return $this->returnJson([ - 'state' => 'success', - 'transactions' => $transactions, - 'transactionExecutingCount' => $session->read('Transactions.executing'), - 'count' => count($transactions), - 'gdtSum' => floatval($gdtSum) / 100.0, - 'timeUsed' => microtime(true) - $startTime - ]); + + $state_balance = $stateBalancesTable->find()->where(['state_user_id' => $user['id']])->first(); + + $body = [ + 'state' => 'success', + 'transactions' => $transactions, + 'transactionExecutingCount' => $session->read('Transactions.executing'), + 'count' => count($transactions), + 'gdtSum' => $gdtSum, + 'timeUsed' => microtime(true) - $startTime + ]; + $now = new FrozenTime(); + $body['decay_date'] = $now; + + if(!$state_balance) { + $body['balance'] = 0; + $body['decay'] = 0; + } else { + $body['balance'] = $state_balance->amount; + $body['decay'] = $state_balance->partDecay($now); + } + + $this->set('body', $body); } private function acquireAccessToken($session_id) diff --git a/community_server/src/Model/Entity/StateBalance.php b/community_server/src/Model/Entity/StateBalance.php index 4303ba1ac..7d595653e 100644 --- a/community_server/src/Model/Entity/StateBalance.php +++ b/community_server/src/Model/Entity/StateBalance.php @@ -68,12 +68,7 @@ class StateBalance extends Entity return intval($this->amount * pow(0.99999997802044727, $decay_duration)); } - - protected function _getAmountFloat() - { - return Number::format(floatval($this->amount) / 10000.0, ['precision' => 2]); - } - + public function partDecay($target_date) { $decay_duration = intval($this->convertToTimestamp($target_date) - $this->convertToTimestamp($this->record_date)); diff --git a/community_server/src/Model/Table/StateUsersTable.php b/community_server/src/Model/Table/StateUsersTable.php index f36f84d82..5b01609f3 100644 --- a/community_server/src/Model/Table/StateUsersTable.php +++ b/community_server/src/Model/Table/StateUsersTable.php @@ -122,9 +122,9 @@ class StateUsersTable extends Table // exchange back $involvedUserIds = array_flip($involvedUser_temp); $involvedUser = $this->find('all', [ - 'contain' => false, + 'contain' => [], 'where' => ['id IN' => $involvedUserIds], - 'fields' => ['id', 'first_name', 'last_name', 'email'] + 'fields' => ['id', 'first_name', 'last_name', 'email'], ]); //var_dump($involvedUser->toArray()); $involvedUserIndices = []; diff --git a/community_server/src/Model/Table/TransactionsTable.php b/community_server/src/Model/Table/TransactionsTable.php index 6cd715874..c6d3477d3 100644 --- a/community_server/src/Model/Table/TransactionsTable.php +++ b/community_server/src/Model/Table/TransactionsTable.php @@ -188,7 +188,7 @@ class TransactionsTable extends Table //echo "prev balance: " . $prev->balance . ", diff_amount: $diff_amount, summe: " . (-intval($prev->balance - $diff_amount)) . "
"; $final_transactions[] = [ 'type' => 'decay', - 'balance' => Number::format(floatval(-intval($prev->balance - $diff_amount)) / 10000.0, ['precision' => 2]), + 'balance' => floatval(-intval($prev->balance - $diff_amount)), 'decay_duration' => $interval->format('%a days, %H hours, %I minutes, %S seconds'), 'memo' => '' ]; @@ -212,7 +212,7 @@ class TransactionsTable extends Table 'type' => 'creation', 'transaction_id' => $transaction->id, 'date' => $creation->target_date, - 'balance' => $creation->amount_float, + 'balance' => $creation->amount, 'memo' => $transaction->memo ]; } else if($su_transaction->transaction_type_id == 2) { // transfer or send coins @@ -245,7 +245,7 @@ class TransactionsTable extends Table 'type' => $type, 'transaction_id' => $sendCoins->transaction_id, 'date' => $transaction->received, - 'balance' => $sendCoins->amount_float, + 'balance' => $sendCoins->amount, 'memo' => $transaction->memo, 'pubkey' => $other_user_public ]; @@ -256,7 +256,7 @@ class TransactionsTable extends Table $state_balance->record_date = $su_transaction->balance_date; $final_transactions[] = [ 'type' => 'decay', - 'balance' => Number::format(floatval(-intval($su_transaction->balance - $state_balance->decay)) / 10000.0, ['precision' => 2]), + 'balance' => floatval(-intval($su_transaction->balance - $state_balance->decay)), 'decay_duration' => $su_transaction->balance_date->timeAgoInWords(), 'memo' => '' ]; diff --git a/community_server/src/Template/AppRequests/get_balance.ctp b/community_server/src/Template/AppRequests/get_balance.ctp new file mode 100644 index 000000000..618ec4c2e --- /dev/null +++ b/community_server/src/Template/AppRequests/get_balance.ctp @@ -0,0 +1,11 @@ +element('centToFloat', ['cent' => $body['balance'], 'precision' => 4]); +$body['decay'] = $this->element('centToFloat', ['cent' => $body['decay'], 'precision' => 4]); +?> \ No newline at end of file diff --git a/community_server/src/Template/AppRequests/list_transactions.ctp b/community_server/src/Template/AppRequests/list_transactions.ctp new file mode 100644 index 000000000..f829b5f16 --- /dev/null +++ b/community_server/src/Template/AppRequests/list_transactions.ctp @@ -0,0 +1,17 @@ +element('centToFloat', ['cent' => $body['balance'], 'precision' => 4]); +$body['decay'] = $this->element('centToFloat', ['cent' => $body['decay'], 'precision' => 4]); +$body['gdtSum'] = $this->element('centToFloat', ['cent' => $body['gdtSum'], 'precision' => 2]); + +foreach($body['transactions'] as $i => $transaction) { + $body['transactions'][$i]['balance'] = $this->element('centToFloat', ['cent' => $transaction['balance'], 'precision' => 4]); +} + +?> \ No newline at end of file diff --git a/community_server/src/Template/Element/centToFloat.ctp b/community_server/src/Template/Element/centToFloat.ctp new file mode 100644 index 000000000..40e3c4754 --- /dev/null +++ b/community_server/src/Template/Element/centToFloat.ctp @@ -0,0 +1,15 @@ + 0) { + $transformAmount = floor($cent / pow(10, $cut_places)); +} +echo $transformAmount / pow(10, $precision - $cut_places); + From 4e7c1fa490eae8fbd44d1c34bc3f1a0f144d0702 Mon Sep 17 00:00:00 2001 From: Dario Rekowski on RockPI Date: Wed, 5 May 2021 15:39:09 +0000 Subject: [PATCH 0098/1050] layout for listTransactions --- community_server/src/Controller/AppRequestsController.php | 1 + 1 file changed, 1 insertion(+) diff --git a/community_server/src/Controller/AppRequestsController.php b/community_server/src/Controller/AppRequestsController.php index 948d09350..e556a6289 100644 --- a/community_server/src/Controller/AppRequestsController.php +++ b/community_server/src/Controller/AppRequestsController.php @@ -295,6 +295,7 @@ class AppRequestsController extends AppController public function listTransactions($page = 1, $count = 25, $orderDirection = 'ASC', $session_id = 0) { + $this->viewBuilder()->setLayout('ajax'); $startTime = microtime(true); $login_result = $this->requestLogin($session_id, false); if($login_result !== true) { From e8dcf5619d5c148987bdd2983b2389fec49c8c57 Mon Sep 17 00:00:00 2001 From: Alexander Friedland Date: Wed, 5 May 2021 17:49:56 +0200 Subject: [PATCH 0099/1050] add class header --- frontend/src/views/Pages/Login.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/views/Pages/Login.vue b/frontend/src/views/Pages/Login.vue index 015039f71..ee71bad87 100755 --- a/frontend/src/views/Pages/Login.vue +++ b/frontend/src/views/Pages/Login.vue @@ -3,7 +3,7 @@
-
+

Gradido

From db33e2a2df0cadc34b2ef8203a141362f3b2ca0f Mon Sep 17 00:00:00 2001 From: Dario Rekowski on RockPI Date: Wed, 5 May 2021 16:24:55 +0000 Subject: [PATCH 0100/1050] expect gradido now as decimal --- community_server/src/Controller/AppRequestsController.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/community_server/src/Controller/AppRequestsController.php b/community_server/src/Controller/AppRequestsController.php index e556a6289..f604db2c2 100644 --- a/community_server/src/Controller/AppRequestsController.php +++ b/community_server/src/Controller/AppRequestsController.php @@ -22,6 +22,7 @@ class AppRequestsController extends AppController { parent::initialize(); $this->loadComponent('JsonRequestClient'); + $this->loadComponent('GradidoNumber'); //$this->loadComponent('JsonRpcRequestClient'); //$this->Auth->allow(['add', 'edit']); $this->Auth->allow(['index', 'sendCoins', 'createCoins', 'getBalance', 'listTransactions']); @@ -118,6 +119,7 @@ class AppRequestsController extends AppController if(intval($param['amount']) <= 0) { return ['state' => 'error', 'msg' => 'amount is invalid', 'details' => $param['amount']]; } + $param['amount'] = $this->GradidoNumber->parseInputNumberToCentNumber($param['amount']); if(isset($data->memo)) { $param['memo'] = $data->memo; From 9ef2c82bbcd2d2186397183660168255f40396ca Mon Sep 17 00:00:00 2001 From: Dario Rekowski on RockPI Date: Wed, 5 May 2021 16:48:57 +0000 Subject: [PATCH 0101/1050] test for float instead of int --- community_server/src/Controller/AppRequestsController.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/community_server/src/Controller/AppRequestsController.php b/community_server/src/Controller/AppRequestsController.php index f604db2c2..3b1ea85c2 100644 --- a/community_server/src/Controller/AppRequestsController.php +++ b/community_server/src/Controller/AppRequestsController.php @@ -116,7 +116,7 @@ class AppRequestsController extends AppController return $required_fields; } - if(intval($param['amount']) <= 0) { + if(floatval($param['amount']) <= 0.0) { return ['state' => 'error', 'msg' => 'amount is invalid', 'details' => $param['amount']]; } $param['amount'] = $this->GradidoNumber->parseInputNumberToCentNumber($param['amount']); From f326adb6a623e05edb6a2312d4e0c2a34fc30041 Mon Sep 17 00:00:00 2001 From: Dario Rekowski on RockPI Date: Wed, 5 May 2021 17:40:30 +0000 Subject: [PATCH 0102/1050] don't show decays smaller than 0,01 GDD --- .../src/Model/Table/TransactionsTable.php | 22 +++++++++++-------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/community_server/src/Model/Table/TransactionsTable.php b/community_server/src/Model/Table/TransactionsTable.php index 00f00b904..301894a61 100644 --- a/community_server/src/Model/Table/TransactionsTable.php +++ b/community_server/src/Model/Table/TransactionsTable.php @@ -183,15 +183,19 @@ class TransactionsTable extends Table $state_balance->amount = $prev->balance; $state_balance->record_date = $prev->balance_date; $diff_amount = $state_balance->partDecay($current->balance_date); - - //echo $interval->format('%R%a days'); - //echo "prev balance: " . $prev->balance . ", diff_amount: $diff_amount, summe: " . (-intval($prev->balance - $diff_amount)) . "
"; - $final_transactions[] = [ - 'type' => 'decay', - 'balance' => -intval($prev->balance - $diff_amount), - 'decay_duration' => $interval->format('%a days, %H hours, %I minutes, %S seconds'), - 'memo' => '' - ]; + $balance = -intval($prev->balance - $diff_amount); + // skip small decays (smaller than 0,00 GDD) + + if(abs($balance) > 100) { + //echo $interval->format('%R%a days'); + //echo "prev balance: " . $prev->balance . ", diff_amount: $diff_amount, summe: " . (-intval($prev->balance - $diff_amount)) . "
"; + $final_transactions[] = [ + 'type' => 'decay', + 'balance' => -intval($prev->balance - $diff_amount), + 'decay_duration' => $interval->format('%a days, %H hours, %I minutes, %S seconds'), + 'memo' => '' + ]; + } } } From 837e0f4fc6c543f8e27cd71033d00f573ceb22bd Mon Sep 17 00:00:00 2001 From: Dario Rekowski on RockPI Date: Wed, 5 May 2021 17:42:18 +0000 Subject: [PATCH 0103/1050] calculate only once --- community_server/src/Model/Table/TransactionsTable.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/community_server/src/Model/Table/TransactionsTable.php b/community_server/src/Model/Table/TransactionsTable.php index 301894a61..790b7b5f0 100644 --- a/community_server/src/Model/Table/TransactionsTable.php +++ b/community_server/src/Model/Table/TransactionsTable.php @@ -191,7 +191,7 @@ class TransactionsTable extends Table //echo "prev balance: " . $prev->balance . ", diff_amount: $diff_amount, summe: " . (-intval($prev->balance - $diff_amount)) . "
"; $final_transactions[] = [ 'type' => 'decay', - 'balance' => -intval($prev->balance - $diff_amount), + 'balance' => $balance, 'decay_duration' => $interval->format('%a days, %H hours, %I minutes, %S seconds'), 'memo' => '' ]; From fdc43b044462f0b4d7ec13ec5c97dc65b1527d48 Mon Sep 17 00:00:00 2001 From: Dario Rekowski on RockPI Date: Wed, 5 May 2021 17:58:27 +0000 Subject: [PATCH 0104/1050] remove from error messages because its no longer exist --- .../src/Model/Transactions/TransactionTransfer.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/community_server/src/Model/Transactions/TransactionTransfer.php b/community_server/src/Model/Transactions/TransactionTransfer.php index 26e41f0ad..3156e2cae 100644 --- a/community_server/src/Model/Transactions/TransactionTransfer.php +++ b/community_server/src/Model/Transactions/TransactionTransfer.php @@ -99,12 +99,12 @@ class TransactionTransfer extends TransactionBase { ->where(['public_key' => $senderPublic]) ->contain(['StateBalances' => ['fields' => ['amount', 'state_user_id']]])->first(); if(!$user) { - $this->addError($functionName, 'couldn\'t find sender ' . $i .' in db' ); + $this->addError($functionName, 'couldn\'t find sender in db' ); return false; } //var_dump($user); if(intval($user->state_balances[0]->amount) < intval($amount)) { - $this->addError($functionName, 'sender ' . $i . ' hasn\t enough GDD'); + $this->addError($functionName, 'sender hasn\t enough GDD'); return false; } @@ -116,7 +116,7 @@ class TransactionTransfer extends TransactionBase { // check if receiver exist $receiver_user = $stateUsersTable->find('all')->select(['id'])->where(['public_key' => $receiver_public_key])->first(); if(!$receiver_user) { - $this->addError($functionName, 'couldn\'t find receiver ' . $i .' in db' ); + $this->addError($functionName, 'couldn\'t find receiver in db' ); return false; } if($amount < 0) { From 851c7cad064d9c1a4c543be2576961311a76ca38 Mon Sep 17 00:00:00 2001 From: Dario Rekowski on RockPI Date: Wed, 5 May 2021 18:57:26 +0000 Subject: [PATCH 0105/1050] remove minus from decay --- community_server/src/Model/Table/TransactionsTable.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/community_server/src/Model/Table/TransactionsTable.php b/community_server/src/Model/Table/TransactionsTable.php index c6d3477d3..893482e3f 100644 --- a/community_server/src/Model/Table/TransactionsTable.php +++ b/community_server/src/Model/Table/TransactionsTable.php @@ -188,7 +188,7 @@ class TransactionsTable extends Table //echo "prev balance: " . $prev->balance . ", diff_amount: $diff_amount, summe: " . (-intval($prev->balance - $diff_amount)) . "
"; $final_transactions[] = [ 'type' => 'decay', - 'balance' => floatval(-intval($prev->balance - $diff_amount)), + 'balance' => floatval(intval($prev->balance - $diff_amount)), 'decay_duration' => $interval->format('%a days, %H hours, %I minutes, %S seconds'), 'memo' => '' ]; @@ -256,7 +256,7 @@ class TransactionsTable extends Table $state_balance->record_date = $su_transaction->balance_date; $final_transactions[] = [ 'type' => 'decay', - 'balance' => floatval(-intval($su_transaction->balance - $state_balance->decay)), + 'balance' => floatval(intval($su_transaction->balance - $state_balance->decay)), 'decay_duration' => $su_transaction->balance_date->timeAgoInWords(), 'memo' => '' ]; From 59161e7ad22cf861689fdc9d1fbc9c3c52d4a130 Mon Sep 17 00:00:00 2001 From: Moriz Wahl Date: Wed, 5 May 2021 23:50:03 +0200 Subject: [PATCH 0106/1050] Add Paramerts to TransactionList API Call --- frontend/src/apis/communityAPI.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/frontend/src/apis/communityAPI.js b/frontend/src/apis/communityAPI.js index 589794635..d2e71439c 100644 --- a/frontend/src/apis/communityAPI.js +++ b/frontend/src/apis/communityAPI.js @@ -35,8 +35,10 @@ const communityAPI = { balance: async (session_id) => { return apiGet(CONFIG.COMMUNITY_API_URL + 'getBalance/' + session_id) }, - transactions: async (session_id) => { - return apiGet(CONFIG.COMMUNITY_API_URL + 'listTransactions/1/25/ASC/' + session_id) + transactions: async (session_id, firstPage = 1, items = 25, order = 'DESC') => { + return apiGet( + `${CONFIG.COMMUNITY_API_URL}listTransactions/${firstPage}/${items}/${order}/${session_id}`, + ) }, /*create: async (session_id, email, amount, memo, target_date = new Date() ) => { const payload = { From cff3590024e8868844df405fb6cebd119038b8eb Mon Sep 17 00:00:00 2001 From: Alexander Friedland Date: Thu, 6 May 2021 09:10:20 +0200 Subject: [PATCH 0107/1050] change label messageError and showError --- frontend/src/views/Pages/Register.vue | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/frontend/src/views/Pages/Register.vue b/frontend/src/views/Pages/Register.vue index bd628b902..f72325342 100755 --- a/frontend/src/views/Pages/Register.vue +++ b/frontend/src/views/Pages/Register.vue @@ -111,7 +111,7 @@
{{ $t('error.error') }}! - {{ registererror }} + {{ messageError }} @@ -174,8 +174,8 @@ export default { checkPassword: '', passwordVisible: false, submitted: false, - registerfail: false, - showError: '', + showError: false, + messageError: '', } }, methods: { @@ -200,13 +200,13 @@ export default { this.password = '' this.$router.push('/thx') } else { - this.registerfail = true - this.registererror = result.result.message + this.showError = true + this.messageError = result.result.message } }, closeAlert() { - this.registerfail = false - this.registererror = '' + this.showError = false + this.messageError = '' this.model.email = '' this.model.firstname = '' this.model.lastname = '' From 6e9966504504eaafbc20c8beae9cd6ecdc97d463 Mon Sep 17 00:00:00 2001 From: ogerly Date: Thu, 6 May 2021 09:25:10 +0200 Subject: [PATCH 0108/1050] xx deleted --- frontend/src/views/NotFoundPage.vue | 1 - 1 file changed, 1 deletion(-) diff --git a/frontend/src/views/NotFoundPage.vue b/frontend/src/views/NotFoundPage.vue index ef387ab9d..767520277 100755 --- a/frontend/src/views/NotFoundPage.vue +++ b/frontend/src/views/NotFoundPage.vue @@ -2,7 +2,6 @@
- xx
From 789817e31d00d9ab72869b59f910389d7365fecd Mon Sep 17 00:00:00 2001 From: ogerly Date: Thu, 6 May 2021 10:23:07 +0200 Subject: [PATCH 0109/1050] cancel to reset, form rest event added --- frontend/src/locales/de.json | 1 + frontend/src/locales/en.json | 1 + frontend/src/views/Pages/AccountOverview/GddSend.vue | 5 +++-- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/frontend/src/locales/de.json b/frontend/src/locales/de.json index 363b8fbc6..e618f8e51 100644 --- a/frontend/src/locales/de.json +++ b/frontend/src/locales/de.json @@ -21,6 +21,7 @@ "form": { "attention": "Achtung! Bitte überprüfe alle deine Eingaben sehr genau. Du bist alleine Verantwortlich für deine Entscheidungen. Versendete Gradidos können nicht wieder zurück geholt werden.", "cancel":"Abbrechen", + "reset": "Zurücksetzen", "close":"schließen", "receiver":"Empfänger", "sender":"Absender", diff --git a/frontend/src/locales/en.json b/frontend/src/locales/en.json index 6f9a790d9..44fd56256 100644 --- a/frontend/src/locales/en.json +++ b/frontend/src/locales/en.json @@ -21,6 +21,7 @@ "form": { "attention": "Achtung! Bitte überprüfe alle deine Eingaben sehr genau. Du bist alleine Verantwortlich für deine Entscheidungen. Versendete Gradidos können nicht wieder zurück geholt werden.", "cancel":"Cancel", + "reset": "Reset", "close":"Close", "receiver":"Receiver", "sender":"Sender", diff --git a/frontend/src/views/Pages/AccountOverview/GddSend.vue b/frontend/src/views/Pages/AccountOverview/GddSend.vue index 5f2794922..2d8220a78 100644 --- a/frontend/src/views/Pages/AccountOverview/GddSend.vue +++ b/frontend/src/views/Pages/AccountOverview/GddSend.vue @@ -121,8 +121,8 @@
- - {{ $t('form.cancel') }} + + {{ $t('form.reset') }} @@ -274,6 +274,7 @@ export default { event.preventDefault() this.form.email = '' this.form.amount = '' + this.form.memo = '' this.show = false this.$emit('toggle-show-list', true) this.row_check = false From ad9b2e7b58cfd2d594eaedc7038b7d6411942f6f Mon Sep 17 00:00:00 2001 From: ogerly Date: Thu, 6 May 2021 11:14:03 +0200 Subject: [PATCH 0110/1050] =?UTF-8?q?transaction.show=5Fall=20in=20en.json?= =?UTF-8?q?=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/locales/en.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/frontend/src/locales/en.json b/frontend/src/locales/en.json index 6f9a790d9..ba1692a7e 100644 --- a/frontend/src/locales/en.json +++ b/frontend/src/locales/en.json @@ -46,7 +46,8 @@ "send_success":"your transaction was successfully completed" }, "transaction":{ - "show_part": "The last {count} transactions", + "show_all":"View all {count} transactions.", + "show_part": "The last {count} transactions.", "nullTransactions":"You don't have any transactions on your account yet.", "more": "more" }, From 9ee614914180dcfa593feb901a475f62dda3d348 Mon Sep 17 00:00:00 2001 From: ogerly Date: Thu, 6 May 2021 11:17:51 +0200 Subject: [PATCH 0111/1050] fix yarn test --- frontend/src/views/Pages/AccountOverview/GddSend.spec.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/views/Pages/AccountOverview/GddSend.spec.js b/frontend/src/views/Pages/AccountOverview/GddSend.spec.js index 330ce7192..b206eb803 100644 --- a/frontend/src/views/Pages/AccountOverview/GddSend.spec.js +++ b/frontend/src/views/Pages/AccountOverview/GddSend.spec.js @@ -120,7 +120,7 @@ describe('GddSend', () => { }) it('has the text "form.cancel"', () => { - expect(wrapper.find('button[type="reset"]').text()).toBe('form.cancel') + expect(wrapper.find('button[type="reset"]').text()).toBe('form.reset') }) it.skip('clears the email field on click', async () => { From 7c63d8b1495ff11117c420a314c89643513cce47 Mon Sep 17 00:00:00 2001 From: einhornimmond Date: Thu, 6 May 2021 12:02:22 +0200 Subject: [PATCH 0112/1050] Update community_server/src/Controller/AppRequestsController.php you are right. Co-authored-by: Ulf Gebhardt --- community_server/src/Controller/AppRequestsController.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/community_server/src/Controller/AppRequestsController.php b/community_server/src/Controller/AppRequestsController.php index 3b1ea85c2..1993e3559 100644 --- a/community_server/src/Controller/AppRequestsController.php +++ b/community_server/src/Controller/AppRequestsController.php @@ -356,8 +356,8 @@ class AppRequestsController extends AppController $body['decay_date'] = $now; if(!$state_balance) { - $body['balance'] = 0; - $body['decay'] = 0; + $body['balance'] = 0.0; + $body['decay'] = 0.0; } else { $body['balance'] = $state_balance->amount; $body['decay'] = $state_balance->partDecay($now); From 7754fa01fbd01d67f8b7a0209e3064d3d47a0ca7 Mon Sep 17 00:00:00 2001 From: einhornimmond Date: Thu, 6 May 2021 12:17:02 +0200 Subject: [PATCH 0113/1050] Update centToFloat.ctp An additional security patch. --- community_server/src/Template/Element/centToFloat.ctp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/community_server/src/Template/Element/centToFloat.ctp b/community_server/src/Template/Element/centToFloat.ctp index 40e3c4754..2fade18b2 100644 --- a/community_server/src/Template/Element/centToFloat.ctp +++ b/community_server/src/Template/Element/centToFloat.ctp @@ -11,5 +11,8 @@ $transformAmount = $cent; if($cut_places > 0) { $transformAmount = floor($cent / pow(10, $cut_places)); } +if($cut_places < 0) { + $cut_places = 0; +} echo $transformAmount / pow(10, $precision - $cut_places); From 35160c7d86f2b9e227c1fde939a1b57a36b18561 Mon Sep 17 00:00:00 2001 From: einhornimmond Date: Thu, 6 May 2021 12:19:49 +0200 Subject: [PATCH 0114/1050] Update docu/community-server.api.md Co-authored-by: Ulf Gebhardt --- docu/community-server.api.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docu/community-server.api.md b/docu/community-server.api.md index 20a15014d..9354bf232 100644 --- a/docu/community-server.api.md +++ b/docu/community-server.api.md @@ -65,7 +65,7 @@ Assuming: session is valid "type": "send", "transaction_id": 2, "date": "2021-02-19T13:25:36+00:00", - "balance": 192, + "balance": 192.0, "memo": "a piece of cake :)", "pubkey": "038a6f93270dc57b91d76bf110ad3863fcb7d1b08e7692e793fcdb4467e5b6a7" } @@ -245,4 +245,3 @@ Without auto-sign the transaction is pending on the login-server and waits for t // TODO Is this in line with our usability goals? // TODO Should this not be handled client side? - From 3c566aca9b2ca257d554e788f33806d3d0bffefb Mon Sep 17 00:00:00 2001 From: einhornimmond Date: Thu, 6 May 2021 12:28:14 +0200 Subject: [PATCH 0115/1050] Update community_server/src/Model/Table/TransactionsTable.php Co-authored-by: Ulf Gebhardt --- community_server/src/Model/Table/TransactionsTable.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/community_server/src/Model/Table/TransactionsTable.php b/community_server/src/Model/Table/TransactionsTable.php index 790b7b5f0..b577afd7d 100644 --- a/community_server/src/Model/Table/TransactionsTable.php +++ b/community_server/src/Model/Table/TransactionsTable.php @@ -186,7 +186,7 @@ class TransactionsTable extends Table $balance = -intval($prev->balance - $diff_amount); // skip small decays (smaller than 0,00 GDD) - if(abs($balance) > 100) { + if(abs($balance) >= 100) { //echo $interval->format('%R%a days'); //echo "prev balance: " . $prev->balance . ", diff_amount: $diff_amount, summe: " . (-intval($prev->balance - $diff_amount)) . "
"; $final_transactions[] = [ From 34d00d865e56ea0eda8f72bc59cbace2ff597073 Mon Sep 17 00:00:00 2001 From: ogerly Date: Thu, 6 May 2021 13:47:04 +0200 Subject: [PATCH 0116/1050] my profile auskommentiert --- frontend/src/views/Layout/DashboardLayout_gdd.vue | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/frontend/src/views/Layout/DashboardLayout_gdd.vue b/frontend/src/views/Layout/DashboardLayout_gdd.vue index 5fc696574..26ae95b98 100755 --- a/frontend/src/views/Layout/DashboardLayout_gdd.vue +++ b/frontend/src/views/Layout/DashboardLayout_gdd.vue @@ -9,10 +9,10 @@ {{ $t('transactions') }} + +
@@ -39,6 +40,7 @@
+ --> -
-
+
{{ $t('form.receiver') }} @@ -191,15 +193,15 @@ From d9d78d1539c638696ff1bffaf84e6112d6fed05f Mon Sep 17 00:00:00 2001 From: Dario Rekowski on RockPI Date: Mon, 10 May 2021 15:21:02 +0000 Subject: [PATCH 0154/1050] fill migration controller, update some other functions to using same result format --- .../src/Controller/AppController.php | 16 +++ .../src/Controller/MigrationsController.php | 47 ++++++++ .../Controller/StateBalancesController.php | 2 +- community_server/src/Model/Table/AppTable.php | 23 ++++ .../src/Model/Table/StateBalancesTable.php | 39 +++---- .../Table/StateUserTransactionsTable.php | 2 +- .../src/Model/Table/TransactionsTable.php | 104 ++++++++++++++++++ .../src/Template/Migrations/migrate.ctp | 18 +++ 8 files changed, 230 insertions(+), 21 deletions(-) create mode 100644 community_server/src/Model/Table/AppTable.php create mode 100644 community_server/src/Template/Migrations/migrate.ctp diff --git a/community_server/src/Controller/AppController.php b/community_server/src/Controller/AppController.php index 1cdcf4418..80690b238 100644 --- a/community_server/src/Controller/AppController.php +++ b/community_server/src/Controller/AppController.php @@ -156,8 +156,24 @@ class AppController extends Controller } } + protected function checkForMigration($html = true) + { + $migrationsTable = TableRegistry::getTableLocator()->get('Migrations'); + $last_migration = $migrationsTable->find()->last(); + $current_db_version = 1; + if($last_migration) { + $current_db_version = $last_migration->db_version; + } + $php_data_version = 2; + if($current_db_version < $php_data_version) { + $this->redirect(['controller' => 'Migrations', 'action' => 'migrate', $html, $current_db_version]); + } + } + + protected function requestLogin($sessionId = 0, $redirect = true) { + $this->checkForMigration($redirect); $session = $this->getRequest()->getSession(); // check login // disable encryption for cookies diff --git a/community_server/src/Controller/MigrationsController.php b/community_server/src/Controller/MigrationsController.php index 93a1b8044..c2febef0f 100644 --- a/community_server/src/Controller/MigrationsController.php +++ b/community_server/src/Controller/MigrationsController.php @@ -2,6 +2,7 @@ namespace App\Controller; use App\Controller\AppController; +use Cake\ORM\TableRegistry; /** * Migrations Controller @@ -23,6 +24,52 @@ class MigrationsController extends AppController $this->set(compact('migrations')); } + + protected function callFunctions(array $callables) + { + foreach($callables as $callable) { + $result = call_user_func($callable); + if(!$result['success']) { + return $result; + } + } + return ['success' => true]; + } + + public function migrate($html, $current_db_version) + { + $startTime = microtime(true); + $stateUserTransactionsTable = TableRegistry::getTableLocator()->get('StateUserTransactions'); + $transactionsTable = TableRegistry::getTableLocator()->get('Transactions'); + $stateBalancesTable = TableRegistry::getTableLocator()->get('StateBalances'); + + $new_db_version = 1; + + $commands = []; + // migrate from version 1 to 2 + if($current_db_version == 1) { + $stateUserTransactionsTable->truncate(); + $commands = [ + [$transactionsTable, 'fillStateUserTransactions'], + [$stateBalancesTable, 'updateAllBalances'] + ]; + $new_db_version = 2; + } + + $migration_result = $this->callFunctions($commands); + if($migration_result['success']) { + $migration_entity = $this->Migrations->newEntity(); + $migration_entity->db_version = $new_db_version; + $this->Migrations->save($migration_entity); + } + if(!$html) { + return $this->returnJson($migration_result); + } else { + $this->set('db_version', $current_db_version); + $this->set('result', $migration_result); + $this->set('timeUsed', microtime(true) - $startTime); + } + } /** * View method diff --git a/community_server/src/Controller/StateBalancesController.php b/community_server/src/Controller/StateBalancesController.php index 3994b989a..655dbc026 100644 --- a/community_server/src/Controller/StateBalancesController.php +++ b/community_server/src/Controller/StateBalancesController.php @@ -62,7 +62,7 @@ class StateBalancesController extends AppController $user = $session->read('StateUser'); $update_balance_result = $this->StateBalances->updateBalances($user['id']); - if($update_balance_result !== true) { + if($update_balance_result['success'] !== true) { $this->addAdminError('StateBalances', 'overview', $update_balance_result, $user['id']); } // sendRequestGDT diff --git a/community_server/src/Model/Table/AppTable.php b/community_server/src/Model/Table/AppTable.php new file mode 100644 index 000000000..3a281afcc --- /dev/null +++ b/community_server/src/Model/Table/AppTable.php @@ -0,0 +1,23 @@ +schema()->truncateSql($this->connection()); + foreach ($truncateCommands as $truncateCommand) { + $this->connection()->query($truncateCommand); + } + } +} diff --git a/community_server/src/Model/Table/StateBalancesTable.php b/community_server/src/Model/Table/StateBalancesTable.php index 4e91c2948..87e961c5d 100644 --- a/community_server/src/Model/Table/StateBalancesTable.php +++ b/community_server/src/Model/Table/StateBalancesTable.php @@ -113,6 +113,20 @@ class StateBalancesTable extends Table } + public function updateAllBalances() + { + $stateUserTable = TableRegistry::getTableLocator()->get('StateUsers'); + $state_users = $stateUserTable->find()->select(['id'])->contain([]); + foreach($state_users as $state_user) { + $result = $this->updateBalances($state_user->id); + if($result['success'] === false) { + $result['state_user_id'] = $state_user->id; + return $result; + } + } + return ['success' => true]; + } + public function updateBalances($stateUserId) { $stateUserTransactionsTable = TableRegistry::getTableLocator()->get('StateUserTransactions'); @@ -128,7 +142,7 @@ class StateBalancesTable extends Table ; if(!$state_user_transactions || !$state_user_transactions->count()) { - return true; + return ['success' => true]; } // first: decide what todo @@ -222,40 +236,27 @@ class StateBalancesTable extends Table $transaction = $transactions_indiced[$state_user_transaction->transaction_id]; if($transaction->transaction_type_id > 2) { continue; - } - //echo "transaction id: ".$transaction->id . "
"; - $amount_date = null; + } $amount = 0; if($transaction->transaction_type_id == 1) { // creation - $temp = $transaction->transaction_creation; - - /*$balance_temp = $this->newEntity(); - $balance_temp->amount = $temp->amount; - $balance_temp->record_date = $temp->target_date; - */ - $amount = intval($temp->amount);//$balance_temp->partDecay($transaction->received); - $amount_date = $temp->target_date; - - //$amount_date = + $amount = intval($transaction->transaction_creation->amount); } else if($transaction->transaction_type_id == 2) { // transfer - $temp = $transaction->transaction_send_coin; $amount = intval($temp->amount); // reverse if sender if($stateUserId == $temp->state_user_id) { $amount *= -1.0; } - $amount_date = $transaction->received; - } + $amount_date = $transaction->received; if($i == 0) { $balance_cursor->amount = $amount; } else { //$balance_cursor->amount = $balance_cursor->partDecay($amount_date) + $amount; $balance_cursor->amount = - $this->calculateDecay($balance_cursor->amount, $balance_cursor->recordDate, $amount_date) + $this->calculateDecay($balance_cursor->amount, $balance_cursor->record_date, $amount_date) + $amount; } //echo "new balance: " . $balance_cursor->amount . "
"; @@ -294,7 +295,7 @@ class StateBalancesTable extends Table return ['success' => false, 'error' => 'error saving state balance', 'details' => $state_balance->getErrors()]; } } - return true; + return ['success' => true]; } diff --git a/community_server/src/Model/Table/StateUserTransactionsTable.php b/community_server/src/Model/Table/StateUserTransactionsTable.php index 6cfe94a23..2c984d964 100644 --- a/community_server/src/Model/Table/StateUserTransactionsTable.php +++ b/community_server/src/Model/Table/StateUserTransactionsTable.php @@ -22,7 +22,7 @@ use Cake\Validation\Validator; * @method \App\Model\Entity\StateUserTransaction[] patchEntities($entities, array $data, array $options = []) * @method \App\Model\Entity\StateUserTransaction findOrCreate($search, callable $callback = null, $options = []) */ -class StateUserTransactionsTable extends Table +class StateUserTransactionsTable extends AppTable { /** * Initialize method diff --git a/community_server/src/Model/Table/TransactionsTable.php b/community_server/src/Model/Table/TransactionsTable.php index 71d301722..9ae2fe02a 100644 --- a/community_server/src/Model/Table/TransactionsTable.php +++ b/community_server/src/Model/Table/TransactionsTable.php @@ -335,4 +335,108 @@ class TransactionsTable extends Table } return $transaction->first()->received; } + + public function fillStateUserTransactions() + { + $missing_transaction_ids = []; + $transaction_ids = $this + ->find('all') + ->select(['id', 'transaction_type_id']) + ->order(['id']) + ->all() + ; + $state_user_transaction_ids = $this->StateUserTransactions + ->find('all') + ->select(['transaction_id']) + ->group(['transaction_id']) + ->order(['transaction_id']) + ->toArray() + ; + $i2 = 0; + $count = count($state_user_transaction_ids); + foreach($transaction_ids as $tr_id) { + //echo "$i1: "; + if($i2 >= $count) { + $missing_transaction_ids[] = $tr_id; + //echo "adding to missing: $tr_id, continue
"; + continue; + } + $stu_id = $state_user_transaction_ids[$i2]; + if($tr_id->id == $stu_id->transaction_id) { + $i2++; + //echo "after i2++: $i2
"; + } else if($tr_id->id < $stu_id->transaction_id) { + $missing_transaction_ids[] = $tr_id; + //echo "adding to missing: $tr_id
"; + } + } + + + $tablesForType = [ + 1 => $this->TransactionCreations, + 2 => $this->TransactionSendCoins, + 3 => $this->TransactionGroupCreates, + 4 => $this->TransactionGroupAddaddress, + 5 => $this->TransactionGroupAddaddress + ]; + $idsForType = []; + foreach($missing_transaction_ids as $i => $transaction) { + if(!isset($idsForType[$transaction->transaction_type_id])) { + $idsForType[$transaction->transaction_type_id] = []; + } + $idsForType[$transaction->transaction_type_id][] = $transaction->id; + } + $entities = []; + $state_user_ids = []; + foreach($idsForType as $type_id => $transaction_ids) { + $specific_transactions = $tablesForType[$type_id]->find('all')->where(['transaction_id IN' => $transaction_ids])->toArray(); + $keys = $tablesForType[$type_id]->getSchema()->columns(); + //var_dump($keys); + foreach($specific_transactions as $specific) { + + foreach($keys as $key) { + if(preg_match('/_user_id/', $key)) { + $entity = $this->StateUserTransactions->newEntity(); + $entity->transaction_id = $specific['transaction_id']; + $entity->transaction_type_id = $type_id; + $entity->state_user_id = $specific[$key]; + if(!in_array($entity->state_user_id, $state_user_ids)) { + array_push($state_user_ids, $entity->state_user_id); + } + $entities[] = $entity; + } + } + } + } + //var_dump($entities); + $stateUsersTable = TableRegistry::getTableLocator()->get('StateUsers'); + $existingStateUsers = $stateUsersTable->find('all')->select(['id'])->where(['id IN' => $state_user_ids])->order(['id'])->all(); + $existing_state_user_ids = []; + $finalEntities = []; + foreach($existingStateUsers as $stateUser) { + $existing_state_user_ids[] = $stateUser->id; + } + foreach($entities as $entity) { + if(in_array($entity->state_user_id, $existing_state_user_ids)) { + array_push($finalEntities, $entity); + } + } + + $results = $this->StateUserTransactions->saveMany($finalEntities); + $errors = []; + foreach($results as $i => $res) { + if($res == false) { + $errors[] = $finalEntities[$i]->getErrors(); + } + } + if(count($errors) == 0) { + $result = ['success' => true]; + } else { + $result = ['success' => false, 'msg' => 'error by saving at least one state user transaction', 'errors' => $errors]; + } + + + + return $result; + } } diff --git a/community_server/src/Template/Migrations/migrate.ctp b/community_server/src/Template/Migrations/migrate.ctp new file mode 100644 index 000000000..6ceeec81c --- /dev/null +++ b/community_server/src/Template/Migrations/migrate.ctp @@ -0,0 +1,18 @@ +

Migrate DB

+

Migrate from Version

+ +

Success

+ +

Error

+

+ +

Html->link('Back to Dashboard', ['controller' => 'Dashboard', 'action' => 'index']) ?>

+); From a22593925a15d00db3afbccb5cc7228f295fabd2 Mon Sep 17 00:00:00 2001 From: Dario Rekowski on RockPI Date: Mon, 10 May 2021 15:37:39 +0000 Subject: [PATCH 0155/1050] more migrations --- .../db/setup_db_tables/insert_migrations.sql | 2 + .../src/Controller/MigrationsController.php | 6 +- .../src/Model/Table/BlockchainTypesTable.php | 35 ++++++++++- .../src/Model/Table/TransactionTypesTable.php | 60 ++++++++++++++++++- 4 files changed, 100 insertions(+), 3 deletions(-) create mode 100644 community_server/db/setup_db_tables/insert_migrations.sql diff --git a/community_server/db/setup_db_tables/insert_migrations.sql b/community_server/db/setup_db_tables/insert_migrations.sql new file mode 100644 index 000000000..e6f38117d --- /dev/null +++ b/community_server/db/setup_db_tables/insert_migrations.sql @@ -0,0 +1,2 @@ +INSERT INTO `migrations` (`id`, `db_version`) VALUES +(1, 2); diff --git a/community_server/src/Controller/MigrationsController.php b/community_server/src/Controller/MigrationsController.php index c2febef0f..ddf02bfdc 100644 --- a/community_server/src/Controller/MigrationsController.php +++ b/community_server/src/Controller/MigrationsController.php @@ -41,7 +41,9 @@ class MigrationsController extends AppController $startTime = microtime(true); $stateUserTransactionsTable = TableRegistry::getTableLocator()->get('StateUserTransactions'); $transactionsTable = TableRegistry::getTableLocator()->get('Transactions'); + $transactionTypesTable = TableRegistry::getTableLocator()->get('TransactionTypes'); $stateBalancesTable = TableRegistry::getTableLocator()->get('StateBalances'); + $blockchainTypesTable = TableRegistry::getTableLocator()->get('BlockchainTypes'); $new_db_version = 1; @@ -51,7 +53,9 @@ class MigrationsController extends AppController $stateUserTransactionsTable->truncate(); $commands = [ [$transactionsTable, 'fillStateUserTransactions'], - [$stateBalancesTable, 'updateAllBalances'] + [$stateBalancesTable, 'updateAllBalances'], + [$blockchainTypesTable, 'fillWithDefault'], + [$transactionTypesTable, 'fillWithDefault'] ]; $new_db_version = 2; } diff --git a/community_server/src/Model/Table/BlockchainTypesTable.php b/community_server/src/Model/Table/BlockchainTypesTable.php index 90213ac9f..252fb8fd7 100644 --- a/community_server/src/Model/Table/BlockchainTypesTable.php +++ b/community_server/src/Model/Table/BlockchainTypesTable.php @@ -18,7 +18,7 @@ use Cake\Validation\Validator; * @method \App\Model\Entity\BlockchainType[] patchEntities($entities, array $data, array $options = []) * @method \App\Model\Entity\BlockchainType findOrCreate($search, callable $callback = null, $options = []) */ -class BlockchainTypesTable extends Table +class BlockchainTypesTable extends AppTable { /** * Initialize method @@ -65,4 +65,37 @@ class BlockchainTypesTable extends Table return $validator; } + + public function fillWithDefault() + { + $entry_contents = [ + [ + 'id' => 1, + 'name' => 'mysql', + 'text' => 'use mysql db as blockchain, work only with single community-server', + 'symbol' => NULL + ], + [ + 'id' => 2, + 'name' => 'hedera', + 'text' => 'use hedera for transactions', + 'symbol' => 'HBAR' + ] + ]; + $entities = $this->newEntities($entry_contents); + $this->truncate(); + $save_results = $this->saveMany($entities); + $errors = []; + foreach($save_results as $i => $result) + { + if(!$result) { + $errors[] = $entities[$i]->getErrors(); + } + } + if(count($errors) > 0) { + return ['success' => false, 'msg' => 'error by saving blockchain types', 'errors' => $errors]; + } + return ['success' => true]; + + } } diff --git a/community_server/src/Model/Table/TransactionTypesTable.php b/community_server/src/Model/Table/TransactionTypesTable.php index 5cc842f5e..7669ff2b3 100644 --- a/community_server/src/Model/Table/TransactionTypesTable.php +++ b/community_server/src/Model/Table/TransactionTypesTable.php @@ -20,7 +20,7 @@ use Cake\Validation\Validator; * @method \App\Model\Entity\TransactionType[] patchEntities($entities, array $data, array $options = []) * @method \App\Model\Entity\TransactionType findOrCreate($search, callable $callback = null, $options = []) */ -class TransactionTypesTable extends Table +class TransactionTypesTable extends AppTable { /** * Initialize method @@ -66,4 +66,62 @@ class TransactionTypesTable extends Table return $validator; } + + public function fillWithDefault() + { + + $entry_contents = [ + [ + 'id' => 1, + 'name' => 'creation', + 'text' => 'create new gradidos for member and also for group (in development)', + ], [ + 'id' => 2, + 'name' => 'transfer', + 'text' => 'send gradidos from one member to another, also cross group transfer', + ], [ + 'id' => 3, + 'name' => 'group create', + 'text' => 'create a new group, trigger creation of new hedera topic and new blockchain on node server' + ], [ + 'id' => 4, + 'name' => 'group add member', + 'text' => 'add user to a group or move if he was already in a group' + ], [ + 'id' => 5, + 'name' => 'group remove member', + 'text' => 'remove user from group, maybe he was moved elsewhere' + ],[ + 'id' => 6, + 'name' => 'hedera topic create', + 'text' => 'create new topic on hedera' + ],[ + 'id' => 7, + 'name' => 'hedera topic send message', + 'text' => 'send consensus message over hedera topic' + ],[ + 'id' => 8, + 'name' => 'hedera account create', + 'text' => 'create new account on hedera for holding some founds with unencrypted keys' + ],[ + 'id' => 9, + 'name' => 'decay start', + 'text' => 'signalize the starting point for decay calculation, allowed only once per chain' + ] + ]; + $entities = $this->newEntities($entry_contents); + $this->truncate(); + $save_results = $this->saveMany($entities); + $errors = []; + foreach($save_results as $i => $result) + { + if(!$result) { + $errors[] = $entities[$i]->getErrors(); + } + } + if(count($errors) > 0) { + return ['success' => false, 'msg' => 'error by saving transaction types', 'errors' => $errors]; + } + return ['success' => true]; + } } From 6054333929910f02e8eb4f5af5c67d1b17ba014e Mon Sep 17 00:00:00 2001 From: ogerly Date: Mon, 10 May 2021 17:37:39 +0200 Subject: [PATCH 0156/1050] spelling & translation --- frontend/src/locales/de.json | 8 ++++---- frontend/src/locales/en.json | 4 ++-- frontend/src/views/Pages/AccountOverview/GddSend.vue | 1 - 3 files changed, 6 insertions(+), 7 deletions(-) diff --git a/frontend/src/locales/de.json b/frontend/src/locales/de.json index b297bfc81..36d761eb0 100644 --- a/frontend/src/locales/de.json +++ b/frontend/src/locales/de.json @@ -3,7 +3,7 @@ "welcome":"Willkommen!", "community": "Gemeinschaft", "logout":"Abmelden", - "login":"Login", + "login":"Anmeldung", "signup": "Registrieren", "reset": "Passwort zurücksetzen", "imprint":"Impressum", @@ -13,7 +13,7 @@ "back":"Zurück", "send":"Senden", "transactions":"Transaktionen", - "language":"Language", + "language":"Sprache", "languages":{ "de": "Deutsch", "en": "English" @@ -117,7 +117,7 @@ } }, "reset-password": { - "title": "Passwort Zurücksetzen", - "text": "Jetzt kannst du ein neues Passwort speichern, mit dem du dich zukünfitg in der GRADIDO App anmelden kannst." + "title": "Passwort zurücksetzen", + "text": "Jetzt kannst du ein neues Passwort speichern, mit dem du dich zukünftig in der Gradido-App anmelden kannst." } } diff --git a/frontend/src/locales/en.json b/frontend/src/locales/en.json index a49d6fc3d..f9cd647c1 100644 --- a/frontend/src/locales/en.json +++ b/frontend/src/locales/en.json @@ -13,7 +13,7 @@ "back":"Back", "send":"Send", "transactions":"Transactions", - "language":"Sprache", + "language":"languages", "languages":{ "de": "Deutsch", "en": "English" @@ -119,6 +119,6 @@ }, "reset-password": { "title": "Reset Password", - "text": "Now you can save a new password to login to the GRADIDO App in the future." + "text": "Now you can save a new password to login to the Gradido-App in the future." } } diff --git a/frontend/src/views/Pages/AccountOverview/GddSend.vue b/frontend/src/views/Pages/AccountOverview/GddSend.vue index b262e6c34..548a7f783 100644 --- a/frontend/src/views/Pages/AccountOverview/GddSend.vue +++ b/frontend/src/views/Pages/AccountOverview/GddSend.vue @@ -184,7 +184,6 @@
{{ $t('form.close') }} -
From 394bfb71ef2325b651572fe758f98a68e9e173a4 Mon Sep 17 00:00:00 2001 From: Dario Rekowski on RockPI Date: Mon, 10 May 2021 15:38:14 +0000 Subject: [PATCH 0157/1050] add missing template updates --- community_server/src/Template/Migrations/migrate.ctp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/community_server/src/Template/Migrations/migrate.ctp b/community_server/src/Template/Migrations/migrate.ctp index 6ceeec81c..4c191fb61 100644 --- a/community_server/src/Template/Migrations/migrate.ctp +++ b/community_server/src/Template/Migrations/migrate.ctp @@ -15,4 +15,4 @@

Html->link('Back to Dashboard', ['controller' => 'Dashboard', 'action' => 'index']) ?>

-); + From ffd17207660c1a9bb962a03ccfa3aeaeb53fa298 Mon Sep 17 00:00:00 2001 From: Alexander Friedland Date: Mon, 10 May 2021 18:01:30 +0200 Subject: [PATCH 0158/1050] Update frontend/src/locales/en.json Co-authored-by: Ulf Gebhardt --- frontend/src/locales/en.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/locales/en.json b/frontend/src/locales/en.json index f9cd647c1..921074fbb 100644 --- a/frontend/src/locales/en.json +++ b/frontend/src/locales/en.json @@ -13,7 +13,7 @@ "back":"Back", "send":"Send", "transactions":"Transactions", - "language":"languages", + "language":"Language", "languages":{ "de": "Deutsch", "en": "English" From 0bb2ac0d68b08da494b4c075cf0fd10b423f2ed7 Mon Sep 17 00:00:00 2001 From: ogerly Date: Mon, 10 May 2021 18:06:55 +0200 Subject: [PATCH 0159/1050] fix: yarn test --- .../Pages/AccountOverview/GddSend.spec.js | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/frontend/src/views/Pages/AccountOverview/GddSend.spec.js b/frontend/src/views/Pages/AccountOverview/GddSend.spec.js index ffc8fd211..36e5d9e66 100644 --- a/frontend/src/views/Pages/AccountOverview/GddSend.spec.js +++ b/frontend/src/views/Pages/AccountOverview/GddSend.spec.js @@ -41,18 +41,18 @@ describe('GddSend', () => { describe('warning messages', () => { it('has a warning message', () => { - expect(wrapper.find('div.alert-warning').find('span').text()).toBe('form.attention') + expect(wrapper.find('div.alert-default').find('span').text()).toBe('form.attention') }) - it('has a dismiss button', () => { - expect(wrapper.find('div.alert-warning').find('button').exists()).toBeTruthy() - }) - - it('dismisses the warning when button is clicked', async () => { - wrapper.find('div.alert-warning').find('button').trigger('click') - await wrapper.vm.$nextTick() - expect(wrapper.find('div.alert-warning').exists()).toBeFalsy() - }) + //it('has a dismiss button', () => { + // expect(wrapper.find('div.alert-warning').find('button').exists()).toBeTruthy() + //}) +// + //it('dismisses the warning when button is clicked', async () => { + // wrapper.find('div.alert-warning').find('button').trigger('click') + // await wrapper.vm.$nextTick() + // expect(wrapper.find('div.alert-warning').exists()).toBeFalsy() + //}) }) describe('transaction form', () => { From 9965b7639f29563dbc234fd79b0558a2ab8e7a69 Mon Sep 17 00:00:00 2001 From: ogerly Date: Mon, 10 May 2021 18:17:37 +0200 Subject: [PATCH 0160/1050] fix: yarn test2 --- .../src/views/Pages/AccountOverview/GddSend.spec.js | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/frontend/src/views/Pages/AccountOverview/GddSend.spec.js b/frontend/src/views/Pages/AccountOverview/GddSend.spec.js index 36e5d9e66..3cd0afad0 100644 --- a/frontend/src/views/Pages/AccountOverview/GddSend.spec.js +++ b/frontend/src/views/Pages/AccountOverview/GddSend.spec.js @@ -43,16 +43,6 @@ describe('GddSend', () => { it('has a warning message', () => { expect(wrapper.find('div.alert-default').find('span').text()).toBe('form.attention') }) - - //it('has a dismiss button', () => { - // expect(wrapper.find('div.alert-warning').find('button').exists()).toBeTruthy() - //}) -// - //it('dismisses the warning when button is clicked', async () => { - // wrapper.find('div.alert-warning').find('button').trigger('click') - // await wrapper.vm.$nextTick() - // expect(wrapper.find('div.alert-warning').exists()).toBeFalsy() - //}) }) describe('transaction form', () => { From be26bf27587b891512067670e5a7ec150fecd61b Mon Sep 17 00:00:00 2001 From: Dario Rekowski on RockPI Date: Mon, 10 May 2021 17:59:34 +0000 Subject: [PATCH 0161/1050] tested and fixed bugs, update api docu --- .../gradido_community/transaction_types.sql | 2 +- .../src/Controller/AppController.php | 2 +- .../src/Controller/MigrationsController.php | 18 +++-- .../src/Model/Entity/StateBalance.php | 12 ++-- community_server/src/Model/Table/AppTable.php | 21 +++++- .../src/Model/Table/BlockchainTypesTable.php | 15 ++-- .../src/Model/Table/StateBalancesTable.php | 19 +++++- .../src/Model/Table/TransactionTypesTable.php | 17 ++--- .../src/Model/Table/TransactionsTable.php | 64 ++++++++--------- .../AppRequests/list_transactions.ctp | 3 + .../src/Template/Migrations/migrate.ctp | 2 +- docu/community-server.api.md | 68 +++++++++++++++++-- 12 files changed, 165 insertions(+), 78 deletions(-) diff --git a/community_server/db/skeema/gradido_community/transaction_types.sql b/community_server/db/skeema/gradido_community/transaction_types.sql index a3e6779d9..10aad25b0 100644 --- a/community_server/db/skeema/gradido_community/transaction_types.sql +++ b/community_server/db/skeema/gradido_community/transaction_types.sql @@ -1,6 +1,6 @@ CREATE TABLE `transaction_types` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, - `name` varchar(45) COLLATE utf8mb4_unicode_ci NOT NULL, + `name` varchar(90) COLLATE utf8mb4_unicode_ci NOT NULL, `text` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; diff --git a/community_server/src/Controller/AppController.php b/community_server/src/Controller/AppController.php index 80690b238..9f577d77a 100644 --- a/community_server/src/Controller/AppController.php +++ b/community_server/src/Controller/AppController.php @@ -166,7 +166,7 @@ class AppController extends Controller } $php_data_version = 2; if($current_db_version < $php_data_version) { - $this->redirect(['controller' => 'Migrations', 'action' => 'migrate', $html, $current_db_version]); + $this->redirect(['controller' => 'Migrations', 'action' => 'migrate', 'html' => $html, 'db_version' => $current_db_version]); } } diff --git a/community_server/src/Controller/MigrationsController.php b/community_server/src/Controller/MigrationsController.php index ddf02bfdc..31fa41001 100644 --- a/community_server/src/Controller/MigrationsController.php +++ b/community_server/src/Controller/MigrationsController.php @@ -13,6 +13,12 @@ use Cake\ORM\TableRegistry; */ class MigrationsController extends AppController { + public function initialize() + { + parent::initialize(); + $this->Auth->allow('migrate'); + } + /** * Index method * @@ -36,8 +42,12 @@ class MigrationsController extends AppController return ['success' => true]; } - public function migrate($html, $current_db_version) + public function migrate() { + + $html = $this->request->getQuery('html'); + $current_db_version = $this->request->getQuery('db_version'); + $startTime = microtime(true); $stateUserTransactionsTable = TableRegistry::getTableLocator()->get('StateUserTransactions'); $transactionsTable = TableRegistry::getTableLocator()->get('Transactions'); @@ -52,10 +62,10 @@ class MigrationsController extends AppController if($current_db_version == 1) { $stateUserTransactionsTable->truncate(); $commands = [ - [$transactionsTable, 'fillStateUserTransactions'], - [$stateBalancesTable, 'updateAllBalances'], [$blockchainTypesTable, 'fillWithDefault'], - [$transactionTypesTable, 'fillWithDefault'] + [$transactionTypesTable, 'fillWithDefault'], + [$transactionsTable, 'fillStateUserTransactions'], + [$stateBalancesTable, 'updateAllBalances'] ]; $new_db_version = 2; } diff --git a/community_server/src/Model/Entity/StateBalance.php b/community_server/src/Model/Entity/StateBalance.php index 7d595653e..334db222f 100644 --- a/community_server/src/Model/Entity/StateBalance.php +++ b/community_server/src/Model/Entity/StateBalance.php @@ -44,9 +44,7 @@ class StateBalance extends Entity } else if(method_exists($dateOrTime, 'i18nFormat')) { return $dateOrTime->i18nFormat(Time::UNIX_TIMESTAMP_FORMAT); } else { - var_dump($dateOrTime); - debug_print_backtrace(0, 6); - die("date or time unexpected object"); + return 0; } } @@ -59,8 +57,12 @@ class StateBalance extends Entity // SELECT TIMESTAMPDIFF(SECOND, modified, CURDATE()) AS age_in_seconds from state_balances // decay_for_duration = decay_factor^seconds // decay = gradido_cent * decay_for_duration - - $decay_duration = intval(Time::now()->getTimestamp() - $this->convertToTimestamp($this->record_date)); + $startDate = $this->convertToTimestamp($this->record_date); + if($startDate == 0) { + return $this->amount; + } + + $decay_duration = intval(Time::now()->getTimestamp() - $startDate); if($decay_duration === 0) { return $this->amount; } diff --git a/community_server/src/Model/Table/AppTable.php b/community_server/src/Model/Table/AppTable.php index 3a281afcc..138a7f949 100644 --- a/community_server/src/Model/Table/AppTable.php +++ b/community_server/src/Model/Table/AppTable.php @@ -1,5 +1,7 @@ schema()->truncateSql($this->connection()); + $truncateCommands = $this->getSchema()->truncateSql($this->getConnection()); foreach ($truncateCommands as $truncateCommand) { - $this->connection()->query($truncateCommand); + $this->getConnection()->query($truncateCommand); } + $this->getConnection()->query('ALTER TABLE ' . $this->getSchema()->name() . ' AUTO_INCREMENT=1'); } + public function saveManyWithErrors($entities) + { + $save_results = $this->saveMany($entities); + // save all at once failed, no try one by one to get error message + if($save_results === false) { + foreach($entities as $entity) { + if(!$this->save($entity)) { + return ['success' => false, 'errors' => $entity->getErrors()]; + } + } + } else { + return ['success' => true]; + } + } } diff --git a/community_server/src/Model/Table/BlockchainTypesTable.php b/community_server/src/Model/Table/BlockchainTypesTable.php index 252fb8fd7..3aa67a83d 100644 --- a/community_server/src/Model/Table/BlockchainTypesTable.php +++ b/community_server/src/Model/Table/BlockchainTypesTable.php @@ -84,18 +84,11 @@ class BlockchainTypesTable extends AppTable ]; $entities = $this->newEntities($entry_contents); $this->truncate(); - $save_results = $this->saveMany($entities); - $errors = []; - foreach($save_results as $i => $result) - { - if(!$result) { - $errors[] = $entities[$i]->getErrors(); - } + $save_results = $this->saveManyWithErrors($entities); + if(!$save_results['success']) { + $save_results['msg'] = 'error by saving default transaction types'; } - if(count($errors) > 0) { - return ['success' => false, 'msg' => 'error by saving blockchain types', 'errors' => $errors]; - } - return ['success' => true]; + return $save_results; } } diff --git a/community_server/src/Model/Table/StateBalancesTable.php b/community_server/src/Model/Table/StateBalancesTable.php index 87e961c5d..8ee3be193 100644 --- a/community_server/src/Model/Table/StateBalancesTable.php +++ b/community_server/src/Model/Table/StateBalancesTable.php @@ -91,25 +91,38 @@ class StateBalancesTable extends Table return $rules; } - public static function calculateDecay($startBalance, FrozenTime $startDate, FrozenTime $endDate) + public function calculateDecay($startBalance, FrozenTime $startDate, FrozenTime $endDate, $withInterval = false) { $decayStartDate = self::getDecayStartDateCached(); // if no start decay block exist, we just return input // if start date for decay is after enddate, we also just return input if($decayStartDate === null || $decayStartDate >= $endDate) { - return $startBalance; + if($withInterval) { + return ['balance' => $startBalance, 'interval' => new \DateInterval('PT0S')]; + } else { + return $startBalance; + } } $state_balance = $this->newEntity(); $state_balance->amount = $startBalance; + $interval = null; // if decay start date is before start date we calculate decay for full duration if($decayStartDate < $startDate) { $state_balance->record_date = $startDate; + $interval = $endDate->diff($startDate); } // if decay start in between start date and end date we caculcate decay from decay start time to end date else { $state_balance->record_date = $decayStartDate; + $interval = $endDate->diff($decayStartDate); } - return $state_balance->partDecay($endDate); + $decay = $state_balance->partDecay($endDate); + if($withInterval) { + return ['balance' => $decay, 'interval' => $interval]; + } else { + return $decay; + } + } diff --git a/community_server/src/Model/Table/TransactionTypesTable.php b/community_server/src/Model/Table/TransactionTypesTable.php index 7669ff2b3..2ffd1e64c 100644 --- a/community_server/src/Model/Table/TransactionTypesTable.php +++ b/community_server/src/Model/Table/TransactionTypesTable.php @@ -55,7 +55,7 @@ class TransactionTypesTable extends AppTable $validator ->scalar('name') - ->maxLength('name', 24) + ->maxLength('name', 45) ->requirePresence('name', 'create') ->notEmptyString('name'); @@ -111,17 +111,10 @@ class TransactionTypesTable extends AppTable ]; $entities = $this->newEntities($entry_contents); $this->truncate(); - $save_results = $this->saveMany($entities); - $errors = []; - foreach($save_results as $i => $result) - { - if(!$result) { - $errors[] = $entities[$i]->getErrors(); - } + $save_results = $this->saveManyWithErrors($entities); + if(!$save_results['success']) { + $save_results['msg'] = 'error by saving default transaction types'; } - if(count($errors) > 0) { - return ['success' => false, 'msg' => 'error by saving transaction types', 'errors' => $errors]; - } - return ['success' => true]; + return $save_results; } } diff --git a/community_server/src/Model/Table/TransactionsTable.php b/community_server/src/Model/Table/TransactionsTable.php index 9ae2fe02a..5169129d7 100644 --- a/community_server/src/Model/Table/TransactionsTable.php +++ b/community_server/src/Model/Table/TransactionsTable.php @@ -1,12 +1,12 @@ 0 && $decay == true) - { + $prev = null; + if($i > 0 ) { $prev = $stateUserTransactions[$i-1]; + } + if($prev && $decay == true) + { + if($prev->balance > 0) { // var_dump($stateUserTransactions); $current = $su_transaction; //echo "decay between " . $prev->transaction_id . " and " . $current->transaction_id . "
"; - $interval = $current->balance_date->diff($prev->balance_date); - $state_balance->amount = $prev->balance; - $state_balance->record_date = $prev->balance_date; - $diff_amount = $state_balance->partDecay($current->balance_date); - + $calculated_decay = $stateBalancesTable->calculateDecay($prev->balance, $prev->balance_date, $current->balance_date, true); + //echo $interval->format('%R%a days'); //echo "prev balance: " . $prev->balance . ", diff_amount: $diff_amount, summe: " . (-intval($prev->balance - $diff_amount)) . "
"; $final_transactions[] = [ 'type' => 'decay', - 'balance' => floatval(intval($prev->balance - $diff_amount)), - 'decay_duration' => $interval->format('%a days, %H hours, %I minutes, %S seconds'), + 'balance' => floatval($prev->balance - $calculated_decay['balance']), + 'decay_duration' => $calculated_decay['interval']->format('%a days, %H hours, %I minutes, %S seconds'), 'memo' => '' ]; } @@ -207,13 +208,16 @@ class TransactionsTable extends Table echo "
";*/ if($su_transaction->transaction_type_id == 1) { // creation $creation = $transaction->transaction_creation; + $balance = $stateBalancesTable->calculateDecay($creation->amount, $creation->target_date, $transaction->received); + $final_transactions[] = [ 'name' => 'Gradido Akademie', 'type' => 'creation', 'transaction_id' => $transaction->id, 'date' => $transaction->received,// $creation->target_date, 'target_date' => $creation->target_date, - 'balance' => $creation->amount, + 'creation_amount' => $creation->amount, + 'balance' => $balance, 'memo' => $transaction->memo ]; } else if($su_transaction->transaction_type_id == 2) { // transfer or send coins @@ -253,12 +257,18 @@ class TransactionsTable extends Table } if($i == $stateUserTransactionsCount-1 && $decay == true) { - $state_balance->amount = $su_transaction->balance; - $state_balance->record_date = $su_transaction->balance_date; + $calculated_decay = $stateBalancesTable->calculateDecay( + $su_transaction->balance, + $su_transaction->balance_date, new FrozenTime(), true); + $decay_start_date = $stateBalancesTable->getDecayStartDateCached(); + $duration = $su_transaction->balance_date->timeAgoInWords(); + if($decay_start_date > $su_transaction->balance_date) { + $duration = $decay_start_date->timeAgoInWords(); + } $final_transactions[] = [ 'type' => 'decay', - 'balance' => floatval(intval($su_transaction->balance - $state_balance->decay)), - 'decay_duration' => $su_transaction->balance_date->timeAgoInWords(), + 'balance' => floatval($su_transaction->balance - $calculated_decay['balance']), + 'decay_duration' => $duration, 'memo' => '' ]; } @@ -337,12 +347,13 @@ class TransactionsTable extends Table } public function fillStateUserTransactions() - { + { $missing_transaction_ids = []; $transaction_ids = $this ->find('all') ->select(['id', 'transaction_type_id']) ->order(['id']) + ->where(['transaction_type_id <' => 6]) ->all() ; $state_user_transaction_ids = $this->StateUserTransactions @@ -422,21 +433,10 @@ class TransactionsTable extends Table } } - $results = $this->StateUserTransactions->saveMany($finalEntities); - $errors = []; - foreach($results as $i => $res) { - if($res == false) { - $errors[] = $finalEntities[$i]->getErrors(); - } + $save_results = $this->StateUserTransactions->saveManyWithErrors($finalEntities); + if(!$save_results['success']) { + $save_results['msg'] = 'error by saving at least one state user transaction'; } - if(count($errors) == 0) { - $result = ['success' => true]; - } else { - $result = ['success' => false, 'msg' => 'error by saving at least one state user transaction', 'errors' => $errors]; - } - - - - return $result; + return $save_results; } } diff --git a/community_server/src/Template/AppRequests/list_transactions.ctp b/community_server/src/Template/AppRequests/list_transactions.ctp index f829b5f16..28a76f2be 100644 --- a/community_server/src/Template/AppRequests/list_transactions.ctp +++ b/community_server/src/Template/AppRequests/list_transactions.ctp @@ -12,6 +12,9 @@ $body['gdtSum'] = $this->element('centToFloat', ['cent' => $body['gdtSum'], 'pre foreach($body['transactions'] as $i => $transaction) { $body['transactions'][$i]['balance'] = $this->element('centToFloat', ['cent' => $transaction['balance'], 'precision' => 4]); + if(isset($transaction['creation_amount'])) { + $body['transactions'][$i]['creation_amount'] = $this->element('centToFloat', ['cent' => $transaction['creation_amount'], 'precision' => 4]); + } } ?> \ No newline at end of file diff --git a/community_server/src/Template/Migrations/migrate.ctp b/community_server/src/Template/Migrations/migrate.ctp index 4c191fb61..d345c9a90 100644 --- a/community_server/src/Template/Migrations/migrate.ctp +++ b/community_server/src/Template/Migrations/migrate.ctp @@ -10,7 +10,7 @@

Migrate from Version

Success

- +

Error

diff --git a/docu/community-server.api.md b/docu/community-server.api.md index 9354bf232..5685c9586 100644 --- a/docu/community-server.api.md +++ b/docu/community-server.api.md @@ -23,13 +23,13 @@ Additional session can be provided as GET-Parameter ```json { "state":"success", - "balance":1590.60, + "balance":15906078, "decay":15873851, "decay_date":"2021-04-16T11:47:21+00:00" } ``` -- `balance` : balance describes gradido +- `balance` : balance describes gradido cents which are 4 digits behind the separator. A balance value of 174500 equals therefor 17,45 GDD - `decay` : balance with decay on it at the time in decay_date, so it is the precise balance of user at time of calling this function - `decay_date`: date and time for decay amount, should be the time and date of function call @@ -59,16 +59,32 @@ Assuming: session is valid { "state":"success", "transactions": [ + { + "type": "decay", + "balance": "14.74", + "decay_duration": "4 days, 2 hours ago", + "memo": "" + }, { "name": "Max Mustermann", "email": "Maxim Mustermann", "type": "send", "transaction_id": 2, "date": "2021-02-19T13:25:36+00:00", - "balance": 192.0, + "balance": 192, "memo": "a piece of cake :)", "pubkey": "038a6f93270dc57b91d76bf110ad3863fcb7d1b08e7692e793fcdb4467e5b6a7" - } + }, + { + "name": "Gradido Akademie", + "type": "creation", + "transaction_id": 10, + "date": "2021-04-15T11:19:45+00:00", + "target_date": "2021-02-01T00:00:00+00:00", + "creation_amount": "1000", + "balance": "1000", + "memo": "AGE Februar 2021" + } ], "transactionExecutingCount": 0, "count": 1, @@ -95,8 +111,11 @@ Transaction: - `receiver`: user has received gradidos from another user - `transaction_id`: id of transaction in db, in stage2 also the hedera sequence number of transaction - `date`: date of ordering transaction (booking date) -- `balance`: Gradido +- `balance`: Gradido as float, max 2 Nachkommastellen, by creation balance after subtract decay amount - `memo`: Details about transaction +- `decay_duration`: only for decay, time duration for decay calculation in english text +- `creation_amount`: only for creation transaction, created account before decay +- `target_date`: only by creation transaction, target date for creation, start time for decay calculation (if < as global decay start time) ## Creation transaction Makes a creation transaction to create new Gradido @@ -150,7 +169,6 @@ with - `session_id`: optional, only used if cookie GRADIDO_LOGIN not exist and no sesion_id in php session - `email` or `username` or `pubkey`: used to identify how gets the gradidos (email and username are only aliases for pubkey) - `amount`: gdd amount to transfer in gradido cent (10000000 = 1000,00 GDD) -- `target_date`: target date for creation, can be max 3 months before current date, but not after current date, allowed formats do you find here: https://pocoproject.org/docs/Poco.DateTimeFormat.html - `memo`: text for receiver, currently saved as clear text in blockchain - `auto_sign`: if set to true, transaction will be directly signed on login-server and proceed if needed signs are there if set to false, transaction must be signed after on `http://localhost/account/checkTransactions` @@ -245,3 +263,41 @@ Without auto-sign the transaction is pending on the login-server and waits for t // TODO Is this in line with our usability goals? // TODO Should this not be handled client side? + +# Klicktipp + +## Subscribe +Subscribe current logged in user to gradido newsletter + +### Request +`GET http://localhost/api/klicktipp_subscribe/[session_id]` +Parts symbolized by [] are optional + - session_id: session will be searched in php session and GRADIDO_LOGIN cookie and if not found use this + +### Response +Assuming: session is valid + +```json +{ + "state": "success", + "redirect_url": "" +} +```` + +## Unsubscribe +Unsubscribe current logged in user from gradido newsletter + +### Request +`GET http://localhost/api/klicktipp_unsubscribe/[session_id]` +Parts symbolized by [] are optional + - session_id: session will be searched in php session and GRADIDO_LOGIN cookie and if not found use this + +### Response +Assuming: session is valid + +```json +{ + "state": "success" +} +```` + From 31363b701650a5939383383a9cd4efc7f8864d74 Mon Sep 17 00:00:00 2001 From: einhornimmond Date: Mon, 10 May 2021 20:06:48 +0200 Subject: [PATCH 0162/1050] add ipv6 for localhost check --- community_server/config/routes.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/community_server/config/routes.php b/community_server/config/routes.php index 322825c87..da9118f65 100644 --- a/community_server/config/routes.php +++ b/community_server/config/routes.php @@ -65,8 +65,9 @@ Router::scope('/', function (RouteBuilder $routes) { if($entry == 'ElopageWebhook' || $entry == 'AppRequests') { return true; } - if($request->clientIp() == '127.0.0.1' || $request->clientIp() == 'localhost' || $request->clientIp() == '') { - return true; + $allowedIpLocalhost = ['127.0.0.1', 'localhost', '', '::1']; + if(true == in_array($clientIp, $allowedIpLocalhost)) { + return true; } $allowedCaller = Configure::read('API.allowedCaller'); $ipPerHost = []; From 2dff5bdf314f0793a707117bfc1a1c9df3760876 Mon Sep 17 00:00:00 2001 From: einhornimmond Date: Mon, 10 May 2021 20:14:14 +0200 Subject: [PATCH 0163/1050] update docu --- docu/community-server.api.md | 56 ++++++++++++++++++------------------ 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/docu/community-server.api.md b/docu/community-server.api.md index 5685c9586..11556513b 100644 --- a/docu/community-server.api.md +++ b/docu/community-server.api.md @@ -23,13 +23,13 @@ Additional session can be provided as GET-Parameter ```json { "state":"success", - "balance":15906078, - "decay":15873851, + "balance":1590.60, + "decay":1587.38, "decay_date":"2021-04-16T11:47:21+00:00" } ``` -- `balance` : balance describes gradido cents which are 4 digits behind the separator. A balance value of 174500 equals therefor 17,45 GDD +- `balance` : balance describes gradido as float with max two decimal places - `decay` : balance with decay on it at the time in decay_date, so it is the precise balance of user at time of calling this function - `decay_date`: date and time for decay amount, should be the time and date of function call @@ -59,32 +59,32 @@ Assuming: session is valid { "state":"success", "transactions": [ - { - "type": "decay", - "balance": "14.74", - "decay_duration": "4 days, 2 hours ago", - "memo": "" - }, + { + "type": "decay", + "balance": "14.74", + "decay_duration": "4 days, 2 hours ago", + "memo": "" + }, { "name": "Max Mustermann", "email": "Maxim Mustermann", "type": "send", "transaction_id": 2, "date": "2021-02-19T13:25:36+00:00", - "balance": 192, + "balance": 192.0, "memo": "a piece of cake :)", "pubkey": "038a6f93270dc57b91d76bf110ad3863fcb7d1b08e7692e793fcdb4467e5b6a7" }, - { - "name": "Gradido Akademie", - "type": "creation", - "transaction_id": 10, - "date": "2021-04-15T11:19:45+00:00", - "target_date": "2021-02-01T00:00:00+00:00", - "creation_amount": "1000", - "balance": "1000", - "memo": "AGE Februar 2021" - } + { + "name": "Gradido Akademie", + "type": "creation", + "transaction_id": 10, + "date": "2021-04-15T11:19:45+00:00", + "target_date": "2021-02-01T00:00:00+00:00", + "creation_amount": "1000.0", + "balance": "1000.0", + "memo": "AGE Februar 2021" + } ], "transactionExecutingCount": 0, "count": 1, @@ -136,7 +136,7 @@ with { "session_id" : -127182, "email": "max.musterman@gmail.de", - "amount": 10000000, + "amount": 1000.0, "target_date":"2021-02-19T13:25:36+00:00", "memo":"AGE", "auto_sign": true @@ -147,7 +147,7 @@ with { "session_id" : -127182, "username": "Maxi_786", - "amount": 10000000, + "amount": 1000.0, "target_date":"2021-02-19T13:25:36+00:00", "memo":"AGE", "auto_sign": true @@ -158,7 +158,7 @@ with { "session_id" : -127182, "pubkey": "038a6f93270dc57b91d76bf110ad3863fcb7d1b08e7692e793fcdb4467e5b6a7", - "amount": 10000000, + "amount": 1000.0, "target_date":"2021-02-19T13:25:36+00:00", "memo":"AGE", "auto_sign": true @@ -168,7 +168,7 @@ with - `session_id`: optional, only used if cookie GRADIDO_LOGIN not exist and no sesion_id in php session - `email` or `username` or `pubkey`: used to identify how gets the gradidos (email and username are only aliases for pubkey) -- `amount`: gdd amount to transfer in gradido cent (10000000 = 1000,00 GDD) +- `amount`: gdd amount to transfer in gradido as float - `memo`: text for receiver, currently saved as clear text in blockchain - `auto_sign`: if set to true, transaction will be directly signed on login-server and proceed if needed signs are there if set to false, transaction must be signed after on `http://localhost/account/checkTransactions` @@ -204,7 +204,7 @@ with { "session_id" : -127182, "email": "max.musterman@gmail.de", - "amount": 1000000, + "amount": 100.0, "memo":"a gift", "auto_sign": true } @@ -214,7 +214,7 @@ with { "session_id" : -127182, "username": "Maxi_786", - "amount": 1000000, + "amount": 100.0, "memo":"a gift", "auto_sign": true } @@ -224,13 +224,13 @@ with { "session_id" : -127182, "pubkey": "038a6f93270dc57b91d76bf110ad3863fcb7d1b08e7692e793fcdb4467e5b6a7", - "amount": 1000000, + "amount": 100.0, "memo":"a gift", "auto_sign": true } ``` - `session_id`: optional, only used if cookie GRADIDO_LOGIN not exist and no sesion_id in php session -- `amount`: amount to transfer, 2000000 = 200,00 GDD +- `amount`: amount to transfer as float - `email` or `username` or `pubkey`: used to identify how gets the gradidos (email and username are only aliases for pubkey) - `memo`: text for receiver, currently saved as clear text in blockchain - `auto_sign`: if set to true, transaction will be directly signed on login-server and proceed if needed signs are there From f8e8b6e56e4b44b2e3f7e5a90f431c1257464fc8 Mon Sep 17 00:00:00 2001 From: einhornimmond Date: Mon, 10 May 2021 20:17:10 +0200 Subject: [PATCH 0164/1050] ignore netbeans project files --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index c8c581e51..44f403757 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ /node_modules/* .vscode .skeema +nbproject \ No newline at end of file From 4ee158bf3281bb52b49d3d5c4ef8f86e932fccdb Mon Sep 17 00:00:00 2001 From: Moriz Wahl Date: Mon, 10 May 2021 20:55:30 +0200 Subject: [PATCH 0165/1050] validation of input fields of GddSend --- frontend/src/locales/de.json | 5 +- frontend/src/locales/en.json | 5 +- frontend/src/main.js | 34 +++++ frontend/src/vee-validate.js | 25 ---- .../Pages/AccountOverview/GddSend.spec.js | 4 + .../views/Pages/AccountOverview/GddSend.vue | 136 ++++++++++-------- 6 files changed, 123 insertions(+), 86 deletions(-) delete mode 100644 frontend/src/vee-validate.js diff --git a/frontend/src/locales/de.json b/frontend/src/locales/de.json index b297bfc81..f3897f112 100644 --- a/frontend/src/locales/de.json +++ b/frontend/src/locales/de.json @@ -44,7 +44,10 @@ "max_gdd_info":"maximale anzahl GDD zum versenden erreicht!", "send_check":"Bestätige deine Zahlung. Prüfe bitte nochmal alle Daten!", "thx":"Danke,", - "send_success":"deine Transaktion wurde erfolgreich ausgeführt" + "send_success":"deine Transaktion wurde erfolgreich ausgeführt", + "validation": { + "double": "Das Feld {field} muss eine Dezimalzahl mit zwei Nachkommastellen sein" + } }, "error": { "error":"Fehler" diff --git a/frontend/src/locales/en.json b/frontend/src/locales/en.json index a49d6fc3d..a5173c2be 100644 --- a/frontend/src/locales/en.json +++ b/frontend/src/locales/en.json @@ -44,7 +44,10 @@ "max_gdd_info":"maximale anzahl GDD zum versenden erreicht!", "send_check":"Bestätige deine Zahlung. Prüfe bitte nochmal alle Daten!", "thx":"Thank you,", - "send_success":"your transaction was successfully completed" + "send_success":"your transaction was successfully completed", + "validation": { + "double": "The {field} field must be a decimal with two digits" + } }, "error": { "error":"Error" diff --git a/frontend/src/main.js b/frontend/src/main.js index bd57c6e57..94889e390 100755 --- a/frontend/src/main.js +++ b/frontend/src/main.js @@ -2,6 +2,8 @@ import Vue from 'vue' import DashboardPlugin from './plugins/dashboard-plugin' import App from './App.vue' import i18n from './i18n.js' +import { configure, extend } from 'vee-validate' +import { required, email, min, between, double } from 'vee-validate/dist/rules' // store import { store } from './store/store' @@ -21,6 +23,38 @@ router.beforeEach((to, from, next) => { } }) +configure({ + defaultMessage: (field, values) => { + values._field_ = i18n.t(`fields.${field}`) + return i18n.t(`validations.messages.${values._rule_}`, values) + }, +}) + +extend('email', { + ...email, + message: (_, values) => i18n.t('validations.messages.email', values), +}) + +extend('required', { + ...required, + message: (_, values) => i18n.t('validations.messages.required', values), +}) + +extend('min', { + ...min, + message: (_, values) => i18n.t('validations.messages.min', values), +}) + +extend('double', { + ...double, + message: (_, values) => i18n.t('form.validation.double', values), +}) + +extend('between', { + ...between, + message: (_, values) => i18n.t('validations.messages.between', values), +}) + /* eslint-disable no-new */ new Vue({ el: '#app', diff --git a/frontend/src/vee-validate.js b/frontend/src/vee-validate.js deleted file mode 100644 index 42e4c9c94..000000000 --- a/frontend/src/vee-validate.js +++ /dev/null @@ -1,25 +0,0 @@ -import { configure, extend } from 'vee-validate' -import { required, email, min } from 'vee-validate/dist/rules' -import i18n from './i18n' - -configure({ - defaultMessage: (field, values) => { - values._field_ = i18n.t(`fields.${field}`) - return i18n.t(`validations.messages.${values._rule_}`, values) - }, -}) - -extend('email', { - ...email, - message: (_, values) => i18n.t('validations.messages.email', values), -}) - -extend('required', { - ...required, - message: (_, values) => i18n.t('validations.messages.required', values), -}) - -extend('min', { - ...min, - message: (_, values) => i18n.t('validations.messages.min', values), -}) diff --git a/frontend/src/views/Pages/AccountOverview/GddSend.spec.js b/frontend/src/views/Pages/AccountOverview/GddSend.spec.js index ffc8fd211..c281f5176 100644 --- a/frontend/src/views/Pages/AccountOverview/GddSend.spec.js +++ b/frontend/src/views/Pages/AccountOverview/GddSend.spec.js @@ -24,6 +24,10 @@ describe('GddSend', () => { $moment: jest.fn((m) => ({ format: () => m, })), + $i18n: { + locale: jest.fn(() => 'en'), + }, + $n: jest.fn((n) => String(n)), } const Wrapper = () => { diff --git a/frontend/src/views/Pages/AccountOverview/GddSend.vue b/frontend/src/views/Pages/AccountOverview/GddSend.vue index b7d805988..3693e8930 100644 --- a/frontend/src/views/Pages/AccountOverview/GddSend.vue +++ b/frontend/src/views/Pages/AccountOverview/GddSend.vue @@ -53,69 +53,84 @@

- {{ $t('form.receiver') }} - - - - - - - + + + {{ $t('form.receiver') }} + + {{ error }} + + + + + + + + +

- {{ $t('form.amount') }} - - {{ $t('form.max_gdd_info') }} - - - -
GDD
-
- -
- {{ $t('form.memo') }} - - - - - - + + {{ $t('form.amount') }} + + {{ error }} + + + + +
GDD
+
+ +
+ {{ $t('form.memo') }} + + + + + + +

@@ -294,4 +309,7 @@ video { max-height: 665px; max-width: 665px; } +span.errors { + color: red; +} From 4733944f2fbbf80ca5be379347089193b84c47f4 Mon Sep 17 00:00:00 2001 From: Dario Rekowski on RockPI Date: Mon, 10 May 2021 18:57:10 +0000 Subject: [PATCH 0166/1050] fix bug in merged code --- .../src/Model/Table/TransactionsTable.php | 36 +++++++++---------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/community_server/src/Model/Table/TransactionsTable.php b/community_server/src/Model/Table/TransactionsTable.php index 3bccb7bbf..742ce7882 100644 --- a/community_server/src/Model/Table/TransactionsTable.php +++ b/community_server/src/Model/Table/TransactionsTable.php @@ -184,21 +184,21 @@ class TransactionsTable extends Table $current = $su_transaction; //echo "decay between " . $prev->transaction_id . " and " . $current->transaction_id . "
"; $calculated_decay = $stateBalancesTable->calculateDecay($prev->balance, $prev->balance_date, $current->balance_date, true); - $balance = floatval($prev->balance - $diff_amount); + $balance = floatval($prev->balance - $calculated_decay['balance']); // skip small decays (smaller than 0,00 GDD) if(abs($balance) >= 100) { - //echo $interval->format('%R%a days'); - //echo "prev balance: " . $prev->balance . ", diff_amount: $diff_amount, summe: " . (-intval($prev->balance - $diff_amount)) . "
"; - $final_transactions[] = [ - 'type' => 'decay', - 'balance' => floatval($prev->balance - $calculated_decay['balance']), - 'decay_duration' => $calculated_decay['interval']->format('%a days, %H hours, %I minutes, %S seconds'), - 'memo' => '' - ]; + //echo $interval->format('%R%a days'); + //echo "prev balance: " . $prev->balance . ", diff_amount: $diff_amount, summe: " . (-intval($prev->balance - $diff_amount)) . "
"; + $final_transactions[] = [ + 'type' => 'decay', + 'balance' => $balance, + 'decay_duration' => $calculated_decay['interval']->format('%a days, %H hours, %I minutes, %S seconds'), + 'memo' => '' + ]; + } } } - } // sender or receiver when user has sended money // group name if creation @@ -269,17 +269,17 @@ class TransactionsTable extends Table if($decay_start_date > $su_transaction->balance_date) { $duration = $decay_start_date->timeAgoInWords(); } - $balance = floatval($su_transaction->balance - $state_balance->decay); + $balance = floatval($su_transaction->balance - $calculated_decay['balance']); if($balance > 100) { - $final_transactions[] = [ - 'type' => 'decay', - 'balance' => floatval($su_transaction->balance - $calculated_decay['balance']), - 'decay_duration' => $duration, - 'memo' => '' - ]; + $final_transactions[] = [ + 'type' => 'decay', + 'balance' => $balance, + 'decay_duration' => $duration, + 'memo' => '' + ]; + } } } - } return $final_transactions; From 3cf42b33ee9adfa81f2049184e675b470c230f48 Mon Sep 17 00:00:00 2001 From: Moriz Wahl Date: Mon, 10 May 2021 21:18:46 +0200 Subject: [PATCH 0167/1050] You cannot send GDD to yourself --- frontend/src/locales/de.json | 3 ++- frontend/src/locales/en.json | 3 ++- frontend/src/main.js | 10 +++++++++- frontend/src/views/Pages/AccountOverview/GddSend.vue | 10 +++++++++- 4 files changed, 22 insertions(+), 4 deletions(-) diff --git a/frontend/src/locales/de.json b/frontend/src/locales/de.json index f3897f112..9bda785f5 100644 --- a/frontend/src/locales/de.json +++ b/frontend/src/locales/de.json @@ -46,7 +46,8 @@ "thx":"Danke,", "send_success":"deine Transaktion wurde erfolgreich ausgeführt", "validation": { - "double": "Das Feld {field} muss eine Dezimalzahl mit zwei Nachkommastellen sein" + "double": "Das Feld {field} muss eine Dezimalzahl mit zwei Nachkommastellen sein", + "is-not": "Du kannst Dir selbst keine Gradidos überweisen" } }, "error": { diff --git a/frontend/src/locales/en.json b/frontend/src/locales/en.json index a5173c2be..7705eb18e 100644 --- a/frontend/src/locales/en.json +++ b/frontend/src/locales/en.json @@ -46,7 +46,8 @@ "thx":"Thank you,", "send_success":"your transaction was successfully completed", "validation": { - "double": "The {field} field must be a decimal with two digits" + "double": "The {field} field must be a decimal with two digits", + "is-not": "You cannot send Gradidos to yourself" } }, "error": { diff --git a/frontend/src/main.js b/frontend/src/main.js index 94889e390..5584ae508 100755 --- a/frontend/src/main.js +++ b/frontend/src/main.js @@ -3,7 +3,8 @@ import DashboardPlugin from './plugins/dashboard-plugin' import App from './App.vue' import i18n from './i18n.js' import { configure, extend } from 'vee-validate' -import { required, email, min, between, double } from 'vee-validate/dist/rules' +// eslint-disable-next-line camelcase +import { required, email, min, between, double, is_not } from 'vee-validate/dist/rules' // store import { store } from './store/store' @@ -55,6 +56,13 @@ extend('between', { message: (_, values) => i18n.t('validations.messages.between', values), }) +// eslint-disable-next-line camelcase +extend('is_not', { + // eslint-disable-next-line camelcase + ...is_not, + message: (_, values) => i18n.t('form.validation.is-not', values), +}) + /* eslint-disable no-new */ new Vue({ el: '#app', diff --git a/frontend/src/views/Pages/AccountOverview/GddSend.vue b/frontend/src/views/Pages/AccountOverview/GddSend.vue index 3693e8930..d993797ab 100644 --- a/frontend/src/views/Pages/AccountOverview/GddSend.vue +++ b/frontend/src/views/Pages/AccountOverview/GddSend.vue @@ -53,7 +53,15 @@

- + {{ $t('form.receiver') }} From 986f40cf5369563d8d2430db53ac4a29cd38d470 Mon Sep 17 00:00:00 2001 From: ogerly Date: Tue, 11 May 2021 07:24:59 +0200 Subject: [PATCH 0168/1050] transaction error message, translations --- frontend/src/locales/de.json | 8 ++-- frontend/src/locales/en.json | 14 ++++--- .../views/Pages/AccountOverview/GddSend.vue | 38 +++++++++++++++---- 3 files changed, 43 insertions(+), 17 deletions(-) diff --git a/frontend/src/locales/de.json b/frontend/src/locales/de.json index 36d761eb0..97b751019 100644 --- a/frontend/src/locales/de.json +++ b/frontend/src/locales/de.json @@ -41,10 +41,12 @@ "time":"Zeit", "send_now":"Jetzt versenden", "scann_code":"QR Code Scanner - Scanne den QR Code deines Partners", - "max_gdd_info":"maximale anzahl GDD zum versenden erreicht!", + "max_gdd_info":"Maximale anzahl GDD zum versenden erreicht!", "send_check":"Bestätige deine Zahlung. Prüfe bitte nochmal alle Daten!", - "thx":"Danke,", - "send_success":"deine Transaktion wurde erfolgreich ausgeführt" + "thx":"Danke", + "sorry":"Entschuldigung", + "send_transaction_success":"Deine Transaktion wurde erfolgreich ausgeführt", + "send_transaction_error":"Leider konnte die Transaktion nicht ausgeführt werden!" }, "error": { "error":"Fehler" diff --git a/frontend/src/locales/en.json b/frontend/src/locales/en.json index 921074fbb..f3a4a1dfb 100644 --- a/frontend/src/locales/en.json +++ b/frontend/src/locales/en.json @@ -19,7 +19,7 @@ "en": "English" }, "form": { - "attention": "Achtung! Bitte überprüfe alle deine Eingaben sehr genau. Du bist alleine Verantwortlich für deine Entscheidungen. Versendete Gradidos können nicht wieder zurück geholt werden.", + "attention": "Attention! Please check all your entries very carefully. You are solely responsible for your decisions. Sent Gradidos cannot be retrieved.", "cancel":"Cancel", "reset": "Reset", "close":"Close", @@ -40,11 +40,13 @@ "at":"at", "time":"Time", "send_now":"Send now", - "scann_code":"QR Code Scanner - Scanne den QR Code deines Partners", - "max_gdd_info":"maximale anzahl GDD zum versenden erreicht!", - "send_check":"Bestätige deine Zahlung. Prüfe bitte nochmal alle Daten!", - "thx":"Thank you,", - "send_success":"your transaction was successfully completed" + "scann_code":"QR Code Scanner - Scan the QR Code of your partner", + "max_gdd_info":"Maximum number of GDDs to be sent has been reached!", + "send_check":"Confirm your payment. Please check all data again!", + "thx":"Thank you", + "sorry":"Sorry", + "send_transaction_success":"Your transaction was successfully completed", + "send_transaction_error":"Unfortunately, the transaction could not be executed!" }, "error": { "error":"Error" diff --git a/frontend/src/views/Pages/AccountOverview/GddSend.vue b/frontend/src/views/Pages/AccountOverview/GddSend.vue index 648216ab8..9053d0ea4 100644 --- a/frontend/src/views/Pages/AccountOverview/GddSend.vue +++ b/frontend/src/views/Pages/AccountOverview/GddSend.vue @@ -179,13 +179,31 @@ -
- {{ $t('form.thx') }} -
- {{ $t('form.send_success') }} -
+ +
+ {{ $t('form.thx') }} +
+ {{ $t('form.send_transaction_success') }} +
- {{ $t('form.close') }} +

+ {{ $t('form.close') }} +

+
+
+
+ + + +
+ {{ $t('form.sorry') }} +
+ {{ $t('form.send_transaction_error') }} +
+

+ {{ $t('form.close') }} +

+
@@ -226,7 +244,8 @@ export default { }, send: false, row_check: false, - row_thx: false, + row_thx: true, + row_error: false, } }, computed: {}, @@ -250,6 +269,7 @@ export default { this.$emit('toggle-show-list', false) this.row_check = true this.row_thx = false + this.row_error = false }, async sendTransaction() { const result = await communityAPI.send( @@ -263,12 +283,13 @@ export default { this.$emit('toggle-show-list', false) this.row_check = false this.row_thx = true + this.row_error = false this.$emit('update-balance', { ammount: this.ajaxCreateData.amount }) } else { - alert('error') this.$emit('toggle-show-list', true) this.row_check = false this.row_thx = false + this.row_error = true } }, onReset(event) { @@ -280,6 +301,7 @@ export default { this.$emit('toggle-show-list', true) this.row_check = false this.row_thx = false + this.row_error = false this.$nextTick(() => { this.show = true }) From 2d665299c7db2325366c25d8c6bf09a0301aa5dd Mon Sep 17 00:00:00 2001 From: einhornimmond Date: Tue, 11 May 2021 11:32:39 +0200 Subject: [PATCH 0169/1050] use setBaseUrl function instead of hacking getLink function --- login_server/src/cpp/JSONInterface/JsonCreateUser.cpp | 2 +- login_server/src/cpp/JSONInterface/JsonRequestHandler.cpp | 8 +++++++- login_server/src/cpp/JSONInterface/JsonRequestHandler.h | 1 + login_server/src/cpp/JSONInterface/JsonSendEmail.cpp | 6 ++++-- login_server/src/cpp/controller/EmailVerificationCode.cpp | 3 --- 5 files changed, 13 insertions(+), 7 deletions(-) diff --git a/login_server/src/cpp/JSONInterface/JsonCreateUser.cpp b/login_server/src/cpp/JSONInterface/JsonCreateUser.cpp index c66d10c8d..4917f611a 100644 --- a/login_server/src/cpp/JSONInterface/JsonCreateUser.cpp +++ b/login_server/src/cpp/JSONInterface/JsonCreateUser.cpp @@ -109,7 +109,7 @@ Poco::JSON::Object* JsonCreateUser::handle(Poco::Dynamic::Var params) emailOptInModel->sendErrorsAsEmail(); return stateError("insert emailOptIn failed"); } - + emailOptIn->setBaseUrl(mServerHost + "/" + ServerConfig::g_frontend_checkEmailPath); em->addEmail(new model::Email(emailOptIn, user, model::Email::convertTypeFromInt(emailType))); if (login_after_register && session) { diff --git a/login_server/src/cpp/JSONInterface/JsonRequestHandler.cpp b/login_server/src/cpp/JSONInterface/JsonRequestHandler.cpp index 99b4eb0fe..a577155b9 100644 --- a/login_server/src/cpp/JSONInterface/JsonRequestHandler.cpp +++ b/login_server/src/cpp/JSONInterface/JsonRequestHandler.cpp @@ -43,7 +43,13 @@ void JsonRequestHandler::handleRequest(Poco::Net::HTTPServerRequest& request, Po //std::ostream& responseStream = _compressResponse ? _gzipStream : _responseStream; mClientIp = request.clientAddress().host(); - + + if (request.secure()) { + mServerHost = "https://" + request.getHost(); + } + else { + mServerHost = "http://" + request.getHost(); + } auto method = request.getMethod(); std::istream& request_stream = request.stream(); Poco::JSON::Object* json_result = nullptr; diff --git a/login_server/src/cpp/JSONInterface/JsonRequestHandler.h b/login_server/src/cpp/JSONInterface/JsonRequestHandler.h index ed0272ac8..834ac512e 100644 --- a/login_server/src/cpp/JSONInterface/JsonRequestHandler.h +++ b/login_server/src/cpp/JSONInterface/JsonRequestHandler.h @@ -26,6 +26,7 @@ public: protected: Poco::JSON::Object* mResultJson; Poco::Net::IPAddress mClientIp; + std::string mServerHost; Session* mSession; Poco::JSON::Object* checkAndLoadSession(Poco::Dynamic::Var params, bool checkIp = false); diff --git a/login_server/src/cpp/JSONInterface/JsonSendEmail.cpp b/login_server/src/cpp/JSONInterface/JsonSendEmail.cpp index 9228c31cb..3179d81ce 100644 --- a/login_server/src/cpp/JSONInterface/JsonSendEmail.cpp +++ b/login_server/src/cpp/JSONInterface/JsonSendEmail.cpp @@ -105,12 +105,12 @@ Poco::JSON::Object* JsonSendEmail::handle(Poco::Dynamic::Var params) return stateError("invalid email"); } auto receiver_user_id = receiver_user->getModel()->getID(); - + std::string checkEmailUrl = receiver_user->getGroupBaseUrl() + ServerConfig::g_frontend_checkEmailPath; if (emailVerificationCodeType == model::table::EMAIL_OPT_IN_RESET_PASSWORD) { session = sm->getNewSession(); if (emailType == model::EMAIL_USER_RESET_PASSWORD) { - auto r = session->sendResetPasswordEmail(receiver_user, true, receiver_user->getGroupBaseUrl()); + auto r = session->sendResetPasswordEmail(receiver_user, true, checkEmailUrl); if (1 == r) { return stateWarning("email already sended"); } @@ -120,6 +120,7 @@ Poco::JSON::Object* JsonSendEmail::handle(Poco::Dynamic::Var params) } else if (emailType == model::EMAIL_CUSTOM_TEXT) { auto email_verification_code_object = controller::EmailVerificationCode::loadOrCreate(receiver_user_id, model::table::EMAIL_OPT_IN_RESET_PASSWORD); + email_verification_code_object->setBaseUrl(checkEmailUrl); auto email = new model::Email(email_verification_code_object, receiver_user, emailCustomText, emailCustomSubject); em->addEmail(email); } @@ -135,6 +136,7 @@ Poco::JSON::Object* JsonSendEmail::handle(Poco::Dynamic::Var params) } auto email_verification_code_object = controller::EmailVerificationCode::loadOrCreate(receiver_user_id, emailVerificationCodeType); + email_verification_code_object->setBaseUrl(checkEmailUrl); model::Email* email = nullptr; if (emailType == model::EMAIL_CUSTOM_TEXT) { email = new model::Email(email_verification_code_object, receiver_user, emailCustomText, emailCustomSubject); diff --git a/login_server/src/cpp/controller/EmailVerificationCode.cpp b/login_server/src/cpp/controller/EmailVerificationCode.cpp index 77384c209..16fcefbb8 100644 --- a/login_server/src/cpp/controller/EmailVerificationCode.cpp +++ b/login_server/src/cpp/controller/EmailVerificationCode.cpp @@ -122,9 +122,6 @@ namespace controller { std::string EmailVerificationCode::getLink() { std::string link = mBaseUrl; - if (ServerConfig::g_frontend_checkEmailPath.size() > 1) { - link = ServerConfig::g_frontend_checkEmailPath; - } if (link.data()[link.size() - 1] != '/') { link += '/'; From 2417cfa6ee5220e39e7ebeaa2a436c17eed17cb6 Mon Sep 17 00:00:00 2001 From: Dario Rekowski on RockPI Date: Tue, 11 May 2021 09:42:51 +0000 Subject: [PATCH 0170/1050] add Ulfs suggestion --- community_server/src/Model/Table/StateBalancesTable.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/community_server/src/Model/Table/StateBalancesTable.php b/community_server/src/Model/Table/StateBalancesTable.php index 8ee3be193..7e5f96be9 100644 --- a/community_server/src/Model/Table/StateBalancesTable.php +++ b/community_server/src/Model/Table/StateBalancesTable.php @@ -189,7 +189,7 @@ class StateBalancesTable extends Table $last_state_user_transaction->balance_date, $now); // if entrys are nearly the same, we don't need doing anything - if(abs($last_state_user_transaction_decayed - $first_state_balance_decayed) > 100) { + if(floor($last_state_user_transaction_decayed/100) !== floor($first_state_balance_decayed/100)) { $recalculate_state_user_transactions_balance = true; $update_state_balance = true; } From 1bc7bd66fdf1ffdeebfb3930d84a5a339557d063 Mon Sep 17 00:00:00 2001 From: ogerly Date: Tue, 11 May 2021 12:05:14 +0200 Subject: [PATCH 0171/1050] =?UTF-8?q?docu:=20locales=20sch=C3=B6pfen-mysql?= =?UTF-8?q?=20befehl?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docu/other/mariadb_groups_insert.md | 30 +++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 docu/other/mariadb_groups_insert.md diff --git a/docu/other/mariadb_groups_insert.md b/docu/other/mariadb_groups_insert.md new file mode 100644 index 000000000..3bb61ab0b --- /dev/null +++ b/docu/other/mariadb_groups_insert.md @@ -0,0 +1,30 @@ +# Das Locale Schöpfen + +### MariaDB Insert Groups + +wenn local geschöpft werden möchte kommt ein fehler das der user keiner gruppe zugeordnet ist. + +folgende schritte musst du machen um eine gruppe anzulegen + +hier findest du den Mysql befehl: configs/login_server/setup_db_tables/setup_docker_group.sql +in der Datei findest du folgenden Befehl + + INSERT INTO `groups` (`id`, `alias`, `name`, `url`, `host`, `home`, `description`) VALUES + (1, 'docker', 'docker gradido group', 'localhost', 'nginx', '/', 'gradido test group for docker and stage2 with blockchain db'); + +# Ablauf + +1. logge dich bei phpmyadmin ein http://localhost:8074/ (mariadb / root) +2. gehe auf tabelle "gradido_login" +3. gib folgenden Befehl in die console ein + + INSERT INTO `groups` (`id`, `alias`, `name`, `url`, `host`, `home`, `description`) VALUES + (1, 'docker', 'docker gradido group', 'localhost', 'nginx', '/', 'gradido test group for docker and stage2 with blockchain db'); + +> es wird eine Gruppe mit id 1 angelgt. alle angelegten user sollten dieser gruppe zugeordnet sein. + +das schöpfen sollte nun local funktionieren. :) + + + +#ACHTUNG ! nach dem login kann noch zu fehlern kommen in der URL "localhostnginx/..." zu "localhost/..." ändern \ No newline at end of file From c1b018a340c9484d0a320fd3b8f4ccfed7296983 Mon Sep 17 00:00:00 2001 From: ogerly Date: Tue, 11 May 2021 15:49:29 +0200 Subject: [PATCH 0172/1050] thx transaction false --- frontend/src/views/Pages/AccountOverview/GddSend.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/views/Pages/AccountOverview/GddSend.vue b/frontend/src/views/Pages/AccountOverview/GddSend.vue index 9053d0ea4..127c3d908 100644 --- a/frontend/src/views/Pages/AccountOverview/GddSend.vue +++ b/frontend/src/views/Pages/AccountOverview/GddSend.vue @@ -244,7 +244,7 @@ export default { }, send: false, row_check: false, - row_thx: true, + row_thx: false, row_error: false, } }, From e818f957444e5b9cfe63da263f1b9970709c17ed Mon Sep 17 00:00:00 2001 From: Moriz Wahl Date: Tue, 11 May 2021 16:31:45 +0200 Subject: [PATCH 0173/1050] set max items to 1000 --- frontend/src/apis/communityAPI.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/apis/communityAPI.js b/frontend/src/apis/communityAPI.js index 5d56f4a1b..a1fe3faf6 100644 --- a/frontend/src/apis/communityAPI.js +++ b/frontend/src/apis/communityAPI.js @@ -35,7 +35,7 @@ const communityAPI = { balance: async (sessionId) => { return apiGet(CONFIG.COMMUNITY_API_URL + 'getBalance/' + sessionId) }, - transactions: async (sessionId, firstPage = 1, items = 25, order = 'DESC') => { + transactions: async (sessionId, firstPage = 1, items = 1000, order = 'DESC') => { return apiGet( `${CONFIG.COMMUNITY_API_URL}listTransactions/${firstPage}/${items}/${order}/${sessionId}`, ) From b89ffde13b3abcbfdf4475bae3256a71923e5472 Mon Sep 17 00:00:00 2001 From: Moriz Wahl Date: Tue, 11 May 2021 18:52:29 +0200 Subject: [PATCH 0174/1050] em-dash is shown while balance is loaded --- .../src/components/SidebarPlugin/SideBar.vue | 6 ++++- .../src/views/Layout/DashboardLayout_gdd.vue | 25 +++++++++++-------- frontend/src/views/Pages/AccountOverview.vue | 11 +++++++- .../views/Pages/AccountOverview/GddStatus.vue | 8 ++++-- 4 files changed, 36 insertions(+), 14 deletions(-) diff --git a/frontend/src/components/SidebarPlugin/SideBar.vue b/frontend/src/components/SidebarPlugin/SideBar.vue index 9e0885d3f..74c5fd108 100755 --- a/frontend/src/components/SidebarPlugin/SideBar.vue +++ b/frontend/src/components/SidebarPlugin/SideBar.vue @@ -10,7 +10,7 @@ ...
- {{ $n(balance) }} GDD + {{ pending ? '—' : $n(balance) }} GDD
@@ -98,6 +111,7 @@ export default { this.$store.commit('lastName', this.form.lastName) this.$store.commit('description', this.form.description) this.editUserdata = true + alert('Deine Daten wurden gespeichert und sind geändert.') } else { alert(result.result.message) } From e2edeaca2bd92585e24fc49c05f55f318a4d8bb6 Mon Sep 17 00:00:00 2001 From: einhornimmond Date: Wed, 9 Jun 2021 20:45:59 +0200 Subject: [PATCH 0401/1050] try a php coverage report script --- .github/workflows/test.yml | 6 ++++-- community_server/Dockerfile | 6 +++--- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 2bd99e045..f7a9a22bd 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -335,12 +335,14 @@ jobs: ######################################################################### # COVERAGE CHECK BACKEND COMMUNITY-SERVER #################################### ########################################################################## - #- name: backend community simplecov | Coverage check + - name: backend community simplecov | Coverage check + run: | + docker run -v ~/coverage:/var/www/cakephp/webroot/coverage gradido/community_server:test vendor/bin/coverage-check ./webroot/coverage/clover.xml 5 # uses: webcraftmedia/coverage-check-action@master # with: # report_name: Coverage Backend # type: simplecov - # result_path: ./coverage/coverage.info + # result_path: ./coverage/clover.xml # min_coverage: 8 # token: ${{ github.token }} diff --git a/community_server/Dockerfile b/community_server/Dockerfile index eabb37741..596c4c98d 100644 --- a/community_server/Dockerfile +++ b/community_server/Dockerfile @@ -21,9 +21,9 @@ RUN apt-get update \ && apt-get -y --no-install-recommends install php7.4-xdebug \ && apt-get clean; rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* -WORKDIR /var/www/cakephp + ENV XDEBUG_MODE=coverage +RUN composer require --dev rregeer/phpunit-coverage-check -CMD ./vendor/bin/phpunit --coverage-text=./webroot/coverage/coverage.info - +CMD ./vendor/bin/phpunit --coverage-clover=./webroot/coverage/clover.xml From bea597268fc1acc3d34dbf591cab92311a4eb9c3 Mon Sep 17 00:00:00 2001 From: einhornimmond Date: Wed, 9 Jun 2021 21:02:19 +0200 Subject: [PATCH 0402/1050] update name and target coverage --- .github/workflows/test.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 774467922..4f3d6a28c 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -268,7 +268,7 @@ jobs: report_name: Coverage Backend type: lcov result_path: ./coverage/coverage.info - min_coverage: 6 + min_coverage: 13 token: ${{ github.token }} ############################################################################## @@ -335,9 +335,9 @@ jobs: ######################################################################### # COVERAGE CHECK BACKEND COMMUNITY-SERVER #################################### ########################################################################## - - name: backend community simplecov | Coverage check + - name: backend community | Coverage check run: | - docker run -v ~/coverage:/var/www/cakephp/webroot/coverage gradido/community_server:test vendor/bin/coverage-check ./webroot/coverage/clover.xml 5 + docker run -v ~/coverage:/var/www/cakephp/webroot/coverage gradido/community_server:test vendor/bin/coverage-check ./webroot/coverage/clover.xml 14 # uses: webcraftmedia/coverage-check-action@master # with: # report_name: Coverage Backend From f88ddbbf1c626899ecb4a9f7447c909ce600a1b3 Mon Sep 17 00:00:00 2001 From: einhornimmond Date: Thu, 10 Jun 2021 09:58:08 +0200 Subject: [PATCH 0403/1050] update string validation - move it in extra function to have less code copies - fix bug which return no error messag if input was an array instead of a string --- .../cpp/JSONInterface/JsonUpdateUserInfos.cpp | 94 +++++++++++-------- .../cpp/JSONInterface/JsonUpdateUserInfos.h | 2 + 2 files changed, 58 insertions(+), 38 deletions(-) diff --git a/login_server/src/cpp/JSONInterface/JsonUpdateUserInfos.cpp b/login_server/src/cpp/JSONInterface/JsonUpdateUserInfos.cpp index 7db31df33..40d5dd016 100644 --- a/login_server/src/cpp/JSONInterface/JsonUpdateUserInfos.cpp +++ b/login_server/src/cpp/JSONInterface/JsonUpdateUserInfos.cpp @@ -68,49 +68,46 @@ Poco::JSON::Object* JsonUpdateUserInfos::handle(Poco::Dynamic::Var params) try { - if ( "User.first_name" == name && value.size() > 0) { - if (!value.isString()) { - jsonErrorsArray.add("User.first_name isn't a string"); - } - else { - user_model->setFirstName(value.toString()); + if ( "User.first_name" == name) { + std::string str_val = validateString(value, "User.first_name", jsonErrorsArray); + + if (str_val.size() > 0) { + user_model->setFirstName(str_val); extractet_values++; } } - else if ("User.last_name" == name && value.size() > 0) { - if (!value.isString()) { - jsonErrorsArray.add("User.last_name isn't a string"); - } - else { - user_model->setLastName(value.toString()); + else if ("User.last_name" == name ) { + std::string str_val = validateString(value, "User.last_name", jsonErrorsArray); + + if (str_val.size() > 0) { + user_model->setLastName(str_val); extractet_values++; } + } - else if ("User.username" == name && value.size() > 3) { - if (!value.isString()) { - jsonErrorsArray.add("User.username isn't a string"); - } - else { - auto new_username = value.toString(); - if (user_model->getUsername() != new_username) { - if (user->isUsernameAlreadyUsed(new_username)) { + else if ("User.username" == name) { + std::string str_val = validateString(value, "User.username", jsonErrorsArray); + + if (str_val.size() > 0) { + if (user_model->getUsername() != str_val) { + if (user->isUsernameAlreadyUsed(str_val)) { jsonErrorsArray.add("username already used"); } else { - user_model->setUsername(new_username); + user_model->setUsername(str_val); extractet_values++; } } } } - else if ("User.description" == name && value.size() > 3) { - if (!value.isString()) { - jsonErrorsArray.add("description isn't a string"); - } - else { - user_model->setDescription(value.toString()); + else if ("User.description" == name) { + std::string str_val = validateString(value, "User.description", jsonErrorsArray); + + if (str_val.size() > 0) { + user_model->setDescription(str_val); extractet_values++; } + } else if ("User.disabled" == name) { if (value.isBoolean()) { @@ -130,11 +127,10 @@ Poco::JSON::Object* JsonUpdateUserInfos::handle(Poco::Dynamic::Var params) } } else if ("User.language" == name && value.size() > 0) { - if (!value.isString()) { - jsonErrorsArray.add("User.language isn't a string"); - } - else { - auto lang = LanguageManager::languageFromString(value.toString()); + std::string str_val = validateString(value, "User.language", jsonErrorsArray); + + if (str_val.size() > 0) { + auto lang = LanguageManager::languageFromString(str_val); if (LANG_NULL == lang) { jsonErrorsArray.add("User.language isn't a valid language"); } @@ -143,12 +139,13 @@ Poco::JSON::Object* JsonUpdateUserInfos::handle(Poco::Dynamic::Var params) extractet_values++; } } + } - else if ("User.password" == name && value.size() > 0 && (ServerConfig::g_AllowUnsecureFlags & ServerConfig::UNSECURE_PASSWORD_REQUESTS) == ServerConfig::UNSECURE_PASSWORD_REQUESTS) { - if (!value.isString()) { - jsonErrorsArray.add("User.password isn't string"); - } - else { + else if ("User.password" == name && (ServerConfig::g_AllowUnsecureFlags & ServerConfig::UNSECURE_PASSWORD_REQUESTS) == ServerConfig::UNSECURE_PASSWORD_REQUESTS) { + std::string str_val = validateString(value, "User.password", jsonErrorsArray); + + if (str_val.size() > 0) { + NotificationList errors; if (!sm->checkPwdValidation(value.toString(), &errors, LanguageManager::getInstance()->getFreeCatalog(LANG_EN))) { jsonErrorsArray.add("User.password isn't valid"); @@ -174,7 +171,9 @@ Poco::JSON::Object* JsonUpdateUserInfos::handle(Poco::Dynamic::Var params) } } catch (Poco::Exception& ex) { - jsonErrorsArray.add("update parameter invalid"); + std::string error_message = "exception by parsing json: "; + error_message += ex.displayText(); + jsonErrorsArray.add(error_message); } } if (extractet_values > 0) { @@ -189,4 +188,23 @@ Poco::JSON::Object* JsonUpdateUserInfos::handle(Poco::Dynamic::Var params) result->set("state", "success"); return result; +} + +std::string JsonUpdateUserInfos::validateString(Poco::Dynamic::Var value, const char* fieldName, Poco::JSON::Array& errorArray) +{ + std::string errorMessage = fieldName; + + if (!value.isString()) { + errorMessage += " isn't a string"; + errorArray.add(errorMessage); + return ""; + } + std::string string_value = value.toString(); + + if (string_value.size() == 0) { + errorMessage += " is empty"; + errorArray.add(errorArray); + return ""; + } + return string_value; } \ No newline at end of file diff --git a/login_server/src/cpp/JSONInterface/JsonUpdateUserInfos.h b/login_server/src/cpp/JSONInterface/JsonUpdateUserInfos.h index 2c1ca94fc..f651fb345 100644 --- a/login_server/src/cpp/JSONInterface/JsonUpdateUserInfos.h +++ b/login_server/src/cpp/JSONInterface/JsonUpdateUserInfos.h @@ -18,6 +18,8 @@ public: protected: + std::string validateString(Poco::Dynamic::Var value, const char* fieldName, Poco::JSON::Array& errorArray); + }; From 90073899a17fefd9df8c789a5fbe4e8474f92d9b Mon Sep 17 00:00:00 2001 From: einhornimmond Date: Thu, 10 Jun 2021 13:06:08 +0200 Subject: [PATCH 0404/1050] for password change old password is required --- .../cpp/JSONInterface/JsonUpdateUserInfos.cpp | 47 +++++++++++++++++-- 1 file changed, 43 insertions(+), 4 deletions(-) diff --git a/login_server/src/cpp/JSONInterface/JsonUpdateUserInfos.cpp b/login_server/src/cpp/JSONInterface/JsonUpdateUserInfos.cpp index 7db31df33..e18b66bec 100644 --- a/login_server/src/cpp/JSONInterface/JsonUpdateUserInfos.cpp +++ b/login_server/src/cpp/JSONInterface/JsonUpdateUserInfos.cpp @@ -149,14 +149,51 @@ Poco::JSON::Object* JsonUpdateUserInfos::handle(Poco::Dynamic::Var params) jsonErrorsArray.add("User.password isn't string"); } else { - NotificationList errors; + std::string old_password; + auto old_password_obj = updates->get("User.password_old"); + if (old_password_obj.isEmpty()) { + jsonErrorsArray.add("User.password_old not found"); + } + else if (!old_password_obj.isString()) { + jsonErrorsArray.add("User.password_old isn't a string"); + } + else { + old_password_obj.convert(old_password); + } + + bool old_password_valid = false; + NotificationList errors; + if (old_password.size()) { + if (!sm->checkPwdValidation(old_password, &errors, LanguageManager::getInstance()->getFreeCatalog(LANG_EN))) { + jsonErrorsArray.add("User.password_old didn't match"); + Poco::Thread::sleep(ServerConfig::g_FakeLoginSleepTime); + } + else { + auto result = user->login(old_password); + if (result == 1) { + old_password_valid = true; + } + else if (result == -3) { + jsonErrorsArray.add("Password calculation for this user already running, please try again later"); + } + else { + jsonErrorsArray.add("User.password_old didn't match"); + } + + if (result == 2) { + Poco::Thread::sleep(ServerConfig::g_FakeLoginSleepTime); + } + } + + } + if (!sm->checkPwdValidation(value.toString(), &errors, LanguageManager::getInstance()->getFreeCatalog(LANG_EN))) { jsonErrorsArray.add("User.password isn't valid"); jsonErrorsArray.add(errors.getErrorsArray()); } else { auto result_new_password = user->setNewPassword(value.toString()); - + switch (result_new_password) { // 0 = new and current passwords are the same case 0: jsonErrorsArray.add("new password is the same as old password"); break; @@ -167,9 +204,11 @@ Poco::JSON::Object* JsonUpdateUserInfos::handle(Poco::Dynamic::Var params) // -1 = stored pubkey and private key didn't match case -1: jsonErrorsArray.add("stored pubkey and private key didn't match"); break; } - - + + } + + } } } From 8659823f231048b7459a91f1d1f3dc03ef11f345 Mon Sep 17 00:00:00 2001 From: einhornimmond Date: Thu, 10 Jun 2021 13:06:50 +0200 Subject: [PATCH 0405/1050] prepare for tests which needed valid user and known password in db --- .../PageRequestHandlerFactory.cpp | 6 ++ login_server/src/cpp/test/main.cpp | 42 +++++--- login_server/src/cpsp/TestUserGenerator.cpsp | 102 ++++++++++++++++++ 3 files changed, 138 insertions(+), 12 deletions(-) create mode 100644 login_server/src/cpsp/TestUserGenerator.cpsp diff --git a/login_server/src/cpp/HTTPInterface/PageRequestHandlerFactory.cpp b/login_server/src/cpp/HTTPInterface/PageRequestHandlerFactory.cpp index 47d7b8c9a..863ef12f1 100644 --- a/login_server/src/cpp/HTTPInterface/PageRequestHandlerFactory.cpp +++ b/login_server/src/cpp/HTTPInterface/PageRequestHandlerFactory.cpp @@ -12,6 +12,7 @@ #include "CheckEmailPage.h" #include "PassphrasePage.h" #include "SaveKeysPage.h" +#include "TestUserGenerator.h" #include "ElopageWebhook.h" #include "ElopageWebhookLight.h" #include "UserUpdatePasswordPage.h" @@ -229,6 +230,11 @@ Poco::Net::HTTPRequestHandler* PageRequestHandlerFactory::createRequestHandler(c return basicSetup(new LoginPage(nullptr), request, timeUsed); } } + if (ServerConfig::g_ServerSetupType != ServerConfig::SERVER_TYPE_PRODUCTION) { + if (url_first_part == "/testUserGenerator") { + return basicSetup(new TestUserGenerator, request, timeUsed); + } + } return basicSetup(new LoginPage(nullptr), request, timeUsed); //return new HandleFileRequest; //return new PageRequestHandlerFactory; diff --git a/login_server/src/cpp/test/main.cpp b/login_server/src/cpp/test/main.cpp index d4773bd9f..8f94dc1c3 100644 --- a/login_server/src/cpp/test/main.cpp +++ b/login_server/src/cpp/test/main.cpp @@ -13,6 +13,7 @@ #include "Poco/SplitterChannel.h" #include "../SingletonManager/ConnectionManager.h" +#include "../SingletonManager/SessionManager.h" #include "../lib/Profiler.h" @@ -27,7 +28,7 @@ void fillTests() // gTests.push_back(new LoginTest()); } -void runMysql(std::string sqlQuery) +int runMysql(std::string sqlQuery) { auto cm = ConnectionManager::getInstance(); auto session = cm->getConnection(CONNECTION_MYSQL_LOGIN_SERVER); @@ -39,7 +40,9 @@ void runMysql(std::string sqlQuery) } catch (Poco::Exception& ex) { printf("exception in runMysql: %s\n", ex.displayText().data()); + return -1; } + return 0; } int load(int argc, char* argv[]) { @@ -47,6 +50,9 @@ int load(int argc, char* argv[]) { std::clog << "[load]" << std::endl; Poco::AutoPtr test_config(new Poco::Util::LayeredConfiguration); std::string config_file_name = Poco::Path::config() + "grd_login/grd_login_test.properties"; +#ifdef WIN32 + config_file_name = "Gradido_LoginServer_Test.properties"; +#endif if(argc > 1 && strlen(argv[1]) > 4) { config_file_name = argv[1]; } @@ -144,6 +150,8 @@ int load(int argc, char* argv[]) { log.error("Test Error"); + SessionManager::getInstance()->init(); + //errorLog //printf("try connect php server mysql \n"); @@ -157,26 +165,35 @@ int load(int argc, char* argv[]) { "users" }; for (int i = 0; i < 2; i++) { - runMysql("TRUNCATE " + tables[i]); - runMysql("ALTER TABLE " + tables[i] + " AUTO_INCREMENT = 1"); + if (runMysql("TRUNCATE " + tables[i])) { + return -1; + } + if (runMysql("ALTER TABLE " + tables[i] + " AUTO_INCREMENT = 1")) { + return -1; + } } std::stringstream ss; + // password = TestP4ssword&H ss << "INSERT INTO `users` (`id`, `email`, `first_name`, `last_name`, `username`, `password`, `pubkey`, `privkey`, `created`, `email_checked`, `passphrase_shown`, `language`, `disabled`, `group_id`) VALUES " - << "(1, 'd_schultz32@gmx.de', 'DDD', 'Schultz', 'Diddel', 13134558453895551556, 0x146d3fb9e88abc0fca0b0091c1ab1b32b399be037436f340befa8bf004461889, 0x0dcc08960f45f631fe23bc7ddee0724cedc9ec0c861ce30f5091d20ffd96062d08ca215726fb9bd64860c754772e945eea4cc872ed0a36c7b640e8b0bf7a873ec6765fa510711622341347ce2307b5ce, '2020-02-20 16:05:44', 1, 0, 'de', 0, 1), " - << "(2, 'Jeet_bb@gmail.com', 'Darios', 'Bruder', 'Jeet', 12910944485867375321, 0x952e215a21d4376b4ac252c4bf41e156e1498e1b6b8ccf2a6826d96712f4f461, 0x4d40bf0860655f728312140dc3741e897bc2d13d00ea80a63e2961046a5a7bd8315397dfb488b89377087bc1a5f4f3af8ffdcf203329ae23ba04be7d38ad3852699d90ff1fc00e5b1ca92b64cc59c01f, '2020-02-20 16:05:44', 1, 0, 'de', 0, 1), " - << "(3, 'Tiger_231@yahoo.com', 'Dieter', 'Schultz', 'Tiger', 13528673707291575501, 0xb539944bf6444a2bfc988244f0c0c9dc326452be9b8a2a43fcd90663719f4f6d, 0x5461fda60b719b65ba00bd6298e48410c4cbf0e89deb13cc784ba8978cf047454e8556ee3eddc8487ee835c33a83163bc8d8babbf2a5c431876bc0a0c114ff0a0d6b57baa12cf8f23c64fb642c862db5, '2020-02-20 16:05:45', 1, 0, 'de', 0, 1), " - << "(4, 'Nikola_Tesla@email.de', 'Nikola', 'Tesla', 'Erfinder', 15522411320147607375, 0x476b059744f08b0995522b484c90f8d2f47d9b59f4b3c96d9dc0ae6ab7b84979, 0x5277bf044cba4fec64e6f4d38da132755b029161231daefc9a7b4692ad37e05cdd88e0a2c2215baf854dd3a813578c214167af1113607e9f999ca848a7598ba5068e38f2a1afb097e4752a88024d79c8, '2020-02-20 16:05:46', 1, 0, 'de', 0, 1), " - << "(5, 'Elfenhausen@arcor.de', 'Thomas', 'Markuk', 'Elf', 7022671043835614958, 0xb1584e169d60a7e771d3a348235dfd7b5f9e8235fcc26090761a0264b0daa6ff, 0xb46fb7110bf91e28f367aa80f84d1bbd639b6f689f4b0aa28c0f71529232df9bf9ee0fb02fa4c1b9f5a6799c82d119e5646f7231d011517379faaacf6513d973ac3043d4c786490ba62d56d75b86164d, '2020-02-20 16:05:46', 1, 0, 'de', 0, 1), " - << "(6, 'coin-info12@gradido.net', 'coin-info12', 'Test', 'Test Username', 1548398919826089202, 0x4046ae49c1b620f2a321aba0c874fa2bc7ba844ab808bb0eeb18a908d468db14, 0x9522657ecd7456eedf86d065aa087ba7a94a8961a8e4950d044136155d38fe0840f2c0a2876ce055b3eaa6e9ab95c5feba89e535e0434fb2648d94d6e6ec68211aa2ea9e42d1ccd40b6b3c31e41f848e, '2020-02-20 16:05:47', 1, 0, 'de', 0, 1), " - << "(7, 'AlexWesper@gmail.com', 'Alex', 'Wesper', 'Wespe', 5822761891727948301, 0xb13ede3402abb8f29722b14fec0a2006ae7a3a51fb677cd6a2bbd797ac6905a5, 0x6aa39d7670c64a31639c7d89b874ad929b2eaeb2e5992dbad71b6cea700bf9e3c6cf866d0f0fdc22b44a0ebf51a860799e880ef86266199931dd0a301e5552db44b9b7fa99ed5945652bc7b31eff767c, '2020-02-20 16:05:47', 1, 0, 'de', 0, 1); "; - runMysql(ss.str()); + << "(1, 'd_schultz32@gmx.de', 'DDD', 'Schultz', 'Diddel', 18242007140018938940, 0x69f2fefd6fa6947a370b9f8d3147f6617cf67416517ce25cb2d63901c666933c, 0x567f3e623a1899d1f8d69190c5799433c134ce0137c0c38cc0347874586d6234a19f2a0b484e6cc1863502e580ae6c17db1131f29a35eba45a46be29c7ee592940a3bd3ad519075fdeed6e368f0eb818, '2020-02-20 16:05:44', 1, 0, 'de', 0, 1), " + << "(2, 'Jeet_bb@gmail.com', 'Darios', 'Bruder', 'Jeet', 10417562666175322069, 0x6afd24f46eb79a839281fe537a1888155b102d4fbe0613ea92d51845bd8036cb, 0xe7aed71cd4ae2d1aba9343ffb3822b759f972e41b63a6032b7f6c69f566217784c2e7bcdaeaa2f7dd16bf3b6f1540b22afa65fc054550a9296454c6ecdbd4131eac7f9c703318a867e666691e1808a6e, '2020-02-20 16:05:44', 1, 0, 'de', 0, 1), " + << "(3, 'Tiger_231@yahoo.com', 'Dieter', 'Schultz', 'Tiger', 13790258844849208764, 0x9a79a5daea92218608fa1e3a657d78961dc04c97ff996cc0ea17d6896b5368e6, 0x4993a156a120728f0fa93fc63ab01482ed85ecf433c729c8426c4bb93f0b7ce6142fda531b11f5d5e925acd1d2e55fdfef94fe07dbb78d43322f7df1234c7251aa58946c96ec6e551395f0fb5e87decf, '2020-02-20 16:05:45', 1, 0, 'de', 0, 1), " + << "(4, 'Nikola_Tesla@email.de', 'Nikola', 'Tesla', 'Erfinder', 1914014100253540772, 0x1c199421a66070afb28cb7c37de98865b28924bff26161bb65faaf5695050ee3, 0xe38ca460ca748954b29d79f0e943eed3ba85e7e13b18f69349666e31a8e3b06c9df105171796b37b4201895a2f3fe8ec8bf58a181700caaa5752a94a968c50e90ebb6280002a056126b2055ff75d69d1, '2020-02-20 16:05:46', 1, 0, 'de', 0, 1), " + << "(5, 'Elfenhausen@arcor.de', 'Thomas', 'Markuk', 'Elf', 8105871797752167168, 0x98d703f0ea1def3ef9e6265a76281d125a94c80665425bd7a844580ec1a2ce98, 0x63612a1d07d78a0c945d765a10a30d9de2be602e79e3f39268d731bc6f7fa945d7d04c638000bae089ac058263f52e7c1f2c3550b35b5727e41523f2f592781add65d12b8b8c0b3226f32174cfa1bcee, '2020-02-20 16:05:46', 1, 0, 'de', 0, 1), " + << "(6, 'coin-info12@gradido.net', 'coin-info12', 'Test', 'Test Username', 9005874071610817324, 0xb3ee1c82a9877f664d05364106e259621b2e203bfbb5323edb7b597051efecc2, 0xa039da7d59e2475dd1aaa635f803ec1aeffc2506e7a96a934bf8d7cf4ac2a96dc962d4e1bdf8e11c5ce7e18189edc36014b89e9e72628004ec5901be6c407a955efb5142a1ee9a2f3aed888125a44aa2, '2020-02-20 16:05:47', 1, 0, 'de', 0, 1), " + << "(7, 'AlexWesper@gmail.com', 'Alex', 'Wesper', 'Wespe', 7264393213873828644, 0x735a5c22ebe84ab1d6453991d50019b677b82b0663b023c30127ec906ee9b59a, 0xaec30051ad3ab2d2132a76e9dfe5a396d2dfbcc83a4eb27223b4da8803893959af9e29c6963f9e73eddc447cb3d3995527b94054e7fdecd7d5f8cb45c3954ff9bb2c9e0374f2124b3170301f990c5d7d, '2020-02-20 16:05:47', 1, 0, 'de', 0, 1); "; + if (runMysql(ss.str())) { + return -1; + } ss.str(std::string()); ss << "INSERT INTO `groups` (`id`, `alias`, `name`, `url`, `description`) VALUES" << "(1, 'gdd1', 'Gradido1', 'gdd1.gradido.com', 'Der erste offizielle Gradido Server (zum Testen)'), " << "(2, 'gdd_test', 'Gradido Test', 'gdd1.gradido.com', 'Testgroup (zum Testen)'); "; - runMysql(ss.str()); + if (runMysql(ss.str())) { + return -1; + } ss.str(std::string()); @@ -219,6 +236,7 @@ void ende() } gTests.clear(); + SessionManager::getInstance()->deinitalize(); } diff --git a/login_server/src/cpsp/TestUserGenerator.cpsp b/login_server/src/cpsp/TestUserGenerator.cpsp new file mode 100644 index 000000000..41c3ad99d --- /dev/null +++ b/login_server/src/cpsp/TestUserGenerator.cpsp @@ -0,0 +1,102 @@ +<%@ page class="TestUserGenerator" %> +<%@ page form="true" %> +<%@ page baseClass="PageRequestMessagedHandler" %> +<%@ header include="HTTPInterface/PageRequestMessagedHandler.h" %> +<%! + #include "Crypto/SecretKeyCryptography.h" + #include "Crypto/KeyPairEd25519.h" + #include "ServerConfig.h" + #include "lib/DataTypeConverter.h" + + #include "controller/User.h" +%> +<%% + const char* pageName = "Test User Generator"; + // needed for header_large + auto user = controller::User::create(); + + std::string email; + std::string password_hashed; + std::string pubkey_hex; + std::string privkey_hex_encrypted; + std::string passphrase_str; + + bool user_created = false; + // add + if(!form.empty()) { + email = form.get("email", ""); + auto password = form.get("password", ""); + if(email == "") { + addError(new Error("Create User", "E-Mail is empty!")); + } + else if(password == "") { + addError(new Error("Create User", "Password is empty!")); + } + else + { + auto passphrase = Passphrase::generate(&ServerConfig::g_Mnemonic_WordLists[ServerConfig::MNEMONIC_BIP0039_SORTED_ORDER]); + passphrase_str = passphrase->getString(); + auto key_pair = KeyPairEd25519::create(passphrase); + Poco::AutoPtr secret_key = new SecretKeyCryptography; + secret_key->createKey(email, password); + password_hashed = std::to_string(secret_key->getKeyHashed()); + auto privkey_encrypted = key_pair->getCryptedPrivKey(secret_key); + privkey_hex_encrypted = DataTypeConverter::binToHex(privkey_encrypted); + pubkey_hex = key_pair->getPublicKeyHex(); + user_created = true; + delete key_pair; + } + } + + // select all + auto groups = controller::Group::listAll(); + //auto groups = controller::Group::load("gdd1"); + //std::vector> groups; + +%><%@ include file="include/header_large.cpsp" %> +<%= getErrorsHtml() %> +
+
+

Einen neuen User anlegen

+
+
+
+ + + + + +
+
+ <% if(user_created) { %> +
+
+

Generierte Daten

+
+
+
+
E-Mail
+
<%= email %>
+
+
+
Password hash
+
<%= password_hashed %>
+
+
+
public key
+
0x<%= pubkey_hex %>
+
+
+
private key encrypted
+
0x<%= privkey_hex_encrypted %>
+
+
+
Passphrase
+
<%= passphrase_str %>
+
+
+
+
'<%= email %>', <%= password_hashed %>, 0x<%= pubkey_hex %>, 0x<%= privkey_hex_encrypted %>
+ <% } %> +
+<%@ include file="include/footer.cpsp" %> From 713394c226820f03f1f89ef2b6a73acb38649b15 Mon Sep 17 00:00:00 2001 From: einhornimmond Date: Thu, 10 Jun 2021 13:07:15 +0200 Subject: [PATCH 0406/1050] add test for UpdateUserInfo, fix CheckUsername Test --- .../JSONInterface/TestJsonCheckUsername.cpp | 6 ++- .../JSONInterface/TestJsonUpdateUserInfos.cpp | 52 +++++++++++++++++++ .../JSONInterface/TestJsonUpdateUserInfos.h | 23 ++++++++ 3 files changed, 80 insertions(+), 1 deletion(-) create mode 100644 login_server/src/cpp/test/JSONInterface/TestJsonUpdateUserInfos.cpp create mode 100644 login_server/src/cpp/test/JSONInterface/TestJsonUpdateUserInfos.h diff --git a/login_server/src/cpp/test/JSONInterface/TestJsonCheckUsername.cpp b/login_server/src/cpp/test/JSONInterface/TestJsonCheckUsername.cpp index d399689ee..64e70055a 100644 --- a/login_server/src/cpp/test/JSONInterface/TestJsonCheckUsername.cpp +++ b/login_server/src/cpp/test/JSONInterface/TestJsonCheckUsername.cpp @@ -68,7 +68,6 @@ TEST(TestJsonCheckUsername, UsernameWithoutGroup) ASSERT_TRUE(msg.isString()); ASSERT_EQ(msg.toString(), "no group given"); - delete result; } @@ -89,6 +88,8 @@ TEST(TestJsonCheckUsername, ExistingUsername) ASSERT_FALSE(msg.isEmpty()); ASSERT_TRUE(msg.isString()); ASSERT_EQ(msg.toString(), "username already in use"); + + delete result; } TEST(TestJsonCheckUsername, NewUsername) @@ -103,6 +104,8 @@ TEST(TestJsonCheckUsername, NewUsername) ASSERT_FALSE(state.isEmpty()); ASSERT_TRUE(state.isString()); ASSERT_EQ(state.toString(), "success"); + + delete result; } TEST(TestJsonCheckUsername, UsernameExistInOtherGroup) @@ -118,6 +121,7 @@ TEST(TestJsonCheckUsername, UsernameExistInOtherGroup) ASSERT_TRUE(state.isString()); ASSERT_EQ(state.toString(), "success"); + delete result; } diff --git a/login_server/src/cpp/test/JSONInterface/TestJsonUpdateUserInfos.cpp b/login_server/src/cpp/test/JSONInterface/TestJsonUpdateUserInfos.cpp new file mode 100644 index 000000000..506fbb80f --- /dev/null +++ b/login_server/src/cpp/test/JSONInterface/TestJsonUpdateUserInfos.cpp @@ -0,0 +1,52 @@ +#include "gtest/gtest.h" + +#include "JSONInterface/JsonUpdateUserInfos.h" +#include "TestJsonUpdateUserInfos.h" + + +void TestJsonUpdateUserInfos::SetUp() +{ + auto sm = SessionManager::getInstance(); + sm->init(); + mUserSession = sm->getNewSession(); + mUserSession->loadUser("Jeet_bb@gmail.com", "TestP4ssword&H"); +} + +void TestJsonUpdateUserInfos::TearDown() +{ + auto sm = SessionManager::getInstance(); + if (!mUserSession) { + sm->releaseSession(mUserSession); + } + sm->deinitalize(); +} + +Poco::JSON::Object::Ptr TestJsonUpdateUserInfos::chooseAccount(const Poco::JSON::Object::Ptr update) +{ + Poco::JSON::Object::Ptr params = new Poco::JSON::Object; + params->set("session_id", mUserSession->getHandle()); + params->set("email", mUserSession->getNewUser()->getModel()->getEmail()); + params->set("update", update); + return params; +} + +TEST_F(TestJsonUpdateUserInfos, EmptyOldPassword) +{ + JsonUpdateUserInfos jsonCall; + Poco::JSON::Object::Ptr update = new Poco::JSON::Object; + + update->set("User.password", "haLL1o_/%s"); + + auto params = chooseAccount(update); + auto result = jsonCall.handle(params); + + auto errors = result->get("errors"); + ASSERT_TRUE(errors.isArray()); + //User.password_old not found + Poco::JSON::Array error_array = errors.extract(); + + ASSERT_EQ(error_array.size(), 1); + ASSERT_EQ(error_array.getElement(0), "User.password_old not found"); + + delete result; +} \ No newline at end of file diff --git a/login_server/src/cpp/test/JSONInterface/TestJsonUpdateUserInfos.h b/login_server/src/cpp/test/JSONInterface/TestJsonUpdateUserInfos.h new file mode 100644 index 000000000..4c759ce67 --- /dev/null +++ b/login_server/src/cpp/test/JSONInterface/TestJsonUpdateUserInfos.h @@ -0,0 +1,23 @@ +#ifndef __GRADIDO_LOGIN_SERVER_TEST_JSON_INTERFACE_TEST_JSON_UPDATE_USER_INFOS_H +#define __GRADIDO_LOGIN_SERVER_TEST_JSON_INTERFACE_TEST_JSON_UPDATE_USER_INFOS_H + +#include "gtest/gtest.h" +#include "SingletonManager/SessionManager.h" + +#include "Poco/JSON/Object.h" + +class TestJsonUpdateUserInfos : public ::testing::Test +{ + +protected: + void SetUp() override; + void TearDown() override; + + Poco::JSON::Object::Ptr chooseAccount(const Poco::JSON::Object::Ptr update); + + Session* mUserSession; + + +}; + +#endif //__GRADIDO_LOGIN_SERVER_TEST_JSON_INTERFACE_TEST_JSON_UPDATE_USER_INFOS_H \ No newline at end of file From 1476951d9371f914892d5cf6685e10cabc9a5c21 Mon Sep 17 00:00:00 2001 From: einhornimmond Date: Thu, 10 Jun 2021 15:26:39 +0200 Subject: [PATCH 0407/1050] wait on check email for send password reset email to prevent misuse to find out which emails on server exist --- login_server/src/cpp/JSONInterface/JsonSendEmail.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/login_server/src/cpp/JSONInterface/JsonSendEmail.cpp b/login_server/src/cpp/JSONInterface/JsonSendEmail.cpp index 3179d81ce..26b00314c 100644 --- a/login_server/src/cpp/JSONInterface/JsonSendEmail.cpp +++ b/login_server/src/cpp/JSONInterface/JsonSendEmail.cpp @@ -99,7 +99,7 @@ Poco::JSON::Object* JsonSendEmail::handle(Poco::Dynamic::Var params) return stateError("invalid session"); } } - + Poco::Thread::sleep(ServerConfig::g_FakeLoginSleepTime); auto receiver_user = controller::User::create(); if (1 != receiver_user->load(email)) { return stateError("invalid email"); From e5c37606d2134b01d7e2a0d5e479121ec5ed795b Mon Sep 17 00:00:00 2001 From: einhornimmond Date: Thu, 10 Jun 2021 15:27:09 +0200 Subject: [PATCH 0408/1050] fix bug shown through testing --- .../cpp/JSONInterface/JsonUpdateUserInfos.cpp | 45 ++++++++++--------- 1 file changed, 24 insertions(+), 21 deletions(-) diff --git a/login_server/src/cpp/JSONInterface/JsonUpdateUserInfos.cpp b/login_server/src/cpp/JSONInterface/JsonUpdateUserInfos.cpp index e18b66bec..c4ab519fd 100644 --- a/login_server/src/cpp/JSONInterface/JsonUpdateUserInfos.cpp +++ b/login_server/src/cpp/JSONInterface/JsonUpdateUserInfos.cpp @@ -163,12 +163,14 @@ Poco::JSON::Object* JsonUpdateUserInfos::handle(Poco::Dynamic::Var params) bool old_password_valid = false; NotificationList errors; - if (old_password.size()) { + if (old_password.size()) + { if (!sm->checkPwdValidation(old_password, &errors, LanguageManager::getInstance()->getFreeCatalog(LANG_EN))) { jsonErrorsArray.add("User.password_old didn't match"); Poco::Thread::sleep(ServerConfig::g_FakeLoginSleepTime); } - else { + else + { auto result = user->login(old_password); if (result == 1) { old_password_valid = true; @@ -186,28 +188,29 @@ Poco::JSON::Object* JsonUpdateUserInfos::handle(Poco::Dynamic::Var params) } } - - if (!sm->checkPwdValidation(value.toString(), &errors, LanguageManager::getInstance()->getFreeCatalog(LANG_EN))) { - jsonErrorsArray.add("User.password isn't valid"); - jsonErrorsArray.add(errors.getErrorsArray()); - } - else { - auto result_new_password = user->setNewPassword(value.toString()); - - switch (result_new_password) { - // 0 = new and current passwords are the same - case 0: jsonErrorsArray.add("new password is the same as old password"); break; - // 1 = password changed, private key re-encrypted and saved into db - //case 1: extractet_values++; break; - // 2 = password changed, only hash stored in db, couldn't load private key for re-encryption - case 2: jsonErrorsArray.add("password changed, couldn't load private key for re-encryption"); break; - // -1 = stored pubkey and private key didn't match - case -1: jsonErrorsArray.add("stored pubkey and private key didn't match"); break; + if (old_password_valid) + { + if (!sm->checkPwdValidation(value.toString(), &errors, LanguageManager::getInstance()->getFreeCatalog(LANG_EN))) { + jsonErrorsArray.add("User.password isn't valid"); + jsonErrorsArray.add(errors.getErrorsArray()); } + else + { + auto result_new_password = user->setNewPassword(value.toString()); + switch (result_new_password) { + // 0 = new and current passwords are the same + case 0: jsonErrorsArray.add("new password is the same as old password"); break; + // 1 = password changed, private key re-encrypted and saved into db + //case 1: extractet_values++; break; + // 2 = password changed, only hash stored in db, couldn't load private key for re-encryption + case 2: jsonErrorsArray.add("password changed, couldn't load private key for re-encryption"); break; + // -1 = stored pubkey and private key didn't match + case -1: jsonErrorsArray.add("stored pubkey and private key didn't match"); break; + } - } - + } + } } } From 6f70d4c8b81443d7e66ca52a5f290b07c883272c Mon Sep 17 00:00:00 2001 From: einhornimmond Date: Thu, 10 Jun 2021 15:27:28 +0200 Subject: [PATCH 0409/1050] update test and test environment --- .../JSONInterface/TestJsonUpdateUserInfos.cpp | 65 ++++++++++++++++++- .../JSONInterface/TestJsonUpdateUserInfos.h | 2 +- login_server/src/cpp/test/main.cpp | 24 +++++-- 3 files changed, 82 insertions(+), 9 deletions(-) diff --git a/login_server/src/cpp/test/JSONInterface/TestJsonUpdateUserInfos.cpp b/login_server/src/cpp/test/JSONInterface/TestJsonUpdateUserInfos.cpp index 506fbb80f..64891fb01 100644 --- a/login_server/src/cpp/test/JSONInterface/TestJsonUpdateUserInfos.cpp +++ b/login_server/src/cpp/test/JSONInterface/TestJsonUpdateUserInfos.cpp @@ -2,14 +2,17 @@ #include "JSONInterface/JsonUpdateUserInfos.h" #include "TestJsonUpdateUserInfos.h" +#include "lib/Profiler.h" void TestJsonUpdateUserInfos::SetUp() { auto sm = SessionManager::getInstance(); - sm->init(); + //sm->init(); mUserSession = sm->getNewSession(); - mUserSession->loadUser("Jeet_bb@gmail.com", "TestP4ssword&H"); + auto user = controller::User::create(); + user->getModel()->setEmail("Jeet_bb@gmail.com"); + mUserSession->setUser(user); } void TestJsonUpdateUserInfos::TearDown() @@ -18,7 +21,6 @@ void TestJsonUpdateUserInfos::TearDown() if (!mUserSession) { sm->releaseSession(mUserSession); } - sm->deinitalize(); } Poco::JSON::Object::Ptr TestJsonUpdateUserInfos::chooseAccount(const Poco::JSON::Object::Ptr update) @@ -30,6 +32,7 @@ Poco::JSON::Object::Ptr TestJsonUpdateUserInfos::chooseAccount(const Poco::JSON: return params; } + TEST_F(TestJsonUpdateUserInfos, EmptyOldPassword) { JsonUpdateUserInfos jsonCall; @@ -42,11 +45,67 @@ TEST_F(TestJsonUpdateUserInfos, EmptyOldPassword) auto errors = result->get("errors"); ASSERT_TRUE(errors.isArray()); + auto valid_values_obj = result->get("valid_values"); + ASSERT_TRUE(valid_values_obj.isInteger()); + int valid_values = 0; + valid_values_obj.convert(valid_values); + ASSERT_EQ(valid_values, 0); //User.password_old not found Poco::JSON::Array error_array = errors.extract(); ASSERT_EQ(error_array.size(), 1); ASSERT_EQ(error_array.getElement(0), "User.password_old not found"); + delete result; +} + +TEST_F(TestJsonUpdateUserInfos, OnlyOldPassword) +{ + JsonUpdateUserInfos jsonCall; + Poco::JSON::Object::Ptr update = new Poco::JSON::Object; + + update->set("User.password_old", "TestP4ssword&H"); + + auto params = chooseAccount(update); + auto result = jsonCall.handle(params); + + auto errors = result->get("errors"); + ASSERT_TRUE(errors.isArray()); + auto valid_values_obj = result->get("valid_values"); + ASSERT_TRUE(valid_values_obj.isInteger()); + int valid_values = 0; + valid_values_obj.convert(valid_values); + ASSERT_EQ(valid_values, 0); + Poco::JSON::Array error_array = errors.extract(); + ASSERT_EQ(error_array.size(), 0); + + delete result; +} + +TEST_F(TestJsonUpdateUserInfos, WrongPassword) +{ + JsonUpdateUserInfos jsonCall; + mUserSession->loadUser("Jeet_bb@gmail.com", "TestP4ssword&H"); + Poco::JSON::Object::Ptr update = new Poco::JSON::Object; + + update->set("User.password", "newPassword"); + update->set("User.password_old", "TestP4sswordH"); + + auto params = chooseAccount(update); + Profiler timeUsed; + auto result = jsonCall.handle(params); + ASSERT_GE(timeUsed.millis(), ServerConfig::g_FakeLoginSleepTime-200); + + auto errors = result->get("errors"); + ASSERT_TRUE(errors.isArray()); + auto valid_values_obj = result->get("valid_values"); + ASSERT_TRUE(valid_values_obj.isInteger()); + int valid_values = 0; + valid_values_obj.convert(valid_values); + ASSERT_EQ(valid_values, 0); + Poco::JSON::Array error_array = errors.extract(); + ASSERT_EQ(error_array.size(), 1); + ASSERT_EQ(error_array.getElement(0), "User.password_old didn't match"); + delete result; } \ No newline at end of file diff --git a/login_server/src/cpp/test/JSONInterface/TestJsonUpdateUserInfos.h b/login_server/src/cpp/test/JSONInterface/TestJsonUpdateUserInfos.h index 4c759ce67..dfef547a8 100644 --- a/login_server/src/cpp/test/JSONInterface/TestJsonUpdateUserInfos.h +++ b/login_server/src/cpp/test/JSONInterface/TestJsonUpdateUserInfos.h @@ -16,7 +16,7 @@ protected: Poco::JSON::Object::Ptr chooseAccount(const Poco::JSON::Object::Ptr update); Session* mUserSession; - + std::string mEmail; }; diff --git a/login_server/src/cpp/test/main.cpp b/login_server/src/cpp/test/main.cpp index 8f94dc1c3..c875ec6a0 100644 --- a/login_server/src/cpp/test/main.cpp +++ b/login_server/src/cpp/test/main.cpp @@ -17,6 +17,8 @@ #include "../lib/Profiler.h" +#include "Crypto/SecretKeyCryptography.h" + std::list gTests; @@ -85,6 +87,9 @@ int load(int argc, char* argv[]) { ServerConfig::g_CPUScheduler = new UniLib::controller::CPUSheduler(worker_count, "Default Worker"); ServerConfig::g_CryptoCPUScheduler = new UniLib::controller::CPUSheduler(2, "Crypto Worker"); + ServerConfig::g_disableEmail = true; + + SessionManager::getInstance()->init(); // load up connection configs // register MySQL connector @@ -128,6 +133,13 @@ int load(int argc, char* argv[]) { return -4; } } + + printf("measure Time for secret key generation...\n"); + Profiler timeForArgon2; + SecretKeyCryptography secret_cryptografie; + secret_cryptografie.createKey("test.email@gmx.de", "skaSI2WSEIs/"); + ServerConfig::g_FakeLoginSleepTime = timeForArgon2.millis(); + printf("time for secret key generation: %s\n", timeForArgon2.string().data()); std::string log_Path = "/var/log/grd_login/"; //#ifdef _WIN32 @@ -150,7 +162,6 @@ int load(int argc, char* argv[]) { log.error("Test Error"); - SessionManager::getInstance()->init(); //errorLog @@ -226,7 +237,7 @@ int run() return 0; } -void ende() +void endegTests() { for (std::list::iterator it = gTests.begin(); it != gTests.end(); it++) { @@ -236,7 +247,7 @@ void ende() } gTests.clear(); - SessionManager::getInstance()->deinitalize(); + } @@ -254,10 +265,13 @@ int main(int argc, char** argv) //printf ("\nStack Limit = %ld and %ld max\n", limit.rlim_cur, limit.rlim_max); run(); - ende(); - ::testing::InitGoogleTest(&argc, argv); + endegTests(); + ::testing::InitGoogleTest(&argc, argv); auto result = RUN_ALL_TESTS(); + + SessionManager::getInstance()->deinitalize(); ServerConfig::unload(); + return result; } From a21e88ac94175d780d68378451f23b2b040e3a2a Mon Sep 17 00:00:00 2001 From: ogerly Date: Thu, 10 Jun 2021 15:53:27 +0200 Subject: [PATCH 0410/1050] fix profil page bugs --- .../src/views/Layout/DashboardLayout_gdd.vue | 37 ++-- .../UserProfile/UserCard_FormUserData.vue | 106 ++++++----- .../UserProfile/UserCard_FormUserPasswort.vue | 169 ++++++++++++------ .../UserProfile/UserCard_FormUsername.vue | 5 +- 4 files changed, 202 insertions(+), 115 deletions(-) diff --git a/frontend/src/views/Layout/DashboardLayout_gdd.vue b/frontend/src/views/Layout/DashboardLayout_gdd.vue index 70a35a40a..ce4d29768 100755 --- a/frontend/src/views/Layout/DashboardLayout_gdd.vue +++ b/frontend/src/views/Layout/DashboardLayout_gdd.vue @@ -2,24 +2,25 @@
diff --git a/frontend/src/views/Pages/UserProfile/UserCard_FormUserData.vue b/frontend/src/views/Pages/UserProfile/UserCard_FormUserData.vue index 79e8df37b..3bb1c48ae 100644 --- a/frontend/src/views/Pages/UserProfile/UserCard_FormUserData.vue +++ b/frontend/src/views/Pages/UserProfile/UserCard_FormUserData.vue @@ -12,7 +12,7 @@ v-if="editUserdata" @click="editUserdata = !editUserdata" class="pointer" - icon="gear-fill" + icon="pencil" > {{ $t('form.change') }} @@ -29,49 +29,57 @@ - - - {{ $t('form.firstname') }} - - - {{ form.firstName }} - - - - - - - - {{ $t('form.lastname') }} - - - {{ form.lastName }} - - - - - - - - {{ $t('form.description') }} - - - {{ form.description }} - - - - - + + + + {{ $t('form.firstname') }} + + + {{ form.firstName }} + + + + + + + + {{ $t('form.lastname') }} + + + {{ form.lastName }} + + + + + + + + {{ $t('form.description') }} + + + {{ form.description }} + + + + + - - -
- - {{ $t('form.save') }} - -
-
-
+ + +
+ + {{ $t('form.save') }} + +
+
+
+
@@ -93,9 +101,21 @@ export default { lastName: this.$store.state.lastName, description: this.$store.state.description, }, + loading: true, } }, methods: { + loadSubmitButton() { + if ( + this.form.firstName !== this.$store.state.firstName || + this.form.lastName !== this.$store.state.lastName || + this.form.description !== this.$store.state.description + ) { + this.loading = false + } else { + this.loading = true + } + }, async onSubmit() { const result = await loginAPI.updateUserInfos( this.$store.state.sessionId, diff --git a/frontend/src/views/Pages/UserProfile/UserCard_FormUserPasswort.vue b/frontend/src/views/Pages/UserProfile/UserCard_FormUserPasswort.vue index e1ade4ae0..6bc1d8942 100644 --- a/frontend/src/views/Pages/UserProfile/UserCard_FormUserPasswort.vue +++ b/frontend/src/views/Pages/UserProfile/UserCard_FormUserPasswort.vue @@ -1,62 +1,105 @@ @@ -71,10 +114,30 @@ export default { email: null, password: '', passwordNew: '', - passwordNew2: '', + passwordNewRepeat: '', + passwordVisibleOldPwd: false, + passwordVisibleNewPwd: false, + passwordVisibleNewPwdRepeat: false, + loading: true, } }, methods: { + togglePasswordVisibilityNewPwd() { + this.passwordVisibleNewPwd = !this.passwordVisibleNewPwd + }, + togglePasswordVisibilityNewPwdRepeat() { + this.passwordVisibleNewPwdRepeat = !this.passwordVisibleNewPwdRepeat + }, + togglePasswordVisibilityOldPwd() { + this.passwordVisibleOldPwd = !this.passwordVisibleOldPwd + }, + loadSubmitButton() { + if (this.passwordVisibleNewPwd === this.passwordVisibleNewPwdRepeat) { + this.loading = false + } else { + this.loading = true + } + }, async onSubmit() { // console.log(this.data) const result = await loginAPI.changePasswordProfile( diff --git a/frontend/src/views/Pages/UserProfile/UserCard_FormUsername.vue b/frontend/src/views/Pages/UserProfile/UserCard_FormUsername.vue index 445c69f8e..38738e54a 100644 --- a/frontend/src/views/Pages/UserProfile/UserCard_FormUsername.vue +++ b/frontend/src/views/Pages/UserProfile/UserCard_FormUsername.vue @@ -7,7 +7,7 @@ v-if="editUsername" @click="editUsername = !editUsername" class="pointer" - icon="gear-fill" + icon="pencil" > {{ $t('form.change') }} @@ -32,6 +32,9 @@ + + {{ $t('form.username') }} + From ddb4ba676ba0450655d575036f75c1fd0aecbcfb Mon Sep 17 00:00:00 2001 From: Moriz Wahl Date: Thu, 10 Jun 2021 16:45:28 +0200 Subject: [PATCH 0411/1050] try to implement toasters --- frontend/package.json | 1 + frontend/src/plugins/dashboard-plugin.js | 3 +- frontend/src/views/Pages/ForgotPassword.vue | 47 +++--- frontend/src/views/Pages/ResetPassword.vue | 156 ++++++++++---------- 4 files changed, 108 insertions(+), 99 deletions(-) diff --git a/frontend/package.json b/frontend/package.json index 34ce37b76..2a41bea56 100755 --- a/frontend/package.json +++ b/frontend/package.json @@ -51,6 +51,7 @@ "nouislider": "^12.1.0", "particles-bg-vue": "1.2.3", "perfect-scrollbar": "^1.3.0", + "portal-vue": "^2.1.7", "prettier": "^2.2.1", "qrcode": "^1.4.4", "quill": "^1.3.6", diff --git a/frontend/src/plugins/dashboard-plugin.js b/frontend/src/plugins/dashboard-plugin.js index b7c0ea06c..aa4bf200f 100755 --- a/frontend/src/plugins/dashboard-plugin.js +++ b/frontend/src/plugins/dashboard-plugin.js @@ -12,7 +12,7 @@ import GlobalDirectives from './globalDirectives' import SideBar from '@/components/SidebarPlugin' // vue-bootstrap -import { BootstrapVue, IconsPlugin } from 'bootstrap-vue' +import { BootstrapVue, IconsPlugin, ToastPlugin } from 'bootstrap-vue' // asset imports import '@/assets/scss/argon.scss' @@ -49,6 +49,7 @@ export default { Vue.use(Notifications) Vue.use(BootstrapVue) Vue.use(IconsPlugin) + Vue.use(ToastPlugin) Vue.use(VueGoodTablePlugin) Vue.use(VueMoment) Vue.use(VueQrcodeReader) diff --git a/frontend/src/views/Pages/ForgotPassword.vue b/frontend/src/views/Pages/ForgotPassword.vue index 32331d080..ecbd870c3 100644 --- a/frontend/src/views/Pages/ForgotPassword.vue +++ b/frontend/src/views/Pages/ForgotPassword.vue @@ -46,28 +46,31 @@
diff --git a/frontend/src/views/Pages/ResetPassword.vue b/frontend/src/views/Pages/ResetPassword.vue index 99892612c..29aa015d9 100644 --- a/frontend/src/views/Pages/ResetPassword.vue +++ b/frontend/src/views/Pages/ResetPassword.vue @@ -85,82 +85,86 @@
From 0978b3e627d99871bb4ca9d0393c3f351275764b Mon Sep 17 00:00:00 2001 From: ogerly Date: Thu, 10 Jun 2021 17:45:23 +0200 Subject: [PATCH 0412/1050] fix lint --- .../src/views/Layout/DashboardLayout_gdd.vue | 38 +++++++++---------- .../UserProfile/UserCard_FormUserData.vue | 6 +-- 2 files changed, 22 insertions(+), 22 deletions(-) diff --git a/frontend/src/views/Layout/DashboardLayout_gdd.vue b/frontend/src/views/Layout/DashboardLayout_gdd.vue index ce4d29768..564b4e430 100755 --- a/frontend/src/views/Layout/DashboardLayout_gdd.vue +++ b/frontend/src/views/Layout/DashboardLayout_gdd.vue @@ -2,25 +2,25 @@
diff --git a/frontend/src/views/Pages/UserProfile/UserCard_FormUserData.vue b/frontend/src/views/Pages/UserProfile/UserCard_FormUserData.vue index 3bb1c48ae..e07313c96 100644 --- a/frontend/src/views/Pages/UserProfile/UserCard_FormUserData.vue +++ b/frontend/src/views/Pages/UserProfile/UserCard_FormUserData.vue @@ -35,7 +35,7 @@ {{ $t('form.firstname') }} - {{ form.firstName }} + {{ $store.state.firstName }} @@ -46,7 +46,7 @@ {{ $t('form.lastname') }} - {{ form.lastName }} + {{ $store.state.lastName }} @@ -57,7 +57,7 @@ {{ $t('form.description') }} - {{ form.description }} + {{ $store.state.description }} From 552b31f77a451247f983a271c6db02413de733e2 Mon Sep 17 00:00:00 2001 From: Moriz Wahl Date: Thu, 10 Jun 2021 18:04:48 +0200 Subject: [PATCH 0413/1050] trying to fix the scss --- frontend/src/assets/scss/argon.scss | 107 ++++++++++---- frontend/src/plugins/dashboard-plugin.js | 3 + frontend/src/views/Pages/ForgotPassword.vue | 50 +++---- frontend/src/views/Pages/ResetPassword.vue | 152 ++++++++++---------- 4 files changed, 186 insertions(+), 126 deletions(-) diff --git a/frontend/src/assets/scss/argon.scss b/frontend/src/assets/scss/argon.scss index 01a002691..1fa663a5f 100644 --- a/frontend/src/assets/scss/argon.scss +++ b/frontend/src/assets/scss/argon.scss @@ -23,38 +23,95 @@ // Bootstrap (4.1.3) components -@import "~bootstrap/scss/root"; -@import "~bootstrap/scss/reboot"; -@import "~bootstrap/scss/type"; -@import "~bootstrap/scss/images"; -@import "~bootstrap/scss/code"; -@import "~bootstrap/scss/grid"; -@import "~bootstrap/scss/tables"; -@import "~bootstrap/scss/forms"; -@import "~bootstrap/scss/buttons"; -@import "~bootstrap/scss/transitions"; -@import "~bootstrap/scss/dropdown"; +@import "~bootstrap/scss/alert"; +@import "~bootstrap/scss/badge"; +@import "~bootstrap/scss/breadcrumb"; @import "~bootstrap/scss/button-group"; -@import "~bootstrap/scss/input-group"; +@import "~bootstrap/scss/buttons"; +@import "~bootstrap/scss/card"; +@import "~bootstrap/scss/carousel"; +@import "~bootstrap/scss/close"; +@import "~bootstrap/scss/code"; @import "~bootstrap/scss/custom-forms"; +@import "~bootstrap/scss/dropdown"; +@import "~bootstrap/scss/forms"; +@import "~bootstrap/scss/grid"; +@import "~bootstrap/scss/images"; +@import "~bootstrap/scss/input-group"; +@import "~bootstrap/scss/jumbotron"; +@import "~bootstrap/scss/list-group"; +@import "~bootstrap/scss/media"; +@import "~bootstrap/scss/modal"; @import "~bootstrap/scss/nav"; @import "~bootstrap/scss/navbar"; -@import "~bootstrap/scss/card"; -@import "~bootstrap/scss/breadcrumb"; @import "~bootstrap/scss/pagination"; -@import "~bootstrap/scss/badge"; -@import "~bootstrap/scss/jumbotron"; -@import "~bootstrap/scss/alert"; -@import "~bootstrap/scss/progress"; -@import "~bootstrap/scss/media"; -@import "~bootstrap/scss/list-group"; -@import "~bootstrap/scss/close"; -@import "~bootstrap/scss/modal"; -@import "~bootstrap/scss/tooltip"; @import "~bootstrap/scss/popover"; -@import "~bootstrap/scss/carousel"; -@import "~bootstrap/scss/utilities"; @import "~bootstrap/scss/print"; +@import "~bootstrap/scss/progress"; +@import "~bootstrap/scss/reboot"; +@import "~bootstrap/scss/root"; +@import "~bootstrap/scss/tables"; +@import "~bootstrap/scss/toasts"; +@import "~bootstrap/scss/tooltip"; +@import "~bootstrap/scss/transitions"; +@import "~bootstrap/scss/type"; +@import "~bootstrap/scss/utilities"; +@import "~bootstrap/scss/variables"; + +// Utilities + +@import "~bootstrap/scss/utilities/align"; +@import "~bootstrap/scss/utilities/background"; +@import "~bootstrap/scss/utilities/borders"; +@import "~bootstrap/scss/utilities/clearfix"; +@import "~bootstrap/scss/utilities/display"; +@import "~bootstrap/scss/utilities/embed"; +@import "~bootstrap/scss/utilities/flex"; +@import "~bootstrap/scss/utilities/float"; +@import "~bootstrap/scss/utilities/overflow"; +@import "~bootstrap/scss/utilities/position"; +@import "~bootstrap/scss/utilities/screenreaders"; +@import "~bootstrap/scss/utilities/shadows"; +@import "~bootstrap/scss/utilities/sizing"; +@import "~bootstrap/scss/utilities/spacing"; +@import "~bootstrap/scss/utilities/stretched-link"; +@import "~bootstrap/scss/utilities/text"; +@import "~bootstrap/scss/utilities/visibility"; + + +// Mixins + +@import "~bootstrap/scss/mixins/alert"; +@import "~bootstrap/scss/mixins/badge"; +@import "~bootstrap/scss/mixins/border-radius"; +@import "~bootstrap/scss/mixins/box-shadow"; +@import "~bootstrap/scss/mixins/breakpoints"; +@import "~bootstrap/scss/mixins/buttons"; +@import "~bootstrap/scss/mixins/caret"; +@import "~bootstrap/scss/mixins/clearfix"; +@import "~bootstrap/scss/mixins/deprecate"; +@import "~bootstrap/scss/mixins/float"; +@import "~bootstrap/scss/mixins/forms"; +@import "~bootstrap/scss/mixins/gradients"; +@import "~bootstrap/scss/mixins/grid-framework"; +@import "~bootstrap/scss/mixins/grid"; +@import "~bootstrap/scss/mixins/hover"; +@import "~bootstrap/scss/mixins/image"; +@import "~bootstrap/scss/mixins/list-group"; +@import "~bootstrap/scss/mixins/lists"; +@import "~bootstrap/scss/mixins/nav-divider"; +@import "~bootstrap/scss/mixins/pagination"; +@import "~bootstrap/scss/mixins/reset-text"; +@import "~bootstrap/scss/mixins/resize"; +@import "~bootstrap/scss/mixins/screen-reader"; +@import "~bootstrap/scss/mixins/size"; +@import "~bootstrap/scss/mixins/table-row"; +@import "~bootstrap/scss/mixins/text-emphasis"; +@import "~bootstrap/scss/mixins/text-hide"; +@import "~bootstrap/scss/mixins/text-truncate"; +@import "~bootstrap/scss/mixins/transition"; +@import "~bootstrap/scss/mixins/visibility"; + // Argon utilities and components diff --git a/frontend/src/plugins/dashboard-plugin.js b/frontend/src/plugins/dashboard-plugin.js index aa4bf200f..7b245ef23 100755 --- a/frontend/src/plugins/dashboard-plugin.js +++ b/frontend/src/plugins/dashboard-plugin.js @@ -11,6 +11,8 @@ import GlobalDirectives from './globalDirectives' // Sidebar on the right. Used as a local plugin in DashboardLayout.vue import SideBar from '@/components/SidebarPlugin' +import PortalVue from 'portal-vue' + // vue-bootstrap import { BootstrapVue, IconsPlugin, ToastPlugin } from 'bootstrap-vue' @@ -47,6 +49,7 @@ export default { Vue.use(GlobalDirectives) Vue.use(SideBar) Vue.use(Notifications) + Vue.use(PortalVue) Vue.use(BootstrapVue) Vue.use(IconsPlugin) Vue.use(ToastPlugin) diff --git a/frontend/src/views/Pages/ForgotPassword.vue b/frontend/src/views/Pages/ForgotPassword.vue index ecbd870c3..6e4ea422a 100644 --- a/frontend/src/views/Pages/ForgotPassword.vue +++ b/frontend/src/views/Pages/ForgotPassword.vue @@ -46,31 +46,31 @@
diff --git a/frontend/src/views/Pages/ResetPassword.vue b/frontend/src/views/Pages/ResetPassword.vue index 29aa015d9..de8f8cad8 100644 --- a/frontend/src/views/Pages/ResetPassword.vue +++ b/frontend/src/views/Pages/ResetPassword.vue @@ -85,86 +85,86 @@
From 5ae484fcb88b3b0907eaf05169b7e475b4fde16a Mon Sep 17 00:00:00 2001 From: ogerly Date: Fri, 11 Jun 2021 09:35:40 +0200 Subject: [PATCH 0414/1050] import VueBootstrapToasts test --- frontend/package.json | 1 + frontend/src/App.vue | 1 + frontend/src/plugins/dashboard-plugin.js | 6 ++++-- frontend/src/views/Pages/ForgotPassword.vue | 6 ++---- frontend/yarn.lock | 5 +++++ 5 files changed, 13 insertions(+), 6 deletions(-) diff --git a/frontend/package.json b/frontend/package.json index 2a41bea56..910644e2c 100755 --- a/frontend/package.json +++ b/frontend/package.json @@ -59,6 +59,7 @@ "sweetalert2": "^9.5.4", "vee-validate": "^3.4.5", "vue": "^2.6.11", + "vue-bootstrap-toasts": "^1.0.7", "vue-bootstrap-typeahead": "^0.2.6", "vue-chartjs": "^3.5.0", "vue-cli-plugin-i18n": "^1.0.1", diff --git a/frontend/src/App.vue b/frontend/src/App.vue index a6613bec1..500a7b2e1 100755 --- a/frontend/src/App.vue +++ b/frontend/src/App.vue @@ -3,6 +3,7 @@
+
diff --git a/frontend/src/plugins/dashboard-plugin.js b/frontend/src/plugins/dashboard-plugin.js index 7b245ef23..013ded702 100755 --- a/frontend/src/plugins/dashboard-plugin.js +++ b/frontend/src/plugins/dashboard-plugin.js @@ -13,8 +13,10 @@ import SideBar from '@/components/SidebarPlugin' import PortalVue from 'portal-vue' +import VueBootstrapToasts from 'vue-bootstrap-toasts' + // vue-bootstrap -import { BootstrapVue, IconsPlugin, ToastPlugin } from 'bootstrap-vue' +import { BootstrapVue, IconsPlugin } from 'bootstrap-vue' // asset imports import '@/assets/scss/argon.scss' @@ -52,7 +54,7 @@ export default { Vue.use(PortalVue) Vue.use(BootstrapVue) Vue.use(IconsPlugin) - Vue.use(ToastPlugin) + Vue.use(VueBootstrapToasts) Vue.use(VueGoodTablePlugin) Vue.use(VueMoment) Vue.use(VueQrcodeReader) diff --git a/frontend/src/views/Pages/ForgotPassword.vue b/frontend/src/views/Pages/ForgotPassword.vue index 6e4ea422a..37077064c 100644 --- a/frontend/src/views/Pages/ForgotPassword.vue +++ b/frontend/src/views/Pages/ForgotPassword.vue @@ -58,16 +58,14 @@ export default { }, } }, + created() {}, methods: { async onSubmit() { const result = await loginAPI.sendEmail(this.form.email) if (result.success) { this.$router.push('/thx/password') } else { - this.$bvToast.toast(result.result.message, { - title: this.$t('error.error'), - noAutoHide: true, - }) + this.$toast.success(this.$t('error.error')) } }, }, diff --git a/frontend/yarn.lock b/frontend/yarn.lock index a3a835813..65f3ff71d 100644 --- a/frontend/yarn.lock +++ b/frontend/yarn.lock @@ -13268,6 +13268,11 @@ vm-browserify@^1.0.1: resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== +vue-bootstrap-toasts@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/vue-bootstrap-toasts/-/vue-bootstrap-toasts-1.0.7.tgz#111c38855941e8eb0538e21f41c173e2af67dd53" + integrity sha512-JhurJOAwdNcINQ/QlT701sx0r447YTGpvtxtmZNC9pwDvEqp2I0Pyv15jS4neWwYHkA1gXB42nBsDRcWcj1hlg== + vue-bootstrap-typeahead@^0.2.6: version "0.2.6" resolved "https://registry.yarnpkg.com/vue-bootstrap-typeahead/-/vue-bootstrap-typeahead-0.2.6.tgz#8c1999a00bf4bf9fc906bae3a462482482cbc297" From 3c4eeda891abde8ba122ca87d3c1340d45d6e5c1 Mon Sep 17 00:00:00 2001 From: ogerly Date: Fri, 11 Jun 2021 11:25:11 +0200 Subject: [PATCH 0415/1050] kill BaseHeader --- frontend/src/components/BaseHeader.vue | 22 ---------- frontend/src/plugins/globalComponents.js | 6 +-- frontend/test/testSetup.js | 51 ------------------------ 3 files changed, 1 insertion(+), 78 deletions(-) delete mode 100644 frontend/src/components/BaseHeader.vue delete mode 100644 frontend/test/testSetup.js diff --git a/frontend/src/components/BaseHeader.vue b/frontend/src/components/BaseHeader.vue deleted file mode 100644 index 90e8a1a5a..000000000 --- a/frontend/src/components/BaseHeader.vue +++ /dev/null @@ -1,22 +0,0 @@ - - - diff --git a/frontend/src/plugins/globalComponents.js b/frontend/src/plugins/globalComponents.js index 312f19296..8e8410435 100755 --- a/frontend/src/plugins/globalComponents.js +++ b/frontend/src/plugins/globalComponents.js @@ -11,11 +11,8 @@ import BaseProgress from '@/components/BaseProgress' import BasePagination from '@/components/BasePagination' import BaseAlert from '@/components/BaseAlert' import BaseNav from '@/components/Navbar/BaseNav' -import BaseHeader from '@/components/BaseHeader' import { ValidationProvider, ValidationObserver } from 'vee-validate' -/** - * You can register global components here and use them as a plugin in your main Vue instance - */ + const GlobalComponents = { install(Vue) { @@ -23,7 +20,6 @@ const GlobalComponents = { Vue.component(BaseAlert.name, BaseAlert) Vue.component(BaseButton.name, BaseButton) Vue.component(BaseCheckbox.name, BaseCheckbox) - Vue.component(BaseHeader.name, BaseHeader) Vue.component(BaseInput.name, BaseInput) Vue.component(BaseDropdown.name, BaseDropdown) Vue.component(BaseNav.name, BaseNav) diff --git a/frontend/test/testSetup.js b/frontend/test/testSetup.js deleted file mode 100644 index 7af8631ea..000000000 --- a/frontend/test/testSetup.js +++ /dev/null @@ -1,51 +0,0 @@ -import { createLocalVue } from '@vue/test-utils' -import { BootstrapVue, IconsPlugin } from 'bootstrap-vue' -import Vuex from 'vuex' -import { ValidationProvider, ValidationObserver, extend } from 'vee-validate' -import * as rules from 'vee-validate/dist/rules' - -import { messages } from 'vee-validate/dist/locale/en.json' -import BaseInput from '@/components/Inputs/BaseInput.vue' -import BaseButton from '@/components/BaseButton.vue' -import RegeneratorRuntime from 'regenerator-runtime' -import Notifications from '@/components/NotificationPlugin' -import SideBar from '@/components/SidebarPlugin' -import VueRouter from 'vue-router' -import BaseDropdown from '@/components/BaseDropdown.vue' -import VueQrcode from 'vue-qrcode' -import BaseHeader from '@/components/BaseHeader' -import StatsCard from '@/components/Cards/StatsCard.vue' - -import VueMoment from 'vue-moment' - -import clickOutside from '@/directives/click-ouside.js' -import { focus } from 'vue-focus' - -global.localVue = createLocalVue() - -Object.keys(rules).forEach((rule) => { - extend(rule, { - ...rules[rule], // copies rule configuration - message: messages[rule], // assign message - }) -}) - -global.localVue.use(BootstrapVue) -global.localVue.use(Vuex) -global.localVue.use(IconsPlugin) -global.localVue.use(RegeneratorRuntime) -global.localVue.use(Notifications) -global.localVue.use(SideBar) -global.localVue.use(VueRouter) -global.localVue.use(VueQrcode) -global.localVue.use(VueMoment) -global.localVue.component(BaseInput.name, BaseInput) -global.localVue.component('validation-provider', ValidationProvider) -global.localVue.component('validation-observer', ValidationObserver) -global.localVue.component(BaseButton.name, BaseButton) -global.localVue.component(BaseDropdown.name, BaseDropdown) -global.localVue.component(BaseHeader.name, BaseHeader) -global.localVue.component(StatsCard.name, StatsCard) - -global.localVue.directive('click-outside', clickOutside) -global.localVue.directive('focus', focus) From 812842c5b585a4c13bb90c1e885facc351a2cc2f Mon Sep 17 00:00:00 2001 From: ogerly Date: Fri, 11 Jun 2021 11:34:06 +0200 Subject: [PATCH 0416/1050] kill BaseAlert --- frontend/src/components/BaseAlert.vue | 75 ------------------------ frontend/src/components/index.js | 2 - frontend/src/plugins/globalComponents.js | 2 - 3 files changed, 79 deletions(-) delete mode 100644 frontend/src/components/BaseAlert.vue diff --git a/frontend/src/components/BaseAlert.vue b/frontend/src/components/BaseAlert.vue deleted file mode 100644 index fe17428a2..000000000 --- a/frontend/src/components/BaseAlert.vue +++ /dev/null @@ -1,75 +0,0 @@ - - diff --git a/frontend/src/components/index.js b/frontend/src/components/index.js index c75b2a8fa..151d25dbb 100755 --- a/frontend/src/components/index.js +++ b/frontend/src/components/index.js @@ -1,5 +1,4 @@ import BaseCheckbox from './Inputs/BaseCheckbox.vue' -import BaseAlert from './BaseAlert.vue' import BaseRadio from './Inputs/BaseRadio.vue' import BaseInput from './Inputs/BaseInput.vue' import Badge from './Badge' @@ -28,7 +27,6 @@ import SidebarPlugin from './SidebarPlugin' export { BaseCheckbox, Badge, - BaseAlert, BaseProgress, BasePagination, BaseRadio, diff --git a/frontend/src/plugins/globalComponents.js b/frontend/src/plugins/globalComponents.js index 8e8410435..dad554f42 100755 --- a/frontend/src/plugins/globalComponents.js +++ b/frontend/src/plugins/globalComponents.js @@ -9,7 +9,6 @@ import BaseCheckbox from '@/components/Inputs/BaseCheckbox.vue' import BaseRadio from '@/components/Inputs/BaseRadio' import BaseProgress from '@/components/BaseProgress' import BasePagination from '@/components/BasePagination' -import BaseAlert from '@/components/BaseAlert' import BaseNav from '@/components/Navbar/BaseNav' import { ValidationProvider, ValidationObserver } from 'vee-validate' @@ -17,7 +16,6 @@ import { ValidationProvider, ValidationObserver } from 'vee-validate' const GlobalComponents = { install(Vue) { Vue.component(Badge.name, Badge) - Vue.component(BaseAlert.name, BaseAlert) Vue.component(BaseButton.name, BaseButton) Vue.component(BaseCheckbox.name, BaseCheckbox) Vue.component(BaseInput.name, BaseInput) From 8b7c2e7eea525ec7144c033bbaa89046bcfb6922 Mon Sep 17 00:00:00 2001 From: ogerly Date: Fri, 11 Jun 2021 11:38:54 +0200 Subject: [PATCH 0417/1050] kill BasePagination --- frontend/src/components/BasePagination.vue | 67 ---------------------- frontend/src/components/index.js | 2 - frontend/src/plugins/globalComponents.js | 2 - 3 files changed, 71 deletions(-) delete mode 100755 frontend/src/components/BasePagination.vue diff --git a/frontend/src/components/BasePagination.vue b/frontend/src/components/BasePagination.vue deleted file mode 100755 index 9fc633481..000000000 --- a/frontend/src/components/BasePagination.vue +++ /dev/null @@ -1,67 +0,0 @@ - - diff --git a/frontend/src/components/index.js b/frontend/src/components/index.js index 151d25dbb..94bbba682 100755 --- a/frontend/src/components/index.js +++ b/frontend/src/components/index.js @@ -20,7 +20,6 @@ import CollapseItem from './Collapse/CollapseItem.vue' import Modal from './Modal.vue' import BaseSlider from './BaseSlider.vue' -import BasePagination from './BasePagination.vue' import SidebarPlugin from './SidebarPlugin' @@ -28,7 +27,6 @@ export { BaseCheckbox, Badge, BaseProgress, - BasePagination, BaseRadio, BaseInput, Card, diff --git a/frontend/src/plugins/globalComponents.js b/frontend/src/plugins/globalComponents.js index dad554f42..cd16f3c61 100755 --- a/frontend/src/plugins/globalComponents.js +++ b/frontend/src/plugins/globalComponents.js @@ -8,7 +8,6 @@ import Badge from '@/components/Badge.vue' import BaseCheckbox from '@/components/Inputs/BaseCheckbox.vue' import BaseRadio from '@/components/Inputs/BaseRadio' import BaseProgress from '@/components/BaseProgress' -import BasePagination from '@/components/BasePagination' import BaseNav from '@/components/Navbar/BaseNav' import { ValidationProvider, ValidationObserver } from 'vee-validate' @@ -21,7 +20,6 @@ const GlobalComponents = { Vue.component(BaseInput.name, BaseInput) Vue.component(BaseDropdown.name, BaseDropdown) Vue.component(BaseNav.name, BaseNav) - Vue.component(BasePagination.name, BasePagination) Vue.component(BaseProgress.name, BaseProgress) Vue.component(BaseRadio.name, BaseRadio) Vue.component(Card.name, Card) From a76a5066f502d35b853fd7fb9cb5dc73a094bd1a Mon Sep 17 00:00:00 2001 From: Dario Rekowski on RockPI Date: Fri, 11 Jun 2021 09:42:49 +0000 Subject: [PATCH 0418/1050] remove for check for target date in send coins request --- community_server/src/Controller/AppRequestsController.php | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/community_server/src/Controller/AppRequestsController.php b/community_server/src/Controller/AppRequestsController.php index 6b744ff69..ff3314e94 100644 --- a/community_server/src/Controller/AppRequestsController.php +++ b/community_server/src/Controller/AppRequestsController.php @@ -152,10 +152,7 @@ class AppRequestsController extends AppController if($result !== true) { return $this->returnJson($result); } - $required_fields = $this->checkAndCopyRequiredFields(['target_date'], $params, $data); - if($required_fields !== true) { - return $this->returnJson($required_fields); - } + if(!isset($params['memo']) || strlen($params['memo']) < 5 || strlen($params['memo']) > 150) { return $this->returnJson(['state' => 'error', 'msg' => 'memo is not set or not in expected range [5;150]']); } From 7eab86357ea971145fe8cdba5002661f781302b4 Mon Sep 17 00:00:00 2001 From: ogerly Date: Fri, 11 Jun 2021 11:54:38 +0200 Subject: [PATCH 0419/1050] kill BaseProgress --- frontend/src/components/BaseProgress.vue | 79 ------------------------ frontend/src/components/index.js | 2 - frontend/src/plugins/globalComponents.js | 2 - 3 files changed, 83 deletions(-) delete mode 100755 frontend/src/components/BaseProgress.vue diff --git a/frontend/src/components/BaseProgress.vue b/frontend/src/components/BaseProgress.vue deleted file mode 100755 index c2f44bf2c..000000000 --- a/frontend/src/components/BaseProgress.vue +++ /dev/null @@ -1,79 +0,0 @@ - - - diff --git a/frontend/src/components/index.js b/frontend/src/components/index.js index 94bbba682..eccd28455 100755 --- a/frontend/src/components/index.js +++ b/frontend/src/components/index.js @@ -2,7 +2,6 @@ import BaseCheckbox from './Inputs/BaseCheckbox.vue' import BaseRadio from './Inputs/BaseRadio.vue' import BaseInput from './Inputs/BaseInput.vue' import Badge from './Badge' -import BaseProgress from './BaseProgress.vue' import BaseButton from './BaseButton.vue' import BaseDropdown from './BaseDropdown.vue' @@ -26,7 +25,6 @@ import SidebarPlugin from './SidebarPlugin' export { BaseCheckbox, Badge, - BaseProgress, BaseRadio, BaseInput, Card, diff --git a/frontend/src/plugins/globalComponents.js b/frontend/src/plugins/globalComponents.js index cd16f3c61..c6531ef13 100755 --- a/frontend/src/plugins/globalComponents.js +++ b/frontend/src/plugins/globalComponents.js @@ -7,7 +7,6 @@ import BaseButton from '@/components/BaseButton.vue' import Badge from '@/components/Badge.vue' import BaseCheckbox from '@/components/Inputs/BaseCheckbox.vue' import BaseRadio from '@/components/Inputs/BaseRadio' -import BaseProgress from '@/components/BaseProgress' import BaseNav from '@/components/Navbar/BaseNav' import { ValidationProvider, ValidationObserver } from 'vee-validate' @@ -20,7 +19,6 @@ const GlobalComponents = { Vue.component(BaseInput.name, BaseInput) Vue.component(BaseDropdown.name, BaseDropdown) Vue.component(BaseNav.name, BaseNav) - Vue.component(BaseProgress.name, BaseProgress) Vue.component(BaseRadio.name, BaseRadio) Vue.component(Card.name, Card) Vue.component(Modal.name, Modal) From 6b5a65525a3f37914d73fda7fd7c682bdf3356ab Mon Sep 17 00:00:00 2001 From: ogerly Date: Fri, 11 Jun 2021 12:11:35 +0200 Subject: [PATCH 0420/1050] kill BaseCheckbox --- .../src/components/Inputs/BaseCheckbox.vue | 78 ------------------- frontend/src/components/Inputs/BaseRadio.vue | 64 --------------- frontend/src/components/index.js | 4 - frontend/src/plugins/globalComponents.js | 4 - 4 files changed, 150 deletions(-) delete mode 100755 frontend/src/components/Inputs/BaseCheckbox.vue delete mode 100755 frontend/src/components/Inputs/BaseRadio.vue diff --git a/frontend/src/components/Inputs/BaseCheckbox.vue b/frontend/src/components/Inputs/BaseCheckbox.vue deleted file mode 100755 index 2aaa06fba..000000000 --- a/frontend/src/components/Inputs/BaseCheckbox.vue +++ /dev/null @@ -1,78 +0,0 @@ - - diff --git a/frontend/src/components/Inputs/BaseRadio.vue b/frontend/src/components/Inputs/BaseRadio.vue deleted file mode 100755 index 697812698..000000000 --- a/frontend/src/components/Inputs/BaseRadio.vue +++ /dev/null @@ -1,64 +0,0 @@ - - diff --git a/frontend/src/components/index.js b/frontend/src/components/index.js index eccd28455..c03fae690 100755 --- a/frontend/src/components/index.js +++ b/frontend/src/components/index.js @@ -1,5 +1,3 @@ -import BaseCheckbox from './Inputs/BaseCheckbox.vue' -import BaseRadio from './Inputs/BaseRadio.vue' import BaseInput from './Inputs/BaseInput.vue' import Badge from './Badge' import BaseButton from './BaseButton.vue' @@ -23,9 +21,7 @@ import BaseSlider from './BaseSlider.vue' import SidebarPlugin from './SidebarPlugin' export { - BaseCheckbox, Badge, - BaseRadio, BaseInput, Card, StatsCard, diff --git a/frontend/src/plugins/globalComponents.js b/frontend/src/plugins/globalComponents.js index c6531ef13..6162d98ed 100755 --- a/frontend/src/plugins/globalComponents.js +++ b/frontend/src/plugins/globalComponents.js @@ -5,8 +5,6 @@ import Modal from '@/components/Modal.vue' import StatsCard from '@/components/Cards/StatsCard.vue' import BaseButton from '@/components/BaseButton.vue' import Badge from '@/components/Badge.vue' -import BaseCheckbox from '@/components/Inputs/BaseCheckbox.vue' -import BaseRadio from '@/components/Inputs/BaseRadio' import BaseNav from '@/components/Navbar/BaseNav' import { ValidationProvider, ValidationObserver } from 'vee-validate' @@ -15,11 +13,9 @@ const GlobalComponents = { install(Vue) { Vue.component(Badge.name, Badge) Vue.component(BaseButton.name, BaseButton) - Vue.component(BaseCheckbox.name, BaseCheckbox) Vue.component(BaseInput.name, BaseInput) Vue.component(BaseDropdown.name, BaseDropdown) Vue.component(BaseNav.name, BaseNav) - Vue.component(BaseRadio.name, BaseRadio) Vue.component(Card.name, Card) Vue.component(Modal.name, Modal) Vue.component(StatsCard.name, StatsCard) From 4abe4b8da0e110eca89d75e9f4fdcb1b0d73cbd5 Mon Sep 17 00:00:00 2001 From: einhornimmond Date: Fri, 11 Jun 2021 12:30:23 +0200 Subject: [PATCH 0421/1050] update doc --- docu/login_server.api.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docu/login_server.api.md b/docu/login_server.api.md index fb9409cf0..8d3e1a812 100644 --- a/docu/login_server.api.md +++ b/docu/login_server.api.md @@ -231,6 +231,7 @@ with: "User.disabled": 0, "User.language": "de", "User.password": "1234" + "User.password_old": "4321" } } ``` @@ -240,6 +241,7 @@ Notes: - User will be disabled if he wants his account deleted, but has transactions. Until transactions are saved in real blockchain, we need this data because the public key is in db only saved in state_users so if we delete this entry, validating all transactions is no longer possible. - Disabled Users can neither login nor receive transactions. - It is not required to provide all fields of `update`, it can be a subset depending on what you intend to change. +- `User.password`: to change user password, needed current passwort in `User.password_old` ### Response In case of success: From b57dd722696545ab429e08534eb1a6909b01cd6c Mon Sep 17 00:00:00 2001 From: einhornimmond Date: Fri, 11 Jun 2021 12:35:52 +0200 Subject: [PATCH 0422/1050] add missing comma --- docu/login_server.api.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docu/login_server.api.md b/docu/login_server.api.md index 8d3e1a812..c779e543c 100644 --- a/docu/login_server.api.md +++ b/docu/login_server.api.md @@ -230,7 +230,7 @@ with: "User.description" : "Tischler", "User.disabled": 0, "User.language": "de", - "User.password": "1234" + "User.password": "1234", "User.password_old": "4321" } } From 36b6d8625ae9ab883d1ca9c8598215f3bae282fe Mon Sep 17 00:00:00 2001 From: ogerly Date: Fri, 11 Jun 2021 12:42:50 +0200 Subject: [PATCH 0423/1050] kill Vue.component(BaseDropdown.name, BaseDropdown) --- frontend/src/components/BaseDropdown.vue | 97 ----------------- frontend/src/components/Modal-OLD.vue | 127 ----------------------- frontend/src/components/Modal.vue | 80 -------------- frontend/src/components/index.js | 4 - frontend/src/plugins/globalComponents.js | 4 - frontend/src/store/store.js | 1 - 6 files changed, 313 deletions(-) delete mode 100644 frontend/src/components/BaseDropdown.vue delete mode 100644 frontend/src/components/Modal-OLD.vue delete mode 100644 frontend/src/components/Modal.vue diff --git a/frontend/src/components/BaseDropdown.vue b/frontend/src/components/BaseDropdown.vue deleted file mode 100644 index 8db496992..000000000 --- a/frontend/src/components/BaseDropdown.vue +++ /dev/null @@ -1,97 +0,0 @@ - - - diff --git a/frontend/src/components/Modal-OLD.vue b/frontend/src/components/Modal-OLD.vue deleted file mode 100644 index 515b510a0..000000000 --- a/frontend/src/components/Modal-OLD.vue +++ /dev/null @@ -1,127 +0,0 @@ - - - diff --git a/frontend/src/components/Modal.vue b/frontend/src/components/Modal.vue deleted file mode 100644 index c43bf6c67..000000000 --- a/frontend/src/components/Modal.vue +++ /dev/null @@ -1,80 +0,0 @@ - - - - diff --git a/frontend/src/components/index.js b/frontend/src/components/index.js index c03fae690..2eb0be846 100755 --- a/frontend/src/components/index.js +++ b/frontend/src/components/index.js @@ -2,7 +2,6 @@ import BaseInput from './Inputs/BaseInput.vue' import Badge from './Badge' import BaseButton from './BaseButton.vue' -import BaseDropdown from './BaseDropdown.vue' import BaseTable from './BaseTable.vue' import Card from './Cards/Card.vue' @@ -14,7 +13,6 @@ import TabPane from './Tabs/Tab.vue' import Tabs from './Tabs/Tabs.vue' import Collapse from './Collapse/Collapse.vue' import CollapseItem from './Collapse/CollapseItem.vue' -import Modal from './Modal.vue' import BaseSlider from './BaseSlider.vue' @@ -26,13 +24,11 @@ export { Card, StatsCard, BaseTable, - BaseDropdown, SidebarPlugin, BaseNav, NavbarToggleButton, TabPane, Tabs, - Modal, BaseSlider, BaseButton, Collapse, diff --git a/frontend/src/plugins/globalComponents.js b/frontend/src/plugins/globalComponents.js index 6162d98ed..06bf20ae6 100755 --- a/frontend/src/plugins/globalComponents.js +++ b/frontend/src/plugins/globalComponents.js @@ -1,7 +1,5 @@ import BaseInput from '@/components/Inputs/BaseInput.vue' -import BaseDropdown from '@/components/BaseDropdown.vue' import Card from '@/components/Cards/Card.vue' -import Modal from '@/components/Modal.vue' import StatsCard from '@/components/Cards/StatsCard.vue' import BaseButton from '@/components/BaseButton.vue' import Badge from '@/components/Badge.vue' @@ -14,10 +12,8 @@ const GlobalComponents = { Vue.component(Badge.name, Badge) Vue.component(BaseButton.name, BaseButton) Vue.component(BaseInput.name, BaseInput) - Vue.component(BaseDropdown.name, BaseDropdown) Vue.component(BaseNav.name, BaseNav) Vue.component(Card.name, Card) - Vue.component(Modal.name, Modal) Vue.component(StatsCard.name, StatsCard) Vue.component('validation-provider', ValidationProvider) Vue.component('validation-observer', ValidationObserver) diff --git a/frontend/src/store/store.js b/frontend/src/store/store.js index 4c7e10a87..9b98645bd 100644 --- a/frontend/src/store/store.js +++ b/frontend/src/store/store.js @@ -58,7 +58,6 @@ export const store = new Vuex.Store({ sessionId: null, email: '', language: null, - modals: false, firstName: '', lastName: '', username: '', From 4ee36c6e3645827c4ade53333cfd29266ce40e7a Mon Sep 17 00:00:00 2001 From: einhornimmond Date: Fri, 11 Jun 2021 14:42:50 +0200 Subject: [PATCH 0424/1050] move creating secret key for password comparisation in extra function - needed for check for old passwort for passwort update in frontend --- login_server/src/cpp/controller/User.cpp | 26 ++++++++++++++++-------- login_server/src/cpp/controller/User.h | 3 +++ 2 files changed, 21 insertions(+), 8 deletions(-) diff --git a/login_server/src/cpp/controller/User.cpp b/login_server/src/cpp/controller/User.cpp index 5c26e3a12..0ca3ac988 100644 --- a/login_server/src/cpp/controller/User.cpp +++ b/login_server/src/cpp/controller/User.cpp @@ -194,20 +194,14 @@ namespace controller { return json; } - int User::login(const std::string& password) + Poco::AutoPtr User::createSecretKey(const std::string& password) { - if (!mPassword.isNull() && mPassword->hasKey()) { - return 2; - } auto observer = SingletonTaskObserver::getInstance(); - std::unique_lock _lock(mSharedMutex); - assert(mPassword.isNull()); - auto model = getModel(); auto email_hash = observer->makeHash(model->getEmail()); if (observer->getTaskCount(email_hash, TASK_OBSERVER_PASSWORD_CREATION) > 0) { - return -3; + return nullptr; } observer->addTask(email_hash, TASK_OBSERVER_PASSWORD_CREATION); Poco::AutoPtr authenticated_encryption(new SecretKeyCryptography); @@ -215,7 +209,23 @@ namespace controller { authenticated_encryption->createKey(model->getEmail(), password); observer->removeTask(email_hash, TASK_OBSERVER_PASSWORD_CREATION); + return authenticated_encryption; + } + int User::login(const std::string& password) + { + std::unique_lock _lock(mSharedMutex); + + if (!mPassword.isNull() && mPassword->hasKey()) { + return 2; + } + assert(mPassword.isNull()); + + auto authenticated_encryption = createSecretKey(password); + if (authenticated_encryption.isNull()) { + return -3; + } + auto model = getModel(); if (authenticated_encryption->getKeyHashed() == model->getPasswordHashed()) { // printf("[User::login] password key hashed is the same as saved password hash\n"); diff --git a/login_server/src/cpp/controller/User.h b/login_server/src/cpp/controller/User.h index ecbac086f..a12308550 100644 --- a/login_server/src/cpp/controller/User.h +++ b/login_server/src/cpp/controller/User.h @@ -96,6 +96,9 @@ namespace controller { //! - create authenticated encryption key from password and email //! - compare hash with in db saved hash int login(const std::string& password); + + //! \brief simply check if password is correct, independent if user is already logged in or not + Poco::AutoPtr createSecretKey(const std::string& password); // *********************************************************************************** // password related From 28e586e99c5c2a8202f763b7a2ac36ff1209c035 Mon Sep 17 00:00:00 2001 From: einhornimmond Date: Fri, 11 Jun 2021 14:43:15 +0200 Subject: [PATCH 0425/1050] more tests and fixes to get test working --- .../cpp/JSONInterface/JsonUpdateUserInfos.cpp | 24 +++-- .../JSONInterface/TestJsonUpdateUserInfos.cpp | 91 ++++++++++++++++++- 2 files changed, 103 insertions(+), 12 deletions(-) diff --git a/login_server/src/cpp/JSONInterface/JsonUpdateUserInfos.cpp b/login_server/src/cpp/JSONInterface/JsonUpdateUserInfos.cpp index c4ab519fd..6756ca437 100644 --- a/login_server/src/cpp/JSONInterface/JsonUpdateUserInfos.cpp +++ b/login_server/src/cpp/JSONInterface/JsonUpdateUserInfos.cpp @@ -144,10 +144,15 @@ Poco::JSON::Object* JsonUpdateUserInfos::handle(Poco::Dynamic::Var params) } } } - else if ("User.password" == name && value.size() > 0 && (ServerConfig::g_AllowUnsecureFlags & ServerConfig::UNSECURE_PASSWORD_REQUESTS) == ServerConfig::UNSECURE_PASSWORD_REQUESTS) { + else if ("User.password" == name && (ServerConfig::g_AllowUnsecureFlags & ServerConfig::UNSECURE_PASSWORD_REQUESTS) == ServerConfig::UNSECURE_PASSWORD_REQUESTS) { + if (!value.isString()) { jsonErrorsArray.add("User.password isn't string"); } + std::string value_str = value.toString(); + if (!value_str.size()) { + jsonErrorsArray.add("User.password is empty"); + } else { std::string old_password; auto old_password_obj = updates->get("User.password_old"); @@ -171,20 +176,16 @@ Poco::JSON::Object* JsonUpdateUserInfos::handle(Poco::Dynamic::Var params) } else { - auto result = user->login(old_password); - if (result == 1) { + auto secret_key = user->createSecretKey(old_password); + if (secret_key->getKeyHashed() == user_model->getPasswordHashed()) { old_password_valid = true; } - else if (result == -3) { + else if (secret_key.isNull()) { jsonErrorsArray.add("Password calculation for this user already running, please try again later"); } else { jsonErrorsArray.add("User.password_old didn't match"); } - - if (result == 2) { - Poco::Thread::sleep(ServerConfig::g_FakeLoginSleepTime); - } } } @@ -228,7 +229,12 @@ Poco::JSON::Object* JsonUpdateUserInfos::handle(Poco::Dynamic::Var params) } result->set("errors", jsonErrorsArray); result->set("valid_values", extractet_values); - result->set("state", "success"); + if (!jsonErrorsArray.size()) { + result->set("state", "success"); + } + else { + result->set("state", "error"); + } return result; } \ No newline at end of file diff --git a/login_server/src/cpp/test/JSONInterface/TestJsonUpdateUserInfos.cpp b/login_server/src/cpp/test/JSONInterface/TestJsonUpdateUserInfos.cpp index 64891fb01..a1e2fbf79 100644 --- a/login_server/src/cpp/test/JSONInterface/TestJsonUpdateUserInfos.cpp +++ b/login_server/src/cpp/test/JSONInterface/TestJsonUpdateUserInfos.cpp @@ -11,7 +11,7 @@ void TestJsonUpdateUserInfos::SetUp() //sm->init(); mUserSession = sm->getNewSession(); auto user = controller::User::create(); - user->getModel()->setEmail("Jeet_bb@gmail.com"); + user->load("Jeet_bb@gmail.com"); mUserSession->setUser(user); } @@ -41,7 +41,9 @@ TEST_F(TestJsonUpdateUserInfos, EmptyOldPassword) update->set("User.password", "haLL1o_/%s"); auto params = chooseAccount(update); + Profiler timeUsed; auto result = jsonCall.handle(params); + ASSERT_LE(timeUsed.millis(), 300); auto errors = result->get("errors"); ASSERT_TRUE(errors.isArray()); @@ -56,6 +58,11 @@ TEST_F(TestJsonUpdateUserInfos, EmptyOldPassword) ASSERT_EQ(error_array.size(), 1); ASSERT_EQ(error_array.getElement(0), "User.password_old not found"); + auto state = result->get("state"); + ASSERT_FALSE(state.isEmpty()); + ASSERT_TRUE(state.isString()); + ASSERT_EQ(state.toString(), "error"); + delete result; } @@ -67,7 +74,9 @@ TEST_F(TestJsonUpdateUserInfos, OnlyOldPassword) update->set("User.password_old", "TestP4ssword&H"); auto params = chooseAccount(update); + Profiler timeUsed; auto result = jsonCall.handle(params); + ASSERT_LE(timeUsed.millis(), 200); auto errors = result->get("errors"); ASSERT_TRUE(errors.isArray()); @@ -79,13 +88,18 @@ TEST_F(TestJsonUpdateUserInfos, OnlyOldPassword) Poco::JSON::Array error_array = errors.extract(); ASSERT_EQ(error_array.size(), 0); + auto state = result->get("state"); + ASSERT_FALSE(state.isEmpty()); + ASSERT_TRUE(state.isString()); + ASSERT_EQ(state.toString(), "success"); + delete result; } TEST_F(TestJsonUpdateUserInfos, WrongPassword) { JsonUpdateUserInfos jsonCall; - mUserSession->loadUser("Jeet_bb@gmail.com", "TestP4ssword&H"); + ASSERT_EQ(mUserSession->loadUser("Jeet_bb@gmail.com", "TestP4ssword&H"), USER_COMPLETE); Poco::JSON::Object::Ptr update = new Poco::JSON::Object; update->set("User.password", "newPassword"); @@ -94,7 +108,7 @@ TEST_F(TestJsonUpdateUserInfos, WrongPassword) auto params = chooseAccount(update); Profiler timeUsed; auto result = jsonCall.handle(params); - ASSERT_GE(timeUsed.millis(), ServerConfig::g_FakeLoginSleepTime-200); + ASSERT_GE(timeUsed.millis(), ServerConfig::g_FakeLoginSleepTime * 0.75); auto errors = result->get("errors"); ASSERT_TRUE(errors.isArray()); @@ -107,5 +121,76 @@ TEST_F(TestJsonUpdateUserInfos, WrongPassword) ASSERT_EQ(error_array.size(), 1); ASSERT_EQ(error_array.getElement(0), "User.password_old didn't match"); + auto state = result->get("state"); + ASSERT_FALSE(state.isEmpty()); + ASSERT_TRUE(state.isString()); + ASSERT_EQ(state.toString(), "error"); + + delete result; +} + +TEST_F(TestJsonUpdateUserInfos, EmptyPassword) +{ + JsonUpdateUserInfos jsonCall; + Poco::JSON::Object::Ptr update = new Poco::JSON::Object; + + update->set("User.password", ""); + update->set("User.password_old", "TestP4sswordH"); + + auto params = chooseAccount(update); + Profiler timeUsed; + auto result = jsonCall.handle(params); + ASSERT_LE(timeUsed.millis(), 200); + + auto errors = result->get("errors"); + ASSERT_TRUE(errors.isArray()); + auto valid_values_obj = result->get("valid_values"); + ASSERT_TRUE(valid_values_obj.isInteger()); + int valid_values = 0; + valid_values_obj.convert(valid_values); + ASSERT_EQ(valid_values, 0); + Poco::JSON::Array error_array = errors.extract(); + ASSERT_EQ(error_array.size(), 1); + ASSERT_EQ(error_array.getElement(0), "User.password is empty"); + + auto state = result->get("state"); + ASSERT_FALSE(state.isEmpty()); + ASSERT_TRUE(state.isString()); + ASSERT_EQ(state.toString(), "error"); + + delete result; +} + + +TEST_F(TestJsonUpdateUserInfos, CorrectPassword) +{ + JsonUpdateUserInfos jsonCall; + ASSERT_EQ(mUserSession->loadUser("Jeet_bb@gmail.com", "TestP4ssword&H"), USER_COMPLETE); + + Poco::JSON::Object::Ptr update = new Poco::JSON::Object; + + update->set("User.password", "newPassword"); + update->set("User.password_old", "TestP4ssword&H"); + + auto params = chooseAccount(update); + Profiler timeUsed; + auto result = jsonCall.handle(params); + ASSERT_GE(timeUsed.millis(), ServerConfig::g_FakeLoginSleepTime * 0.75); + + auto errors = result->get("errors"); + ASSERT_TRUE(errors.isArray()); + auto valid_values_obj = result->get("valid_values"); + ASSERT_TRUE(valid_values_obj.isInteger()); + int valid_values = 0; + valid_values_obj.convert(valid_values); + EXPECT_EQ(valid_values, 1); + Poco::JSON::Array error_array = errors.extract(); + ASSERT_EQ(error_array.size(), 0); + + auto state = result->get("state"); + ASSERT_FALSE(state.isEmpty()); + ASSERT_TRUE(state.isString()); + ASSERT_EQ(state.toString(), "success"); + delete result; } \ No newline at end of file From 3f50d14d222ba56598a7bf80bb77b12a37a24caf Mon Sep 17 00:00:00 2001 From: einhornimmond Date: Fri, 11 Jun 2021 14:54:25 +0200 Subject: [PATCH 0426/1050] allow only one username change --- login_server/src/cpp/JSONInterface/JsonUpdateUserInfos.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/login_server/src/cpp/JSONInterface/JsonUpdateUserInfos.cpp b/login_server/src/cpp/JSONInterface/JsonUpdateUserInfos.cpp index 40d5dd016..804d06987 100644 --- a/login_server/src/cpp/JSONInterface/JsonUpdateUserInfos.cpp +++ b/login_server/src/cpp/JSONInterface/JsonUpdateUserInfos.cpp @@ -89,7 +89,10 @@ Poco::JSON::Object* JsonUpdateUserInfos::handle(Poco::Dynamic::Var params) std::string str_val = validateString(value, "User.username", jsonErrorsArray); if (str_val.size() > 0) { - if (user_model->getUsername() != str_val) { + if (user_model->getUsername() != "") { + jsonErrorsArray.add("change username currently not supported!"); + } + else if (user_model->getUsername() != str_val) { if (user->isUsernameAlreadyUsed(str_val)) { jsonErrorsArray.add("username already used"); } From 840729fb94f013a6f48563fb6faa4050f8827aa4 Mon Sep 17 00:00:00 2001 From: einhornimmond Date: Fri, 11 Jun 2021 15:34:19 +0200 Subject: [PATCH 0427/1050] compare with last transaction sended --- .../JSONInterface/JsonCreateTransaction.cpp | 7 ++++++ login_server/src/cpp/model/Session.cpp | 11 ++++++++ login_server/src/cpp/model/Session.h | 6 +++++ .../src/cpp/model/gradido/Transaction.cpp | 25 +++++++++++++++++++ .../src/cpp/model/gradido/Transaction.h | 2 ++ 5 files changed, 51 insertions(+) diff --git a/login_server/src/cpp/JSONInterface/JsonCreateTransaction.cpp b/login_server/src/cpp/JSONInterface/JsonCreateTransaction.cpp index 5478f78cf..96f5a13a6 100644 --- a/login_server/src/cpp/JSONInterface/JsonCreateTransaction.cpp +++ b/login_server/src/cpp/JSONInterface/JsonCreateTransaction.cpp @@ -140,6 +140,13 @@ Poco::JSON::Object* JsonCreateTransaction::transfer(Poco::Dynamic::Var params) try { auto transaction = model::gradido::Transaction::createTransfer(sender_user, target_pubkey, mTargetGroup, amount, mMemo, mBlockchainType); + if (mSession->lastTransactionTheSame(transaction)) { + return stateError("transaction are the same as the last (within 100 seconds)"); + } + else { + mSession->setLastTransaction(transaction); + } + if (mAutoSign) { Poco::JSON::Array errors; transaction->sign(sender_user); diff --git a/login_server/src/cpp/model/Session.cpp b/login_server/src/cpp/model/Session.cpp index f50fa87df..767f1acb3 100644 --- a/login_server/src/cpp/model/Session.cpp +++ b/login_server/src/cpp/model/Session.cpp @@ -919,6 +919,17 @@ bool Session::useOrGeneratePassphrase(const std::string& passphase) } */ +bool Session::lastTransactionTheSame(Poco::AutoPtr newTransaction) +{ + assert(!newTransaction.isNull()); + lock(); + if (mLastTransaction.isNull()) { + return false; + } + bool result = mLastTransaction->isTheSameTransaction(newTransaction); + unlock(); + return result; +} bool Session::generateKeys(bool savePrivkey, bool savePassphrase) { diff --git a/login_server/src/cpp/model/Session.h b/login_server/src/cpp/model/Session.h index 1607d23c9..26b1a1170 100644 --- a/login_server/src/cpp/model/Session.h +++ b/login_server/src/cpp/model/Session.h @@ -19,6 +19,8 @@ #include "../controller/EmailVerificationCode.h" +#include "model/gradido/Transaction.h" + #include "Poco/Thread.h" #include "Poco/Types.h" #include "Poco/DateTime.h" @@ -163,6 +165,8 @@ public: // ------------------------ transactions functions ---------------------------- + inline void setLastTransaction(Poco::AutoPtr lastTransaction) { lock(); mLastTransaction = lastTransaction; unlock(); } + bool lastTransactionTheSame(Poco::AutoPtr newTransaction); inline LanguageCatalog* getLanguageCatalog() { return mLanguageCatalog.isNull() ? nullptr : mLanguageCatalog; } void setLanguage(Languages lang); @@ -188,6 +192,7 @@ protected: private: + int mHandleId; Poco::AutoPtr mNewUser; std::string mPassphrase; @@ -200,6 +205,7 @@ private: Poco::AutoPtr mEmailVerificationCodeObject; std::shared_mutex mSharedMutex; + Poco::AutoPtr mLastTransaction; SessionStates mState; diff --git a/login_server/src/cpp/model/gradido/Transaction.cpp b/login_server/src/cpp/model/gradido/Transaction.cpp index 22ac8937f..16555c485 100644 --- a/login_server/src/cpp/model/gradido/Transaction.cpp +++ b/login_server/src/cpp/model/gradido/Transaction.cpp @@ -630,6 +630,31 @@ namespace model { } + bool Transaction::isTheSameTransaction(Poco::AutoPtr other) + { + bool result = false; + + auto other_proto = other->getTransactionBody()->getBody(); + auto other_created = other_proto->created(); + auto own_body_bytes = getTransactionBody()->getBodyBytes(); + auto own_body_updated = new proto::gradido::TransactionBody; + own_body_updated->ParseFromString(own_body_bytes); + auto own_created = own_body_updated->mutable_created(); + Poco::Int64 timeDiff = other_created.seconds() - own_created->seconds(); + *own_created = other_created; + + result = own_body_updated->SerializeAsString() == other_proto->SerializeAsString(); + + delete own_body_updated; + + // if they are more than 100 seconds between transaction they consider as not the same + if (abs(timeDiff) > 100) { + return false; + } + + return result; + } + /// TASK //////////////////////// SendTransactionTask::SendTransactionTask(Poco::AutoPtr transaction) diff --git a/login_server/src/cpp/model/gradido/Transaction.h b/login_server/src/cpp/model/gradido/Transaction.h index 80f5e7453..a35376040 100644 --- a/login_server/src/cpp/model/gradido/Transaction.h +++ b/login_server/src/cpp/model/gradido/Transaction.h @@ -86,6 +86,8 @@ namespace model { std::string getTransactionAsJson(bool replaceBase64WithHex = false); inline Poco::AutoPtr getPairedTransaction() { return mPairedTransaction; } + bool isTheSameTransaction(Poco::AutoPtr other); + protected: From 5b3e2fdda7caf87cc9098794bb640418bf22ce89 Mon Sep 17 00:00:00 2001 From: einhornimmond Date: Fri, 11 Jun 2021 16:53:00 +0200 Subject: [PATCH 0428/1050] try coverage action from me modified --- .github/workflows/test.yml | 18 +++++++++--------- community_server/Dockerfile | 5 +++-- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 4f3d6a28c..1d7a382e3 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -336,15 +336,15 @@ jobs: # COVERAGE CHECK BACKEND COMMUNITY-SERVER #################################### ########################################################################## - name: backend community | Coverage check - run: | - docker run -v ~/coverage:/var/www/cakephp/webroot/coverage gradido/community_server:test vendor/bin/coverage-check ./webroot/coverage/clover.xml 14 - # uses: webcraftmedia/coverage-check-action@master - # with: - # report_name: Coverage Backend - # type: simplecov - # result_path: ./coverage/clover.xml - # min_coverage: 8 - # token: ${{ github.token }} + #run: | + # docker run -v ~/coverage:/var/www/cakephp/webroot/coverage gradido/community_server:test vendor/bin/coverage-check ./webroot/coverage/clover.xml 14 + uses: einhornimmond/coverage-check-action@master + with: + report_name: Coverage Backend + type: phpunit + result_path: ./coverage/coverage.info + min_coverage: 10 + token: ${{ github.token }} #test: # runs-on: ubuntu-latest diff --git a/community_server/Dockerfile b/community_server/Dockerfile index 596c4c98d..c553137c6 100644 --- a/community_server/Dockerfile +++ b/community_server/Dockerfile @@ -23,7 +23,8 @@ RUN apt-get update \ ENV XDEBUG_MODE=coverage -RUN composer require --dev rregeer/phpunit-coverage-check +#RUN composer require --dev rregeer/phpunit-coverage-check -CMD ./vendor/bin/phpunit --coverage-clover=./webroot/coverage/clover.xml +#CMD ./vendor/bin/phpunit --coverage-clover=./webroot/coverage/clover.xml +CMD ./vendor/bin/phpunit --coverage-text=./webroot/coverage/coverage.info From 3e71d5423cbede3ed7bb52f6bf0534340886d2fb Mon Sep 17 00:00:00 2001 From: einhornimmond Date: Fri, 11 Jun 2021 17:18:26 +0200 Subject: [PATCH 0429/1050] make coverage report names unique --- .github/workflows/test.yml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 1d7a382e3..076453d9e 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -265,7 +265,7 @@ jobs: - name: backend login | Coverage check uses: webcraftmedia/coverage-check-action@master with: - report_name: Coverage Backend + report_name: Coverage Backend Login type: lcov result_path: ./coverage/coverage.info min_coverage: 13 @@ -336,11 +336,9 @@ jobs: # COVERAGE CHECK BACKEND COMMUNITY-SERVER #################################### ########################################################################## - name: backend community | Coverage check - #run: | - # docker run -v ~/coverage:/var/www/cakephp/webroot/coverage gradido/community_server:test vendor/bin/coverage-check ./webroot/coverage/clover.xml 14 uses: einhornimmond/coverage-check-action@master with: - report_name: Coverage Backend + report_name: Coverage Backend Community type: phpunit result_path: ./coverage/coverage.info min_coverage: 10 From 8d26296248a5fa0e4546b29f1899b6b2c06ed852 Mon Sep 17 00:00:00 2001 From: ogerly Date: Fri, 11 Jun 2021 20:02:52 +0200 Subject: [PATCH 0430/1050] remove base-input, validation from bootstrap --- frontend/src/components/BaseButton.vue | 75 ---------------- frontend/src/components/index.js | 3 - frontend/src/plugins/dashboard-plugin.js | 26 +++--- frontend/src/plugins/globalComponents.js | 3 - frontend/src/views/Pages/Login.vue | 105 ++++++++++++++++------- frontend/test/testSetup.js | 44 ++++++++++ 6 files changed, 133 insertions(+), 123 deletions(-) delete mode 100644 frontend/src/components/BaseButton.vue create mode 100644 frontend/test/testSetup.js diff --git a/frontend/src/components/BaseButton.vue b/frontend/src/components/BaseButton.vue deleted file mode 100644 index 009add59b..000000000 --- a/frontend/src/components/BaseButton.vue +++ /dev/null @@ -1,75 +0,0 @@ - - - diff --git a/frontend/src/components/index.js b/frontend/src/components/index.js index 2eb0be846..6e3e3f01c 100755 --- a/frontend/src/components/index.js +++ b/frontend/src/components/index.js @@ -1,6 +1,5 @@ import BaseInput from './Inputs/BaseInput.vue' import Badge from './Badge' -import BaseButton from './BaseButton.vue' import BaseTable from './BaseTable.vue' @@ -15,7 +14,6 @@ import Collapse from './Collapse/Collapse.vue' import CollapseItem from './Collapse/CollapseItem.vue' import BaseSlider from './BaseSlider.vue' - import SidebarPlugin from './SidebarPlugin' export { @@ -30,7 +28,6 @@ export { TabPane, Tabs, BaseSlider, - BaseButton, Collapse, CollapseItem, } diff --git a/frontend/src/plugins/dashboard-plugin.js b/frontend/src/plugins/dashboard-plugin.js index b7c0ea06c..211b02895 100755 --- a/frontend/src/plugins/dashboard-plugin.js +++ b/frontend/src/plugins/dashboard-plugin.js @@ -3,7 +3,7 @@ import '@/polyfills' // Notifications plugin. Used on Notifications page import Notifications from '@/components/NotificationPlugin' // Validation plugin used to validate forms -import { configure, extend } from 'vee-validate' +import { /* configure, */ extend, localize } from 'vee-validate' // A plugin file where you could register global components used across the app import GlobalComponents from './globalComponents' // A plugin file where you could register global directives @@ -11,14 +11,11 @@ import GlobalDirectives from './globalDirectives' // Sidebar on the right. Used as a local plugin in DashboardLayout.vue import SideBar from '@/components/SidebarPlugin' -// vue-bootstrap -import { BootstrapVue, IconsPlugin } from 'bootstrap-vue' - // asset imports import '@/assets/scss/argon.scss' import '@/assets/vendor/nucleo/css/nucleo.css' import * as rules from 'vee-validate/dist/rules' -import { messages } from 'vee-validate/dist/locale/en.json' +import en, { messages } from 'vee-validate/dist/locale/en.json' import VueQrcodeReader from 'vue-qrcode-reader' import VueQrcode from 'vue-qrcode' @@ -35,6 +32,11 @@ import Loading from 'vue-loading-overlay' // import the styles import 'vue-loading-overlay/dist/vue-loading.css' +// vue-bootstrap +import { BootstrapVue, IconsPlugin } from 'bootstrap-vue' + +localize('en', en) + Object.keys(rules).forEach((rule) => { extend(rule, { ...rules[rule], // copies rule configuration @@ -55,12 +57,12 @@ export default { Vue.use(VueQrcode) Vue.use(VueFlatPickr) Vue.use(Loading) - configure({ - classes: { - valid: 'is-valid', - invalid: 'is-invalid', - dirty: ['is-dirty', 'is-dirty'], // multiple classes per flag! - }, - }) + // configure({ + // classes: { + // valid: 'is-valid', + // invalid: 'is-invalid', + // dirty: ['is-dirty', 'is-dirty'], // multiple classes per flag! + // }, + // }) }, } diff --git a/frontend/src/plugins/globalComponents.js b/frontend/src/plugins/globalComponents.js index 06bf20ae6..bea56050b 100755 --- a/frontend/src/plugins/globalComponents.js +++ b/frontend/src/plugins/globalComponents.js @@ -1,16 +1,13 @@ import BaseInput from '@/components/Inputs/BaseInput.vue' import Card from '@/components/Cards/Card.vue' import StatsCard from '@/components/Cards/StatsCard.vue' -import BaseButton from '@/components/BaseButton.vue' import Badge from '@/components/Badge.vue' import BaseNav from '@/components/Navbar/BaseNav' import { ValidationProvider, ValidationObserver } from 'vee-validate' - const GlobalComponents = { install(Vue) { Vue.component(Badge.name, Badge) - Vue.component(BaseButton.name, BaseButton) Vue.component(BaseInput.name, BaseInput) Vue.component(BaseNav.name, BaseNav) Vue.component(Card.name, Card) diff --git a/frontend/src/views/Pages/Login.vue b/frontend/src/views/Pages/Login.vue index a6d795bb1..ce9d8d247 100755 --- a/frontend/src/views/Pages/Login.vue +++ b/frontend/src/views/Pages/Login.vue @@ -22,34 +22,68 @@
{{ $t('login') }}
- - - + + + v-slot="validationContext" + > + + - - + + {{ validationContext.errors[0] }} + + + - - - - - - + + + + + + + + + + + + + {{ validationContext.errors[0] }} + + + @@ -62,12 +96,9 @@ - - -
- - {{ $t('site.login.signin') }} - +
+ {{ $t('form.reset')}} + {{ $t('form.save')}}
@@ -109,6 +140,20 @@ export default { } }, methods: { + getValidationState({ dirty, validated, valid = null }) { + return dirty || validated ? valid : null + }, + resetForm() { + this.model = { + email: null, + password: null, + } + + this.$nextTick(() => { + this.$refs.observer.reset() + }) + }, + togglePasswordVisibility() { this.passwordVisible = !this.passwordVisible }, diff --git a/frontend/test/testSetup.js b/frontend/test/testSetup.js new file mode 100644 index 000000000..fb3ff5542 --- /dev/null +++ b/frontend/test/testSetup.js @@ -0,0 +1,44 @@ +import { createLocalVue } from '@vue/test-utils' +import { BootstrapVue, IconsPlugin } from 'bootstrap-vue' +import Vuex from 'vuex' +import { ValidationProvider, ValidationObserver, extend } from 'vee-validate' +import * as rules from 'vee-validate/dist/rules' + +import { messages } from 'vee-validate/dist/locale/en.json' +import BaseInput from '@/components/Inputs/BaseInput.vue' +import RegeneratorRuntime from 'regenerator-runtime' +import Notifications from '@/components/NotificationPlugin' +import SideBar from '@/components/SidebarPlugin' +import VueRouter from 'vue-router' +import VueQrcode from 'vue-qrcode' +import StatsCard from '@/components/Cards/StatsCard.vue' + +import VueMoment from 'vue-moment' + +import clickOutside from '@/directives/click-ouside.js' +import { focus } from 'vue-focus' + +global.localVue = createLocalVue() + +Object.keys(rules).forEach((rule) => { + extend(rule, { + ...rules[rule], // copies rule configuration + message: messages[rule], // assign message + }) +}) + +global.localVue.use(BootstrapVue) +global.localVue.use(Vuex) +global.localVue.use(IconsPlugin) +global.localVue.use(RegeneratorRuntime) +global.localVue.use(Notifications) +global.localVue.use(SideBar) +global.localVue.use(VueRouter) +global.localVue.use(VueQrcode) +global.localVue.use(VueMoment) +global.localVue.component(BaseInput.name, BaseInput) +global.localVue.component('validation-provider', ValidationProvider) +global.localVue.component('validation-observer', ValidationObserver) +global.localVue.component(StatsCard.name, StatsCard) +global.localVue.directive('click-outside', clickOutside) +global.localVue.directive('focus', focus) From c60d3b68b9851f66100dcd3632d3a06eac5e5d54 Mon Sep 17 00:00:00 2001 From: ogerly Date: Fri, 11 Jun 2021 20:19:42 +0200 Subject: [PATCH 0431/1050] change locations fix-lint --- frontend/src/plugins/dashboard-plugin.js | 16 ++++----- frontend/src/views/Pages/Login.vue | 46 ++++++++++++------------ 2 files changed, 31 insertions(+), 31 deletions(-) diff --git a/frontend/src/plugins/dashboard-plugin.js b/frontend/src/plugins/dashboard-plugin.js index 211b02895..269fa7a84 100755 --- a/frontend/src/plugins/dashboard-plugin.js +++ b/frontend/src/plugins/dashboard-plugin.js @@ -3,7 +3,7 @@ import '@/polyfills' // Notifications plugin. Used on Notifications page import Notifications from '@/components/NotificationPlugin' // Validation plugin used to validate forms -import { /* configure, */ extend, localize } from 'vee-validate' +import { configure, extend, localize } from 'vee-validate' // A plugin file where you could register global components used across the app import GlobalComponents from './globalComponents' // A plugin file where you could register global directives @@ -57,12 +57,12 @@ export default { Vue.use(VueQrcode) Vue.use(VueFlatPickr) Vue.use(Loading) - // configure({ - // classes: { - // valid: 'is-valid', - // invalid: 'is-invalid', - // dirty: ['is-dirty', 'is-dirty'], // multiple classes per flag! - // }, - // }) + configure({ + classes: { + valid: 'is-valid', + invalid: 'is-invalid', + dirty: ['is-dirty', 'is-dirty'], // multiple classes per flag! + }, + }) }, } diff --git a/frontend/src/views/Pages/Login.vue b/frontend/src/views/Pages/Login.vue index ce9d8d247..9d0cca6da 100755 --- a/frontend/src/views/Pages/Login.vue +++ b/frontend/src/views/Pages/Login.vue @@ -56,33 +56,33 @@ :rules="{ required: true }" v-slot="validationContext" > - - - + + - - - - - - - - {{ validationContext.errors[0] }} - - + + + + + + + + {{ validationContext.errors[0] }} + + @@ -97,8 +97,8 @@
- {{ $t('form.reset')}} - {{ $t('form.save')}} + {{ $t('form.reset') }} + {{ $t('login') }}
From 9d00b96c5fa2afdd5182b160b2e754287c6642d1 Mon Sep 17 00:00:00 2001 From: ogerly Date: Sat, 12 Jun 2021 08:47:42 +0200 Subject: [PATCH 0432/1050] remove base-input from ForgotPasswort.vue --- frontend/src/views/Pages/ForgotPassword.vue | 33 +++++++++++++------ frontend/src/views/Pages/Login.vue | 35 +++++++++------------ 2 files changed, 39 insertions(+), 29 deletions(-) diff --git a/frontend/src/views/Pages/ForgotPassword.vue b/frontend/src/views/Pages/ForgotPassword.vue index 32331d080..857278908 100644 --- a/frontend/src/views/Pages/ForgotPassword.vue +++ b/frontend/src/views/Pages/ForgotPassword.vue @@ -17,19 +17,31 @@ - + - + v-slot="validationContext" + > + + + + + {{ validationContext.errors[0] }} + + + +
- + {{ $t('site.password.reset_now') }}
@@ -59,6 +71,9 @@ export default { } }, methods: { + getValidationState({ dirty, validated, valid = null }) { + return dirty || validated ? valid : null + }, async onSubmit() { const result = await loginAPI.sendEmail(this.form.email) if (result.success) { diff --git a/frontend/src/views/Pages/Login.vue b/frontend/src/views/Pages/Login.vue index 9d0cca6da..d388bea5f 100755 --- a/frontend/src/views/Pages/Login.vue +++ b/frontend/src/views/Pages/Login.vue @@ -30,22 +30,17 @@ :rules="{ required: true, email: true }" v-slot="validationContext" > - + - + {{ validationContext.errors[0] }} @@ -97,7 +92,7 @@
- {{ $t('form.reset') }} + {{ $t('login') }}
@@ -143,16 +138,16 @@ export default { getValidationState({ dirty, validated, valid = null }) { return dirty || validated ? valid : null }, - resetForm() { - this.model = { - email: null, - password: null, - } - - this.$nextTick(() => { - this.$refs.observer.reset() - }) - }, + //resetForm() { + // this.model = { + // email: null, + // password: null, + // } + // + // this.$nextTick(() => { + // this.$refs.observer.reset() + // }) + //}, togglePasswordVisibility() { this.passwordVisible = !this.passwordVisible From 259fd5404d175c0b3d753b50ebfcd2fbfeb9446f Mon Sep 17 00:00:00 2001 From: ogerly Date: Sat, 12 Jun 2021 10:52:10 +0200 Subject: [PATCH 0433/1050] remove base-input from register.vue --- frontend/src/views/Pages/Login.vue | 16 +- frontend/src/views/Pages/Register.vue | 240 +++++++++++++++++++------- 2 files changed, 178 insertions(+), 78 deletions(-) diff --git a/frontend/src/views/Pages/Login.vue b/frontend/src/views/Pages/Login.vue index d388bea5f..23e5741f2 100755 --- a/frontend/src/views/Pages/Login.vue +++ b/frontend/src/views/Pages/Login.vue @@ -30,9 +30,9 @@ :rules="{ required: true, email: true }" v-slot="validationContext" > - +
- {{ $t('login') }}
@@ -138,16 +137,7 @@ export default { getValidationState({ dirty, validated, valid = null }) { return dirty || validated ? valid : null }, - //resetForm() { - // this.model = { - // email: null, - // password: null, - // } - // - // this.$nextTick(() => { - // this.$refs.observer.reset() - // }) - //}, + togglePasswordVisibility() { this.passwordVisible = !this.passwordVisible diff --git a/frontend/src/views/Pages/Register.vue b/frontend/src/views/Pages/Register.vue index d7b9ab8f0..f427c5a8c 100755 --- a/frontend/src/views/Pages/Register.vue +++ b/frontend/src/views/Pages/Register.vue @@ -23,65 +23,146 @@
{{ $t('signup') }}
- + + + - - + v-slot="validationContext" + > - - -
- - + - - - - - - - + + {{ validationContext.errors[0] }} + +
- + + + + + + + + + + + {{ validationContext.errors[0] }} + + + + + + + + + + + + + {{ validationContext.errors[0] }} + + + + +
+ + + + + + + + + + + + + + + + + {{ validationContext.errors[0] }} + + + + + + + + + + + + + + + + +
    @@ -99,14 +180,18 @@ - - - - - + + + + + + + - - {{ $t('signup') }} - + + + +
    + {{ $t('form.reset') }} + {{ $t('signup') }} +
    +
@@ -165,17 +255,37 @@ export default { }, password: '', - checkPassword: '', + passwordRepeat: '', passwordVisible: false, + passwordVisibleRepeat: false, submitted: false, showError: false, messageError: '', } }, methods: { + getValidationState({ dirty, validated, valid = null }) { + return dirty || validated ? valid : null + }, + resetForm() { + this.model = { + firstname: '', + lastname: '', + email: '', + } + this.password= '', + this.passwordRepeat= '', + + this.$nextTick(() => { + this.$refs.observer.reset() + }) + }, togglePasswordVisibility() { this.passwordVisible = !this.passwordVisible }, + togglePasswordRepeatVisibility() { + this.passwordVisibleRepeat = !this.passwordVisibleRepeat + }, async onSubmit() { const result = await loginAPI.create( this.model.email, @@ -209,10 +319,10 @@ export default { }, computed: { samePasswords() { - return this.password === this.checkPassword + return this.password === this.passwordRepeat }, passwordsFilled() { - return this.password !== '' && this.checkPassword !== '' + return this.password !== '' && this.passwordRepeat !== '' }, namesFilled() { return ( From 04fa6665902e3b3aec3f6838db1551d23f1f7ff5 Mon Sep 17 00:00:00 2001 From: ogerly Date: Sat, 12 Jun 2021 11:36:07 +0200 Subject: [PATCH 0434/1050] fix lint, fix test, change ids --- frontend/src/locales/de.json | 2 +- frontend/src/locales/en.json | 2 +- frontend/src/views/Pages/Login.vue | 9 +- frontend/src/views/Pages/Register.spec.js | 25 ++- frontend/src/views/Pages/Register.vue | 240 ++++++++++----------- frontend/src/views/Pages/ResetPassword.vue | 4 +- 6 files changed, 137 insertions(+), 145 deletions(-) diff --git a/frontend/src/locales/de.json b/frontend/src/locales/de.json index f47493aea..60015ef98 100644 --- a/frontend/src/locales/de.json +++ b/frontend/src/locales/de.json @@ -34,7 +34,7 @@ "email":"E-Mail", "email_repeat":"eMail wiederholen", "password":"Passwort", - "password_repeat":"Passwort wiederholen", + "passwordRepeat":"Passwort wiederholen", "password_old":"altes Passwort", "password_new":"neues Passwort", "password_new_repeat":"neues Passwort wiederholen", diff --git a/frontend/src/locales/en.json b/frontend/src/locales/en.json index dbb9b445c..5154aacc0 100644 --- a/frontend/src/locales/en.json +++ b/frontend/src/locales/en.json @@ -34,7 +34,7 @@ "email":"Email", "email_repeat":"Repeat Email", "password":"Password", - "password_repeat":"Repeat password", + "passwordRepeat":"Repeat password", "password_old":"Old password", "password_new":"New password", "password_new_repeat":"Repeat new password", diff --git a/frontend/src/views/Pages/Login.vue b/frontend/src/views/Pages/Login.vue index 23e5741f2..4619dddf2 100755 --- a/frontend/src/views/Pages/Login.vue +++ b/frontend/src/views/Pages/Login.vue @@ -34,7 +34,7 @@ { expect(wrapper.find('form').exists()).toBeTruthy() }) - it('has 3 text input fields', () => { - expect(wrapper.findAll('input[type="text"]').length).toBe(3) + it('has firstname input fields', () => { + expect(wrapper.find('#registerFirstname').exists()).toBeTruthy() + }) + it('has lastname input fields', () => { + expect(wrapper.find('#registerLastname').exists()).toBeTruthy() }) - it('has 2 password input fields', () => { - expect(wrapper.findAll('input[type="password"]').length).toBe(2) + it('has email input fields', () => { + expect(wrapper.find('#registerEmail').exists()).toBeTruthy() + }) + + it('has password input fields', () => { + expect(wrapper.find('#registerPassword').exists()).toBeTruthy() + }) + + it('has password repeat input fields', () => { + expect(wrapper.find('#registerPasswordRepeat').exists()).toBeTruthy() }) it('has 1 checkbox input fields', () => { - expect(wrapper.findAll('input[type="checkbox"]').length).toBe(1) + expect(wrapper.find('#registerCheckbox').exists()).toBeTruthy() }) it('has no submit button when not completely filled', () => { @@ -70,9 +81,9 @@ describe('Register', () => { }) it('shows a warning when no valid Email is entered', async () => { - wrapper.findAll('input[type="text"]').at(2).setValue('no_valid@Email') + wrapper.find('#registerEmail').setValue('no_valid@Email') await flushPromises() - await expect(wrapper.find('.invalid-feedback').text()).toEqual( + await expect(wrapper.find('#registerEmailLiveFeedback').text()).toEqual( 'The Email field must be a valid email', ) }) diff --git a/frontend/src/views/Pages/Register.vue b/frontend/src/views/Pages/Register.vue index f427c5a8c..7f475ebae 100755 --- a/frontend/src/views/Pages/Register.vue +++ b/frontend/src/views/Pages/Register.vue @@ -23,107 +23,101 @@
{{ $t('signup') }}
- - - - - + + - - + - + {{ validationContext.errors[0] }} - - - - - + - - + - - {{ validationContext.errors[0] }} - - - - - - - - - - - - + {{ validationContext.errors[0] }} - + + + + + + + {{ validationContext.errors[0] }} + + + +
- - - @@ -132,37 +126,34 @@ - + {{ validationContext.errors[0] }} - - - + + + + + + + + + + + - - - - - - - - -
    @@ -180,18 +171,13 @@ - - - - - - - + + + - - - -
    - {{ $t('form.reset') }} - {{ $t('signup') }} -
    - +
    + {{ $t('form.reset') }} + {{ $t('signup') }} +
@@ -247,15 +229,15 @@ export default { name: 'register', data() { return { - model: { + form: { firstname: '', lastname: '', email: '', agree: false, + password: '', + passwordRepeat: '', }, - password: '', - passwordRepeat: '', passwordVisible: false, passwordVisibleRepeat: false, submitted: false, @@ -268,14 +250,13 @@ export default { return dirty || validated ? valid : null }, resetForm() { - this.model = { + this.form = { firstname: '', lastname: '', email: '', - } - this.password= '', - this.passwordRepeat= '', - + password: '', + passwordRepeat: '', + } this.$nextTick(() => { this.$refs.observer.reset() }) @@ -288,20 +269,21 @@ export default { }, async onSubmit() { const result = await loginAPI.create( - this.model.email, - this.model.firstname, - this.model.lastname, - this.password, + this.form.email, + this.form.firstname, + this.form.lastname, + this.form.password, ) if (result.success) { this.$store.dispatch('login', { sessionId: result.result.data.session_id, - email: this.model.email, + email: this.form.email, }) - this.model.email = '' - this.model.firstname = '' - this.model.lastname = '' + this.form.email = '' + this.form.firstname = '' + this.form.lastname = '' this.password = '' + this.passwordVisibleRepeat = '' this.$router.push('/thx/register') } else { this.showError = true @@ -311,29 +293,29 @@ export default { closeAlert() { this.showError = false this.messageError = '' - this.model.email = '' - this.model.firstname = '' - this.model.lastname = '' - this.password = '' + this.form.email = '' + this.form.firstname = '' + this.form.lastname = '' + this.form.password = '' }, }, computed: { samePasswords() { - return this.password === this.passwordRepeat + return this.form.password === this.form.passwordRepeat }, passwordsFilled() { - return this.password !== '' && this.passwordRepeat !== '' + return this.form.password !== '' && this.form.passwordRepeat !== '' }, namesFilled() { return ( - this.model.firstname !== '' && - this.model.firstname.length > 2 && - this.model.lastname !== '' && - this.model.lastname.length > 1 + this.form.firstname !== '' && + this.form.firstname.length > 2 && + this.form.lastname !== '' && + this.form.lastname.length > 1 ) }, emailFilled() { - return this.model.email !== '' + return this.form.email !== '' }, rules() { return [ @@ -346,7 +328,7 @@ export default { passwordValidation() { const errors = [] for (const condition of this.rules) { - if (!condition.regex.test(this.password)) { + if (!condition.regex.test(this.form.password)) { errors.push(condition.message) } } diff --git a/frontend/src/views/Pages/ResetPassword.vue b/frontend/src/views/Pages/ResetPassword.vue index 99892612c..e8982b170 100644 --- a/frontend/src/views/Pages/ResetPassword.vue +++ b/frontend/src/views/Pages/ResetPassword.vue @@ -43,10 +43,10 @@ Date: Sat, 12 Jun 2021 15:15:25 +0200 Subject: [PATCH 0435/1050] remove base-input from ResetPassword.vue --- frontend/src/views/Pages/ResetPassword.vue | 85 +++++++++++++++------- 1 file changed, 58 insertions(+), 27 deletions(-) diff --git a/frontend/src/views/Pages/ResetPassword.vue b/frontend/src/views/Pages/ResetPassword.vue index e8982b170..45f3e681d 100644 --- a/frontend/src/views/Pages/ResetPassword.vue +++ b/frontend/src/views/Pages/ResetPassword.vue @@ -20,38 +20,63 @@ - + - + + + + + + + + + + + + + {{ validationContext.errors[0] }} + + + + + - - + + - -
    @@ -90,8 +115,11 @@ export default { name: 'reset', data() { return { + form: { + password: '', + passwordRepeat: '', + }, password: '', - checkPassword: '', passwordVisible: false, submitted: false, authenticated: false, @@ -100,13 +128,16 @@ export default { } }, methods: { + getValidationState({ dirty, validated, valid = null }) { + return dirty || validated ? valid : null + }, togglePasswordVisibility() { this.passwordVisible = !this.passwordVisible }, async onSubmit() { - const result = await loginAPI.changePassword(this.sessionId, this.email, this.password) + const result = await loginAPI.changePassword(this.sessionId, this.email, this.form.password) if (result.success) { - this.password = '' + this.form.password = '' /* this.$store.dispatch('login', { sessionId: result.result.data.session_id, @@ -132,10 +163,10 @@ export default { }, computed: { samePasswords() { - return this.password === this.checkPassword + return this.form.password === this.form.passwordRepeat }, passwordsFilled() { - return this.password !== '' && this.checkPassword !== '' + return this.form.password !== '' && this.form.passwordRepeat !== '' }, rules() { return [ @@ -148,7 +179,7 @@ export default { passwordValidation() { const errors = [] for (const condition of this.rules) { - if (!condition.regex.test(this.password)) { + if (!condition.regex.test(this.form.password)) { errors.push(condition.message) } } From 750cfb5f0014405e3a35294554600631eef211b1 Mon Sep 17 00:00:00 2001 From: ogerly Date: Sat, 12 Jun 2021 15:25:39 +0200 Subject: [PATCH 0436/1050] kill base-input from prject --- frontend/src/components/Inputs/BaseInput.vue | 187 ------------------ frontend/src/components/index.js | 2 - frontend/src/plugins/globalComponents.js | 2 - .../Pages/AccountOverview/GddAddWork2.vue | 24 +-- frontend/test/testSetup.js | 2 - 5 files changed, 12 insertions(+), 205 deletions(-) delete mode 100644 frontend/src/components/Inputs/BaseInput.vue diff --git a/frontend/src/components/Inputs/BaseInput.vue b/frontend/src/components/Inputs/BaseInput.vue deleted file mode 100644 index c43e0a265..000000000 --- a/frontend/src/components/Inputs/BaseInput.vue +++ /dev/null @@ -1,187 +0,0 @@ - - - diff --git a/frontend/src/components/index.js b/frontend/src/components/index.js index 6e3e3f01c..d35e88859 100755 --- a/frontend/src/components/index.js +++ b/frontend/src/components/index.js @@ -1,4 +1,3 @@ -import BaseInput from './Inputs/BaseInput.vue' import Badge from './Badge' import BaseTable from './BaseTable.vue' @@ -18,7 +17,6 @@ import SidebarPlugin from './SidebarPlugin' export { Badge, - BaseInput, Card, StatsCard, BaseTable, diff --git a/frontend/src/plugins/globalComponents.js b/frontend/src/plugins/globalComponents.js index bea56050b..1f3acef96 100755 --- a/frontend/src/plugins/globalComponents.js +++ b/frontend/src/plugins/globalComponents.js @@ -1,4 +1,3 @@ -import BaseInput from '@/components/Inputs/BaseInput.vue' import Card from '@/components/Cards/Card.vue' import StatsCard from '@/components/Cards/StatsCard.vue' import Badge from '@/components/Badge.vue' @@ -8,7 +7,6 @@ import { ValidationProvider, ValidationObserver } from 'vee-validate' const GlobalComponents = { install(Vue) { Vue.component(Badge.name, Badge) - Vue.component(BaseInput.name, BaseInput) Vue.component(BaseNav.name, BaseNav) Vue.component(Card.name, Card) Vue.component(StatsCard.name, StatsCard) diff --git a/frontend/src/views/Pages/AccountOverview/GddAddWork2.vue b/frontend/src/views/Pages/AccountOverview/GddAddWork2.vue index 419742874..d66eaf2df 100644 --- a/frontend/src/views/Pages/AccountOverview/GddAddWork2.vue +++ b/frontend/src/views/Pages/AccountOverview/GddAddWork2.vue @@ -4,32 +4,32 @@ - + - - + + - + - + - + @@ -147,32 +147,32 @@ export default { newWorkForm() { this.formular = ` - + - - + + - + - + - + ` diff --git a/frontend/test/testSetup.js b/frontend/test/testSetup.js index fb3ff5542..c2e59dbee 100644 --- a/frontend/test/testSetup.js +++ b/frontend/test/testSetup.js @@ -5,7 +5,6 @@ import { ValidationProvider, ValidationObserver, extend } from 'vee-validate' import * as rules from 'vee-validate/dist/rules' import { messages } from 'vee-validate/dist/locale/en.json' -import BaseInput from '@/components/Inputs/BaseInput.vue' import RegeneratorRuntime from 'regenerator-runtime' import Notifications from '@/components/NotificationPlugin' import SideBar from '@/components/SidebarPlugin' @@ -36,7 +35,6 @@ global.localVue.use(SideBar) global.localVue.use(VueRouter) global.localVue.use(VueQrcode) global.localVue.use(VueMoment) -global.localVue.component(BaseInput.name, BaseInput) global.localVue.component('validation-provider', ValidationProvider) global.localVue.component('validation-observer', ValidationObserver) global.localVue.component(StatsCard.name, StatsCard) From ce97d24547b5ffcac3e69628ef8ffc2fd8b40a62 Mon Sep 17 00:00:00 2001 From: ogerly Date: Sat, 12 Jun 2021 15:34:20 +0200 Subject: [PATCH 0437/1050] remove components Card and StatsCard --- frontend/src/components/Cards/Card.vue | 71 --------------------- frontend/src/components/Cards/StatsCard.vue | 58 ----------------- frontend/src/components/index.js | 4 -- frontend/src/plugins/globalComponents.js | 4 -- frontend/test/testSetup.js | 2 - 5 files changed, 139 deletions(-) delete mode 100644 frontend/src/components/Cards/Card.vue delete mode 100644 frontend/src/components/Cards/StatsCard.vue diff --git a/frontend/src/components/Cards/Card.vue b/frontend/src/components/Cards/Card.vue deleted file mode 100644 index 5ae76922a..000000000 --- a/frontend/src/components/Cards/Card.vue +++ /dev/null @@ -1,71 +0,0 @@ - - - diff --git a/frontend/src/components/Cards/StatsCard.vue b/frontend/src/components/Cards/StatsCard.vue deleted file mode 100644 index 8c5c364d0..000000000 --- a/frontend/src/components/Cards/StatsCard.vue +++ /dev/null @@ -1,58 +0,0 @@ - - - diff --git a/frontend/src/components/index.js b/frontend/src/components/index.js index d35e88859..60ff67e81 100755 --- a/frontend/src/components/index.js +++ b/frontend/src/components/index.js @@ -2,8 +2,6 @@ import Badge from './Badge' import BaseTable from './BaseTable.vue' -import Card from './Cards/Card.vue' -import StatsCard from './Cards/StatsCard.vue' import BaseNav from './Navbar/BaseNav' import NavbarToggleButton from './Navbar/NavbarToggleButton' @@ -17,8 +15,6 @@ import SidebarPlugin from './SidebarPlugin' export { Badge, - Card, - StatsCard, BaseTable, SidebarPlugin, BaseNav, diff --git a/frontend/src/plugins/globalComponents.js b/frontend/src/plugins/globalComponents.js index 1f3acef96..a16c021d9 100755 --- a/frontend/src/plugins/globalComponents.js +++ b/frontend/src/plugins/globalComponents.js @@ -1,5 +1,3 @@ -import Card from '@/components/Cards/Card.vue' -import StatsCard from '@/components/Cards/StatsCard.vue' import Badge from '@/components/Badge.vue' import BaseNav from '@/components/Navbar/BaseNav' import { ValidationProvider, ValidationObserver } from 'vee-validate' @@ -8,8 +6,6 @@ const GlobalComponents = { install(Vue) { Vue.component(Badge.name, Badge) Vue.component(BaseNav.name, BaseNav) - Vue.component(Card.name, Card) - Vue.component(StatsCard.name, StatsCard) Vue.component('validation-provider', ValidationProvider) Vue.component('validation-observer', ValidationObserver) }, diff --git a/frontend/test/testSetup.js b/frontend/test/testSetup.js index c2e59dbee..0bfd5566a 100644 --- a/frontend/test/testSetup.js +++ b/frontend/test/testSetup.js @@ -10,7 +10,6 @@ import Notifications from '@/components/NotificationPlugin' import SideBar from '@/components/SidebarPlugin' import VueRouter from 'vue-router' import VueQrcode from 'vue-qrcode' -import StatsCard from '@/components/Cards/StatsCard.vue' import VueMoment from 'vue-moment' @@ -37,6 +36,5 @@ global.localVue.use(VueQrcode) global.localVue.use(VueMoment) global.localVue.component('validation-provider', ValidationProvider) global.localVue.component('validation-observer', ValidationObserver) -global.localVue.component(StatsCard.name, StatsCard) global.localVue.directive('click-outside', clickOutside) global.localVue.directive('focus', focus) From 5397a9ab268e3151eef2a1f7b8842ca48e72cd6d Mon Sep 17 00:00:00 2001 From: ogerly Date: Sat, 12 Jun 2021 16:04:10 +0200 Subject: [PATCH 0438/1050] remove compoments Base-Table and Badges --- .../scss/core/badges/_badge-circle.scss | 17 ----- .../assets/scss/core/badges/_badge-dot.scss | 42 ------------ .../src/assets/scss/core/badges/_badge.scss | 55 ---------------- .../src/assets/scss/custom/_components.scss | 1 - frontend/src/components/Badge.vue | 45 ------------- frontend/src/components/BaseTable.vue | 66 ------------------- frontend/src/components/index.js | 6 -- frontend/src/plugins/globalComponents.js | 2 - 8 files changed, 234 deletions(-) delete mode 100644 frontend/src/assets/scss/core/badges/_badge-circle.scss delete mode 100644 frontend/src/assets/scss/core/badges/_badge-dot.scss delete mode 100644 frontend/src/assets/scss/core/badges/_badge.scss delete mode 100644 frontend/src/components/Badge.vue delete mode 100644 frontend/src/components/BaseTable.vue diff --git a/frontend/src/assets/scss/core/badges/_badge-circle.scss b/frontend/src/assets/scss/core/badges/_badge-circle.scss deleted file mode 100644 index 88a5d5e5d..000000000 --- a/frontend/src/assets/scss/core/badges/_badge-circle.scss +++ /dev/null @@ -1,17 +0,0 @@ -// -// Circle badge -// - - -// General styles - -.badge-circle { - text-align: center; - display: inline-flex; - align-items: center; - justify-content: center; - border-radius: 50%; - width: 2rem; - height: 2rem; - font-size: .875rem; -} diff --git a/frontend/src/assets/scss/core/badges/_badge-dot.scss b/frontend/src/assets/scss/core/badges/_badge-dot.scss deleted file mode 100644 index 1ed6ffa86..000000000 --- a/frontend/src/assets/scss/core/badges/_badge-dot.scss +++ /dev/null @@ -1,42 +0,0 @@ -// -// Dot badge -// - - -// General styles - -.badge-dot { - padding-left: 0; - padding-right: 0; - background: transparent; - font-weight: $font-weight-normal; - font-size: $font-size-sm; - text-transform: none; - - strong { - color: $gray-800; - } - - i { - display: inline-block; - vertical-align: middle; - width: .375rem; - height: .375rem; - border-radius: 50%; - margin-right: .375rem; - } - - &.badge-md { - i { - width: .5rem; - height: .5rem; - } - } - - &.badge-lg { - i { - width: .625rem; - height: .625rem; - } - } -} diff --git a/frontend/src/assets/scss/core/badges/_badge.scss b/frontend/src/assets/scss/core/badges/_badge.scss deleted file mode 100644 index b0d626a1e..000000000 --- a/frontend/src/assets/scss/core/badges/_badge.scss +++ /dev/null @@ -1,55 +0,0 @@ -// -// Badge -// - - -// General styles - -.badge { - text-transform: $badge-text-transfom; - - a { - color: $white; - } -} - - -// Size variations - -.badge-md { - padding: .65em 1em; -} - -.badge-lg { - padding: .85em 1.375em; -} - - -// Multiple inline badges - -.badge-inline { - margin-right: .625rem; - - + span { - top: 2px; - position: relative; - - > a { - text-decoration: underline; - } - } -} - - -// Badge spacing inside a btn with some text - -.btn { - .badge { - &:not(:first-child) { - margin-left: .5rem; - } - &:not(:last-child) { - margin-right: .5rem; - } - } -} diff --git a/frontend/src/assets/scss/custom/_components.scss b/frontend/src/assets/scss/custom/_components.scss index 8a71d41f6..8a18e63be 100644 --- a/frontend/src/assets/scss/custom/_components.scss +++ b/frontend/src/assets/scss/custom/_components.scss @@ -4,7 +4,6 @@ @import "custom/alert"; @import "custom/avatar"; -@import "custom/badge"; @import "custom/buttons"; @import "custom/card"; @import "custom/chart"; diff --git a/frontend/src/components/Badge.vue b/frontend/src/components/Badge.vue deleted file mode 100644 index d3cbf543d..000000000 --- a/frontend/src/components/Badge.vue +++ /dev/null @@ -1,45 +0,0 @@ - - - diff --git a/frontend/src/components/BaseTable.vue b/frontend/src/components/BaseTable.vue deleted file mode 100644 index 38ecc6039..000000000 --- a/frontend/src/components/BaseTable.vue +++ /dev/null @@ -1,66 +0,0 @@ - - - diff --git a/frontend/src/components/index.js b/frontend/src/components/index.js index 60ff67e81..bbc3e51d2 100755 --- a/frontend/src/components/index.js +++ b/frontend/src/components/index.js @@ -1,7 +1,3 @@ -import Badge from './Badge' - -import BaseTable from './BaseTable.vue' - import BaseNav from './Navbar/BaseNav' import NavbarToggleButton from './Navbar/NavbarToggleButton' @@ -14,8 +10,6 @@ import BaseSlider from './BaseSlider.vue' import SidebarPlugin from './SidebarPlugin' export { - Badge, - BaseTable, SidebarPlugin, BaseNav, NavbarToggleButton, diff --git a/frontend/src/plugins/globalComponents.js b/frontend/src/plugins/globalComponents.js index a16c021d9..aeb268d73 100755 --- a/frontend/src/plugins/globalComponents.js +++ b/frontend/src/plugins/globalComponents.js @@ -1,10 +1,8 @@ -import Badge from '@/components/Badge.vue' import BaseNav from '@/components/Navbar/BaseNav' import { ValidationProvider, ValidationObserver } from 'vee-validate' const GlobalComponents = { install(Vue) { - Vue.component(Badge.name, Badge) Vue.component(BaseNav.name, BaseNav) Vue.component('validation-provider', ValidationProvider) Vue.component('validation-observer', ValidationObserver) From 2057cdcae33609a644dd385d6fc527a2f3244be4 Mon Sep 17 00:00:00 2001 From: ogerly Date: Sat, 12 Jun 2021 16:10:44 +0200 Subject: [PATCH 0439/1050] remove compoments BaseSlider --- frontend/src/components/BaseSlider.vue | 92 -------------------------- frontend/src/components/index.js | 2 - 2 files changed, 94 deletions(-) delete mode 100644 frontend/src/components/BaseSlider.vue diff --git a/frontend/src/components/BaseSlider.vue b/frontend/src/components/BaseSlider.vue deleted file mode 100644 index 14180674a..000000000 --- a/frontend/src/components/BaseSlider.vue +++ /dev/null @@ -1,92 +0,0 @@ - - - diff --git a/frontend/src/components/index.js b/frontend/src/components/index.js index bbc3e51d2..23a00697d 100755 --- a/frontend/src/components/index.js +++ b/frontend/src/components/index.js @@ -5,7 +5,6 @@ import TabPane from './Tabs/Tab.vue' import Tabs from './Tabs/Tabs.vue' import Collapse from './Collapse/Collapse.vue' import CollapseItem from './Collapse/CollapseItem.vue' -import BaseSlider from './BaseSlider.vue' import SidebarPlugin from './SidebarPlugin' @@ -15,7 +14,6 @@ export { NavbarToggleButton, TabPane, Tabs, - BaseSlider, Collapse, CollapseItem, } From 159bff71df20a5c48f93389b2f990f7fe54e53b9 Mon Sep 17 00:00:00 2001 From: ogerly Date: Sat, 12 Jun 2021 16:45:25 +0200 Subject: [PATCH 0440/1050] remove components Charts, Notification, SearchUser, ButtonCheckbox, Button RadioGroup, Breadcrumb --- .../src/components/Breadcrumb/Breadcrumb.vue | 25 -- .../components/Breadcrumb/BreadcrumbItem.vue | 18 -- .../components/Breadcrumb/RouteBreadcrumb.vue | 40 --- frontend/src/components/ButtonCheckbox.vue | 38 --- frontend/src/components/ButtonRadioGroup.vue | 55 ---- frontend/src/components/Charts/BarChart.js | 30 --- frontend/src/components/Charts/LineChart.js | 29 --- frontend/src/components/Charts/config.js | 234 ------------------ .../components/Charts/globalOptionsMixin.js | 7 - .../src/components/Charts/optionHelpers.js | 10 - .../Charts/roundedCornersExtension.js | 126 ---------- frontend/src/components/CloseButton.spec.js | 28 --- frontend/src/components/CloseButton.vue | 36 --- .../NotificationPlugin/Notification.vue | 194 --------------- .../NotificationPlugin/Notifications.vue | 52 ---- .../components/NotificationPlugin/index.js | 66 ----- frontend/src/components/SearchUser.vue | 81 ------ .../src/components/SidebarPlugin/index.js | 2 - frontend/src/locales/de.json | 1 - frontend/src/locales/en.json | 1 - frontend/src/plugins/dashboard-plugin.js | 3 - frontend/test/testSetup.js | 2 - 22 files changed, 1078 deletions(-) delete mode 100644 frontend/src/components/Breadcrumb/Breadcrumb.vue delete mode 100644 frontend/src/components/Breadcrumb/BreadcrumbItem.vue delete mode 100644 frontend/src/components/Breadcrumb/RouteBreadcrumb.vue delete mode 100644 frontend/src/components/ButtonCheckbox.vue delete mode 100644 frontend/src/components/ButtonRadioGroup.vue delete mode 100644 frontend/src/components/Charts/BarChart.js delete mode 100644 frontend/src/components/Charts/LineChart.js delete mode 100644 frontend/src/components/Charts/config.js delete mode 100644 frontend/src/components/Charts/globalOptionsMixin.js delete mode 100644 frontend/src/components/Charts/optionHelpers.js delete mode 100644 frontend/src/components/Charts/roundedCornersExtension.js delete mode 100644 frontend/src/components/CloseButton.spec.js delete mode 100755 frontend/src/components/CloseButton.vue delete mode 100644 frontend/src/components/NotificationPlugin/Notification.vue delete mode 100644 frontend/src/components/NotificationPlugin/Notifications.vue delete mode 100644 frontend/src/components/NotificationPlugin/index.js delete mode 100644 frontend/src/components/SearchUser.vue diff --git a/frontend/src/components/Breadcrumb/Breadcrumb.vue b/frontend/src/components/Breadcrumb/Breadcrumb.vue deleted file mode 100644 index 795816884..000000000 --- a/frontend/src/components/Breadcrumb/Breadcrumb.vue +++ /dev/null @@ -1,25 +0,0 @@ - - - diff --git a/frontend/src/components/Breadcrumb/BreadcrumbItem.vue b/frontend/src/components/Breadcrumb/BreadcrumbItem.vue deleted file mode 100644 index 2bf5a8c6c..000000000 --- a/frontend/src/components/Breadcrumb/BreadcrumbItem.vue +++ /dev/null @@ -1,18 +0,0 @@ - - - diff --git a/frontend/src/components/Breadcrumb/RouteBreadcrumb.vue b/frontend/src/components/Breadcrumb/RouteBreadcrumb.vue deleted file mode 100644 index bd378f312..000000000 --- a/frontend/src/components/Breadcrumb/RouteBreadcrumb.vue +++ /dev/null @@ -1,40 +0,0 @@ - - - - - diff --git a/frontend/src/components/ButtonCheckbox.vue b/frontend/src/components/ButtonCheckbox.vue deleted file mode 100644 index e408c69a2..000000000 --- a/frontend/src/components/ButtonCheckbox.vue +++ /dev/null @@ -1,38 +0,0 @@ - - - diff --git a/frontend/src/components/ButtonRadioGroup.vue b/frontend/src/components/ButtonRadioGroup.vue deleted file mode 100644 index c757a50d8..000000000 --- a/frontend/src/components/ButtonRadioGroup.vue +++ /dev/null @@ -1,55 +0,0 @@ - - - diff --git a/frontend/src/components/Charts/BarChart.js b/frontend/src/components/Charts/BarChart.js deleted file mode 100644 index 057c31163..000000000 --- a/frontend/src/components/Charts/BarChart.js +++ /dev/null @@ -1,30 +0,0 @@ -import { Bar, mixins } from 'vue-chartjs' -import globalOptionsMixin from '@/components/Charts/globalOptionsMixin' - -export default { - name: 'bar-chart', - extends: Bar, - mixins: [mixins.reactiveProp, globalOptionsMixin], - props: { - extraOptions: { - type: Object, - default: () => ({}), - }, - }, - data() { - return { - ctx: null, - } - }, - mounted() { - this.$watch( - 'chartData', - (newVal, oldVal) => { - if (!oldVal) { - this.renderChart(this.chartData, this.extraOptions) - } - }, - { immediate: true }, - ) - }, -} diff --git a/frontend/src/components/Charts/LineChart.js b/frontend/src/components/Charts/LineChart.js deleted file mode 100644 index 81452f14d..000000000 --- a/frontend/src/components/Charts/LineChart.js +++ /dev/null @@ -1,29 +0,0 @@ -import { Line, mixins } from 'vue-chartjs' -import globalOptionsMixin from '@/components/Charts/globalOptionsMixin' -export default { - name: 'line-chart', - extends: Line, - mixins: [mixins.reactiveProp, globalOptionsMixin], - props: { - extraOptions: { - type: Object, - default: () => ({}), - }, - }, - data() { - return { - ctx: null, - } - }, - mounted() { - this.$watch( - 'chartData', - (newVal, oldVal) => { - if (!oldVal) { - this.renderChart(this.chartData, this.extraOptions) - } - }, - { immediate: true }, - ) - }, -} diff --git a/frontend/src/components/Charts/config.js b/frontend/src/components/Charts/config.js deleted file mode 100644 index 694a036b5..000000000 --- a/frontend/src/components/Charts/config.js +++ /dev/null @@ -1,234 +0,0 @@ -import { parseOptions } from '@/components/Charts/optionHelpers' -import Chart from 'chart.js' - -export const Charts = { - mode: 'light', // (themeMode) ? themeMode : 'light'; - fonts: { - base: 'Open Sans', - }, - colors: { - gray: { - 100: '#f6f9fc', - 200: '#e9ecef', - 300: '#dee2e6', - 400: '#ced4da', - 500: '#adb5bd', - 600: '#8898aa', - 700: '#525f7f', - 800: '#32325d', - 900: '#212529', - }, - theme: { - default: '#172b4d', - primary: '#5e72e4', - secondary: '#f4f5f7', - info: '#11cdef', - success: '#2dce89', - danger: '#f5365c', - warning: '#fb6340', - }, - black: '#12263F', - white: '#FFFFFF', - transparent: 'transparent', - }, -} - -function chartOptions() { - const { colors, mode, fonts } = Charts - // Options - const options = { - defaults: { - global: { - responsive: true, - maintainAspectRatio: false, - defaultColor: mode === 'dark' ? colors.gray[700] : colors.gray[600], - defaultFontColor: mode === 'dark' ? colors.gray[700] : colors.gray[600], - defaultFontFamily: fonts.base, - defaultFontSize: 13, - layout: { - padding: 0, - }, - legend: { - display: false, - position: 'bottom', - labels: { - usePointStyle: true, - padding: 16, - }, - }, - elements: { - point: { - radius: 0, - backgroundColor: colors.theme.primary, - }, - line: { - tension: 0.4, - borderWidth: 4, - borderColor: colors.theme.primary, - backgroundColor: colors.transparent, - borderCapStyle: 'rounded', - }, - rectangle: { - backgroundColor: colors.theme.warning, - }, - arc: { - backgroundColor: colors.theme.primary, - borderColor: mode === 'dark' ? colors.gray[800] : colors.white, - borderWidth: 4, - }, - }, - tooltips: { - enabled: true, - mode: 'index', - intersect: false, - }, - }, - pie: { - tooltips: { - mode: 'point', - }, - }, - doughnut: { - tooltips: { - mode: 'point', - }, - cutoutPercentage: 83, - legendCallback: function (chart) { - const data = chart.data - let content = '' - - data.labels.forEach(function (label, index) { - const bgColor = data.datasets[0].backgroundColor[index] - - content += '' - content += - '' - content += label - content += '' - }) - - return content - }, - }, - }, - } - - // yAxes - Chart.scaleService.updateScaleDefaults('linear', { - gridLines: { - borderDash: [2], - borderDashOffset: [2], - color: mode === 'dark' ? colors.gray[900] : colors.gray[200], - drawBorder: false, - drawTicks: true, - zeroLineWidth: 1, - zeroLineColor: mode === 'dark' ? colors.gray[900] : colors.gray[200], - zeroLineBorderDash: [2], - zeroLineBorderDashOffset: [2], - }, - ticks: { - beginAtZero: true, - padding: 10, - callback: function (value) { - if (!(value % 10)) { - return value - } - }, - }, - }) - - // xAxes - Chart.scaleService.updateScaleDefaults('category', { - gridLines: { - drawBorder: false, - drawOnChartArea: false, - drawTicks: false, - lineWidth: 1, - zeroLineWidth: 1, - }, - ticks: { - padding: 20, - }, - maxBarThickness: 10, - }) - - return options -} - -let initialized = false - -export function initGlobalOptions() { - if (initialized) { - return - } - parseOptions(Chart, chartOptions()) - initialized = true -} - -export const basicOptions = { - maintainAspectRatio: false, - legend: { - display: false, - }, - responsive: true, -} -export const blueChartOptions = { - scales: { - yAxes: [ - { - gridLines: { - color: Charts.colors.gray[700], - zeroLineColor: Charts.colors.gray[700], - }, - }, - ], - }, -} - -export const lineChartOptionsBlue = { - ...basicOptions, - tooltips: { - backgroundColor: '#f5f5f5', - titleFontColor: '#333', - bodyFontColor: '#666', - bodySpacing: 4, - xPadding: 12, - mode: 'nearest', - intersect: 0, - position: 'nearest', - }, - responsive: true, - scales: { - yAxes: [ - { - barPercentage: 1.6, - gridLines: { - drawBorder: false, - color: 'rgba(29,140,248,0.0)', - zeroLineColor: 'transparent', - }, - ticks: { - suggestedMin: 60, - suggestedMax: 125, - padding: 20, - fontColor: '#9e9e9e', - }, - }, - ], - - xAxes: [ - { - barPercentage: 1.6, - gridLines: { - drawBorder: false, - color: 'rgba(29,140,248,0.1)', - zeroLineColor: 'transparent', - }, - ticks: { - padding: 20, - fontColor: '#9e9e9e', - }, - }, - ], - }, -} diff --git a/frontend/src/components/Charts/globalOptionsMixin.js b/frontend/src/components/Charts/globalOptionsMixin.js deleted file mode 100644 index 323ac94e4..000000000 --- a/frontend/src/components/Charts/globalOptionsMixin.js +++ /dev/null @@ -1,7 +0,0 @@ -import { initGlobalOptions } from '@/components/Charts/config' -import './roundedCornersExtension' -export default { - mounted() { - initGlobalOptions() - }, -} diff --git a/frontend/src/components/Charts/optionHelpers.js b/frontend/src/components/Charts/optionHelpers.js deleted file mode 100644 index 5b4630b73..000000000 --- a/frontend/src/components/Charts/optionHelpers.js +++ /dev/null @@ -1,10 +0,0 @@ -// Parse global options -export function parseOptions(parent, options) { - for (const item in options) { - if (typeof options[item] !== 'object') { - parent[item] = options[item] - } else { - parseOptions(parent[item], options[item]) - } - } -} diff --git a/frontend/src/components/Charts/roundedCornersExtension.js b/frontend/src/components/Charts/roundedCornersExtension.js deleted file mode 100644 index 2ef8fd1d2..000000000 --- a/frontend/src/components/Charts/roundedCornersExtension.js +++ /dev/null @@ -1,126 +0,0 @@ -// -// Chart extension for making the bars rounded -// Code from: https://codepen.io/jedtrow/full/ygRYgo -// -import Chart from 'chart.js' -Chart.elements.Rectangle.prototype.draw = function () { - const ctx = this._chart.ctx - const vm = this._view - let left, right, top, bottom, signX, signY, borderSkipped - let borderWidth = vm.borderWidth - // Set Radius Here - // If radius is large enough to cause drawing errors a max radius is imposed - const cornerRadius = 6 - - if (!vm.horizontal) { - // bar - left = vm.x - vm.width / 2 - right = vm.x + vm.width / 2 - top = vm.y - bottom = vm.base - signX = 1 - signY = bottom > top ? 1 : -1 - borderSkipped = vm.borderSkipped || 'bottom' - } else { - // horizontal bar - left = vm.base - right = vm.x - top = vm.y - vm.height / 2 - bottom = vm.y + vm.height / 2 - signX = right > left ? 1 : -1 - signY = 1 - borderSkipped = vm.borderSkipped || 'left' - } - - // Canvas doesn't allow us to stroke inside the width so we can - // adjust the sizes to fit if we're setting a stroke on the line - if (borderWidth) { - // borderWidth shold be less than bar width and bar height. - const barSize = Math.min(Math.abs(left - right), Math.abs(top - bottom)) - borderWidth = borderWidth > barSize ? barSize : borderWidth - const halfStroke = borderWidth / 2 - // Adjust borderWidth when bar top position is near vm.base(zero). - const borderLeft = left + (borderSkipped !== 'left' ? halfStroke * signX : 0) - const borderRight = right + (borderSkipped !== 'right' ? -halfStroke * signX : 0) - const borderTop = top + (borderSkipped !== 'top' ? halfStroke * signY : 0) - const borderBottom = bottom + (borderSkipped !== 'bottom' ? -halfStroke * signY : 0) - // not become a vertical line? - if (borderLeft !== borderRight) { - top = borderTop - bottom = borderBottom - } - // not become a horizontal line? - if (borderTop !== borderBottom) { - left = borderLeft - right = borderRight - } - } - - ctx.beginPath() - ctx.fillStyle = vm.backgroundColor - ctx.strokeStyle = vm.borderColor - ctx.lineWidth = borderWidth - - // Corner points, from bottom-left to bottom-right clockwise - // | 1 2 | - // | 0 3 | - const corners = [ - [left, bottom], - [left, top], - [right, top], - [right, bottom], - ] - - // Find first (starting) corner with fallback to 'bottom' - const borders = ['bottom', 'left', 'top', 'right'] - let startCorner = borders.indexOf(borderSkipped, 0) - if (startCorner === -1) { - startCorner = 0 - } - - function cornerAt(index) { - return corners[(startCorner + index) % 4] - } - - // Draw rectangle from 'startCorner' - let corner = cornerAt(0) - ctx.moveTo(corner[0], corner[1]) - - for (let i = 1; i < 4; i++) { - corner = cornerAt(i) - let nextCornerId = i + 1 - if (nextCornerId === 4) { - nextCornerId = 0 - } - - const width = corners[2][0] - corners[1][0] - const height = corners[0][1] - corners[1][1] - const x = corners[1][0] - const y = corners[1][1] - - let radius = cornerRadius - - // Fix radius being too large - if (radius > height / 2) { - radius = height / 2 - } - if (radius > width / 2) { - radius = width / 2 - } - - ctx.moveTo(x + radius, y) - ctx.lineTo(x + width - radius, y) - ctx.quadraticCurveTo(x + width, y, x + width, y + radius) - ctx.lineTo(x + width, y + height - radius) - ctx.quadraticCurveTo(x + width, y + height, x + width - radius, y + height) - ctx.lineTo(x + radius, y + height) - ctx.quadraticCurveTo(x, y + height, x, y + height - radius) - ctx.lineTo(x, y + radius) - ctx.quadraticCurveTo(x, y, x + radius, y) - } - - ctx.fill() - if (borderWidth) { - ctx.stroke() - } -} diff --git a/frontend/src/components/CloseButton.spec.js b/frontend/src/components/CloseButton.spec.js deleted file mode 100644 index b92422df8..000000000 --- a/frontend/src/components/CloseButton.spec.js +++ /dev/null @@ -1,28 +0,0 @@ -import { mount } from '@vue/test-utils' - -import CloseButton from './CloseButton' - -const localVue = global.localVue - -describe('CloseButton', () => { - let wrapper - const propsData = { - target: 'Target', - expanded: false, - } - - const Wrapper = () => { - return mount(CloseButton, { localVue, propsData }) - } - - describe('mount', () => { - beforeEach(() => { - wrapper = Wrapper() - }) - - it('emmits click event', () => { - wrapper.find('.navbar-toggler').trigger('click') - expect(wrapper.emitted('click')).toBeTruthy() - }) - }) -}) diff --git a/frontend/src/components/CloseButton.vue b/frontend/src/components/CloseButton.vue deleted file mode 100755 index 8c61f4f60..000000000 --- a/frontend/src/components/CloseButton.vue +++ /dev/null @@ -1,36 +0,0 @@ - - - diff --git a/frontend/src/components/NotificationPlugin/Notification.vue b/frontend/src/components/NotificationPlugin/Notification.vue deleted file mode 100644 index e36985036..000000000 --- a/frontend/src/components/NotificationPlugin/Notification.vue +++ /dev/null @@ -1,194 +0,0 @@ - - - diff --git a/frontend/src/components/NotificationPlugin/Notifications.vue b/frontend/src/components/NotificationPlugin/Notifications.vue deleted file mode 100644 index f180a7f37..000000000 --- a/frontend/src/components/NotificationPlugin/Notifications.vue +++ /dev/null @@ -1,52 +0,0 @@ - - diff --git a/frontend/src/components/NotificationPlugin/index.js b/frontend/src/components/NotificationPlugin/index.js deleted file mode 100644 index 5b6bbe67b..000000000 --- a/frontend/src/components/NotificationPlugin/index.js +++ /dev/null @@ -1,66 +0,0 @@ -import Notifications from './Notifications.vue' - -const NotificationStore = { - state: [], // here the notifications will be added - settings: { - overlap: false, - verticalAlign: 'top', - horizontalAlign: 'right', - type: 'info', - timeout: 5000, - closeOnClick: true, - showClose: true, - }, - setOptions(options) { - this.settings = Object.assign(this.settings, options) - }, - removeNotification(timestamp) { - const indexToDelete = this.state.findIndex((n) => n.timestamp === timestamp) - if (indexToDelete !== -1) { - this.state.splice(indexToDelete, 1) - } - }, - addNotification(notification) { - if (typeof notification === 'string' || notification instanceof String) { - notification = { message: notification } - } - notification.timestamp = new Date() - notification.timestamp.setMilliseconds( - notification.timestamp.getMilliseconds() + this.state.length, - ) - notification = Object.assign({}, this.settings, notification) - this.state.push(notification) - }, - notify(notification) { - if (Array.isArray(notification)) { - notification.forEach((notificationInstance) => { - this.addNotification(notificationInstance) - }) - } else { - this.addNotification(notification) - } - }, -} - -const NotificationsPlugin = { - install(Vue, options) { - const app = new Vue({ - data: { - notificationStore: NotificationStore, - }, - methods: { - notify(notification) { - this.notificationStore.notify(notification) - }, - }, - }) - Vue.prototype.$notify = app.notify - Vue.prototype.$notifications = app.notificationStore - Vue.component('Notifications', Notifications) - if (options) { - NotificationStore.setOptions(options) - } - }, -} - -export default NotificationsPlugin diff --git a/frontend/src/components/SearchUser.vue b/frontend/src/components/SearchUser.vue deleted file mode 100644 index dd3fe34a6..000000000 --- a/frontend/src/components/SearchUser.vue +++ /dev/null @@ -1,81 +0,0 @@ - - diff --git a/frontend/src/components/SidebarPlugin/index.js b/frontend/src/components/SidebarPlugin/index.js index ab59a9595..4723f9952 100755 --- a/frontend/src/components/SidebarPlugin/index.js +++ b/frontend/src/components/SidebarPlugin/index.js @@ -10,12 +10,10 @@ const SidebarStore = { }, toggleMinimize() { document.body.classList.toggle('sidebar-mini') - // we simulate the window Resize so the charts will get updated in realtime. const simulateWindowResize = setInterval(() => { window.dispatchEvent(new Event('resize')) }, 180) - // we stop the simulation of Window Resize after the animations are completed setTimeout(() => { clearInterval(simulateWindowResize) }, 1000) diff --git a/frontend/src/locales/de.json b/frontend/src/locales/de.json index 60015ef98..0fcda6c30 100644 --- a/frontend/src/locales/de.json +++ b/frontend/src/locales/de.json @@ -106,7 +106,6 @@ }, "profil": { "activity": { - "chart":"Gemeinschaftsstunden Chart", "new":"Neue Gemeinschaftsstunden eintragen", "list":"Meine Gemeinschaftsstunden Liste" } diff --git a/frontend/src/locales/en.json b/frontend/src/locales/en.json index 5154aacc0..1ea67c41d 100644 --- a/frontend/src/locales/en.json +++ b/frontend/src/locales/en.json @@ -107,7 +107,6 @@ "profil": { "transactions":"transactions", "activity": { - "chart":"Community Hours Chart", "new":"Register new community hours", "list":"My Community Hours List" } diff --git a/frontend/src/plugins/dashboard-plugin.js b/frontend/src/plugins/dashboard-plugin.js index 269fa7a84..cd2e00aa5 100755 --- a/frontend/src/plugins/dashboard-plugin.js +++ b/frontend/src/plugins/dashboard-plugin.js @@ -1,7 +1,5 @@ // Polyfills for js features used in the Dashboard but not supported in some browsers (mainly IE) import '@/polyfills' -// Notifications plugin. Used on Notifications page -import Notifications from '@/components/NotificationPlugin' // Validation plugin used to validate forms import { configure, extend, localize } from 'vee-validate' // A plugin file where you could register global components used across the app @@ -48,7 +46,6 @@ export default { Vue.use(GlobalComponents) Vue.use(GlobalDirectives) Vue.use(SideBar) - Vue.use(Notifications) Vue.use(BootstrapVue) Vue.use(IconsPlugin) Vue.use(VueGoodTablePlugin) diff --git a/frontend/test/testSetup.js b/frontend/test/testSetup.js index 0bfd5566a..5fca6b8e2 100644 --- a/frontend/test/testSetup.js +++ b/frontend/test/testSetup.js @@ -6,7 +6,6 @@ import * as rules from 'vee-validate/dist/rules' import { messages } from 'vee-validate/dist/locale/en.json' import RegeneratorRuntime from 'regenerator-runtime' -import Notifications from '@/components/NotificationPlugin' import SideBar from '@/components/SidebarPlugin' import VueRouter from 'vue-router' import VueQrcode from 'vue-qrcode' @@ -29,7 +28,6 @@ global.localVue.use(BootstrapVue) global.localVue.use(Vuex) global.localVue.use(IconsPlugin) global.localVue.use(RegeneratorRuntime) -global.localVue.use(Notifications) global.localVue.use(SideBar) global.localVue.use(VueRouter) global.localVue.use(VueQrcode) From 0312b4e62edf457422515b1a016f1a5df06d1055 Mon Sep 17 00:00:00 2001 From: ogerly Date: Sat, 12 Jun 2021 16:46:40 +0200 Subject: [PATCH 0441/1050] fix lint --- frontend/src/components/index.js | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/frontend/src/components/index.js b/frontend/src/components/index.js index 23a00697d..57d9d6a68 100755 --- a/frontend/src/components/index.js +++ b/frontend/src/components/index.js @@ -8,12 +8,4 @@ import CollapseItem from './Collapse/CollapseItem.vue' import SidebarPlugin from './SidebarPlugin' -export { - SidebarPlugin, - BaseNav, - NavbarToggleButton, - TabPane, - Tabs, - Collapse, - CollapseItem, -} +export { SidebarPlugin, BaseNav, NavbarToggleButton, TabPane, Tabs, Collapse, CollapseItem } From 38be14ecef02d75fbd856a4d8128d4aa02782877 Mon Sep 17 00:00:00 2001 From: ogerly Date: Sun, 13 Jun 2021 05:09:47 +0200 Subject: [PATCH 0442/1050] code cleaned up and unnecessary comments removed --- frontend/src/plugins/dashboard-plugin.js | 19 ++++--------------- .../Pages/AccountOverview/GddAddWork2.vue | 4 ---- 2 files changed, 4 insertions(+), 19 deletions(-) diff --git a/frontend/src/plugins/dashboard-plugin.js b/frontend/src/plugins/dashboard-plugin.js index cd2e00aa5..fa5b2ebf9 100755 --- a/frontend/src/plugins/dashboard-plugin.js +++ b/frontend/src/plugins/dashboard-plugin.js @@ -1,15 +1,9 @@ -// Polyfills for js features used in the Dashboard but not supported in some browsers (mainly IE) import '@/polyfills' -// Validation plugin used to validate forms import { configure, extend, localize } from 'vee-validate' -// A plugin file where you could register global components used across the app import GlobalComponents from './globalComponents' -// A plugin file where you could register global directives import GlobalDirectives from './globalDirectives' -// Sidebar on the right. Used as a local plugin in DashboardLayout.vue import SideBar from '@/components/SidebarPlugin' -// asset imports import '@/assets/scss/argon.scss' import '@/assets/vendor/nucleo/css/nucleo.css' import * as rules from 'vee-validate/dist/rules' @@ -18,19 +12,14 @@ import en, { messages } from 'vee-validate/dist/locale/en.json' import VueQrcodeReader from 'vue-qrcode-reader' import VueQrcode from 'vue-qrcode' -import VueFlatPickr from 'vue-flatpickr-component' - -import VueGoodTablePlugin from 'vue-good-table' -// import the styles -import 'vue-good-table/dist/vue-good-table.css' +import FlatPickr from 'vue-flatpickr-component' +import 'flatpickr/dist/flatpickr.css' import VueMoment from 'vue-moment' import Loading from 'vue-loading-overlay' -// import the styles import 'vue-loading-overlay/dist/vue-loading.css' -// vue-bootstrap import { BootstrapVue, IconsPlugin } from 'bootstrap-vue' localize('en', en) @@ -41,6 +30,7 @@ Object.keys(rules).forEach((rule) => { message: messages[rule], // assign message }) }) + export default { install(Vue) { Vue.use(GlobalComponents) @@ -48,11 +38,10 @@ export default { Vue.use(SideBar) Vue.use(BootstrapVue) Vue.use(IconsPlugin) - Vue.use(VueGoodTablePlugin) Vue.use(VueMoment) Vue.use(VueQrcodeReader) Vue.use(VueQrcode) - Vue.use(VueFlatPickr) + Vue.use(FlatPickr) Vue.use(Loading) configure({ classes: { diff --git a/frontend/src/views/Pages/AccountOverview/GddAddWork2.vue b/frontend/src/views/Pages/AccountOverview/GddAddWork2.vue index d66eaf2df..70f56f0e6 100644 --- a/frontend/src/views/Pages/AccountOverview/GddAddWork2.vue +++ b/frontend/src/views/Pages/AccountOverview/GddAddWork2.vue @@ -57,12 +57,8 @@ - diff --git a/frontend/src/components/Tabs/Tabs.vue b/frontend/src/components/Tabs/Tabs.vue deleted file mode 100644 index 211c8d0cd..000000000 --- a/frontend/src/components/Tabs/Tabs.vue +++ /dev/null @@ -1,155 +0,0 @@ - - - - - diff --git a/frontend/src/components/index.js b/frontend/src/components/index.js index 57d9d6a68..7e8285d0f 100755 --- a/frontend/src/components/index.js +++ b/frontend/src/components/index.js @@ -1,11 +1,9 @@ import BaseNav from './Navbar/BaseNav' import NavbarToggleButton from './Navbar/NavbarToggleButton' -import TabPane from './Tabs/Tab.vue' -import Tabs from './Tabs/Tabs.vue' import Collapse from './Collapse/Collapse.vue' import CollapseItem from './Collapse/CollapseItem.vue' import SidebarPlugin from './SidebarPlugin' -export { SidebarPlugin, BaseNav, NavbarToggleButton, TabPane, Tabs, Collapse, CollapseItem } +export { SidebarPlugin, BaseNav, NavbarToggleButton, Collapse, CollapseItem } From c5525dfe95bbe576e9336ffa7323770f56a2f826 Mon Sep 17 00:00:00 2001 From: ogerly Date: Sun, 13 Jun 2021 06:55:58 +0200 Subject: [PATCH 0444/1050] component BaseNav, DashboardNavbar.vue removed, --- frontend/src/components/Navbar/BaseNav.vue | 120 ------------------ frontend/src/components/index.js | 3 +- frontend/src/plugins/globalComponents.js | 2 - .../src/views/Layout/DashboardLayout_gdd.vue | 3 - frontend/src/views/Layout/DashboardNavbar.vue | 48 ------- 5 files changed, 1 insertion(+), 175 deletions(-) delete mode 100644 frontend/src/components/Navbar/BaseNav.vue delete mode 100755 frontend/src/views/Layout/DashboardNavbar.vue diff --git a/frontend/src/components/Navbar/BaseNav.vue b/frontend/src/components/Navbar/BaseNav.vue deleted file mode 100644 index 778f550fc..000000000 --- a/frontend/src/components/Navbar/BaseNav.vue +++ /dev/null @@ -1,120 +0,0 @@ - - - diff --git a/frontend/src/components/index.js b/frontend/src/components/index.js index 7e8285d0f..155b060de 100755 --- a/frontend/src/components/index.js +++ b/frontend/src/components/index.js @@ -1,4 +1,3 @@ -import BaseNav from './Navbar/BaseNav' import NavbarToggleButton from './Navbar/NavbarToggleButton' import Collapse from './Collapse/Collapse.vue' @@ -6,4 +5,4 @@ import CollapseItem from './Collapse/CollapseItem.vue' import SidebarPlugin from './SidebarPlugin' -export { SidebarPlugin, BaseNav, NavbarToggleButton, Collapse, CollapseItem } +export { SidebarPlugin, NavbarToggleButton, Collapse, CollapseItem } diff --git a/frontend/src/plugins/globalComponents.js b/frontend/src/plugins/globalComponents.js index aeb268d73..b358e274c 100755 --- a/frontend/src/plugins/globalComponents.js +++ b/frontend/src/plugins/globalComponents.js @@ -1,9 +1,7 @@ -import BaseNav from '@/components/Navbar/BaseNav' import { ValidationProvider, ValidationObserver } from 'vee-validate' const GlobalComponents = { install(Vue) { - Vue.component(BaseNav.name, BaseNav) Vue.component('validation-provider', ValidationProvider) Vue.component('validation-observer', ValidationObserver) }, diff --git a/frontend/src/views/Layout/DashboardLayout_gdd.vue b/frontend/src/views/Layout/DashboardLayout_gdd.vue index 70a35a40a..68f3db88e 100755 --- a/frontend/src/views/Layout/DashboardLayout_gdd.vue +++ b/frontend/src/views/Layout/DashboardLayout_gdd.vue @@ -23,7 +23,6 @@
    -
    @@ -48,7 +47,6 @@ import PerfectScrollbar from 'perfect-scrollbar' import 'perfect-scrollbar/css/perfect-scrollbar.css' import loginAPI from '../../apis/loginAPI' -import DashboardNavbar from './DashboardNavbar.vue' import ContentFooter from './ContentFooter.vue' // import DashboardContent from './Content.vue'; import { FadeTransition } from 'vue2-transitions' @@ -72,7 +70,6 @@ function initScrollbar(className) { export default { components: { - DashboardNavbar, ContentFooter, // DashboardContent, FadeTransition, diff --git a/frontend/src/views/Layout/DashboardNavbar.vue b/frontend/src/views/Layout/DashboardNavbar.vue deleted file mode 100755 index 4cbcb3ca5..000000000 --- a/frontend/src/views/Layout/DashboardNavbar.vue +++ /dev/null @@ -1,48 +0,0 @@ - - - From af20dfd5846f265051a1315e6a218d9da8dae5b9 Mon Sep 17 00:00:00 2001 From: ogerly Date: Sun, 13 Jun 2021 12:45:09 +0200 Subject: [PATCH 0445/1050] remove GddStatus.vue, show balance in sidebar and navbar --- .../components/SidebarPlugin/SideBar.spec.js | 4 +- .../src/components/SidebarPlugin/SideBar.vue | 23 ++++---- .../src/views/Pages/AccountOverview.spec.js | 4 -- frontend/src/views/Pages/AccountOverview.vue | 2 - .../Pages/AccountOverview/GddStatus.spec.js | 53 ------------------- .../views/Pages/AccountOverview/GddStatus.vue | 30 ----------- 6 files changed, 15 insertions(+), 101 deletions(-) delete mode 100644 frontend/src/views/Pages/AccountOverview/GddStatus.spec.js delete mode 100644 frontend/src/views/Pages/AccountOverview/GddStatus.vue diff --git a/frontend/src/components/SidebarPlugin/SideBar.spec.js b/frontend/src/components/SidebarPlugin/SideBar.spec.js index 9f9ce8a8f..4612f6f9e 100644 --- a/frontend/src/components/SidebarPlugin/SideBar.spec.js +++ b/frontend/src/components/SidebarPlugin/SideBar.spec.js @@ -43,7 +43,7 @@ describe('SideBar', () => { describe('balance', () => { it('shows em-dash as balance while loading', () => { - expect(wrapper.find('div.row.text-center').text()).toBe('— GDD') + expect(wrapper.find('.gddBalance').text()).toBe('— GDD') }) it('shows the when loaded', async () => { @@ -51,7 +51,7 @@ describe('SideBar', () => { pending: false, }) await wrapper.vm.$nextTick() - expect(wrapper.find('div.row.text-center').text()).toBe('1234.56 GDD') + expect(wrapper.find('.gddBalance').text()).toBe('1234.56 GDD') }) }) diff --git a/frontend/src/components/SidebarPlugin/SideBar.vue b/frontend/src/components/SidebarPlugin/SideBar.vue index 60d835a1a..138c802e9 100755 --- a/frontend/src/components/SidebarPlugin/SideBar.vue +++ b/frontend/src/components/SidebarPlugin/SideBar.vue @@ -4,21 +4,24 @@ id="sidenav-main" >
    - - - From 18b587a4e4da6d1d99360844a2997faf89ebb2c8 Mon Sep 17 00:00:00 2001 From: Moriz Wahl Date: Sun, 13 Jun 2021 18:34:53 +0200 Subject: [PATCH 0446/1050] included gdd status again. --- .github/workflows/test.yml | 2 +- frontend/src/plugins/dashboard-plugin.js | 6 +-- .../src/views/Pages/AccountOverview.spec.js | 4 ++ frontend/src/views/Pages/AccountOverview.vue | 2 + .../Pages/AccountOverview/GddStatus.spec.js | 53 +++++++++++++++++++ .../views/Pages/AccountOverview/GddStatus.vue | 30 +++++++++++ 6 files changed, 92 insertions(+), 5 deletions(-) create mode 100644 frontend/src/views/Pages/AccountOverview/GddStatus.spec.js create mode 100644 frontend/src/views/Pages/AccountOverview/GddStatus.vue diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 104b85502..b9f4083a3 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -212,7 +212,7 @@ jobs: report_name: Coverage Frontend type: lcov result_path: ./coverage/lcov.info - min_coverage: 21 + min_coverage: 27 token: ${{ github.token }} ############################################################################## diff --git a/frontend/src/plugins/dashboard-plugin.js b/frontend/src/plugins/dashboard-plugin.js index fa5b2ebf9..3cb1cd862 100755 --- a/frontend/src/plugins/dashboard-plugin.js +++ b/frontend/src/plugins/dashboard-plugin.js @@ -1,5 +1,5 @@ import '@/polyfills' -import { configure, extend, localize } from 'vee-validate' +import { configure, extend } from 'vee-validate' import GlobalComponents from './globalComponents' import GlobalDirectives from './globalDirectives' import SideBar from '@/components/SidebarPlugin' @@ -7,7 +7,7 @@ import SideBar from '@/components/SidebarPlugin' import '@/assets/scss/argon.scss' import '@/assets/vendor/nucleo/css/nucleo.css' import * as rules from 'vee-validate/dist/rules' -import en, { messages } from 'vee-validate/dist/locale/en.json' +import { messages } from 'vee-validate/dist/locale/en.json' import VueQrcodeReader from 'vue-qrcode-reader' import VueQrcode from 'vue-qrcode' @@ -22,8 +22,6 @@ import 'vue-loading-overlay/dist/vue-loading.css' import { BootstrapVue, IconsPlugin } from 'bootstrap-vue' -localize('en', en) - Object.keys(rules).forEach((rule) => { extend(rule, { ...rules[rule], // copies rule configuration diff --git a/frontend/src/views/Pages/AccountOverview.spec.js b/frontend/src/views/Pages/AccountOverview.spec.js index 9f320cb67..031828129 100644 --- a/frontend/src/views/Pages/AccountOverview.spec.js +++ b/frontend/src/views/Pages/AccountOverview.spec.js @@ -19,6 +19,10 @@ describe('AccountOverview', () => { wrapper = Wrapper() }) + it('has a status line', () => { + expect(wrapper.find('gdd-status-stub').exists()).toBeTruthy() + }) + it('has a send field', () => { expect(wrapper.find('gdd-send-stub').exists()).toBeTruthy() }) diff --git a/frontend/src/views/Pages/AccountOverview.vue b/frontend/src/views/Pages/AccountOverview.vue index 5cc86860e..561edbf9c 100644 --- a/frontend/src/views/Pages/AccountOverview.vue +++ b/frontend/src/views/Pages/AccountOverview.vue @@ -41,6 +41,7 @@
    From 8e797776ea0a48a5fbfd8bd8fe254d2de38542ab Mon Sep 17 00:00:00 2001 From: Moriz Wahl Date: Sun, 13 Jun 2021 19:03:19 +0200 Subject: [PATCH 0447/1050] remove transaction date in gdd send --- frontend/src/views/Pages/AccountOverview.vue | 3 --- .../AccountOverview/GddSend/TransactionConfirmation.vue | 5 ----- 2 files changed, 8 deletions(-) diff --git a/frontend/src/views/Pages/AccountOverview.vue b/frontend/src/views/Pages/AccountOverview.vue index 561edbf9c..35490e093 100644 --- a/frontend/src/views/Pages/AccountOverview.vue +++ b/frontend/src/views/Pages/AccountOverview.vue @@ -17,7 +17,6 @@ :email="transactionData.email" :amount="transactionData.amount" :memo="transactionData.memo" - :date="transactionData.target_date" :loading="loading" @send-transaction="sendTransaction" @on-reset="onReset" @@ -54,7 +53,6 @@ const EMPTY_TRANSACTION_DATA = { email: '', amount: 0, memo: '', - target_date: '', } export default { @@ -96,7 +94,6 @@ export default { }, methods: { setTransaction(data) { - data.target_date = new Date(Date.now()).toISOString() this.transactionData = data this.currentTransactionStep = 1 }, diff --git a/frontend/src/views/Pages/AccountOverview/GddSend/TransactionConfirmation.vue b/frontend/src/views/Pages/AccountOverview/GddSend/TransactionConfirmation.vue index b4852df48..d81311b79 100644 --- a/frontend/src/views/Pages/AccountOverview/GddSend/TransactionConfirmation.vue +++ b/frontend/src/views/Pages/AccountOverview/GddSend/TransactionConfirmation.vue @@ -16,10 +16,6 @@ {{ memo ? memo : '-' }} {{ $t('form.message') }} - - {{ $d($moment(date), 'long') }} - {{ $t('form.date') }} - @@ -42,7 +38,6 @@ export default { email: { type: String, default: '' }, amount: { type: Number, default: 0 }, memo: { type: String, default: '' }, - date: { type: String, default: '' }, loading: { type: Boolean, default: false }, }, } From 088b144ee86a82fdcba96158cc9deb698d21579d Mon Sep 17 00:00:00 2001 From: Moriz Wahl Date: Sun, 13 Jun 2021 19:26:05 +0200 Subject: [PATCH 0448/1050] simple spec for user profile --- frontend/src/views/Pages/UserProfile.spec.js | 23 ++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 frontend/src/views/Pages/UserProfile.spec.js diff --git a/frontend/src/views/Pages/UserProfile.spec.js b/frontend/src/views/Pages/UserProfile.spec.js new file mode 100644 index 000000000..7716be9cf --- /dev/null +++ b/frontend/src/views/Pages/UserProfile.spec.js @@ -0,0 +1,23 @@ +import { shallowMount } from '@vue/test-utils' + +import UserProfile from './UserProfile' + +const localVue = global.localVue + +describe('UserProfile', () => { + let wrapper + + const Wrapper = () => { + return shallowMount(UserProfile, { localVue }) + } + + describe('shallowMount', () => { + beforeEach(() => { + wrapper = Wrapper() + }) + + it('renders the component', () => { + expect(wrapper.findComponent({ name: 'user-card' }).exists()).toBeTruthy() + }) + }) +}) From f127d5408f4e26b1c643e360134fc8e3fcc6c827 Mon Sep 17 00:00:00 2001 From: Moriz Wahl Date: Sun, 13 Jun 2021 19:47:08 +0200 Subject: [PATCH 0449/1050] no digits after period or comma is allowed. localize numbers in vaidation message --- frontend/src/main.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/frontend/src/main.js b/frontend/src/main.js index 20c8ffcb8..160ff73c7 100755 --- a/frontend/src/main.js +++ b/frontend/src/main.js @@ -54,10 +54,14 @@ extend('max', { extend('gddSendAmount', { validate(value, { min, max }) { value = value.replace(',', '.') - return value.match(/^[0-9]+(\.[0-9]{1,2})?$/) && Number(value) >= min && Number(value) <= max + return value.match(/^[0-9]+(\.[0-9]{0,2})?$/) && Number(value) >= min && Number(value) <= max }, params: ['min', 'max'], - message: (_, values) => i18n.t('form.validation.gddSendAmount', values), + message: (_, values) => { + values.min = i18n.n(values.min) + values.max = i18n.n(values.max) + return i18n.t('form.validation.gddSendAmount', values) + }, }) // eslint-disable-next-line camelcase From 617b3648f4006f447347ff22a7e1bab1efac1af7 Mon Sep 17 00:00:00 2001 From: einhornimmond Date: Mon, 14 Jun 2021 10:54:32 +0200 Subject: [PATCH 0450/1050] remove check decays for being at least 100 GDD cent - remove debugging lines and empty lines --- .../src/Model/Table/TransactionsTable.php | 44 +++++++------------ 1 file changed, 17 insertions(+), 27 deletions(-) diff --git a/community_server/src/Model/Table/TransactionsTable.php b/community_server/src/Model/Table/TransactionsTable.php index c4bc4b698..5b4099c34 100644 --- a/community_server/src/Model/Table/TransactionsTable.php +++ b/community_server/src/Model/Table/TransactionsTable.php @@ -178,25 +178,18 @@ class TransactionsTable extends Table } if($prev && $decay == true) { - if($prev->balance > 0) { - // var_dump($stateUserTransactions); $current = $su_transaction; - //echo "decay between " . $prev->transaction_id . " and " . $current->transaction_id . "
    "; + $calculated_decay = $stateBalancesTable->calculateDecay($prev->balance, $prev->balance_date, $current->balance_date, true); - $balance = floatval($prev->balance - $calculated_decay['balance']); - // skip small decays (smaller than 0,00 GDD) + $balance = floatval($prev->balance - $calculated_decay['balance']); - if(abs($balance) >= 100) { - //echo $interval->format('%R%a days'); - //echo "prev balance: " . $prev->balance . ", diff_amount: $diff_amount, summe: " . (-intval($prev->balance - $diff_amount)) . "
    "; - $final_transactions[] = [ - 'type' => 'decay', - 'balance' => $balance, - 'decay_duration' => $calculated_decay['interval']->format('%a days, %H hours, %I minutes, %S seconds'), - 'memo' => '' - ]; - } + $final_transactions[] = [ + 'type' => 'decay', + 'balance' => $balance, + 'decay_duration' => $calculated_decay['interval']->format('%a days, %H hours, %I minutes, %S seconds'), + 'memo' => '' + ]; } } @@ -207,9 +200,7 @@ class TransactionsTable extends Table // date // balance $transaction = $transaction_indiced[$su_transaction->transaction_id]; - /*echo "transaction:
    "; - var_dump($transaction); - echo "
    ";*/ + if($su_transaction->transaction_type_id == 1) { // creation $creation = $transaction->transaction_creation; $balance = $stateBalancesTable->calculateDecay($creation->amount, $creation->target_date, $transaction->received); @@ -270,15 +261,14 @@ class TransactionsTable extends Table $duration = $decay_start_date->timeAgoInWords(); } $balance = floatval($su_transaction->balance - $calculated_decay['balance']); - if($balance > 100) { - $final_transactions[] = [ - 'type' => 'decay', - 'balance' => $balance, - 'decay_duration' => $duration, - 'last_decay' => true, - 'memo' => '' - ]; - } + + $final_transactions[] = [ + 'type' => 'decay', + 'balance' => $balance, + 'decay_duration' => $duration, + 'last_decay' => true, + 'memo' => '' + ]; } } From c2d91a20967b4eb99ff037128edb18de11bba81c Mon Sep 17 00:00:00 2001 From: einhorn_b Date: Mon, 14 Jun 2021 11:51:21 +0200 Subject: [PATCH 0451/1050] add checking at least that decay balance is more than 0 --- .../src/Model/Table/TransactionsTable.php | 32 +++++++++++-------- 1 file changed, 19 insertions(+), 13 deletions(-) diff --git a/community_server/src/Model/Table/TransactionsTable.php b/community_server/src/Model/Table/TransactionsTable.php index 5b4099c34..7e59c2d88 100644 --- a/community_server/src/Model/Table/TransactionsTable.php +++ b/community_server/src/Model/Table/TransactionsTable.php @@ -184,12 +184,15 @@ class TransactionsTable extends Table $calculated_decay = $stateBalancesTable->calculateDecay($prev->balance, $prev->balance_date, $current->balance_date, true); $balance = floatval($prev->balance - $calculated_decay['balance']); - $final_transactions[] = [ - 'type' => 'decay', - 'balance' => $balance, - 'decay_duration' => $calculated_decay['interval']->format('%a days, %H hours, %I minutes, %S seconds'), - 'memo' => '' - ]; + if($balance) + { + $final_transactions[] = [ + 'type' => 'decay', + 'balance' => $balance, + 'decay_duration' => $calculated_decay['interval']->format('%a days, %H hours, %I minutes, %S seconds'), + 'memo' => '' + ]; + } } } @@ -262,13 +265,16 @@ class TransactionsTable extends Table } $balance = floatval($su_transaction->balance - $calculated_decay['balance']); - $final_transactions[] = [ - 'type' => 'decay', - 'balance' => $balance, - 'decay_duration' => $duration, - 'last_decay' => true, - 'memo' => '' - ]; + if($balance) + { + $final_transactions[] = [ + 'type' => 'decay', + 'balance' => $balance, + 'decay_duration' => $duration, + 'last_decay' => true, + 'memo' => '' + ]; + } } } From 22211a883cce342cf8d0123cb1d674d4d7811caa Mon Sep 17 00:00:00 2001 From: ogerly Date: Mon, 14 Jun 2021 13:27:52 +0200 Subject: [PATCH 0452/1050] add content header again --- .../components/SidebarPlugin/SideBar.spec.js | 14 ------------- .../src/components/SidebarPlugin/SideBar.vue | 9 --------- .../src/views/Layout/DashboardLayout_gdd.vue | 20 ++++++++++++++++++- 3 files changed, 19 insertions(+), 24 deletions(-) diff --git a/frontend/src/components/SidebarPlugin/SideBar.spec.js b/frontend/src/components/SidebarPlugin/SideBar.spec.js index 4612f6f9e..f9e0780d4 100644 --- a/frontend/src/components/SidebarPlugin/SideBar.spec.js +++ b/frontend/src/components/SidebarPlugin/SideBar.spec.js @@ -41,20 +41,6 @@ describe('SideBar', () => { expect(wrapper.find('#sidenav-main').exists()).toBeTruthy() }) - describe('balance', () => { - it('shows em-dash as balance while loading', () => { - expect(wrapper.find('.gddBalance').text()).toBe('— GDD') - }) - - it('shows the when loaded', async () => { - wrapper.setProps({ - pending: false, - }) - await wrapper.vm.$nextTick() - expect(wrapper.find('.gddBalance').text()).toBe('1234.56 GDD') - }) - }) - describe('navbar button', () => { it('has a navbar button', () => { expect(wrapper.find('button.navbar-toggler').exists()).toBeTruthy() diff --git a/frontend/src/components/SidebarPlugin/SideBar.vue b/frontend/src/components/SidebarPlugin/SideBar.vue index 138c802e9..d2373e1de 100755 --- a/frontend/src/components/SidebarPlugin/SideBar.vue +++ b/frontend/src/components/SidebarPlugin/SideBar.vue @@ -9,13 +9,6 @@ Gradido Logo
    -
    {{ pending ? '—' : $n(balance, 'decimal') }} GDD
    - -
    -
    - -
    -
{{ $t('decay.since_introduction') }}
- {{ getDuration }} - - {{ getDuration.years }} {{ $t('decay.year') }}, - - {{ getDuration.months }} {{ $t('decay.months') }}, - - {{ getDuration.days }} {{ $t('decay.days') }}, - {{ getDuration.hours }} {{ $t('decay.hours') }}, - - {{ getDuration.minutes }} {{ $t('decay.minutes') }}, - - - {{ getDuration.seconds }} {{ $t('decay.seconds') }} - + + {{ duration.years }} {{ $t('decay.year') }}, + {{ duration.months }} {{ $t('decay.months') }}, + {{ duration.days }} {{ $t('decay.days') }}, + {{ duration.hours }} {{ $t('decay.hours') }}, + {{ duration.minutes }} {{ $t('decay.minutes') }}, + {{ duration.seconds }} {{ $t('decay.seconds') }}
@@ -80,10 +73,10 @@ export default { ? ' - Startblock Decay am: ' + this.$d(this.$moment.unix(this.decay.decay_start_block)) : '' }, - getDuration() { + duration() { const startDate = this.$moment.unix(new Date(this.decay.decay_start)) const endDate = this.$moment.unix(new Date(this.decay.decay_end)) - const diff = this.$moment.duration(startDate.diff(endDate)) + const diff = this.$moment.duration(endDate.diff(startDate)) return diff._data }, }, From 1b6f91ea482ae57c45889093f8a28d1c46494dd0 Mon Sep 17 00:00:00 2001 From: Moriz Wahl Date: Thu, 8 Jul 2021 18:13:38 +0200 Subject: [PATCH 0640/1050] duration function more compact --- frontend/src/components/DecayInformation.vue | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/frontend/src/components/DecayInformation.vue b/frontend/src/components/DecayInformation.vue index 5179b9df1..c3f07c87b 100644 --- a/frontend/src/components/DecayInformation.vue +++ b/frontend/src/components/DecayInformation.vue @@ -74,10 +74,11 @@ export default { : '' }, duration() { - const startDate = this.$moment.unix(new Date(this.decay.decay_start)) - const endDate = this.$moment.unix(new Date(this.decay.decay_end)) - const diff = this.$moment.duration(endDate.diff(startDate)) - return diff._data + return this.$moment.duration( + this.$moment + .unix(new Date(this.decay.decay_end)) + .diff(this.$moment.unix(new Date(this.decay.decay_start))), + )._data }, }, } From f91ef8f5c9b0a02bf559b18109da75b84c21a463 Mon Sep 17 00:00:00 2001 From: Moriz Wahl Date: Thu, 8 Jul 2021 19:04:06 +0200 Subject: [PATCH 0641/1050] fix: QRCode Error after Logout --- frontend/src/views/Layout/DashboardLayout_gdd.vue | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/frontend/src/views/Layout/DashboardLayout_gdd.vue b/frontend/src/views/Layout/DashboardLayout_gdd.vue index 9990b91f2..bf0385400 100755 --- a/frontend/src/views/Layout/DashboardLayout_gdd.vue +++ b/frontend/src/views/Layout/DashboardLayout_gdd.vue @@ -34,7 +34,11 @@ - + From c3457b409b06dbe1aa427f3f4082dc4523c1656b Mon Sep 17 00:00:00 2001 From: Moriz Wahl Date: Mon, 12 Jul 2021 11:11:54 +0200 Subject: [PATCH 0642/1050] feat: Test UserProfileTransactionList --- .../Pages/UserProfileTransactionList.spec.js | 33 +++++++++++++++++++ .../Pages/UserProfileTransactionList.vue | 3 +- 2 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 frontend/src/views/Pages/UserProfileTransactionList.spec.js diff --git a/frontend/src/views/Pages/UserProfileTransactionList.spec.js b/frontend/src/views/Pages/UserProfileTransactionList.spec.js new file mode 100644 index 000000000..b075b2381 --- /dev/null +++ b/frontend/src/views/Pages/UserProfileTransactionList.spec.js @@ -0,0 +1,33 @@ +import { mount } from '@vue/test-utils' +import UserProfileTransactionList from './UserProfileTransactionList' + +const localVue = global.localVue + +describe('UserProfileTransactionList', () => { + let wrapper + + const mocks = { + $t: jest.fn((t) => t), + } + + const Wrapper = () => { + return mount(UserProfileTransactionList, { localVue, mocks }) + } + + describe('mount', () => { + beforeEach(() => { + wrapper = Wrapper() + }) + + it('renders the transaction table', () => { + expect(wrapper.findComponent({ name: 'GddTransactionList' }).exists()).toBeTruthy() + }) + + it('emist update-transactions when update-transactions is called', async () => { + wrapper.findComponent({ name: 'GddTransactionList' }).vm.$emit('update-transactions') + expect(wrapper.emitted('update-transactions')).toEqual( + expect.arrayContaining([expect.arrayContaining([{ firstPage: 1, items: 25 }])]), + ) + }) + }) +}) diff --git a/frontend/src/views/Pages/UserProfileTransactionList.vue b/frontend/src/views/Pages/UserProfileTransactionList.vue index f1896acc7..e6a25b436 100644 --- a/frontend/src/views/Pages/UserProfileTransactionList.vue +++ b/frontend/src/views/Pages/UserProfileTransactionList.vue @@ -19,12 +19,13 @@ import GddTransactionList from './AccountOverview/GddTransactionList.vue' export default { + name: 'UserProfileTransactionList', components: { GddTransactionList, }, props: { transactions: { - default: [], + default: () => [], }, transactionCount: { type: Number, default: 0 }, }, From 2c74574f240a4d175ecc2f97ec39a98239bc3f69 Mon Sep 17 00:00:00 2001 From: Moriz Wahl Date: Mon, 12 Jul 2021 11:16:56 +0200 Subject: [PATCH 0643/1050] test emit of update-transaction after creation --- .../views/Pages/UserProfileTransactionList.spec.js | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/frontend/src/views/Pages/UserProfileTransactionList.spec.js b/frontend/src/views/Pages/UserProfileTransactionList.spec.js index b075b2381..0761c5032 100644 --- a/frontend/src/views/Pages/UserProfileTransactionList.spec.js +++ b/frontend/src/views/Pages/UserProfileTransactionList.spec.js @@ -23,11 +23,19 @@ describe('UserProfileTransactionList', () => { expect(wrapper.findComponent({ name: 'GddTransactionList' }).exists()).toBeTruthy() }) - it('emist update-transactions when update-transactions is called', async () => { - wrapper.findComponent({ name: 'GddTransactionList' }).vm.$emit('update-transactions') + it('emits update-transactions after creation', () => { expect(wrapper.emitted('update-transactions')).toEqual( expect.arrayContaining([expect.arrayContaining([{ firstPage: 1, items: 25 }])]), ) }) + + it('emist update-transactions when update-transactions is called', () => { + wrapper + .findComponent({ name: 'GddTransactionList' }) + .vm.$emit('update-transactions', { firstPage: 2, items: 25 }) + expect(wrapper.emitted('update-transactions')).toEqual( + expect.arrayContaining([expect.arrayContaining([{ firstPage: 2, items: 25 }])]), + ) + }) }) }) From 5986dc3f19a71ecf77a8270db25d4e3f369ed04f Mon Sep 17 00:00:00 2001 From: einhornimmond Date: Tue, 13 Jul 2021 10:00:53 +0200 Subject: [PATCH 0644/1050] add check for user role --- login_server/src/cpp/SingletonManager/PendingTasksManager.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/login_server/src/cpp/SingletonManager/PendingTasksManager.cpp b/login_server/src/cpp/SingletonManager/PendingTasksManager.cpp index 065520b0a..d2ed2af1a 100644 --- a/login_server/src/cpp/SingletonManager/PendingTasksManager.cpp +++ b/login_server/src/cpp/SingletonManager/PendingTasksManager.cpp @@ -163,6 +163,10 @@ std::vector> PendingTasksManager::getTran Poco::ScopedLock _lock(mWorkMutex); std::vector> transactions_to_sign; + if (user->getModel()->getRole() != model::table::ROLE_ADMIN) { + return transactions_to_sign; + } + for (auto map_it = mPendingTasks.begin(); map_it != mPendingTasks.end(); map_it++) { auto list = map_it->second; From 9f1809624ba29ea235f7e1dadba4da0b42af7c42 Mon Sep 17 00:00:00 2001 From: einhornimmond Date: Tue, 13 Jul 2021 14:30:00 +0200 Subject: [PATCH 0645/1050] create test skeleton --- .../TestJsonCreateTransaction.cpp | 40 +++++++++++++++++++ .../JSONInterface/TestJsonCreateTransaction.h | 23 +++++++++++ 2 files changed, 63 insertions(+) create mode 100644 login_server/src/cpp/test/JSONInterface/TestJsonCreateTransaction.cpp create mode 100644 login_server/src/cpp/test/JSONInterface/TestJsonCreateTransaction.h diff --git a/login_server/src/cpp/test/JSONInterface/TestJsonCreateTransaction.cpp b/login_server/src/cpp/test/JSONInterface/TestJsonCreateTransaction.cpp new file mode 100644 index 000000000..81a6ab25b --- /dev/null +++ b/login_server/src/cpp/test/JSONInterface/TestJsonCreateTransaction.cpp @@ -0,0 +1,40 @@ +#include "TestJsonCreateTransaction.h" + +#include "JSONInterface/JsonCreateTransaction.h" + +void TestJsonCreateTransaction::SetUp() +{ + auto sm = SessionManager::getInstance(); + //sm->init(); + mUserSession = sm->getNewSession(); + auto user = controller::User::create(); + user->load("Jeet_bb@gmail.com"); + mUserSession->setUser(user); +} + +void TestJsonCreateTransaction::TearDown() +{ + auto sm = SessionManager::getInstance(); + if (!mUserSession) { + sm->releaseSession(mUserSession); + } +} + + +Poco::JSON::Object::Ptr TestJsonCreateTransaction::basisSetup() +{ + Poco::JSON::Object::Ptr params = new Poco::JSON::Object; + params->set("session_id", mUserSession->getHandle()); + + return params; +} + +TEST_F(TestJsonCreateTransaction, Creation) +{ + JsonCreateTransaction jsonCall; + + auto params = basisSetup(); + params->set("transaction_type", "creation"); + + auto result = jsonCall.handle(params); +} \ No newline at end of file diff --git a/login_server/src/cpp/test/JSONInterface/TestJsonCreateTransaction.h b/login_server/src/cpp/test/JSONInterface/TestJsonCreateTransaction.h new file mode 100644 index 000000000..53a3202f4 --- /dev/null +++ b/login_server/src/cpp/test/JSONInterface/TestJsonCreateTransaction.h @@ -0,0 +1,23 @@ +#ifndef __GRADIDO_LOGIN_SERVER_TEST_JSON_INTERFACE_TEST_JSON_CREATE_TRANSACTION_H +#define __GRADIDO_LOGIN_SERVER_TEST_JSON_INTERFACE_TEST_JSON_CREATE_TRANSACTION_H + +#include "gtest/gtest.h" +#include "SingletonManager/SessionManager.h" + +#include "Poco/JSON/Object.h" + +class TestJsonCreateTransaction : public ::testing::Test +{ + +protected: + void SetUp() override; + void TearDown() override; + + Poco::JSON::Object::Ptr basisSetup(); + + Session* mUserSession; + std::string mEmail; + +}; + +#endif //__GRADIDO_LOGIN_SERVER_TEST_JSON_INTERFACE_TEST_JSON_CREATE_TRANSACTION_H \ No newline at end of file From 89bf681f48cb422bc2bb24913c2800dbf64a75b8 Mon Sep 17 00:00:00 2001 From: Dario Rekowski on RockPI Date: Tue, 13 Jul 2021 13:18:24 +0000 Subject: [PATCH 0646/1050] check if type is set --- .../AppRequests/list_transactions.ctp | 22 +++++++++++-------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/community_server/src/Template/AppRequests/list_transactions.ctp b/community_server/src/Template/AppRequests/list_transactions.ctp index f978e2e31..174092273 100644 --- a/community_server/src/Template/AppRequests/list_transactions.ctp +++ b/community_server/src/Template/AppRequests/list_transactions.ctp @@ -12,15 +12,19 @@ $body['gdtSum'] = $this->element('centToFloat', ['cent' => $body['gdtSum'], 'pre foreach($body['transactions'] as $i => $transaction) { $useCeil = false; - if($transaction['type'] == 'decay') { - $useCeil = true; - } - $body['transactions'][$i]['balance'] = $this->element('centToFloat', ['cent' => $transaction['balance'], 'precision' => 4, 'useCeil' => $useCeil]); - if(isset($transaction['creation_amount'])) { - $body['transactions'][$i]['creation_amount'] = $this->element('centToFloat', ['cent' => $transaction['creation_amount'], 'precision' => 4]); - } - if(isset($transaction['decay'])) { - $body['transactions'][$i]['decay']['balance'] = $this->element('centToFloat', ['cent' => $transaction['decay']['balance'], 'precision' => 4]); + if(!isset($transaction['type'])) { + $body = ['state' => 'error', 'msg' => 'transaction without type found', 'details' => $transaction]; + } else { + if($transaction['type'] == 'decay') { + $useCeil = true; + } + $body['transactions'][$i]['balance'] = $this->element('centToFloat', ['cent' => $transaction['balance'], 'precision' => 4, 'useCeil' => $useCeil]); + if(isset($transaction['creation_amount'])) { + $body['transactions'][$i]['creation_amount'] = $this->element('centToFloat', ['cent' => $transaction['creation_amount'], 'precision' => 4]); + } + if(isset($transaction['decay'])) { + $body['transactions'][$i]['decay']['balance'] = $this->element('centToFloat', ['cent' => $transaction['decay']['balance'], 'precision' => 4]); + } } } From b7cb158369e4c5a18b0e202b0d8883c2066422de Mon Sep 17 00:00:00 2001 From: Moriz Wahl Date: Tue, 13 Jul 2021 16:26:08 +0200 Subject: [PATCH 0647/1050] logs for debug --- backend/src/graphql/resolvers/UserResolver.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/backend/src/graphql/resolvers/UserResolver.ts b/backend/src/graphql/resolvers/UserResolver.ts index be03354ca..f296dc176 100644 --- a/backend/src/graphql/resolvers/UserResolver.ts +++ b/backend/src/graphql/resolvers/UserResolver.ts @@ -10,8 +10,9 @@ import CONFIG from '../../config' const apiPost = async (url: string, payload: any): Promise => { try { + console.log(url, payload) const result = await axios.post(url, payload) - console.log(result) + console.log('-----', result) if (result.status !== 200) { throw new Error('HTTP Status Error ' + result.status) } @@ -23,6 +24,7 @@ const apiPost = async (url: string, payload: any): Promise => { } return { success: true, result } } catch (error) { + console.log(error) return { success: false, result: error } } } @@ -42,7 +44,7 @@ export class UserResolver { @Query(() => String) async login(@Arg('email') email: string, @Arg('password') password: string): Promise { email = email.trim().toLowerCase() - + console.log(email, password, CONFIG.LOGIN_API_URL) const result = await apiPost(CONFIG.LOGIN_API_URL + 'unsecureLogin', { email, password }) // if there is no user, throw an authentication error From 593f8eab838fba89e9617a6e52dc825042a6ae6a Mon Sep 17 00:00:00 2001 From: einhornimmond Date: Tue, 13 Jul 2021 17:42:18 +0200 Subject: [PATCH 0648/1050] handle empty host --- login_server/src/cpp/lib/JsonRequest.cpp | 4 ++++ login_server/src/cpp/lib/JsonRequest.h | 1 + .../JSONInterface/TestJsonCreateTransaction.cpp | 13 ++++++++++++- 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/login_server/src/cpp/lib/JsonRequest.cpp b/login_server/src/cpp/lib/JsonRequest.cpp index 411ec07a0..09bbffb1e 100644 --- a/login_server/src/cpp/lib/JsonRequest.cpp +++ b/login_server/src/cpp/lib/JsonRequest.cpp @@ -36,6 +36,10 @@ JsonRequestReturn JsonRequest::request(const char* methodName, const Poco::JSON: // send post request via https // 443 = HTTPS Default // TODO: adding port into ServerConfig + if (mServerHost.empty() || !mServerPort) { + addError(new Error(functionName, "server host or server port not given")); + return JSON_REQUEST_PARAMETER_ERROR; + } try { Profiler phpRequestTime; diff --git a/login_server/src/cpp/lib/JsonRequest.h b/login_server/src/cpp/lib/JsonRequest.h index cfb9055d5..43b60ca40 100644 --- a/login_server/src/cpp/lib/JsonRequest.h +++ b/login_server/src/cpp/lib/JsonRequest.h @@ -20,6 +20,7 @@ enum JsonRequestReturn JSON_REQUEST_RETURN_OK, JSON_REQUEST_RETURN_PARSE_ERROR, JSON_REQUEST_RETURN_ERROR, + JSON_REQUEST_PARAMETER_ERROR, JSON_REQUEST_CONNECT_ERROR }; diff --git a/login_server/src/cpp/test/JSONInterface/TestJsonCreateTransaction.cpp b/login_server/src/cpp/test/JSONInterface/TestJsonCreateTransaction.cpp index 81a6ab25b..2a51f8f2e 100644 --- a/login_server/src/cpp/test/JSONInterface/TestJsonCreateTransaction.cpp +++ b/login_server/src/cpp/test/JSONInterface/TestJsonCreateTransaction.cpp @@ -9,6 +9,7 @@ void TestJsonCreateTransaction::SetUp() mUserSession = sm->getNewSession(); auto user = controller::User::create(); user->load("Jeet_bb@gmail.com"); + user->login("TestP4ssword&H"); mUserSession->setUser(user); } @@ -25,7 +26,10 @@ Poco::JSON::Object::Ptr TestJsonCreateTransaction::basisSetup() { Poco::JSON::Object::Ptr params = new Poco::JSON::Object; params->set("session_id", mUserSession->getHandle()); - + params->set("blockchain_type", "mysql"); + params->set("memo", "Placolder for memo for test"); + params->set("auto_sign", true); + return params; } @@ -35,6 +39,13 @@ TEST_F(TestJsonCreateTransaction, Creation) auto params = basisSetup(); params->set("transaction_type", "creation"); + params->set("target_email", "Elfenhausen@arcor.de"); + params->set("amount", 10000000); + params->set("target_date", "2021-07-13T13:00:00"); auto result = jsonCall.handle(params); + std::stringstream ss; + result->stringify(ss); + printf("result: %s\n", ss.str().data()); + //*/ } \ No newline at end of file From 8443888e964c70662e1d818df6e0a460a2cd226f Mon Sep 17 00:00:00 2001 From: Moriz Wahl Date: Tue, 13 Jul 2021 18:34:50 +0200 Subject: [PATCH 0649/1050] login resolver returns data that the frontend could use without major changes --- backend/.env.dist | 2 +- backend/src/graphql/models/User.ts | 85 +++++++++++++++++++ backend/src/graphql/resolvers/BookResolver.ts | 2 + backend/src/graphql/resolvers/UserResolver.ts | 35 +++++--- 4 files changed, 113 insertions(+), 11 deletions(-) create mode 100644 backend/src/graphql/models/User.ts diff --git a/backend/.env.dist b/backend/.env.dist index 21127b9ed..fe9d5e566 100644 --- a/backend/.env.dist +++ b/backend/.env.dist @@ -1,4 +1,4 @@ PORT=4000 GRAPHIQL=false -// LOGIN_API_URL=http://localhost/login_api/ +// LOGIN_API_URL=http://login-server:1201/ // COMMUNITY_API_URL=http://localhost/api/ \ No newline at end of file diff --git a/backend/src/graphql/models/User.ts b/backend/src/graphql/models/User.ts new file mode 100644 index 000000000..d17a3dacd --- /dev/null +++ b/backend/src/graphql/models/User.ts @@ -0,0 +1,85 @@ +import { Entity, BaseEntity, Column } from 'typeorm' +import { ObjectType, Field } from 'type-graphql' + +@Entity() +@ObjectType() +export class User extends BaseEntity { + /* + @Field(() => ID) + @PrimaryGeneratedColumn() + id: number + */ + + @Field(() => String) + @Column({ length: 191 }) + email: string + + @Field(() => String) + @Column({ length: 150 }) + firstName: string + + @Field(() => String) + @Column() + lastName: string + + @Field(() => String) + @Column() + username: string + + @Field(() => String) + @Column('text') + description: string + + /* + @Field(() => String) + @Column({ length: 64 }) + pubkey: string + + // not sure about the type here. Maybe better to have a string + @Field(() => number) + @Column({ type: 'datetime' }) + created: number + + @Field(() => Boolean) + @Column({ default: false }) + emailChecked: boolean + + @Field(() => Boolean) + @Column({ default: false }) + passphraseShown: boolean + */ + + @Field(() => String) + @Column({ default: 'de' }) + language: string + + /* + @Field(() => Boolean) + @Column({ default: false }) + disabled: boolean + */ + + /* I suggest to have a group as type here + @Field(() => ID) + @Column() + groupId: number + + // what is puvlisherId? + @Field(() => ID) + @Column({ default: 0 }) + publisherId: number + */ +} + +// temporaray solution until we have JWT implemented +@Entity() +@ObjectType() +export class LoginResponse extends BaseEntity { + @Field(() => Number) + @Column() + sessionId: number + + @Field(() => User) + @Column() + user: User +} diff --git a/backend/src/graphql/resolvers/BookResolver.ts b/backend/src/graphql/resolvers/BookResolver.ts index 9e5b6d1b3..df7e553bc 100644 --- a/backend/src/graphql/resolvers/BookResolver.ts +++ b/backend/src/graphql/resolvers/BookResolver.ts @@ -1,3 +1,4 @@ +/* import { Resolver, Query, Mutation, Arg } from 'type-graphql' import { Book } from '../models/Book' import { CreateBookInput } from '../inputs/CreateBookInput' @@ -39,3 +40,4 @@ export class BookResolver { return true } } +*/ diff --git a/backend/src/graphql/resolvers/UserResolver.ts b/backend/src/graphql/resolvers/UserResolver.ts index f296dc176..959c101e8 100644 --- a/backend/src/graphql/resolvers/UserResolver.ts +++ b/backend/src/graphql/resolvers/UserResolver.ts @@ -1,18 +1,18 @@ -import jwt from 'jsonwebtoken' +// import jwt from 'jsonwebtoken' import axios from 'axios' import { Resolver, Query, /* Mutation, */ Arg } from 'type-graphql' import CONFIG from '../../config' -// import { User } from '../models/User' +import { LoginResponse } from '../models/User' // import { LoginUserInput } from '../inputs/LoginUserInput' // import { loginAPI, LoginResult } from '../../apis/loginAPI' // import { CreateBookInput } from '../inputs/CreateBookInput' // import { UpdateBookInput } from '../inputs/UpdateBookInput' -const apiPost = async (url: string, payload: any): Promise => { +const apiPost = async (url: string, payload: unknown): Promise => { try { - console.log(url, payload) + // console.log(url, payload) const result = await axios.post(url, payload) - console.log('-----', result) + // console.log('-----', result) if (result.status !== 200) { throw new Error('HTTP Status Error ' + result.status) } @@ -24,7 +24,7 @@ const apiPost = async (url: string, payload: any): Promise => { } return { success: true, result } } catch (error) { - console.log(error) + // console.log(error) return { success: false, result: error } } } @@ -41,10 +41,9 @@ export class UserResolver { return User.findOne({ where: { id } }) } */ - @Query(() => String) - async login(@Arg('email') email: string, @Arg('password') password: string): Promise { + @Query(() => LoginResponse) + async login(@Arg('email') email: string, @Arg('password') password: string): Promise { email = email.trim().toLowerCase() - console.log(email, password, CONFIG.LOGIN_API_URL) const result = await apiPost(CONFIG.LOGIN_API_URL + 'unsecureLogin', { email, password }) // if there is no user, throw an authentication error @@ -52,13 +51,29 @@ export class UserResolver { throw new Error(result.result) } + // temporary solution until we have JWT implemented + // console.log(result.result.data) + return { + sessionId: result.result.data.session_id, + user: { + email: result.result.data.user.email, + language: result.result.data.user.language, + username: result.result.data.user.username, + firstName: result.result.data.user.first_name, + lastName: result.result.data.user.last_name, + description: result.result.data.user.description, + }, + } + // create and return the json web token // The expire doesn't help us here. The client needs to track when the token expires on its own, // since every action prolongs the time the session is valid. + /* return jwt.sign( { result, role: 'todo' }, - CONFIG.JWT_SECRET /* , { expiresIn: CONFIG.JWT_EXPIRES_IN } */, + CONFIG.JWT_SECRET, // * , { expiresIn: CONFIG.JWT_EXPIRES_IN } , ) + */ // return (await apiPost(CONFIG.LOGIN_API_URL + 'unsecureLogin', login)).result.data // const loginResult: LoginResult = await loginAPI.login(data) // return loginResult.user ? loginResult.user : new User() From a2f932f040831beda7dfed5edc737bc103e70914 Mon Sep 17 00:00:00 2001 From: Moriz Wahl Date: Tue, 13 Jul 2021 18:44:04 +0200 Subject: [PATCH 0650/1050] fix linting, I need to learn more TS --- backend/src/graphql/resolvers/UserResolver.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/backend/src/graphql/resolvers/UserResolver.ts b/backend/src/graphql/resolvers/UserResolver.ts index 959c101e8..9c9161a80 100644 --- a/backend/src/graphql/resolvers/UserResolver.ts +++ b/backend/src/graphql/resolvers/UserResolver.ts @@ -8,7 +8,8 @@ import { LoginResponse } from '../models/User' // import { CreateBookInput } from '../inputs/CreateBookInput' // import { UpdateBookInput } from '../inputs/UpdateBookInput' -const apiPost = async (url: string, payload: unknown): Promise => { +// eslint-disable-next-line @typescript-eslint/no-explicit-any +const apiPost = async (url: string, payload: unknown): Promise => { try { // console.log(url, payload) const result = await axios.post(url, payload) @@ -42,7 +43,8 @@ export class UserResolver { } */ @Query(() => LoginResponse) - async login(@Arg('email') email: string, @Arg('password') password: string): Promise { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + async login(@Arg('email') email: string, @Arg('password') password: string): Promise { email = email.trim().toLowerCase() const result = await apiPost(CONFIG.LOGIN_API_URL + 'unsecureLogin', { email, password }) From ae4edf46054a48bcdd8aeaafb16c68e546ed58ef Mon Sep 17 00:00:00 2001 From: Moriz Wahl Date: Tue, 13 Jul 2021 19:18:17 +0200 Subject: [PATCH 0651/1050] clean up, use inputs --- backend/package.json | 1 + backend/src/apis/loginAPI.ts | 20 ++++++ backend/src/graphql/inputs/CreateBookInput.ts | 10 --- ...oginUserInput.ts.old => LoginUserInput.ts} | 13 +++- backend/src/graphql/inputs/UpdateBookInput.ts | 13 ---- backend/src/graphql/models/Book.ts | 22 ------- backend/src/graphql/models/User.ts.old | 62 ------------------- backend/src/graphql/resolvers/BookResolver.ts | 43 ------------- backend/src/graphql/resolvers/UserResolver.ts | 42 ++----------- backend/yarn.lock | 24 +++++++ 10 files changed, 62 insertions(+), 188 deletions(-) create mode 100644 backend/src/apis/loginAPI.ts delete mode 100644 backend/src/graphql/inputs/CreateBookInput.ts rename backend/src/graphql/inputs/{LoginUserInput.ts.old => LoginUserInput.ts} (54%) delete mode 100644 backend/src/graphql/inputs/UpdateBookInput.ts delete mode 100644 backend/src/graphql/models/Book.ts delete mode 100644 backend/src/graphql/models/User.ts.old delete mode 100644 backend/src/graphql/resolvers/BookResolver.ts diff --git a/backend/package.json b/backend/package.json index 822a2e019..ac94d10f3 100644 --- a/backend/package.json +++ b/backend/package.json @@ -17,6 +17,7 @@ "dependencies": { "apollo-server-express": "^2.25.2", "axios": "^0.21.1", + "class-validator": "^0.13.1", "express": "^4.17.1", "graphql": "^15.5.1", "jsonwebtoken": "^8.5.1", diff --git a/backend/src/apis/loginAPI.ts b/backend/src/apis/loginAPI.ts new file mode 100644 index 000000000..69f22cf92 --- /dev/null +++ b/backend/src/apis/loginAPI.ts @@ -0,0 +1,20 @@ +import axios from 'axios' + +// eslint-disable-next-line @typescript-eslint/no-explicit-any +export const apiPost = async (url: string, payload: unknown): Promise => { + try { + const result = await axios.post(url, payload) + if (result.status !== 200) { + throw new Error('HTTP Status Error ' + result.status) + } + if (result.data.state === 'warning') { + return { success: true, result: result.data.errors } + } + if (result.data.state !== 'success') { + throw new Error(result.data.msg) + } + return { success: true, result } + } catch (error) { + return { success: false, result: error } + } +} diff --git a/backend/src/graphql/inputs/CreateBookInput.ts b/backend/src/graphql/inputs/CreateBookInput.ts deleted file mode 100644 index ac4108afd..000000000 --- a/backend/src/graphql/inputs/CreateBookInput.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { InputType, Field } from 'type-graphql' - -@InputType() -export class CreateBookInput { - @Field() - title: string - - @Field() - author: string -} diff --git a/backend/src/graphql/inputs/LoginUserInput.ts.old b/backend/src/graphql/inputs/LoginUserInput.ts similarity index 54% rename from backend/src/graphql/inputs/LoginUserInput.ts.old rename to backend/src/graphql/inputs/LoginUserInput.ts index ee6fb1814..7edc3089e 100644 --- a/backend/src/graphql/inputs/LoginUserInput.ts.old +++ b/backend/src/graphql/inputs/LoginUserInput.ts @@ -1,5 +1,6 @@ -import { InputType, Field } from 'type-graphql' +import { ArgsType, Field } from 'type-graphql' +/* @InputType() export class LoginUserInput { @Field({ nullable: true }) @@ -14,3 +15,13 @@ export class LoginUserInput { @Field() password: string } +*/ + +@ArgsType() +export class UnsecureLoginArgs { + @Field(() => String) + email: string + + @Field(() => String) + password: string +} diff --git a/backend/src/graphql/inputs/UpdateBookInput.ts b/backend/src/graphql/inputs/UpdateBookInput.ts deleted file mode 100644 index 3f5042ecf..000000000 --- a/backend/src/graphql/inputs/UpdateBookInput.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { InputType, Field } from 'type-graphql' - -@InputType() -export class UpdateBookInput { - @Field({ nullable: true }) - title?: string - - @Field({ nullable: true }) - author?: string - - @Field({ nullable: true }) - isPublished?: boolean -} diff --git a/backend/src/graphql/models/Book.ts b/backend/src/graphql/models/Book.ts deleted file mode 100644 index fb95979dd..000000000 --- a/backend/src/graphql/models/Book.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { Entity, BaseEntity, PrimaryGeneratedColumn, Column } from 'typeorm' -import { ObjectType, Field, ID } from 'type-graphql' - -@Entity() -@ObjectType() -export class Book extends BaseEntity { - @Field(() => ID) - @PrimaryGeneratedColumn() - id: string - - @Field(() => String) - @Column() - title: string - - @Field(() => String) - @Column() - author: string - - @Field(() => Boolean) - @Column({ default: false }) - isPublished: boolean -} diff --git a/backend/src/graphql/models/User.ts.old b/backend/src/graphql/models/User.ts.old deleted file mode 100644 index 8f3ababf7..000000000 --- a/backend/src/graphql/models/User.ts.old +++ /dev/null @@ -1,62 +0,0 @@ -import { Entity, BaseEntity, PrimaryGeneratedColumn, Column } from 'typeorm' -import { ObjectType, Field, ID, GraphQLISODateTime } from 'type-graphql' - -@Entity() -@ObjectType() -export class User extends BaseEntity { - @Field(() => ID) - @PrimaryGeneratedColumn() - id: number - - @Field(() => String) - @Column({ length: 191 }) - email: string - - @Field(() => String) - @Column({ length: 150 }) - firstName: string - - @Field(() => String) - @Column() - lastName: string - - @Field(() => String) - @Column() - username: string - - @Field(() => String) - @Column('text') - description: string - - @Field(() => String) - @Column({ length: 64 }) - pubkey: string - - @Field(() => GraphQLISODateTime) - @Column({ type: 'datetime' }) - created: Date - - @Field(() => Boolean) - @Column({ default: false }) - emailChecked: boolean - - @Field(() => Boolean) - @Column({ default: false }) - passphraseShown: boolean - - @Field(() => String) - @Column({ default: 'de' }) - language: string - - @Field(() => Boolean) - @Column({ default: false }) - disabled: boolean - - @Field(() => ID) - @Column() - groupId: number - - @Field(() => ID) - @Column({ default: 0 }) - publisherId: number -} diff --git a/backend/src/graphql/resolvers/BookResolver.ts b/backend/src/graphql/resolvers/BookResolver.ts deleted file mode 100644 index df7e553bc..000000000 --- a/backend/src/graphql/resolvers/BookResolver.ts +++ /dev/null @@ -1,43 +0,0 @@ -/* -import { Resolver, Query, Mutation, Arg } from 'type-graphql' -import { Book } from '../models/Book' -import { CreateBookInput } from '../inputs/CreateBookInput' -import { UpdateBookInput } from '../inputs/UpdateBookInput' - -@Resolver() -export class BookResolver { - @Query(() => [Book]) - books() { - return Book.find() - } - - @Query(() => Book) - book(@Arg('id') id: string) { - return Book.findOne({ where: { id } }) - } - - @Mutation(() => Book) - async createBook(@Arg('data') data: CreateBookInput) { - const book = Book.create(data) - await book.save() - return book - } - - @Mutation(() => Book) - async updateBook(@Arg('id') id: string, @Arg('data') data: UpdateBookInput) { - const book = await Book.findOne({ where: { id } }) - if (!book) throw new Error('Book not found!') - Object.assign(book, data) - await book.save() - return book - } - - @Mutation(() => Boolean) - async deleteBook(@Arg('id') id: string) { - const book = await Book.findOne({ where: { id } }) - if (!book) throw new Error('Book not found!') - await book.remove() - return true - } -} -*/ diff --git a/backend/src/graphql/resolvers/UserResolver.ts b/backend/src/graphql/resolvers/UserResolver.ts index 9c9161a80..aa83894e4 100644 --- a/backend/src/graphql/resolvers/UserResolver.ts +++ b/backend/src/graphql/resolvers/UserResolver.ts @@ -1,35 +1,12 @@ // import jwt from 'jsonwebtoken' -import axios from 'axios' -import { Resolver, Query, /* Mutation, */ Arg } from 'type-graphql' +import { Resolver, Query, /* Mutation, */ Args } from 'type-graphql' import CONFIG from '../../config' import { LoginResponse } from '../models/User' -// import { LoginUserInput } from '../inputs/LoginUserInput' -// import { loginAPI, LoginResult } from '../../apis/loginAPI' +import { UnsecureLoginArgs } from '../inputs/LoginUserInput' +import { apiPost } from '../../apis/loginAPI' // import { CreateBookInput } from '../inputs/CreateBookInput' // import { UpdateBookInput } from '../inputs/UpdateBookInput' -// eslint-disable-next-line @typescript-eslint/no-explicit-any -const apiPost = async (url: string, payload: unknown): Promise => { - try { - // console.log(url, payload) - const result = await axios.post(url, payload) - // console.log('-----', result) - if (result.status !== 200) { - throw new Error('HTTP Status Error ' + result.status) - } - if (result.data.state === 'warning') { - return { success: true, result: result.data.errors } - } - if (result.data.state !== 'success') { - throw new Error(result.data.msg) - } - return { success: true, result } - } catch (error) { - // console.log(error) - return { success: false, result: error } - } -} - @Resolver() export class UserResolver { /* @Query(() => [User]) @@ -44,7 +21,7 @@ export class UserResolver { @Query(() => LoginResponse) // eslint-disable-next-line @typescript-eslint/no-explicit-any - async login(@Arg('email') email: string, @Arg('password') password: string): Promise { + async login(@Args() { email, password }: UnsecureLoginArgs): Promise { email = email.trim().toLowerCase() const result = await apiPost(CONFIG.LOGIN_API_URL + 'unsecureLogin', { email, password }) @@ -54,7 +31,6 @@ export class UserResolver { } // temporary solution until we have JWT implemented - // console.log(result.result.data) return { sessionId: result.result.data.session_id, user: { @@ -88,16 +64,8 @@ export class UserResolver { await book.save() return book } + */ - @Mutation(() => Book) - async updateBook(@Arg('id') id: string, @Arg('data') data: UpdateBookInput) { - const book = await Book.findOne({ where: { id } }) - if (!book) throw new Error('Book not found!') - Object.assign(book, data) - await book.save() - return book - } -*/ /* @Mutation(() => Boolean) async deleteUser(@Arg('id') id: string): Promise { const user = await User.findOne({ where: { id } }) diff --git a/backend/yarn.lock b/backend/yarn.lock index 9a2dce567..ff8d358dd 100644 --- a/backend/yarn.lock +++ b/backend/yarn.lock @@ -389,6 +389,11 @@ "@types/mime" "^1" "@types/node" "*" +"@types/validator@^13.1.3": + version "13.6.3" + resolved "https://registry.yarnpkg.com/@types/validator/-/validator-13.6.3.tgz#31ca2e997bf13a0fffca30a25747d5b9f7dbb7de" + integrity sha512-fWG42pMJOL4jKsDDZZREnXLjc3UE0R8LOJfARWYg6U966rxDT7TYejYzLnUF5cvSObGg34nd0+H2wHHU5Omdfw== + "@types/ws@^7.0.0": version "7.4.5" resolved "https://registry.yarnpkg.com/@types/ws/-/ws-7.4.5.tgz#8ff0f7efcd8fea19f51f9dd66cb8b498d172a752" @@ -982,6 +987,15 @@ ci-info@^2.0.0: resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== +class-validator@^0.13.1: + version "0.13.1" + resolved "https://registry.yarnpkg.com/class-validator/-/class-validator-0.13.1.tgz#381b2001ee6b9e05afd133671fbdf760da7dec67" + integrity sha512-zWIeYFhUitvAHBwNhDdCRK09hWx+P0HUwFE8US8/CxFpMVzkUK8RJl7yOIE+BVu2lxyPNgeOaFv78tLE47jBIg== + dependencies: + "@types/validator" "^13.1.3" + libphonenumber-js "^1.9.7" + validator "^13.5.2" + cli-boxes@^2.2.0: version "2.2.1" resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.1.tgz#ddd5035d25094fce220e9cab40a45840a440318f" @@ -2283,6 +2297,11 @@ levn@^0.4.1: prelude-ls "^1.2.1" type-check "~0.4.0" +libphonenumber-js@^1.9.7: + version "1.9.22" + resolved "https://registry.yarnpkg.com/libphonenumber-js/-/libphonenumber-js-1.9.22.tgz#b6b460603dedbd58f2d71f15500f216d70850fad" + integrity sha512-nE0aF0wrNq09ewF36s9FVqRW73hmpw6cobVDlbexmsu1432LEfuN24BCudNuRx4t2rElSeK/N0JbedzRW/TC4A== + load-json-file@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" @@ -3528,6 +3547,11 @@ validate-npm-package-license@^3.0.1: spdx-correct "^3.0.0" spdx-expression-parse "^3.0.0" +validator@^13.5.2: + version "13.6.0" + resolved "https://registry.yarnpkg.com/validator/-/validator-13.6.0.tgz#1e71899c14cdc7b2068463cb24c1cc16f6ec7059" + integrity sha512-gVgKbdbHgtxpRyR8K0O6oFZPhhB5tT1jeEHZR0Znr9Svg03U0+r9DXWMrnRAB+HtCStDQKlaIZm42tVsVjqtjg== + vary@^1, vary@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" From 9d2c704d773194c14d3e77db8019ac8cff74b66e Mon Sep 17 00:00:00 2001 From: Dario Rekowski on RockPI Date: Wed, 14 Jul 2021 09:31:20 +0000 Subject: [PATCH 0652/1050] fix wrong set skip first transaction boolean --- .../src/Controller/AppRequestsController.php | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/community_server/src/Controller/AppRequestsController.php b/community_server/src/Controller/AppRequestsController.php index 4b81b8ac9..271265257 100644 --- a/community_server/src/Controller/AppRequestsController.php +++ b/community_server/src/Controller/AppRequestsController.php @@ -333,6 +333,7 @@ class AppRequestsController extends AppController $this->addAdminError('StateBalancesController', 'overview', $gdtEntries, $user['id'] ? $user['id'] : 0); } + //echo "count: $count, page: $page
"; $limit = $count; $offset = 0; $skip_first_transaction = false; @@ -341,16 +342,15 @@ class AppRequestsController extends AppController } else { $offset = (( $page - 1 ) * $count) - 1; } - if($offset && $orderDirection == 'ASC') { - // move cursor one step backwards to able to load one transaction previous last which will be shown for decay calculation - $offset--; - $limit++; - $skip_first_transaction = true; - } else if($orderDirection == 'DESC') { + if($offset) { $limit++; $skip_first_transaction = true; + if($orderDirection == 'ASC') { + $offset--; + } } + //echo "limit: $limit, offset: $offset, skip first transaction: $skip_first_transaction
"; $stateUserTransactionsQuery = $stateUserTransactionsTable ->find() ->where(['state_user_id' => $user['id']]) @@ -373,7 +373,7 @@ class AppRequestsController extends AppController } $transactions = $transactionsTable->listTransactionsHumanReadable($transactions_from_db, $user, $decay, $skip_first_transaction); - + //echo "transactions count: " . count($transactions) . "
"; if($orderDirection == 'DESC') { $transactions = array_reverse($transactions); } From 28d651a2fb54011de3a739774ab6d25e8e7c1b22 Mon Sep 17 00:00:00 2001 From: einhornimmond Date: Wed, 14 Jul 2021 11:46:48 +0200 Subject: [PATCH 0653/1050] change timeout for email resend to 10 Minutes --- login_server/src/cpp/JSONInterface/JsonSendEmail.cpp | 2 +- login_server/src/cpp/model/Session.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/login_server/src/cpp/JSONInterface/JsonSendEmail.cpp b/login_server/src/cpp/JSONInterface/JsonSendEmail.cpp index c9e8b17e9..f278c393f 100644 --- a/login_server/src/cpp/JSONInterface/JsonSendEmail.cpp +++ b/login_server/src/cpp/JSONInterface/JsonSendEmail.cpp @@ -115,7 +115,7 @@ Poco::JSON::Object* JsonSendEmail::handle(Poco::Dynamic::Var params) return stateWarning("email already sended"); } else if (2 == r) { - return stateError("email already send less than a hour before"); + return stateError("email already sent less than a 10 minutes before"); } } else if (emailType == model::EMAIL_CUSTOM_TEXT) { diff --git a/login_server/src/cpp/model/Session.cpp b/login_server/src/cpp/model/Session.cpp index 42b7202fd..a692dc463 100644 --- a/login_server/src/cpp/model/Session.cpp +++ b/login_server/src/cpp/model/Session.cpp @@ -425,7 +425,7 @@ int Session::sendResetPasswordEmail(Poco::AutoPtr user, bool p auto email_verification_model = mEmailVerificationCodeObject->getModel(); if (email_already_send) { auto time_elapsed = Poco::DateTime() - email_verification_model->getUpdated(); - if (time_elapsed.totalHours() < 1) { + if (time_elapsed.totalMinutes() < 10) { frequent_resend = true; } } From dbc3d26c2253695d8e1f6dd15e1bad2afa3c5602 Mon Sep 17 00:00:00 2001 From: einhornimmond Date: Wed, 14 Jul 2021 13:07:35 +0200 Subject: [PATCH 0654/1050] Remove dynamic cast because it lead to errors again and agin (Poco::AutoPtr don't work correct with that) --- .../SingletonManager/PendingTasksManager.cpp | 132 +++++++++--------- .../SingletonManager/PendingTasksManager.h | 27 ++-- login_server/src/cpsp/CheckTransaction.cpsp | 31 ++-- login_server/src/cpsp/UserUpdateGroup.cpsp | 7 +- 4 files changed, 97 insertions(+), 100 deletions(-) diff --git a/login_server/src/cpp/SingletonManager/PendingTasksManager.cpp b/login_server/src/cpp/SingletonManager/PendingTasksManager.cpp index 065520b0a..59d2baad7 100644 --- a/login_server/src/cpp/SingletonManager/PendingTasksManager.cpp +++ b/login_server/src/cpp/SingletonManager/PendingTasksManager.cpp @@ -15,10 +15,10 @@ PendingTasksManager::~PendingTasksManager() Poco::ScopedLock _lock(mWorkMutex); mCheckForFinishedTimer.stop(); - for (auto it = mPendingTasks.begin(); it != mPendingTasks.end(); it++) { + for (auto it = mPendingGradidoTransactions.begin(); it != mPendingGradidoTransactions.end(); it++) { delete it->second; } - mPendingTasks.clear(); + mPendingGradidoTransactions.clear(); } PendingTasksManager* PendingTasksManager::getInstance() @@ -37,31 +37,32 @@ int PendingTasksManager::load() return 0; } -int PendingTasksManager::addTask(Poco::AutoPtr task) + +int PendingTasksManager::addTask(Poco::AutoPtr gradidoTransactionTask) { - if (task.isNull() || !task->getModel()) { + if (gradidoTransactionTask.isNull() || !gradidoTransactionTask->getModel()) { return -1; } - - auto model = task->getModel(); - Poco::ScopedLock _lock(mWorkMutex); - auto pending_task_list = getTaskListForUser(model->getUserId()); - pending_task_list->push_back(task); - return 0; + auto model = gradidoTransactionTask->getModel(); + Poco::ScopedLock _lock(mWorkMutex); + auto pending_task_list = getGradidoTransactionsForUser(model->getUserId()); + pending_task_list->push_back(gradidoTransactionTask); + return 0; } -bool PendingTasksManager::removeTask(Poco::AutoPtr task) + +bool PendingTasksManager::removeTask(Poco::AutoPtr gradidoTransactionTask) { - if (task.isNull() || !task->getModel()) { + if (gradidoTransactionTask.isNull() || !gradidoTransactionTask->getModel()) { return false; } - auto model = task->getModel(); + auto model = gradidoTransactionTask->getModel(); Poco::ScopedLock _lock(mWorkMutex); - auto pending_task_list = getTaskListForUser(model->getUserId()); + auto pending_task_list = getGradidoTransactionsForUser(model->getUserId()); bool removed = false; for (auto it = pending_task_list->begin(); it != pending_task_list->end(); it++) { - if (task.get() == it->get()) { + if (gradidoTransactionTask.get() == it->get()) { pending_task_list->erase(it); removed = true; break; @@ -71,41 +72,42 @@ bool PendingTasksManager::removeTask(Poco::AutoPtr task return removed; } -PendingTasksManager::PendingTaskList* PendingTasksManager::getTaskListForUser(int userId) + +PendingTasksManager::PendingGradidoTaskList* PendingTasksManager::getGradidoTransactionsForUser(int userId) { Poco::ScopedLock _lock(mWorkMutex); - auto it = mPendingTasks.find(userId); - if (it == mPendingTasks.end()) { - auto pending_list = new PendingTaskList; - mPendingTasks.insert(std::pair(userId, pending_list)); + auto it = mPendingGradidoTransactions.find(userId); + if (it == mPendingGradidoTransactions.end()) { + auto pending_list = new PendingGradidoTaskList; + mPendingGradidoTransactions.insert(std::pair(userId, pending_list)); return pending_list; } else { return it->second; } - } -const PendingTasksManager::PendingTaskList* PendingTasksManager::getTaskListForUser(int userId) const + + +const PendingTasksManager::PendingGradidoTaskList* PendingTasksManager::getGradidoTransactionsForUser(int userId) const { Poco::ScopedLock _lock(mWorkMutex); - auto it = mPendingTasks.find(userId); - if (it != mPendingTasks.end()) { + auto it = mPendingGradidoTransactions.find(userId); + if (it != mPendingGradidoTransactions.end()) { return it->second; } return nullptr; } -bool PendingTasksManager::hasPendingTask(Poco::AutoPtr user, model::table::TaskType type) +bool PendingTasksManager::hasPendingGradidoTransaction(Poco::AutoPtr user, model::table::TaskType type) { auto model = user->getModel(); int user_id = model->getID(); Poco::ScopedLock _lock(mWorkMutex); - auto it = mPendingTasks.find(user_id); - if (it != mPendingTasks.end()) { + auto it = mPendingGradidoTransactions.find(user_id); + if (it != mPendingGradidoTransactions.end()) { auto task_list = it->second; - for (auto task = task_list->begin(); task != task_list->end(); it++) { - auto task_model = (*task)->getModel(); - if (type == task_model->getTaskType()) { + for (auto taskIt = task_list->begin(); taskIt != task_list->end(); taskIt++) { + if ((*taskIt)->getModel()->getTaskType() == type) { return true; } } @@ -114,20 +116,21 @@ bool PendingTasksManager::hasPendingTask(Poco::AutoPtr user, m } -std::vector> PendingTasksManager::getPendingTasks(Poco::AutoPtr user, model::table::TaskType type) + +std::vector> PendingTasksManager::getPendingGradidoTransactions(Poco::AutoPtr user, model::table::TaskType type) { auto model = user->getModel(); int user_id = model->getID(); Poco::ScopedLock _lock(mWorkMutex); - std::vector> results; + std::vector> results; - auto it = mPendingTasks.find(user_id); - if (it != mPendingTasks.end()) { + auto it = mPendingGradidoTransactions.find(user_id); + if (it != mPendingGradidoTransactions.end()) { auto task_list = it->second; results.reserve(task_list->size()); for (auto taskIt = task_list->begin(); taskIt != task_list->end(); taskIt++) { auto task_model = (*taskIt)->getModel(); - if (type == task_model->getTaskType()) { + if (task_model->getTaskType() == type) { results.push_back(*taskIt); } } @@ -135,44 +138,38 @@ std::vector> PendingTasksManager::getPend return results; } -std::vector> PendingTasksManager::getTransactionsUserMustSign(Poco::AutoPtr user) +std::vector> PendingTasksManager::getTransactionsUserMustSign(Poco::AutoPtr user) { // TODO: don't use cast here, because can lead to errors Poco::ScopedLock _lock(mWorkMutex); - std::vector> transactions_to_sign; + std::vector> transactions_to_sign; - for (auto map_it = mPendingTasks.begin(); map_it != mPendingTasks.end(); map_it++) + for (auto map_it = mPendingGradidoTransactions.begin(); map_it != mPendingGradidoTransactions.end(); map_it++) { auto list = map_it->second; for (auto list_it = list->begin(); list_it != list->end(); list_it++) { - if ((*list_it)->getModel()->isGradidoTransaction()) { - auto transaction = dynamic_cast(list_it->get()); - if (transaction->mustSign(user)) { - transactions_to_sign.push_back(*list_it); - } + if((*list_it)->mustSign(user)) { + transactions_to_sign.push_back(*list_it); } } } return transactions_to_sign; } -std::vector> PendingTasksManager::getTransactionSomeoneMustSign(Poco::AutoPtr user) +std::vector> PendingTasksManager::getTransactionSomeoneMustSign(Poco::AutoPtr user) { // TODO: don't use cast here, because can lead to errors Poco::ScopedLock _lock(mWorkMutex); - std::vector> transactions_to_sign; + std::vector> transactions_to_sign; - for (auto map_it = mPendingTasks.begin(); map_it != mPendingTasks.end(); map_it++) + for (auto map_it = mPendingGradidoTransactions.begin(); map_it != mPendingGradidoTransactions.end(); map_it++) { auto list = map_it->second; for (auto list_it = list->begin(); list_it != list->end(); list_it++) { - if ((*list_it)->getModel()->isGradidoTransaction()) { - auto transaction = dynamic_cast(list_it->get()); - if (transaction->needSomeoneToSign(user)) { - transactions_to_sign.push_back(*list_it); - } + if ((*list_it)->needSomeoneToSign(user)) { + transactions_to_sign.push_back(*list_it); } } } @@ -185,27 +182,25 @@ void PendingTasksManager::checkForFinishedTasks(Poco::Timer& timer) Poco::ScopedLock _lock(mWorkMutex); try { - for (auto map_it = mPendingTasks.begin(); map_it != mPendingTasks.end(); map_it++) + for (auto map_it = mPendingGradidoTransactions.begin(); map_it != mPendingGradidoTransactions.end(); map_it++) { auto list = map_it->second; for (auto list_it = list->begin(); list_it != list->end(); list_it++) { - if ((*list_it)->getModel()->isGradidoTransaction()) { - auto transaction = dynamic_cast(list_it->get()); - auto json = transaction->getModel()->getResultJson(); - bool removeIt = false; - if (!json.isNull()) { - auto state = json->get("state"); - if (!state.isEmpty() && state.toString() == "success") { - removeIt = true; - } - } - if (removeIt) { - transaction->deleteFromDB(); - list_it = list->erase(list_it); - if (!list->size() || list_it == list->end()) break; + auto transaction = *list_it; + auto json = transaction->getModel()->getResultJson(); + bool removeIt = false; + if (!json.isNull()) { + auto state = json->get("state"); + if (!state.isEmpty() && state.toString() == "success") { + removeIt = true; } } + if (removeIt) { + transaction->deleteFromDB(); + list_it = list->erase(list_it); + if (!list->size() || list_it == list->end()) break; + } } } } @@ -220,10 +215,11 @@ void PendingTasksManager::checkForFinishedTasks(Poco::Timer& timer) } } -Poco::AutoPtr PendingTasksManager::getPendingTask(int pendingTaskId) + +Poco::AutoPtr PendingTasksManager::getPendingGradidoTransaction(int pendingTaskId) { Poco::ScopedLock _lock(mWorkMutex); - for (auto map_it = mPendingTasks.begin(); map_it != mPendingTasks.end(); map_it++) + for (auto map_it = mPendingGradidoTransactions.begin(); map_it != mPendingGradidoTransactions.end(); map_it++) { auto list = map_it->second; for (auto list_it = list->begin(); list_it != list->end(); list_it++) diff --git a/login_server/src/cpp/SingletonManager/PendingTasksManager.h b/login_server/src/cpp/SingletonManager/PendingTasksManager.h index 2ee96266a..3d8398eae 100644 --- a/login_server/src/cpp/SingletonManager/PendingTasksManager.h +++ b/login_server/src/cpp/SingletonManager/PendingTasksManager.h @@ -13,9 +13,10 @@ #ifndef GRADIDO_LOGIN_SERVER_SINGLETON_MANAGER_PENDING_TASKS_MANAGER #define GRADIDO_LOGIN_SERVER_SINGLETON_MANAGER_PENDING_TASKS_MANAGER -#include "../controller/PendingTask.h" -#include "../controller/User.h" -#include "../model/gradido/Transaction.h" +#include "controller/PendingTask.h" +#include "model/gradido/Transaction.h" +#include "controller/User.h" +#include "model/gradido/Transaction.h" class UserUpdateGroupPage; @@ -24,6 +25,7 @@ class PendingTasksManager: protected UniLib::lib::MultithreadContainer friend UserUpdateGroupPage; public: typedef std::list> PendingTaskList; + typedef std::list> PendingGradidoTaskList; ~PendingTasksManager(); @@ -34,8 +36,9 @@ public: //! \return -1 task is zero //! \return 0 if added - int addTask(Poco::AutoPtr task); - bool removeTask(Poco::AutoPtr task); + int addTask(Poco::AutoPtr gradidoTransactionTask); + + bool removeTask(Poco::AutoPtr gradidoTransactionTask); //! check if tasks can be removed void checkForFinishedTasks(Poco::Timer& timer); @@ -43,12 +46,12 @@ public: //! by calling this, important is to call lock to prevent vanishing the list while working with it, //! and unlock afterwards //! \return list or nullptr if no list for user exist - const PendingTaskList* getTaskListForUser(int userId) const; - bool hasPendingTask(Poco::AutoPtr user, model::table::TaskType type); - std::vector> getPendingTasks(Poco::AutoPtr user, model::table::TaskType type); - Poco::AutoPtr getPendingTask(int pendingTaskId); - std::vector> getTransactionsUserMustSign(Poco::AutoPtr user); - std::vector> getTransactionSomeoneMustSign(Poco::AutoPtr user); + const PendingGradidoTaskList* getGradidoTransactionsForUser(int userId) const; + bool hasPendingGradidoTransaction(Poco::AutoPtr user, model::table::TaskType type); + std::vector> getPendingGradidoTransactions(Poco::AutoPtr user, model::table::TaskType type); + Poco::AutoPtr getPendingGradidoTransaction(int pendingTaskId); + std::vector> getTransactionsUserMustSign(Poco::AutoPtr user); + std::vector> getTransactionSomeoneMustSign(Poco::AutoPtr user); protected: @@ -58,8 +61,10 @@ protected: std::map mPendingTasks; + std::map mPendingGradidoTransactions; //! \return list for user, creating new list and map entry if not exist PendingTaskList* getTaskListForUser(int userId); + PendingGradidoTaskList* getGradidoTransactionsForUser(int userId); }; diff --git a/login_server/src/cpsp/CheckTransaction.cpsp b/login_server/src/cpsp/CheckTransaction.cpsp index e95629f3d..700201f68 100644 --- a/login_server/src/cpsp/CheckTransaction.cpsp +++ b/login_server/src/cpsp/CheckTransaction.cpsp @@ -46,10 +46,7 @@ enum PageState { PageState state = PAGE_NO_TRANSACTIONS; - - - Poco::AutoPtr pending_task; - model::gradido::Transaction* transaction = nullptr; + Poco::AutoPtr transaction; Poco::AutoPtr transaction_body; if(!form.empty()) @@ -64,10 +61,9 @@ enum PageState { if(DataTypeConverter::NUMBER_PARSE_OKAY == DataTypeConverter::strToInt(pending_task_id_string, pending_task_id)) { // load transaction from pending task manager - pending_task = pt->getPendingTask(pending_task_id); - if(!pending_task.isNull() && pending_task->getModel()->isGradidoTransaction()) + transaction = pt->getPendingGradidoTransaction(pending_task_id); + if(!transaction.isNull()) { - transaction = dynamic_cast(pending_task.get()); if(transaction->hasSigned(account_user)) { transaction = nullptr; } else { @@ -78,10 +74,11 @@ enum PageState { { //mSession->finalizeTransaction(false, true); // - if(transaction && transaction->getModel()->getUserId() == user_model->getID()) + if(!transaction.isNull() && transaction->getModel()->getUserId() == user_model->getID()) { - pt->removeTask(pending_task); - transaction->deleteFromDB(); + if(pt->removeTask(transaction)) { + transaction->deleteFromDB(); + } transaction = nullptr; } } @@ -110,7 +107,7 @@ enum PageState { } if(!hasErrors) { //mSession->finalizeTransaction(true, false); - if(transaction && transaction->sign(account_user)) { + if(!transaction.isNull() && transaction->sign(account_user)) { transaction = nullptr; } } @@ -129,15 +126,15 @@ enum PageState { } auto transactions_user_must_sign = pt->getTransactionsUserMustSign(account_user); - std::vector> transactions_someone_must_sign; + std::vector> transactions_someone_must_sign; // TODO: work with community server roles if(user_model->getRole() == model::table::ROLE_ADMIN) { transactions_someone_must_sign = pt->getTransactionSomeoneMustSign(account_user); } - std::vector> transactions_to_sign; + std::vector> transactions_to_sign; bool transaction_removeable = false; int transaction_to_sign_index = 0; - if(!transaction) + if(!transaction.isNull()) { if(transactions_user_must_sign.size() > skip_count) { transactions_to_sign = transactions_user_must_sign; @@ -149,7 +146,7 @@ enum PageState { if(transactions_to_sign.size() > transaction_to_sign_index) { - transaction = dynamic_cast(transactions_to_sign[transaction_to_sign_index].get()); + transaction = transactions_to_sign[transaction_to_sign_index]; transaction_body = transaction->getTransactionBody(); // user can only delete there own transactions // TODO: Auto timeout for community transactions @@ -181,7 +178,7 @@ enum PageState { { enableLogout = false; } - if(PAGE_NO_TRANSACTIONS == state && transaction && !transaction_body.isNull()) + if(PAGE_NO_TRANSACTIONS == state && !transaction.isNull() && !transaction_body.isNull()) { auto transactionType = transaction_body->getType(); memo = transaction_body->getMemo(); @@ -326,7 +323,7 @@ enum PageState {
- <% if(transaction) { %> + <% if(!transaction.isNull()) { %> <% } %> diff --git a/login_server/src/cpsp/UserUpdateGroup.cpsp b/login_server/src/cpsp/UserUpdateGroup.cpsp index c83c1e977..64dcf86a3 100644 --- a/login_server/src/cpsp/UserUpdateGroup.cpsp +++ b/login_server/src/cpsp/UserUpdateGroup.cpsp @@ -73,15 +73,14 @@ enum PageState { pt->lock("userUpdateGroup Page"); - auto has_pending_group_add_member_task = pt->hasPendingTask(user, model::table::TASK_TYPE_GROUP_ADD_MEMBER); + auto has_pending_group_add_member_task = pt->hasPendingGradidoTransaction(user, model::table::TASK_TYPE_GROUP_ADD_MEMBER); auto referer_was_checkTransaction = refererString.find("checkTransactions") != std::string::npos; if(has_pending_group_add_member_task) { state = PAGE_STATE_REQUEST_IS_RUNNING; - std::vector> tasks = pt->getPendingTasks(user, model::table::TASK_TYPE_GROUP_ADD_MEMBER); + auto tasks = pt->getPendingGradidoTransactions(user, model::table::TASK_TYPE_GROUP_ADD_MEMBER); // should be only one - Poco::AutoPtr transaction = tasks[0].cast(); + auto transaction = tasks[0]; if(transaction->getSignCount() == 0) { - pt->unlock(); response.redirect(getBaseUrl() + "/checkTransactions"); return; From 2ab92d1a539235c4df7798a856e20eb6d53bc28b Mon Sep 17 00:00:00 2001 From: Moriz Wahl Date: Wed, 14 Jul 2021 20:22:15 +0200 Subject: [PATCH 0655/1050] send email for password reset --- backend/src/graphql/resolvers/UserResolver.ts | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/backend/src/graphql/resolvers/UserResolver.ts b/backend/src/graphql/resolvers/UserResolver.ts index aa83894e4..85571c5ab 100644 --- a/backend/src/graphql/resolvers/UserResolver.ts +++ b/backend/src/graphql/resolvers/UserResolver.ts @@ -1,5 +1,5 @@ // import jwt from 'jsonwebtoken' -import { Resolver, Query, /* Mutation, */ Args } from 'type-graphql' +import { Resolver, Query, /* Mutation, */ Args, Arg } from 'type-graphql' import CONFIG from '../../config' import { LoginResponse } from '../models/User' import { UnsecureLoginArgs } from '../inputs/LoginUserInput' @@ -43,6 +43,16 @@ export class UserResolver { }, } + // forgot password request + /* + @Query(() => null) + // eslint-disable-next-line @typescript-eslint/no-explicit-any + async sendEmail(@Arg() email: String): Promise { + const result = await apiPost(CONFIG.LOGIN_API_URL + 'sendEmail', { email }) + return + } + */ + // create and return the json web token // The expire doesn't help us here. The client needs to track when the token expires on its own, // since every action prolongs the time the session is valid. From 5c93ac719134dad5477b0f0e5d3639dfb05fbdc6 Mon Sep 17 00:00:00 2001 From: einhornimmond Date: Thu, 15 Jul 2021 11:53:12 +0200 Subject: [PATCH 0656/1050] make destructor from all model::table protected to prevent misuse because of reference counting --- login_server/src/cpp/controller/EmailVerificationCode.cpp | 7 +++++-- login_server/src/cpp/controller/User.cpp | 2 +- login_server/src/cpp/model/table/AppAccessToken.h | 4 +++- login_server/src/cpp/model/table/ElopageBuy.h | 5 +++-- login_server/src/cpp/model/table/EmailOptIn.h | 4 +++- login_server/src/cpp/model/table/Group.h | 5 +++-- login_server/src/cpp/model/table/ModelBase.h | 7 ++++++- login_server/src/cpp/model/table/PendingTask.h | 3 ++- login_server/src/cpp/model/table/User.h | 3 ++- login_server/src/cpp/model/table/UserBackup.h | 4 ++-- login_server/src/cpp/model/table/UserRole.h | 5 +++-- 11 files changed, 33 insertions(+), 16 deletions(-) diff --git a/login_server/src/cpp/controller/EmailVerificationCode.cpp b/login_server/src/cpp/controller/EmailVerificationCode.cpp index 16fcefbb8..afbc0eb42 100644 --- a/login_server/src/cpp/controller/EmailVerificationCode.cpp +++ b/login_server/src/cpp/controller/EmailVerificationCode.cpp @@ -70,10 +70,13 @@ namespace controller { Poco::AutoPtr EmailVerificationCode::loadOrCreate(int user_id, model::table::EmailOptInType type) { - model::table::EmailOptIn db; + auto db = new model::table::EmailOptIn(); std::vector fields = { "user_id", "email_opt_in_type_id" }; std::vector field_values = { user_id, (int)type }; - auto results = db.loadFromDB(fields, field_values); + auto results = db->loadFromDB(fields, field_values); + db->release(); + db = nullptr; + if (results.size() > 0) { return Poco::AutoPtr(new EmailVerificationCode(new model::table::EmailOptIn(results[0]))); } diff --git a/login_server/src/cpp/controller/User.cpp b/login_server/src/cpp/controller/User.cpp index 955b780d0..576b2b8c8 100644 --- a/login_server/src/cpp/controller/User.cpp +++ b/login_server/src/cpp/controller/User.cpp @@ -136,7 +136,7 @@ namespace controller { { auto db = new model::table::User(); if (0 == db->loadFromDB("id", user_id)) { - delete db; + db->release(); return nullptr; } auto user = new User(db); diff --git a/login_server/src/cpp/model/table/AppAccessToken.h b/login_server/src/cpp/model/table/AppAccessToken.h index 821cb6e3c..bbee0568d 100644 --- a/login_server/src/cpp/model/table/AppAccessToken.h +++ b/login_server/src/cpp/model/table/AppAccessToken.h @@ -16,7 +16,7 @@ namespace model { AppAccessToken(int user_id, const Poco::UInt64& code); AppAccessToken(const AppAccessCodeTuple& tuple); AppAccessToken(); - ~AppAccessToken(); + // generic db operations const char* getTableName() const { return "app_access_tokens"; } @@ -32,6 +32,8 @@ namespace model { size_t update(); protected: + ~AppAccessToken(); + Poco::Data::Statement _loadFromDB(Poco::Data::Session session, const std::string& fieldName); Poco::Data::Statement _loadIdFromDB(Poco::Data::Session session); Poco::Data::Statement _insertIntoDB(Poco::Data::Session session); diff --git a/login_server/src/cpp/model/table/ElopageBuy.h b/login_server/src/cpp/model/table/ElopageBuy.h index e2b88fb1b..dec4727a3 100644 --- a/login_server/src/cpp/model/table/ElopageBuy.h +++ b/login_server/src/cpp/model/table/ElopageBuy.h @@ -31,14 +31,15 @@ namespace model { { public: ElopageBuy(const Poco::Net::NameValueCollection& elopage_webhook_requestData); - ~ElopageBuy(); - + // generic db operations const char* getTableName() const { return "elopage_buys"; } std::string toString(); protected: + ~ElopageBuy(); + Poco::Data::Statement _loadIdFromDB(Poco::Data::Session session); Poco::Data::Statement _loadFromDB(Poco::Data::Session session, const std::string& fieldName); Poco::Data::Statement _insertIntoDB(Poco::Data::Session session); diff --git a/login_server/src/cpp/model/table/EmailOptIn.h b/login_server/src/cpp/model/table/EmailOptIn.h index c7a21d84c..9e0fc335a 100644 --- a/login_server/src/cpp/model/table/EmailOptIn.h +++ b/login_server/src/cpp/model/table/EmailOptIn.h @@ -26,7 +26,7 @@ namespace model { EmailOptIn(const Poco::UInt64& code, EmailOptInType type); EmailOptIn(const EmailOptInTuple& tuple); EmailOptIn(); - ~EmailOptIn(); + // generic db operations const char* getTableName() const { return "email_opt_in"; } @@ -46,6 +46,8 @@ namespace model { static const char* typeToString(EmailOptInType type); static EmailOptInType stringToType(const std::string& typeString); protected: + ~EmailOptIn(); + Poco::Data::Statement _loadFromDB(Poco::Data::Session session, const std::string& fieldName); Poco::Data::Statement _loadIdFromDB(Poco::Data::Session session); Poco::Data::Statement _loadMultipleFromDB(Poco::Data::Session session, const std::string& fieldName); diff --git a/login_server/src/cpp/model/table/Group.h b/login_server/src/cpp/model/table/Group.h index 8e0c56e40..e998cfb7c 100644 --- a/login_server/src/cpp/model/table/Group.h +++ b/login_server/src/cpp/model/table/Group.h @@ -15,8 +15,7 @@ namespace model { Group(); Group(const std::string& alias, const std::string& name, const std::string& url, const std::string& host, const std::string& home, const std::string& description); Group(GroupTuple userTuple); - ~Group(); - + // generic db operations const char* getTableName() const { return "groups"; } std::string toString(); @@ -35,6 +34,8 @@ namespace model { inline void setHome(const std::string& home) { UNIQUE_LOCK; mHome = home; } protected: + ~Group(); + Poco::Data::Statement _loadFromDB(Poco::Data::Session session, const std::string& fieldName); Poco::Data::Statement _loadAllFromDB(Poco::Data::Session session); Poco::Data::Statement _loadMultipleFromDB(Poco::Data::Session session, const std::string& fieldName); diff --git a/login_server/src/cpp/model/table/ModelBase.h b/login_server/src/cpp/model/table/ModelBase.h index c769dcfd9..95856087f 100644 --- a/login_server/src/cpp/model/table/ModelBase.h +++ b/login_server/src/cpp/model/table/ModelBase.h @@ -32,7 +32,7 @@ namespace model { public: ModelBase(int id) :mID(id), mReferenceCount(1) {} ModelBase() : mID(0), mReferenceCount(1) {} - virtual ~ModelBase(); + virtual const char* getTableName() const = 0; //! called from within of some catch to give more information for debugging, don't lock mutex! @@ -90,6 +90,8 @@ namespace model { void duplicate(); void release(); protected: + virtual ~ModelBase(); + virtual Poco::Data::Statement _loadIdFromDB(Poco::Data::Session session) = 0; virtual Poco::Data::Statement _loadFromDB(Poco::Data::Session session, const std::string& fieldName) = 0; virtual Poco::Data::Statement _loadFromDB(Poco::Data::Session session, const std::vector& fieldNames, MysqlConditionType conditionType = MYSQL_CONDITION_AND); @@ -105,6 +107,9 @@ namespace model { mutable std::shared_mutex mSharedMutex; + private: + + }; template diff --git a/login_server/src/cpp/model/table/PendingTask.h b/login_server/src/cpp/model/table/PendingTask.h index ea6aad92b..3e7a0e8d5 100644 --- a/login_server/src/cpp/model/table/PendingTask.h +++ b/login_server/src/cpp/model/table/PendingTask.h @@ -28,7 +28,6 @@ namespace model { PendingTask(int userId, std::string serializedProtoRequest, TaskType type); PendingTask(const PendingTaskTuple& tuple); - ~PendingTask(); // generic db operations const char* getTableName() const { return "pending_tasks"; } @@ -65,6 +64,8 @@ namespace model { static const char* typeToString(TaskType type); protected: + ~PendingTask(); + Poco::Data::Statement _loadFromDB(Poco::Data::Session session, const std::string& fieldName); Poco::Data::Statement _loadAllFromDB(Poco::Data::Session session); Poco::Data::Statement _loadIdFromDB(Poco::Data::Session session); diff --git a/login_server/src/cpp/model/table/User.h b/login_server/src/cpp/model/table/User.h index dd51d7498..96d85565d 100644 --- a/login_server/src/cpp/model/table/User.h +++ b/login_server/src/cpp/model/table/User.h @@ -38,7 +38,7 @@ namespace model { User(); User(UserTuple tuple); User(const std::string& email, const std::string& first_name, const std::string& last_name, int group_id, Poco::UInt64 passwordHashed = 0, std::string languageKey = "de"); - ~User(); + // generic db operations const char* getTableName() const { return "users"; } @@ -97,6 +97,7 @@ namespace model { Poco::JSON::Object getJson(); protected: + ~User(); Poco::Data::Statement _loadFromDB(Poco::Data::Session session, const std::string& fieldName); Poco::Data::Statement _loadIdFromDB(Poco::Data::Session session); diff --git a/login_server/src/cpp/model/table/UserBackup.h b/login_server/src/cpp/model/table/UserBackup.h index c5084b0f7..a2f407fbd 100644 --- a/login_server/src/cpp/model/table/UserBackup.h +++ b/login_server/src/cpp/model/table/UserBackup.h @@ -15,8 +15,7 @@ namespace model { UserBackup(int user_id, const std::string& passphrase, ServerConfig::Mnemonic_Types type); UserBackup(const UserBackupsTuple& tuple); UserBackup(); - ~UserBackup(); - + // generic db operations const char* getTableName() const { return "user_backups"; } std::string toString(); @@ -29,6 +28,7 @@ namespace model { protected: + ~UserBackup(); //! \brief call from constructor if mMnemonicType -1 //! diff --git a/login_server/src/cpp/model/table/UserRole.h b/login_server/src/cpp/model/table/UserRole.h index 7683bff94..1369dbe86 100644 --- a/login_server/src/cpp/model/table/UserRole.h +++ b/login_server/src/cpp/model/table/UserRole.h @@ -23,7 +23,6 @@ namespace model { UserRole(int user_id, RoleType type); UserRole(const UserRolesTuple& tuple); UserRole(); - ~UserRole(); // generic db operations const char* getTableName() const { return "user_roles"; } @@ -35,7 +34,9 @@ namespace model { inline void setUserId(int user_Id) { mUserId = user_Id; } static const char* typeToString(RoleType type); - protected: + protected: + ~UserRole(); + Poco::Data::Statement _loadFromDB(Poco::Data::Session session, const std::string& fieldName); Poco::Data::Statement _loadIdFromDB(Poco::Data::Session session); Poco::Data::Statement _loadMultipleFromDB(Poco::Data::Session session, const std::string& fieldName); From 5166b863c7e179d9e4211ff525edc449d2782715 Mon Sep 17 00:00:00 2001 From: einhorn_b Date: Thu, 15 Jul 2021 11:55:25 +0200 Subject: [PATCH 0657/1050] fix check transaction page --- login_server/src/cpsp/CheckTransaction.cpsp | 31 +++++++++++---------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/login_server/src/cpsp/CheckTransaction.cpsp b/login_server/src/cpsp/CheckTransaction.cpsp index 700201f68..4974a3e8c 100644 --- a/login_server/src/cpsp/CheckTransaction.cpsp +++ b/login_server/src/cpsp/CheckTransaction.cpsp @@ -134,7 +134,7 @@ enum PageState { std::vector> transactions_to_sign; bool transaction_removeable = false; int transaction_to_sign_index = 0; - if(!transaction.isNull()) + if(transaction.isNull()) { if(transactions_user_must_sign.size() > skip_count) { transactions_to_sign = transactions_user_must_sign; @@ -143,7 +143,7 @@ enum PageState { transactions_to_sign = transactions_someone_must_sign; transaction_to_sign_index = skip_count - transactions_user_must_sign.size(); } - + if(transactions_to_sign.size() > transaction_to_sign_index) { transaction = transactions_to_sign[transaction_to_sign_index]; @@ -200,7 +200,7 @@ enum PageState { } } - + std::clog << "state: " << std::to_string(state) << std::endl; %><%@ include file="include/header_navi_chr.cpsp" %> <%= getErrorsHtml() %> @@ -267,18 +267,19 @@ enum PageState { <% } else if(PAGE_TRANSACTION_GROUP_ADD_MEMBER == state) { - auto groupMemberUpdateTransaction = transaction_body->getGroupMemberUpdate(); - auto groups = controller::Group::load(groupMemberUpdateTransaction->getTargetGroupAlias()); - Poco::AutoPtr group_model; - Poco::AutoPtr user; - if(groups.size() == 1 && !groups[0].isNull()) group_model = groups[0]->getModel(); - auto user_id = transaction->getModel()->getUserId(); - if(user_id == user_model->getID()) { - user = account_user; - } else { - user = controller::User::sload(user_id); - } - %> + auto groupMemberUpdateTransaction = transaction_body->getGroupMemberUpdate(); + auto groups = controller::Group::load(groupMemberUpdateTransaction->getTargetGroupAlias()); + Poco::AutoPtr group_model; + Poco::AutoPtr user; + if(groups.size() == 1 && !groups[0].isNull()) group_model = groups[0]->getModel(); + auto user_id = transaction->getModel()->getUserId(); + if(user_id == user_model->getID()) { + user = account_user; + } else { + user = controller::User::sload(user_id); + } + + %>

<%= gettext("Benutzer zu einer Gruppe hinzufügen") %>

<% if(!user.isNull()) { %> From 739bb8b2499d60c3f2fe02d93a67ec3d43f3592c Mon Sep 17 00:00:00 2001 From: einhorn_b Date: Thu, 15 Jul 2021 11:56:03 +0200 Subject: [PATCH 0658/1050] don't remove transaction direct from pending task manager, because than add group member don't work --- login_server/src/cpp/model/gradido/Transaction.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/login_server/src/cpp/model/gradido/Transaction.cpp b/login_server/src/cpp/model/gradido/Transaction.cpp index 00bfc92ac..253d7b5f4 100644 --- a/login_server/src/cpp/model/gradido/Transaction.cpp +++ b/login_server/src/cpp/model/gradido/Transaction.cpp @@ -360,8 +360,8 @@ namespace model { //transaction_send_task->scheduleTask(transaction_send_task); auto pt = PendingTasksManager::getInstance(); - pt->removeTask(Poco::AutoPtr(this, true)); - deleteFromDB(); + // pt->removeTask(Poco::AutoPtr(this, true)); + // deleteFromDB(); return 1 == runSendTransaction(); //return true; } From cee7d7ac3c4c8c1f481cc3a87fb15422c858413b Mon Sep 17 00:00:00 2001 From: einhornimmond Date: Wed, 14 Jul 2021 13:07:35 +0200 Subject: [PATCH 0659/1050] Remove dynamic cast because it lead to errors again and agin (Poco::AutoPtr don't work correct with that) --- .../SingletonManager/PendingTasksManager.cpp | 132 +++++++++--------- .../SingletonManager/PendingTasksManager.h | 27 ++-- login_server/src/cpsp/CheckTransaction.cpsp | 31 ++-- login_server/src/cpsp/UserUpdateGroup.cpsp | 7 +- 4 files changed, 97 insertions(+), 100 deletions(-) diff --git a/login_server/src/cpp/SingletonManager/PendingTasksManager.cpp b/login_server/src/cpp/SingletonManager/PendingTasksManager.cpp index d2ed2af1a..f3faae6bf 100644 --- a/login_server/src/cpp/SingletonManager/PendingTasksManager.cpp +++ b/login_server/src/cpp/SingletonManager/PendingTasksManager.cpp @@ -15,10 +15,10 @@ PendingTasksManager::~PendingTasksManager() Poco::ScopedLock _lock(mWorkMutex); mCheckForFinishedTimer.stop(); - for (auto it = mPendingTasks.begin(); it != mPendingTasks.end(); it++) { + for (auto it = mPendingGradidoTransactions.begin(); it != mPendingGradidoTransactions.end(); it++) { delete it->second; } - mPendingTasks.clear(); + mPendingGradidoTransactions.clear(); } PendingTasksManager* PendingTasksManager::getInstance() @@ -37,31 +37,32 @@ int PendingTasksManager::load() return 0; } -int PendingTasksManager::addTask(Poco::AutoPtr task) + +int PendingTasksManager::addTask(Poco::AutoPtr gradidoTransactionTask) { - if (task.isNull() || !task->getModel()) { + if (gradidoTransactionTask.isNull() || !gradidoTransactionTask->getModel()) { return -1; } - - auto model = task->getModel(); - Poco::ScopedLock _lock(mWorkMutex); - auto pending_task_list = getTaskListForUser(model->getUserId()); - pending_task_list->push_back(task); - return 0; + auto model = gradidoTransactionTask->getModel(); + Poco::ScopedLock _lock(mWorkMutex); + auto pending_task_list = getGradidoTransactionsForUser(model->getUserId()); + pending_task_list->push_back(gradidoTransactionTask); + return 0; } -bool PendingTasksManager::removeTask(Poco::AutoPtr task) + +bool PendingTasksManager::removeTask(Poco::AutoPtr gradidoTransactionTask) { - if (task.isNull() || !task->getModel()) { + if (gradidoTransactionTask.isNull() || !gradidoTransactionTask->getModel()) { return false; } - auto model = task->getModel(); + auto model = gradidoTransactionTask->getModel(); Poco::ScopedLock _lock(mWorkMutex); - auto pending_task_list = getTaskListForUser(model->getUserId()); + auto pending_task_list = getGradidoTransactionsForUser(model->getUserId()); bool removed = false; for (auto it = pending_task_list->begin(); it != pending_task_list->end(); it++) { - if (task.get() == it->get()) { + if (gradidoTransactionTask.get() == it->get()) { pending_task_list->erase(it); removed = true; break; @@ -71,41 +72,42 @@ bool PendingTasksManager::removeTask(Poco::AutoPtr task return removed; } -PendingTasksManager::PendingTaskList* PendingTasksManager::getTaskListForUser(int userId) + +PendingTasksManager::PendingGradidoTaskList* PendingTasksManager::getGradidoTransactionsForUser(int userId) { Poco::ScopedLock _lock(mWorkMutex); - auto it = mPendingTasks.find(userId); - if (it == mPendingTasks.end()) { - auto pending_list = new PendingTaskList; - mPendingTasks.insert(std::pair(userId, pending_list)); + auto it = mPendingGradidoTransactions.find(userId); + if (it == mPendingGradidoTransactions.end()) { + auto pending_list = new PendingGradidoTaskList; + mPendingGradidoTransactions.insert(std::pair(userId, pending_list)); return pending_list; } else { return it->second; } - } -const PendingTasksManager::PendingTaskList* PendingTasksManager::getTaskListForUser(int userId) const + + +const PendingTasksManager::PendingGradidoTaskList* PendingTasksManager::getGradidoTransactionsForUser(int userId) const { Poco::ScopedLock _lock(mWorkMutex); - auto it = mPendingTasks.find(userId); - if (it != mPendingTasks.end()) { + auto it = mPendingGradidoTransactions.find(userId); + if (it != mPendingGradidoTransactions.end()) { return it->second; } return nullptr; } -bool PendingTasksManager::hasPendingTask(Poco::AutoPtr user, model::table::TaskType type) +bool PendingTasksManager::hasPendingGradidoTransaction(Poco::AutoPtr user, model::table::TaskType type) { auto model = user->getModel(); int user_id = model->getID(); Poco::ScopedLock _lock(mWorkMutex); - auto it = mPendingTasks.find(user_id); - if (it != mPendingTasks.end()) { + auto it = mPendingGradidoTransactions.find(user_id); + if (it != mPendingGradidoTransactions.end()) { auto task_list = it->second; - for (auto task = task_list->begin(); task != task_list->end(); it++) { - auto task_model = (*task)->getModel(); - if (type == task_model->getTaskType()) { + for (auto taskIt = task_list->begin(); taskIt != task_list->end(); taskIt++) { + if ((*taskIt)->getModel()->getTaskType() == type) { return true; } } @@ -114,20 +116,21 @@ bool PendingTasksManager::hasPendingTask(Poco::AutoPtr user, m } -std::vector> PendingTasksManager::getPendingTasks(Poco::AutoPtr user, model::table::TaskType type) + +std::vector> PendingTasksManager::getPendingGradidoTransactions(Poco::AutoPtr user, model::table::TaskType type) { auto model = user->getModel(); int user_id = model->getID(); Poco::ScopedLock _lock(mWorkMutex); - std::vector> results; + std::vector> results; - auto it = mPendingTasks.find(user_id); - if (it != mPendingTasks.end()) { + auto it = mPendingGradidoTransactions.find(user_id); + if (it != mPendingGradidoTransactions.end()) { auto task_list = it->second; results.reserve(task_list->size()); for (auto taskIt = task_list->begin(); taskIt != task_list->end(); taskIt++) { auto task_model = (*taskIt)->getModel(); - if (type == task_model->getTaskType()) { + if (task_model->getTaskType() == type) { results.push_back(*taskIt); } } @@ -135,48 +138,42 @@ std::vector> PendingTasksManager::getPend return results; } -std::vector> PendingTasksManager::getTransactionsUserMustSign(Poco::AutoPtr user) +std::vector> PendingTasksManager::getTransactionsUserMustSign(Poco::AutoPtr user) { // TODO: don't use cast here, because can lead to errors Poco::ScopedLock _lock(mWorkMutex); - std::vector> transactions_to_sign; + std::vector> transactions_to_sign; - for (auto map_it = mPendingTasks.begin(); map_it != mPendingTasks.end(); map_it++) + for (auto map_it = mPendingGradidoTransactions.begin(); map_it != mPendingGradidoTransactions.end(); map_it++) { auto list = map_it->second; for (auto list_it = list->begin(); list_it != list->end(); list_it++) { - if ((*list_it)->getModel()->isGradidoTransaction()) { - auto transaction = dynamic_cast(list_it->get()); - if (transaction->mustSign(user)) { - transactions_to_sign.push_back(*list_it); - } + if((*list_it)->mustSign(user)) { + transactions_to_sign.push_back(*list_it); } } } return transactions_to_sign; } -std::vector> PendingTasksManager::getTransactionSomeoneMustSign(Poco::AutoPtr user) +std::vector> PendingTasksManager::getTransactionSomeoneMustSign(Poco::AutoPtr user) { // TODO: don't use cast here, because can lead to errors Poco::ScopedLock _lock(mWorkMutex); - std::vector> transactions_to_sign; + std::vector> transactions_to_sign; if (user->getModel()->getRole() != model::table::ROLE_ADMIN) { return transactions_to_sign; } - for (auto map_it = mPendingTasks.begin(); map_it != mPendingTasks.end(); map_it++) + for (auto map_it = mPendingGradidoTransactions.begin(); map_it != mPendingGradidoTransactions.end(); map_it++) { auto list = map_it->second; for (auto list_it = list->begin(); list_it != list->end(); list_it++) { - if ((*list_it)->getModel()->isGradidoTransaction()) { - auto transaction = dynamic_cast(list_it->get()); - if (transaction->needSomeoneToSign(user)) { - transactions_to_sign.push_back(*list_it); - } + if ((*list_it)->needSomeoneToSign(user)) { + transactions_to_sign.push_back(*list_it); } } } @@ -189,27 +186,25 @@ void PendingTasksManager::checkForFinishedTasks(Poco::Timer& timer) Poco::ScopedLock _lock(mWorkMutex); try { - for (auto map_it = mPendingTasks.begin(); map_it != mPendingTasks.end(); map_it++) + for (auto map_it = mPendingGradidoTransactions.begin(); map_it != mPendingGradidoTransactions.end(); map_it++) { auto list = map_it->second; for (auto list_it = list->begin(); list_it != list->end(); list_it++) { - if ((*list_it)->getModel()->isGradidoTransaction()) { - auto transaction = dynamic_cast(list_it->get()); - auto json = transaction->getModel()->getResultJson(); - bool removeIt = false; - if (!json.isNull()) { - auto state = json->get("state"); - if (!state.isEmpty() && state.toString() == "success") { - removeIt = true; - } - } - if (removeIt) { - transaction->deleteFromDB(); - list_it = list->erase(list_it); - if (!list->size() || list_it == list->end()) break; + auto transaction = *list_it; + auto json = transaction->getModel()->getResultJson(); + bool removeIt = false; + if (!json.isNull()) { + auto state = json->get("state"); + if (!state.isEmpty() && state.toString() == "success") { + removeIt = true; } } + if (removeIt) { + transaction->deleteFromDB(); + list_it = list->erase(list_it); + if (!list->size() || list_it == list->end()) break; + } } } } @@ -224,10 +219,11 @@ void PendingTasksManager::checkForFinishedTasks(Poco::Timer& timer) } } -Poco::AutoPtr PendingTasksManager::getPendingTask(int pendingTaskId) + +Poco::AutoPtr PendingTasksManager::getPendingGradidoTransaction(int pendingTaskId) { Poco::ScopedLock _lock(mWorkMutex); - for (auto map_it = mPendingTasks.begin(); map_it != mPendingTasks.end(); map_it++) + for (auto map_it = mPendingGradidoTransactions.begin(); map_it != mPendingGradidoTransactions.end(); map_it++) { auto list = map_it->second; for (auto list_it = list->begin(); list_it != list->end(); list_it++) diff --git a/login_server/src/cpp/SingletonManager/PendingTasksManager.h b/login_server/src/cpp/SingletonManager/PendingTasksManager.h index 2ee96266a..3d8398eae 100644 --- a/login_server/src/cpp/SingletonManager/PendingTasksManager.h +++ b/login_server/src/cpp/SingletonManager/PendingTasksManager.h @@ -13,9 +13,10 @@ #ifndef GRADIDO_LOGIN_SERVER_SINGLETON_MANAGER_PENDING_TASKS_MANAGER #define GRADIDO_LOGIN_SERVER_SINGLETON_MANAGER_PENDING_TASKS_MANAGER -#include "../controller/PendingTask.h" -#include "../controller/User.h" -#include "../model/gradido/Transaction.h" +#include "controller/PendingTask.h" +#include "model/gradido/Transaction.h" +#include "controller/User.h" +#include "model/gradido/Transaction.h" class UserUpdateGroupPage; @@ -24,6 +25,7 @@ class PendingTasksManager: protected UniLib::lib::MultithreadContainer friend UserUpdateGroupPage; public: typedef std::list> PendingTaskList; + typedef std::list> PendingGradidoTaskList; ~PendingTasksManager(); @@ -34,8 +36,9 @@ public: //! \return -1 task is zero //! \return 0 if added - int addTask(Poco::AutoPtr task); - bool removeTask(Poco::AutoPtr task); + int addTask(Poco::AutoPtr gradidoTransactionTask); + + bool removeTask(Poco::AutoPtr gradidoTransactionTask); //! check if tasks can be removed void checkForFinishedTasks(Poco::Timer& timer); @@ -43,12 +46,12 @@ public: //! by calling this, important is to call lock to prevent vanishing the list while working with it, //! and unlock afterwards //! \return list or nullptr if no list for user exist - const PendingTaskList* getTaskListForUser(int userId) const; - bool hasPendingTask(Poco::AutoPtr user, model::table::TaskType type); - std::vector> getPendingTasks(Poco::AutoPtr user, model::table::TaskType type); - Poco::AutoPtr getPendingTask(int pendingTaskId); - std::vector> getTransactionsUserMustSign(Poco::AutoPtr user); - std::vector> getTransactionSomeoneMustSign(Poco::AutoPtr user); + const PendingGradidoTaskList* getGradidoTransactionsForUser(int userId) const; + bool hasPendingGradidoTransaction(Poco::AutoPtr user, model::table::TaskType type); + std::vector> getPendingGradidoTransactions(Poco::AutoPtr user, model::table::TaskType type); + Poco::AutoPtr getPendingGradidoTransaction(int pendingTaskId); + std::vector> getTransactionsUserMustSign(Poco::AutoPtr user); + std::vector> getTransactionSomeoneMustSign(Poco::AutoPtr user); protected: @@ -58,8 +61,10 @@ protected: std::map mPendingTasks; + std::map mPendingGradidoTransactions; //! \return list for user, creating new list and map entry if not exist PendingTaskList* getTaskListForUser(int userId); + PendingGradidoTaskList* getGradidoTransactionsForUser(int userId); }; diff --git a/login_server/src/cpsp/CheckTransaction.cpsp b/login_server/src/cpsp/CheckTransaction.cpsp index e95629f3d..700201f68 100644 --- a/login_server/src/cpsp/CheckTransaction.cpsp +++ b/login_server/src/cpsp/CheckTransaction.cpsp @@ -46,10 +46,7 @@ enum PageState { PageState state = PAGE_NO_TRANSACTIONS; - - - Poco::AutoPtr pending_task; - model::gradido::Transaction* transaction = nullptr; + Poco::AutoPtr transaction; Poco::AutoPtr transaction_body; if(!form.empty()) @@ -64,10 +61,9 @@ enum PageState { if(DataTypeConverter::NUMBER_PARSE_OKAY == DataTypeConverter::strToInt(pending_task_id_string, pending_task_id)) { // load transaction from pending task manager - pending_task = pt->getPendingTask(pending_task_id); - if(!pending_task.isNull() && pending_task->getModel()->isGradidoTransaction()) + transaction = pt->getPendingGradidoTransaction(pending_task_id); + if(!transaction.isNull()) { - transaction = dynamic_cast(pending_task.get()); if(transaction->hasSigned(account_user)) { transaction = nullptr; } else { @@ -78,10 +74,11 @@ enum PageState { { //mSession->finalizeTransaction(false, true); // - if(transaction && transaction->getModel()->getUserId() == user_model->getID()) + if(!transaction.isNull() && transaction->getModel()->getUserId() == user_model->getID()) { - pt->removeTask(pending_task); - transaction->deleteFromDB(); + if(pt->removeTask(transaction)) { + transaction->deleteFromDB(); + } transaction = nullptr; } } @@ -110,7 +107,7 @@ enum PageState { } if(!hasErrors) { //mSession->finalizeTransaction(true, false); - if(transaction && transaction->sign(account_user)) { + if(!transaction.isNull() && transaction->sign(account_user)) { transaction = nullptr; } } @@ -129,15 +126,15 @@ enum PageState { } auto transactions_user_must_sign = pt->getTransactionsUserMustSign(account_user); - std::vector> transactions_someone_must_sign; + std::vector> transactions_someone_must_sign; // TODO: work with community server roles if(user_model->getRole() == model::table::ROLE_ADMIN) { transactions_someone_must_sign = pt->getTransactionSomeoneMustSign(account_user); } - std::vector> transactions_to_sign; + std::vector> transactions_to_sign; bool transaction_removeable = false; int transaction_to_sign_index = 0; - if(!transaction) + if(!transaction.isNull()) { if(transactions_user_must_sign.size() > skip_count) { transactions_to_sign = transactions_user_must_sign; @@ -149,7 +146,7 @@ enum PageState { if(transactions_to_sign.size() > transaction_to_sign_index) { - transaction = dynamic_cast(transactions_to_sign[transaction_to_sign_index].get()); + transaction = transactions_to_sign[transaction_to_sign_index]; transaction_body = transaction->getTransactionBody(); // user can only delete there own transactions // TODO: Auto timeout for community transactions @@ -181,7 +178,7 @@ enum PageState { { enableLogout = false; } - if(PAGE_NO_TRANSACTIONS == state && transaction && !transaction_body.isNull()) + if(PAGE_NO_TRANSACTIONS == state && !transaction.isNull() && !transaction_body.isNull()) { auto transactionType = transaction_body->getType(); memo = transaction_body->getMemo(); @@ -326,7 +323,7 @@ enum PageState {

- <% if(transaction) { %> + <% if(!transaction.isNull()) { %> <% } %> diff --git a/login_server/src/cpsp/UserUpdateGroup.cpsp b/login_server/src/cpsp/UserUpdateGroup.cpsp index c83c1e977..64dcf86a3 100644 --- a/login_server/src/cpsp/UserUpdateGroup.cpsp +++ b/login_server/src/cpsp/UserUpdateGroup.cpsp @@ -73,15 +73,14 @@ enum PageState { pt->lock("userUpdateGroup Page"); - auto has_pending_group_add_member_task = pt->hasPendingTask(user, model::table::TASK_TYPE_GROUP_ADD_MEMBER); + auto has_pending_group_add_member_task = pt->hasPendingGradidoTransaction(user, model::table::TASK_TYPE_GROUP_ADD_MEMBER); auto referer_was_checkTransaction = refererString.find("checkTransactions") != std::string::npos; if(has_pending_group_add_member_task) { state = PAGE_STATE_REQUEST_IS_RUNNING; - std::vector> tasks = pt->getPendingTasks(user, model::table::TASK_TYPE_GROUP_ADD_MEMBER); + auto tasks = pt->getPendingGradidoTransactions(user, model::table::TASK_TYPE_GROUP_ADD_MEMBER); // should be only one - Poco::AutoPtr transaction = tasks[0].cast(); + auto transaction = tasks[0]; if(transaction->getSignCount() == 0) { - pt->unlock(); response.redirect(getBaseUrl() + "/checkTransactions"); return; From 49bada783973f64f97ea8cb39d0a26806255dd0f Mon Sep 17 00:00:00 2001 From: einhorn_b Date: Thu, 15 Jul 2021 11:55:25 +0200 Subject: [PATCH 0660/1050] fix check transaction page --- login_server/src/cpsp/CheckTransaction.cpsp | 31 +++++++++++---------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/login_server/src/cpsp/CheckTransaction.cpsp b/login_server/src/cpsp/CheckTransaction.cpsp index 700201f68..4974a3e8c 100644 --- a/login_server/src/cpsp/CheckTransaction.cpsp +++ b/login_server/src/cpsp/CheckTransaction.cpsp @@ -134,7 +134,7 @@ enum PageState { std::vector> transactions_to_sign; bool transaction_removeable = false; int transaction_to_sign_index = 0; - if(!transaction.isNull()) + if(transaction.isNull()) { if(transactions_user_must_sign.size() > skip_count) { transactions_to_sign = transactions_user_must_sign; @@ -143,7 +143,7 @@ enum PageState { transactions_to_sign = transactions_someone_must_sign; transaction_to_sign_index = skip_count - transactions_user_must_sign.size(); } - + if(transactions_to_sign.size() > transaction_to_sign_index) { transaction = transactions_to_sign[transaction_to_sign_index]; @@ -200,7 +200,7 @@ enum PageState { } } - + std::clog << "state: " << std::to_string(state) << std::endl; %><%@ include file="include/header_navi_chr.cpsp" %> <%= getErrorsHtml() %> @@ -267,18 +267,19 @@ enum PageState { <% } else if(PAGE_TRANSACTION_GROUP_ADD_MEMBER == state) { - auto groupMemberUpdateTransaction = transaction_body->getGroupMemberUpdate(); - auto groups = controller::Group::load(groupMemberUpdateTransaction->getTargetGroupAlias()); - Poco::AutoPtr group_model; - Poco::AutoPtr user; - if(groups.size() == 1 && !groups[0].isNull()) group_model = groups[0]->getModel(); - auto user_id = transaction->getModel()->getUserId(); - if(user_id == user_model->getID()) { - user = account_user; - } else { - user = controller::User::sload(user_id); - } - %> + auto groupMemberUpdateTransaction = transaction_body->getGroupMemberUpdate(); + auto groups = controller::Group::load(groupMemberUpdateTransaction->getTargetGroupAlias()); + Poco::AutoPtr group_model; + Poco::AutoPtr user; + if(groups.size() == 1 && !groups[0].isNull()) group_model = groups[0]->getModel(); + auto user_id = transaction->getModel()->getUserId(); + if(user_id == user_model->getID()) { + user = account_user; + } else { + user = controller::User::sload(user_id); + } + + %>

<%= gettext("Benutzer zu einer Gruppe hinzufügen") %>

<% if(!user.isNull()) { %> From 3e9cc2442bf73cc0afa47ac1c5761dc26b04baf5 Mon Sep 17 00:00:00 2001 From: einhorn_b Date: Thu, 15 Jul 2021 11:56:03 +0200 Subject: [PATCH 0661/1050] don't remove transaction direct from pending task manager, because than add group member don't work --- login_server/src/cpp/model/gradido/Transaction.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/login_server/src/cpp/model/gradido/Transaction.cpp b/login_server/src/cpp/model/gradido/Transaction.cpp index 00bfc92ac..253d7b5f4 100644 --- a/login_server/src/cpp/model/gradido/Transaction.cpp +++ b/login_server/src/cpp/model/gradido/Transaction.cpp @@ -360,8 +360,8 @@ namespace model { //transaction_send_task->scheduleTask(transaction_send_task); auto pt = PendingTasksManager::getInstance(); - pt->removeTask(Poco::AutoPtr(this, true)); - deleteFromDB(); + // pt->removeTask(Poco::AutoPtr(this, true)); + // deleteFromDB(); return 1 == runSendTransaction(); //return true; } From 9b21695387b684fcb48024fe7917090e6f21009c Mon Sep 17 00:00:00 2001 From: einhornimmond Date: Thu, 15 Jul 2021 11:53:12 +0200 Subject: [PATCH 0662/1050] make destructor from all model::table protected to prevent misuse because of reference counting --- login_server/src/cpp/controller/EmailVerificationCode.cpp | 7 +++++-- login_server/src/cpp/controller/User.cpp | 2 +- login_server/src/cpp/model/table/AppAccessToken.h | 4 +++- login_server/src/cpp/model/table/ElopageBuy.h | 5 +++-- login_server/src/cpp/model/table/EmailOptIn.h | 4 +++- login_server/src/cpp/model/table/Group.h | 5 +++-- login_server/src/cpp/model/table/ModelBase.h | 7 ++++++- login_server/src/cpp/model/table/PendingTask.h | 3 ++- login_server/src/cpp/model/table/User.h | 3 ++- login_server/src/cpp/model/table/UserBackup.h | 4 ++-- login_server/src/cpp/model/table/UserRole.h | 5 +++-- 11 files changed, 33 insertions(+), 16 deletions(-) diff --git a/login_server/src/cpp/controller/EmailVerificationCode.cpp b/login_server/src/cpp/controller/EmailVerificationCode.cpp index 16fcefbb8..afbc0eb42 100644 --- a/login_server/src/cpp/controller/EmailVerificationCode.cpp +++ b/login_server/src/cpp/controller/EmailVerificationCode.cpp @@ -70,10 +70,13 @@ namespace controller { Poco::AutoPtr EmailVerificationCode::loadOrCreate(int user_id, model::table::EmailOptInType type) { - model::table::EmailOptIn db; + auto db = new model::table::EmailOptIn(); std::vector fields = { "user_id", "email_opt_in_type_id" }; std::vector field_values = { user_id, (int)type }; - auto results = db.loadFromDB(fields, field_values); + auto results = db->loadFromDB(fields, field_values); + db->release(); + db = nullptr; + if (results.size() > 0) { return Poco::AutoPtr(new EmailVerificationCode(new model::table::EmailOptIn(results[0]))); } diff --git a/login_server/src/cpp/controller/User.cpp b/login_server/src/cpp/controller/User.cpp index 955b780d0..576b2b8c8 100644 --- a/login_server/src/cpp/controller/User.cpp +++ b/login_server/src/cpp/controller/User.cpp @@ -136,7 +136,7 @@ namespace controller { { auto db = new model::table::User(); if (0 == db->loadFromDB("id", user_id)) { - delete db; + db->release(); return nullptr; } auto user = new User(db); diff --git a/login_server/src/cpp/model/table/AppAccessToken.h b/login_server/src/cpp/model/table/AppAccessToken.h index 821cb6e3c..bbee0568d 100644 --- a/login_server/src/cpp/model/table/AppAccessToken.h +++ b/login_server/src/cpp/model/table/AppAccessToken.h @@ -16,7 +16,7 @@ namespace model { AppAccessToken(int user_id, const Poco::UInt64& code); AppAccessToken(const AppAccessCodeTuple& tuple); AppAccessToken(); - ~AppAccessToken(); + // generic db operations const char* getTableName() const { return "app_access_tokens"; } @@ -32,6 +32,8 @@ namespace model { size_t update(); protected: + ~AppAccessToken(); + Poco::Data::Statement _loadFromDB(Poco::Data::Session session, const std::string& fieldName); Poco::Data::Statement _loadIdFromDB(Poco::Data::Session session); Poco::Data::Statement _insertIntoDB(Poco::Data::Session session); diff --git a/login_server/src/cpp/model/table/ElopageBuy.h b/login_server/src/cpp/model/table/ElopageBuy.h index e2b88fb1b..dec4727a3 100644 --- a/login_server/src/cpp/model/table/ElopageBuy.h +++ b/login_server/src/cpp/model/table/ElopageBuy.h @@ -31,14 +31,15 @@ namespace model { { public: ElopageBuy(const Poco::Net::NameValueCollection& elopage_webhook_requestData); - ~ElopageBuy(); - + // generic db operations const char* getTableName() const { return "elopage_buys"; } std::string toString(); protected: + ~ElopageBuy(); + Poco::Data::Statement _loadIdFromDB(Poco::Data::Session session); Poco::Data::Statement _loadFromDB(Poco::Data::Session session, const std::string& fieldName); Poco::Data::Statement _insertIntoDB(Poco::Data::Session session); diff --git a/login_server/src/cpp/model/table/EmailOptIn.h b/login_server/src/cpp/model/table/EmailOptIn.h index c7a21d84c..9e0fc335a 100644 --- a/login_server/src/cpp/model/table/EmailOptIn.h +++ b/login_server/src/cpp/model/table/EmailOptIn.h @@ -26,7 +26,7 @@ namespace model { EmailOptIn(const Poco::UInt64& code, EmailOptInType type); EmailOptIn(const EmailOptInTuple& tuple); EmailOptIn(); - ~EmailOptIn(); + // generic db operations const char* getTableName() const { return "email_opt_in"; } @@ -46,6 +46,8 @@ namespace model { static const char* typeToString(EmailOptInType type); static EmailOptInType stringToType(const std::string& typeString); protected: + ~EmailOptIn(); + Poco::Data::Statement _loadFromDB(Poco::Data::Session session, const std::string& fieldName); Poco::Data::Statement _loadIdFromDB(Poco::Data::Session session); Poco::Data::Statement _loadMultipleFromDB(Poco::Data::Session session, const std::string& fieldName); diff --git a/login_server/src/cpp/model/table/Group.h b/login_server/src/cpp/model/table/Group.h index 8e0c56e40..e998cfb7c 100644 --- a/login_server/src/cpp/model/table/Group.h +++ b/login_server/src/cpp/model/table/Group.h @@ -15,8 +15,7 @@ namespace model { Group(); Group(const std::string& alias, const std::string& name, const std::string& url, const std::string& host, const std::string& home, const std::string& description); Group(GroupTuple userTuple); - ~Group(); - + // generic db operations const char* getTableName() const { return "groups"; } std::string toString(); @@ -35,6 +34,8 @@ namespace model { inline void setHome(const std::string& home) { UNIQUE_LOCK; mHome = home; } protected: + ~Group(); + Poco::Data::Statement _loadFromDB(Poco::Data::Session session, const std::string& fieldName); Poco::Data::Statement _loadAllFromDB(Poco::Data::Session session); Poco::Data::Statement _loadMultipleFromDB(Poco::Data::Session session, const std::string& fieldName); diff --git a/login_server/src/cpp/model/table/ModelBase.h b/login_server/src/cpp/model/table/ModelBase.h index c769dcfd9..95856087f 100644 --- a/login_server/src/cpp/model/table/ModelBase.h +++ b/login_server/src/cpp/model/table/ModelBase.h @@ -32,7 +32,7 @@ namespace model { public: ModelBase(int id) :mID(id), mReferenceCount(1) {} ModelBase() : mID(0), mReferenceCount(1) {} - virtual ~ModelBase(); + virtual const char* getTableName() const = 0; //! called from within of some catch to give more information for debugging, don't lock mutex! @@ -90,6 +90,8 @@ namespace model { void duplicate(); void release(); protected: + virtual ~ModelBase(); + virtual Poco::Data::Statement _loadIdFromDB(Poco::Data::Session session) = 0; virtual Poco::Data::Statement _loadFromDB(Poco::Data::Session session, const std::string& fieldName) = 0; virtual Poco::Data::Statement _loadFromDB(Poco::Data::Session session, const std::vector& fieldNames, MysqlConditionType conditionType = MYSQL_CONDITION_AND); @@ -105,6 +107,9 @@ namespace model { mutable std::shared_mutex mSharedMutex; + private: + + }; template diff --git a/login_server/src/cpp/model/table/PendingTask.h b/login_server/src/cpp/model/table/PendingTask.h index ea6aad92b..3e7a0e8d5 100644 --- a/login_server/src/cpp/model/table/PendingTask.h +++ b/login_server/src/cpp/model/table/PendingTask.h @@ -28,7 +28,6 @@ namespace model { PendingTask(int userId, std::string serializedProtoRequest, TaskType type); PendingTask(const PendingTaskTuple& tuple); - ~PendingTask(); // generic db operations const char* getTableName() const { return "pending_tasks"; } @@ -65,6 +64,8 @@ namespace model { static const char* typeToString(TaskType type); protected: + ~PendingTask(); + Poco::Data::Statement _loadFromDB(Poco::Data::Session session, const std::string& fieldName); Poco::Data::Statement _loadAllFromDB(Poco::Data::Session session); Poco::Data::Statement _loadIdFromDB(Poco::Data::Session session); diff --git a/login_server/src/cpp/model/table/User.h b/login_server/src/cpp/model/table/User.h index dd51d7498..96d85565d 100644 --- a/login_server/src/cpp/model/table/User.h +++ b/login_server/src/cpp/model/table/User.h @@ -38,7 +38,7 @@ namespace model { User(); User(UserTuple tuple); User(const std::string& email, const std::string& first_name, const std::string& last_name, int group_id, Poco::UInt64 passwordHashed = 0, std::string languageKey = "de"); - ~User(); + // generic db operations const char* getTableName() const { return "users"; } @@ -97,6 +97,7 @@ namespace model { Poco::JSON::Object getJson(); protected: + ~User(); Poco::Data::Statement _loadFromDB(Poco::Data::Session session, const std::string& fieldName); Poco::Data::Statement _loadIdFromDB(Poco::Data::Session session); diff --git a/login_server/src/cpp/model/table/UserBackup.h b/login_server/src/cpp/model/table/UserBackup.h index c5084b0f7..a2f407fbd 100644 --- a/login_server/src/cpp/model/table/UserBackup.h +++ b/login_server/src/cpp/model/table/UserBackup.h @@ -15,8 +15,7 @@ namespace model { UserBackup(int user_id, const std::string& passphrase, ServerConfig::Mnemonic_Types type); UserBackup(const UserBackupsTuple& tuple); UserBackup(); - ~UserBackup(); - + // generic db operations const char* getTableName() const { return "user_backups"; } std::string toString(); @@ -29,6 +28,7 @@ namespace model { protected: + ~UserBackup(); //! \brief call from constructor if mMnemonicType -1 //! diff --git a/login_server/src/cpp/model/table/UserRole.h b/login_server/src/cpp/model/table/UserRole.h index 7683bff94..1369dbe86 100644 --- a/login_server/src/cpp/model/table/UserRole.h +++ b/login_server/src/cpp/model/table/UserRole.h @@ -23,7 +23,6 @@ namespace model { UserRole(int user_id, RoleType type); UserRole(const UserRolesTuple& tuple); UserRole(); - ~UserRole(); // generic db operations const char* getTableName() const { return "user_roles"; } @@ -35,7 +34,9 @@ namespace model { inline void setUserId(int user_Id) { mUserId = user_Id; } static const char* typeToString(RoleType type); - protected: + protected: + ~UserRole(); + Poco::Data::Statement _loadFromDB(Poco::Data::Session session, const std::string& fieldName); Poco::Data::Statement _loadIdFromDB(Poco::Data::Session session); Poco::Data::Statement _loadMultipleFromDB(Poco::Data::Session session, const std::string& fieldName); From c715b772985d3932e47c2efbf746869a3c5a8c30 Mon Sep 17 00:00:00 2001 From: Dario Rekowski on RockPI Date: Thu, 15 Jul 2021 10:26:07 +0000 Subject: [PATCH 0663/1050] check for null date --- community_server/src/Model/Table/TransactionsTable.php | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/community_server/src/Model/Table/TransactionsTable.php b/community_server/src/Model/Table/TransactionsTable.php index 925f6f31e..6e3e5ee8b 100644 --- a/community_server/src/Model/Table/TransactionsTable.php +++ b/community_server/src/Model/Table/TransactionsTable.php @@ -168,7 +168,11 @@ class TransactionsTable extends Table if($decay_start_transaction->count()) { $decay_start_transaction_id = $decay_start_transaction->first()->id; } - $decay_start_time = $stateBalancesTable->getDecayStartDateCached()->getTimestamp(); + $decay_start_date = $stateBalancesTable->getDecayStartDateCached(); + $decay_start_time = 0; + if($decay_start_date) { + $decay_start_time = $decay_start_date->getTimestamp(); + } foreach($stateUserTransactions as $i => $su_transaction) { @@ -206,7 +210,7 @@ class TransactionsTable extends Table 'decay_start' => $calculated_decay['start_date'], 'decay_end' => $calculated_decay['end_date'] ]; - if($prev->transaction_id < $decay_start_transaction_id && + if($decay_start_time && $prev->transaction_id < $decay_start_transaction_id && $current->transaction_id > $decay_start_transaction_id) { $final_transaction['decay']['decay_start_block'] = $decay_start_time; } From 0db5912a67158be8f313c01f06350f8339cb0e28 Mon Sep 17 00:00:00 2001 From: einhornimmond Date: Wed, 14 Jul 2021 13:07:35 +0200 Subject: [PATCH 0664/1050] Remove dynamic cast because it lead to errors again and agin (Poco::AutoPtr don't work correct with that) --- .../SingletonManager/PendingTasksManager.cpp | 132 +++++++++--------- .../SingletonManager/PendingTasksManager.h | 27 ++-- login_server/src/cpsp/CheckTransaction.cpsp | 31 ++-- login_server/src/cpsp/UserUpdateGroup.cpsp | 7 +- 4 files changed, 97 insertions(+), 100 deletions(-) diff --git a/login_server/src/cpp/SingletonManager/PendingTasksManager.cpp b/login_server/src/cpp/SingletonManager/PendingTasksManager.cpp index d2ed2af1a..f3faae6bf 100644 --- a/login_server/src/cpp/SingletonManager/PendingTasksManager.cpp +++ b/login_server/src/cpp/SingletonManager/PendingTasksManager.cpp @@ -15,10 +15,10 @@ PendingTasksManager::~PendingTasksManager() Poco::ScopedLock _lock(mWorkMutex); mCheckForFinishedTimer.stop(); - for (auto it = mPendingTasks.begin(); it != mPendingTasks.end(); it++) { + for (auto it = mPendingGradidoTransactions.begin(); it != mPendingGradidoTransactions.end(); it++) { delete it->second; } - mPendingTasks.clear(); + mPendingGradidoTransactions.clear(); } PendingTasksManager* PendingTasksManager::getInstance() @@ -37,31 +37,32 @@ int PendingTasksManager::load() return 0; } -int PendingTasksManager::addTask(Poco::AutoPtr task) + +int PendingTasksManager::addTask(Poco::AutoPtr gradidoTransactionTask) { - if (task.isNull() || !task->getModel()) { + if (gradidoTransactionTask.isNull() || !gradidoTransactionTask->getModel()) { return -1; } - - auto model = task->getModel(); - Poco::ScopedLock _lock(mWorkMutex); - auto pending_task_list = getTaskListForUser(model->getUserId()); - pending_task_list->push_back(task); - return 0; + auto model = gradidoTransactionTask->getModel(); + Poco::ScopedLock _lock(mWorkMutex); + auto pending_task_list = getGradidoTransactionsForUser(model->getUserId()); + pending_task_list->push_back(gradidoTransactionTask); + return 0; } -bool PendingTasksManager::removeTask(Poco::AutoPtr task) + +bool PendingTasksManager::removeTask(Poco::AutoPtr gradidoTransactionTask) { - if (task.isNull() || !task->getModel()) { + if (gradidoTransactionTask.isNull() || !gradidoTransactionTask->getModel()) { return false; } - auto model = task->getModel(); + auto model = gradidoTransactionTask->getModel(); Poco::ScopedLock _lock(mWorkMutex); - auto pending_task_list = getTaskListForUser(model->getUserId()); + auto pending_task_list = getGradidoTransactionsForUser(model->getUserId()); bool removed = false; for (auto it = pending_task_list->begin(); it != pending_task_list->end(); it++) { - if (task.get() == it->get()) { + if (gradidoTransactionTask.get() == it->get()) { pending_task_list->erase(it); removed = true; break; @@ -71,41 +72,42 @@ bool PendingTasksManager::removeTask(Poco::AutoPtr task return removed; } -PendingTasksManager::PendingTaskList* PendingTasksManager::getTaskListForUser(int userId) + +PendingTasksManager::PendingGradidoTaskList* PendingTasksManager::getGradidoTransactionsForUser(int userId) { Poco::ScopedLock _lock(mWorkMutex); - auto it = mPendingTasks.find(userId); - if (it == mPendingTasks.end()) { - auto pending_list = new PendingTaskList; - mPendingTasks.insert(std::pair(userId, pending_list)); + auto it = mPendingGradidoTransactions.find(userId); + if (it == mPendingGradidoTransactions.end()) { + auto pending_list = new PendingGradidoTaskList; + mPendingGradidoTransactions.insert(std::pair(userId, pending_list)); return pending_list; } else { return it->second; } - } -const PendingTasksManager::PendingTaskList* PendingTasksManager::getTaskListForUser(int userId) const + + +const PendingTasksManager::PendingGradidoTaskList* PendingTasksManager::getGradidoTransactionsForUser(int userId) const { Poco::ScopedLock _lock(mWorkMutex); - auto it = mPendingTasks.find(userId); - if (it != mPendingTasks.end()) { + auto it = mPendingGradidoTransactions.find(userId); + if (it != mPendingGradidoTransactions.end()) { return it->second; } return nullptr; } -bool PendingTasksManager::hasPendingTask(Poco::AutoPtr user, model::table::TaskType type) +bool PendingTasksManager::hasPendingGradidoTransaction(Poco::AutoPtr user, model::table::TaskType type) { auto model = user->getModel(); int user_id = model->getID(); Poco::ScopedLock _lock(mWorkMutex); - auto it = mPendingTasks.find(user_id); - if (it != mPendingTasks.end()) { + auto it = mPendingGradidoTransactions.find(user_id); + if (it != mPendingGradidoTransactions.end()) { auto task_list = it->second; - for (auto task = task_list->begin(); task != task_list->end(); it++) { - auto task_model = (*task)->getModel(); - if (type == task_model->getTaskType()) { + for (auto taskIt = task_list->begin(); taskIt != task_list->end(); taskIt++) { + if ((*taskIt)->getModel()->getTaskType() == type) { return true; } } @@ -114,20 +116,21 @@ bool PendingTasksManager::hasPendingTask(Poco::AutoPtr user, m } -std::vector> PendingTasksManager::getPendingTasks(Poco::AutoPtr user, model::table::TaskType type) + +std::vector> PendingTasksManager::getPendingGradidoTransactions(Poco::AutoPtr user, model::table::TaskType type) { auto model = user->getModel(); int user_id = model->getID(); Poco::ScopedLock _lock(mWorkMutex); - std::vector> results; + std::vector> results; - auto it = mPendingTasks.find(user_id); - if (it != mPendingTasks.end()) { + auto it = mPendingGradidoTransactions.find(user_id); + if (it != mPendingGradidoTransactions.end()) { auto task_list = it->second; results.reserve(task_list->size()); for (auto taskIt = task_list->begin(); taskIt != task_list->end(); taskIt++) { auto task_model = (*taskIt)->getModel(); - if (type == task_model->getTaskType()) { + if (task_model->getTaskType() == type) { results.push_back(*taskIt); } } @@ -135,48 +138,42 @@ std::vector> PendingTasksManager::getPend return results; } -std::vector> PendingTasksManager::getTransactionsUserMustSign(Poco::AutoPtr user) +std::vector> PendingTasksManager::getTransactionsUserMustSign(Poco::AutoPtr user) { // TODO: don't use cast here, because can lead to errors Poco::ScopedLock _lock(mWorkMutex); - std::vector> transactions_to_sign; + std::vector> transactions_to_sign; - for (auto map_it = mPendingTasks.begin(); map_it != mPendingTasks.end(); map_it++) + for (auto map_it = mPendingGradidoTransactions.begin(); map_it != mPendingGradidoTransactions.end(); map_it++) { auto list = map_it->second; for (auto list_it = list->begin(); list_it != list->end(); list_it++) { - if ((*list_it)->getModel()->isGradidoTransaction()) { - auto transaction = dynamic_cast(list_it->get()); - if (transaction->mustSign(user)) { - transactions_to_sign.push_back(*list_it); - } + if((*list_it)->mustSign(user)) { + transactions_to_sign.push_back(*list_it); } } } return transactions_to_sign; } -std::vector> PendingTasksManager::getTransactionSomeoneMustSign(Poco::AutoPtr user) +std::vector> PendingTasksManager::getTransactionSomeoneMustSign(Poco::AutoPtr user) { // TODO: don't use cast here, because can lead to errors Poco::ScopedLock _lock(mWorkMutex); - std::vector> transactions_to_sign; + std::vector> transactions_to_sign; if (user->getModel()->getRole() != model::table::ROLE_ADMIN) { return transactions_to_sign; } - for (auto map_it = mPendingTasks.begin(); map_it != mPendingTasks.end(); map_it++) + for (auto map_it = mPendingGradidoTransactions.begin(); map_it != mPendingGradidoTransactions.end(); map_it++) { auto list = map_it->second; for (auto list_it = list->begin(); list_it != list->end(); list_it++) { - if ((*list_it)->getModel()->isGradidoTransaction()) { - auto transaction = dynamic_cast(list_it->get()); - if (transaction->needSomeoneToSign(user)) { - transactions_to_sign.push_back(*list_it); - } + if ((*list_it)->needSomeoneToSign(user)) { + transactions_to_sign.push_back(*list_it); } } } @@ -189,27 +186,25 @@ void PendingTasksManager::checkForFinishedTasks(Poco::Timer& timer) Poco::ScopedLock _lock(mWorkMutex); try { - for (auto map_it = mPendingTasks.begin(); map_it != mPendingTasks.end(); map_it++) + for (auto map_it = mPendingGradidoTransactions.begin(); map_it != mPendingGradidoTransactions.end(); map_it++) { auto list = map_it->second; for (auto list_it = list->begin(); list_it != list->end(); list_it++) { - if ((*list_it)->getModel()->isGradidoTransaction()) { - auto transaction = dynamic_cast(list_it->get()); - auto json = transaction->getModel()->getResultJson(); - bool removeIt = false; - if (!json.isNull()) { - auto state = json->get("state"); - if (!state.isEmpty() && state.toString() == "success") { - removeIt = true; - } - } - if (removeIt) { - transaction->deleteFromDB(); - list_it = list->erase(list_it); - if (!list->size() || list_it == list->end()) break; + auto transaction = *list_it; + auto json = transaction->getModel()->getResultJson(); + bool removeIt = false; + if (!json.isNull()) { + auto state = json->get("state"); + if (!state.isEmpty() && state.toString() == "success") { + removeIt = true; } } + if (removeIt) { + transaction->deleteFromDB(); + list_it = list->erase(list_it); + if (!list->size() || list_it == list->end()) break; + } } } } @@ -224,10 +219,11 @@ void PendingTasksManager::checkForFinishedTasks(Poco::Timer& timer) } } -Poco::AutoPtr PendingTasksManager::getPendingTask(int pendingTaskId) + +Poco::AutoPtr PendingTasksManager::getPendingGradidoTransaction(int pendingTaskId) { Poco::ScopedLock _lock(mWorkMutex); - for (auto map_it = mPendingTasks.begin(); map_it != mPendingTasks.end(); map_it++) + for (auto map_it = mPendingGradidoTransactions.begin(); map_it != mPendingGradidoTransactions.end(); map_it++) { auto list = map_it->second; for (auto list_it = list->begin(); list_it != list->end(); list_it++) diff --git a/login_server/src/cpp/SingletonManager/PendingTasksManager.h b/login_server/src/cpp/SingletonManager/PendingTasksManager.h index 2ee96266a..3d8398eae 100644 --- a/login_server/src/cpp/SingletonManager/PendingTasksManager.h +++ b/login_server/src/cpp/SingletonManager/PendingTasksManager.h @@ -13,9 +13,10 @@ #ifndef GRADIDO_LOGIN_SERVER_SINGLETON_MANAGER_PENDING_TASKS_MANAGER #define GRADIDO_LOGIN_SERVER_SINGLETON_MANAGER_PENDING_TASKS_MANAGER -#include "../controller/PendingTask.h" -#include "../controller/User.h" -#include "../model/gradido/Transaction.h" +#include "controller/PendingTask.h" +#include "model/gradido/Transaction.h" +#include "controller/User.h" +#include "model/gradido/Transaction.h" class UserUpdateGroupPage; @@ -24,6 +25,7 @@ class PendingTasksManager: protected UniLib::lib::MultithreadContainer friend UserUpdateGroupPage; public: typedef std::list> PendingTaskList; + typedef std::list> PendingGradidoTaskList; ~PendingTasksManager(); @@ -34,8 +36,9 @@ public: //! \return -1 task is zero //! \return 0 if added - int addTask(Poco::AutoPtr task); - bool removeTask(Poco::AutoPtr task); + int addTask(Poco::AutoPtr gradidoTransactionTask); + + bool removeTask(Poco::AutoPtr gradidoTransactionTask); //! check if tasks can be removed void checkForFinishedTasks(Poco::Timer& timer); @@ -43,12 +46,12 @@ public: //! by calling this, important is to call lock to prevent vanishing the list while working with it, //! and unlock afterwards //! \return list or nullptr if no list for user exist - const PendingTaskList* getTaskListForUser(int userId) const; - bool hasPendingTask(Poco::AutoPtr user, model::table::TaskType type); - std::vector> getPendingTasks(Poco::AutoPtr user, model::table::TaskType type); - Poco::AutoPtr getPendingTask(int pendingTaskId); - std::vector> getTransactionsUserMustSign(Poco::AutoPtr user); - std::vector> getTransactionSomeoneMustSign(Poco::AutoPtr user); + const PendingGradidoTaskList* getGradidoTransactionsForUser(int userId) const; + bool hasPendingGradidoTransaction(Poco::AutoPtr user, model::table::TaskType type); + std::vector> getPendingGradidoTransactions(Poco::AutoPtr user, model::table::TaskType type); + Poco::AutoPtr getPendingGradidoTransaction(int pendingTaskId); + std::vector> getTransactionsUserMustSign(Poco::AutoPtr user); + std::vector> getTransactionSomeoneMustSign(Poco::AutoPtr user); protected: @@ -58,8 +61,10 @@ protected: std::map mPendingTasks; + std::map mPendingGradidoTransactions; //! \return list for user, creating new list and map entry if not exist PendingTaskList* getTaskListForUser(int userId); + PendingGradidoTaskList* getGradidoTransactionsForUser(int userId); }; diff --git a/login_server/src/cpsp/CheckTransaction.cpsp b/login_server/src/cpsp/CheckTransaction.cpsp index e95629f3d..700201f68 100644 --- a/login_server/src/cpsp/CheckTransaction.cpsp +++ b/login_server/src/cpsp/CheckTransaction.cpsp @@ -46,10 +46,7 @@ enum PageState { PageState state = PAGE_NO_TRANSACTIONS; - - - Poco::AutoPtr pending_task; - model::gradido::Transaction* transaction = nullptr; + Poco::AutoPtr transaction; Poco::AutoPtr transaction_body; if(!form.empty()) @@ -64,10 +61,9 @@ enum PageState { if(DataTypeConverter::NUMBER_PARSE_OKAY == DataTypeConverter::strToInt(pending_task_id_string, pending_task_id)) { // load transaction from pending task manager - pending_task = pt->getPendingTask(pending_task_id); - if(!pending_task.isNull() && pending_task->getModel()->isGradidoTransaction()) + transaction = pt->getPendingGradidoTransaction(pending_task_id); + if(!transaction.isNull()) { - transaction = dynamic_cast(pending_task.get()); if(transaction->hasSigned(account_user)) { transaction = nullptr; } else { @@ -78,10 +74,11 @@ enum PageState { { //mSession->finalizeTransaction(false, true); // - if(transaction && transaction->getModel()->getUserId() == user_model->getID()) + if(!transaction.isNull() && transaction->getModel()->getUserId() == user_model->getID()) { - pt->removeTask(pending_task); - transaction->deleteFromDB(); + if(pt->removeTask(transaction)) { + transaction->deleteFromDB(); + } transaction = nullptr; } } @@ -110,7 +107,7 @@ enum PageState { } if(!hasErrors) { //mSession->finalizeTransaction(true, false); - if(transaction && transaction->sign(account_user)) { + if(!transaction.isNull() && transaction->sign(account_user)) { transaction = nullptr; } } @@ -129,15 +126,15 @@ enum PageState { } auto transactions_user_must_sign = pt->getTransactionsUserMustSign(account_user); - std::vector> transactions_someone_must_sign; + std::vector> transactions_someone_must_sign; // TODO: work with community server roles if(user_model->getRole() == model::table::ROLE_ADMIN) { transactions_someone_must_sign = pt->getTransactionSomeoneMustSign(account_user); } - std::vector> transactions_to_sign; + std::vector> transactions_to_sign; bool transaction_removeable = false; int transaction_to_sign_index = 0; - if(!transaction) + if(!transaction.isNull()) { if(transactions_user_must_sign.size() > skip_count) { transactions_to_sign = transactions_user_must_sign; @@ -149,7 +146,7 @@ enum PageState { if(transactions_to_sign.size() > transaction_to_sign_index) { - transaction = dynamic_cast(transactions_to_sign[transaction_to_sign_index].get()); + transaction = transactions_to_sign[transaction_to_sign_index]; transaction_body = transaction->getTransactionBody(); // user can only delete there own transactions // TODO: Auto timeout for community transactions @@ -181,7 +178,7 @@ enum PageState { { enableLogout = false; } - if(PAGE_NO_TRANSACTIONS == state && transaction && !transaction_body.isNull()) + if(PAGE_NO_TRANSACTIONS == state && !transaction.isNull() && !transaction_body.isNull()) { auto transactionType = transaction_body->getType(); memo = transaction_body->getMemo(); @@ -326,7 +323,7 @@ enum PageState {

- <% if(transaction) { %> + <% if(!transaction.isNull()) { %> <% } %> diff --git a/login_server/src/cpsp/UserUpdateGroup.cpsp b/login_server/src/cpsp/UserUpdateGroup.cpsp index c83c1e977..64dcf86a3 100644 --- a/login_server/src/cpsp/UserUpdateGroup.cpsp +++ b/login_server/src/cpsp/UserUpdateGroup.cpsp @@ -73,15 +73,14 @@ enum PageState { pt->lock("userUpdateGroup Page"); - auto has_pending_group_add_member_task = pt->hasPendingTask(user, model::table::TASK_TYPE_GROUP_ADD_MEMBER); + auto has_pending_group_add_member_task = pt->hasPendingGradidoTransaction(user, model::table::TASK_TYPE_GROUP_ADD_MEMBER); auto referer_was_checkTransaction = refererString.find("checkTransactions") != std::string::npos; if(has_pending_group_add_member_task) { state = PAGE_STATE_REQUEST_IS_RUNNING; - std::vector> tasks = pt->getPendingTasks(user, model::table::TASK_TYPE_GROUP_ADD_MEMBER); + auto tasks = pt->getPendingGradidoTransactions(user, model::table::TASK_TYPE_GROUP_ADD_MEMBER); // should be only one - Poco::AutoPtr transaction = tasks[0].cast(); + auto transaction = tasks[0]; if(transaction->getSignCount() == 0) { - pt->unlock(); response.redirect(getBaseUrl() + "/checkTransactions"); return; From 2717ff8bc48daa2bef7fee3143701473c137a32b Mon Sep 17 00:00:00 2001 From: einhorn_b Date: Thu, 15 Jul 2021 11:55:25 +0200 Subject: [PATCH 0665/1050] fix check transaction page --- login_server/src/cpsp/CheckTransaction.cpsp | 31 +++++++++++---------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/login_server/src/cpsp/CheckTransaction.cpsp b/login_server/src/cpsp/CheckTransaction.cpsp index 700201f68..4974a3e8c 100644 --- a/login_server/src/cpsp/CheckTransaction.cpsp +++ b/login_server/src/cpsp/CheckTransaction.cpsp @@ -134,7 +134,7 @@ enum PageState { std::vector> transactions_to_sign; bool transaction_removeable = false; int transaction_to_sign_index = 0; - if(!transaction.isNull()) + if(transaction.isNull()) { if(transactions_user_must_sign.size() > skip_count) { transactions_to_sign = transactions_user_must_sign; @@ -143,7 +143,7 @@ enum PageState { transactions_to_sign = transactions_someone_must_sign; transaction_to_sign_index = skip_count - transactions_user_must_sign.size(); } - + if(transactions_to_sign.size() > transaction_to_sign_index) { transaction = transactions_to_sign[transaction_to_sign_index]; @@ -200,7 +200,7 @@ enum PageState { } } - + std::clog << "state: " << std::to_string(state) << std::endl; %><%@ include file="include/header_navi_chr.cpsp" %> <%= getErrorsHtml() %> @@ -267,18 +267,19 @@ enum PageState { <% } else if(PAGE_TRANSACTION_GROUP_ADD_MEMBER == state) { - auto groupMemberUpdateTransaction = transaction_body->getGroupMemberUpdate(); - auto groups = controller::Group::load(groupMemberUpdateTransaction->getTargetGroupAlias()); - Poco::AutoPtr group_model; - Poco::AutoPtr user; - if(groups.size() == 1 && !groups[0].isNull()) group_model = groups[0]->getModel(); - auto user_id = transaction->getModel()->getUserId(); - if(user_id == user_model->getID()) { - user = account_user; - } else { - user = controller::User::sload(user_id); - } - %> + auto groupMemberUpdateTransaction = transaction_body->getGroupMemberUpdate(); + auto groups = controller::Group::load(groupMemberUpdateTransaction->getTargetGroupAlias()); + Poco::AutoPtr group_model; + Poco::AutoPtr user; + if(groups.size() == 1 && !groups[0].isNull()) group_model = groups[0]->getModel(); + auto user_id = transaction->getModel()->getUserId(); + if(user_id == user_model->getID()) { + user = account_user; + } else { + user = controller::User::sload(user_id); + } + + %>

<%= gettext("Benutzer zu einer Gruppe hinzufügen") %>

<% if(!user.isNull()) { %> From 21eea736e7d7bc83153e85d4ce8c643fcd656901 Mon Sep 17 00:00:00 2001 From: einhorn_b Date: Thu, 15 Jul 2021 11:56:03 +0200 Subject: [PATCH 0666/1050] don't remove transaction direct from pending task manager, because than add group member don't work --- login_server/src/cpp/model/gradido/Transaction.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/login_server/src/cpp/model/gradido/Transaction.cpp b/login_server/src/cpp/model/gradido/Transaction.cpp index 00bfc92ac..253d7b5f4 100644 --- a/login_server/src/cpp/model/gradido/Transaction.cpp +++ b/login_server/src/cpp/model/gradido/Transaction.cpp @@ -360,8 +360,8 @@ namespace model { //transaction_send_task->scheduleTask(transaction_send_task); auto pt = PendingTasksManager::getInstance(); - pt->removeTask(Poco::AutoPtr(this, true)); - deleteFromDB(); + // pt->removeTask(Poco::AutoPtr(this, true)); + // deleteFromDB(); return 1 == runSendTransaction(); //return true; } From cf7f6996dab96a8d5e7824510b9b769a2fcecf87 Mon Sep 17 00:00:00 2001 From: einhornimmond Date: Thu, 15 Jul 2021 11:53:12 +0200 Subject: [PATCH 0667/1050] make destructor from all model::table protected to prevent misuse because of reference counting --- login_server/src/cpp/controller/EmailVerificationCode.cpp | 7 +++++-- login_server/src/cpp/controller/User.cpp | 2 +- login_server/src/cpp/model/table/AppAccessToken.h | 4 +++- login_server/src/cpp/model/table/ElopageBuy.h | 5 +++-- login_server/src/cpp/model/table/EmailOptIn.h | 4 +++- login_server/src/cpp/model/table/Group.h | 5 +++-- login_server/src/cpp/model/table/ModelBase.h | 7 ++++++- login_server/src/cpp/model/table/PendingTask.h | 3 ++- login_server/src/cpp/model/table/User.h | 3 ++- login_server/src/cpp/model/table/UserBackup.h | 4 ++-- login_server/src/cpp/model/table/UserRole.h | 5 +++-- 11 files changed, 33 insertions(+), 16 deletions(-) diff --git a/login_server/src/cpp/controller/EmailVerificationCode.cpp b/login_server/src/cpp/controller/EmailVerificationCode.cpp index 16fcefbb8..afbc0eb42 100644 --- a/login_server/src/cpp/controller/EmailVerificationCode.cpp +++ b/login_server/src/cpp/controller/EmailVerificationCode.cpp @@ -70,10 +70,13 @@ namespace controller { Poco::AutoPtr EmailVerificationCode::loadOrCreate(int user_id, model::table::EmailOptInType type) { - model::table::EmailOptIn db; + auto db = new model::table::EmailOptIn(); std::vector fields = { "user_id", "email_opt_in_type_id" }; std::vector field_values = { user_id, (int)type }; - auto results = db.loadFromDB(fields, field_values); + auto results = db->loadFromDB(fields, field_values); + db->release(); + db = nullptr; + if (results.size() > 0) { return Poco::AutoPtr(new EmailVerificationCode(new model::table::EmailOptIn(results[0]))); } diff --git a/login_server/src/cpp/controller/User.cpp b/login_server/src/cpp/controller/User.cpp index 955b780d0..576b2b8c8 100644 --- a/login_server/src/cpp/controller/User.cpp +++ b/login_server/src/cpp/controller/User.cpp @@ -136,7 +136,7 @@ namespace controller { { auto db = new model::table::User(); if (0 == db->loadFromDB("id", user_id)) { - delete db; + db->release(); return nullptr; } auto user = new User(db); diff --git a/login_server/src/cpp/model/table/AppAccessToken.h b/login_server/src/cpp/model/table/AppAccessToken.h index 821cb6e3c..bbee0568d 100644 --- a/login_server/src/cpp/model/table/AppAccessToken.h +++ b/login_server/src/cpp/model/table/AppAccessToken.h @@ -16,7 +16,7 @@ namespace model { AppAccessToken(int user_id, const Poco::UInt64& code); AppAccessToken(const AppAccessCodeTuple& tuple); AppAccessToken(); - ~AppAccessToken(); + // generic db operations const char* getTableName() const { return "app_access_tokens"; } @@ -32,6 +32,8 @@ namespace model { size_t update(); protected: + ~AppAccessToken(); + Poco::Data::Statement _loadFromDB(Poco::Data::Session session, const std::string& fieldName); Poco::Data::Statement _loadIdFromDB(Poco::Data::Session session); Poco::Data::Statement _insertIntoDB(Poco::Data::Session session); diff --git a/login_server/src/cpp/model/table/ElopageBuy.h b/login_server/src/cpp/model/table/ElopageBuy.h index e2b88fb1b..dec4727a3 100644 --- a/login_server/src/cpp/model/table/ElopageBuy.h +++ b/login_server/src/cpp/model/table/ElopageBuy.h @@ -31,14 +31,15 @@ namespace model { { public: ElopageBuy(const Poco::Net::NameValueCollection& elopage_webhook_requestData); - ~ElopageBuy(); - + // generic db operations const char* getTableName() const { return "elopage_buys"; } std::string toString(); protected: + ~ElopageBuy(); + Poco::Data::Statement _loadIdFromDB(Poco::Data::Session session); Poco::Data::Statement _loadFromDB(Poco::Data::Session session, const std::string& fieldName); Poco::Data::Statement _insertIntoDB(Poco::Data::Session session); diff --git a/login_server/src/cpp/model/table/EmailOptIn.h b/login_server/src/cpp/model/table/EmailOptIn.h index c7a21d84c..9e0fc335a 100644 --- a/login_server/src/cpp/model/table/EmailOptIn.h +++ b/login_server/src/cpp/model/table/EmailOptIn.h @@ -26,7 +26,7 @@ namespace model { EmailOptIn(const Poco::UInt64& code, EmailOptInType type); EmailOptIn(const EmailOptInTuple& tuple); EmailOptIn(); - ~EmailOptIn(); + // generic db operations const char* getTableName() const { return "email_opt_in"; } @@ -46,6 +46,8 @@ namespace model { static const char* typeToString(EmailOptInType type); static EmailOptInType stringToType(const std::string& typeString); protected: + ~EmailOptIn(); + Poco::Data::Statement _loadFromDB(Poco::Data::Session session, const std::string& fieldName); Poco::Data::Statement _loadIdFromDB(Poco::Data::Session session); Poco::Data::Statement _loadMultipleFromDB(Poco::Data::Session session, const std::string& fieldName); diff --git a/login_server/src/cpp/model/table/Group.h b/login_server/src/cpp/model/table/Group.h index 8e0c56e40..e998cfb7c 100644 --- a/login_server/src/cpp/model/table/Group.h +++ b/login_server/src/cpp/model/table/Group.h @@ -15,8 +15,7 @@ namespace model { Group(); Group(const std::string& alias, const std::string& name, const std::string& url, const std::string& host, const std::string& home, const std::string& description); Group(GroupTuple userTuple); - ~Group(); - + // generic db operations const char* getTableName() const { return "groups"; } std::string toString(); @@ -35,6 +34,8 @@ namespace model { inline void setHome(const std::string& home) { UNIQUE_LOCK; mHome = home; } protected: + ~Group(); + Poco::Data::Statement _loadFromDB(Poco::Data::Session session, const std::string& fieldName); Poco::Data::Statement _loadAllFromDB(Poco::Data::Session session); Poco::Data::Statement _loadMultipleFromDB(Poco::Data::Session session, const std::string& fieldName); diff --git a/login_server/src/cpp/model/table/ModelBase.h b/login_server/src/cpp/model/table/ModelBase.h index c769dcfd9..95856087f 100644 --- a/login_server/src/cpp/model/table/ModelBase.h +++ b/login_server/src/cpp/model/table/ModelBase.h @@ -32,7 +32,7 @@ namespace model { public: ModelBase(int id) :mID(id), mReferenceCount(1) {} ModelBase() : mID(0), mReferenceCount(1) {} - virtual ~ModelBase(); + virtual const char* getTableName() const = 0; //! called from within of some catch to give more information for debugging, don't lock mutex! @@ -90,6 +90,8 @@ namespace model { void duplicate(); void release(); protected: + virtual ~ModelBase(); + virtual Poco::Data::Statement _loadIdFromDB(Poco::Data::Session session) = 0; virtual Poco::Data::Statement _loadFromDB(Poco::Data::Session session, const std::string& fieldName) = 0; virtual Poco::Data::Statement _loadFromDB(Poco::Data::Session session, const std::vector& fieldNames, MysqlConditionType conditionType = MYSQL_CONDITION_AND); @@ -105,6 +107,9 @@ namespace model { mutable std::shared_mutex mSharedMutex; + private: + + }; template diff --git a/login_server/src/cpp/model/table/PendingTask.h b/login_server/src/cpp/model/table/PendingTask.h index ea6aad92b..3e7a0e8d5 100644 --- a/login_server/src/cpp/model/table/PendingTask.h +++ b/login_server/src/cpp/model/table/PendingTask.h @@ -28,7 +28,6 @@ namespace model { PendingTask(int userId, std::string serializedProtoRequest, TaskType type); PendingTask(const PendingTaskTuple& tuple); - ~PendingTask(); // generic db operations const char* getTableName() const { return "pending_tasks"; } @@ -65,6 +64,8 @@ namespace model { static const char* typeToString(TaskType type); protected: + ~PendingTask(); + Poco::Data::Statement _loadFromDB(Poco::Data::Session session, const std::string& fieldName); Poco::Data::Statement _loadAllFromDB(Poco::Data::Session session); Poco::Data::Statement _loadIdFromDB(Poco::Data::Session session); diff --git a/login_server/src/cpp/model/table/User.h b/login_server/src/cpp/model/table/User.h index dd51d7498..96d85565d 100644 --- a/login_server/src/cpp/model/table/User.h +++ b/login_server/src/cpp/model/table/User.h @@ -38,7 +38,7 @@ namespace model { User(); User(UserTuple tuple); User(const std::string& email, const std::string& first_name, const std::string& last_name, int group_id, Poco::UInt64 passwordHashed = 0, std::string languageKey = "de"); - ~User(); + // generic db operations const char* getTableName() const { return "users"; } @@ -97,6 +97,7 @@ namespace model { Poco::JSON::Object getJson(); protected: + ~User(); Poco::Data::Statement _loadFromDB(Poco::Data::Session session, const std::string& fieldName); Poco::Data::Statement _loadIdFromDB(Poco::Data::Session session); diff --git a/login_server/src/cpp/model/table/UserBackup.h b/login_server/src/cpp/model/table/UserBackup.h index c5084b0f7..a2f407fbd 100644 --- a/login_server/src/cpp/model/table/UserBackup.h +++ b/login_server/src/cpp/model/table/UserBackup.h @@ -15,8 +15,7 @@ namespace model { UserBackup(int user_id, const std::string& passphrase, ServerConfig::Mnemonic_Types type); UserBackup(const UserBackupsTuple& tuple); UserBackup(); - ~UserBackup(); - + // generic db operations const char* getTableName() const { return "user_backups"; } std::string toString(); @@ -29,6 +28,7 @@ namespace model { protected: + ~UserBackup(); //! \brief call from constructor if mMnemonicType -1 //! diff --git a/login_server/src/cpp/model/table/UserRole.h b/login_server/src/cpp/model/table/UserRole.h index 7683bff94..1369dbe86 100644 --- a/login_server/src/cpp/model/table/UserRole.h +++ b/login_server/src/cpp/model/table/UserRole.h @@ -23,7 +23,6 @@ namespace model { UserRole(int user_id, RoleType type); UserRole(const UserRolesTuple& tuple); UserRole(); - ~UserRole(); // generic db operations const char* getTableName() const { return "user_roles"; } @@ -35,7 +34,9 @@ namespace model { inline void setUserId(int user_Id) { mUserId = user_Id; } static const char* typeToString(RoleType type); - protected: + protected: + ~UserRole(); + Poco::Data::Statement _loadFromDB(Poco::Data::Session session, const std::string& fieldName); Poco::Data::Statement _loadIdFromDB(Poco::Data::Session session); Poco::Data::Statement _loadMultipleFromDB(Poco::Data::Session session, const std::string& fieldName); From caa91c55237697770eab7ff7eb898e4aabf54f0b Mon Sep 17 00:00:00 2001 From: einhornimmond Date: Wed, 14 Jul 2021 13:07:35 +0200 Subject: [PATCH 0668/1050] Remove dynamic cast because it lead to errors again and agin (Poco::AutoPtr don't work correct with that) --- login_server/src/cpp/SingletonManager/PendingTasksManager.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/login_server/src/cpp/SingletonManager/PendingTasksManager.cpp b/login_server/src/cpp/SingletonManager/PendingTasksManager.cpp index f3faae6bf..35ab6b7e1 100644 --- a/login_server/src/cpp/SingletonManager/PendingTasksManager.cpp +++ b/login_server/src/cpp/SingletonManager/PendingTasksManager.cpp @@ -162,10 +162,13 @@ std::vector> PendingTasksManager::get // TODO: don't use cast here, because can lead to errors Poco::ScopedLock _lock(mWorkMutex); std::vector> transactions_to_sign; +<<<<<<< HEAD if (user->getModel()->getRole() != model::table::ROLE_ADMIN) { return transactions_to_sign; } +======= +>>>>>>> Remove dynamic cast because it lead to errors again and agin (Poco::AutoPtr don't work correct with that) for (auto map_it = mPendingGradidoTransactions.begin(); map_it != mPendingGradidoTransactions.end(); map_it++) { From 64ba9a60d955987081e144bc973927ba0ea91433 Mon Sep 17 00:00:00 2001 From: einhorn_b Date: Thu, 15 Jul 2021 12:47:18 +0200 Subject: [PATCH 0669/1050] remove debug message --- login_server/src/cpsp/CheckTransaction.cpsp | 2 -- 1 file changed, 2 deletions(-) diff --git a/login_server/src/cpsp/CheckTransaction.cpsp b/login_server/src/cpsp/CheckTransaction.cpsp index 4974a3e8c..d866384b7 100644 --- a/login_server/src/cpsp/CheckTransaction.cpsp +++ b/login_server/src/cpsp/CheckTransaction.cpsp @@ -200,8 +200,6 @@ enum PageState { } } - std::clog << "state: " << std::to_string(state) << std::endl; - %><%@ include file="include/header_navi_chr.cpsp" %> <%= getErrorsHtml() %>

From 61448747d57c7e2740cf326c0703fe0e1acb0f79 Mon Sep 17 00:00:00 2001 From: einhornimmond Date: Thu, 15 Jul 2021 13:38:57 +0200 Subject: [PATCH 0670/1050] fix missing path component in email verification link --- login_server/src/cpp/model/Session.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/login_server/src/cpp/model/Session.cpp b/login_server/src/cpp/model/Session.cpp index a692dc463..cf380929d 100644 --- a/login_server/src/cpp/model/Session.cpp +++ b/login_server/src/cpp/model/Session.cpp @@ -274,7 +274,7 @@ bool Session::createUserDirect(const std::string& first_name, const std::string& // email verification code auto email_verification = controller::EmailVerificationCode::create(user_id, model::table::EMAIL_OPT_IN_REGISTER_DIRECT); - email_verification->setBaseUrl(baseUrl); + email_verification->setBaseUrl(baseUrl + "/checkEmail"); email_verification->getModel()->insertIntoDB(false); mEmailVerificationCodeObject = email_verification; From be4d5c8eaa7e7838edf2b791845e5d4ef40ed154 Mon Sep 17 00:00:00 2001 From: einhornimmond Date: Thu, 15 Jul 2021 13:48:12 +0200 Subject: [PATCH 0671/1050] fix wrong branches - check if user has password in db more accurate - consider both register types --- .../src/cpp/HTTPInterface/PageRequestHandlerFactory.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/login_server/src/cpp/HTTPInterface/PageRequestHandlerFactory.cpp b/login_server/src/cpp/HTTPInterface/PageRequestHandlerFactory.cpp index 863ef12f1..c8c762fbd 100644 --- a/login_server/src/cpp/HTTPInterface/PageRequestHandlerFactory.cpp +++ b/login_server/src/cpp/HTTPInterface/PageRequestHandlerFactory.cpp @@ -299,7 +299,7 @@ Poco::Net::HTTPRequestHandler* PageRequestHandlerFactory::handleCheckEmail(Sessi auto user_host = request.clientAddress().host(); session->setClientIp(user_host); assert(session->getNewUser()); - if (!session->getNewUser()->hasPassword()) { + if (!session->getNewUser()->getModel()->getPasswordHashed()) { // user has no password, maybe account created from elopage webhook return basicSetup(new UserUpdatePasswordPage(session), request, timeUsed); } @@ -311,12 +311,13 @@ Poco::Net::HTTPRequestHandler* PageRequestHandlerFactory::handleCheckEmail(Sessi */ // update session, mark as verified int retUpdateEmailVerification = session->updateEmailVerification(verificationCode); - printf("[%s] return from update email verification: %d\n", __FUNCTION__, retUpdateEmailVerification); + //printf("[%s] return from update email verification: %d\n", __FUNCTION__, retUpdateEmailVerification); if (0 == retUpdateEmailVerification) { //printf("[PageRequestHandlerFactory::handleCheckEmail] timeUsed: %s\n", timeUsed.string().data()); SessionHTTPRequestHandler* pageRequestHandler = nullptr; - if (model::table::EMAIL_OPT_IN_REGISTER_DIRECT == session->getEmailVerificationType()) { - printf("return check email page\n"); + if (model::table::EMAIL_OPT_IN_REGISTER_DIRECT == session->getEmailVerificationType() || + model::table::EMAIL_OPT_IN_REGISTER == session->getEmailVerificationType()) { + //printf("return check email page\n"); pageRequestHandler = new CheckEmailPage(session); } else if(SESSION_STATE_RESET_PASSWORD_REQUEST == session->getSessionState()) { pageRequestHandler = new UserUpdatePasswordPage(session); From bdda5ca766ea6de9f1dbf32ba61f88de9f4fac8f Mon Sep 17 00:00:00 2001 From: einhornimmond Date: Thu, 15 Jul 2021 13:53:51 +0200 Subject: [PATCH 0672/1050] Make E-Mail Text 100% German --- login_server/src/cpp/model/email/Email.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/login_server/src/cpp/model/email/Email.cpp b/login_server/src/cpp/model/email/Email.cpp index c000a550e..f27106092 100644 --- a/login_server/src/cpp/model/email/Email.cpp +++ b/login_server/src/cpp/model/email/Email.cpp @@ -86,7 +86,7 @@ Dario, Gradido Server Admin\n\ const static char EmailText_emailResetPassword[] = { u8"\ Hallo [first_name] [last_name],\n\ \n\ -Du oder jemand anderes hat für dieses Konto ein Passwort Reset angefordert.\n\ +Du oder jemand anderes hat für dieses Konto ein Zurücksetzen des Passworts angefordert.\n\ Wenn du es warst, klicke bitte auf den Link: [link]\n\ oder kopiere den obigen Link in Dein Browserfenster.\n\ \n\ From 00c391e667736242e85ea22f3d958ce320e22189 Mon Sep 17 00:00:00 2001 From: tulex Date: Thu, 15 Jul 2021 17:10:35 +0200 Subject: [PATCH 0673/1050] fix bugs #630 --- frontend/src/components/DecayInformation.vue | 4 +-- frontend/src/locales/de.json | 9 ++--- frontend/src/locales/en.json | 5 +-- .../GddSend/TransactionForm.vue | 33 ++++++++----------- .../AccountOverview/GddTransactionList.vue | 17 +++++++--- frontend/src/views/Pages/ForgotPassword.vue | 2 +- 6 files changed, 38 insertions(+), 32 deletions(-) diff --git a/frontend/src/components/DecayInformation.vue b/frontend/src/components/DecayInformation.vue index c3f07c87b..65ed3aed3 100644 --- a/frontend/src/components/DecayInformation.vue +++ b/frontend/src/components/DecayInformation.vue @@ -1,7 +1,7 @@ From d37ce0949ef97d2a6c6ffaf0be31db9f6d92e743 Mon Sep 17 00:00:00 2001 From: Dario Rekowski on RockPI Date: Tue, 20 Jul 2021 15:06:32 +0000 Subject: [PATCH 0701/1050] update content for frontend --- community_server/src/Model/Table/TransactionsTable.php | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/community_server/src/Model/Table/TransactionsTable.php b/community_server/src/Model/Table/TransactionsTable.php index 6e3e5ee8b..1f8606a82 100644 --- a/community_server/src/Model/Table/TransactionsTable.php +++ b/community_server/src/Model/Table/TransactionsTable.php @@ -236,13 +236,12 @@ class TransactionsTable extends Table if($su_transaction->transaction_type_id == 1) { // creation $creation = $transaction->transaction_creation; - $balance = $stateBalancesTable->calculateDecay($creation->amount, $creation->target_date, $transaction->received); $final_transaction['name'] = 'Gradido Akademie'; $final_transaction['type'] = 'creation'; $final_transaction['target_date'] = $creation->target_date; - $final_transaction['creation_amount'] = $creation->amount; - $final_transaction['balance'] = $balance; + //$final_transaction['creation_amount'] = $creation->amount; + $final_transaction['balance'] = $creation->amount; } else if($su_transaction->transaction_type_id == 2) { // transfer or send coins $sendCoins = $transaction->transaction_send_coin; From ca4ef82b874185f3d93acf8d1fca9ad6d3dadcaf Mon Sep 17 00:00:00 2001 From: Dario Rekowski on RockPI Date: Tue, 20 Jul 2021 15:55:21 +0000 Subject: [PATCH 0702/1050] update init db dataset --- community_server/db/setup_db_tables/insert_migrations.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/community_server/db/setup_db_tables/insert_migrations.sql b/community_server/db/setup_db_tables/insert_migrations.sql index e6f38117d..28cb043e6 100644 --- a/community_server/db/setup_db_tables/insert_migrations.sql +++ b/community_server/db/setup_db_tables/insert_migrations.sql @@ -1,2 +1,2 @@ INSERT INTO `migrations` (`id`, `db_version`) VALUES -(1, 2); +(1, 3); From 5d435b83d7be52c086499e70e8c08a0905f7bcd0 Mon Sep 17 00:00:00 2001 From: Dario Rekowski on RockPI Date: Tue, 20 Jul 2021 15:59:50 +0000 Subject: [PATCH 0703/1050] fix test --- .../tests/TestCase/Controller/AppRequestControllerTest.php | 1 - 1 file changed, 1 deletion(-) diff --git a/community_server/tests/TestCase/Controller/AppRequestControllerTest.php b/community_server/tests/TestCase/Controller/AppRequestControllerTest.php index 5ee1f3c53..3c7b4c383 100644 --- a/community_server/tests/TestCase/Controller/AppRequestControllerTest.php +++ b/community_server/tests/TestCase/Controller/AppRequestControllerTest.php @@ -168,7 +168,6 @@ class AppRequestControllerTest extends TestCase "name": "Gradido Akademie", "type": "creation", "target_date": "2021-01-01T00:00:00+00:00", - "creation_amount": 10000000, "balance": 10000000 }, { From cbabad7fa9b97ef18d504d5c1f77ab7c7d640ff4 Mon Sep 17 00:00:00 2001 From: Dario Rekowski on RockPI Date: Tue, 20 Jul 2021 16:08:11 +0000 Subject: [PATCH 0704/1050] move back decay as standalone transaction in old frontend --- .../src/Controller/StateBalancesController.php | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/community_server/src/Controller/StateBalancesController.php b/community_server/src/Controller/StateBalancesController.php index f16ed407b..14d3a7869 100644 --- a/community_server/src/Controller/StateBalancesController.php +++ b/community_server/src/Controller/StateBalancesController.php @@ -111,7 +111,15 @@ class StateBalancesController extends AppController $decay = true; $transactions = []; if($stateUserTransactionsQuery->count() > 0) { - $transactions = $transactionsTable->listTransactionsHumanReadable($stateUserTransactionsQuery->toArray(), $user, $decay); + $transactions_with_decay = $transactionsTable->listTransactionsHumanReadable($stateUserTransactionsQuery->toArray(), $user, $decay); + foreach($transactions_with_decay as $tr) { + $transactions[] = $tr; + if(isset($tr['decay'])) { + $tr['decay']['type'] = 'decay'; + $tr['decay']['memo'] = ''; + $transactions[] = $tr['decay']; + } + } } $state_balance = $stateBalancesTable->find()->where(['state_user_id' => $user['id']])->first(); From 9e155758553f5525dc3e33b0d44e8249ed0909a3 Mon Sep 17 00:00:00 2001 From: Moriz Wahl Date: Wed, 21 Jul 2021 16:45:59 +0200 Subject: [PATCH 0705/1050] api calls for sendEmail and loginViaEmailVerificationCode --- backend/src/apis/loginAPI.ts | 16 ++++++ backend/src/graphql/models/User.ts | 12 ++++ backend/src/graphql/resolvers/UserResolver.ts | 57 ++++++++++--------- 3 files changed, 57 insertions(+), 28 deletions(-) diff --git a/backend/src/apis/loginAPI.ts b/backend/src/apis/loginAPI.ts index 69f22cf92..b81316b3f 100644 --- a/backend/src/apis/loginAPI.ts +++ b/backend/src/apis/loginAPI.ts @@ -18,3 +18,19 @@ export const apiPost = async (url: string, payload: unknown): Promise => { return { success: false, result: error } } } + +// eslint-disable-next-line @typescript-eslint/no-explicit-any +export const apiGet = async (url: string): Promise => { + try { + const result = await axios.get(url) + if (result.status !== 200) { + throw new Error('HTTP Status Error ' + result.status) + } + if (!['success', 'warning'].includes(result.data.state)) { + throw new Error(result.data.msg) + } + return { success: true, result } + } catch (error) { + return { success: false, result: error } + } +} diff --git a/backend/src/graphql/models/User.ts b/backend/src/graphql/models/User.ts index d17a3dacd..938d0a9f9 100644 --- a/backend/src/graphql/models/User.ts +++ b/backend/src/graphql/models/User.ts @@ -83,3 +83,15 @@ export class LoginResponse extends BaseEntity { @Column() user: User } + +@Entity() +@ObjectType() +export class LoginViaVerificationCode extends BaseEntity { + @Field(() => Number) + @Column() + sessionId: number + + @Field(() => String) + @Column() + email: string +} diff --git a/backend/src/graphql/resolvers/UserResolver.ts b/backend/src/graphql/resolvers/UserResolver.ts index 85571c5ab..34ceae7c7 100644 --- a/backend/src/graphql/resolvers/UserResolver.ts +++ b/backend/src/graphql/resolvers/UserResolver.ts @@ -1,11 +1,9 @@ // import jwt from 'jsonwebtoken' import { Resolver, Query, /* Mutation, */ Args, Arg } from 'type-graphql' import CONFIG from '../../config' -import { LoginResponse } from '../models/User' +import { LoginResponse, LoginViaVerificationCode } from '../models/User' import { UnsecureLoginArgs } from '../inputs/LoginUserInput' -import { apiPost } from '../../apis/loginAPI' -// import { CreateBookInput } from '../inputs/CreateBookInput' -// import { UpdateBookInput } from '../inputs/UpdateBookInput' +import { apiPost, apiGet } from '../../apis/loginAPI' @Resolver() export class UserResolver { @@ -43,16 +41,6 @@ export class UserResolver { }, } - // forgot password request - /* - @Query(() => null) - // eslint-disable-next-line @typescript-eslint/no-explicit-any - async sendEmail(@Arg() email: String): Promise { - const result = await apiPost(CONFIG.LOGIN_API_URL + 'sendEmail', { email }) - return - } - */ - // create and return the json web token // The expire doesn't help us here. The client needs to track when the token expires on its own, // since every action prolongs the time the session is valid. @@ -67,20 +55,33 @@ export class UserResolver { // return loginResult.user ? loginResult.user : new User() } - /* - @Mutation(() => User) - async createBook(@Arg('data') data: CreateBookInput) { - const book = User.create(data) - await book.save() - return book + // forgot password request + @Query(() => String) + // eslint-disable-next-line @typescript-eslint/no-explicit-any + async sendEmail(@Arg('email') email: string): Promise { + const payload = { + email, + email_text: 7, + email_verification_code_type: 'resetPassword', + } + const result = await apiPost(CONFIG.LOGIN_API_URL + 'sendEmail', payload) + if (result.success) return result.result.data.state + return result.result } - */ - /* @Mutation(() => Boolean) - async deleteUser(@Arg('id') id: string): Promise { - const user = await User.findOne({ where: { id } }) - if (!user) throw new Error('User not found!') - await user.remove() - return true - } */ + @Query(() => LoginViaVerificationCode) + // eslint-disable-next-line @typescript-eslint/no-explicit-any + async loginViaEmailVerificationCode(@Arg('optin') optin: string): Promise { + // I cannot use number as type here. + // The value received is not the same as sent by the query + const result = await apiGet( + CONFIG.LOGIN_API_URL + 'loginViaEmailVerificationCode?emailVerificationCode=' + optin, + ) + if (result.success) + return { + sessionId: result.result.data.session_id, + email: result.result.data.user.email, + } + return result.result + } } From 00fc4056b1dabf25f318e49c3b8a3fc972ec8da6 Mon Sep 17 00:00:00 2001 From: ogerly Date: Wed, 21 Jul 2021 18:07:05 +0200 Subject: [PATCH 0706/1050] test step 1 --- frontend/src/views/Pages/Register.spec.js | 1 + frontend/src/views/Pages/Register.vue | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/frontend/src/views/Pages/Register.spec.js b/frontend/src/views/Pages/Register.spec.js index 85f3ca38f..8b4f99594 100644 --- a/frontend/src/views/Pages/Register.spec.js +++ b/frontend/src/views/Pages/Register.spec.js @@ -80,6 +80,7 @@ describe('Register', () => { expect(wrapper.find('button[type="submit"]').exists()).toBe(false) }) + it('shows a warning when no valid Email is entered', async () => { wrapper.find('#registerEmail').setValue('no_valid@Email') await flushPromises() diff --git a/frontend/src/views/Pages/Register.vue b/frontend/src/views/Pages/Register.vue index 6f3e3af12..27448c8b3 100755 --- a/frontend/src/views/Pages/Register.vue +++ b/frontend/src/views/Pages/Register.vue @@ -79,8 +79,8 @@
- - + +
From bc000efd87c9701480c4aeaa7b819ab49bfe8f01 Mon Sep 17 00:00:00 2001 From: Dario Rekowski on RockPI Date: Thu, 22 Jul 2021 08:56:52 +0000 Subject: [PATCH 0707/1050] exchange positions --- community_server/src/Controller/StateBalancesController.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/community_server/src/Controller/StateBalancesController.php b/community_server/src/Controller/StateBalancesController.php index 14d3a7869..5dcc14f02 100644 --- a/community_server/src/Controller/StateBalancesController.php +++ b/community_server/src/Controller/StateBalancesController.php @@ -113,12 +113,12 @@ class StateBalancesController extends AppController if($stateUserTransactionsQuery->count() > 0) { $transactions_with_decay = $transactionsTable->listTransactionsHumanReadable($stateUserTransactionsQuery->toArray(), $user, $decay); foreach($transactions_with_decay as $tr) { - $transactions[] = $tr; if(isset($tr['decay'])) { $tr['decay']['type'] = 'decay'; $tr['decay']['memo'] = ''; $transactions[] = $tr['decay']; } + $transactions[] = $tr; } } From a0b8056c17b22570a1b1dbb6fa6ce71e561b04af Mon Sep 17 00:00:00 2001 From: einhorn_b Date: Thu, 22 Jul 2021 12:32:16 +0200 Subject: [PATCH 0708/1050] release --- CHANGELOG.md | 13 +++++++++++++ frontend/package.json | 2 +- package.json | 2 +- 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c15a8a187..6b6323b17 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,8 +4,21 @@ All notable changes to this project will be documented in this file. Dates are d Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog). +#### [1.2.1](https://github.com/gradido/gradido/compare/1.2.0...1.2.1) + +- exchange positions of decay in transaction in old frontend [`#662`](https://github.com/gradido/gradido/pull/662) +- fix unneccessary migration run on fresh (docker) setup [`#654`](https://github.com/gradido/gradido/pull/654) +- move back decay as standalone transaction in old frontend [`#656`](https://github.com/gradido/gradido/pull/656) +- fix display error with creation [`#652`](https://github.com/gradido/gradido/pull/652) +- update content for frontend [`d37ce09`](https://github.com/gradido/gradido/commit/d37ce0949ef97d2a6c6ffaf0be31db9f6d92e743) +- exchange positions [`bc000ef`](https://github.com/gradido/gradido/commit/bc000efd87c9701480c4aeaa7b819ab49bfe8f01) +- update init db dataset [`ca4ef82`](https://github.com/gradido/gradido/commit/ca4ef82b874185f3d93acf8d1fca9ad6d3dadcaf) + #### [1.2.0](https://github.com/gradido/gradido/compare/1.1.1...1.2.0) +> 20 July 2021 + +- feat: Release v1.2.0 [`#648`](https://github.com/gradido/gradido/pull/648) - 630 frontend text improvemets [`#645`](https://github.com/gradido/gradido/pull/645) - #435 Visual Feedback on not sending GDD [`#647`](https://github.com/gradido/gradido/pull/647) - Make E-Mail Text 100% German [`#643`](https://github.com/gradido/gradido/pull/643) diff --git a/frontend/package.json b/frontend/package.json index 066ef81a1..e29c6647c 100755 --- a/frontend/package.json +++ b/frontend/package.json @@ -1,6 +1,6 @@ { "name": "bootstrap-vue-gradido-wallet", - "version": "1.2.0", + "version": "1.2.1", "private": true, "scripts": { "start": "node run/server.js", diff --git a/package.json b/package.json index 5629ecec1..b1fe084f9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "gradido", - "version": "1.2.0", + "version": "1.2.1", "description": "Gradido", "main": "index.js", "repository": "git@github.com:gradido/gradido.git", From e61ca1ffa41d0bf0afb358aa3c18fe82d45217ec Mon Sep 17 00:00:00 2001 From: ogerly Date: Thu, 22 Jul 2021 12:47:21 +0200 Subject: [PATCH 0709/1050] pre merge moritz --- .../Inputs/InputPasswordConfirmation.vue | 16 ++-- frontend/src/views/Pages/Register.spec.js | 11 ++- frontend/src/views/Pages/Register.vue | 82 +++++-------------- frontend/src/views/Pages/ResetPassword.vue | 3 +- .../UserProfile/UserCard_FormUserPasswort.vue | 3 +- 5 files changed, 42 insertions(+), 73 deletions(-) diff --git a/frontend/src/components/Inputs/InputPasswordConfirmation.vue b/frontend/src/components/Inputs/InputPasswordConfirmation.vue index 08efaccfd..02b1796ef 100644 --- a/frontend/src/components/Inputs/InputPasswordConfirmation.vue +++ b/frontend/src/components/Inputs/InputPasswordConfirmation.vue @@ -3,6 +3,7 @@ @@ -22,9 +23,10 @@ @@ -44,6 +46,10 @@ export default { type: Object, required: true, }, + register: { + type: Boolean, + required: false, + } }, data() { return { diff --git a/frontend/src/views/Pages/Register.spec.js b/frontend/src/views/Pages/Register.spec.js index 8b4f99594..3d4c93897 100644 --- a/frontend/src/views/Pages/Register.spec.js +++ b/frontend/src/views/Pages/Register.spec.js @@ -61,15 +61,15 @@ describe('Register', () => { }) it('has email input fields', () => { - expect(wrapper.find('#registerEmail').exists()).toBeTruthy() + expect(wrapper.find('#Email-input-field').exists()).toBeTruthy() }) it('has password input fields', () => { - expect(wrapper.find('#registerPassword').exists()).toBeTruthy() + expect(wrapper.find('#inputPassword').exists()).toBeTruthy() }) it('has password repeat input fields', () => { - expect(wrapper.find('#registerPasswordRepeat').exists()).toBeTruthy() + expect(wrapper.find('#inputPasswordRepeat').exists()).toBeTruthy() }) it('has 1 checkbox input fields', () => { @@ -80,11 +80,10 @@ describe('Register', () => { expect(wrapper.find('button[type="submit"]').exists()).toBe(false) }) - it('shows a warning when no valid Email is entered', async () => { - wrapper.find('#registerEmail').setValue('no_valid@Email') + wrapper.find('#Email-input-field').setValue('no_valid@Email') await flushPromises() - await expect(wrapper.find('#registerEmailLiveFeedback').text()).toEqual( + await expect(wrapper.find('#Email-input-field b-form-invalid-feedback').text()).toEqual( 'validations.messages.email', ) }) diff --git a/frontend/src/views/Pages/Register.vue b/frontend/src/views/Pages/Register.vue index 27448c8b3..c9a0d8772 100755 --- a/frontend/src/views/Pages/Register.vue +++ b/frontend/src/views/Pages/Register.vue @@ -76,27 +76,14 @@ - +
- - + - -
-
    -
  • - {{ error }} -
  • -
-
-
-

- {{ $t('site.signup.dont_match') }} - -

-
-
- +
{{ $t('reset') }} @@ -65,6 +65,7 @@ export default { sessionId: null, email: null, pending: true, + register: false, } }, methods: { diff --git a/frontend/src/views/Pages/UserProfile/UserCard_FormUserPasswort.vue b/frontend/src/views/Pages/UserProfile/UserCard_FormUserPasswort.vue index 7921f4037..59ce13c52 100644 --- a/frontend/src/views/Pages/UserProfile/UserCard_FormUserPasswort.vue +++ b/frontend/src/views/Pages/UserProfile/UserCard_FormUserPasswort.vue @@ -28,7 +28,7 @@ > - +
@@ -66,6 +66,7 @@ export default { passwordRepeat: '', }, }, + register: false, } }, methods: { From 212b56766257539167f76315db4c1b3bee7a48b1 Mon Sep 17 00:00:00 2001 From: ogerly Date: Thu, 22 Jul 2021 13:28:34 +0200 Subject: [PATCH 0710/1050] fix lint, fix test, fix merge --- .../Inputs/InputPasswordConfirmation.vue | 7 ++++--- frontend/src/views/Pages/Register.spec.js | 4 ++-- frontend/src/views/Pages/Register.vue | 16 +++++++++++----- frontend/src/views/Pages/ResetPassword.vue | 2 +- .../UserProfile/UserCard_FormUserPasswort.vue | 2 +- 5 files changed, 19 insertions(+), 12 deletions(-) diff --git a/frontend/src/components/Inputs/InputPasswordConfirmation.vue b/frontend/src/components/Inputs/InputPasswordConfirmation.vue index f47f809c4..19d4ab02e 100644 --- a/frontend/src/components/Inputs/InputPasswordConfirmation.vue +++ b/frontend/src/components/Inputs/InputPasswordConfirmation.vue @@ -12,9 +12,9 @@ }" :label="register ? $t('form.password') : $t('form.password_new')" :showAllErrors="true" - :immediate="true" + :immediate="true" :name="createId(register ? $t('form.password') : $t('form.password_new'))" - :placeholder="register ? $t('form.password') : $t('form.password_new')" + :placeholder="register ? $t('form.password') : $t('form.password_new')" v-model="password" > @@ -22,6 +22,7 @@ { }) it('has password input fields', () => { - expect(wrapper.find('input[name="form.password_new"]').exists()).toBeTruthy() + expect(wrapper.find('input[name="form.password"]').exists()).toBeTruthy() }) it('has password repeat input fields', () => { - expect(wrapper.find('input[name="form.password_new_repeat"]').exists()).toBeTruthy() + expect(wrapper.find('input[name="form.passwordRepeat"]').exists()).toBeTruthy() }) it('has 1 checkbox input fields', () => { diff --git a/frontend/src/views/Pages/Register.vue b/frontend/src/views/Pages/Register.vue index 170365bdb..b0b2e4cd6 100755 --- a/frontend/src/views/Pages/Register.vue +++ b/frontend/src/views/Pages/Register.vue @@ -76,10 +76,10 @@ - +
- @@ -180,15 +180,21 @@ export default { this.form.password.password, ) if (result.success) { - this.$store.dispatch('login', { + /* this.$store.dispatch('login', { sessionId: result.result.data.session_id, - email: this.form.email, + user: { + email: this.form.email, + firstName: this.form.firstname, + lastName: this.form.lastname + } + }) + */ this.form.email = '' this.form.firstname = '' this.form.lastname = '' this.form.password.password = '' - + this.$router.push('/thx/register') } else { this.showError = true diff --git a/frontend/src/views/Pages/ResetPassword.vue b/frontend/src/views/Pages/ResetPassword.vue index 8d1fe05cd..be565333a 100644 --- a/frontend/src/views/Pages/ResetPassword.vue +++ b/frontend/src/views/Pages/ResetPassword.vue @@ -26,7 +26,7 @@ - +
{{ $t('reset') }} diff --git a/frontend/src/views/Pages/UserProfile/UserCard_FormUserPasswort.vue b/frontend/src/views/Pages/UserProfile/UserCard_FormUserPasswort.vue index 59ce13c52..74dc87ddb 100644 --- a/frontend/src/views/Pages/UserProfile/UserCard_FormUserPasswort.vue +++ b/frontend/src/views/Pages/UserProfile/UserCard_FormUserPasswort.vue @@ -28,7 +28,7 @@ > - +
From 318e52eac845836716b46103988b01c282f8bb00 Mon Sep 17 00:00:00 2001 From: ogerly Date: Fri, 23 Jul 2021 12:39:15 +0200 Subject: [PATCH 0711/1050] fix bug, fix lint, fix test --- .../views/Pages/AccountOverview/GddSend/TransactionForm.vue | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/frontend/src/views/Pages/AccountOverview/GddSend/TransactionForm.vue b/frontend/src/views/Pages/AccountOverview/GddSend/TransactionForm.vue index 01fc8a97a..364f54ac7 100644 --- a/frontend/src/views/Pages/AccountOverview/GddSend/TransactionForm.vue +++ b/frontend/src/views/Pages/AccountOverview/GddSend/TransactionForm.vue @@ -104,6 +104,7 @@ rows="3" v-model="form.memo" class="pl-3" + style="font-size: large" > @@ -197,4 +198,9 @@ export default { span.errors { color: red; } +#input-1:focus, +#input-2:focus, +#input-3:focus { + font-weight: bold; +} From 10bf3b0cdfa6c44f879be0155e93f636601a051b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Claus-Peter=20H=C3=BCbner?= Date: Thu, 22 Jul 2021 20:35:25 +0200 Subject: [PATCH 0712/1050] [#612] new directory structure in /docu/Concepts - divided in * BusinessRequirements * TechnicalRequirements * Testfallkatalog - including first examples of documents --- .../BenutzerVerwaltung.md | 31 ++ .../CommunityVerwaltung.md | 246 +++++++++++++++ .../GraDiDoTransaktionen.md | 99 ++++++ .../BusinessRequirements/KontenVerwaltung.md | 12 + .../RegelnDerGeldschoepfung.md | 1 + .../graphics/CommunityModell.drawio | 151 +++++++++ .../graphics/Elopage-GDT-Transaktionen.drawio | 297 ++++++++++++++++++ .../image/CommunityModell.png | Bin 0 -> 1295615 bytes .../image/Elopage-GDT-Transaktionen.png | Bin 0 -> 79528 bytes .../BusinessRequirements/image/my_gradido.png | Bin 0 -> 91907 bytes .../Transactions/Transaktionen.md | 40 +++ .../Testfallkatalog/ReadMe-Testkatalog.md | 52 +++ .../C001-01-LoginMaske.md | 112 +++++++ .../C001-02-LoginMaske.md | 59 ++++ .../C001-03-LoginMaske.md | 181 +++++++++++ .../Testfallkatalog/Testfall-Vorlage.md | 27 ++ .../image/C001-01-LoginMaske.png | Bin 0 -> 31765 bytes .../image/C001-03-LoginMaske1.png | Bin 0 -> 33263 bytes .../image/C001-03-LoginMaske2.png | Bin 0 -> 27800 bytes .../image/C001-03-LoginMaske3.png | Bin 0 -> 50493 bytes 20 files changed, 1308 insertions(+) create mode 100644 docu/Concepts/BusinessRequirements/BenutzerVerwaltung.md create mode 100644 docu/Concepts/BusinessRequirements/CommunityVerwaltung.md create mode 100644 docu/Concepts/BusinessRequirements/GraDiDoTransaktionen.md create mode 100644 docu/Concepts/BusinessRequirements/KontenVerwaltung.md create mode 100644 docu/Concepts/BusinessRequirements/RegelnDerGeldschoepfung.md create mode 100644 docu/Concepts/BusinessRequirements/graphics/CommunityModell.drawio create mode 100644 docu/Concepts/BusinessRequirements/graphics/Elopage-GDT-Transaktionen.drawio create mode 100644 docu/Concepts/BusinessRequirements/image/CommunityModell.png create mode 100644 docu/Concepts/BusinessRequirements/image/Elopage-GDT-Transaktionen.png create mode 100644 docu/Concepts/BusinessRequirements/image/my_gradido.png create mode 100644 docu/Concepts/TechnicalRequirements/Transactions/Transaktionen.md create mode 100644 docu/Concepts/Testfallkatalog/ReadMe-Testkatalog.md create mode 100644 docu/Concepts/Testfallkatalog/T02-Benutzerverwaltung/C001-01-LoginMaske.md create mode 100644 docu/Concepts/Testfallkatalog/T02-Benutzerverwaltung/C001-02-LoginMaske.md create mode 100644 docu/Concepts/Testfallkatalog/T02-Benutzerverwaltung/C001-03-LoginMaske.md create mode 100644 docu/Concepts/Testfallkatalog/Testfall-Vorlage.md create mode 100644 docu/Concepts/Testfallkatalog/image/C001-01-LoginMaske.png create mode 100644 docu/Concepts/Testfallkatalog/image/C001-03-LoginMaske1.png create mode 100644 docu/Concepts/Testfallkatalog/image/C001-03-LoginMaske2.png create mode 100644 docu/Concepts/Testfallkatalog/image/C001-03-LoginMaske3.png diff --git a/docu/Concepts/BusinessRequirements/BenutzerVerwaltung.md b/docu/Concepts/BusinessRequirements/BenutzerVerwaltung.md new file mode 100644 index 000000000..0e7fb5d9e --- /dev/null +++ b/docu/Concepts/BusinessRequirements/BenutzerVerwaltung.md @@ -0,0 +1,31 @@ +# Benutzer-Verwaltung + + + +Benutzer + +* * + * natürliche Person = TRUE (Flag für Schöpfungserlaubnis Human) + * Vorname + * Nachname + * natürliche Person = FALSE (Flag für Schöpfungserlaubnis Human) + * Projekt/Firmenname/Organisation/Verein... + * Benutzername + * Emailadresse + * Konto + * Trustlevel (Zukunft) + + +## Anwendungsfälle + +### neuen Benutzer anlegen + +### Benutzer bearbeiten + +### Benutzer löschen + +### Benutzer authentifizieren + +### Benutzer authorisieren + +### Benutzer bekanntgeben diff --git a/docu/Concepts/BusinessRequirements/CommunityVerwaltung.md b/docu/Concepts/BusinessRequirements/CommunityVerwaltung.md new file mode 100644 index 000000000..abe97afc0 --- /dev/null +++ b/docu/Concepts/BusinessRequirements/CommunityVerwaltung.md @@ -0,0 +1,246 @@ +# Verwaltung der Communities + +Diese Konzept beschreibt den Begriff "Community" im Kontext von Gradido, welche Eingenschaften eine Community hat und was man mit einer Community alles machen kann. + +## Die Bedeutung des Begriffs Community + +Eine Community bedeutet im Kontext von Gradido eine Gemeinschaft von Personen, die sich nach der Philosophie von Gradido zu einer gemeinsamen Gruppierung zusammenschließen. Unter dem gemeinsamen Zusammenschluß folgen sie der Natürlichen Ökonomie des Lebens. Die Community dient dabei als Rahmen für die Gruppe von Personen, um ihnen den geregelten Zugang zu ermöglichen. Unter dem Begriff "Zugang zur Community" wird die Registrierung eines Benutzerkontos für eine Person verstanden. Dabei erfolgt eine Autentifizierung der Person, um einen personenspezifischen Zugriff auf die Community-Funktionalitäten zu ermöglichen. Denn eine Community bietet einer Person eine Vielzahl an Funktionalitäten, die ein Community-Mitglied nutzen kann. So steht die Verwaltung und das Handeln mit Gradido-Geld als die Hauptfunktionalität einer Community im Vordergrund. Doch sind auch weitere Funktionalitäten, wie eine Selbstdarstellung über Benutzerprofile oder ein sich Vernetzen mit Community-Mitgliedern, aber auch ein Community übergreifendes Vernetzen als soziale Netzewerke möglich. So können aus kleinen Communities über Vertrauensverhältnisse Zusammenschlüsse mehrere eigenständigen Communities entstehen oder auch eine Hierarchie von Communities als Parent-Child-Verbindung aufgebaut werden (siehe weiter unten "Community-Modelle"). + +Innerhalb der Community erfolgt die Umsetzung und Verwaltung des "lebendigen Geldes". Soll heißen hier werden die Mechanismen zur Dreifachen-Schöpfung vollzogen, die das geschöpfte Geld nach den Community-Regeln auf die drei Arten von Empfängerkonten (Benutzerkonto, Gemeinwohlkonto und Ausgleichs- und Umweltkonto) verteilt. Ein Community-Mitglied kann über seinen Community-Zugang auf sein persönliches Benutzerkonto zugreifen und darüber sein Gradido-Geld verwalten. Neben der Einsicht auf seinen aktuellen Kontostand kann er u.a. seine regelmäßig geschöpften Gradido einsehen, mit vorhandenen Gradido bezahlen oder einem anderen Mitglied Gradido überweisen. Die Geldbewegungen werden als eine Liste von Transaktionen geführt und die Vergänglichkeit der Gradidos immer aktuell zur Anzeige gebracht. + +Nach der Bedeutung des Begriffs Community werden nun die Eigenschaften einer Community detailliert beschrieben, damit all die zuvor erwähnten Möglichkeiten der Community abbildbar sind. + +## Eigenschaften einer Community + +Hier werden die Eigenschaften einer Community beschrieben, die notwendig sind, um die oben erwähnten Möglichkeiten der Community zu erfüllen. Es geht dabei um verschiedene Themen und ihre dazu notwendigen Prozesse, die wiederum unter Verweiß in anderen Dokumenten detailter beschrieben sind. + +### Anzeige und -Darstellung + +Da es also mehrere Communities geben wird, benötigt jede Community ihren eigenen Namen und gar ein Symbol oder Bild, um eine optische Unterscheidung bei der Anzeige in den Systemen sicherzustellen. Für eine Aussendarstellung wäre eine Beschreibung der Community und ihre eigene Philosopie, was die Community auszeichnet hilfreich. Diese Werte müssen vom Community-Administrator gepflegt werden können. + +### Mitgliederverwaltung + +Für die Verwaltung von Community-Mitgliedern werden entsprechende Verwaltungsprozesse wie Registrierung, Login mit Autentifizierung, eine Benutzerverwaltung für neue, bestehende und ausscheidende Mitgleider benötigt. Die Benutzerverwaltung stellt zusätzlich die Anforderung, dass ein Community-Mitglied eindeutig identifizierbar ist und das Community übergreifend. Das bedeutet es kann eine Person immer nur einmal existieren und darf auch niemals in mehreren Communities gleichzeitig Mitglied sein. Denn es muss sichergestellt werden, dass eine Person sich keine unerlaubte Vorteil durch zum Beispiel mehrfache Geldschöpfung in mehreren Communities verschafft. Die Details der Mitgliederverwaltung werden beschrieben im Dokument [BenutzerVerwaltung](.\BenutzerVerwaltung.md). + +### Community-Vernetzung + +Für die Community-Vernetzung sind Verwaltungsprozesse zwischen den Communities und auch den Community-Mitgliedern notwendig, um entsprechende Vertrauensverhältnisse aufzubauen. Diese müssen den notwendigen Sicherheitsansprüchen genügen, da darauf aufbauend dann später die Geld-Flüsse abgewickelt werden. Entsprechend den Community-Modellen (siehe im folgenden Unterkapitel **Community Modelle**) wird ein Prozess benötigt, der die Hierarchie bzw. das Vertrauensverhältnis zwischen zwei eigenständigen Communities aufbaut und daraus dann die möglichen Funktionalitätserweiterungen für die Mitglieder bzw. den Communities freischaltet bzw. unterstützt. Zusätzlich wird auch der jeweilige umgekehrte Prozess benötigt, der eine bestehende Hierarchie bzw. ein bestehendes Vertrauensverhältnis zwischen zwei Communities auflöst und löscht, sowie die daraus resultierenden Funktionseinschränkungen für die Mitglieder und die betroffenen Communities. + +Zum besseren Verständnis der Community-Vernetzung erfolgt hier eine Beschreibung der möglichen Konstellationen, wie sich Communities miteinander verbinden können. + +#### Community Modelle + +Bei Gradido werden verschiedene Modelle von Community-Abhängigkeiten unterstützt. Dabei soll unterschieden werden zwischen: + +* eigenständige Community +* sich gegenseitig vertrauende Communities +* von einander abhängige (vererbende) Communities +* Mischung aus den vorherigen Modellen + +Das nachfolgende Bild zeigt einen ersten Eindruck über die unterschiedlichen Community-Modelle: + +![CommunityModell](./image/CommunityModell.png) + + + +##### Eigenständige Community + +Eine eigenständige Community zeichnet sich darin aus, dass sie keine Beziehung zu einer anderen Community aufgebaut hat. Das heißt sie hat weder eine vertrauenswürdige Verknüpfung mit einer zweiten Community, noch hat sie eine Verbindung zu einer Parent-Community und besitzt auch selbst keine Verbindung zu einer Child-Community. Somit kann diese Community für ihre Mitglieder nur Community intern wirksame Prozesse anbieten. Das heißt es ist kein Community übergreifender Handel bzw. Austausch von Gradido möglich. Andererseits werden in dieser Community die Prozesse freigeschaltet, dass ein Aufbau eines vertrauenswürdiges Verhältnis zu einer anderen Community erlaubt, der Aufbau einer Parent-Beziehung und auch der Aufbau einer Child-Beziehung ermöglicht. Die zugehörigen Abbau-Prozesse dagegen sind nicht freigeschalten. Der Community übegreifende Überprüfungsprozess bei der Mitglieder-Registrierung zur eindeutigen Identifikation in der Mitglieder-Verwaltung zählt dabei nicht als vertrauenswürdige Verbindung zwischen Communities. + +##### Gegenseitig vertrauende Communities + +*Hier soll beschrieben werden, was den Unterschied auszeichnet zu einer "Eigenständigen Community", wie man das gegenseitige Vertrauen (sprich Verknüpfung) zwischen zwei oder mehreren Communities auf- und wieder abbaut, was bedarf es an Vorraussetzungen für einen Vertrauens-Auf/Abbau und welche Konsequenzen der Auf- und Abbau des gegenseitigen Vertrauens haben soll.* + +Das Modell der sich "gegenseitig vertrauenden Communities" entspringt der Idee des sich miteinander Vernetzens und damit das Handeln und Agieren mit Gradido-Mitgliedern, die nicht in der eigenen Community als Mitglied registriert sind. Um dies zu ermöglichen bedarf es einem Aufbau-Prozess zwischen zwei Communities, die sich zukünftig gegenseitig ein enges Vertrauen schenken. Auf der Basis dieses Vertrauens tauschen die beiden Communities Informationen untereinander aus, so dass für die Mitglieder beider Communities die Funktionalitäten auf der Gradido-Plattform so transparent erscheinen, als ob sie alle Mitglied einer Community wären. Das würde sich beispielsweise bei der Suche nach einem bestimmten Community-Mitglied auswirken, da nun alle Mitgleider beider Communities in einer Liste zu Anzeige gebracht werden können. Oder der Transfer von Gradidos von einem Mitglied zu einem anderen Mitglied ist über dieses Community-Verhältnis nun auch Community übergreifend möglich. Auch weitere Angebote, die bisher nur in einer Community zur Verfügung standen, sind nun auch den Mitgliedern der anderen Community zugänglich. + +Während des Aufbau-Prozesses werden neben den eigentlichen Security relevanten Informationen für den Aufbau und die Sicherstellung des Vertrauensverhältnisses auch fachliche Informationen ausgetauscht. Unter fachlichen Informationen sind die nun freigeschaltenen Angebote beider Communities gemeint. Somit werden in der einen Community nun auch die fachlichen Prozesse und Angebote der anderen Community zugänglich und freigeschalten und umgekehrt. Wie feingranular die Prozesse und Angebote dabei ausgetauscht und freigeschaltet werden unterliegt einer administrativen Konfiguration der jeweiligen Community. Das heißt der Administrator jeder Community kann im Vorfeld selektiv konfigurieren welche Angebote und Prozesse beim Aufbau-Prozess für ein Vertrauensverhältnis mit einer anderen Community übertragen und freigeschaltet werden. Diese Konfiguration sollte zuvor Community intern abgestimmt sein, um nicht schon zu Beginn der Zusammenarbeit der beiden Communities irgendwelche Missstimmungen unter den Mitgliedern zu verursachen. Die Details des "Vertrauensverhältnis Aufbau-Prozesses" sind weiter unten im Kaptiel Anwendungsfälle beschrieben. + +##### Abhängige Communities + +*Hier soll beschrieben werden, was den Unterschied zu eigenständigen und sich gegenseitig vertrauenden Communities zu den hier abhängigen (sprich vererbten) Communities auszeichnet, welche Vorraussetzungen bedarf der Auf/Abbau einer abhängigen Community und welche Konsequenzen hat der Auf- und Abbau von abhängigen Communities.* + +Parent-Child Beziehung aufbauen: + +keine Änderung der Schöpfungsprozesse + +- jede Community schöpft für ihre Benutzer die 3 Empfängerkonto die jeweils 1000 GDD + +eine Child-Community kann immer nur zu einer Parent-Community gehören + +ein Benutzer kann immer nur zu einer Community gehören + +Schöpfen kann immer nur eine natürliche Person + +Projekt-Konto entspricht "nicht natürliche Person" und kann nicht schöpfen + +Benutzerkonto kann von einer Community in eine andere Community wechseln + +Gradido-ID als Ersatz für Email-Adresse : server/nutzername + +Nutzername ist pro server eindeutig + +Nutzerprofil mit Bild und persönlichen Angeboten + +##### Mischung aus den vorherigen Modellen + +*Hier soll beschrieben werden welche möglichen Mischungen von Modellen erlaubt sind und welche nicht, was hat eine Mischungsvariante an Konsequenzen, wie wird eine Mischungsvariante auf/abgebaut, welche Vorraussetzungen bedarf es für den Auf/Abbau einer Mischungsvariante.** + +### Geldschöpfung + +Eine Community stellt die Mechanismen für die Dreifache-Geldschöpfung bereit. Dazu müssen zuerst die Verteilungsschlüssel auf die drei Kontoarten definiert bzw. konfigurierbar sein. Diese Konfigurationswerte werden vom Community-Administrator gepflegt. Sie dienen als Grundlage für die Höhe der regelmäßig geschöpften Beträge auf die drei Empfängerkonto-Typen. Die regelmäßige Geldschöpfung läuft automatisiert im Hintergrund und muss den Regeln der Nartürlichen Ökonomie des Lebens folgen. Die Details der Dreifachen Geldschöpfung sind in dem Dokument [RegelnDerGeldschoepfung](./RegelnDerGeldschoepfung.md) beschrieben. + +### Konto-Verwaltung + +Durch die Dreifach-Geldschöpfung verwaltet die Community auch die drei Arten von Konten: Benutzerkonto, Gemeinwohlkonto und Ausgleichs- und Umweltkonto(AUF). + +Für jedes Mitglied der Community wird also ein eigenes Benutzerkonto verwaltet, auf das ein Drittel der monatlichen Geldschöpfung fließt. Das Gemeinwohlkonto und das AUF-Konto existieren pro Community einmal und auf jedes der beiden Konten fließen monatlich die beiden anderen Drittel der Geldschöpfung. + +Somit muss also eine Community für jede Kontoart die entsprechenden Kontoverwaltungsprozesse anbieten. Einmal in Verbindung pro Mitglied für das Benutzerkonto und dann jeweils eine Verwaltung für das Gemeinwohlkonto und eine Verwaltung für das AUF-Konto. Die Berechtigungen für die Zugriffe auf die drei Kontoarten müssen ebenfalls in der Community gepflegt und kontrolliert werden. Das bedeutet die Community muss ihren Mitgliedern auf ihre eigenen Benutzerkonten Zugriffsrechte erteilen und diese auch kontrollieren, so dass keine unerlaubten Zugriffe stattfinden können. Dann müssen in der Community bestimmte Mitglieder Sonderberechtigungen erhalten, um die Verwaltung des Gemeinwohlkontos und des AUF-Kontos durchführen zu können. Die Verwaltung der Berechtigungen ist wiederum alleine dem Community-Administrator erlaubt. Die Details der Kontenverwaltung ist im Dokument [KontenVerwaltung](.\KontenVerwaltung.md) beschrieben. + +### Berechtigungsverwaltung + +Die Community muss für die verschiedenen Eigenschaften und Prozesse eine eigene Berechtigungsverwaltung zur Verfügung stellen. Für die verschiedenen Berechtigungen muss ein Rollen- und Rechte-Konzept administrierbar sein, so dass für die verschiedenen Mitglieder der Community die Zugriffe feingranular definiert, gesteuert und kontrolliert werden können. Allein der Administrator hat die Rechte auf die Berechtigungsverwaltung zuzugreifen. Das System muss diese hinterlegten Rollen und Rechte dann auf die verwalteten Mitglieder abbilden und für jeden Zugriff auf die Community entsprechend kontrollieren, freigeben oder verhindern. + +### Attribute einer Community + +In diesem Kapitel werden die Attribute beschrieben, die in einer Community zu speichern sind. + +#### Name + +Das Attribut Name dient zur möglichst eindeutigen Benennung der Community. Er wird als Menschen lesbare Anzeige und als Unterscheidungskriterium bei mehreren Communities eingesetzt. Nur der Community Administrator kann diesen setzen und verändern. + +#### Bild + +Das Attribut Bild wird für die Anzeige einer Community verwendet und kann nur vom Community-Administrator gesetzt werden. + +#### Beschreibung + +Das Attribut Beschreibung ist ein Text, der die Philosophie der Community ausdrücken soll. Hier können sich die Community-Mitglieder eine gemeinsame Formulierung ausdenken, die nach ihrer Vorstellung den Kern und die Grundregeln ihrer Gemeinschaft am besten ausdrücken. Dies könnte wie eine Art Aussendarstellung für neue Mitglieder dienen. Aber nur der Community-Administrator hat die Schreib-Rechte für dieses Attribut. + +#### Serverzuordnung + +Das Attribut Serverzuordnung ist technisch motiviert und dient zusammen mit dem Attribut Name der eindeutigen Identifikation einer Community. Bei der Gründung einer neuen Community muss festgelegt werden auf welchem Server diese Community gehostet wird - auf einem schon vorhandenen Server oder ein extra für diese Community neu aufgesetzter Server. Das Attribut Serverzuordnung muss aber für eine Virtualisierung und technische Skalierung auf mehrere Server-Instanzen vorbereitet sein, sodass keine direkte physische Hardware-Serverzuordnung hierdurch fixiert ist. Aber auch ein eventueller Umzug der Community von einem Server auf einen anderen Server muss möglich sein. Der Community-Administrator hat alleiniges Zugriffrecht auf dieses Attribut. + +#### Liste von Benutzer + +Dieses Listenattribut beinhaltet Benutzer-Elemente, die erfolgreich als Mitglied der Community registriert sind. Die Details eines Benutzer-Elements werden in dem Dokument [BenutzerVerwaltung](./BenutzerVerwaltung.md) beschrieben. + +#### Gemeinwohlkonto + +Das Attribut Gemeinwohlkonto dient als ein Konto-Element, das den Kontotyp Gemeinwohlkonto repräsentiert. Alle Kontobewegungen, wie Geldschöpfung, Geldtransfers, etc., die das Gemeinwohl dieser Community betreffen, werden über dieses Attribut abgewickelt. Details zu Kontobewegungen werden im Dokument [KontenVerwaltung](KontenVerwaltung.md) beschrieben und die Regeln und Vorgänge der Geldschöpfung sind im Dokument [RegelnDerGeldschoepfung](RegelnDerGeldschoepfung.md) zu finden. Auf dieses Attribut haben nur Mitglieder mit entsprechenden Zugriffsrechten die Erlaubnis und Möglichkeiten darauf Einsicht zu nehmen und Prozesse auszulösen. + +#### Ausgleichs- und Umweltkonto AUF-Konto + +Das Attribut Ausgleichs- und Umweltkonto dient als ein Konto-Element, das den Kontotyp AUF-Konto repräsentiert. Alle Kontobewegungen, wie Geldschöpfung, Geldtransfers, etc., die das AUF-Konto dieser Community betreffen, werden über dieses Attribut abgewickelt. Details zu Kontobewegungen werden im Dokument [KontenVerwaltung](KontenVerwaltung.md) beschrieben und die Regeln und Vorgänge der Geldschöpfung sind im Dokument [RegelnDerGeldschoepfung](RegelnDerGeldschoepfung.md) zu finden. Auf dieses Attribut haben nur Mitglieder mit entsprechenden Zugriffsrechten die Erlaubnis und Möglichkeiten darauf Einsicht zu nehmen und Prozesse auszulösen. + +#### Verteilungsschlüssel der Dreifachen-Schöpfung + +Im Attribut Verteilungsschlüssel der Dreifach-Schöpfung werden die für die Community festgelegten Verteilschlüssel konfiguriert. Diese Werte dienen als Grundlage für die Geldschöpfung dieser Community. Nut der Administrator hat Zugriffrechte auf diese Attribut. + +#### Parent + +Das Attribut Parent dient für den hierarchischen Aufbau von Communities. Es enthält den Bezug auf die Community, die für diese Community als Eltern-Community eingerichtet ist. Eine Child-Community kann maximal eine Parent-Community haben. Durch diesen Bezug zu der Parent-Community werden einzelne Prozesse zwischen der Parent- und der Child-Community freigeschalten. Damit ergeben sich erweiterte Möglichkeiten u.a. für die Community-Mitglieder beider Communities, wie beispielsweise das Community übergreifende Handeln zwischen den Community-Mitgliedern oder eine veränderte Verteiltung der Gemeinwohl- und AUF-Schöpfung, etc.. Die Administration dieses Attributes erfolgt implizit über die fachlichen Prozesse, die den Auf- und Abbau einer Parent-Child-Beziehung zwischen zwei Communities steuern. Diese können nur durch den Adminitrator und seiner Berechtigung ausgelöst werden. Die Beschreibung dieser Prozesse ist weiter unten im Kapitel **Anwendungsfälle auf einer Community** zu finden. + +#### Liste Children + +Das Attribut Liste Children dient ebenfalls dem hierarchischen Aufbau von Communities. Es enthält die Bezüge auf die Communities, die für diese Community als Child-Community eingerichtet sind. Eine Parent-Community kann mehrere Child-Communities haben. Durch diesen Bezug zu den Child-Communities werden einzelne Prozesse zwischen der Parent- und den Child-Communities freigeschalten. Damit ergeben sich erweiterte Möglichkeiten u.a. für die Community-Mitglieder beider Communities, wie beispielsweise das Community übergreifende Handeln zwischen den Community-Mitgliedern oder eine veränderte Verteiltung der Gemeinwohl- und AUF-Schöpfung, etc.. Die Administration dieses Attributes erfolgt implizit über die fachlichen Prozesse, die den Auf- und Abbau einer Parent-Child-Beziehung zwischen zwei Communities steuern. Diese können nur durch den Adminitrator und seiner Berechtigung ausgelöst werden. Die Beschreibung dieser Prozesse ist weiter unten im Kapitel **Anwendungsfälle auf einer Community** zu finden. + +#### Liste Trusted Communities + +Das Attribut Liste Trusted Communities dient dem Aufbau von gleichberechtigten Community-Gruppierungen. Es enthält die Bezüge auf die Communities, die für diese Community als vertrauenswürdige Communities eingerichtet sind. Eine vertrauenswürdige Community-Gruppierung kann mehrere gleichberechtigte Communities haben. Durch diesen Bezug zu den vertrauenswürdigen Communities werden einzelne Prozesse zwischen den sich gegenseitig vertrauenden Communities freigeschalten. Damit ergeben sich erweiterte Möglichkeiten u.a. für die Community-Mitglieder beider Communities, wie beispielsweise das Community übergreifende Handeln zwischen den Community-Mitgliedern, etc.. Die Administration dieses Attributes erfolgt implizit über die fachlichen Prozesse, die den Auf- und Abbau einer vertrauenswürdigen Beziehung zwischen zwei Communities steuern. Diese können nur durch den Adminitrator und seiner Berechtigung ausgelöst werden. Die Beschreibung dieser Prozesse ist weiter unten im Kapitel **Anwendungsfälle auf einer Community** zu finden. + +Verteilung (automatische Tx) von unten nach oben an Parent Community für zukünftig angedacht + +keine Verteilung zwischen TrustedCommunities + +Transaktionen auf Gemeinwohlkonto und AUF-Konto + +Menschkonto (HumanAccount, PersonalAccount) vs Sachkonto (ItemAccount, ImpersonalAccount ) + +## Anwendungsfälle auf einer Community + +Die nachfolgenden Anwendungsfälle beschreiben die fachlichen Vorraussetzungen, den fachlichen Ablauf und die fachlichen Veränderungen bzw. den fachlichen Status, der am Ende des erfolgreich abgeschlossenen Anwendungsfalles erreicht wird. Desweiteren erfolgt die fachliche Beschreibung der möglichen Fehlerfälle, in die ein Anwendungsfall münden kann und welcher fachlicher Status am Ende des Anwendungsfalles herrschen soll. + +### Neue Community erstellen + +*Allgemeine fachliche Beschreibung des Anwendungsfalles.* + +#### Vorraussetzungen + +#### Ablauf + +#### Ende Status + +#### Fehlerfälle + +### Community bearbeiten + +*Allgemeine fachliche Beschreibung des Anwendungsfalles.* + +#### Vorraussetzungen + +#### Ablauf + +#### Ende Status + +#### Fehlerfälle + +### Community löschen + +*Allgemeine fachliche Beschreibung des Anwendungsfalles.* + +#### Vorraussetzungen + +#### Ablauf + +#### Ende Status + +#### Fehlerfälle + +### Community-Verknüpfen erstellen + +*Allgemeine fachliche Beschreibung des Anwendungsfalles.* + +#### Vorraussetzungen + +#### Ablauf + +#### Ende Status + +#### Fehlerfälle + +### Community-Verknüpfung löschen + +*Allgemeine fachliche Beschreibung des Anwendungsfalles.* + +#### Vorraussetzungen + +#### Ablauf + +#### Ende Status + +#### Fehlerfälle + +### Community-Vererbung erstellen + +*Allgemeine fachliche Beschreibung des Anwendungsfalles.* + +#### Vorraussetzungen + +#### Ablauf + +#### Ende Status + +#### Fehlerfälle + +### Community-Vererbung löschen + +*Allgemeine fachliche Beschreibung des Anwendungsfalles.* + +#### Vorraussetzungen + +#### Ablauf + +#### Ende Status + +#### Fehlerfälle diff --git a/docu/Concepts/BusinessRequirements/GraDiDoTransaktionen.md b/docu/Concepts/BusinessRequirements/GraDiDoTransaktionen.md new file mode 100644 index 000000000..be0ba9e61 --- /dev/null +++ b/docu/Concepts/BusinessRequirements/GraDiDoTransaktionen.md @@ -0,0 +1,99 @@ +# GraDiDo-Transaktionen + +Im Kontext von GraDiDo gibt es unterschiedliche Arten von Transaktionen: + +* das Schöpfen von GraDiDo (GDD) +* das Übertragen von GDD +* die Vergänglichkeit von GDD +* das Schöpfen von GraDiDo-Transform (GDT) +* das Übertragen von GDT +* das Umwandeln von GDT in GDD + +Dieses Konzept beschreibt für jede Art der Transaktion ihre fachliche Bedeutung, die notwendigen Vorraussetzungen, der fachliche Ablauf und den Ende-Status nach erfolgreicher Transaktionsbearbeitung. Desweiteren werden für jede Transaktionsart alle fachlich möglichen Fehlerfälle aufgeführt und welchen Endstatus die abgebrochene Transaktion dann hinterläßt. + +## Schöpfen von GDD + +*Hier erfolgt die fachliche Beschreibung der Transaktion* + +### Vorraussetzungen + +### Ablauf + +### Ende Status + +### Fehlerfälle + +## Übertragen von GDD + +*Hier erfolgt die fachliche Beschreibung der Transaktion* + +### Vorraussetzungen + +### Ablauf + +### Ende Status + +### Fehlerfälle + +## Vergänglichkeit von GDD + +*Hier erfolgt die fachliche Beschreibung der Transaktion* + +### Vorraussetzungen + +### Ablauf + +### Ende Status + +### Fehlerfälle + +## Schöpfen von GDT + +*Hier erfolgt die fachliche Beschreibung der Transaktion* + +Das Schöpfen von Gradido-Transform wird aktuell (07.2021) über die Plattform Elopage abgewickelt. Das heißt ein auf Elopage registriertes Mitglied zahlt dort eine Summe von Euros auf sein Konto ein. Diese Transaktion in Elopage wird vom GDT-Server abgegriffen und in der GDT-Datenbank gespeichert. + +Folgende Transaktions-Konstellationen können fachlich zwischen Elopage und dem GDT-Server auftreten bzw. müssen von den beteligten Systemen abgewickelt werden: + +![Elopage-GDT-Transaktionen](./image/Elopage-GDT-Transaktionen.png) + +In Variante 1 ist zu sehen, dass die 21%-Transaktion vor der Übertragung der Elopage-Transaktion stattgefunden hat und die Berechnung des GDT-Kontostandes davon unberührt bleibt. + +In Variante 2 taucht nun die Frage auf, wie man mit offenen Transaktionen aus Elopage umgeht. Sollen diese in der 21%-Transaktion mitberücksichtigt werden, dann hätte das eine Änderung der Kontostandsberechnung gegenüber Variante 1 zur Folge. Sollen diese offenen Transaktionen nicht mitberücksichtigt werden, dann wäre kein Unterschied gegenüber Variante 1. + +In Variante 3 ist aber zu sehen, dass ein nicht berücksichtigen der offenen Transaktion einen weiteren Effekt nach sich zieht. Denn eine offene Transaktion könnte ja auch nicht erfolgreich committet, sondern könnte aus welchem Grund auch immer gecancelt werden. Das würde bedeuten, dass die 21%-Transaktion erst abgeschlossen werden kann, sobald die offene Transaktion erfolgreich beendet ist. + + + + +### Vorraussetzungen + +### Ablauf + +### Ende Status + +### Fehlerfälle + +## Übertragen von GDT + +*Hier erfolgt die fachliche Beschreibung der Transaktion* + +### Vorraussetzungen + +### Ablauf + +### Ende Status + +### Fehlerfälle + +## Umwandeln von GDT in GDD + +*Hier erfolgt die fachliche Beschreibung der Transaktion* + +### Vorraussetzungen + +### Ablauf + +### Ende Status + +### Fehlerfälle diff --git a/docu/Concepts/BusinessRequirements/KontenVerwaltung.md b/docu/Concepts/BusinessRequirements/KontenVerwaltung.md new file mode 100644 index 000000000..e59adf4e3 --- /dev/null +++ b/docu/Concepts/BusinessRequirements/KontenVerwaltung.md @@ -0,0 +1,12 @@ +# GraDiDo-Kontoverwaltung + + +## Anwendungsfälle + +### GDD-Konto neuanlegen + +### GDD-Konto bearbeiten + +### GDD-Konto löschen + +### GDD-Konto ent/sperren diff --git a/docu/Concepts/BusinessRequirements/RegelnDerGeldschoepfung.md b/docu/Concepts/BusinessRequirements/RegelnDerGeldschoepfung.md new file mode 100644 index 000000000..0cdd811d3 --- /dev/null +++ b/docu/Concepts/BusinessRequirements/RegelnDerGeldschoepfung.md @@ -0,0 +1 @@ +# Regeln der Geldschöpfung diff --git a/docu/Concepts/BusinessRequirements/graphics/CommunityModell.drawio b/docu/Concepts/BusinessRequirements/graphics/CommunityModell.drawio new file mode 100644 index 000000000..775c958cc --- /dev/null +++ b/docu/Concepts/BusinessRequirements/graphics/CommunityModell.drawio @@ -0,0 +1,151 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docu/Concepts/BusinessRequirements/graphics/Elopage-GDT-Transaktionen.drawio b/docu/Concepts/BusinessRequirements/graphics/Elopage-GDT-Transaktionen.drawio new file mode 100644 index 000000000..66fa7c3e3 --- /dev/null +++ b/docu/Concepts/BusinessRequirements/graphics/Elopage-GDT-Transaktionen.drawio @@ -0,0 +1,297 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docu/Concepts/BusinessRequirements/image/CommunityModell.png b/docu/Concepts/BusinessRequirements/image/CommunityModell.png new file mode 100644 index 0000000000000000000000000000000000000000..141df43a5e0a67688869de8e2d6c5eb8db8b73b5 GIT binary patch literal 1295615 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

C*S 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

u{rbCvIB`;B(#Q>R{h#lq`m5J8`@ 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

fU+ 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 Rgcrs2IiP7I&va5uUUvI&u#S-B&oD9s)zGY8;j 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 eSATprBrPA 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 z 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 z%0D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

) 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

yS2P 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
  • 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 z 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≀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

    xuVgd7@2#PDn+(RA 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 ae*ZJfdkbOmBi0K9JT?}1Y^}Lh;{O2p>U^RA literal 0 HcmV?d00001 diff --git a/docu/Concepts/BusinessRequirements/image/Elopage-GDT-Transaktionen.png b/docu/Concepts/BusinessRequirements/image/Elopage-GDT-Transaktionen.png new file mode 100644 index 0000000000000000000000000000000000000000..55fe58ea78ea2377900b81eda295f3ab309cf2d9 GIT binary patch literal 79528 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 +* Wie man direkt DrawIO-Bilder einhängen kann, ist noch nicht klar (notfalls muss eben ein PNG-Bild davon gemacht werden) + + +## Testfall-Vorlage + +Im Verzeichnis Testfallkatalog liegt eine Testfall-Vorlage, die als Kopie für das Anlegen eines neuen Testfalles herangezogen werden kann. Die Kopie der Testfallvorlage im Test-Thema-Verzeichnis ist dann gemäß den oben beschriebenen Namenskonventionen für die Testfall-Datei umzubenennen. + +In der Testfall-Vorlage sind die Gliederungen und Themen benannt, was eine Testfallbeschreibung beinhalten sollte. + +## Ziel des Testfall-Katalogs + +1. Erfassung aller Testfälle für die bisher vorhandene Software + 1. Schrittweise werden die Testfall-Dateien auf Basis von Test-Sessions erstellt und mit Inhalt gefüllt. +2. Testfall-Erfassung als Grundlage **VOR** der Entwicklung! + 1. Bei der Erstellung eines Tickets für Software-Entwicklung/Änderung wird das "Test-Thema" und der "Testfall" definiert, der als Anforderung für das Ticket dann vom Ticket-Owner in Form einer Testfall-Datei beschrieben wird. + 2. Der Link der Testfall-Datei wird im Ticket hinterlegt + 3. Ein Ticket OHNE Testfall-Datei darf weder beim Review abgenommen noch für ein Release geschlossen werden. diff --git a/docu/Concepts/Testfallkatalog/T02-Benutzerverwaltung/C001-01-LoginMaske.md b/docu/Concepts/Testfallkatalog/T02-Benutzerverwaltung/C001-01-LoginMaske.md new file mode 100644 index 000000000..2fa9e35ee --- /dev/null +++ b/docu/Concepts/Testfallkatalog/T02-Benutzerverwaltung/C001-01-LoginMaske.md @@ -0,0 +1,112 @@ +# Testfall: "C001-01-LoginMaske" + +## Thema: "Benutzerverwaltung" + +## Beschreibung: + +*Welche(n) Anwendungsschritt/Oberfläche/Logik ist durch den Testfall betroffen?* + +Es wird die Anzeige der Login-Maske geprüft auf: + +* Vorhandensein aller geforderten Elemente gemäß Entwurf: + +![Login Maske](../image/C001-01-LoginMaske.png) + +* Layoutprüfung der statischen und dynamischen Elemente +* formelle Validierung von Eingaben in die Eingabefelder mit entsprechenden Fehlermeldungen +* Funktionsprüfung der Mehrsprachigkeit +* Funktionsprüfung der Footer-Links + +**Nicht enthalten in diesem Testfall:** + +* die Funktion hinter dem Button "Anmelden"; siehe dazu Testfall: [C001-02-LoginMaske]() +* die Funktion hinter dem Link "Passwort vergessen"; siehe dazu Testfall: [C001-03-LoginMaske]() + +## Vorraussetzungen: + +*Welche Vorraussetzungen (Daten/Anwendungschritte, etc.) müssen erfüllt sein, um den Testfall durchführen zu können?* + +Es wird die URL + +* Testumgebung: https://stage1.gradido.net/vue/login +* Produktionsumgebung: https://gradido.net/vue/login + +aufgerufen und die Login-Maske wird angezeigt. + + +## Testfall-Schritte: + +*Welche Schritte müssen zur Durchführung des Testfalles getätigt werden? (Dateneingaben/ Navigationen/ Link- o Button-Klicks/ Schritte der Anwendungslogik/ etc.)* + +1. Prüfung auf korrekte Anzeige der Statischen Elemente: + + 1. Text, Rechtschreibung und Layout von: + 1. Maskenüberschrift "Gradido" + 2. Maskentext "Tausend Dank, weil du bei uns bist" + 3. Eingabeüberschrift "Anmeldung" + 4. Label "Email" + 5. Default-Text "Email" bei ungefülltem Eingabefeld + 6. Label "Passwort" + 7. Default-Text "Passwort" bei ungefülltem Eingabefeld + 8. Button-Text "Anmeldung" + 9. Linktext "Passwort vergessen" + 10. Sprachauswahltexte + 11. Footer Copyright + 12. Footer Links: + 1. "Gradido-Akademie" + 2. "App-Version" + 3. "Impressum" + 4. "Datenschutzerklärung" + 5. "Mitgliederbereich" + 6. "Whitepaper" + 7. "Support" +2. Prüfung der Eingabedynamik in der Login-Maske: + + 1. Eingabefeld Email: + 1. valide Emailadresse gemäß Pattern: "name"@"domain"."ländercode" + 2. maximale Länge einer Email-Adresse? + 2. Eingabefeld Passwort: + 1. mindestens ein Zeichen + 2. maximale Länge eines Passwortes? + 3. Sichtbarschaltung und Verdeckung des eingegebenen Passwortes + 3. Sprachauswahl: + 1. entsprechen alle angezeigten Text der aktuell eingestellten Sprache? + 2. Umstellung der Sprache über die Sprachauswahl-Box + 3. Wiederholung von Schritt 2.3.1 und 2.3.2 bis alle verfügbaren Sprachen geprüft sind + 4. Footer-Links: + 1. "Gradido-Akademie" reagiert und landet je nach aktuell eingestellter Sprache auf URL "https://gradido.net/de" + 2. "App-Version" reagiert und landet je nach aktuell eingestellter Sprache auf URL "https://github.com/gradido/gradido/releases/latest" + 3. "Impressum" reagiert und landet je nach aktuell eingestellter Sprache auf URL "https://gradido.net/de/impressum/" + 4. "Datenschutzerklärung" reagiert und landet je nach aktuell eingestellter Sprache auf URL "https://gradido.net/de/datenschutz/" + 5. "Mitgliederbereich" reagiert und landet je nach aktuell eingestellter Sprache auf URL "https://elopage.com/s/gradido/sign_in?locale=de" + 6. "Whitepaper" reagiert und landet je nach aktuell eingestellter Sprache auf URL "https://docs.google.com/document/d/1jZp-DiiMPI9ZPNXmjsvOQ1BtnfDFfx8BX7CDmA8KKjY/edit?usp=sharing" + 7. "Support"reagiert und landet je nach aktuell eingestellter Sprache auf URL "https://gradido.net/de/contact/" + + +## Ende-Bedingungen: + +*Welche Bedingungen werden am Ende des Testfalles bei positivem Ergebnis erwartet? (Daten/ GUI/ Zustände/ etc)* + +Die Login-Maske wird wie erwartet angezeigt. + +Die Texte und Layouts entsprechen den Vorgaben. + +Die Format-Validierungen der Eingabefelder erfüllen die vorgegebenen Regeln + +Alle Links reagieren gemäß den Vorgaben + +Die Eingabefelder sind mit validen Inhalten gefüllt, so dass der Button "Anmeldung" betätigt werden könnte. Dies ist aber Teil des nächsten Testfalls unter [C001-02-LoginMaske]() + + +## erwartete Fehlerfälle: + +*Welche Fehlerfälle können auftreten und wie ist das erwartete Verhalten/ Rückgabewerte/ Fehlercode?* + +Eingabefeld "Email": + +* kein Inhalt -> Fehlermeldung "Email ist ein Pflichtfeld" +* ungültige Email-Adresseingabe -> Fehlermeldung "Email muss eine gültige E-Mail-Adresse sein" + +Eingabefeld "Passwort": + +* kein Inhalt -> Fehlermeldung "Passwort ist ein Pflichtfeld" diff --git a/docu/Concepts/Testfallkatalog/T02-Benutzerverwaltung/C001-02-LoginMaske.md b/docu/Concepts/Testfallkatalog/T02-Benutzerverwaltung/C001-02-LoginMaske.md new file mode 100644 index 000000000..8ca76bd88 --- /dev/null +++ b/docu/Concepts/Testfallkatalog/T02-Benutzerverwaltung/C001-02-LoginMaske.md @@ -0,0 +1,59 @@ +# Testfall: "C001-02-LoginMaske" + +## Thema: "Benutzerverwaltung" + +## Beschreibung: + +*Welche(n) Anwendungsschritt/Oberfläche/Logik ist durch den Testfall betroffen?* + +Es wird in der Login-Maske die Funktion des Buttons "Anmeldung"geprüft: + +![Login Maske](../image/C001-01-LoginMaske.png) + + +**Nicht enthalten in diesem Testfall:** + +* die Anzeige, Layout und Validierung der Login-Maske; siehe dazu Testfall: [C001-01-LoginMaske](file::./C001-01-LoginMakse.md) +* die Funktion hinter dem Link "Passwort vergessen"; siehe dazu Testfall: [C001-03-LoginMaske](C001-03-LoginMaske.md) + +## Vorraussetzungen: + +*Welche Vorraussetzungen (Daten/Anwendungschritte, etc.) müssen erfüllt sein, um den Testfall durchführen zu können?* + +Die Eingabefelder Email und Passwort sind mit validen Inhalten gefüllt. + + +## Testfall-Schritte: + +*Welche Schritte müssen zur Durchführung des Testfalles getätigt werden? (Dateneingaben/ Navigationen/ Link- o Button-Klicks/ Schritte der Anwendungslogik/ etc.)* + +Prüfung auf korrekten Funktionsweise des Buttons "Anmeldung": + +1. In beiden Eingabefeldern Email und Passwort sind gültige und schon registrierte Anmeldedaten eines Mitglieds eingetragen +2. Mit Betätigen des Buttons "Anmeldung" wird der Login-Prozess gestartet + 1. *Gibt es noch weitere Prüfschritte (LOG-Ausgaben auf Login-, Community-Server o.ä.) die hier überprüft werden sollten?* +3. Bei erfolgreichem Login wird die URL angezeigt + * Testumgebung: "https://stage1.gradido.net/vue/overview" + * Produktionsumgebung: "https://gradido.net/vue/overview" +4. Bei fehlerhaftem Login wird eine entsprechend aussagekräftige Fehlermeldung angezeigt und die Anzeige verbleibt auf der Login-Maske. + + + +## Ende-Bedingungen: + +*Welche Bedingungen werden am Ende des Testfalles bei positivem Ergebnis erwartet? (Daten/ GUI/ Zustände/ etc)* + +Der Login-Prozess wurde erfolgreich durchlaufen. + +Alle zu überprüfende Schritte des Login-Prozesses sind erfolgreich abgeschlossen. + +Es wird die Übersichtseite des angemeldeten Mitglieds angezeigt. + + +## erwartete Fehlerfälle: + +*Welche Fehlerfälle können auftreten und wie ist das erwartete Verhalten/ Rückgabewerte/ Fehlercode?* + +nicht registrierte Nutzerdaten in Eingabefeld "Email" und/oder "Passwort": + +* ungültiger Login -> Fehlermeldung "Leider konnten wir keinen Account finden mit diesen Daten!" diff --git a/docu/Concepts/Testfallkatalog/T02-Benutzerverwaltung/C001-03-LoginMaske.md b/docu/Concepts/Testfallkatalog/T02-Benutzerverwaltung/C001-03-LoginMaske.md new file mode 100644 index 000000000..69472625a --- /dev/null +++ b/docu/Concepts/Testfallkatalog/T02-Benutzerverwaltung/C001-03-LoginMaske.md @@ -0,0 +1,181 @@ +# Testfall: "C001-03-LoginMaske" + +## Thema: "Benutzerverwaltung" + +## Beschreibung: + +*Welche(n) Anwendungsschritt/Oberfläche/Logik ist durch den Testfall betroffen?* + +Es wird in der Login-Maske die Funktion des Links "Passwort vergessen?"geprüft: + +![Login Maske](../image/C001-01-LoginMaske.png) + +**Nicht enthalten in diesem Testfall:** + +* die Anzeige, Layout und Validierung der Login-Maske; siehe dazu Testfall: [C001-01-LoginMaske](./C001-01-LoginMakse.md) +* die Funktion hinter dem Link "Passwort vergessen"; siehe dazu Testfall: [C001-02-LoginMaske](C001-02-LoginMaske.md) + +## Vorraussetzungen: + +*Welche Vorraussetzungen (Daten/Anwendungschritte, etc.) müssen erfüllt sein, um den Testfall durchführen zu können?* + +Es wird die URL + +* Testumgebung: https://stage1.gradido.net/vue/login +* Produktionsumgebung: https://gradido.net/vue/login + +aufgerufen und die Login-Maske wird angezeigt. + +## Testfall-Schritte: + +*Welche Schritte müssen zur Durchführung des Testfalles getätigt werden? (Dateneingaben/ Navigationen/ Link- o Button-Klicks/ Schritte der Anwendungslogik/ etc.)* + +* Prüfung auf korrekten Funktionsweise des Links "Passwort vergessen?" +* keine sonstigen Eingaben bzw. Vorraussetzungen notwendig +* Mit Betätigen des Links "Passwort vergessen?" wird der Passwort-Zurücksetzen-Prozess gestartet und unter + * der Testumgebung: https://stage1.gradido.net/vue/password + * der Produktionsumgebung: https://gradido.net/vue/password +* folgende Maske angezeigt: + +![1te Passwort zurücksetzen Maske](../image/C001-03-LoginMaske1.png) + +1. **Prüfung der Anzeige-Elemente, Layout und Eingabevalidierungen des Eingabefeldes, Text, Rechtschreibung und Layout von:** + +* Maskenüberschrift "Passwort zurücksetzen" +* Maskentext "Wenn du dein Passwort vergessen hast, kannst du es hier zurücksetzen" +* Label "Email" +* Default-Text "Email" bei ungefülltem Eingabefeld +* Button-Text "Jetzt senden" +* Linktext "zurück" +* Sprachauswahltexte +* Footer Copyright +* Footer Links: + 1. "Gradido-Akademie" + 2. "App-Version" + 3. "Impressum" + 4. "Datenschutzerklärung" + 5. "Mitgliederbereich" + 6. "Whitepaper" + 7. "Support" + +2. **Prüfung der Eingabedynamik in der 1ten Passwort-Zurücksetzen-Maske:** + + 1. Eingabefeld Email: + 2. valide Emailadresse gemäß Pattern: "name"@"domain"."ländercode" + 3. maximale Länge einer Email-Adresse? + 4. Sprachauswahl: + + 1. entsprechen alle angezeigten Texte der aktuell eingestellten Sprache? + 2. Umstellung der Sprache über die Sprachauswahl-Box + 3. Wiederholung von Schritt 2.4.1 und 2.4.2 bis alle verfügbaren Sprachen geprüft sind + 5. Link "Zurück" ist aktiv und landet auf URL + + 1. Testumgebung: https://stage1.gradido.net/vue/Login + 2. Produktionsumgebung: https://gradido.net/vue/Login + 6. Footer-Links: + + 1. "Gradido-Akademie" reagiert und landet je nach aktuell eingestellter Sprache auf URL "https://gradido.net/de" + 2. "App-Version" reagiert und landet je nach aktuell eingestellter Sprache auf URL "https://github.com/gradido/gradido/releases/latest" + 3. "Impressum" reagiert und landet je nach aktuell eingestellter Sprache auf URL "https://gradido.net/de/impressum/" + 4. "Datenschutzerklärung" reagiert und landet je nach aktuell eingestellter Sprache auf URL "https://gradido.net/de/datenschutz/" + 5. "Mitgliederbereich" reagiert und landet je nach aktuell eingestellter Sprache auf URL "https://elopage.com/s/gradido/sign_in?locale=de" + 6. "Whitepaper" reagiert und landet je nach aktuell eingestellter Sprache auf URL "https://docs.google.com/document/d/1jZp-DiiMPI9ZPNXmjsvOQ1BtnfDFfx8BX7CDmA8KKjY/edit?usp=sharing" + 7. "Support"reagiert und landet je nach aktuell eingestellter Sprache auf URL "https://gradido.net/de/contact/" +3. **Prüfung des eigentlichen Passwort-Zurücksetzen Prozesses** + + 1. Eingabe einer bekannten und validen Email.Adresse, auf die man Zugriff hat. + 2. Mit Betätigen des Links "Passwort zurücksetzen" wird der Passwort-Zurücksetzen Prozess gestartet + 3. *Gibt es noch weitere Prüfschritte (LOG-Ausgaben auf Login-, Community-Server o.ä.) die hier überprüft werden sollten?* + 4. Sobald der Prozess die Zurücksetzen-Email abgeschickt hat, wird die folgende Maske angezeigt: + +![Email-Versandmakse](../image/C001-03-LoginMaske2.png) + +5. **In dem angegebenen Email-Postfach wird eine Email empfangen, die ein Zurücksetzen-Link enthält:** + 1. Testumgebung: https://stage1.gradido.net/vue/reset/'erzeugter rest-code' + 2. Produktionsumgebung: https://gradido.net/vue/reset/'erzeugter reset-code' +6. **Mit Betätigen des Reset-Links bzw. Aufruf des Rest-Links im Browser wird folgende Maske angezeigt:** + +![2te Passwort zurücksetzen Maske](../image/C001-03-LoginMaske3.png) + + + +7. **Prüfung der Anzeige-Elemente, Layout und Eingabevalidierungen der Eingabefelder** + +1. Text, Rechtschreibung und Layout von: + * Maskenüberschrift "Passwort zurücksetzen" + * Maskentext "Jetzt kannst du ein neues Passwort speichern, mit dem du dich zukünftig in der Gradido-App anmelden kannst." + * Label "neues Passwort" + * Label "neues Passwort wiederholen" + * Default-Text "neues Passwort" bei ungefüllten Eingabefeldern + * Button-Text "Passwort zurücksetzen" + * Linktext "zurück" + * Sprachauswahltexte + * Footer Copyright + * Footer Links: + * "Gradido-Akademie" + * "App-Version" + * "Impressum" + * "Datenschutzerklärung" + * "Mitgliederbereich" + * "Whitepaper" + * "Support" + + + + +8. **Prüfung der Eingabedynamik in der 2ten Passwort-Zurücksetzen-Maske:** + + 1. Eingabefeld "Neues Passwort": + + 1. mindestens ein Zeichen + 2. maximale Länge eines Passwortes? + 3. Sichtbarschaltung und Verdeckung des eingegebenen Passwortes + 2. Eingabefeld "Neues Passwort wiederholen": + + 1. mindestens ein Zeichen + 2. maximale Länge eines Passwortes? + 3. Sichtbarschaltung und Verdeckung des eingegebenen Passwortes + 3. Sprachauswahl: + + 1. entsprechen alle angezeigten Texte der aktuell eingestellten Sprache? + 2. Umstellung der Sprache über die Sprachauswahl-Box + 3. Wiederholung von Schritt 8.3.1 und 8.3.2 bis alle verfügbaren Sprachen geprüft sind + 4. Link "Zurück" ist aktiv und landet auf URL + + 1. Testumgebung: https://stage1.gradido.net/vue/Login + 2. Produktionsumgebung: https://gradido.net/vue/Login + 5. Footer-Links: + + 1. "Gradido-Akademie" reagiert und landet je nach aktuell eingestellter Sprache auf URL "https://gradido.net/de" + 2. "App-Version" reagiert und landet je nach aktuell eingestellter Sprache auf URL "https://github.com/gradido/gradido/releases/latest" + 3. "Impressum" reagiert und landet je nach aktuell eingestellter Sprache auf URL "https://gradido.net/de/impressum/" + 4. "Datenschutzerklärung" reagiert und landet je nach aktuell eingestellter Sprache auf URL "https://gradido.net/de/datenschutz/" + 5. "Mitgliederbereich" reagiert und landet je nach aktuell eingestellter Sprache auf URL "https://elopage.com/s/gradido/sign_in?locale=de" + 6. "Whitepaper" reagiert und landet je nach aktuell eingestellter Sprache auf URL "https://docs.google.com/document/d/1jZp-DiiMPI9ZPNXmjsvOQ1BtnfDFfx8BX7CDmA8KKjY/edit?usp=sharing" + 7. "Support"reagiert und landet je nach aktuell eingestellter Sprache auf URL "https://gradido.net/de/contact/" + + +Bei erfolgreichem Passwort-Reset wird eine Email an der die URL angezeigt + +* Testumgebung: "https://stage1.gradido.net/vue/overview" +* Produktionsumgebung: "https://gradido.net/vue/overview" + +Bei fehlerhaftem Login wird eine entsprechend aussagekräftige Fehlermeldung angezeigt und die Anzeige verbleibt auf der Login-Maske. + +## Ende-Bedingungen: + +*Welche Bedingungen werden am Ende des Testfalles bei positivem Ergebnis erwartet? (Daten/ GUI/ Zustände/ etc)* + +Der Login-Prozess wurde erfolgreich durchlaufen. + +Alle zu überprüfende Schritte des Login-Prozesses sind erfolgreich abgeschlossen. + +Es wird die Übersichtseite des angemeldeten Mitglieds angezeigt. + +## erwartete Fehlerfälle: + +*Welche Fehlerfälle können auftreten und wie ist das erwartete Verhalten/ Rückgabewerte/ Fehlercode?* + +nicht registrierte Nutzerdaten in Eingabefeld "Email" und/oder "Passwort": + +* ungültiger Login -> Fehlermeldung "Leider konnten wir keinen Account finden mit diesen Daten!" diff --git a/docu/Concepts/Testfallkatalog/Testfall-Vorlage.md b/docu/Concepts/Testfallkatalog/Testfall-Vorlage.md new file mode 100644 index 000000000..14a971911 --- /dev/null +++ b/docu/Concepts/Testfallkatalog/Testfall-Vorlage.md @@ -0,0 +1,27 @@ +# Testfall: "*Dateiname*" + +## Thema: "*Name des Verzeichnisses*" + +## ## Beschreibung: + +*Welche(n) Anwendungsschritt/Oberfläche/Logik ist durch den Testfall betroffen?* + + +## Vorraussetzungen: + +*Welche Vorraussetzungen (Daten/Anwendungschritte, etc.) müssen erfüllt sein, um den Testfall durchführen zu können?* + + +## Testfall-Schritte: + +*Welche Schritte müssen zur Durchführung des Testfalles getätigt werden? (Dateneingaben/ Navigationen/ Link- o Button-Klicks/ Schritte der Anwendungslogik/ etc.)* + + +## Ende-Bedingungen: + +*Welche Bedingungen werden am Ende des Testfalles bei positivem Ergebnis erwartet? (Daten/ GUI/ Zustände/ etc)* + + +## erwartete Fehlerfälle: + +*Welche Fehlerfälle können auftreten und wie ist das erwartete Verhalten/ Rückgabewerte/ Fehlercode?* diff --git a/docu/Concepts/Testfallkatalog/image/C001-01-LoginMaske.png b/docu/Concepts/Testfallkatalog/image/C001-01-LoginMaske.png new file mode 100644 index 0000000000000000000000000000000000000000..632f58f8a290cd4e072b28e8df5a4c8bcf76c4e7 GIT binary patch literal 31765 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 ejwBM9GY&77qbZ=W2C8dD+uCav zEG~mp2kC~>QU!Ob5`o_nLY@)Cw!HWG0tE7f>MD>MvVA$29lZFx`M)+45@Yy=gL0b# zJT<8HgAYZKvi>dgYpLMvIW#3LasQ@i^4D4+awv!YYj7>zvgFOk569xf18B;&VM?`T zu~TX}&?!V&gCkqO+~ziaJ-5bBP7UMI7t^dL1lKeex(DxWe~~lYQyrP4daWS;T6%H0 z8j=wV6mx1Es>98zaUVV}a(a9$zRScBXMVtets@MwroG`$;LquFcCoq0;eS=5L@2xb zv5g*SRqxSsZXlc3oMclfpSGF zS(ir|vch>LWI*?Wstl*M&AhJs4ElYrfz(trvrrjhgQmnR>5skkEwK_B!a>^|a`4xH z3ct@{Ef6_FEZCWzrZeGJAtNL(e(*B<^ay?!Gvw2tyrgzVPR~5;r0!h!rX~?Y))|_pZ8Fu-!}+m*9y&syj+hC~G5mSM$4rYg zOM6)dhN zA)TU6pX=Qf=xt5raA8{1Whm@kods{4C$V0=f%<~a7kBZZ!1sMVJrWc6BtI}YF8Qb)|AX|)Oe=^|#@?N#p!GkitI6xE@PmML|w z5#06MinL%%*3ssYf$_P7yj`-1#t4l%BJDofnSuMC@!PRbF5l1^f%XDnjB(Q*Vo?>5 z6I`sHlc?KC@cP4uq30&+FHNEQiV85pHh15~Jju@zZwm}z?Em__)g?VqonA}3at|!h z+u{H^_l(x8jSxf6-7oX0fQIYiZtfVE2qy-kb*NVXUw!>~D z!F9TR_jy#C@#tSK)>F8mXUAFcSM-sIItanjA1S1f_foPC-5i~tkg_zGIj-I)_z-Mg z{ZC~6Vj82=gF))fcl4^Ame;F!^|dwZ_!54ndZuI3v(Y95gwpS|XCUpF(_Kr0Vv?~p z#@sj(9>lAzk{4(WWUbxEul+~Ju$t*P@k=AzX+19+p-<4oKm&%b;#(kC2r8VvQJ{De z9;#RGWcSEJ7V+cRiu%wP+=U!S2hr!0XC)H))sXh6OWeaES^p`YhG*FA5Irz-_?91u zo|2=D@fAzBZPzGZ)9iUkuOcw*k<}e_qAzS2sUoIqxF#s!XHX+`L!Vx@e{mhDbyrm_ zb+y?g3HsMsJ>5H}mi$5yVI0xL=-YuqULjp8cAhpPZG09qAl=j^cfVfz{hPhlNBQ1+ zE4jSI)?K-Khj;3ev5Y<|m*H5ikBwxI;U6^WEpo*P!uX@-AB%Bh4^cH^*h_j)x+d?f z(Va!iN`<#fvE|v0t$#fa26iXQO#1Lyc6fOE@lJ1@Nn1b-%W9;k^e2{S35YUt#k~~O zRyEJmLg25WW5n~gUl7d7#NS7xGy-4DP@WF1b4Y8YH!cnHj2p8}GQf9r%G=Hv)6rYH z{-;B_6*;3*4uv=aTU+H>6hki3*@IPOIm5S_rPwz*Y6&$}ghUf%k>pM3t|e~uaHpFe z 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 _2 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ⅅ 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 NqO7V+xs++p{{@%xM0o%J literal 0 HcmV?d00001 diff --git a/docu/Concepts/Testfallkatalog/image/C001-03-LoginMaske2.png b/docu/Concepts/Testfallkatalog/image/C001-03-LoginMaske2.png new file mode 100644 index 0000000000000000000000000000000000000000..2ef79ec602eca3ef25c743d0e99273672bf0f3b3 GIT binary patch literal 27800 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 P86u_s)Snf~n!Wu$+}uEk literal 0 HcmV?d00001 diff --git a/docu/Concepts/Testfallkatalog/image/C001-03-LoginMaske3.png b/docu/Concepts/Testfallkatalog/image/C001-03-LoginMaske3.png new file mode 100644 index 0000000000000000000000000000000000000000..a3f069fa91ba0c61631983baf0368a641f2d6dec GIT binary patch literal 50493 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 Date: Fri, 23 Jul 2021 15:07:00 +0200 Subject: [PATCH 0713/1050] #612 new technical architecture doc --- .../TechnicalRequirements/Architecture/TechnicalOverview.md | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 docu/Concepts/TechnicalRequirements/Architecture/TechnicalOverview.md diff --git a/docu/Concepts/TechnicalRequirements/Architecture/TechnicalOverview.md b/docu/Concepts/TechnicalRequirements/Architecture/TechnicalOverview.md new file mode 100644 index 000000000..3110f963c --- /dev/null +++ b/docu/Concepts/TechnicalRequirements/Architecture/TechnicalOverview.md @@ -0,0 +1,3 @@ +# Technical Overview + +This document describes the technical overview for the Gradido infrastructur. Beginning with a bird's eye view of all involved components, the following chapters will go in details of each component. From 426b0db496e196ffc936b54c2f7dc617964fe2f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Claus-Peter=20H=C3=BCbner?= Date: Fri, 23 Jul 2021 15:13:54 +0200 Subject: [PATCH 0714/1050] #612 rename testcase files --- .../Testfallkatalog/ReadMe-Testkatalog.md | 11 ++++---- .../T01-C001-01-CreateCommunity.md | 27 +++++++++++++++++++ ...oginMaske.md => T02-C001-01-LoginMaske.md} | 0 ...oginMaske.md => T02-C001-02-LoginMaske.md} | 0 ...oginMaske.md => T02-C001-03-LoginMaske.md} | 0 .../T03-C001-01-CreateActiveBasicIncome.md | 27 +++++++++++++++++++ 6 files changed, 59 insertions(+), 6 deletions(-) create mode 100644 docu/Concepts/Testfallkatalog/T01-CommunityVerwaltung/T01-C001-01-CreateCommunity.md rename docu/Concepts/Testfallkatalog/T02-Benutzerverwaltung/{C001-01-LoginMaske.md => T02-C001-01-LoginMaske.md} (100%) rename docu/Concepts/Testfallkatalog/T02-Benutzerverwaltung/{C001-02-LoginMaske.md => T02-C001-02-LoginMaske.md} (100%) rename docu/Concepts/Testfallkatalog/T02-Benutzerverwaltung/{C001-03-LoginMaske.md => T02-C001-03-LoginMaske.md} (100%) create mode 100644 docu/Concepts/Testfallkatalog/T03-Schoepfung-Vergaenglichkeit/T03-C001-01-CreateActiveBasicIncome.md diff --git a/docu/Concepts/Testfallkatalog/ReadMe-Testkatalog.md b/docu/Concepts/Testfallkatalog/ReadMe-Testkatalog.md index 75a2eb1bc..33fae1fb5 100644 --- a/docu/Concepts/Testfallkatalog/ReadMe-Testkatalog.md +++ b/docu/Concepts/Testfallkatalog/ReadMe-Testkatalog.md @@ -18,14 +18,14 @@ vorgesehen, die als Unterverzeichnisse mit folgenden Nameskonventionen angelegt Die **Testfälle** selbst werden in einzelnen Dateien beschrieben. Die Namen der Testfall-Dateien folgen dem Namenspattern: -* Prefix-Pattern: "C", dreistellige laufende Nr, "-", zweistellig laufende Nr, "-", Testfallbezeichnung -* Beispiel: C001-01-Benutzerregistrierung +* Prefix-Pattern: "Prefix des Verzeichnisses"-"C", dreistellige laufende Nr, "-", zweistellig laufende Nr, "-", Testfallbezeichnung +* Beispiel: T02-C001-01-Benutzerregistrierung * die dreistellige Nummer wird mit der Testfallbezeichnung in Bezug gesetzt * die zweistellige Nummer dient als optionale Untergliederung für einen Testfall * Beispiel: - * C001-01-Benutzerregistrierung: Schritt 1 - Registrierungslink - * C001-02-Benutzerregistrierung: Schritt 2 - Datenerfassung - * C001-03-Benutzerregistrierung: Schritt 3 - ... + * T02-C001-01-Benutzerregistrierung: Schritt 1 - Registrierungslink + * T02-C001-02-Benutzerregistrierung: Schritt 2 - Datenerfassung + * T02-C001-03-Benutzerregistrierung: Schritt 3 - ... Um Dialog-Masken als **Bilder** in die Testfallbeschreibungen einzubinden, gibt es das Verzeichnis Testfallkatalog/image. Dieses enthält alle Bilder aller Testfälle nach folgenden Konventionen: @@ -35,7 +35,6 @@ Um Dialog-Masken als **Bilder** in die Testfallbeschreibungen einzubinden, gibt * `![alternativer Text](../image/)` * Wie man direkt DrawIO-Bilder einhängen kann, ist noch nicht klar (notfalls muss eben ein PNG-Bild davon gemacht werden) - ## Testfall-Vorlage Im Verzeichnis Testfallkatalog liegt eine Testfall-Vorlage, die als Kopie für das Anlegen eines neuen Testfalles herangezogen werden kann. Die Kopie der Testfallvorlage im Test-Thema-Verzeichnis ist dann gemäß den oben beschriebenen Namenskonventionen für die Testfall-Datei umzubenennen. diff --git a/docu/Concepts/Testfallkatalog/T01-CommunityVerwaltung/T01-C001-01-CreateCommunity.md b/docu/Concepts/Testfallkatalog/T01-CommunityVerwaltung/T01-C001-01-CreateCommunity.md new file mode 100644 index 000000000..14a971911 --- /dev/null +++ b/docu/Concepts/Testfallkatalog/T01-CommunityVerwaltung/T01-C001-01-CreateCommunity.md @@ -0,0 +1,27 @@ +# Testfall: "*Dateiname*" + +## Thema: "*Name des Verzeichnisses*" + +## ## Beschreibung: + +*Welche(n) Anwendungsschritt/Oberfläche/Logik ist durch den Testfall betroffen?* + + +## Vorraussetzungen: + +*Welche Vorraussetzungen (Daten/Anwendungschritte, etc.) müssen erfüllt sein, um den Testfall durchführen zu können?* + + +## Testfall-Schritte: + +*Welche Schritte müssen zur Durchführung des Testfalles getätigt werden? (Dateneingaben/ Navigationen/ Link- o Button-Klicks/ Schritte der Anwendungslogik/ etc.)* + + +## Ende-Bedingungen: + +*Welche Bedingungen werden am Ende des Testfalles bei positivem Ergebnis erwartet? (Daten/ GUI/ Zustände/ etc)* + + +## erwartete Fehlerfälle: + +*Welche Fehlerfälle können auftreten und wie ist das erwartete Verhalten/ Rückgabewerte/ Fehlercode?* diff --git a/docu/Concepts/Testfallkatalog/T02-Benutzerverwaltung/C001-01-LoginMaske.md b/docu/Concepts/Testfallkatalog/T02-Benutzerverwaltung/T02-C001-01-LoginMaske.md similarity index 100% rename from docu/Concepts/Testfallkatalog/T02-Benutzerverwaltung/C001-01-LoginMaske.md rename to docu/Concepts/Testfallkatalog/T02-Benutzerverwaltung/T02-C001-01-LoginMaske.md diff --git a/docu/Concepts/Testfallkatalog/T02-Benutzerverwaltung/C001-02-LoginMaske.md b/docu/Concepts/Testfallkatalog/T02-Benutzerverwaltung/T02-C001-02-LoginMaske.md similarity index 100% rename from docu/Concepts/Testfallkatalog/T02-Benutzerverwaltung/C001-02-LoginMaske.md rename to docu/Concepts/Testfallkatalog/T02-Benutzerverwaltung/T02-C001-02-LoginMaske.md diff --git a/docu/Concepts/Testfallkatalog/T02-Benutzerverwaltung/C001-03-LoginMaske.md b/docu/Concepts/Testfallkatalog/T02-Benutzerverwaltung/T02-C001-03-LoginMaske.md similarity index 100% rename from docu/Concepts/Testfallkatalog/T02-Benutzerverwaltung/C001-03-LoginMaske.md rename to docu/Concepts/Testfallkatalog/T02-Benutzerverwaltung/T02-C001-03-LoginMaske.md diff --git a/docu/Concepts/Testfallkatalog/T03-Schoepfung-Vergaenglichkeit/T03-C001-01-CreateActiveBasicIncome.md b/docu/Concepts/Testfallkatalog/T03-Schoepfung-Vergaenglichkeit/T03-C001-01-CreateActiveBasicIncome.md new file mode 100644 index 000000000..14a971911 --- /dev/null +++ b/docu/Concepts/Testfallkatalog/T03-Schoepfung-Vergaenglichkeit/T03-C001-01-CreateActiveBasicIncome.md @@ -0,0 +1,27 @@ +# Testfall: "*Dateiname*" + +## Thema: "*Name des Verzeichnisses*" + +## ## Beschreibung: + +*Welche(n) Anwendungsschritt/Oberfläche/Logik ist durch den Testfall betroffen?* + + +## Vorraussetzungen: + +*Welche Vorraussetzungen (Daten/Anwendungschritte, etc.) müssen erfüllt sein, um den Testfall durchführen zu können?* + + +## Testfall-Schritte: + +*Welche Schritte müssen zur Durchführung des Testfalles getätigt werden? (Dateneingaben/ Navigationen/ Link- o Button-Klicks/ Schritte der Anwendungslogik/ etc.)* + + +## Ende-Bedingungen: + +*Welche Bedingungen werden am Ende des Testfalles bei positivem Ergebnis erwartet? (Daten/ GUI/ Zustände/ etc)* + + +## erwartete Fehlerfälle: + +*Welche Fehlerfälle können auftreten und wie ist das erwartete Verhalten/ Rückgabewerte/ Fehlercode?* From c8d77d7cb858678ed31802b504b0b966be4d277d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Claus-Peter=20H=C3=BCbner?= Date: Fri, 23 Jul 2021 15:24:12 +0200 Subject: [PATCH 0715/1050] #612 correct the references after renaming files --- .../T02-C001-01-LoginMaske.md | 11 ++++------ .../T02-C001-02-LoginMaske.md | 11 +++------- .../T02-C001-03-LoginMaske.md | 19 ++++++------------ ...inMaske.png => T02-C001-01-LoginMaske.png} | Bin ...Maske1.png => T02-C001-03-LoginMaske1.png} | Bin ...Maske2.png => T02-C001-03-LoginMaske2.png} | Bin ...Maske3.png => T02-C001-03-LoginMaske3.png} | Bin 7 files changed, 13 insertions(+), 28 deletions(-) rename docu/Concepts/Testfallkatalog/image/{C001-01-LoginMaske.png => T02-C001-01-LoginMaske.png} (100%) rename docu/Concepts/Testfallkatalog/image/{C001-03-LoginMaske1.png => T02-C001-03-LoginMaske1.png} (100%) rename docu/Concepts/Testfallkatalog/image/{C001-03-LoginMaske2.png => T02-C001-03-LoginMaske2.png} (100%) rename docu/Concepts/Testfallkatalog/image/{C001-03-LoginMaske3.png => T02-C001-03-LoginMaske3.png} (100%) diff --git a/docu/Concepts/Testfallkatalog/T02-Benutzerverwaltung/T02-C001-01-LoginMaske.md b/docu/Concepts/Testfallkatalog/T02-Benutzerverwaltung/T02-C001-01-LoginMaske.md index 2fa9e35ee..05516279b 100644 --- a/docu/Concepts/Testfallkatalog/T02-Benutzerverwaltung/T02-C001-01-LoginMaske.md +++ b/docu/Concepts/Testfallkatalog/T02-Benutzerverwaltung/T02-C001-01-LoginMaske.md @@ -10,7 +10,7 @@ Es wird die Anzeige der Login-Maske geprüft auf: * Vorhandensein aller geforderten Elemente gemäß Entwurf: -![Login Maske](../image/C001-01-LoginMaske.png) +![Login Maske](../image/T02-C001-01-LoginMaske.png) * Layoutprüfung der statischen und dynamischen Elemente * formelle Validierung von Eingaben in die Eingabefelder mit entsprechenden Fehlermeldungen @@ -19,8 +19,8 @@ Es wird die Anzeige der Login-Maske geprüft auf: **Nicht enthalten in diesem Testfall:** -* die Funktion hinter dem Button "Anmelden"; siehe dazu Testfall: [C001-02-LoginMaske]() -* die Funktion hinter dem Link "Passwort vergessen"; siehe dazu Testfall: [C001-03-LoginMaske]() +* die Funktion hinter dem Button "Anmelden"; siehe dazu Testfall: [T02-C001-02-LoginMaske.md](./T02-C002-02-LoginMaske.md) +* die Funktion hinter dem Link "Passwort vergessen"; siehe dazu Testfall: [T02-C001-03-LoginMaske.md](./T02-C001-03-LoginMaske.md) ## Vorraussetzungen: @@ -33,7 +33,6 @@ Es wird die URL aufgerufen und die Login-Maske wird angezeigt. - ## Testfall-Schritte: *Welche Schritte müssen zur Durchführung des Testfalles getätigt werden? (Dateneingaben/ Navigationen/ Link- o Button-Klicks/ Schritte der Anwendungslogik/ etc.)* @@ -82,7 +81,6 @@ aufgerufen und die Login-Maske wird angezeigt. 6. "Whitepaper" reagiert und landet je nach aktuell eingestellter Sprache auf URL "https://docs.google.com/document/d/1jZp-DiiMPI9ZPNXmjsvOQ1BtnfDFfx8BX7CDmA8KKjY/edit?usp=sharing" 7. "Support"reagiert und landet je nach aktuell eingestellter Sprache auf URL "https://gradido.net/de/contact/" - ## Ende-Bedingungen: *Welche Bedingungen werden am Ende des Testfalles bei positivem Ergebnis erwartet? (Daten/ GUI/ Zustände/ etc)* @@ -95,8 +93,7 @@ Die Format-Validierungen der Eingabefelder erfüllen die vorgegebenen Regeln Alle Links reagieren gemäß den Vorgaben -Die Eingabefelder sind mit validen Inhalten gefüllt, so dass der Button "Anmeldung" betätigt werden könnte. Dies ist aber Teil des nächsten Testfalls unter [C001-02-LoginMaske]() - +Die Eingabefelder sind mit validen Inhalten gefüllt, so dass der Button "Anmeldung" betätigt werden könnte. Dies ist aber Teil des nächsten Testfalls unter [T02-C001-02-LoginMaske.md](./T02-C001-02-LoginMakse.md) ## erwartete Fehlerfälle: diff --git a/docu/Concepts/Testfallkatalog/T02-Benutzerverwaltung/T02-C001-02-LoginMaske.md b/docu/Concepts/Testfallkatalog/T02-Benutzerverwaltung/T02-C001-02-LoginMaske.md index 8ca76bd88..8c7c24344 100644 --- a/docu/Concepts/Testfallkatalog/T02-Benutzerverwaltung/T02-C001-02-LoginMaske.md +++ b/docu/Concepts/Testfallkatalog/T02-Benutzerverwaltung/T02-C001-02-LoginMaske.md @@ -8,13 +8,12 @@ Es wird in der Login-Maske die Funktion des Buttons "Anmeldung"geprüft: -![Login Maske](../image/C001-01-LoginMaske.png) - +![Login Maske](../image/T02-C001-01-LoginMaske.png) **Nicht enthalten in diesem Testfall:** -* die Anzeige, Layout und Validierung der Login-Maske; siehe dazu Testfall: [C001-01-LoginMaske](file::./C001-01-LoginMakse.md) -* die Funktion hinter dem Link "Passwort vergessen"; siehe dazu Testfall: [C001-03-LoginMaske](C001-03-LoginMaske.md) +* die Anzeige, Layout und Validierung der Login-Maske; siehe dazu Testfall: [T02-C001-01-LoginMaske.md](./T02-C001-01-LoginMakse.md) +* die Funktion hinter dem Link "Passwort vergessen"; siehe dazu Testfall: [T02-C001-03-LoginMaske.md](./T02-C001-03-LoginMaske.md) ## Vorraussetzungen: @@ -22,7 +21,6 @@ Es wird in der Login-Maske die Funktion des Buttons "Anmeldung"geprüft: Die Eingabefelder Email und Passwort sind mit validen Inhalten gefüllt. - ## Testfall-Schritte: *Welche Schritte müssen zur Durchführung des Testfalles getätigt werden? (Dateneingaben/ Navigationen/ Link- o Button-Klicks/ Schritte der Anwendungslogik/ etc.)* @@ -37,8 +35,6 @@ Prüfung auf korrekten Funktionsweise des Buttons "Anmeldung": * Produktionsumgebung: "https://gradido.net/vue/overview" 4. Bei fehlerhaftem Login wird eine entsprechend aussagekräftige Fehlermeldung angezeigt und die Anzeige verbleibt auf der Login-Maske. - - ## Ende-Bedingungen: *Welche Bedingungen werden am Ende des Testfalles bei positivem Ergebnis erwartet? (Daten/ GUI/ Zustände/ etc)* @@ -49,7 +45,6 @@ Alle zu überprüfende Schritte des Login-Prozesses sind erfolgreich abgeschloss Es wird die Übersichtseite des angemeldeten Mitglieds angezeigt. - ## erwartete Fehlerfälle: *Welche Fehlerfälle können auftreten und wie ist das erwartete Verhalten/ Rückgabewerte/ Fehlercode?* diff --git a/docu/Concepts/Testfallkatalog/T02-Benutzerverwaltung/T02-C001-03-LoginMaske.md b/docu/Concepts/Testfallkatalog/T02-Benutzerverwaltung/T02-C001-03-LoginMaske.md index 69472625a..7af2f3bb1 100644 --- a/docu/Concepts/Testfallkatalog/T02-Benutzerverwaltung/T02-C001-03-LoginMaske.md +++ b/docu/Concepts/Testfallkatalog/T02-Benutzerverwaltung/T02-C001-03-LoginMaske.md @@ -8,7 +8,7 @@ Es wird in der Login-Maske die Funktion des Links "Passwort vergessen?"geprüft: -![Login Maske](../image/C001-01-LoginMaske.png) +![Login Maske](../image/T02-C001-01-LoginMaske.png) **Nicht enthalten in diesem Testfall:** @@ -37,7 +37,7 @@ aufgerufen und die Login-Maske wird angezeigt. * der Produktionsumgebung: https://gradido.net/vue/password * folgende Maske angezeigt: -![1te Passwort zurücksetzen Maske](../image/C001-03-LoginMaske1.png) +![1te Passwort zurücksetzen Maske](../image/T02-C001-03-LoginMaske1.png) 1. **Prüfung der Anzeige-Elemente, Layout und Eingabevalidierungen des Eingabefeldes, Text, Rechtschreibung und Layout von:** @@ -88,20 +88,18 @@ aufgerufen und die Login-Maske wird angezeigt. 3. *Gibt es noch weitere Prüfschritte (LOG-Ausgaben auf Login-, Community-Server o.ä.) die hier überprüft werden sollten?* 4. Sobald der Prozess die Zurücksetzen-Email abgeschickt hat, wird die folgende Maske angezeigt: -![Email-Versandmakse](../image/C001-03-LoginMaske2.png) +![Email-Versandmakse](../image/T02-C001-03-LoginMaske2.png) 5. **In dem angegebenen Email-Postfach wird eine Email empfangen, die ein Zurücksetzen-Link enthält:** 1. Testumgebung: https://stage1.gradido.net/vue/reset/'erzeugter rest-code' 2. Produktionsumgebung: https://gradido.net/vue/reset/'erzeugter reset-code' 6. **Mit Betätigen des Reset-Links bzw. Aufruf des Rest-Links im Browser wird folgende Maske angezeigt:** -![2te Passwort zurücksetzen Maske](../image/C001-03-LoginMaske3.png) - - +![2te Passwort zurücksetzen Maske](../image/T02-C001-03-LoginMaske3.png) 7. **Prüfung der Anzeige-Elemente, Layout und Eingabevalidierungen der Eingabefelder** +8. Text, Rechtschreibung und Layout von: -1. Text, Rechtschreibung und Layout von: * Maskenüberschrift "Passwort zurücksetzen" * Maskentext "Jetzt kannst du ein neues Passwort speichern, mit dem du dich zukünftig in der Gradido-App anmelden kannst." * Label "neues Passwort" @@ -119,11 +117,7 @@ aufgerufen und die Login-Maske wird angezeigt. * "Mitgliederbereich" * "Whitepaper" * "Support" - - - - -8. **Prüfung der Eingabedynamik in der 2ten Passwort-Zurücksetzen-Maske:** +9. **Prüfung der Eingabedynamik in der 2ten Passwort-Zurücksetzen-Maske:** 1. Eingabefeld "Neues Passwort": @@ -154,7 +148,6 @@ aufgerufen und die Login-Maske wird angezeigt. 6. "Whitepaper" reagiert und landet je nach aktuell eingestellter Sprache auf URL "https://docs.google.com/document/d/1jZp-DiiMPI9ZPNXmjsvOQ1BtnfDFfx8BX7CDmA8KKjY/edit?usp=sharing" 7. "Support"reagiert und landet je nach aktuell eingestellter Sprache auf URL "https://gradido.net/de/contact/" - Bei erfolgreichem Passwort-Reset wird eine Email an der die URL angezeigt * Testumgebung: "https://stage1.gradido.net/vue/overview" diff --git a/docu/Concepts/Testfallkatalog/image/C001-01-LoginMaske.png b/docu/Concepts/Testfallkatalog/image/T02-C001-01-LoginMaske.png similarity index 100% rename from docu/Concepts/Testfallkatalog/image/C001-01-LoginMaske.png rename to docu/Concepts/Testfallkatalog/image/T02-C001-01-LoginMaske.png diff --git a/docu/Concepts/Testfallkatalog/image/C001-03-LoginMaske1.png b/docu/Concepts/Testfallkatalog/image/T02-C001-03-LoginMaske1.png similarity index 100% rename from docu/Concepts/Testfallkatalog/image/C001-03-LoginMaske1.png rename to docu/Concepts/Testfallkatalog/image/T02-C001-03-LoginMaske1.png diff --git a/docu/Concepts/Testfallkatalog/image/C001-03-LoginMaske2.png b/docu/Concepts/Testfallkatalog/image/T02-C001-03-LoginMaske2.png similarity index 100% rename from docu/Concepts/Testfallkatalog/image/C001-03-LoginMaske2.png rename to docu/Concepts/Testfallkatalog/image/T02-C001-03-LoginMaske2.png diff --git a/docu/Concepts/Testfallkatalog/image/C001-03-LoginMaske3.png b/docu/Concepts/Testfallkatalog/image/T02-C001-03-LoginMaske3.png similarity index 100% rename from docu/Concepts/Testfallkatalog/image/C001-03-LoginMaske3.png rename to docu/Concepts/Testfallkatalog/image/T02-C001-03-LoginMaske3.png From 7cfae4e6b1eec4a1d1711233d80dc83b7d61ef9e Mon Sep 17 00:00:00 2001 From: ogerly Date: Mon, 26 Jul 2021 17:45:21 +0200 Subject: [PATCH 0716/1050] main-content max-width to 1000px --- frontend/src/views/Layout/DashboardLayout_gdd.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/views/Layout/DashboardLayout_gdd.vue b/frontend/src/views/Layout/DashboardLayout_gdd.vue index bf0385400..cec65606a 100755 --- a/frontend/src/views/Layout/DashboardLayout_gdd.vue +++ b/frontend/src/views/Layout/DashboardLayout_gdd.vue @@ -23,7 +23,7 @@ > -
    +
    From 16a55995581ea4b064a259c17448462a36ef4abe Mon Sep 17 00:00:00 2001 From: ogerly Date: Mon, 26 Jul 2021 17:48:59 +0200 Subject: [PATCH 0717/1050] fix lint --- frontend/src/views/Layout/DashboardLayout_gdd.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/views/Layout/DashboardLayout_gdd.vue b/frontend/src/views/Layout/DashboardLayout_gdd.vue index cec65606a..1bde53e60 100755 --- a/frontend/src/views/Layout/DashboardLayout_gdd.vue +++ b/frontend/src/views/Layout/DashboardLayout_gdd.vue @@ -23,7 +23,7 @@ > -
    +
    From 593eb77c0a79ac2e1b8ae276b9685c7097ea7606 Mon Sep 17 00:00:00 2001 From: Dario Rekowski on RockPI Date: Mon, 26 Jul 2021 18:13:29 +0000 Subject: [PATCH 0718/1050] update list GDT API Call --- .../src/Controller/AppRequestsController.php | 55 ++++++++++++++++++- .../Controller/StateBalancesController.php | 1 - 2 files changed, 54 insertions(+), 2 deletions(-) diff --git a/community_server/src/Controller/AppRequestsController.php b/community_server/src/Controller/AppRequestsController.php index 271265257..346efc544 100644 --- a/community_server/src/Controller/AppRequestsController.php +++ b/community_server/src/Controller/AppRequestsController.php @@ -25,7 +25,10 @@ class AppRequestsController extends AppController $this->loadComponent('GradidoNumber'); //$this->loadComponent('JsonRpcRequestClient'); //$this->Auth->allow(['add', 'edit']); - $this->Auth->allow(['index', 'sendCoins', 'createCoins', 'getBalance', 'listTransactions', 'getDecayStartBlock']); + $this->Auth->allow([ + 'index', 'sendCoins', 'createCoins', 'getBalance', + 'listTransactions','listGDTTransactions', 'getDecayStartBlock' + ]); } @@ -403,6 +406,56 @@ class AppRequestsController extends AppController $this->set('body', $body); } + public function listGDTTransactions($page = 1, $count = 25, $orderDirection = 'ASC', $session_id = 0) + { + $timeBegin = microtime(true); + $gdtSum = 0; + $gdtCount = -1; + $this->viewBuilder()->setLayout('ajax'); + + $login_result = $this->requestLogin($session_id, false); + + if($login_result !== true) { + return $this->returnJson($login_result); + } + $session = $this->getRequest()->getSession(); + $user = $session->read('StateUser'); + + if(!$user) { + return $this->returnJson(['state' => 'error', 'msg' => 'user not found', 'details' => 'exist a valid session cookie?']); + } + $gdtEntries = $this->JsonRequestClient->sendRequestGDT([ + 'email' => $user['email'], + 'page' => $page, + 'count' => $count, + 'orderDirection' => $orderDirection + ], 'GdtEntries' . DS . 'sumPerEmailApi'); + //var_dump($gdtEntries); + $transactions = []; + if('success' == $gdtEntries['state'] && 'success' == $gdtEntries['data']['state']) { + $gdtSum = intval($gdtEntries['data']['sum']); + if(isset($gdtEntries['data']['count'])) { + $gdtCount = intval($gdtEntries['data']['count']); + } + if(isset($gdtEntries['data']['ownEntries'])) { + $transactions = $gdtEntries['data']['ownEntries']; + } + } else { + if($user) { + $this->addAdminError('StateBalancesController', 'ajaxGdtOverview', $gdtEntries, $user['id']); + } else { + $this->addAdminError('StateBalancesController', 'ajaxGdtOverview', $gdtEntries, 0); + } + } + $timeEnd = microtime(true); + return $this->returnJson([ + 'state' => 'success', + 'transactions' => $transactions, + 'count' => $gdtEntries['data']['count'], + 'timeUsed' => ($timeEnd - $timeBegin) . ' s' + ]); + } + public function getDecayStartBlock() { $transactionsTable = TableRegistry::getTableLocator()->get('Transactions'); diff --git a/community_server/src/Controller/StateBalancesController.php b/community_server/src/Controller/StateBalancesController.php index 5dcc14f02..a87af5e48 100644 --- a/community_server/src/Controller/StateBalancesController.php +++ b/community_server/src/Controller/StateBalancesController.php @@ -94,7 +94,6 @@ class StateBalancesController extends AppController $gdtSum = 0; $gdtEntries = $this->JsonRequestClient->sendRequestGDT(['email' => $user['email']], 'GdtEntries' . DS . 'sumPerEmailApi'); - if('success' == $gdtEntries['state'] && 'success' == $gdtEntries['data']['state']) { $gdtSum = intval($gdtEntries['data']['sum']); } else { From 1dd3d427531497c10792c6a4e1e98166d623fa6d Mon Sep 17 00:00:00 2001 From: Dario Rekowski on RockPI Date: Tue, 27 Jul 2021 10:57:16 +0000 Subject: [PATCH 0719/1050] remove double call of sumPerEmailApi --- .../Controller/StateBalancesController.php | 25 ++----------------- 1 file changed, 2 insertions(+), 23 deletions(-) diff --git a/community_server/src/Controller/StateBalancesController.php b/community_server/src/Controller/StateBalancesController.php index a87af5e48..f150be489 100644 --- a/community_server/src/Controller/StateBalancesController.php +++ b/community_server/src/Controller/StateBalancesController.php @@ -65,33 +65,12 @@ class StateBalancesController extends AppController if($update_balance_result['success'] !== true) { $this->addAdminError('StateBalances', 'overview', $update_balance_result, $user['id']); } - - // sendRequestGDT - // listPerEmailApi - - $gdtSum = 0; - //if('admin' === $user['role']) { - $gdtEntries = $this->JsonRequestClient->sendRequestGDT(['email' => $user['email']], 'GdtEntries' . DS . 'sumPerEmailApi'); - //var_dump($gdtEntries); - if('success' == $gdtEntries['state'] && 'success' == $gdtEntries['data']['state']) { - $gdtSum = intval($gdtEntries['data']['sum']); - } else { - if($user) { - $this->addAdminError('StateBalancesController', 'overview', $gdtEntries, $user['id']); - } else { - $this->addAdminError('StateBalancesController', 'overview', $gdtEntries, 0); - } - } - //} - // - // + $stateBalancesTable = TableRegistry::getTableLocator()->get('StateBalances'); $stateUserTransactionsTable = TableRegistry::getTableLocator()->get('StateUserTransactions'); - $transactionsTable = TableRegistry::getTableLocator()->get('Transactions'); - + $transactionsTable = TableRegistry::getTableLocator()->get('Transactions'); $stateBalancesTable->updateBalances($user['id']); - $gdtSum = 0; $gdtEntries = $this->JsonRequestClient->sendRequestGDT(['email' => $user['email']], 'GdtEntries' . DS . 'sumPerEmailApi'); if('success' == $gdtEntries['state'] && 'success' == $gdtEntries['data']['state']) { From 4529e465ce7965ba61db815f119a1f462cd80b6a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Claus-Peter=20H=C3=BCbner?= Date: Wed, 28 Jul 2021 00:27:45 +0200 Subject: [PATCH 0720/1050] #612 docu restructuring --- docu/Concepts/BusinessRequirements/BenutzerVerwaltung.md | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/docu/Concepts/BusinessRequirements/BenutzerVerwaltung.md b/docu/Concepts/BusinessRequirements/BenutzerVerwaltung.md index 0e7fb5d9e..a78f84238 100644 --- a/docu/Concepts/BusinessRequirements/BenutzerVerwaltung.md +++ b/docu/Concepts/BusinessRequirements/BenutzerVerwaltung.md @@ -1,7 +1,5 @@ # Benutzer-Verwaltung - - Benutzer * * @@ -16,6 +14,13 @@ Benutzer * Trustlevel (Zukunft) +Gradido-ID als Ersatz für Email-Adresse : server/nutzername + +Nutzername ist pro server eindeutig + +Nutzerprofil mit Bild und persönlichen Angeboten + + ## Anwendungsfälle ### neuen Benutzer anlegen From e67e1c41e78264698e6fae4cf1d29751de7e7b29 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Claus-Peter=20H=C3=BCbner?= Date: Wed, 28 Jul 2021 00:31:25 +0200 Subject: [PATCH 0721/1050] #612 docu restructuring --- .../CommunityVerwaltung.md | 88 +++++---- .../GraDiDoTransaktionen.md | 16 ++ .../BusinessRequirements/KontenVerwaltung.md | 40 +++- .../RegelnDerGeldschoepfung.md | 2 + .../graphics/CommunityModell.drawio | 86 ++++----- .../graphics/Elopage-GDT-Transaktionen.drawio | 172 +++++++++--------- .../HierarischesCommunityModell.drawio | 112 ++++++++++++ .../graphics/Kontoarten.drawio | 34 ++++ .../image/Elopage-GDT-Transaktionen.png | Bin 79528 -> 80247 bytes .../image/HierarchischesCommunityModell.png | Bin 0 -> 867498 bytes .../BusinessRequirements/image/Kontoarten.png | Bin 0 -> 19279 bytes .../Transactions/Transaktionen.md | 22 +-- .../Testfallkatalog/ReadMe-Testkatalog.md | 14 +- .../T01-C001-01-CreateCommunity.md | 12 +- .../T02-C001-01-LoginMaske.md | 4 +- .../T02-C001-02-LoginMaske.md | 4 +- .../T02-C001-03-LoginMaske.md | 102 +++++------ .../T03-C001-01-CreateActiveBasicIncome.md | 10 +- .../Testfallkatalog/Testfall-Vorlage.md | 6 +- .../image/T02-C001-03-LoginMaske4.png | Bin 0 -> 41874 bytes 20 files changed, 459 insertions(+), 265 deletions(-) create mode 100644 docu/Concepts/BusinessRequirements/graphics/HierarischesCommunityModell.drawio create mode 100644 docu/Concepts/BusinessRequirements/graphics/Kontoarten.drawio create mode 100644 docu/Concepts/BusinessRequirements/image/HierarchischesCommunityModell.png create mode 100644 docu/Concepts/BusinessRequirements/image/Kontoarten.png create mode 100644 docu/Concepts/Testfallkatalog/image/T02-C001-03-LoginMaske4.png diff --git a/docu/Concepts/BusinessRequirements/CommunityVerwaltung.md b/docu/Concepts/BusinessRequirements/CommunityVerwaltung.md index abe97afc0..5e61860eb 100644 --- a/docu/Concepts/BusinessRequirements/CommunityVerwaltung.md +++ b/docu/Concepts/BusinessRequirements/CommunityVerwaltung.md @@ -41,8 +41,6 @@ Das nachfolgende Bild zeigt einen ersten Eindruck über die unterschiedlichen Co ![CommunityModell](./image/CommunityModell.png) - - ##### Eigenständige Community Eine eigenständige Community zeichnet sich darin aus, dass sie keine Beziehung zu einer anderen Community aufgebaut hat. Das heißt sie hat weder eine vertrauenswürdige Verknüpfung mit einer zweiten Community, noch hat sie eine Verbindung zu einer Parent-Community und besitzt auch selbst keine Verbindung zu einer Child-Community. Somit kann diese Community für ihre Mitglieder nur Community intern wirksame Prozesse anbieten. Das heißt es ist kein Community übergreifender Handel bzw. Austausch von Gradido möglich. Andererseits werden in dieser Community die Prozesse freigeschaltet, dass ein Aufbau eines vertrauenswürdiges Verhältnis zu einer anderen Community erlaubt, der Aufbau einer Parent-Beziehung und auch der Aufbau einer Child-Beziehung ermöglicht. Die zugehörigen Abbau-Prozesse dagegen sind nicht freigeschalten. Der Community übegreifende Überprüfungsprozess bei der Mitglieder-Registrierung zur eindeutigen Identifikation in der Mitglieder-Verwaltung zählt dabei nicht als vertrauenswürdige Verbindung zwischen Communities. @@ -51,35 +49,56 @@ Eine eigenständige Community zeichnet sich darin aus, dass sie keine Beziehung *Hier soll beschrieben werden, was den Unterschied auszeichnet zu einer "Eigenständigen Community", wie man das gegenseitige Vertrauen (sprich Verknüpfung) zwischen zwei oder mehreren Communities auf- und wieder abbaut, was bedarf es an Vorraussetzungen für einen Vertrauens-Auf/Abbau und welche Konsequenzen der Auf- und Abbau des gegenseitigen Vertrauens haben soll.* -Das Modell der sich "gegenseitig vertrauenden Communities" entspringt der Idee des sich miteinander Vernetzens und damit das Handeln und Agieren mit Gradido-Mitgliedern, die nicht in der eigenen Community als Mitglied registriert sind. Um dies zu ermöglichen bedarf es einem Aufbau-Prozess zwischen zwei Communities, die sich zukünftig gegenseitig ein enges Vertrauen schenken. Auf der Basis dieses Vertrauens tauschen die beiden Communities Informationen untereinander aus, so dass für die Mitglieder beider Communities die Funktionalitäten auf der Gradido-Plattform so transparent erscheinen, als ob sie alle Mitglied einer Community wären. Das würde sich beispielsweise bei der Suche nach einem bestimmten Community-Mitglied auswirken, da nun alle Mitgleider beider Communities in einer Liste zu Anzeige gebracht werden können. Oder der Transfer von Gradidos von einem Mitglied zu einem anderen Mitglied ist über dieses Community-Verhältnis nun auch Community übergreifend möglich. Auch weitere Angebote, die bisher nur in einer Community zur Verfügung standen, sind nun auch den Mitgliedern der anderen Community zugänglich. +Das Modell der sich *gegenseitig vertrauenden Communities* entspringt der Idee des sich miteinander Vernetzens und damit das Handeln und Agieren mit Gradido-Mitgliedern, die nicht in der eigenen Community als Mitglied registriert sind. Um dies zu ermöglichen bedarf es einem Aufbau-Prozess zwischen zwei Communities, die sich zukünftig gegenseitig ein enges Vertrauen schenken. Auf der Basis dieses Vertrauens tauschen die beiden Communities Informationen untereinander aus, so dass für die Mitglieder beider Communities die Funktionalitäten auf der Gradido-Plattform so transparent erscheinen, als ob sie alle Mitglied einer Community wären. Das würde sich beispielsweise bei der Suche nach einem bestimmten Community-Mitglied auswirken, da nun alle Mitgleider beider Communities in einer Liste zur Anzeige gebracht werden können. Oder der Transfer von Gradidos von einem Mitglied zu einem anderen Mitglied ist über dieses Community-Verhältnis nun auch Community übergreifend möglich. Auch weitere Angebote, die bisher nur in einer Community zur Verfügung standen, sind nun auch den Mitgliedern der anderen Community zugänglich. -Während des Aufbau-Prozesses werden neben den eigentlichen Security relevanten Informationen für den Aufbau und die Sicherstellung des Vertrauensverhältnisses auch fachliche Informationen ausgetauscht. Unter fachlichen Informationen sind die nun freigeschaltenen Angebote beider Communities gemeint. Somit werden in der einen Community nun auch die fachlichen Prozesse und Angebote der anderen Community zugänglich und freigeschalten und umgekehrt. Wie feingranular die Prozesse und Angebote dabei ausgetauscht und freigeschaltet werden unterliegt einer administrativen Konfiguration der jeweiligen Community. Das heißt der Administrator jeder Community kann im Vorfeld selektiv konfigurieren welche Angebote und Prozesse beim Aufbau-Prozess für ein Vertrauensverhältnis mit einer anderen Community übertragen und freigeschaltet werden. Diese Konfiguration sollte zuvor Community intern abgestimmt sein, um nicht schon zu Beginn der Zusammenarbeit der beiden Communities irgendwelche Missstimmungen unter den Mitgliedern zu verursachen. Die Details des "Vertrauensverhältnis Aufbau-Prozesses" sind weiter unten im Kaptiel Anwendungsfälle beschrieben. +Während des Aufbau-Prozesses werden neben den eigentlichen Security relevanten Informationen für den Aufbau und die Sicherstellung des Vertrauensverhältnisses auch fachliche Informationen ausgetauscht. Unter fachlichen Informationen sind die nun freigeschaltenen Angebote beider Communities gemeint. Somit werden in der einen Community nun auch die fachlichen Prozesse und Angebote der anderen Community zugänglich und freigeschalten und umgekehrt. Wie feingranular die Prozesse und Angebote dabei ausgetauscht und freigeschaltet werden unterliegt einer administrativen Konfiguration der jeweiligen Community. Das heißt der Administrator jeder Community kann im Vorfeld selektiv konfigurieren welche Angebote und Prozesse beim Aufbau-Prozess für ein Vertrauensverhältnis mit einer anderen Community übertragen und freigeschaltet werden. Diese Konfiguration sollte zuvor Community intern abgestimmt sein, um nicht schon zu Beginn der Zusammenarbeit der beiden Communities irgendwelche Missstimmungen unter den Mitgliedern zu verursachen. Die Details des *Vertrauensverhältnis Aufbau-Prozesses* sind weiter unten im Kapitel **Anwendungsfälle** beschrieben. ##### Abhängige Communities *Hier soll beschrieben werden, was den Unterschied zu eigenständigen und sich gegenseitig vertrauenden Communities zu den hier abhängigen (sprich vererbten) Communities auszeichnet, welche Vorraussetzungen bedarf der Auf/Abbau einer abhängigen Community und welche Konsequenzen hat der Auf- und Abbau von abhängigen Communities.* -Parent-Child Beziehung aufbauen: +Das Modell der *abhängigen Communities* findet seinen Ursprung den Föderalismus von Deutschland in einer Community-Struktur abbilden zu können. Das bedeutet, dass eine baumartige Struktur von Communities aufgebaut werden kann, wie nachfolgendes Bild schemenhaft zeigt: -keine Änderung der Schöpfungsprozesse +![hierarchisches Community-Modell](./image/HierarchischesCommunityModell.png) -- jede Community schöpft für ihre Benutzer die 3 Empfängerkonto die jeweils 1000 GDD +Es wird somit zwischen zwei Communities aus benachbarten Ebenen eine Parent-Child-Beziehung erzeugt. Dadurch gehen diese beiden Communities eine besondere Beziehung untereinander ein, die zu folgenden veränderten Eigenschaften und Verhalten der Parent- und der Child-Community führen: -eine Child-Community kann immer nur zu einer Parent-Community gehören +###### Parent-Community -ein Benutzer kann immer nur zu einer Community gehören +* kann 1 bis n Child-Communities besitzen +* verwaltet keine Mitglieder mit AGE-Konto +* verwaltet nur noch Community eigenes Allgemeinwohl-Konto und AUF-Konto +* benötigt in der Parent-Child-Beziehung einen besonderen Verteilungsschlüssel für das geschöpfte Geld auf die beiden Allgemeinwohl- und AUF-Konten in Richtung Child- nach Parent-Community +* bedarf spezieller Administrations-Rechte und Rollen zum Auf- und Abbau der Child-Community-Beziehungen +* bedarf spezieller Administrationsprozesse zur Verwaltung der Parent-Aufgaben: + * Auf- und Abbau der Parent-Child-Beziehung + * Verschiebung aller Mitglieder von der Parent- in die Child-Community + * Stoppen des Sicherstellungsprozesses, dass eine *natürliche Person* nur Mitglied einer einzigen Community ist, sobald die erste Child-Beziehung aufgebaut ist und alle Mitglieder dahin verschoben sind + * Prozess zur Aufnahme der geschöpften Allgemeinwohl- und AUF-Gelder aus den Child-Communities + * stoppt den Schöpfungsprozess sobald eine Child-Beziehung aufgebaut ist + * startet den Schöpfungsprozess sobald die letzte Child-Beziehung aufgelöst ist + * Aufnahmeprozess von Mitgliedern aus einer Child-Community, bevor dessen Beziehung aufgelöst wird + * starten des Sicherstellungsprozesses, dass eine *natürliche Person* nur Mitglied einer einzigen Community ist, sobald die letzte Child-Beziehung aufgelöst ist + +###### Child-Community + +* besitzt genau eine Parent-Community +* **sofern es eine Community der untersten Ebene ist:** + * verwaltet die Mitglieder mit AGE-Konto + * nimmt die *natürliche Personen*-Mitglieder aus der Parent-Community auf + * bietet einen Wechsel-Prozess für ein Mitglied aus dieser Community in eine andere (Child)-Community + * läuft hier der automatische 3-fach-Schöpfungsprozess inklusive der Verteilung des geschöpften Geldes gemäß dem zuvor definierten Verteilungsschlüssel innerhalb der Community + * wird hier sicher gestellt, dass nur auf PersonalAccounts von *natürlichen Personen* und nicht auf ImpersonalAccounts von *Projekten/Vereine/Firmen* Geld geschöpft wird +* **sofern es eine Parent-Community gibt:** + * läuft hier der Verteilungsprozess aus der Schöpfung auf das Allgemeinwohl- und AUF-Konto gemäß des Verteilungsschlüssels in Richtung von Child nach Parent also von unten nach oben +* hier läuft der Prozess zur Sicherstellung, dass eine *natürliche Person* nur Mitglied einer einzigen (Child)-Community ist +* -Schöpfen kann immer nur eine natürliche Person -Projekt-Konto entspricht "nicht natürliche Person" und kann nicht schöpfen -Benutzerkonto kann von einer Community in eine andere Community wechseln -Gradido-ID als Ersatz für Email-Adresse : server/nutzername -Nutzername ist pro server eindeutig -Nutzerprofil mit Bild und persönlichen Angeboten ##### Mischung aus den vorherigen Modellen @@ -107,55 +126,52 @@ In diesem Kapitel werden die Attribute beschrieben, die in einer Community zu sp #### Name -Das Attribut Name dient zur möglichst eindeutigen Benennung der Community. Er wird als Menschen lesbare Anzeige und als Unterscheidungskriterium bei mehreren Communities eingesetzt. Nur der Community Administrator kann diesen setzen und verändern. +Das Attribut *Name* dient zur möglichst eindeutigen Benennung der Community. Er wird als Menschen lesbare Anzeige und als Unterscheidungskriterium bei mehreren Communities eingesetzt. Nur der Community Administrator kann diesen setzen und verändern. #### Bild -Das Attribut Bild wird für die Anzeige einer Community verwendet und kann nur vom Community-Administrator gesetzt werden. +Das Attribut *Bild* wird für die Anzeige einer Community verwendet und kann nur vom Community-Administrator gesetzt werden. #### Beschreibung -Das Attribut Beschreibung ist ein Text, der die Philosophie der Community ausdrücken soll. Hier können sich die Community-Mitglieder eine gemeinsame Formulierung ausdenken, die nach ihrer Vorstellung den Kern und die Grundregeln ihrer Gemeinschaft am besten ausdrücken. Dies könnte wie eine Art Aussendarstellung für neue Mitglieder dienen. Aber nur der Community-Administrator hat die Schreib-Rechte für dieses Attribut. +Das Attribut *Beschreibung* ist ein Text, der die Philosophie der Community ausdrücken soll. Hier können sich die Community-Mitglieder eine gemeinsame Formulierung ausdenken, die nach ihrer Vorstellung den Kern und die Grundregeln ihrer Gemeinschaft am besten ausdrücken. Dies könnte wie eine Art Aussendarstellung für neue Mitglieder dienen. Aber nur der Community-Administrator hat die Schreib-Rechte für dieses Attribut. #### Serverzuordnung -Das Attribut Serverzuordnung ist technisch motiviert und dient zusammen mit dem Attribut Name der eindeutigen Identifikation einer Community. Bei der Gründung einer neuen Community muss festgelegt werden auf welchem Server diese Community gehostet wird - auf einem schon vorhandenen Server oder ein extra für diese Community neu aufgesetzter Server. Das Attribut Serverzuordnung muss aber für eine Virtualisierung und technische Skalierung auf mehrere Server-Instanzen vorbereitet sein, sodass keine direkte physische Hardware-Serverzuordnung hierdurch fixiert ist. Aber auch ein eventueller Umzug der Community von einem Server auf einen anderen Server muss möglich sein. Der Community-Administrator hat alleiniges Zugriffrecht auf dieses Attribut. +Das Attribut *Serverzuordnung* ist technisch motiviert und dient zusammen mit dem Attribut Name der eindeutigen Identifikation einer Community. Bei der Gründung einer neuen Community muss festgelegt werden auf welchem Server diese Community gehostet wird - auf einem schon vorhandenen Server oder ein extra für diese Community neu aufgesetzter Server. Das Attribut Serverzuordnung muss aber für eine Virtualisierung und technische Skalierung auf mehrere Server-Instanzen vorbereitet sein, sodass keine direkte physische Hardware-Serverzuordnung hierdurch fixiert ist. Aber auch ein eventueller Umzug der Community von einem Server auf einen anderen Server muss möglich sein. Der Community-Administrator hat alleiniges Zugriffsrecht auf dieses Attribut. #### Liste von Benutzer -Dieses Listenattribut beinhaltet Benutzer-Elemente, die erfolgreich als Mitglied der Community registriert sind. Die Details eines Benutzer-Elements werden in dem Dokument [BenutzerVerwaltung](./BenutzerVerwaltung.md) beschrieben. +Dieses Listenattribut beinhaltet Benutzer-Elemente, die erfolgreich als Mitglied der Community registriert sind. Die Details eines Benutzer-Elements werden in dem Dokument [BenutzerVerwaltung](./BenutzerVerwaltung.md) beschrieben. Ein Benutzer-Element besitzt wiederum ein Konto, das für die Community als Ziel der Schöpfung für das AGE des Mitglieds dient. Gleichzeitig wird für ein Benutzer-Element aber auch unterschieden zwischen einem Menschkonto (PersonalAccount) und einem Sachkonto (ImpersonalAccount). Denn nur für ein Benutzerelement mit PersonalAccount, sprich für eine *natürliche Person*, darf Geld für das AGE geschöpft werden, wohingegen für ein Benutzerelement mit ImpersonalAccount, sprich für ein *Projekt/Verein/Sache*, kein Geld geschöpft werden darf. #### Gemeinwohlkonto -Das Attribut Gemeinwohlkonto dient als ein Konto-Element, das den Kontotyp Gemeinwohlkonto repräsentiert. Alle Kontobewegungen, wie Geldschöpfung, Geldtransfers, etc., die das Gemeinwohl dieser Community betreffen, werden über dieses Attribut abgewickelt. Details zu Kontobewegungen werden im Dokument [KontenVerwaltung](KontenVerwaltung.md) beschrieben und die Regeln und Vorgänge der Geldschöpfung sind im Dokument [RegelnDerGeldschoepfung](RegelnDerGeldschoepfung.md) zu finden. Auf dieses Attribut haben nur Mitglieder mit entsprechenden Zugriffsrechten die Erlaubnis und Möglichkeiten darauf Einsicht zu nehmen und Prozesse auszulösen. +Das Attribut *Gemeinwohlkonto* dient als ein Konto-Element, das den Kontotyp Gemeinwohlkonto repräsentiert. Alle Kontobewegungen, wie Geldschöpfung, Geldtransfers, etc., die das Gemeinwohl dieser Community betreffen, werden über dieses Attribut abgewickelt. Details zu Kontobewegungen werden im Dokument [KontenVerwaltung](KontenVerwaltung.md) beschrieben und die Regeln und Vorgänge der Geldschöpfung sind im Dokument [RegelnDerGeldschoepfung](RegelnDerGeldschoepfung.md) zu finden. Auf dieses Attribut haben nur Mitglieder mit entsprechenden Zugriffsrechten die Erlaubnis und Möglichkeiten darauf Einsicht zu nehmen und Prozesse auszulösen. #### Ausgleichs- und Umweltkonto AUF-Konto -Das Attribut Ausgleichs- und Umweltkonto dient als ein Konto-Element, das den Kontotyp AUF-Konto repräsentiert. Alle Kontobewegungen, wie Geldschöpfung, Geldtransfers, etc., die das AUF-Konto dieser Community betreffen, werden über dieses Attribut abgewickelt. Details zu Kontobewegungen werden im Dokument [KontenVerwaltung](KontenVerwaltung.md) beschrieben und die Regeln und Vorgänge der Geldschöpfung sind im Dokument [RegelnDerGeldschoepfung](RegelnDerGeldschoepfung.md) zu finden. Auf dieses Attribut haben nur Mitglieder mit entsprechenden Zugriffsrechten die Erlaubnis und Möglichkeiten darauf Einsicht zu nehmen und Prozesse auszulösen. +Das Attribut *Ausgleichs- und Umweltkonto* dient als ein Konto-Element, das den Kontotyp AUF-Konto repräsentiert. Alle Kontobewegungen, wie Geldschöpfung, Geldtransfers, etc., die das AUF-Konto dieser Community betreffen, werden über dieses Attribut abgewickelt. Details zu Kontobewegungen werden im Dokument [KontenVerwaltung](KontenVerwaltung.md) beschrieben und die Regeln und Vorgänge der Geldschöpfung sind im Dokument [RegelnDerGeldschoepfung](RegelnDerGeldschoepfung.md) zu finden. Auf dieses Attribut haben nur Mitglieder mit entsprechenden Zugriffsrechten die Erlaubnis und Möglichkeiten darauf Einsicht zu nehmen und Prozesse auszulösen. #### Verteilungsschlüssel der Dreifachen-Schöpfung -Im Attribut Verteilungsschlüssel der Dreifach-Schöpfung werden die für die Community festgelegten Verteilschlüssel konfiguriert. Diese Werte dienen als Grundlage für die Geldschöpfung dieser Community. Nut der Administrator hat Zugriffrechte auf diese Attribut. +Im Attribut *Verteilungsschlüssel* der Dreifach-Schöpfung werden die für die Community festgelegten Verteilschlüssel konfiguriert. Diese Werte dienen als Grundlage für die Geldschöpfung innerhalb dieser Community. Nur der Administrator hat Zugriffsrechte auf dieses Attribut. + +Sobald die Community in einer Parent-Child-Beziehung steht, muss das Attribut *Verteilungsschlüssel* ebenfalls die Verteilung der Allgemeinwohl- und AUF-Gelder zwischen Child und Parent-Community definieren. Die erweiterte Konfiguration des Verteilungsschlüssel muss Teil des Aufbau-Prozesses einer Parent-Child-Beziehung sein bzw. währenddessen geprüft und konfiguriert werden. #### Parent -Das Attribut Parent dient für den hierarchischen Aufbau von Communities. Es enthält den Bezug auf die Community, die für diese Community als Eltern-Community eingerichtet ist. Eine Child-Community kann maximal eine Parent-Community haben. Durch diesen Bezug zu der Parent-Community werden einzelne Prozesse zwischen der Parent- und der Child-Community freigeschalten. Damit ergeben sich erweiterte Möglichkeiten u.a. für die Community-Mitglieder beider Communities, wie beispielsweise das Community übergreifende Handeln zwischen den Community-Mitgliedern oder eine veränderte Verteiltung der Gemeinwohl- und AUF-Schöpfung, etc.. Die Administration dieses Attributes erfolgt implizit über die fachlichen Prozesse, die den Auf- und Abbau einer Parent-Child-Beziehung zwischen zwei Communities steuern. Diese können nur durch den Adminitrator und seiner Berechtigung ausgelöst werden. Die Beschreibung dieser Prozesse ist weiter unten im Kapitel **Anwendungsfälle auf einer Community** zu finden. +Das Attribut *Parent* dient für den hierarchischen Aufbau von Communities. Es enthält den Bezug auf die Community, die für diese Community als Eltern-Community eingerichtet ist. Eine Child-Community kann maximal eine Parent-Community haben. Durch diesen Bezug zu der Parent-Community werden einzelne Prozesse zwischen der Parent- und der Child-Community freigeschalten. Damit ergeben sich erweiterte Möglichkeiten u.a. für die Community-Mitglieder beider Communities, wie beispielsweise das Community übergreifende Handeln zwischen den Community-Mitgliedern oder eine veränderte Verteiltung der Gemeinwohl- und AUF-Schöpfung, etc.. Die Administration dieses Attributes erfolgt implizit über die fachlichen Prozesse, die den Auf- und Abbau einer Parent-Child-Beziehung zwischen zwei Communities steuern. Diese können nur durch den Adminitrator und seiner Berechtigung ausgelöst werden. Die Beschreibung dieser Prozesse ist weiter unten im Kapitel **Anwendungsfälle auf einer Community** zu finden. #### Liste Children -Das Attribut Liste Children dient ebenfalls dem hierarchischen Aufbau von Communities. Es enthält die Bezüge auf die Communities, die für diese Community als Child-Community eingerichtet sind. Eine Parent-Community kann mehrere Child-Communities haben. Durch diesen Bezug zu den Child-Communities werden einzelne Prozesse zwischen der Parent- und den Child-Communities freigeschalten. Damit ergeben sich erweiterte Möglichkeiten u.a. für die Community-Mitglieder beider Communities, wie beispielsweise das Community übergreifende Handeln zwischen den Community-Mitgliedern oder eine veränderte Verteiltung der Gemeinwohl- und AUF-Schöpfung, etc.. Die Administration dieses Attributes erfolgt implizit über die fachlichen Prozesse, die den Auf- und Abbau einer Parent-Child-Beziehung zwischen zwei Communities steuern. Diese können nur durch den Adminitrator und seiner Berechtigung ausgelöst werden. Die Beschreibung dieser Prozesse ist weiter unten im Kapitel **Anwendungsfälle auf einer Community** zu finden. +Das Attribut *Liste Children* dient ebenfalls dem hierarchischen Aufbau von Communities. Es enthält die Bezüge auf die Communities, die für diese Community als Child-Community eingerichtet sind. Eine Parent-Community kann mehrere Child-Communities haben. Durch diesen Bezug zu den Child-Communities werden einzelne Prozesse zwischen der Parent- und den Child-Communities freigeschalten. Damit ergeben sich erweiterte Möglichkeiten u.a. für die Community-Mitglieder beider Communities, wie beispielsweise das Community übergreifende Handeln zwischen den Community-Mitgliedern oder eine veränderte Verteiltung der Gemeinwohl- und AUF-Schöpfung, etc.. Die Administration dieses Attributes erfolgt implizit über die fachlichen Prozesse, die den Auf- und Abbau einer Parent-Child-Beziehung zwischen zwei Communities steuern. Diese können nur durch den Administrator und seiner Berechtigung ausgelöst werden. Die Beschreibung dieser Prozesse ist weiter unten im Kapitel **Anwendungsfälle auf einer Community** zu finden. #### Liste Trusted Communities -Das Attribut Liste Trusted Communities dient dem Aufbau von gleichberechtigten Community-Gruppierungen. Es enthält die Bezüge auf die Communities, die für diese Community als vertrauenswürdige Communities eingerichtet sind. Eine vertrauenswürdige Community-Gruppierung kann mehrere gleichberechtigte Communities haben. Durch diesen Bezug zu den vertrauenswürdigen Communities werden einzelne Prozesse zwischen den sich gegenseitig vertrauenden Communities freigeschalten. Damit ergeben sich erweiterte Möglichkeiten u.a. für die Community-Mitglieder beider Communities, wie beispielsweise das Community übergreifende Handeln zwischen den Community-Mitgliedern, etc.. Die Administration dieses Attributes erfolgt implizit über die fachlichen Prozesse, die den Auf- und Abbau einer vertrauenswürdigen Beziehung zwischen zwei Communities steuern. Diese können nur durch den Adminitrator und seiner Berechtigung ausgelöst werden. Die Beschreibung dieser Prozesse ist weiter unten im Kapitel **Anwendungsfälle auf einer Community** zu finden. +Das Attribut *Liste Trusted Communities* dient dem Aufbau von gleichberechtigten Community-Gruppierungen. Es enthält die Referenzen auf die Communities, die für diese Community als vertrauenswürdige Communities eingerichtet sind. Eine vertrauenswürdige Community-Gruppierung kann mehrere gleichberechtigte Communities haben. Durch diesen Bezug zu den vertrauenswürdigen Communities werden einzelne Prozesse zwischen den sich gegenseitig vertrauenden Communities freigeschalten. Damit ergeben sich erweiterte Möglichkeiten u.a. für die Community-Mitglieder beider Communities, wie beispielsweise das Community übergreifende Handeln zwischen den Community-Mitgliedern, etc.. Zwischen zwei *Trusted Communities* erfolgt keine Verteilung gemäß einem Verteilungsschlüssel von geschöpftem Geld das für das Allgemeinwohl- bzw. AUF-Konto bestimmt ist. Dies bleibt Eigentum jeder Community trotz vertrauenswürdiger Beziehung untereinander. -Verteilung (automatische Tx) von unten nach oben an Parent Community für zukünftig angedacht +Die Administration dieses Attributes erfolgt implizit über die fachlichen Prozesse, die den Auf- und Abbau einer vertrauenswürdigen Beziehung zwischen zwei Communities steuern. Diese können nur durch den Adminitrator und seiner Berechtigung ausgelöst werden. Die Beschreibung dieser Prozesse ist im nachfolgenden Kapitel **Anwendungsfälle auf einer Community** zu finden. -keine Verteilung zwischen TrustedCommunities - -Transaktionen auf Gemeinwohlkonto und AUF-Konto - -Menschkonto (HumanAccount, PersonalAccount) vs Sachkonto (ItemAccount, ImpersonalAccount ) ## Anwendungsfälle auf einer Community @@ -197,7 +213,7 @@ Die nachfolgenden Anwendungsfälle beschreiben die fachlichen Vorraussetzungen, #### Fehlerfälle -### Community-Verknüpfen erstellen +### Trusted Community verbinden *Allgemeine fachliche Beschreibung des Anwendungsfalles.* @@ -209,7 +225,7 @@ Die nachfolgenden Anwendungsfälle beschreiben die fachlichen Vorraussetzungen, #### Fehlerfälle -### Community-Verknüpfung löschen +### Trusted Community lösen *Allgemeine fachliche Beschreibung des Anwendungsfalles.* @@ -221,7 +237,7 @@ Die nachfolgenden Anwendungsfälle beschreiben die fachlichen Vorraussetzungen, #### Fehlerfälle -### Community-Vererbung erstellen +### Parent Community einrichten *Allgemeine fachliche Beschreibung des Anwendungsfalles.* @@ -233,7 +249,7 @@ Die nachfolgenden Anwendungsfälle beschreiben die fachlichen Vorraussetzungen, #### Fehlerfälle -### Community-Vererbung löschen +### Parent Community löschen *Allgemeine fachliche Beschreibung des Anwendungsfalles.* diff --git a/docu/Concepts/BusinessRequirements/GraDiDoTransaktionen.md b/docu/Concepts/BusinessRequirements/GraDiDoTransaktionen.md index be0ba9e61..03b3f1a9f 100644 --- a/docu/Concepts/BusinessRequirements/GraDiDoTransaktionen.md +++ b/docu/Concepts/BusinessRequirements/GraDiDoTransaktionen.md @@ -8,6 +8,7 @@ Im Kontext von GraDiDo gibt es unterschiedliche Arten von Transaktionen: * das Schöpfen von GraDiDo-Transform (GDT) * das Übertragen von GDT * das Umwandeln von GDT in GDD +* Campagnen-Transaktion auf GDT (Prozent Aufschlag auf aktuellen GDT-Saldo) Dieses Konzept beschreibt für jede Art der Transaktion ihre fachliche Bedeutung, die notwendigen Vorraussetzungen, der fachliche Ablauf und den Ende-Status nach erfolgreicher Transaktionsbearbeitung. Desweiteren werden für jede Transaktionsart alle fachlich möglichen Fehlerfälle aufgeführt und welchen Endstatus die abgebrochene Transaktion dann hinterläßt. @@ -63,7 +64,9 @@ In Variante 2 taucht nun die Frage auf, wie man mit offenen Transaktionen aus El In Variante 3 ist aber zu sehen, dass ein nicht berücksichtigen der offenen Transaktion einen weiteren Effekt nach sich zieht. Denn eine offene Transaktion könnte ja auch nicht erfolgreich committet, sondern könnte aus welchem Grund auch immer gecancelt werden. Das würde bedeuten, dass die 21%-Transaktion erst abgeschlossen werden kann, sobald die offene Transaktion erfolgreich beendet ist. +### Beschluß vom 27.01.2021: +Die aktuell implementierte Lösung des eigenständigen GDT-Servers sowie die GDT-Kontoführung ohne Amount und stetiger Berechnung des GDT-Saldos aus der Liste der Transaktionen bleibt vorerst bestehen, um die geplante 21%-Campagne für den 21.09.2021 nicht zu gefährden. Die Anzeige des GDT-Kontos in die neue GUI der Gradido-Anwendung wird gegen die neu eingeführte Apollo-Server-Instanz gehen, die aber wiederum die GDT-Requests nur an den GDT-Server durchreicht. Eine Migration der GDT-Serverlogik in die Gradido-Anwendung des Apollo-Server wird auf später verschoben. ### Vorraussetzungen @@ -97,3 +100,16 @@ In Variante 3 ist aber zu sehen, dass ein nicht berücksichtigen der offenen Tra ### Ende Status ### Fehlerfälle + + +## Campagnen-Transaktion auf GDT + +*Hier erfolgt die fachliche Beschreibung der Transaktion* + +### Vorraussetzungen + +### Ablauf + +### Ende Status + +### Fehlerfälle diff --git a/docu/Concepts/BusinessRequirements/KontenVerwaltung.md b/docu/Concepts/BusinessRequirements/KontenVerwaltung.md index e59adf4e3..a18e825b5 100644 --- a/docu/Concepts/BusinessRequirements/KontenVerwaltung.md +++ b/docu/Concepts/BusinessRequirements/KontenVerwaltung.md @@ -1,12 +1,42 @@ -# GraDiDo-Kontoverwaltung +# Kontoverwaltung +In Gradido werden mehrere Arten von Konten notwendig sein: + +* Mitglieder-Konten + * AGE-Konto in GDD mit Vergänglichkeit + * Konto in GDT ohne Vergänglichkeit +* Community-Konten + * Allgemeinwohl-Konto in GDD mit Vergänglichkeit + * AUF-Konto in GDD mit Vergänglichkeit + +![Kontoarten](./image/Kontoarten.png) + +Ziel der Kontoverwaltung soll sein, dass es ein Basistyp eines Kontos gibt, der alle gemeinsamen Eigenschaften der verschiedenen Kontenarten beinhaltet. Ob es für die Unterschiede der verschiedenen Kontenarten dann eigene abgeleitete Konto-Typen geben wird oder ob in dem Basistyp die Unterschiede über Steuerungsattribute, wie Vergängglichkeits-Flag oder Währungsattribut, geregelt wird, bleibt der technischen Implementierung überlassen. + +Grundlegend wird aber die Gradido-Anwendung die Implementierung aller Kontenarten enthalten und keine Separierung in eigenständigen Anwendungsinstanzen vorsehen. + +## Eigenschaften + +Die Basiseigenschaften eines Kontos in Gradido enthalten folgende Attribute: + +* Name +* Währung +* Amount +* Vergänglichkeits-Flag +* Liste der Transaktionen + +Beim Anlegen eines Kontos wird der Name, die Währung, der Amount-Wert auf 0,00 und das Flag der Vergänglichkeit gemäß Verwendungszweck des Kontos initialisiert. Im Anwendungsfall *Transaktion verarbeiten* wird ja nach Konto-Initialisierung (sprich Währung und Vergänglichkeitsflag) und Transaktionstyp die entsprechende Transaktionsverarbeitungslogik auf dem Amount des Kontos ausgeführt. Am Ende der Transaktionsverarbeitung wird die Transaktion in die Liste der Transaktionen aufgenommen und dient lediglich zur Nachvollziehbarkeit der Konto-Bewegungen bei der Anzeige. Die Details der Transaktionsverarbeitung wird im Kapitel **Transaktion verarbeiten** näher beschrieben. + +Menschkonto (HumanAccount, PersonalAccount) vs Sachkonto (ItemAccount, ImpersonalAccount ) ## Anwendungsfälle -### GDD-Konto neuanlegen +### Konto neuanlegen -### GDD-Konto bearbeiten +### Konto bearbeiten -### GDD-Konto löschen +### Konto löschen -### GDD-Konto ent/sperren +### Konto ent/sperren + +### Transaktion verarbeiten diff --git a/docu/Concepts/BusinessRequirements/RegelnDerGeldschoepfung.md b/docu/Concepts/BusinessRequirements/RegelnDerGeldschoepfung.md index 0cdd811d3..3ee3b5193 100644 --- a/docu/Concepts/BusinessRequirements/RegelnDerGeldschoepfung.md +++ b/docu/Concepts/BusinessRequirements/RegelnDerGeldschoepfung.md @@ -1 +1,3 @@ # Regeln der Geldschöpfung + +*Hier werden die fachlichen Regeln der 3-fachen Schöpfung beschrieben* diff --git a/docu/Concepts/BusinessRequirements/graphics/CommunityModell.drawio b/docu/Concepts/BusinessRequirements/graphics/CommunityModell.drawio index 775c958cc..b14a967a3 100644 --- a/docu/Concepts/BusinessRequirements/graphics/CommunityModell.drawio +++ b/docu/Concepts/BusinessRequirements/graphics/CommunityModell.drawio @@ -1,148 +1,148 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + diff --git a/docu/Concepts/BusinessRequirements/graphics/Elopage-GDT-Transaktionen.drawio b/docu/Concepts/BusinessRequirements/graphics/Elopage-GDT-Transaktionen.drawio index 66fa7c3e3..56d0596c0 100644 --- a/docu/Concepts/BusinessRequirements/graphics/Elopage-GDT-Transaktionen.drawio +++ b/docu/Concepts/BusinessRequirements/graphics/Elopage-GDT-Transaktionen.drawio @@ -4,292 +4,292 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - + - - + + - + - - + + - + - - + + - - + + - + - - + + - - + + diff --git a/docu/Concepts/BusinessRequirements/graphics/HierarischesCommunityModell.drawio b/docu/Concepts/BusinessRequirements/graphics/HierarischesCommunityModell.drawio new file mode 100644 index 000000000..e94258e5a --- /dev/null +++ b/docu/Concepts/BusinessRequirements/graphics/HierarischesCommunityModell.drawio @@ -0,0 +1,112 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docu/Concepts/BusinessRequirements/graphics/Kontoarten.drawio b/docu/Concepts/BusinessRequirements/graphics/Kontoarten.drawio new file mode 100644 index 000000000..dcb4da552 --- /dev/null +++ b/docu/Concepts/BusinessRequirements/graphics/Kontoarten.drawio @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docu/Concepts/BusinessRequirements/image/Elopage-GDT-Transaktionen.png b/docu/Concepts/BusinessRequirements/image/Elopage-GDT-Transaktionen.png index 55fe58ea78ea2377900b81eda295f3ab309cf2d9..02563944982e8ac54ea5dcbb89b9056572dffb3e 100644 GIT binary patch delta 19896 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 delta 19452 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 diff --git a/docu/Concepts/BusinessRequirements/image/HierarchischesCommunityModell.png b/docu/Concepts/BusinessRequirements/image/HierarchischesCommunityModell.png new file mode 100644 index 0000000000000000000000000000000000000000..2a765a210b2d3152548690aca7b5ebb2e61e980f GIT binary patch literal 867498 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

    { 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

    @@ -75,11 +72,9 @@ import 'perfect-scrollbar/css/perfect-scrollbar.css' import loginAPI from '../../apis/loginAPI' import ContentFooter from './ContentFooter.vue' -// import DashboardContent from './Content.vue'; import { FadeTransition } from 'vue2-transitions' import communityAPI from '../../apis/communityAPI' import VueQrcode from 'vue-qrcode' -//import { gdt } from '../../../public/json-example/admin_transactionGdt_list.json' function hasElement(className) { return document.getElementsByClassName(className).length > 0 @@ -112,7 +107,7 @@ export default { transactionCount: 0, pending: true, transactionsGdt: [], - } + } }, methods: { initScrollbar() { @@ -147,60 +142,59 @@ export default { // what to do when loading balance fails? } }, - async updateGdt(){ - //this.transactionsGdt = gdt - // const result = await communityAPI.transactionsGdt( - // this.$store.state.sessionId - // ) - - this.transactionsGdt = [{"state":"success", "gdt": - [ - { - "id": 8821, - "amount": 1000, - "date": "2020-08-12T14:12:00+00:00", - "email": "foerderkreis-1@gradido.org", - "comment": null, - "coupon_code": "", - "gdt_entry_type_id": 4, - "factor": "20.0000", - "amount2": 0, - "factor2": "0.0500", - "gdt": 1000 - }, - { - "id": 8552, - "amount": 1000, - "date": "2020-06-17T14:12:00+00:00", - "email": "foerderkreis-1@gradido.org", - "comment": null, - "coupon_code": "", - "gdt_entry_type_id": 4, - "factor": "20.0000", - "amount2": 0, - "factor2": "0.0500", - "gdt": 1000 - }, - { - "id": 8317, - "amount": 1000, - "date": "2020-03-16T14:12:00+00:00", - "email": "foerderkreis-1@gradido.org", - "comment": null, - "coupon_code": "", - "gdt_entry_type_id": 4, - "factor": "20.0000", - "amount2": 0, - "factor2": "0.0500", - "gdt": 1000 - } - ], - "transactionGdtExecutingCount": 3000, - "count": 3 -}] + async updateGdt() { + // const result = await communityAPI.transactionsGdt( + // this.$store.state.sessionId + // ) - //console.log("DashboardLayout_gdd.vue") - //console.log(this.result) + this.transactionsGdt = [ + { + state: 'success', + gdt: [ + { + id: 8821, + amount: 1000, + date: '2020-08-12T14:12:00+00:00', + email: 'foerderkreis-1@gradido.org', + comment: null, + coupon_code: '', + gdt_entry_type_id: 4, + factor: '20.0000', + amount2: 0, + factor2: '0.0500', + gdt: 1000, + }, + { + id: 8552, + amount: 1000, + date: '2020-06-17T14:12:00+00:00', + email: 'foerderkreis-1@gradido.org', + comment: null, + coupon_code: '', + gdt_entry_type_id: 4, + factor: '20.0000', + amount2: 0, + factor2: '0.0500', + gdt: 1000, + }, + { + id: 8317, + amount: 1000, + date: '2020-03-16T14:12:00+00:00', + email: 'foerderkreis-1@gradido.org', + comment: null, + coupon_code: '', + gdt_entry_type_id: 4, + factor: '20.0000', + amount2: 0, + factor2: '0.0500', + gdt: 1000, + }, + ], + transactionGdtExecutingCount: 3000, + count: 3, + }, + ] }, updateBalance(ammount) { this.balance -= ammount @@ -209,7 +203,6 @@ export default { mounted() { this.initScrollbar() this.updateGdt() - console.log(this.transactionsGdt) }, } diff --git a/frontend/src/views/Pages/AccountOverview/GddTransactionGdtList.vue b/frontend/src/views/Pages/AccountOverview/GddTransactionGdtList.vue index 775d4b70e..f19db82d3 100644 --- a/frontend/src/views/Pages/AccountOverview/GddTransactionGdtList.vue +++ b/frontend/src/views/Pages/AccountOverview/GddTransactionGdtList.vue @@ -1,26 +1,36 @@ @@ -34,7 +44,7 @@ export default { methods: { updateGdt() { this.$emit('update-gdt') - }, + }, }, } diff --git a/frontend/src/views/Pages/UserProfileTransactionList.vue b/frontend/src/views/Pages/UserProfileTransactionList.vue index 75d296306..20e9bcb93 100644 --- a/frontend/src/views/Pages/UserProfileTransactionList.vue +++ b/frontend/src/views/Pages/UserProfileTransactionList.vue @@ -1,6 +1,6 @@ - diff --git a/frontend/src/views/Pages/AccountOverview/GdtTransactionList.vue b/frontend/src/views/Pages/AccountOverview/GdtTransactionList.vue new file mode 100644 index 000000000..1155fded5 --- /dev/null +++ b/frontend/src/views/Pages/AccountOverview/GdtTransactionList.vue @@ -0,0 +1,79 @@ + + + + diff --git a/frontend/src/views/Pages/UserProfileTransactionList.vue b/frontend/src/views/Pages/UserProfileTransactionList.vue index 20e9bcb93..d50000de0 100644 --- a/frontend/src/views/Pages/UserProfileTransactionList.vue +++ b/frontend/src/views/Pages/UserProfileTransactionList.vue @@ -1,36 +1,46 @@ - + From ac91c59a596928d8b8267a977086156a54dfaa67 Mon Sep 17 00:00:00 2001 From: Moriz Wahl Date: Fri, 6 Aug 2021 16:52:45 +0200 Subject: [PATCH 0763/1050] logout in graphql, test for logout --- frontend/src/graphql/queries.js | 5 + .../views/Layout/DashboardLayout_gdd.spec.js | 118 +++++++++--------- .../src/views/Layout/DashboardLayout_gdd.vue | 52 ++------ 3 files changed, 78 insertions(+), 97 deletions(-) diff --git a/frontend/src/graphql/queries.js b/frontend/src/graphql/queries.js index 6a51b3858..e02e7fcdf 100644 --- a/frontend/src/graphql/queries.js +++ b/frontend/src/graphql/queries.js @@ -15,3 +15,8 @@ export const login = gql` } } ` +export const logout = gql` + query($sessionId: Float!) { + logout(sessionId: $sessionId) + } +` diff --git a/frontend/src/views/Layout/DashboardLayout_gdd.spec.js b/frontend/src/views/Layout/DashboardLayout_gdd.spec.js index 9221ff59a..cfed75cbd 100644 --- a/frontend/src/views/Layout/DashboardLayout_gdd.spec.js +++ b/frontend/src/views/Layout/DashboardLayout_gdd.spec.js @@ -1,5 +1,4 @@ import { mount, RouterLinkStub } from '@vue/test-utils' -import Vuex from 'vuex' import flushPromises from 'flush-promises' import DashboardLayoutGdd from './DashboardLayout_gdd' @@ -13,6 +12,15 @@ const transitionStub = () => ({ }, }) +const storeDispatchMock = jest.fn() +const storeCommitMock = jest.fn() +const routerPushMock = jest.fn() +const logoutQueryMock = jest.fn().mockResolvedValue({ + data: { + logout: 'success', + }, +}) + describe('DashboardLayoutGdd', () => { let wrapper @@ -28,17 +36,19 @@ describe('DashboardLayoutGdd', () => { }, }, $router: { - push: jest.fn(), + push: routerPushMock, }, - } - - const state = { - user: { - name: 'Peter Lustig', - balance: 2546, - balance_gdt: 20, + $apollo: { + query: logoutQueryMock, + }, + $store: { + state: { + sessionId: 1, + email: 'user@example.org', + }, + dispatch: storeDispatchMock, + commit: storeCommitMock, }, - email: 'peter.lustig@example.org', } const stubs = { @@ -47,15 +57,8 @@ describe('DashboardLayoutGdd', () => { RouterView: transitionStub(), } - const store = new Vuex.Store({ - state, - mutations: { - language: jest.fn(), - }, - }) - const Wrapper = () => { - return mount(DashboardLayoutGdd, { localVue, mocks, store, stubs }) + return mount(DashboardLayoutGdd, { localVue, mocks, stubs }) } describe('mount', () => { @@ -82,7 +85,7 @@ describe('DashboardLayoutGdd', () => { navbar = wrapper.findAll('ul.navbar-nav').at(0) }) - it('has five items in the navbar', () => { + it('has three items in the navbar', () => { expect(navbar.findAll('ul > a')).toHaveLength(3) }) @@ -99,54 +102,55 @@ describe('DashboardLayoutGdd', () => { expect(navbar.findAll('ul > a').at(1).text()).toEqual('transactions') }) - // to do: get this working! - it.skip('has second item "transactions" linked to transactions in navbar', async () => { - navbar.findAll('ul > a').at(1).trigger('click') - await flushPromises() - await jest.runAllTimers() - await flushPromises() - expect(wrapper.findComponent(RouterLinkStub).props().to).toBe('/transactions') + it('has second item "transactions" linked to transactions in navbar', async () => { + expect(wrapper.findAll('a').at(3).attributes('href')).toBe('/transactions') }) - it('has tree items in the navbar', () => { + it('has three items in the navbar', () => { expect(navbar.findAll('ul > a')).toHaveLength(3) }) - it('has third item "My profile" in navbar', () => { - expect(navbar.findAll('ul > a').at(2).text()).toEqual('site.navbar.my-profil') + it('has third item "My profile" linked to profile in navbar', async () => { + expect(wrapper.findAll('a').at(5).attributes('href')).toBe('/profile') }) - it.skip('has third item "My profile" linked to profile in navbar', async () => { - navbar.findAll('ul > a').at(2).trigger('click') - await flushPromises() - await jest.runAllTimers() - await flushPromises() - expect(wrapper.findComponent(RouterLinkStub).props().to).toBe('/profile') + it('has a link to the members area', () => { + expect(wrapper.findAll('ul').at(2).text()).toBe('members_area') + expect(wrapper.findAll('ul').at(2).find('a').attributes('href')).toBe( + 'https://elopage.com/s/gradido/sign_in?locale=en', + ) }) - // it('has fourth item "Settigs" in navbar', () => { - // expect(navbar.findAll('ul > li').at(3).text()).toEqual('site.navbar.settings') - // }) - // - // it.skip('has fourth item "Settings" linked to profileedit in navbar', async () => { - // navbar.findAll('ul > li > a').at(3).trigger('click') - // await flushPromises() - // await jest.runAllTimers() - // await flushPromises() - // expect(wrapper.findComponent(RouterLinkStub).props().to).toBe('/profileedit') - // }) + it('has a locale switch', () => { + expect(wrapper.find('div.language-switch').exists()).toBeTruthy() + }) - // it('has fifth item "Activity" in navbar', () => { - // expect(navbar.findAll('ul > li').at(4).text()).toEqual('site.navbar.activity') - // }) - // - // it.skip('has fourth item "Activity" linked to activity in navbar', async () => { - // navbar.findAll('ul > li > a').at(4).trigger('click') - // await flushPromises() - // await jest.runAllTimers() - // await flushPromises() - // expect(wrapper.findComponent(RouterLinkStub).props().to).toBe('/activity') - // }) + it('has a logout button', () => { + expect(wrapper.findAll('ul').at(3).text()).toBe('logout') + }) + + describe('logout', () => { + beforeEach(async () => { + await wrapper.findComponent({ name: 'sidebar' }).vm.$emit('logout') + await flushPromises() + }) + + it('calls the API', async () => { + expect(logoutQueryMock).toBeCalledWith( + expect.objectContaining({ + variables: { sessionId: 1 }, + }), + ) + }) + + it('dispatches logout to store', () => { + expect(storeDispatchMock).toBeCalledWith('logout') + }) + + it('redirects to login page', () => { + expect(routerPushMock).toBeCalledWith('/login') + }) + }) }) }) }) diff --git a/frontend/src/views/Layout/DashboardLayout_gdd.vue b/frontend/src/views/Layout/DashboardLayout_gdd.vue index 1bde53e60..7a04e39ab 100755 --- a/frontend/src/views/Layout/DashboardLayout_gdd.vue +++ b/frontend/src/views/Layout/DashboardLayout_gdd.vue @@ -66,32 +66,13 @@
    - From 572abb9e3fd581ccb190f23835cb7954e23fa7b2 Mon Sep 17 00:00:00 2001 From: Moriz Wahl Date: Fri, 6 Aug 2021 18:28:12 +0200 Subject: [PATCH 0764/1050] transaction list query in graphql, include decayStartBlock in model, transactionId optional --- backend/src/graphql/models/Decay.ts | 4 ++ backend/src/graphql/models/Transaction.ts | 4 +- .../graphql/resolvers/TransactionResolver.ts | 1 + frontend/src/components/DecayInformation.vue | 25 ++++++----- frontend/src/graphql/queries.js | 31 +++++++++++++ .../src/views/Layout/DashboardLayout_gdd.vue | 44 +++++++++++-------- .../AccountOverview/GddTransactionList.vue | 4 +- 7 files changed, 78 insertions(+), 35 deletions(-) diff --git a/backend/src/graphql/models/Decay.ts b/backend/src/graphql/models/Decay.ts index c6ce85548..e0234f588 100644 --- a/backend/src/graphql/models/Decay.ts +++ b/backend/src/graphql/models/Decay.ts @@ -9,6 +9,7 @@ export class Decay { this.decayStart = json.decay_start this.decayEnd = json.decay_end this.decayDuration = json.decay_duration + this.decayStartBlock = json.decay_start_block } @Field(() => Number) @@ -22,4 +23,7 @@ export class Decay { @Field(() => String, { nullable: true }) decayDuration?: string + + @Field(() => Int, { nullable: true }) + decayStartBlock?: number } diff --git a/backend/src/graphql/models/Transaction.ts b/backend/src/graphql/models/Transaction.ts index fb17866c4..7e1102cce 100644 --- a/backend/src/graphql/models/Transaction.ts +++ b/backend/src/graphql/models/Transaction.ts @@ -43,8 +43,8 @@ export class Transaction { @Field(() => String) memo: string - @Field(() => Number) - transactionId: number + @Field(() => Number, { nullable: true }) + transactionId?: number @Field({ nullable: true }) name?: string diff --git a/backend/src/graphql/resolvers/TransactionResolver.ts b/backend/src/graphql/resolvers/TransactionResolver.ts index a2853f08a..a9e38bdb4 100644 --- a/backend/src/graphql/resolvers/TransactionResolver.ts +++ b/backend/src/graphql/resolvers/TransactionResolver.ts @@ -10,6 +10,7 @@ export class TransactionResolver { async transactionList( @Args() { sessionId, firstPage = 1, items = 25, order = 'DESC' }: TransactionListInput, ): Promise { + const result = await apiGet( `${CONFIG.COMMUNITY_API_URL}listTransactions/${firstPage}/${items}/${order}/${sessionId}`, ) diff --git a/frontend/src/components/DecayInformation.vue b/frontend/src/components/DecayInformation.vue index 81654be94..4a543e573 100644 --- a/frontend/src/components/DecayInformation.vue +++ b/frontend/src/components/DecayInformation.vue @@ -19,16 +19,17 @@ {{ $t('decay.last_transaction') }}
    -
    + {{ decay.decayStartBlock }} +
    {{ $t('decay.Starting_block_decay') }}
    {{ $t('decay.decay_introduced') }} : - {{ $d($moment.unix(decay.decay_start), 'long') }} + {{ $d($moment.unix(decay.decayStart), 'long') }}
    - {{ $d($moment.unix(decay.decay_start), 'long') }} + {{ $d($moment.unix(decay.decayStart), 'long') }} {{ $i18n.locale === 'de' ? 'Uhr' : '' }}
    @@ -40,7 +41,7 @@ {{ $t('decay.past_time') }}
    -
    {{ $t('decay.since_introduction') }}
    +
    {{ $t('decay.since_introduction') }}
    {{ duration.years }} {{ $t('decay.year') }}, {{ duration.months }} {{ $t('decay.months') }}, @@ -62,24 +63,24 @@ export default { props: { decay: { balance: '', - decay_duration: '', - decay_start: 0, - decay_end: 0, - decay_start_block: 0, + decayDuration: '', + decayStart: 0, + decayEnd: 0, + decayStartBlock: 0, }, decaytyp: { type: String, default: '' }, }, computed: { decayStartBlockTextShort() { - return this.decay.decay_start_block - ? ' - Startblock Decay am: ' + this.$d(this.$moment.unix(this.decay.decay_start_block)) + return this.decay.decayStartBlock + ? ' - Startblock Decay am: ' + this.$d(this.$moment.unix(this.decay.decayStartBlock)) : '' }, duration() { return this.$moment.duration( this.$moment - .unix(new Date(this.decay.decay_end)) - .diff(this.$moment.unix(new Date(this.decay.decay_start))), + .unix(new Date(this.decay.decayEnd)) + .diff(this.$moment.unix(new Date(this.decay.decayStart))), )._data }, }, diff --git a/frontend/src/graphql/queries.js b/frontend/src/graphql/queries.js index e02e7fcdf..5f7d52570 100644 --- a/frontend/src/graphql/queries.js +++ b/frontend/src/graphql/queries.js @@ -20,3 +20,34 @@ export const logout = gql` logout(sessionId: $sessionId) } ` + +export const transactionsQuery = gql` + query($sessionId: Float!, $firstPage: Int = 1, $items: Int = 25, $order: String = "DESC") { + transactionList(sessionId: $sessionId, firstPage: $firstPage, items: $items, order: $order) { + gdtSum + count + balance + decay + decayDate + transactions { + type + balance + decayStart + decayEnd + decayDuration + memo + transactionId + name + email + date + decay { + balance + decayStart + decayEnd + decayDuration + decayStartBlock + } + } + } + } +` diff --git a/frontend/src/views/Layout/DashboardLayout_gdd.vue b/frontend/src/views/Layout/DashboardLayout_gdd.vue index 7a04e39ab..8884cd47f 100755 --- a/frontend/src/views/Layout/DashboardLayout_gdd.vue +++ b/frontend/src/views/Layout/DashboardLayout_gdd.vue @@ -66,11 +66,9 @@
    - + From af6ab4d470fe8916135de19efa228d609b9d00ba Mon Sep 17 00:00:00 2001 From: Hannes Heine Date: Mon, 9 Aug 2021 10:19:03 +0200 Subject: [PATCH 0770/1050] GraphQL Query to create a new user. --- frontend/src/graphql/queries.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/frontend/src/graphql/queries.js b/frontend/src/graphql/queries.js index 2eaa7eb56..5ecb1ad09 100644 --- a/frontend/src/graphql/queries.js +++ b/frontend/src/graphql/queries.js @@ -94,3 +94,9 @@ export const transactionsQuery = gql` } } ` + +export const resgisterUserQuery = gql` + query($firstName: String!, $lastName: String!, $email: String!, $password: String!) { + create(email: $email, firstName: $firstName, lastName: $lastName, password: $password) + } +` From 06549f66cd07e4568a9f29465c53e1e7574fada1 Mon Sep 17 00:00:00 2001 From: Hannes Heine Date: Mon, 9 Aug 2021 10:22:23 +0200 Subject: [PATCH 0771/1050] Withdrew the loginAPI call and replaced it with the Apollo query. --- frontend/src/views/Pages/Register.vue | 47 +++++++++++++-------------- 1 file changed, 23 insertions(+), 24 deletions(-) diff --git a/frontend/src/views/Pages/Register.vue b/frontend/src/views/Pages/Register.vue index b0b2e4cd6..570bd83db 100755 --- a/frontend/src/views/Pages/Register.vue +++ b/frontend/src/views/Pages/Register.vue @@ -128,9 +128,9 @@
    diff --git a/frontend/src/views/Pages/AccountOverview/GddTransactionList.spec.js b/frontend/src/views/Pages/AccountOverview/GddTransactionList.spec.js index 1c71b7f6c..fe616b200 100644 --- a/frontend/src/views/Pages/AccountOverview/GddTransactionList.spec.js +++ b/frontend/src/views/Pages/AccountOverview/GddTransactionList.spec.js @@ -119,15 +119,15 @@ describe('GddTransactionList', () => { }) it('shows the message of the transaction', () => { - expect(transaction.findAll('div').at(5).text()).toContain('Alles Gute zum Geburtstag') + expect(transaction.findAll('div').at(6).text()).toContain('Alles Gute zum Geburtstag') }) it('shows the date of the transaction', () => { - expect(transaction.findAll('div').at(8).text()).toContain('Tue May 25 2021') + expect(transaction.findAll('div').at(9).text()).toContain('Tue May 25 2021') }) it('shows the decay calculation', () => { - expect(transaction.findAll('div').at(9).text()).toContain('-0.5') + expect(transaction.findAll('div').at(10).text()).toContain('-0.5') }) }) diff --git a/frontend/src/views/Pages/AccountOverview/GddTransactionList.vue b/frontend/src/views/Pages/AccountOverview/GddTransactionList.vue index 1e107fb91..3c8a20950 100644 --- a/frontend/src/views/Pages/AccountOverview/GddTransactionList.vue +++ b/frontend/src/views/Pages/AccountOverview/GddTransactionList.vue @@ -24,8 +24,10 @@ {{ $t('form.memo') }}
    -
    -
    +
    + {{ $t('form.date') }} +
    +
    diff --git a/frontend/src/views/Pages/AccountOverview/GdtTransactionList.vue b/frontend/src/views/Pages/AccountOverview/GdtTransactionList.vue index a8e358140..be5744ee5 100644 --- a/frontend/src/views/Pages/AccountOverview/GdtTransactionList.vue +++ b/frontend/src/views/Pages/AccountOverview/GdtTransactionList.vue @@ -6,42 +6,153 @@ id, amount, date, - email, + /*email,*/ comment, - coupon_code, + /*coupon_code,*/ gdt_entry_type_id, factor, - amount2, - factor2, + /*amount2,*/ + /*factor2,*/ gdt, } in this.transactionsGdt" :key="id" > -
    -
    Gradido Transform (GDT) erhalten {{ comment ? ': '+comment : '' }}
    +
    +
    + {{ $t('gdt.gdt-received') }} {{ comment ? ': [' + comment + ']' : '' }} +
    {{ $d($moment(date), 'long') }} {{ $i18n.locale === 'de' ? 'Uhr' : '' }}
    - + +
    + +
    + +
    +
    +
    + - + {{ $n(amount, 'decimal') }} +
    +
    +{{ $n(gdt, 'decimal') }}
    +
    -
    {{ amount }} GDT * {{factor}} = {{gdt}}
    -
    {{ amount }} € ⊢ {{ gdt}} GDT
    - - {{ id }} {{ amount }} {{ date }} {{ email }} {{ comment }} {{ coupon_code }} - {{ gdt_entry_type_id }} {{ factor }} {{ amount2 }} {{ factor2 }} {{ gdt }} - +
    + + {{ $t('form.memo') }} + +
    +
    + {{ $t('form.date') }} +
    +
    + {{ $t('gdt.factor') }} +
    +
    + +
    +
    +
    EURO
    +
    GDT
    +
    + +
    + + {{ comment }} + +
    + +
    + {{ $d($moment(date), 'long') }} {{ $i18n.locale === 'de' ? 'Uhr' : '' }} +
    + +
    + {{ factor }} +
    +
    + +
    + + i + +
    +
    + + + + +
    + {{ $t('gdt.conversion-gdt-euro') }} +
    +
    + {{ $t('gdt.calculation') }} +
    + + + +
    +
    +
    {{ $t('gdt.factor') }}
    +
    {{ $t('gdt.conversion') }}
    +
    +
    +
    {{ factor }}
    +
    {{ amount }} € ⊢ {{ gdt }} GDT
    +
    +
    +
    + + + +
    +
    {{ $t('gdt.formula') }}:
    +
    {{ amount }} GDT * {{ factor }} = {{ gdt }}
    +
    +
    +
    +
    +
    diff --git a/frontend/src/views/Pages/AccountOverview/GdtTransactionList.vue b/frontend/src/views/Pages/AccountOverview/GdtTransactionList.vue index 9d211d22d..9303bd837 100644 --- a/frontend/src/views/Pages/AccountOverview/GdtTransactionList.vue +++ b/frontend/src/views/Pages/AccountOverview/GdtTransactionList.vue @@ -17,13 +17,6 @@ } in this.transactionsGdt" :key="id" > -
    -
    - {{ $t('gdt.gdt-received') }} {{ comment ? ': [' + comment + ']' : '' }} -
    - {{ $d($moment(date), 'long') }} {{ $i18n.locale === 'de' ? 'Uhr' : '' }} -
    -
    @@ -124,16 +117,6 @@ - + From 392271011fda84630f805583431687805accea23 Mon Sep 17 00:00:00 2001 From: ogerly Date: Thu, 12 Aug 2021 09:44:53 +0200 Subject: [PATCH 0843/1050] change style from starting block decay --- frontend/src/components/DecayInformation.vue | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/frontend/src/components/DecayInformation.vue b/frontend/src/components/DecayInformation.vue index 8dd232994..ef0108d83 100644 --- a/frontend/src/components/DecayInformation.vue +++ b/frontend/src/components/DecayInformation.vue @@ -7,7 +7,7 @@
    -
    +
    {{ $t('decay.calculation_decay') }} @@ -16,7 +16,7 @@
    - {{ $t('decay.last_transaction') }} +
    {{ $t('decay.last_transaction') }}
    @@ -35,12 +35,12 @@
    -
    +
    {{ $t('decay.past_time') }}
    -
    {{ $t('decay.since_introduction') }}
    +
    {{ $t('decay.since_introduction') }}
    {{ duration.years }} {{ $t('decay.year') }}, From 151acea10853518ee53ca5c969e2c6f26ddf010f Mon Sep 17 00:00:00 2001 From: ogerly Date: Thu, 12 Aug 2021 11:38:57 +0200 Subject: [PATCH 0844/1050] gdt transaction header change --- frontend/src/components/DecayInformation.vue | 8 ++++---- frontend/src/locales/de.json | 4 ++-- .../AccountOverview/GdtTransactionList.vue | 20 +++++++++---------- 3 files changed, 15 insertions(+), 17 deletions(-) diff --git a/frontend/src/components/DecayInformation.vue b/frontend/src/components/DecayInformation.vue index ef0108d83..413e8f885 100644 --- a/frontend/src/components/DecayInformation.vue +++ b/frontend/src/components/DecayInformation.vue @@ -19,7 +19,7 @@
    {{ $t('decay.last_transaction') }}
    -
    +
    {{ $t('decay.Starting_block_decay') }}
    {{ $t('decay.decay_introduced') }} : @@ -35,12 +35,12 @@
    -
    +
    - {{ $t('decay.past_time') }} +
    {{ $t('decay.past_time') }}
    -
    {{ $t('decay.since_introduction') }}
    +
    {{ $t('decay.since_introduction') }}
    {{ duration.years }} {{ $t('decay.year') }}, diff --git a/frontend/src/locales/de.json b/frontend/src/locales/de.json index e497f86f3..d301792a9 100644 --- a/frontend/src/locales/de.json +++ b/frontend/src/locales/de.json @@ -178,8 +178,8 @@ "formula":"Berechungsformel", "no-transactions":"Du hast zur Zeit keine Transaktionen", "publisher":"Dein geworbenes Mitglied hat gespendet.", - "gdt-receive":"GDT erhalten", - "your-share":"Dein Anteil", + "gdt-receive":"Aktion", + "your-share":"Geworbenes Mitglied", "donation":"Spende" } } diff --git a/frontend/src/views/Pages/AccountOverview/GdtTransactionList.vue b/frontend/src/views/Pages/AccountOverview/GdtTransactionList.vue index a0efb39f9..d70807d10 100644 --- a/frontend/src/views/Pages/AccountOverview/GdtTransactionList.vue +++ b/frontend/src/views/Pages/AccountOverview/GdtTransactionList.vue @@ -34,42 +34,40 @@
    {{ $t('gdt.gdt-receive') }}
    -
    {{ $n(gdt, 'decimal') }}
    +
    Gutschrift
    -
    ---
    -
    GDT
    +
    {{ comment }}
    +
    {{ $n(gdt, 'decimal') }} GDT
    {{ $t('gdt.your-share') }}
    -
    {{ $n(amount, 'decimal') }}
    +
    Gutschrift
    5%
    -
    GDT
    +
    {{ $n(amount, 'decimal') }} GDT
    {{ $t('gdt.donation') }}
    -
    {{ $n(amount, 'decimal') }}
    -
    {{ $n(gdt, 'decimal') }}
    +
    Gutschrift
    -
    ---
    -
    EURO
    -
    GDT
    +
    {{ $n(amount, 'decimal') }} €
    +
    {{ $n(gdt, 'decimal') }} GDT
    - +
    {{ $t('form.memo') }}
    From c49a55ece032ba197fce9498081f800d5b8bb25f Mon Sep 17 00:00:00 2001 From: einhornimmond Date: Thu, 12 Aug 2021 12:09:57 +0200 Subject: [PATCH 0845/1050] change passwort reset link to use new frontend --- .../src/cpp/HTTPInterface/PageRequestMessagedHandler.cpp | 8 ++++++++ .../src/cpp/HTTPInterface/PageRequestMessagedHandler.h | 1 + login_server/src/cpsp/Login.cpsp | 2 +- 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/login_server/src/cpp/HTTPInterface/PageRequestMessagedHandler.cpp b/login_server/src/cpp/HTTPInterface/PageRequestMessagedHandler.cpp index 3403e06a9..a5d6740a0 100644 --- a/login_server/src/cpp/HTTPInterface/PageRequestMessagedHandler.cpp +++ b/login_server/src/cpp/HTTPInterface/PageRequestMessagedHandler.cpp @@ -83,4 +83,12 @@ std::string PageRequestMessagedHandler::getBaseUrl() return "http://" + mHost + mLoginServerPath; } return "https://" + mHost + mLoginServerPath; +} + +std::string PageRequestMessagedHandler::getHost() +{ + if (ServerConfig::g_ServerSetupType == ServerConfig::SERVER_TYPE_TEST) { + return "http://" + mHost; + } + return "https://" + mHost; } \ No newline at end of file diff --git a/login_server/src/cpp/HTTPInterface/PageRequestMessagedHandler.h b/login_server/src/cpp/HTTPInterface/PageRequestMessagedHandler.h index 587aad77f..9e30f1a7f 100644 --- a/login_server/src/cpp/HTTPInterface/PageRequestMessagedHandler.h +++ b/login_server/src/cpp/HTTPInterface/PageRequestMessagedHandler.h @@ -29,6 +29,7 @@ protected: unsigned long long getLastGetAsU64(const std::string& uri); std::string getBaseUrl(); + std::string getHost(); Profiler mTimeProfiler; std::string mHost; diff --git a/login_server/src/cpsp/Login.cpsp b/login_server/src/cpsp/Login.cpsp index 8a198a91e..6ddd8a066 100644 --- a/login_server/src/cpsp/Login.cpsp +++ b/login_server/src/cpsp/Login.cpsp @@ -299,7 +299,7 @@
    From e7967fe14611cbbcd1b2d853d3447b229a64a1d5 Mon Sep 17 00:00:00 2001 From: ogerly Date: Thu, 12 Aug 2021 12:20:49 +0200 Subject: [PATCH 0846/1050] change startblock infobox text --- frontend/src/components/DecayInformation.vue | 4 +-- frontend/src/locales/de.json | 2 +- .../AccountOverview/GdtTransactionList.vue | 26 +++++++++++++++++++ 3 files changed, 29 insertions(+), 3 deletions(-) diff --git a/frontend/src/components/DecayInformation.vue b/frontend/src/components/DecayInformation.vue index 413e8f885..8b076af73 100644 --- a/frontend/src/components/DecayInformation.vue +++ b/frontend/src/components/DecayInformation.vue @@ -1,7 +1,7 @@

    z zN}r(LvS)<*0_{uoP3(<)^R7rcI>T^nMo|#EDYLnb#oR}!X^|y8wW0SP)f_Z3>^8BS zQKY|cY=j83;3U>1Hy0w_NbS{MCO5An3%tkKKV;9!I2lTgT!7$JGsqVovFYt5+yv%0 zxxbHj2$_vT7A}ZOYEB>T=BJ=^ z4c&Z*IkUh3=Ee%7yN#t5bPHKEE%RroZOfj}$+TlD@!Ws?u_`>I`Q!*3#mdrx#L)7M z-qm!z0x5x*=8t6)@CvIan6>Lnz)LQ-rh(OLnKbm0}T>s0j3p)KTyI233 zQAPo9yHtbnADbH9l&?9RR~TmRc<>@kgoqa3UGA75vb_3h?%7is(HJvN<0T=4`!Upx zG+^JU=-ZQBtLRVweM81JddLBvP|p#U_n&{SLIdN5z2VyNb>RI!FaGh~6!igY(5WPm za;1M6k)klq0NW4^?%!q@Rs}RLM#vjL{U5vV=}QP-@4x4RLYnpmtVPsxQSAR%g->5P z(oO$Zi3tkzO8?{n{9`xTiUM}yGo@^#f18L@qQ=8)|FL$TzHpO?8r#FtjQ%%e*{qxR z{}|tYNG8MpLdOBvmN0+0=MTv$$oZ`? z?iXC@e^Z0AK?M6>1RKEu#y9s{7{&jl2H830Uv@X}xBv646g3FGa&;HJHkbX;DAs-< zzI82X__Ik<5&d^l*|a~B;#)Rox%V1UiE1QLBtcYra&MfJ#ip{_E)oYw93ATkKidql zpsw4yB|fgt`c?KUf3A7QZD=z|d;g}oaQujsgOvj+^^Nyjhfu~)=J^I$syNVYn555X zXt1~#+mr1EW0aG4+m_^=*|T^Zs zkKMk*&ViMlB+pDRoVBviTh0iu9br_A%xb)XR%<-RR_(<%h_;z;N-ReEpL19Qdh}e; zcie7xXWoWtt1h}8>Dr`Cow@&vL@AetNkrTQ9Krwi&)g0C#$=c>qM{i9w@R* zahdV$Uw2~5&4zp?McFKtk#8}RgJJa34B1t1{Xa2r0l6fjp7<%OoY$e%;jVwb|2)`& z5;_gz(G@Ckv%X(au#=>oJ~d1S^r<%;V)&yAX~c^1@pn|Qf?|_=*fX1N)6a|}j(_ug zu&6_T#?<)hLH+oK>E{K~iToMC3G$!UP)o_06;r`D=+JsmykL=4<@ELYIs=RFg?!5e zF(~7(KP0IQ-hJ`HuBO(VxlbM8e6J%q%YzgEqxQdZqp{=11>ap?RCw(@`!r5>J7i)1 z?V#l*NQa{Wx?cZ=T<~mK8SEZ?@UZ!T*L24drK!yGu+`lM34GT)l3{7Ht{=&s9VOk- zbN|uiFvh*LJt}X{Gu(sdZ1-Hkd%t179`oh&b-gSBDe9$f2_anQJuj+*o0qSz$qW`y*f z;r^;kKq=h9(d5WsMC9fK9-#?i1AO~M33zx}!$u)FWk!B}4~`CxhT z_BporJkEL6&9M*)-lq6rOw9AFikbdK`e*f9k{i*T#23B;V;%Y~I~F6mul5Dlj~wPp z^Izw|zm@PUCLzw8DSIT^X9Tflg_7DsA>Ma#2E=>so`1dO0WW|F`0*KECrA1OONbq~ zi+G()niuZ3sl6gf%e^|O_d(9O9v{IM#xc=@P|2~I|F}4qIcp+tb2e{EUv8=Bsn;?*r+^v~@GPOFct{rbe9w*horLU%yG* zkPoX~N@gDx2UZ+qHn)WzRjQ`DZSXlXaO??J@q#y+&a`tH0j?W--n$ymqjq<7}5-^>i`my8zW zMvR0D-*tKC#8R9QK~UsDNAO#htwVt3?h34_t0O-MLjCP}(%a3Y`THidL?9nw_yNd` zfrp$AJcReHHK@LzG#};3^lBpi9nyeH(Wqh4bk>Bv+9PtK|NQ_(%4?aijW^a4RaM+{ zmYxJ9LfLUU+R9=1`CW{*ufcJ#XmOmA1YP6|OQpy*5Demb+j|Bob9BEh@;LxjW33#m zUBUyb1~T$ijLA|lcIKo-%SW`ofrmmKMPzqM>PmNT{mp7$BZ2b*3OKZmYgOX?r}rJFA4-%dvg z>2xr!^;6%tF>v{DnNu1qm#rhi_$qnnUxCE2ruk%IW-e1hMtwy`YvyN6hGtfY$%E8` zL%L^90AJX79gl?>YVX)bEH7Oxps%cwHuU3vt7g(*VsvQSs;W=ax1_gj<;il}KssW& z)}Fqg3_?&&sKjA0$C}~>)k#xRE6s~0SMQpCS8x<+oC|LB*xUb4u#w07RWYP|;XS|> zp?}z7;+*GA9hbfvDNRi*95NEl4iI>CR=t^-!MmOWvIsh7K0^}WlVK+HJ6d>;5;;uU zre8R#Qm73_H6~-W?+j%14AuJ_xe9zwK3gWe+#>BPN#OzIrv~M|-2hAz*1314!>zyA zP06i~6jYY8Q+JwI4xQ6jL3cM(2;e9s$q%IFrHyB1I|a8U8P7(3al%ypOg`axV_vHE z(oenXU_$wRRUmR!Y{+UA01s!0{=dTG6%)9h%=N@re%B7EC3X;;h#Qk2hDN=xJ;Ge4 z214~H2U|(ZV7ASb5w)}3^+_PZAr8fRkTm?u(w&$oxyABD$P{KiW4AKg;6ZcJX{M}K zw+L^DTxG+Wd0D`+v~io=i0bX}deFnc@D5A5XVkZmT%-o3cE%TQg#3w6e(Ike(mIZD zdqWXWvqJvT_D`AunD&<|>aUgAu$&t+!%kVq?JKHUA0#VwAF?=EOd4G)dG+73N4}m z;NQXTlS(OpQ!r?2WF#C?dg}1%$RXn`*9Cj|s{dv_6E^JxCJNTZQ;?;3uJd6zlpSvX z#}fvNmW+%|T2IsAli$%!xV8PifWAazmK^7GAo@ak9rF}9ZAZm|vqIYn2C6Sa~ zd(O0@?baLw<1Ge*OHpw%icjL_yQF;3upd~jwUvPC{$e93)R|8};Ys6to9_!}SuzQ}?=|^%gg=lXFpk-p&=KlB~DdJNaj0hpB-ejqSsjR~itQso%f= zl1*=?Q~zi$GmjCeJ(1TA9DvR{Nd)-SqDl4sxGi|ofSIcAWOnSN0ku9=0{F=zQ=31U zxdk>bQ{=<(_-M7Ms2hxz8&;nb*?OKoKkC}5e`;`9L5_{C=z!SNiGSH$kC$91l_%5; zirl%F8jL>{jG(coRlvR#Y|CC8gxJ3v`+Yg#Va;^@MOkGK@H-4ZhVxNcE!TSKOw=u!0SsBCqAu^9cy@l|C{6;jpECr_UXrZ~o%S1+J+~0__wk;LRv3 z0~!1^IlMNEc*{vOEwDL}9d5apz}ET#K~%&zp!ItU5Se!kcF2-fPu3m>d69TQcuu=W zWWO7XVk1CV9`c+4aH)5qMX+ruG>~s-w3(t@Omv?1Tv^iGT<>h1V7Aw&)ZQVPVdX)Y z$tr%y3F8*Ee<}h#o%U;kyBZ)r47c`Ovdj!B8R_N$_7+a;S_rV4}cjd|kpDD#_Z@ zATJ2$boxu&%3OAjTj$bzY(Zi^BG(1QXv;)0X8n!KU{T>y?gkl~4^GN7S;EHIXlEKZ zmqQ@VqR|EO#E>w+1zU83n;SsRyd9*H3u)p5)M|a^X@;{Mvh$a=AM8My8(aa{U-*n& z@SdBq{vxlqmNaM5H*dFVn^cwLL;4Fz6KjmhKC{Zl~RFnwv3D9z;Xgx+4h3@+KaXbjanp9MNlRkKEiq}LM z!e+p1OKCo_8h@9Z$s2BFhAy~gA?_f6pf)$-|4B!vHE&KmSKo=3*F-|^NFDSO&(0h6=TWipsLZX1u(Bz!wFT*g}u1?PQ>wd?#uXh#XynQmWazP zr9K0PXHDh)YvA8r^p6?c^R$my=Ciz36SpSOFZ8q{pjM||$n_k|-_j07UT!_5CH4dk zpXV3mv|ey}+zm}i8^hKQzcB&k3+@|BGRKQ>10&JZ%+^W*r?_!)?`gVATKfgdtNf}{ zkGc>nqg&>L>G@s`U-^?9R*_*TW#VAY>#WgLfzig@=Prx_*zf13Q3x0a0-FjRYaV0O@q&P}!PB4#Ky-8nK_|8L3AgN|2)e@V!V7F5lAQ2j5aJSiDGIAs(B~JX}UF%pcLe{s- zU*mB}ZP>>@+<$(H=m)Nh|P3e#@J0AHf4YJSfn6!Il>>d}uC zguUCkh~jZNFA)S8`q{kf#TluEf@vJYkwzD?YcbY%eJw1zx5=1Ydxw?}$Wm;cM`W^% zY4-clg+ws@_s~sxMgJq4toX5_qdA=pK>=u=%Q+QxnbGFo5YF0Wcg$QL@h^h%Sn;s< ze3vLi_rkIR!f==T12&e`dBB_D>jL^Q0&s$pFVnM3SNRd)9@ahOcD z;Zr6TCO_;Zt#pey=;^J{Xwv(aJz>7^R##yb=c4Y@VSoVbOs5ARUnN(qTBRA8VC(MU zv9iuf*U(hOyJTM+LP)y#BJRe)GPCNn;wvg7T<_I^g`u- zXEVqJmPZdD#DL|Yl}p&rY$oyla=Lg)&>nN*K-pFPC8SaK4*B$(pSbr0RANa}pCfF= z7^<+_p`2vTx#;f)-cO0@!~u^2JuRK;iJqp#(hNZN7#dWZvbg1+OS6x8gj(30LjRhE z)v4P@=5$Bn^@iiFIIDaogui&hVf0-y&bzEi2nmo>%uW$c;0TN68n@TJl_)%gbKfpq zn-DB^-ED50)RK3?_JeptqT0?J9`pHPFsHw^_Pr@^G`moaKVb~2IexA8;qmGtp?P{; z!gYE!H0z+|O6OdmC@_teom<)he)~SwMx)#oLVLtpbq)YQ(lVT<99FjDUnX&j-gHjr zO$A>?1^ZsZf-uANYPl7iGBaH4wJYVXy^8#!M=4@r^8~tRmOXwbz)E^%GXGNXpuu6IKKm|wwq&c?XP3Ed}b%ulPUeN@yr<^|d7?0p+A z;a+P2xCA=H;M5!s*tlTX%|b>PY?;h&mwh&IS_^P=HJ?kkYX!prj<#!lLhkswzOrfF z1QoumNy~@=H+z2KKW}*HYd}7DHjQR^b0B$;DnB||-N;XpwOV2#tv{}@cA~35B;>!f zMhhW91^NY$2tCu47adTbOo}4QNR}4Nl$1U*{vM$Y@T~^i?4;=XyExt;!^DH!ygAlC zXrzFNmP&vM{zodT{^EyRU)u-(R8-akwMKyjJaXK)8_0c$Sq9G@!C}p?J~Rd)05Y%k zUjH+E|-XP&}Qd8_^N3%^>mB~fq;x_{=y;Hv*A&;N-sGs<4yts5P z6`bB*ZRp0~yCc=sHs$Jd%l|rg1a4s|$8WV6!yc@@8lNpO?z)ykCftVp%|8lg8Z3us z(~Z7Gur)&!M-Y;k8JwCb$<5~}o^0_$4uIsYIeBiq2fZpn@zGn15gnlJTcnn)Qd_;} zJ#aee^L@U5NuE&aXHMv-WNdFoG$Z#YzfSVU_2$^xc{8k-_AG8E-`Cxht*>3WmHfBtk1#(KhGtuikFu+-shQM4 zkW)0C&$!Ie`i*f8U7D6)pTS{R8bq!a`XJuF-Gs3j={8a4;5Em~ctL9FQ*3rS5*?{% z5qRKByJKH1rHc~MSPN(O2$oaZmDvC_e;m?{^Ty@6cyl8$I_$ z8bDZ7OFG8YoQnJ26)-^?=sPmFTgM2y;^2VaCmDT=MJ2X_?9R-I8(SKBev5P5G`G`6meA2MKcRljD*znXq^X1kF#UFPd{RJDZiB3Y_}oc!KVtYa~(K>hbQkw{jm9q*N)t?~F2 z1Ji{=AzsK=3OFh)qeA2gq`qh~YdBRY&pEkR5~E*K&#iEpm+!muu$H=O~R!HerA6ksvfXlA}wLppWxzLj_esH3Sz1D8x}gBf`3G1wc|iz9h? zK1fa1BY=L7sYh<^OlM{yGe&eQ{v!lmJH|$zd=^?)ad>z1y?Vd|{_zam+K=%*ixnVS zISQiGIdLBr_nj*Ha})XQOCgKX?$tBO4v&uN=|7 zAEUIiLhanVAizHFQ-a;bwEWJtwqh#V-5al@K%SyN8HSO1Gb}dp^`(j+d0)hcCX5f{ z&`Lo%M(p*)OlmCZNgyEjMxRi*h!1S-2`{?;ffy42%HE80&i)|nirfu zNop_^H`K*e^PtJNV-*T?4W@#t#+dAJd*``z^_;45OMN_U#5_)!M1q-E!VvL9AIsWM z%HvD`bLPhMQ$g(4@fs{925xe`OU4NZNwEjqYvB-m?l2cE3HeQ@=lUMlFib);zlXXF zw>_C6ZP}6G=`QblWl2O_zzC=M&%GcbrxR>zt9jA{iuBw8W`fp?oI{%@q1hL;r@5^U z`ZebUP~C(sKgHEmf4u(#3oi`|cN78y%JdV4x~o%QBdJmPZR-hue|2)V0l3h;4Rb%? z(lv^8s)ri_E|3?Z=%r4~FK$6>63){#d{Mx1W zMHXY4raO|A+KoCc#h*%aa%T1`|?Bj*8squ?Fs0E zsgs&-i3a`Xkx#A&hFm3up4K}cE^Q}tG9bQdn_&9LxFJ!lG+pH!!B=H-6=pL%O)Wpi zlhLO%qRtUH9XC{+)@*2+X7~LEk z)n~bQ8lefwP}ajmrrO<%p4LBTvsC%($oSgOE0@9KX#)h@1Mksvk3@gsn6X=}aS?nO zzNg~9;Z7=g1MYiUKUKN12ks4Z7o9y^PkkW`yi#|AKTCuOvuiybfElt4?{s}++yKgj z{l{t}WvD*rir3_)rG9fTW7_*~$;&R;F)fJXS*2#%qu)5rlB~Y+&Tk&a7e16*ktwSF~OSJc;Cwq)>w+HXu>I! zvv%Coav${j^ABSawOC_8%H(M=lq~jS$MjBos2L1Oy{XQ^(6J)BpS!bV+#b-ee!S`% zSki9%#yXM$sL?rPwScy0?5n#QUMl0OTT*Io*L(Tqmf6krPeGZpOXe+v{jMes5#(-c zeMUcItpJu$vlfNEqVIUQ`UB$X)uS(wW-j5_-?5pgBW=BcDxPMO za4GyjU>d5=NOpD|q~kvP6VZ!n%`{K8J5QFTAYM+9&@b}%gNGm+W!y_7;sG9V;xx&V zeufHLD|A6&QnT3JWG2v*b~V!03?RTc*}v0P6^B>;(wIn#OmzkCsP(;%+CIvQ!$HRy z!`%8@^kyo`z^seWt0*6PpdNxzI#4&*(m3&wlq;)a5!424b;cCeL1_Jh0T5KlHh+pe zltfK>t$`TMn@X7;>*%~u0G7SSGD55D5~CN|=OSW|9-TQyp8`5%nw;nq?x*)`pQ4kH)}x74f$AbaxuLY>pX&It?SwMu z2Qu`yy)KN=F?cLdAWyULo~t0=8Cn~pdKM|AGvoE1fzcl`uu_}?lQDg5t|{Q~f+Hzsf!auV#%0kW&mT@d z=(zR^Fy+=y>bJmIKGezNn1zipxtShu5rZ~z>-4$I2f7*Sb=HdINT{e0qNOrtY|$d7 zVz>M7*>gFiCM)-&2eEUH?ZK~;^`^U{Zn7%T zGmxW>JO%c58vJ&MCn|a({D~RC`GiZ*4i&yEo0S{IGkT=+_mpO@nFHrtJ!_dAS6YDE z7GvtwQwml1C}6W;z{nWTR|cwwYts4$Z)A7-Do%_38*b;Tg=j zbaOoNYlv7}#%3C$KbJ}p9?uTf4d76&#wNJN!mtPJC5I_8FWeq?vbUYo?wKe+&H zF}3)-+l;|;iQ}!GuI5zEXKACj#wyZ+;70#o|{$%=@!&=Yn zW&NkpP6_JxRPAFuwCtH-AzXmn^}dbS05!q#S*KzaV=L+i2N0~=(OoOsyCZ`_-Gtsj zPBm-l;m8=EO%L9Z4|dx#nIz%%3Bx62hD}WPN}`J(NF}o35(M!~1WmS`@g8>gnRYjE zSz7IXT{LLMNQzTUwc)qiVuTo&@`8L)dn<1ve*gKV=V7 z%A`M%2|sq^hcb~UH*U~p@3`bl)?ub|`U3;+7m4MsgM!N2!gD0NF{2eE;sXleYzNOH z8Q||C*ie?{tD$`g^@9>$(lnaSb%}$~_B;_CJ%!ftr!-hUEqOea%<}l3YH&PtkM;j* z7L)`@A6LKaXj6Y#o5ecyL#5szlB>`Mqs>Sr|BB@jlB;j#WhOvl=a)dNae2{P7tW5C2a%E&i|^`CBYux1sfN0IT0JaXA(xO6E;KBK6xqn*h4)Se zu2BQdQ;~fU<^=&EH(sIrq8Adibm-A6!w8{?FGZ@j#h0aNBsS z)`KHIrj*+9si?C^~i8jfu@h25noDi!V4Y#4c*cy|xIbRzCnGrN|0z;zwTQkl7@BDdNMO zGn}zv6pZfX(3u^NDLA*!gOh=r4sw3d|KR~DBGL~;1wpXvgjN(&_Hj10yJ*o`ud#vS zU;m3u#U2*<#7XX>a2e2!=czs(MnmsIapy_YX;;!{Zi%8OBTal@bQ1yKJUgf??B(RzK0IY+q>rE8~} zwt^e7@E))z0*WO`NWfn))=c6HN5AH#O9F-Ocvg?Vs5z93%M$_IwD(#?-+m$%^#T>Y zxfjprl(y}3pAF3gZsjD!4}|kXnn&wiC$^1~ThUSVoaf~+`CC#2Zi0oMw=1)mZ%X7q zx$R}K+Qa?OMP)K(;V!ocnIiPBw_|!Xd>>wU_dZP|%&?U-WpaSrRbS_$y;`zf=W9j4 zdIy}}b}qw9O|w^Td{O4T;T{kE-k4p|Wo;55?BM~ff*vxc^(0W3QJUoXL|MKvda{Ho z#dsLjjA;pu*?xy<)-@3DL(Vew*^mca+;d&ED7)v~gks%zp{Cf5RO-4l+;aG73c02E zNZ+!1i}o^S0;Iy72^5#j1&?YazRXOyFhVPgg(1RTp%Dv9a8R2*CwJkDJsVL#{JG9S%l)6C{$CJ?yH{gtq5VhtZF9&=6eXEM;g-KU^Mdbftc zN?L9xK2O~erC9b8R}E*FQo>Mplas1A2Y>#r=}M&Z)<*1{eMQ;gJ>HY!Ska?PJcK^6 zQa6zcKY!P(0Gy)R$vEK3e(%%(cZfZ1B8a%iuMsKOrC(CO{q-FNGVDNXruM~{TR3`=JfUnt@iu!}fuR*DloS8>PVBn}-}#FKrcY?Hw&z9e{!y*!kOzRaK+U3 zIeXLhg|PCWCoAEi6<>I!i+4Evk~ty6Pyb?HEqN-mMztgTJmfsTE=AX8TY5I>x89hc zw$q){UD;%meaP7yR>wS@0<_FxB(e6x4{M+in9vH&sO<`)lF0RxY*)d0f$~6NFSMLP z%^NthaK9rQfdK{zWJQ08>=iF zld=ky((>qaZc+djS)~eAjLr+iGu#J{F_oj z)@%j(l6B#?>np}&M5ki7mA}1MxDAe0b?V=+a1OOA;4QY@4#q!-QM=$y1b`-LDRDMx zmu>%l7bQ?A9J(Cf>w>oKh;6lM)+UrRegDOFNdFaLBa8nESei+-~{rHX?SpmP-K3xc9rAk4r zXjFg?hM~=AWENVl^k4qMro+O$)WBViBYl;P;A{o2WQ3aOcd`exc~;R>?FrTF``SP9ofTIo zO_ZAteqb=y^sNy4xw(Sii6)Md9FCLcc4<zoh-M{D*l z28TP(DEm1SDGe7)-%|(?P1Yq(k@tR?%>mt@P3H`vvC@tBjoMs^zVEj5OwxLN*UifY z-$q|;Z#*9FJ8p3D4%>8?AGUy=U|Y*d7e>e2a0hpf(Uv2Xg*vbIn(?4gMnEy>7w_a1 z?`f_q+NB1857wy-Vn`m)bo2XAYKkrN0-=7r6$lqcE6*!=O>FDpCRF zW>f>8PIkrB?pwaw(ZcNgTM4pJFwb*<<#I}z|DK~)WeqNry8{t~t3LxD&yiwk^APX} z+E7{vL+ok`SM=Vu#kzm}#np_c(KKHr*&7Q8QWR^zoNV?OZ|mZR!p~s_3i=z-QVDHP z2n&Ko<44R{1*ap=I>mIZsE!*G^n=}u@FnIPL^&C`J)Xs-35P?dp~to26ajZ>^P(d{ zD`nmmm?Hx6P1M8&?)89sYj%3n2Hag z+w&anHLTw_7?di5yUE5sd3*Z2WDv*1B9{C`O+G8j+6wI&yVFU*smUBSWBjHR(l=EB z%$RU>Db1}A!5_uE8be|7WuD}_wphydzo5<3PQr&Q#&FLlUmVG?v?;5x}d+y@f(jMnXpwJ+0KzQ&JG$eZ>hIlXd@ zHKs0;m^s||yy4H#7eWhKdg%PcuW)nW;rHU5rKjB4KP)ST23F~bwlFOO4u;hW_PyM`6^aOgf}p_lpj=lne6&2jlb^iz zoeyHl4`kf7ivdB(f}t9Mp%CG)MoE&+JL8o1s^Lyq;VcIW{_#HL0W8zdnrx##7f?0V zq(L(#$eaGRj3tAdr>C69+sV&UzOPsH?TC6Dsy(-FB^g`XQ-S1|6v-3%{5YXu6xd*l;O&D1E#7t3FdbhU8?Hx=);Kqdcn-7ag?!fd?ET>TdZYnBOxn8Lj*#LB?GgUl6A00!7VISFcyh)!z3__k$KeK}QXSh@X!wW_bHcZ?Xdj}>FvPK#*T zM55s1$Hlh{0tg(Spv<%|Rar__C)f@2djY4E##~m=qHAwlV>jwttUfo&fNC~8|5&RV z%lq-LvAMYbBeLM}LLh!>k9P7-F!Z|P5aEuUD|cgjbfzAj5Um9>;)9F~r-q=YEXp^e z(+;|>U!Qu7&4)XNl?K9s^}WzM36#_o&S=pjs(wQ8U)LL(EfHdbqt$6z%9C>hRZ4)v zs&;~KH$`8H?HlTR*JJjT0W=1u*RsjYh9^IowJAr5XF;<`vjuAr@+@z_T9DPqBC;u# zGqLIdZ;mO4@sP&5H5TKY_3|K=(J{t**U$AHm!n%5Z(=*h2IeF&@TKH~6sy;vTa>Np?-qhg9N*vth8f><~H5DK05SSAnu0f=c*6 zO^lNLi=*NXZwEPXD4~TwK>x7!9r}W1;Y6|QZzwsZ?`x;M77W5&Q2QQxHnW{^#ylKW zt6cd0)?Lt5h-2AcDr7D9(PB*em_K1-SStFYIQeLm?V_Q~Bz;`iTVd>e;{KGSKT=TW zoEm5}%Unbv;;GgZT&T_=t4Q4a%ZP;&3>85wE@CT+cp{FRn3>oi2+H!$jP4xeU_~KF zE{N$HeK|VLL5mX{t~@X`lBkQ*M^Paa952~~V03kZk%lh;R+jAfn8o`+RHiFdMdd^0 zv00D52!9j<_;_F|oHqPfEy^;dnu;DjkzQE-&RZw-(Q3B%1WcuD^zR>*q=Y#TIx&FM z`=VU)_#k5XcPl`y^M}}sJMjzc71Ll3T$6IdbHT0ibZUY@0W-#J+adql5^dfL}r&a;B7wFG4 ziRwy$|4wwAlYkOUM@>hsLn8Ctw;IN^_dq~a5?@|vgJkMV5R#+hi5Nc(m8#floc4?} z%gK-|a$LY?i)cQ48aTOu%UB+5h$60 z&`GPDoJ@;TN3j4>6UB%e8hDn}PGVDM zfbf$>t=;2xm6!Lj6`j2K!9L|p_rk>Xk)grq5DTi~J3(I%Am`P+$KSJQK`) z)jsOC*T38=96MiI1{fV3lJo|e5}FXw3_^&mF5!?v7*F+|UFqj0$Lh1l#(I*?2L!mz zWfOW@M!-|1NeXjCc0q{hOb2dUQTGBfGrQtfH?xb7ArbGYIdpAx=9tilut-ksU6XPx zR$X;CCW4H3DO%T8ki-JuDYF8Q4M@B`S!`rmn17<>L7_`7cvrSp-Z7uUlIz@w+SlD{ z^oAxrl@Do-@hhv8uv_*QKcPDP3njSRJG*7BhaT92&a}|Xj$kgW*y69=H5dV|v(gYR zFLe9n^E;-A&+9xP=WnhCU*~syJGiBTXy1;1=Gj~&y@u+Vnp?axywbccKD+qxll;SD z{r*~Ny%4X|THiFFZR}T5W|M)+C`yz(<4 z074yedleKYIXy5dUnaKn>&4opG9{ZgnwK!Vx^ixu9QlXua>gXTcf(lNgG~{#64E%N z;=WJVKAUL?;p!9$cXKtqS!a=BC$h~74F7cVSlzK;Z_cq*x7|K5B7x)Qb$ip%b^>lf zg(tQ5zO|NhLA~ia?zQIf89P=h*LF>;4q^E0m?*-&hlVcC)WY3P#n0gLBXBF{#S_ww z;Z$I+y5LU5@j~Iv)SZt{l?SRS_WJe4eqwgS(~xvF9<9n+RBeS{X49h)4M@^%g(<7A zng7`8^Nk|DhgOhCpQPiq;FtY`sxY)}Oc@SZJTkYPn~r_UNw0i~v&=*>Y#{l0PMXBa zNv$p?ZiFH$m99=^%tACI~foVp#DCJ*CQp2wb8~*Y#aH3^Fr|-pA2Y%#^WDDQK|->U-Z6E0oIE{ zwYk~TJ>e;^+r%9$s3ds5w1x5#Gv-`$O!BrC@eP~tJA9}3tohOS7-cd29Ta!+vt5bPNCZJOcXVX9Hu zH(VVjQ4pz`Z6u0&DS1tPaIOyT-sp1n7sRY_ev86waK?csjUecAII5|XdymMcx?_{ zn05am_naV@!r++J8}p95Ls4=%f~5(q?sw;HF+$Gf2aMtUVOMX~qd}kPHg{6ng^n?a z5wbKTW8wG@i^sBkG(r;;lKOzpQ7)I3_HvROSHP9LrK=FgtnY&j@d|U#b=YHmj)wk? zGz!P`>qywRjx;c}jN5s#pk!Yau94h4svimXm7rJzuWiz zU%Fpj^Qj$i#lCXgx=20VkU(3>OSuZy{`0Z<`GAN@)R)FUzttZ_*kg_0 z`sJ@Hcm68w$Ar>I9KB7He0g@=u#7);fAWbAb zh^cX7VtOHkP|F^d;8`@f1iM8*Eu--{%&9yPB6-2>QZ^1}lWRe;IQRQuE{6Uq7exYdK1aJdYc6Wdq9DzANu`k+R z{9CI4AaSeSUDZb9LPJjXGcGECF8`nGP~irmTDsXWhEL*k!hsVb{Y6DZ0{v1v2FuX* zzCsxHJ;1HeLf^JCpLt z)RMEiZw5%2&(biu#$R+9i3R4qxL3sbk@N*RR65M+xR)9oqVh_e6W1T_Kw@^x?5%QE z@9q^m$$~fLdu*@a(aZ*9R8#V)^%OQMyau?3oKv8N_!MHERLBV;8r;#-Q%G&6cV%#e zawKSfSW?cMo{@a6c^vAMT)VJ5bLX&>f4MXCFLyqA=^HM75H(k`^T+J8T&cA#tv5~X z3CS1tJogqS{0gY6;zWBBC5OMMr})Tg7}>HdYY=%HX!|0CMgF)3QH<6|j7KwsS$JKP zkW#;upO>&B^iAgO-eDNtuEdAXyl|=T*Y;DKg2=o^hkZ(1Ee^yKK3J0~ez5B~n40Jv zL}9U#G8QAE1tuD*KDf@YEB+VvFYkSGnv2QP%K@$F{F~e@hBX3X`?GV-YT8jK#o2rT z!Nmqmo@zyo5bT9*8>xtuE6qalrT1WuF-FU*=zp&z6rl$guoEy1YXzT4<|=lz;O%_2 z%6*QIu4PkqO*)54t&5wzcMd>lmDg&8*Xe;*KUFFY5W&ls^SI=A0}#l4LWfUI{g24z z*glw@M{mR{uuGi!bAFJ$_rq!P#~I|kkVN_oMZh~nsPfQ=Jblj`mexpdbwrWKgjFj} zBBg65e!U=)nog2XY#WJ_@}(VSYg7JDrqt^!$((#@sr+Wns%K4j|s164$DX$*>Ir$4!N-e_q`>k;)EiI>!zW_gnr^#95BHt?q{r_Mct= zV{PpZ&gRdAictC60{WY-wy727xaEN7grT5O2P6z=mtL@qunRHovDX{8+^koa5{J`~ zm|tbt1G=xhaYDS2DB;O*kM=`MbzTR{I5~fhi~x!y^CgyzbHS>_qBfPCPNF3yuPis4 zh+C-^Ia=|GvLxi>5Z2{!MB9;eQD2B5vIwEmiLl8y@g_*~{)F$8xUg}9Dnc@aX zG7?Cefk_CILuM+8I#*i9B=u1&k>FtC7xfT>Ij`Md#@13TNt=v`H^P;vq{fP+YOBW1 z9hiU;hm%t9TKLm^opt@(+`fg81?6Jpc6zqNiz%k+KKE_9Ti3G)zo4d_qbA<8t`^>J zF2vv(jv9_y<==!!wuwI4Y9_)4;s0R9V*Bb@J0%pSovD6K;jy@*T#=t6?Xi~vuamtu z#_G9zwtk+yS6Td!b3=zBD`>PY=$Mu$Y^3o?u2Om3r_Pil;-+1^0b4igdXq%29#bMa zK$Rau1|2To9lsfte0Fd`c4%4_0IB0oR~wzx!7qr7UeglL3s<1R`XTJikw{Ydpj_I8 zlFg%(n$UH9CX;A?WwK~0NGubwi7qiN6H0{4IILt;W^O!Cuz}(x8=oP7B$ATY_(z7y zb+J+=F9p4XjBO|&;>A6@mQnwk@(}*c_mRHX-guKLMxS|+OeYs1fcoY6f<3Qf>SWtk z+Y~QL3aCj9K-6rfzNpVBbULed#GsvxX83U4jyBy70pix;UJISA7wwNnM$7a)Qwom} zLDBzqV2MuoOJTI3jC{;RKQu(Xyqb+SfEh)`v*LONB+XADYi_P;z=7y&fikvZxW#S% zIw4ie4I|zkRYW94l0Cqimo21G7~1c!6{@BiGjJE_DOc_x@_rSiOYOy4co+;~B*8Xq z(Gv1U0meESr*t8xz(*(oKwZpeP@l#Owv3CvqbEyp4mlUztuXoe#(EovE^X6g`X;L ztN97skCPG8&Fcac)DAz>W9JZoY;3)AK#2#R8_mYF`)38b*^T|I+8ZIc5v(E;?h$`j z0mF@t?CgNI!(-k5bwfbNO{dRSH*|p803!mIdR=6ch-a^4)p=x8%EkJ^SuPSAdE=$3 zOuWZ$Q!^44(&)#7V{%P0)A4)KI*t(}dR<(fe^-$Fqju1l5O3 z&Wm4f;nRjP!mpwY`<0JnITt|Q-z`o@-3FRMfO6E~Nf&X;WxulwLZASCs zI@>Rnk}N-cw%D*QAbR|Szsc{k(X8tF=&-D-01STOzYSiIZ=#L0oc_@1S(2vn^9cCE z$96Wl;X@~oG~YX;PeW`!d)qrN!%y(g>j;D5MZ%rC`bzrSLZFSLbDr<0a0(E;Di8N( z^UAsXEzHBB$B87CBIo3pL#o-&zmTVqL@!ZXSW^^bg<1-tV1eQq>9WJxo#>k6IC_`H z?Ibw13i}2ZS=P1KF0NgqE|EXg5#tV(F@8`xfM|Ef4=ES%@@(NJ^iE2I5HAh< z_LEu8gk1kd4%#{hUMgaq5Q(fq;Q$n>e?;d6h~bEHPJ}4WKB9Gr5$_TSB13t;K!_#(j?ldpwk-D_gJ$&$6j-Q81$-()El=Q5*B zoa0x-L?38;+9KPUuAQrM$y}0VmTp{1C<$L&v?q{RSsfht?X_@1lfoYqh!MloF(uOw z6CN_Ve!Lq*6#YU(2z7|(i{fx+dBjH-Ts(M-GZ1osI1W6yE6r~l`m9n7BshQqJG1;+O~wUJoO>R? zf2?+85JYw@n<4q7E+Uz;I5Bh(eiA1MmnMx-5*_;|Cm{CEJ5noy;W1iuJe`Vjg}pSQ z3?cM1lC!jii#%eH1;p&^w-K(A5++_T;S)nO*7U48@Nf9kc6^gS%iymduMT}xJGSiwW{D=|kr|0sP z#1kudnB8P>&NaS7MwlY{z=NKEF2d!`ugcUZqu304^I*$}adBnwOC?Y##I(u}7I>~3 z*>G1kO~ll3OxNa#l;?@&h+13>+a_Hu>U4P@`6A%2cJwJhsEx;VVM`w$yMm577(dzH z|Gukmcz}V+m3NpdCOD=AHNde@%h7lcdD1Y5%tNgyLRxUPn=rI-XYCp;Jcnbc1AhoI ze&VjUc*(jLRu)sATh0(^Vb16MsLF*O^<}yasOreaHRj)b$rcHe+ zZZxzNyCkx1xky5hfn>1dcWyTRT12PG$fEA=Sx2sPm_)jPmpMH^v8$s;sDz)Kh|dtA z!DgAj1hgVB5NRgRd%ZWLGOkPxXO`_>11-?z@yeq#Dd}NGpDXfG44s!b1J|)E9u2ud zWj@(Dy!|NqZpP>?e<#EPEg62xNqe_3@nS5BW3g(y+Kim{pb^cN8*pBNKUt*R2i6$l zIBOahQ2Y4bWGG0HdoLayVFbfmjh9!1a1U1(938;WVS>J_$JbLL*?KeXY&*ti=i6hR zN3}5o|C;olUZwI-AInd7t@d`$LS?celOJ^2OBseoeMl*1jD9UXcFCUF-TKIc4@{Nx z=Z;c$jSY}lw0&7h)xNOUF(T9E*Fo9a>pt63M)&=M$2|}=k{KHDMyRYKeO#H}>;A>7 zzF1mbA?$4M3o`ZG8^Q7FM@MTtv2byDYZ6pN>=rokI(jVLK?Mg}2^rT%3|8C;V**1V zQJ_-97%uo$!**-Q=P=4&5^YrY3I$v=+QoxTB9_rrR7<&IGQ>vOMH}2`KX~UYiqOPo zRH*!o|JJ3THd9s3V7@{?90=D7q3C~eRncx>p;mVr&-cBo#?p~zc9%21 zpa`ko4i-2N{>88w$d=M-ko7EFT^Vt9v3^YZom$Rq6ov=XkQ%a7xdkiJg>OTOG@%f$ zD~vg$W~B2<{WSH$|G4=Ik)O{MsOn(r66nwON?# zB6%bB$E10Kf_p7hRWFC%n&mxXGZ{LHsVWo?WE1;X->t}+{Q|mL>Mp14|J|S`DE;VJ zd!PiLe$)u)k*QKoc}>(U+}bD@u^ZY4^U`IRD-j}g1H6EW1CVug&#^uT0V-5U_qEL7hg;+ zCEp9z{kzwP8+{{-oT9v;jq|A(E&@VHl6G!5%lbw)-su>oxS(FW!`=hdy8I4RPy4;g z^4^Y6csBgOuS&`r7u-*!WmwJ|TY6r<{YKJgkrM@Hm++Cabb{KpSQ`FL(H<2sEPdyE?r%?|YuJQwNL-8JvvF?#=10+QmG-$8v+9;Co`wmK|U*KJJPigEzAieSV#atpH z9LI~Kr@7o@;-l#!B;*S5VMzWvjIhsD7 zBxOVCI=(-UqI-VQ{u{%KMwwgFuL@&Ft}aTSw>0+O1n4?E)B#5^$1?Med&dS`FEEZv zXGv;?eXJKd=A^PEJKlA0o~b^lIY%G$H=0v@aacp_4lW~iq$>&+<6|Rlw5B5G`z2xQ zO0i>%)J2nx0gAtqwLy-|Thn8XCI>k(OwC=d&q~8Yo+QKTd?$`~@p3pyyE6i|FqPp$ z)$XfuU(Ah%T?$n_7S%4uZ^8LrAC-mm~ql>4m^kwBEs`?Ck2`c%4dxZI9?X| zIG&pqm{a1BA|m@9%;N0hP~96JcyNoImN0Pn95E&yQh!V`dj?}3K+oXcG+hgr`Js}? z!V>#+4&dD1UD)gQZ*6RhvP3aa%diA+>a4p4IXrw&<$0dIz<5n5(MwQ-51;gur6vLOo zQL5qz44#qjp`La6QF|t0(xRDP)){EoTXQnhZ*)JX-A8%$YRU0L`lt5}TjLdJ5Im*N z9Wt@wWr&2J#08%W|Hc6CB)C65!ZIz~)h|U$(?+%OJ=83@FC4^~g6$8G{jg2Xn{%9h z{mIn?T2x|gf1v#nyvd5JxDS*tM{Jt&u%65CnAJ^50JBDS>RigYF_+Hd`n7txK^B^G z85#L)dp@n$et*3^A+N=5(FGt}CwN0o`Nnz{Z$A6Tg3(ud& zI)v^79fY2Ean`uH>4wyxa9MBR@w={u#g7(qHf+CUj0}bDp>Dm__89iz+ztCd0`&25 zac6|mPt|M=RK$OzjdQBj=8uhR>lFPMi>+b4lLJ9KSQZF|Pq7OGHXhY@tef`Cxvn~h z*U%AiKKpu5pTfMDAZ3mWnpz^L+T-~e@e&N4IBSZnh^(GeAaEvcuDj~4ph0W|nVF2^ z#LAxTt|Nd=&Kve3f&R3z{@hK6rN@N!m_I9Tlvi(4gFae247w^FJ-0aC_67NY1P*$Kvrua!N>%(=39aBnG+4|8&KIp6Ar)<_4E zH3{AC9zrB&^Yhv#1M;Dj+fX;dtDA&yoNX=ml(~4itg8gi=E2V_^x4 z-EaN%R=y&mMO35*w7rY|MJdjSCsPLVR@vPCY>Ph+mb@Os9k@GS@UczpK=9=CO%UzD zcaPKU5Niwu>N||7!*+Q3CL7KEY#=}_DdYYFxQ0^eMrt^QEWk2OCC?DEIePvmsjoDBQeihi(YaHPZyV!vc}sQ6F`U(eJ^vOfwiM>at8Ur1-Qs`(*fwpO zp8I^r65)z-<+?^zT?t{gQjZpYfyBAYm#W(eqtT%+Sq<3pjrbLW)ROvA;m+4X3F5go z>mLPwNuo8r#ry4!vG-nfhM}h&UU%kMGJ2FAExZ_W3q5(5icZSho4F}Z^cOXn(OoPX zzsUAlk+v8beM=2hDKH7c$yVwfLsxeu zZwl~kgBcn#noqtki?YX~iS9*u3k(otOI2K^qZrs&#GUmTZ-){c%=w9IX!JW=mH0_J z`cnNUQdF}MVxBs8I50LT8IWM-^^4>30U&?OAx>v$&ng>-=&z6!`pE_BTi?(ALe4*RSPOe5hqz@lN04XfPawS#HIT zZksAf_1BpSH>eIuQlJ~LR}~V3G-9{ei@j3@S3H6Fj2>ouPM|^d*6@=I)E)P8vtPnT zhGMd4d!&IAwdFV)T}teeuOo+9>)0mQ(dt`Hz(dxoJI`{_dGBy<@vy$1+{uu_B!!7g(0|po8T6=+<$Y7px<;BQf>>o9<@}YvGwzTYuL)k~% zr(%rtdgAu-8)q07_TBCsm#`{(&L?gvSCF&>qbH-F=0=7s)egtI~PO+5W zLRX{FX%3mEF(i*Ou#?El^PaTvh8N>Y?7W<4L)Qa^Ep_hKGI=L`kPtX)-JUoh)lVc* z(K?Ox?(yW^R2bnnMAWRM@aLprfj(ZREg7H?Rp|n2>#Sm7LLs=*NX6x=MOE62bU|tW zu63_E|Bdy$A-ccYrs|s5V<(;+rjUC%3No9}rPt>8P6Qq@M-4C=%H7@N2{R(O7Ih*c z`VD&;%H;U4_$c5!cy|p2LYK&E^Tq++jq9*2GbM-cFX8Cr_e_yaKRGeE??~R-z#E&# zt_^cv(`FBebL>`$PF8Idsn86DkPuVT^z~kE_~**Y@!{-t=jLlPfP2N_-jKWfJ|T=3 zt<=uGxJQi^JD0IoT!Alia;r{v$TfJT6*+|eAde`aDB@}kY{H|Y6n)B;k~)Ra36@tU zA;VAIf~!S4(Xh`7&8hE8i?DxW?q(4Ju3~=X@Uj1iAio(j9lEhZDH%_u7M#kD!+?#N z-Gl;{lEJNc*+Nq8SY1fxY740tQ6K=T82NstaHFZG)N9ESblMfmvGH*m3U}nfBLEL&#*MbMB>}TK zq}W#lFkY4ceHG|p(+c`&uZk1u{q54|M%4VMp1YSC^H|izx7(as+|R3*x*|bf(4L18 z`;&W7R)Eh&H_5!ClWr!~!pRp{LgPck1i|i1F`gGgi*XieyEi znt%p6uVl}$66_E1&B`;!XkM#R#x^v=+ti~6O#H>7kpc1gyC6Shja<)mM?NnP$mL5{ zu*7hd5Q^!fPVH6A5kKj62(L1v%bIU-N)BL`T9XakU^WjSS`yDZ)|)ca zjx909&T{+%QHD&MhfVk7#Pf93b=r(il=(o*#DY|Uvp=eSX&zan=7#~+&kFa(_K}?5 zmP)5a?R5`*J@zcA+J4XsSsP(}pAukQ@9GLUi8JeqAK_CUv41VQ3JKoTYYhd>){+Fg zKVW)2hq+S59WXyPCz*3ZKOqLW2LwukUC8KNj`kU@^9zT-O`|5bU zbikToucTA-KFwdq?gt?`+Fq2l0#3L+Ue~1uWB*m9gY?Pj0?W34tcd)lX%|E%xZ|Sa zj#JEuU~rd1eDAD}sT_ETGF3TH-v<_{kx;Su%G7Z=ZhiBr-C*Eg9L>groJ?sgc7Xhp z_wvn0q0{Us;9T``MY9(mLx`SV8Un15ssCwvh}m1?k>m`VBRvf^a)a5IaE(*i-$WcZ zSf6wZFLq$q77CJC+kxGqZEhB}b$Y-z)fYeV{k)L8lIdZ3@;HN6Lc8z@fOnVKsvY?( z3eorP(5iY0X1E9=-ljuQ7QIZLPkoqOnp?@POpf;I|_5vtD)Sdq!_=N(csCm zKy1_o^@9jzDt_42_;KRe*RtQ?>wh^O)@lI_q2yAdsL$g=@=j9HG6DU--Cd;;xT15Y zAM`PF8Ktk70*~&XoK@+nQoEac(5&`t9Z%@h^%zHSijauwOuI+62;nA~cc#p1&Cn7K z&3>4D>Vx<_y0Ird{h56tn$@2qD^_8jDbXwQcWc?{cJEesBw?SgM78s|&R%m{1td`# zeKxDKy{|j_9cG&!5wh(jTL4np8>jGMU%qLmDbxTznh(>F7v0WYnoRFk_na5&~VrC_o-20 z9mjXw?TPwJ?QVCGPZne$2t|EV;;%f22Gg?xCm_od7j=hgN25Now>LtzSGBiu^`Gx7 zK>kt7Z74?UqDRyYG(^5oEwOO1r?qnSMOanryQ(kZ#j`DMe#z6@L8}lvwD~@dBbN~Y z3($JewJKeib^Nq~EkgH4pQ4Z!z;-QEkoq@fmY1dWEeTL!W>-%q8?J@K8VrS{$sez{L49|A=fo_cd(G{Bhd)8l zV$f=pA%=s`#N`$VCK;)eemK>e*y8$53{!8)KaXpx`&3tXz-K?6b?=FJ-2n|8DH}WrdYeCd^(f64Z@EfIt0kx_B=>@21nDMcyS%T=UtyS?KkwN-v899*{G>~!A6|WkxKmkjfUJxJ`A{m&u7$8%kn-=ep)j2KVEpoP@Y9eV!A& z1dD*w%BhiTy*aE$2D+a~U=X{QA+KZg;Nti$@Bdt7{o3C$^@pw2nal>Hh$z?!R*I1| z@jLb$f-ntaPj8s+!fW}jp4<-+dk5(qsd3DrZTnTL#AGJvY>vfi5Icw6v@JmN%yUul znShHcvXgie3ss5K%u6=aTG*Z%`P$9|>?-zYhRIuf$%W{w+M9uCVi-Pt{4;CoyD~$3 zG&e_OJlMOt^-dz~7VX;w_b$i_@pi@lRc1O%s&UFmlgaGY{a%A}rRee5@~9`hE}5Gq z*#~vz37Lay<5{*>!%EaI28m4zNu0C{(P`SpfI7ER_s69Wrc`gpiX2f4wUafvQ-YYd z^_dzYW%D{lJDlRp{hynK9Y>|5^?^BzBk1F4x!-OX1T=+*d1gqrqI~DLj=k3V8N>{9 zSJs9VlU~V$cLnurHn80*VwcriS)B1Xg8JB>9z*SVN@c0vpPLm63m5RbRqAn0c^n~H zwVQ8w7kNM7SV*hSzeUt+%Vl&VDxPQ+r`V-8oV6peH!UMbcY%R9?^wL9C+`0*MlVk5Jrn5LE*crU=QlT9D5pv_r;MW(i zdPsgJa`C829>XjmTutb5DCg=l`lV}SS51In^b(l@{b6Vavr8U#At4OHj~jb>-b=H# z#zsx$8+wU_kR9~l zgRMDBeaw}qLmaf%5F`qneR@^=o!q1?mEp{|ilel}mLs{24M@|csVR^!bv4$44sWh!+b$xrTn(b%t+R5Tw^x|AN5noVjR`q2vFE$#00={@xctp=}p zKQVlo!ROi=5&;7nLxra{lByh9sZof`S&?qGtHHUQD~O=}r1sB5=Q&gS;ZJ{FzB74T znw0OylAv^l<#ZQHH1yi}@>Klf$s@|0{dn5E>H^_g^swQnvU3}6dw<{UTDh2VCU!ua z?_;^uwAq>>XGjC^O<5H{eE@}&Z5n2q>RcAh>H65!k{{v-+(!QW=FD$}MM4wJ1Xrw_ zH!%d_whjgFhnu20IW*V%U95DCE;+my!y*??(TjD3rR^_yea-egGGrxJ=_LC)t5fV@ zu|6vysdqV|^<%V0Ye?gXUKD15Ek)yQ964W|9ayxjhf!CR)y**$E03!E2EaEGXXdM}#?^jH8JCITPd_B=eD-alj* z)VXN8>>b&-x9=baJPYWekKe)z7NSbK`$o@S#V<; zbK8_L2kBUNR579B*k5)om3W;%sC@~pMV$2vw5h<2?>`XnMJd+OFr(}5gl31=zFauT zTP%|i%q-ObY#Mh1#5XSk%{X-=*zQ`IM$UdbNU`7OQCPa1;d6RmuL@KIa&riDQPgpC z=+28a+w$5z84)T#^zBAUbpyNW+Y>Bp>*DxyJ1S+X?i#kM$AUdu?TPdbfY$e*`0{=4 zXoUO-+E!TBFZAFGcRq`I9EEDDz?W2=Zd_`xX8COPuX>#Oz1I#-VH1Cj;=mucvl?OH zJ@tF9Bh<^zL37)Z*pGFb#M5n%&Fh%+e%QVG*z3|Q;^)0%OGS@5|04vJ)^ zmGHV6u}TYcO8b+>&Q`>?kSYF}Ka}=@SCV@z1d9ECZijn#8;6M7PCt1YGe443`^~cT z=Bq+W(qImiOoMAU-l(vx_#>pt`a|k1cXit~94RYljo3Yzu;3dn_YX7bW3Xzxi!&y~ z`-2li;TW6<6t6hH4J*L#296sA=Rcsx06m}=bT~&rVDwT?d^T=u5k6!Qaw$=vFuhly zl4fZBX!K2_?>;dk?z%Ek3c(bzRh!HV-_PB!wq1^?Q8B;g{=Ku}e`SjLy@mrb)un|V z^%ov&*{UYo^6m8d30xK;Ff9=e-j&~#Ie^_XG_|}lW{N+I674(LJDS*^ZK|FX2i(6r zxF;Zx3E-Gw5!rtfCkQY^NEbuP7Q+}J4&6tWoQ6|<(~c3RMt~WaXJC=GIcG0zong~e zhY_w!T&L}C3N|DY_$Z6yNrNsmIshD*7Q^m$$O#P%7}Md;#Z;BdSM4GX5C@5PE!ACD z*&zEpZHH;he>)ZIOP=*hwFG_WNW3yd9QzoIpc4!;YZrylv;W3~hEgpd&v%F6=IX2JfQ^V zN#YvVXrf%h5U?Rw;C9TyTIkz*ivWAhkvPi%zKj799Xp3HKSr_;pYGPy4^Fu&{T>E% z?e5de>I?ND05hH(m}r|qeQ75JXdrc5E+Xvy)Yz63%zI_Tp8j~$d@Sa8nH95meXQ3k zC}PC+a_kda9CcQYlu8Wc!SLYwD8N*%Sa>zC(i=Gg_|qV~emf!c|v=W&^T zWSCvEnOuKtOb{`pp6ks9t^Fr!q*eD5d7XNPwS?n_y|v!yyXj-L!=Zg{^O(PP*vHUS zB*uQ%PK_#RKcu@}%3&Vlv-Nw7h3WO!L`rb8WrwXyeZ2OPb6#|?y}J>zYin;TZFK)! z?9=GpmoD-w>>S|wN;M|-dlV4t8jF~oT$W8Ugh*y4{!H#~9Avm3UM%;&D`Fe+V3L9E zkHXUY0oEm3$m-=kSN4C$4*2XMy&T+VQRjY0f%+Y^(o$x(jE;2>&Z(>91H9gn3bxYf zHUpdbch} zlQ3T@y~*|;;P5=Yjw{9(x)rW2=kXJ^0O^=x%;EjjDk?<%B`wDz4Gca~xTn+qsxlxe zcID?)>{T?@`IoW6urFFQaIg--M|3K&{pOo{&_LVPOpifbqxV_MNDC=5rf0c&h zbBHL%IgO66V)+e(aK?O_xyknDnthZ<2X3PGMAI{ z6b!u+@@dU9lBSagh7;v{)k;|O!K+@P$8*~SA2`N-UP4i1%;a>hCoGaZAmiR=M}EYi?ng+NwH_dz)|C9oaRz3K@|u)SbE<_Aw<-fTG^lzbRW z*+1UGD{ft0kHQ#fZ29Bsx#d0v!L~)2;SzSg$J&wG@~yJnWpJr}ILsmX4$?nDV&eHI zJUVhbGO2uMM8``1Lom(YSVE^u|Hjk5B8z{;DA)c!N+&G1U?Es@k=(BCkV_E<{ASGg~9%Y;L{3ab@QJ%g~G+C zs|PIqS=jLD#>b?kcQu`9uvz0k=R}oGMz0+l$l=2wQye za<}^{5d=Uk8I)fDXjw#sz5XF1U39bg6bDmQ4AUUqt{?1SDVBx2hROC4%%Xg$=rm5a zFPSqVb>r1L@c!H%oYYp4`4{)S9CJnZz&sqne~0C-XdpMM#9*lZHqX4|_c(i(cZqM^ z#4#~`-qEqBJFfemWv*OKyTbY3b^oe^ijxK;p`G{kxY2jg2_H~1mNZW#9C>nxA+Dvs zG^`^Xm(pVNU4}N*v$xtot-Sf(OHG{@A}-MS9@P0g!Ob?%5XHgW44uyk8>}A&+?~*} z98%AzoU~^Zl4RmmQ{laXnR`Php z+w|0`UAOHh zg46DDbeQj1rZuTdKnkho5=Ui)g)`#N`!b%@Jxx3R+-{!{{~0LZuUF7dihefg+c5-JtY46Rnz9h8x$=P)g_8U#Kawa78fqy#6sbZjSN zp*?YD;&R~8@psV#u&vB!o$pK$JX`DS^qCHtXgA2VTCXZdlxMR|u9313+%iU?ZK41E ztSn_Uf1=x>F^A}yqjfg)+~9QLOPV5f*7kX|PMinyp0RY%C&xiMCCxD1Brl0OAKHso<2B@#!gAQFRvHY)0d^-|D>rW3@hzO407*yT;* zpv9#7Thi#25^9m+1FjFV&3OkLsSc5q-y8fgVT}IEjSqOowi$Y_QdntyA;0COSgLLl zSDm*vs>Mp1rb^9+p;Ca4rl9NM(!L0GE%~CSn9A`| zSgAJ^2Rvl+Bq^m!<;B)>6E-L*wogAy{=0ak%Ud9qHA;W+sB6i`9~ZlC+sP*l9GvoB zO6OCOIUkG+_ALp>(PfU#CcY&03WLjvKh%H{e}?t9B=$;Xh%LK2IvlEF6D5^tE2hqF zaDje3pvO2B)*~lLYWE=ZOxUM5+F8D#I#*n$nhtJGtaGRp2Ipn<^77YLIO(-UgN?mN{q!eO?O0CYYmU`$Eh>!`^*E10RyNwq%#3OuCL{KD zmwE~xk_#8w#~PAnHOUq>%sx8sy@>Q`&^BT=HPvQD^2=rAWm(r?Vo|b8{`$GPiq$31 z92%5lsJiE$3;g>lnG^IGYg!{UrOb#5t&ReH(CR;)6^j5YJ4?jY*{ftQ7su$V9@(bO zAz0=5ahse+NoGMY*u$fx&f@1>4Z{M*0yvbLHM#E{&|>5ek_7BO2!o?){VI*hdyJG6 znB{RN4YHJ)y(tt|c^l^Wi3T^;!NX-h)5yTG@YNA{${BLbStYIw&b-c`$Z-;XQh#5R z6*KBBP#i2Qp9||<%{=?D%LFSK$04Mtilcp&gB@TrZ z-bhg@_6=GG;j1JXT+nDIb7%Ok>_iVpW^+V@6Z80s*XGg}YNmurMP#S+<@4o4 z5cjf?>iVi-a0@B?Ll4&opUEC6Q(eM;z6$WDoKoNc^_M4APX85sfgc7m0E0}5Hx~LI zcsKo-L1J?V$^AFB`Tv`Ta=eC%t+FA9>+VJ&L4r#T@wcH{<43u9==D=-=fRY?Zihv9 zUwh+q+Il1S)Cy9|f$!xwZMAvY^}2RT*1Xr>OEDsN($&nhB6Du1zMUetFzJ`}=xrQ8 z3R`|Iygb)lLIELfJCqMA7sd?shqdqcGi0(y!$dV@vQ2YAYGVv-6v#f}r=ZhSnA=`I z`0yr4GXGU63{0&9czO6#d{AtVfDDr_$0OkrTN@81*J9r{OJjDt&LwzkMgi>0B<25l z3m|W3N20URppT;GQ8}v&DAP9ZZmPq(zcjW>q?UF zI-#%Gcjo);tP91J%d_kxVNSi1u9W+?rIqE{TEi((?pk9%e-PYo^-B!zbk9j)GyNum zd~*2LhAadCvtZ+UX+8ECzhR%*yr-^GE!-~WrhL;dKX2fP2-KC)x}?(9<3#auOMu8& z14VgVQHHg_Ux*6^`=r`)kKL{V1;+%;Q( zA-RskVu&g=y#4L{Y{;=Dp-G%@-Z$M&5$)iAO)*^&XxuBg(e}tkZMmI}bv@gP>v1i) zag}i=?Bb;B$=)<<3hao@B%X6B>tH9~yzaq|Wb9TUM7TP1%Ikb_tBByU3gyFpeP7Ia zVZM7$5?PVmE4tAsAMUDEG2};Bc(Y1L$$wZFmd(t0_HQ}rS-yP*DagIjZGHb|=4EJr z5+P#7Xw;$l@%1h9&2U4OmR7?&ZyyD6F&lbuw!36n*#=e1CqmSN#T^VwGG2>?5I)K? zwtkOs_7z8r598msx4V|1PX|7zsV`;HuE^6|+%A1UlTNGG7{m4$e2fQZc@0z*_f2K) zFQ{_L>e=&-XkMW0H$f_!c0Fk~0taXU2kkMsm$XLbuhsP3G(Q-eis1@~OisQXb=ES| z)Y6nYyWkdHCXL6n>$&dD0JWVW_R`doHygMIRJ2DZy?B9xgMxy90Ouhij&t79#YSa@ z9N+@6$b4y(W@$|7za4ByT6q7I#=7x#7B#J#@zhLuiPN4Zp|f(i8FjIOu?$bra8I4= z!cztB+M&QFu_L>r|E+ILl==Z&g~r#4A)ZRBA)?oMlAIA`&u@W)4G<5Yc@gdrfEjLq z)ghm>I!d<|9qa^$b&@@UdSZlYC!2#6JxGYMUKL`((Kb+k9&A%UkRon~0ry_;TF+T^ z@ESiFICsY{I{PZJ;ku%+4@HO$l4xu$7^ACJcxKWds? zY*%;(hEW*5^l>&AJc~dPQle-2&%<$0-l74IXFyD7_{|OnnHe`zbfBX7=qpSspy>Qg z>kS<@E8HJHl6fP?z!cD{u!B0OL}K})U-JLy1wfgTFnsV7Oi?I_Z5NNt9KzquT=ns$ zIxZj(0`BW&)0NN8;#s*C$LZu=?I}}X|JPuU;G5vl-@5XXkqn+bq z$S^VnAC?q%0>Rh4{P% z{^Bo+QQo3+wO<|;b0E{~KwFQLbDRTgQ!hgm9un0BidzYjb`W5toM=S#0&Y|h@eWqk z(JEGBT0hkX80uqmrt{w?DIm^l6Y5-p5fSfbOC9R^BO_s1a1dh5SRUso?CL?pKw(x2Y;O+;)t@zDEH(DJ7EM7AkhXKEGx zU{%T9kV9g}U~M3GHdfb!yTXvGH;|qHoe16uJPuq)ZmG`rBlZ(>kiBqBfU4f{e%#Bh zap#WhAfj$#e!Xxc6`h50^fx{ z!r#(A0a^AX3F+~Y5{{WUdu(I4^S5AX2E6FEQ{UJEauZ^lbIKC))(vMlT`6{>dJ+^R zHDj9FJo*ct*2SmuA}MH9(H>1-@_aVwN4+zE6Fibq*BtpCllk(X>ZUEVJB|Ja(LZ0L zA=SY|70+$_hxVgEoHs~cv*Pv};i2YXjHU)8x4}yXN1i?)vs@=$m}+`a$?y;7*ReM^ zok~JYwB7O2{P|?mM7S50X_4mM7EE` zdB1dbhWUW`<)1R6`@QWThY?O+mr-O6Pc1df&!~K^uWnP?vNZDd4aTx|1z1hWd|5$T>n3D{-zcDL6H&FQ^TyJlDWH;T>o`}}IF zQWb8*6;_KSWi4&E9~+b7og+1^m|EHIDUm@PF@J}ON{jT$Ay&3u$h94?X4h0{k z2=nDLO!7Dz+@x>^{RzK~NI7If$X(Ys2349R7Qi1?%kcP+6;-$w00Drr8#k3T&OSJ` zT1JC*>o?0NXjglVYg}Q5+gti<$wyhFQPs|CyEctFnYEti^VPi95nQFJikbTrHDwpR z-*S0+q5;hS^b?K~m}(tV6uX%Ve-M?r4S#hYJUvn!tzeSBXFECtA*TN)IQxqm?xVa7 zm79A7J~*$E>x$B{)*~S(@ZJyF`V^5>ra{ka!e{eg_M2Yxd>+NOT|);3^7nx*T=|}k z=a0dkH}q(%em}sVKN(YRO5eY4=j8o~M^pUuVn+Kao8j}{JOdXHfy+-GSD`#CcGcl@ z$H#j7QFZt%Nz34#WySSShCy}7c~7(9PFGA;^K#1Zky5k)o4RfLaIV?vE~1HuLpS2C z?M`DjtsW)vYoC^=AM%QOw{mK;A@0#l$LeOI*yDQQ_}%KNXjJV^me`&^>t$hr&gsgL zMpSKGzx`vc1QlU+`*+T~4eTW+;sqh_#sXiv$%GGU4f*`ecVbs6k&{|oK4s^0%iK4O z7K<8akA-6$$4hRn)7$K>OO#+1=SE!iAdEBLG)P4A$4)Zddi`Hq{bf*{O|S(D6Wrb1 z-6goYdvFa70fM_b1b25!fZ*#kl}+43L%X)RTZnx;((m)M`YgN{499@iXuUcwox97< z!DRMRNov~j(W+Y@+}xU4zo}t$y7y+d0Ih|gTr=R%p?_8AMo~em15103c-gjzOJqD3 z57&GDKC9AYi~o2PsI(Y!xh>j!FC1I(3w*MO-cam!WqzZr%wE#tE8%)n6%YSxW)+Xi zulS9zFkUk9&(A1$xNjZia9HXskLa0EvKGn{dZar+TW{N)wSui(x{YAl zNI+3SV15EO)!I2_7(nj12+`gL~HldgF{M@Go(NbFWG zBA)RpPMcBPU$Fu=bJzwf9-UwR0Au4Of6EnfRKF{gOn2V{r}LeSOE4m?zmZ;S&EeSp zHl1z2x@U)5cE3Z{CHdM5ANN+>x9asSY%&0tf%sCl_Lz;At^Rjq+2R`_D=>=x3~J5t zEi}?3u3~QW2jz78EowdXYwT_1e$Vh*CrfhAy>w8Xnt%_-`~kH;mh@j@@i{ueXmfo{ zT{7AjZdEA{Buiz2gus^mrgeiJ+rRArA_BkS`w&E=)G+{J_ufi*9AaD z3YN5;H6|36>0_b{1QZFmBVU8!%U4!sq;GPqxmj!$)R~K@ao3 z%S`!Hcj0_A%H|sSMpq!}R3ts4N8MdZ@qWR$Plx-QjY&!%vU8PDYdH8Oh?JS@I7y$* z6FwPPe`Y{2jW+u^xX%k(5L0`QmVOp!YluQ_M5pbUk&d?fkI)ke*h1M+>mY z!WVnJ-knc;;^AB%=mm73*VNR5A}hBnQaJnzLJj^6*zdZ-9$zsWth{sMF^6lR)^4 zJ!HtTU6Wk#5_Y?l_Q~X_`T~nxi=5@?l9D91?>EPz z`_dWRmrX>wZn`5O8~9#rB)ih2{L9&i7Goov~DfIZg=J;51A9;821N1t#RcGx#|-)X4HkKIUrXBBce@|-HAq<6qq^c}!-l8Qn5^xvas5+(|MgWAPw%$$18{hQsHbISF#f~*_+#r30L&ugP-P$t0L;Xm`jd4p3qI-5T?&yvmK~c|t;&%J`nk;8 zm`smuHohKb^ycrb6Og-){>@IlSivv*T^?t0w#+QJ_RKebu6EbjhW@chQWH+yFDK(? zKSO(&VF(mOBA81cRNwNqtNv2Qk%IQ_A@NLX{SS>A{H**BC*cm~?~#E7cJ#SzJHdji zzIGj}YUk59pt5CIK=Z{`shM*h-)GWWQmZu z-Oy{kXn@DX?joCmzTi^Yq@=Y%Rz9mU=agK#j~|EKH#k;baFwKjJF3vb7{yy!xA6OG z-$jPL{MjEKOK3+NkmXn=j$-gE`JegTjJ{W@P9bAwm#F}K>u7T6`nWQi3NU+1B!ZR! zpRK5;zod`1dl|n9JpT>EKd(1ckJxXtggbMB=1f!v#zeP_mA_v;neQ;%>{OWF~hLffX}`07wd#-{06(v)Dy0_Nwdo1=l}u3EGBqXw=V^PZf}-MhYL&4w=0Vwfw%@1`2lg;YDe;XY=Wc+*_~p{+%Td+sNBvr)WMPY zn-r)-4Z$>mT5^wgL=d=ovyyPkA)vb})o0}v@l+U2e0jVK@I=VbGvz-9V8FOdSbwN^ z6s!~E)m0!8Z6vwd5icjpcr3<@)o)%{Y*cNeHPK~cY^>2sWs-qj9{xcl@@l?&M%MGV zk5ThyImycfpQ&ME)Aca&l{2F0RY@ZX$;r&JvC&@7*@k&V zeWI5G!D#}7_hcGp8m+h|ZCvTC*0a*UZh!_;OpjLihWq+aP=(+|?7+ z+l=7nNjdiSSJ~LaMrQE6RhSIjFuzg6deey!d5+rot;bQ|Hdn2Q4o6=nv@t^-*^0WrlEV^XgYikf68@$RRTY*=j52t$eDSF54mKYQ4=Kz5A)^ap z!%r}S|5|j=t1<3V?;A{i?FBA{lOs$mSo~_K(oD8ml)~uFBZdsgR7I_bzQi0_Ck-ew zT;=ZX)fIUrLMVyEWigQdeqlhbd&u-1;X{rI)(`{BKJ#(AAmJ}ze&bfLi8}uvmNrdy zPtU?`*}~-u#zo-G9np-$CoXn)H5EjG?61c1|3(36>4Fi z5BW`uc#zb?^Uo(Y#^%X+ZWt(C0xawE>a@P~%?2QV|BuRl|0hL(NT97Z;1LgVc}M!( zeAN|K-02D(+Mjk3W>zOyi~+0<@k68o0j<4>fT0q)1E7-^mn(pFDJ52soLvvR00qn% z6}_tHuD*|xLvu==Q?CzHy#gn_bzQ?ZTka@a7#OqG-~&;ZiIF)wlq+~=qTsckK}Yh8 z^OwZOzlWrQ6iPc1f(N=f9zq{qDgi zklM0h^RnV;tmp^$g?9s5uwwAR<2op{w zQFSCkTc6l(SZjZwqYnu&EvsPvXD8?&7^UP#0Gmp=-rZA;u!Pbs<@o1ooIfy-?NVaP zPOP&m*&Wuz9Pe*VdgV9>JG07?M9j+ODxXo*Nx19DxV<5$o6)$v@q-YY^r&7fn*lI( z+XxE-dv(F*HwXT6_#Kcu!jL>TA<2Z|0t6DY{19T03^`DQy3iUe5Y%nxrn6q(^KihT z+BD)UffLx05FZiVU1WYg(t=FT9lZOWDfK5mU-$kQI;)%f4zNU&q<75ghlhX3>kkb) ztewU;pHfMAnVhD+^DqcvHZsGw(LT#{pX07aOD=4LKV84M&ACHeUh z$4j1k=8%*cJtpaUgr_g~46 zSU?n@dBGXr)qXcM`ptVUeWD=_HV~DIR;}{UtY`J)p{}D$9Gb1?WE_H(w$YflW#v3+ zEZ?9cYqNMEw7>%gt$&lU-Ww7<46fzI4k@;NUZRwPd2+G|V%7X;mF@7Tlu_;7 zW(A`|hL0IbQ+b9@cxE`b80qENrDypO4`un9D3ajI5b57f_vVPXBb*ak2VUEM_D}w715cZiiVqBm}~K}Na`K@ zq9ocpv3KP3LEZrw$%O$Wsym4*dohRBg#1y)=2KueTH)@LC=LgDmviV;p7A{LVPf+| zZ{h4ObQ^MaN#4ac0+Ya#mZ@@6M0#oFZBbdR>rThEI!Pu!?0qCd=mk|BXc6V~BRugR zSs!WHp0cyw(QnP@ZFCX-Q~tRFjM)=y%}|RD5rYa(EBWad&0gmMu~x_O!kT3k;TTG*Un(ExZIK?io21QQ-GhR%GR{h z6G@`GE(kg!ztK!U9?T z{lawYdY9NdYv#fO=?HjwGh z)<*8ekxb*24*N^Mj}G9i+EPzFwM)F9kf_TSlJOrR>&*m%M$?jZ0a&GnyhrDHPrr1* z*kzM}`QN~Xzcp7G-fwQn>MfGbrpGBEEGoE)&zs1>)~0WIgyudLP*Dd5 z%s12;daV#m1gx3ptGLW^GAZDXR!Ej8Yw$5ruD^G+6*7H8{Ghc)S znpH%A?jpZ1Zr&3yYzB5li|L^fu~bj7K@J4m#y()@ABMfD?0laOu{WBwJ}O4CmfBRp7BL4W*LM2dM8gZ#$w%T+FEZux9iT;Ru!Wtq*IvWN^+}6wBNZE;^GQ+ ze-}aVV?Y5MlK=KMNLA9d6J%-A_Z-sc8+i|tQKN`w!f|gp%k5?)gdgxrg- z7~>aQn9mI=di|~f5L88I-Hzsk<5xsXmYrHgaAf#9fd=^9eEv*` z@tGCLU$}S6j#wf+Z+(>v--fGXsV0JDgZgD>INudgmssidIncieLP1{7e7f@x`NZAz zNn?))k(BA^S~s!0$zA-~lr)U)LTKqBu9aJDVL5HoS{|+>8R@Us%@b zN6RfeE_idS4?C3l(QmB_8szxP`jTeEfOg7 zgP=&L{!nmIQ+^tHW+bm2rI=ZJqQ)HM8#zaVy38KM8M`$CFE3PA;eXB%wzW@j?V1hD zIY*xI_c~l#819P4D?nwfeH4tBhX^k$m)C-dXBW#(MV~a$hh78U4F(29Tjfpn4~Up$`FyN`Y7acvG*ct^2u(fQoj@Mm!5rmDTPrK7|`*2 zzv?@bT|8&V21)|<-kU;Lj&iLnv9O+|Dx7e^j85ddVsF&r!c$;X2$VH1GXeJ;ROc@* z@t__u#>jNAaC)zoc(eQ&AFel|<&Tq?_r*Zh*D<+v@vI(ai0CB8)U+pcJp+U+25tIJ zv(MsO7?~&RcUtgSTKM3edJcR)uTCLXFQ05m3c~&v0nQ4Le>zM$zD}U&l zu7qH%Ujk=uPaWc5A1#MR$Wifes%9uzz^AI~xq)UfP9_M58Y3uTU94_#I{D%Nh9l1r zq}^cfCwB;Puncvb(f4ndB=?OxB_Cj4b#6!vYTc$l{f@ibn(4Wlg#R)<$(4>xTQ);M z#o>n@Pyk&p4L1yw%#w2Tk5o!ve($22{|aW<^-ym&N`OCjpFpCH(t z7|X7OA3-BR-r^0$^JiIpqHL%-QvZ6LP8#xOcpS6rZ~Aj&97r1u~syP^j6wZl7~4 zbx_p}`CYNbrqb>9J^xrd>ULmlNg6!wLaITk&BlF-5m&b0L?9Q2=v}guZlysmeeVbr zqa8S4k-L{vMETnGzz!Kepk=wAi*XChtsHK4%zQcB-dIaSj0okZWd3^>Iqnb%b>&6_k^du4pd!9aSBs0xDd?qCQ4@!iFRRdC0o=cx`8 z^voRm*FNbs%^sS+^@v49Q-8Vc_tv};65aXIb-Pal;;qC)YmXG*>fPahzV{K)KEtO4 z@8Z>ZL5sJr_N~j|=ST;!VtA#Ut;McCJzASMJ=NaL_xN!+L2?2HCdpVUh!cuqJM3)C z(0utm?QZA}D@vc^?-rc$_^<~<`D#B}M-PCMCGs;`FsUOpx;{|)ct*(b9tq%nKDV5h z(eN5cj#^r3oOi4O-d_aQ(I7;K+U{+LbV* zG*SOxOw?=L_l*G@eFVzD6Y4{)N4x;~Yycb9v>Dy&_ygI8dIRmq3&>*2(WSOv0p<>0 zgKd4~ucukBb+(eqavfF5J#*TAY9^VW65wE3E=oFBv9{RjDzcI8;BaQoSr!!4{&O=O z&CvK3S#pVerje`xS6ulUk45VmWs}gh!@vShpIqpvtxAKtN2XdASx0tQZF%8OTa}I~ zVyVLKFsXn5Xnoeck$%zda3mL^eeS#GjUoM}ltD`-@g40Mh2ASf-flTWB>xhlf#lm% ziES-LutM5F`9bB>ZMFWTbyy;;u)-v}&?0#jY_O{cD{*Go?AyV09xMWjy(Erk%a zQpBuxAb?IVF!%S?s0h>Ai;K)eBy4bmpdyyb+hQM&*o%{yB0xwPJr0h4A)@Q;I zR;N*mZ=%aAv7V+p6wJISU&pnqYBWIyXC_I20TcLa z{UFuA6*2!oEq#hh5^1pyzfh$cstFWKvsSs^%tgPofE3aQXiG8uLl~pFl_tz!O;Y?K z5+0FWHt$kRmk^l)8{vyaPI4lysmZbwQb2x?t8^AL4kf&a#zGQ2EY~LPRV@X4udeP} z(8fRi%dV!rH5~0L#0@VkPoAREzxQ37@=LlTZkNX>bh2R3Ge6k5dVGRxzC}lSC@fZj z#G2Nf^(lu*6T71}wK4qb_?zC_Cv4n$KU-T4g-ojJfu=Hhc#RnYQQo7U-O_>+(M@yU z9OX*-+gi-L%}Rwp9^z4e$Mcfum1Cl`$)tS=n8m_9G<`r^SYXy}llxe&-$5g$hXYL} zSHaDQx1Mth3PvkZ0QqBoYE2)*OWsW=onGH}bH{9E4OX)ykC3NWX6wCM)drr5_Q~@n zhOuMyCKf+`VA?YC=*WGMQJ}bg8Bu?X!bk&>loj(TG!KfJBvhB>4CUWM`G`VB`OM@D zEbo@26id@tcbx3%8|(T6@GNNbGu<>K_CHj z@!*;>t6xJ*OpJ>hYxy_pXn%@%eiVav9Y`%;#WS$S zv=@o+UHLQBK{?{Qnm9smHatZNaY(jG$e2j!UTCgcMH+HKVk7uLj5@Mga0ab+EsT^* zOaLP|IgTPF{yH%0l{!gIA36(tp@}sVlT6(EZ<>v*W7zm!@V?8n4Zm+s5v}+?J~wS~ zTAbi))LWDaC8sIwv-~kDIVlN;HZ&;@3W5_jp3L-(eLV|ZY+*I^*hOvLq6W(}cNg1e z!-#yDqja*MiFPRJHhOS3AFzBs@k9-d>fqnaty=^ROk^bDa>tJ^AX(eOc0g3AC?3!Af&a&3r$lgYNZH3lW7__il{_KOpde~JKuVQ%>t zG-`UWPiL%=IpwpiHlok*BoYF7V$8LL{f9J;4)Ystk zta4QJ#+Pl2V3l|fSokLjs>-omX+osW+slongCr!3{<~5a7YKzGi_xLIGxFNdd`1LJ+G!}I#@*OdejN=?RBUrB73I8Ix@0wLUFGS4A)KgFc_6d#ftN# zD&TJ)Vv0jqR6VDcY{agM_pG+dD+dAW>cMqyA}bbusMiA)6`<#sJBRsZ`vpQq z9N%`5DnMkhw)Ndq+>4TJm_PZ;~sgYtwn&g1I^W;`ivi|Re`Me51}ddOiw6YEGI>FIS} zLujZEP#8(L0qGx(h+IR$5vui2uBE-1-WPK3Z6^`3lVb|0_-=ST%BYCQZB*{!hHn(8 zPTt6khtty1-Y5bO7m`AR!NsNMh!x(Y>sPMV%*=6djSWI&6d9RV0qj@|PJ<0NN0e&n zPGzzd@$%LT_zAM$K8;1?d+e1+qqQLuz9_;qWxxUTwqAd{2GN7(qGJD1h5 zT$Bbr0lP8t{gVs7q8{w8@40t0|1m1~&t|4g=`NO{TUKZfAKqfaCZ{o&bshLI)-tO4 zmajie82Muffe6?Bt<(gKN}In4VhG$}GrnR=-8gT2UdtT~IZSSa%#GV%s82C5*QGu}RvVGCO3zx*k`;|^tXlHwwZ$_8hY2UI_ypxxh0RxwR=Ll=RJ z&sRX4bhkxvgw1Kj`3Mox$192uz7(cx5P;97{SlspE#FY$W0x-^bkq*?5Jx5JKxq3o zTaeTyQ>(O5?ZP&$D&SBK1FR5Z3xBh%ctd)D^fzVeA6CXD1C>IZ*`YoQv1lW{-~e+% zqmP>2R=*Xqn1hDiG5p>QFd;4bj2`f992?h&`_2RL#lMp2;~84^a?08j&dgCAuRfE% zQV+WZL1BvKrFezV7x;?6dWxX%;6#kwgq$fEn^UT7#Amk?&33+V;AhciXWJ#pQG;Je zgX5z+wN>zPoH?z)(7(-W`2*_FupD<#8A*!jJ_J1JCDMH0Co8;jl zHSpvNR>Ze6P7Cuf5-qds#wn~coPzCK2P_FL*KK^Z0#^juRj95rhBEMf2)?nbp2OcW z1x176EtmRr7HwLc;?sD4Aa{7aLPlL25jx?XM4ZbUtfSzIJTlJJW3Z1Rt?gIY3uLsi zH!zKoqU*`nn4%-$x{;G!{^^mV0{95S!!DoXrMuCT5HgP<36YW+Z}7%FE8wM1Fhria z3~IJRj5@R7vSy==T1ubkm2PTp!k$)3>>pc|Vp74UE{T;GAL}D>YO(5Ya6<{UTpbXp z?nNVK6a7^GVl+*|cV3)@ACWjrSfbuj88} zfio(FllNUR9NqggzcDF><6rvVR_&;GbsLv{eFLOw zi}M6IPk+ihzkn8#`KoRU9Gs)F6RMtUVsNBAr{z?l3A53N9N*gu%l&p^L7X`%zpVPZ zi+H+gAvBx3e+))Du{(|Z)peT-R$Yf^zrw$PaRY~ieFGyjnscYWv(DsT2+Gy|$-Kgo zK*t${1!EmV)knmxqO^OdY zskJVj2j+b9ZKOPG+`!wZ5KUDxaOxiAVu;1UyXeB2WQkQX&L|i(rQNWylR&r{n9U%w zpv3hGy$5KwQsSPL&tS%b_Rm#avRl)hJm*P(7gVRkUUnA%z^V`4&l!GZ(mgqfb&_Y{3kDF%GM> z6_WLlX$D!U`)(8pX@6C8h0;h8xkI%^2XuP3Wb9pidd(U{Adr*BP55uVonSdvoa^Ko!9Kd+ZgB}3m( zE|c=<)g;I+aR5|5nu{rEc0o7B{QOJimnUca;yszU4vsSejK~OY?w}e;9;BzlP2> z#jd9w_#bR1&jaDp_(ICtGpyzlax*yGao%1E24+CAW@0kZ<9@84%zRw5N1a`iDpB<~ zy$A<&`NEv(5ot#+P98q-Fa z6{g+`v3K0(%ov=0Pdrj`()UN{Xcg%h{V$KPI^0)08t8om2x5{3hMA7K#7w{cbUnM=_vPvK{11}q2r`jg^6b_s zq$ZZ?Dz3`0-?g_O{N8+FRojmiq#yh-zqzuB6*g>CF_P3omeFe^o1J?f=8O#anyLYQ z)Flf-1bXub^>7|%QH$P)$meTxMsz}uaOQxU(p2Flf$!XE3w;PB zEHk}F z+t?&JJ##As5Thr^5WyZ;&$wT@Un_r~T&r0Yc&wX||B z`jPm%04x9h<5QU`j0M07tg0%e-;pswv-=m*iL^DzxQfja;xu%ycFrrSX+L1+YSycH zGFTe@^n8Cep1M1q_5;K3=;c7udsy#^C$c~y>jrZbw+Hm=LFEbsJ1$q&r`7Cu`zq0V z_PS|o9&fB+LiK!s`-goOk4(CrTwXk;>!J&jCm+?{k_x|PAK7M%;{&`yUYV+Nf+W$zbx^sP&?!$Xd{l6x!13IWx zm0xbo+y3EH=5;p7B{@e4hLfuWmKoz{!<8!w10DwRo&aGZDF$GJLWa>3qsU7VPD)Ln z#=|VtLs5M#ZW_uso%{RU=8y#ytod6VeCs=nN zC|L<0Cp11)Opo}!#QrOa-xpD^FiJSy(!z{^$ln+!M3BrBRQV~_5V6H!@rbpaezGo7&|BtbEz^pPQ zF}>tD{G^qhSgI)z{RHrU*b=-Nw%&Xz^5n~bT3z>MI{f8_B-B$q+Ty!<^)<{u^`2_u zg-@-WQ250}ywaBlS$W6%PZlU=L(*(iHZwP@U6WSlx=lAm3NnMb|H?JgtC~HTyfEJ? zH*ho!0P||tJ3U5}MU8A3HmQ9t>NPKq=BH=v2=d=x%1>abpQ!@N2 zJ*GF5+l~Ai529cRWyK_cs@wKg=Q-J|NFYp93K2}XzZUHlgm&~c0B8b^;rjNGly||k zgLI$f2pmUY{+CoWx}27|9+>DV_V^ZriGqT+Ut<{@U!+cC|NoXi@g+}bd`jVC35XyZ zU<=y~GkvEF3Qk;7Gk;QKzKHyghN)!}Wyy^5%3;V{RkyK&uHWH%2KGkn1Unwv!KM=a zbw9?H2ea*3k?Ri2$5%@LjQyk4B={ELSRoQ=APwPaMzQ6TdD|mH0j*LxlCU3kmK!8v zY}{YCMD@8u3j~}RS8`uF_H|$6ZaB~W1r`@a+wmGah*m`zJ!u{bRfxeIWX9|-W;>@$ zYU=YN^W0PW_FG6>5lzQTK^2P}_#eSp+1~&9H|5b^AMXD5a9BjmkHQXAzY|idTRi^O zEvB=n!|KA10IfaSz`BZ82Pl|znVXhbXQCRY#NcRdGS%WhLFVeSQ#xA%2qPUhKXA%c z@2QYr6vM!0-7DLSvA1r|@fTae`VX95$H419H zu6|gp&nyx7#46 z>BP0y6u8;iun$la+p#0$&5MhShax%)nK(u`!`BSJssNn+VNLK78FbP*jq=P3ns6w6 z7FyM{6G@K22g+$YW<&$9z)|SLSl|h`DsI;JcT+T(Pez*b&(!9_|00OM@#g$Y#TQ|N zf+@KVxPQ=$G5GYll+Lm*{EM>!PsQiFv$F1{u*3F#WmTU$&>Gr^OWUU2(MwN(iSpWT zf5-r;I9&W6b=*FLgnu6WZFX*^^&E!9oP3XW3b^Ao7VP+~gkPZs|LZ4@>Pl#y5^{_L zv1B9Nu4~53Dtr$IZ_-gO{32&W981Sk7(=0$t7Mw|3u%w1nYLGDfcCUFC#kGnA4;oi z2ofVT6?8T#1s0hU=jQ?Wz~Q?RGf;SCo;#|=3fjOteY!EU@cKJr1SR9hF9YKLXZDSI z;GEJ52V-xe%#B3=>A)B z@UzvCW(|BvRj@ZM9asiVz-O_(lK8WVM#(7;%At^NH{axF(jp}Zkz2uPP4{VGv1>@? zCJr7PbX;p4!!ISBbqvq5HZZgP$}HEkK*oy#Kc#aedy$L6*LMFvBKDR3i(^2WL1D zys|%2bRA{L(aAEKPZghO?X~~mng8L&2os7qlJBC`@=MIYnXLL}D8R>$&to56Mn(ob zp3$cAdho*ib|I=kQO0}Ha6;h03cZ?K_plKaJ=wo7-)=?;o_iKXcmXVKB(*q#&Uq)&ZO$zbAYBjmx{wT8kppB68ZrI^HS@q!v_Sc*fMA^uIg6d0C*c_s;g&W-8uNQ0fR}3*+UH`st zI8FX=_70hc?$u0aMkPDtZz8$>N7~jcB6n`{IpD4wRZ|;6b0-p`s$RqN9A?mGljW7+YBq1C}P8ZiNp4)WJGIwH?Gzcucys5Kc)Fp_KPbtebv+t*~s79c(pI zSLLs}65diO-08v=Zwgl5d2l1OIe@p(A`;}<-3cmW7QE_NKR%J{|J4G>&4)%I6T|+) zBG<>Z6M&?_0jG$QAkz1eDjdR)=Ql#U@z!I+q)E1j^${~_X`P+VLKDCEt<_(CROl;I zd?cYiB)p`R4;Da=#J9I8)#~=wG7F^@Ii#!lqda`ufVraR-5nc!?rmfI$Iqm z#)ok|e0I2v{poNW+i*0J3WP?vccLHBccI|aOiWN#4n8Gi-3>NHdDEgwDm$C!$KQ!5 zOBYtjgQEgBBk4jjj)fs~P6C--tk>JLA_M3w1cS^tYBfE$L8DN$Y4rsyn6}ziHBapR zAR>{v395toQdmztszswW3TP;3OXH`o+z2c?Nf;h&{A$E((x7a_`qH?i5fensi__i#A!I#AKq7B;X{M-MK!5DxfQ z1D$#G4<_vP_W1Z>=|%=6;$0D~eWt+VUi=?WL|!ylAC3p8F7<-zi$2&91V9DC1bj@^ zvlPv1ow_j;r{0&Z@BHU^pn(PU$Aki&Ac7i{0{|>!qGcA`_@_`T`%vkT6pG`BU^fSJ zh2&A)IiZKPYDQ;pA2$jq2PhjxjNmH!M5BE^ajOc?4mIPg;F%fng}7nfuZ+=Vr94>` z(y27*{^2g(~CnhV!RhLV5l54YjKGaeYhS=+G`&LE=S!rqloHwq?vU!m^#tE zl7n-U;68Ako_KzyVlK+Qj$s3gA0of|-m7I8;|N2^b zb@e?2I0iA$_dYcXK23ikdl7mk2wVYQ239Lq)5QZvR-WK@_D&3L!3E)zhxSWzIq>}n z2>p$0y-KX4CL`D3jnI^bN(Lfxt$04??A3OsJG&Za>5o#8widsz_}y_7+K?2o{j=u^ zsj1ZB$*_kk*jQqDi_3cm6dv)52jA4vz}4yzN}TZ)oRiV*bzQi%Vo(AP=i514StAyv ze9@`qh3)l-mN+=NzYkI1p~q&{wa{AsA`KX$!_UVOz4lRQMgvmgvi9NUuElM#u#tHX zl(of#ECD*7Dc3y{3xo*CPOR&&(>HUCpew7LWZ#O<)K(f=jt^wdvBIM=1uw?V|AC>` z{`!M`){OL{FN%xiKOkXF1H(>MdQW?=C&k7fBay z{#Z+WN0~AA0LV&MnpG&Cln^V3sz-Ryw|REt2@_8O#t@P7EfC{#C%A{G5(U1qI3@PN z%+77cPBOxllKx^7qU^)B;M)3mft5q07#oSfz9>j6V?*~hmdq`6q(D6a(Vdi0gUqQs zhJVV+!GvcA-$v*e=&vb$3fmEOqzBt(RyySV7%|1erhzfiCRbeK%4Cde?l<`tF&5!% zW8_X{!TVCF(WS%6Z9xgH@)hCxsAc|055!IMe4vq3jrZ<5e9t=zg8fw4;}D(#T}Ar` zHD56(>`s1a+8RZ_<%TGrE_y1X)3}*dHQ|#y9B2#P}>Gz&SvOIEOx{WZ$ z!&!s1n58Ox(dh1&8K>d7*5*%=skL|}B$Z$Eo0_=$&yWC<6=B)zD-o*Ip_q7cgD))p zo#Jha!X>5NxVW@cW;j!Nt|+gc2Dn-+FsXzZNQnq!=(z_rp&p|P5AIz#UUEIb^g(9< z4(-5vsTnMC=N8TXpZ+p({t=%jEo95#d%Y`jE@R+``c%3#G{S#mN4migX_o4XFcpXB z5wTCb?JfaC9oPmIb88L2?7S?oVqu1hujTA}YSsn-hVfAysPxvqPpj0j%V;0Y(2g$B zKv0bdh2)XZ$|^g3XX8NiUp?lvQs~+-{uyN60dP@8wtPuP z6;u*9y`L zTGuSeO=fk2b$~Y@{U4h+xJTLPDdF}FG(_~MEwZA@;5?_D++WzXfDLw7bz@Sg=~+@K$ql(b5&XfP7`Wefz3w*m%x8T=#NIfYSi9hP8mC~AbWLJ!$Nr2O zgTs^@r2h{|b@~6X^_Nj~HBA>NinDQ-;4Z-l?oNQ>A(2GX&b?MX$Uq=u)HXUqO-DZbxt-| zcoyw;o`JYgsU#kmITWL0$5C-@f1@(nHp_Lx%N$TFEG)QL4o2-P93G?cjC1kv^2z%^ z#{#v4zfWi)99M}L)!=MRGb@b%O0t7SfaTO~WdncaVofY?iKJ?8j{P-KJ8qQN#{WWv z6KZ}hRBL`$K@|TEs*vMafcyu>T>qB}Vm+AwF*Q?*ahWNMHAm33nsl@R_wzH;Y04jv zTh}P$2@SOFDyG~A9w^%yQ>J!imVCBwIVIWhLUnZ9bS){&GE4Ui=f^CrWBWBdM-yZ7 zhCB)ZP7@A3-1+&du`|H+Y==6aEIs6##Ev=KqlvVX1XV%quUeQ6e(kVg@EpmIu>mFg zfMTkfXKy!WU#Pl_cC#vApW2_8s&k+3-&K0|kh^g%dl;1a4W$ZM(KQbk1E&r}oo`Dr zCAJ;#l7k0+G{Ki82zl8teO}=ttCUhmka`$v2W@gMpW5vb*(k_IfhqVS`h^&zRl%|1 zJJVa>SE_mW`p7UI&(ocoT5RLXfYLDX{nyZJ;iU1-!hiNt{)Y+d@8qKY=ccBx2&jN%fhn3Tdu>~-t1*^zq4U<_sM zF#yK(70;&{PU^1PC^SYSpxT`hJrDeA71-!1Cn?(bo?P4SGW6eLJb-X?&afHCbU6Rd z`iHd12VPLpp9kUiJ;R5M5KHC)kGWHF%iQ5c%MJ+T)6C2_BhPq#0~Zx6t6@v|&RilY zTFJxQRco?nC|<^n{^4+YddxpBIvF~!Nttem-Bi|Pt#z=z8qB->XIWxn^ui{xk*RD0O}rBn2U_~?cI=}rLI*7(b2 zrEq%}MgoPXgXh*YbH0_x1O*y`BwDmsypogL;La6Wh{TL~ZAo@9R}#Mu+xTkGX!0KJ zA@`{KUn6v!99~Eow0?;vw8;J~xP|;YZ@BdRY!q8}3>uX`x7YVu3n3M=60&gq`@h1F zZu9fc_}oT+fRA#dc(}Et?uI<^3WY&@;RY}pR0Zi3icZgxE1;8RD@tr>7_%LQ{PH*5 zqmU1tA6!-wae=)KsGUVwzVB@!Wq5+$EOoB1`2VN8tk3`KV>xkuo^rWs2=#u^L8aqs zeT4y%zk7YAI1U_d?~iIW7Eyt>Cr7VI+o~dV&tpu9o_=ClB#HoM!b`R9ebY#c`thak;fG%bMR195ca1X9oUvz3@cH^!utZrf zaN5tQ=+zsMTc6%npV1$h%YMHetSz%@q&GZwiXNp)$wUf`#RQO%mC*Q*(7@;a4nzQq zQkQgxLcsgb___*<31Atc!G|$eQ!ykZpIf(5Ph^jr-e-db@r838IngL#*>t^+$ta!s zKJ%W>v}MZs!f|~z^!i$fONOv!gV(p5wqQ+<@WTd@NyIYE)8Hb}2Y*~$@`#K49QR?i>N)9EMz`%vULFUw9n zP~kgMz#C&$s&a+nPYSM^oT4L_*+Erv`(7mh{4dG6;GR;!MC??$=nd9Wyz-)H?_Z^5 zO$@RLGHI#z+dD6x64v4f{>&d~>V~lHKMEqe9Gk*V3g~V}FkyvEW#G%etl( zUZM|Je9^i!L^j(8C9b@v!dup!Q3n_1^Bu-tzVBr8To+bR3O3)W)Z4t5`;-+I!2y2I z68ypfzy@C4-X2q1DLG*>d|Nk_O^Kg=Kb^!IH+$fckk5n;We-9x#^~J!JH?9AC*E9! zJhByEnhnT3D5-kCbN9Hx-K9t*rH!bw!8>hKa$CtzRMH7dSUFOVE(VPcOKt!%bRyq! z_12D2#J@gS2#QuD5(*-VhXv)Xp`f}6VKRdCA?93cda+=Lr%&Wwf&11w1@_iz?6dvg&l$U4O7dvLGt|xup+S3J(o!BG>U!ARYApl-B>Bd zNm=&JGzNL;SD`%bjJK$}{RY6yNH*S;-bx%f8e#}4B8;;}*tzq98AgealsOi5rVo3j z9QEhV1Rg$FLMc(;0fd0ZXOd^+Jm9cg(n=q|Llf=Nx$olkuwP5?QBvBwucRpHcu%P# zF~t`q!kHk`*iU;#)X#5Piraj&((gEMTEyd<8&}b!E_CEi7lOUcgO~0*-`r{=+N9PmN<0#& z|KFxD=SK88`;1^A35g=8feVXt^|JTKJJ&3Kd%v9CHG~QbMlepBfI;!gU1d1rdjwbJ zvB_kehOp{_biCFwB?6Zv+r1e4L+C56Yx-qnwKX?5@ae>eY)>FZ_r79wB+Cg9KVUI% zRqR8g;=H4%Vd5`B4gUu&hwOKojsN5ns7W`*=HGY6j&$p5>yW@2Y%M5<3L2%JYoNR{)o6P8I&Dd_sY{o$KLsN+jjT&n*g>!S3RYME=nfCuuQ`HIzsu}FF^Gz5)PfuZi#xlq>lQ3V9WR{#w z`-S9>%VCC~HlqegH+zusr*;JrL3&MwBPnotGxy2 zm?h<%!5SjZMhPnVh|G603to}+`^}?;8rL1V!&5GJhQnDDz;CWHmXm%NMP+?S4e^$$ zKU8Qh)w>)@Cpx z^4gPIe3siO`?HrnfnoPotd-8Z3R}(cnO#y$Z#|Z7V4a17oaIF9sSnoQR2XB>b(O?s z-^LRIlNM9Nu6AxI6$@Fjn6ge}$gEqQRiQ6B=&(}ttZ+95L zClB{d)CUB=uGYWXeHvG(&nV!aL}I2fq=dyc=>1QOQKD45cXQ4HV)g<`-Q*z%0{IOTuQm<^+o=fgM>Uhj<1_zQ4r*Vaff z$=EO~2ajVfB=NO55q!(pU9bJ^dBQ%@(l6McCV@8g<{V)y=k9;qIS1uaBO_W{O1n8j zM@a&zj&w|qf8u4YUU``2lYAw)5rpt*n6Sjn-UVX88RTyfdr)H<~S$Tc_1&27!l2?g4WEc+UCAoo5^BB?c|Z zaRSz;;9gMTpGIFgOmVW!vp~F4|1u30i{rGC($AtA;*=GQ312C&^XD~jHMw#<$A1|F zcUkj7tP_^aR625nF&9AIf z_T3~w@en^lOj3y+C>%)XJ+F`>G@_+1bqCe~zGuTJI!eRKyvi$nEFkvE{>()j9o+={ zY*C%8^IPMukcU)nhS1e7qMN`)bFSAl2(o=XU-vgER`7)3L^ z&69Xpx83$d1dw8Z%kx5r%|OPxZ5tLb^aiB?NuD*gPRs)rXTf!CsYUb==6>%myKk#= zW$x81(F`LGNX~(M3c7X(qn8< zyL>dn2a#c@W*XTl_QZDgmLlp$ONtA>r9`XqdF_IKyQ}Cnt(vi04-OU`Pa|d){A%