From 50b0fd1cb8bd5013fd24ab71ff71ebe89bd57780 Mon Sep 17 00:00:00 2001 From: emeric Date: Sun, 5 Jul 2020 15:15:51 +0200 Subject: [PATCH] Various fixes + refacto --- CMakeLists.txt | 8 - README.md | 4 +- approot/admin-user.xml | 9 + approot/messages.xml | 7 +- approot/messages_fr.xml | 4 + cmake/modules/FindFFMPEGAV.cmake | 3 - src/libs/auth/CMakeLists.txt | 5 + src/libs/auth/impl/LoginThrottler.hpp | 2 - src/libs/auth/impl/PasswordService.cpp | 128 ++++--------- src/libs/auth/impl/PasswordService.hpp | 5 +- src/libs/auth/impl/pam/PAM.cpp | 177 ++++++++++++++++++ src/libs/auth/impl/pam/PAM.hpp | 32 ++++ .../auth/include/auth/IPasswordService.hpp | 3 + src/libs/database/impl/Session.cpp | 9 +- src/libs/database/impl/User.cpp | 8 +- src/libs/database/include/database/User.hpp | 20 +- src/libs/subsonic/impl/SubsonicResource.cpp | 4 +- src/libs/utils/impl/String.cpp | 1 + src/lms/ui/admin/InitWizardView.cpp | 4 +- src/lms/ui/admin/UserView.cpp | 131 +++++++------ src/test/database/DatabaseTest.cpp | 22 +-- 21 files changed, 390 insertions(+), 196 deletions(-) create mode 100644 src/libs/auth/impl/pam/PAM.cpp create mode 100644 src/libs/auth/impl/pam/PAM.hpp diff --git a/CMakeLists.txt b/CMakeLists.txt index 67572a74..2d0c04fe 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -17,14 +17,6 @@ find_package(PStreams REQUIRED) find_package(PAM) pkg_check_modules(GRAPHICSMAGICKXX REQUIRED GraphicsMagick++) -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall") -set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Werror -Wno-error=parentheses -Wno-error=unused-function -O0 -g") -set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O2 -g") - -if(PAM_FOUND) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DUSEPAM") -endif(PAM_FOUND) - add_subdirectory(src) # TODO pam configuration file diff --git a/README.md b/README.md index 2d1b24a0..d8e1773e 100644 --- a/README.md +++ b/README.md @@ -90,9 +90,11 @@ __Notes__: * a C++17 compiler is needed * ffmpeg version 4 minimum is required ```sh -apt-get install g++ cmake libboost-system-dev libavutil-dev libavformat-dev libgraphicsmagick++1-dev libconfig++-dev libpstreams-dev ffmpeg libtag1-dev +apt-get install g++ cmake libboost-system-dev libavutil-dev libavformat-dev libgraphicsmagick++1-dev libconfig++-dev libpstreams-dev ffmpeg libtag1-dev libpam0g-dev ``` +__Note__: package libpam0g-dev is optional (only for using PAM authentication) + You also need _Wt4_, which is not packaged yet on _Debian_. See [installation instructions](https://www.webtoolkit.eu/wt/doc/reference/html/InstallationUnix.html).
No optional requirement is needed, except openSSL if you plan not to deploy behind a reverse proxy (which is not recommended). diff --git a/approot/admin-user.xml b/approot/admin-user.xml index c3adc97a..80a97d25 100644 --- a/approot/admin-user.xml +++ b/approot/admin-user.xml @@ -30,6 +30,15 @@ ${} +
+ +
+ ${auth-mode} + ${auth-mode-info class="help-block"} +
+