Revert "Revert "update login-server build, allow create user without group""

This reverts commit 5de88f3a42dda18d734e9dd5de499634155725d0.
This commit is contained in:
Moriz Wahl 2021-04-27 00:58:28 +02:00
parent a0dc2531ff
commit 1fde044403
6 changed files with 50 additions and 36 deletions

View File

@ -36,12 +36,25 @@ services:
- ./configs/login_server:/etc/grd_login
- login_build_conan:/code/build_vol
#########################################################
## COMMUNITY SERVER (cakephp with php-fpm) ##############
#########################################################
#community-server:
# volumes:
# - ./community_server
community-server:
build:
context: .
dockerfile: ./community_server/Dockerfile
environment:
- DB_PASSWORD=''
- DB_USER='root'
- DB_DATABASE='gradido_community'
depends_on:
- mariadb
networks:
- internal-net
volumes:
- ./community_server/config/php-fpm/php-ini-overrides.ini:/etc/php/7.4/fpm/conf.d/99-overrides.ini
- ./community_server/src:/var/www/cakephp/src
#########################################################
@ -87,4 +100,3 @@ services:
volumes:
frontend_node_modules:
login_build_conan:

View File

@ -65,7 +65,6 @@ services:
- 1201:1201
volumes:
- ./configs/login_server:/etc/grd_login
- login_build:/code/build_vol
#########################################################
## NGINX ################################################
@ -131,4 +130,4 @@ networks:
volumes:
db_vol:
login_build:

View File

@ -96,6 +96,7 @@ with:
"first_name":"Max",
"last_name":"Musterman" ,
"emailType": 2,
"group_id": 1,
"password":"123abcDE&",
"login_after_register":true
}
@ -104,6 +105,7 @@ with:
- `emailType`: control email-text sended with email verification code
- 2: default, if user has registered directly
- 5: if user was registered by an admin
- `group_id`: group id of group to which user will join (id from login_server)
- `login_after_register`: if set to true auto-login after create user was successfull, means session cookie is set and session_id returned
### Response

View File

@ -1,42 +1,32 @@
#########################################################################################################
# Build debug
# debug build preparation
#########################################################################################################
From gradido/login_dependencies:stage2 as debug
ENV DOCKER_WORKDIR="/code"
From conanio/gcc9 as build_debug_preparation
USER root
ENV DOCKER_WORKDIR="/code"
RUN mkdir -p ${DOCKER_WORKDIR}
WORKDIR ${DOCKER_WORKDIR}
COPY . .
RUN chmod +x unix_parse_proto.sh
RUN chmod +x compile_pot.sh
RUN ./compile_pot.sh
RUN ./unix_parse_proto.sh
COPY . .
RUN cd dependencies/mariadb-connector-c && \
mkdir build && \
cd build && \
cmake -DCMAKE_BUILD_TYPE=Debug -DWITH_SSL=OFF ..
#########################################################################################################
# run debug
#########################################################################################################
FROM debug as login_server_debug
FROM build_debug_preparation 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
EXPOSE 1200
EXPOSE 1201
WORKDIR ${DOCKER_WORKDIR}
RUN chmod +x ./Dockerfiles/build_and_run.sh
CMD ./Dockerfiles/build_and_run.sh; ./build_vol/bin/Gradido_LoginServer
CMD ./Dockerfiles/build_and_run.sh; ./build/bin/Gradido_LoginServer

View File

@ -1,6 +1,4 @@
#!/bin/bash
cp build/conan* build_vol/
cd build_vol
cp build/conan* build_vol/

View File

@ -17,11 +17,12 @@ Poco::JSON::Object* JsonCreateUser::handle(Poco::Dynamic::Var params)
std::string password;
bool login_after_register = false;
int emailType;
int group_id;
int group_id = 1;
bool group_was_not_set = false;
auto em = EmailManager::getInstance();
auto sm = SessionManager::getInstance();
printf("enter\n");
// if is json object
if (params.type() == typeid(Poco::JSON::Object::Ptr)) {
Poco::JSON::Object::Ptr paramJsonObject = params.extract<Poco::JSON::Object::Ptr>();
@ -35,7 +36,11 @@ Poco::JSON::Object* JsonCreateUser::handle(Poco::Dynamic::Var params)
paramJsonObject->get("first_name").convert(first_name);
paramJsonObject->get("last_name").convert(last_name);
paramJsonObject->get("emailType").convert(emailType);
paramJsonObject->get("group_id").convert(group_id);
auto group_id_obj = paramJsonObject->get("group_id");
if(!group_id_obj.isEmpty()) {
group_id_obj.convert(group_id);
}
if ((ServerConfig::g_AllowUnsecureFlags & ServerConfig::UNSECURE_PASSWORD_REQUESTS)) {
paramJsonObject->get("password").convert(password);
@ -75,6 +80,10 @@ Poco::JSON::Object* JsonCreateUser::handle(Poco::Dynamic::Var params)
}
// create user
if(!group_id) {
group_id = 1;
group_was_not_set = true;
}
user = controller::User::create(email, first_name, last_name, group_id);
auto userModel = user->getModel();
Session* session = nullptr;
@ -93,7 +102,7 @@ Poco::JSON::Object* JsonCreateUser::handle(Poco::Dynamic::Var params)
UniLib::controller::TaskPtr create_authenticated_encrypten_key = new AuthenticatedEncryptionCreateKeyTask(user, password);
create_authenticated_encrypten_key->scheduleTask(create_authenticated_encrypten_key);
}
auto emailOptIn = controller::EmailVerificationCode::create(userModel->getID(), model::table::EMAIL_OPT_IN_REGISTER);
auto emailOptInModel = emailOptIn->getModel();
if (!emailOptInModel->insertIntoDB(false)) {
@ -105,10 +114,14 @@ Poco::JSON::Object* JsonCreateUser::handle(Poco::Dynamic::Var params)
if (login_after_register && session) {
Poco::JSON::Object* result = stateSuccess();
if(group_was_not_set) {
Poco::JSON::Array infos;
infos.add("group_id was not set, use 1 as default!");
result->set("info", infos);
}
result->set("session_id", session->getHandle());
return result;
}
return stateSuccess();
}
}