Merge branch 'develop' of github.com:ONLYOFFICE/AppServer into develop
This commit is contained in:
commit
e25407a56f
@ -1,26 +1,35 @@
|
||||
#!/bin/bash
|
||||
|
||||
SRC_PATH="/AppServer"
|
||||
ARGS=""
|
||||
|
||||
while [ "$1" != "" ]; do
|
||||
case $1 in
|
||||
|
||||
-sp | --srcpath )
|
||||
if [ "$2" != "" ]; then
|
||||
SRC_PATH=$2
|
||||
shift
|
||||
fi
|
||||
SRC_PATH=$2
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
|
||||
-ar | --arguments )
|
||||
if [ "$2" != "" ]; then
|
||||
ARGS=$2
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
|
||||
-? | -h | --help )
|
||||
echo " Usage: bash build-backend.sh [PARAMETER] [[PARAMETER], ...]"
|
||||
echo " Parameters:"
|
||||
echo " -sp, --srcpath path to AppServer root directory"
|
||||
echo " -ar, --arguments additional arguments publish the .NET runtime with your application"
|
||||
echo " -?, -h, --help this help"
|
||||
echo " Examples"
|
||||
echo " bash build-backend.sh -sp /app/AppServer"
|
||||
exit 0
|
||||
;;
|
||||
;;
|
||||
|
||||
* )
|
||||
echo "Unknown parameter $1" 1>&2
|
||||
@ -33,8 +42,8 @@ done
|
||||
echo "== BACK-END-BUILD =="
|
||||
|
||||
cd ${SRC_PATH}
|
||||
dotnet restore ASC.Web.sln --configfile .nuget/NuGet.Config
|
||||
dotnet build -r linux-x64 ASC.Web.sln
|
||||
dotnet restore ASC.Web.sln --configfile .nuget/NuGet.Config ${ARGS}
|
||||
dotnet build ASC.Web.sln ${ARGS}
|
||||
|
||||
echo "== Build ASC.Thumbnails =="
|
||||
yarn install --cwd common/ASC.Thumbnails --frozen-lockfile
|
||||
|
@ -20,7 +20,7 @@ while [ "$1" != "" ]; do
|
||||
echo " Examples"
|
||||
echo " bash build-backend.sh -sp /app/AppServer"
|
||||
exit 0
|
||||
;;
|
||||
;;
|
||||
|
||||
* )
|
||||
echo "Unknown parameter $1" 1>&2
|
||||
@ -34,3 +34,4 @@ echo "== FRONT-END-BUILD =="
|
||||
|
||||
cd ${SRC_PATH}
|
||||
yarn install
|
||||
yarn build
|
||||
|
@ -2,7 +2,6 @@
|
||||
|
||||
SRC_PATH="/AppServer"
|
||||
BUILD_PATH="/publish"
|
||||
RID_ID="linux-x64"
|
||||
SELF_CONTAINED="false"
|
||||
ARGS=""
|
||||
|
||||
@ -22,12 +21,6 @@ while [ "$1" != "" ]; do
|
||||
BUILD_PATH=$2
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
-ri | --runtime )
|
||||
if [ "$2" != "" ]; then
|
||||
RID_ID=$2
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
-sc | --self-contained )
|
||||
if [ "$2" != "" ]; then
|
||||
@ -46,7 +39,6 @@ while [ "$1" != "" ]; do
|
||||
echo " Parameters:"
|
||||
echo " -sp, --srcpath path to AppServer root directory (by default=/AppServer)"
|
||||
echo " -bp, --buildpath path where generated output is placed (by default=/publish)"
|
||||
echo " -ri, --runtime RID ids for .NET runtime publish (by default=linux-x64)"
|
||||
echo " -sc, --self-contained publish the .NET runtime with your application (by default=false)"
|
||||
echo " -ar, --arguments additional arguments publish the .NET runtime with your application"
|
||||
echo " -?, -h, --help this help"
|
||||
@ -74,7 +66,7 @@ for i in ${!servers_products_name_backend[@]}; do
|
||||
echo "== Publish ${servers_products_name_backend[$i]}.csproj project =="
|
||||
SERVICE_DIR="$(dirname "$(find ${SRC_PATH} -type f -name "${servers_products_name_backend[$i]}".csproj)")"
|
||||
cd ${SERVICE_DIR}
|
||||
dotnet publish -c Release -r ${RID_ID} --self-contained ${SELF_CONTAINED} ${ARGS} -o ${BUILD_PATH}/products/${servers_products_name_backend[$i]}/server/
|
||||
dotnet publish -c Release --self-contained ${SELF_CONTAINED} ${ARGS} -o ${BUILD_PATH}/products/${servers_products_name_backend[$i]}/server/
|
||||
done
|
||||
|
||||
# Array of names backend services
|
||||
@ -97,7 +89,7 @@ for i in ${!services_name_backend[@]}; do
|
||||
echo "== Publish ${services_name_backend[$i]}.csproj project =="
|
||||
SERVICE_DIR="$(dirname "$(find ${SRC_PATH} -type f -name "${services_name_backend[$i]}".csproj)")"
|
||||
cd ${SERVICE_DIR}
|
||||
dotnet publish -c Release -r ${RID_ID} --self-contained ${SELF_CONTAINED} ${ARGS} -o ${BUILD_PATH}/services/${services_name_backend[$i]}/service/
|
||||
dotnet publish -c Release --self-contained ${SELF_CONTAINED} ${ARGS} -o ${BUILD_PATH}/services/${services_name_backend[$i]}/service/
|
||||
done
|
||||
|
||||
# Array of names backend services in directory common (Nodejs)
|
||||
|
@ -1,11 +1,13 @@
|
||||
### STAGE 1: Develop ######
|
||||
ARG SRC_PATH="/app/onlyoffice/src"
|
||||
ARG BUILD_PATH="/var/www"
|
||||
### STAGE 1: Base image ######
|
||||
ARG SRC_PATH=/app/onlyoffice/src
|
||||
ARG BUILD_PATH=/var/www
|
||||
ARG REPO_TAG=5.0.202-focal-amd64
|
||||
ARG REPO=mcr.microsoft.com/dotnet/sdk
|
||||
|
||||
FROM ubuntu:20.10 AS develop
|
||||
FROM $REPO:$REPO_TAG AS base
|
||||
ARG RELEASE_DATE="2016-06-21"
|
||||
ARG DEBIAN_FRONTEND=noninteractive
|
||||
ARG GIT_BRANCH="master"
|
||||
ARG GIT_BRANCH=master
|
||||
ARG SRC_PATH
|
||||
ARG BUILD_PATH
|
||||
|
||||
@ -25,22 +27,8 @@ RUN echo "nameserver 8.8.8.8" | tee /etc/resolv.conf > /dev/null && \
|
||||
adduser -uid 104 --quiet --home /var/www/onlyoffice --system --gid 107 onlyoffice && \
|
||||
locale-gen en_US.UTF-8 && \
|
||||
apt-get -y update && \
|
||||
apt-get install -yq software-properties-common wget curl && \
|
||||
curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash - && \
|
||||
apt-get install -y nodejs && \
|
||||
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - && \
|
||||
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list && \
|
||||
wget https://packages.microsoft.com/config/ubuntu/20.10/packages-microsoft-prod.deb -O packages-microsoft-prod.deb && \
|
||||
dpkg -i packages-microsoft-prod.deb && \
|
||||
apt-get -y update && \
|
||||
apt-get install -y apt-transport-https && \
|
||||
apt-get install -y apt-utils &&\
|
||||
apt-get -y update && \
|
||||
cd ~ && \
|
||||
echo "#!/bin/sh\nexit 0" > /usr/sbin/policy-rc.d && \
|
||||
apt-get install -yq git \
|
||||
yarn \
|
||||
dotnet-sdk-5.0
|
||||
apt-get install -yq git apt-utils npm nodejs && \
|
||||
npm install --global yarn
|
||||
|
||||
RUN echo "nameserver 8.8.8.8" | tee /etc/resolv.conf > /dev/null && \
|
||||
echo ${GIT_BRANCH} && \
|
||||
@ -55,8 +43,7 @@ RUN echo "nameserver 8.8.8.8" | tee /etc/resolv.conf > /dev/null && \
|
||||
sed -e 's/#//' -i /etc/nginx/conf.d/onlyoffice.conf && \
|
||||
cd ${SRC_PATH}/build/install/common/ && \
|
||||
bash build-frontend.sh -sp ${SRC_PATH} && \
|
||||
cd ${SRC_PATH} && yarn build && cd ${SRC_PATH}/build/install/common/ && \
|
||||
bash build-backend.sh -sp ${SRC_PATH} && \
|
||||
bash build-backend.sh -sp ${SRC_PATH} -ar "--disable-parallel" && \
|
||||
bash publish-backend.sh -sp ${SRC_PATH} -bp ${BUILD_PATH} -ar "--disable-parallel"
|
||||
|
||||
COPY config/mysql/conf.d/mysql.cnf /etc/mysql/conf.d/mysql.cnf
|
||||
@ -71,7 +58,8 @@ FROM mcr.microsoft.com/dotnet/aspnet:5.0.4-focal-amd64 as builder
|
||||
ARG BUILD_PATH
|
||||
ENV BUILD_PATH=${BUILD_PATH}
|
||||
|
||||
COPY --from=develop /app/onlyoffice/config/ /app/onlyoffice/config/
|
||||
COPY --from=base /app/onlyoffice/config/*.json /app/onlyoffice/config/
|
||||
COPY --from=base /app/onlyoffice/config/*.config /app/onlyoffice/config/
|
||||
|
||||
# add defualt user and group for no-root run
|
||||
RUN mkdir -p /var/log/onlyoffice && \
|
||||
@ -96,7 +84,7 @@ ENTRYPOINT ["./docker-entrypoint.sh"]
|
||||
|
||||
### STAGE 3: Run ###
|
||||
|
||||
## NGINX ##
|
||||
## Nginx image ##
|
||||
FROM nginx AS web
|
||||
ARG SRC_PATH
|
||||
ARG BUILD_PATH
|
||||
@ -109,16 +97,16 @@ RUN echo "nameserver 8.8.8.8" | tee /etc/resolv.conf > /dev/null && \
|
||||
rm -rf /usr/share/nginx/html/*
|
||||
|
||||
# copy static services files and config values
|
||||
COPY --from=develop /etc/nginx/conf.d /etc/nginx/conf.d
|
||||
COPY --from=develop /etc/nginx/includes /etc/nginx/includes
|
||||
COPY --from=develop /var/www/public /var/www/public
|
||||
COPY --from=develop ${SRC_PATH}/products/ASC.CRM/Client/dist ${BUILD_PATH}/products/ASC.CRM/client
|
||||
COPY --from=develop ${SRC_PATH}/web/ASC.Web.Editor/dist ${BUILD_PATH}/products/ASC.Files/editor
|
||||
COPY --from=develop ${SRC_PATH}/products/ASC.Files/Client/dist ${BUILD_PATH}/products/ASC.Files/client
|
||||
COPY --from=develop ${SRC_PATH}/web/ASC.Web.Login/dist ${BUILD_PATH}/studio/login
|
||||
COPY --from=develop ${SRC_PATH}/products/ASC.People/Client/dist ${BUILD_PATH}/products/ASC.People/client
|
||||
COPY --from=develop ${SRC_PATH}/products/ASC.Projects/Client/dist ${BUILD_PATH}/products/ASC.Projects/client
|
||||
COPY --from=develop ${SRC_PATH}/web/ASC.Web.Client/dist ${BUILD_PATH}/studio/client
|
||||
COPY --from=base /etc/nginx/conf.d /etc/nginx/conf.d
|
||||
COPY --from=base /etc/nginx/includes /etc/nginx/includes
|
||||
COPY --from=base /var/www/public /var/www/public
|
||||
COPY --from=base ${SRC_PATH}/products/ASC.CRM/Client/dist ${BUILD_PATH}/products/ASC.CRM/client
|
||||
COPY --from=base ${SRC_PATH}/web/ASC.Web.Editor/dist ${BUILD_PATH}/products/ASC.Files/editor
|
||||
COPY --from=base ${SRC_PATH}/products/ASC.Files/Client/dist ${BUILD_PATH}/products/ASC.Files/client
|
||||
COPY --from=base ${SRC_PATH}/web/ASC.Web.Login/dist ${BUILD_PATH}/studio/login
|
||||
COPY --from=base ${SRC_PATH}/products/ASC.People/Client/dist ${BUILD_PATH}/products/ASC.People/client
|
||||
COPY --from=base ${SRC_PATH}/products/ASC.Projects/Client/dist ${BUILD_PATH}/products/ASC.Projects/client
|
||||
COPY --from=base ${SRC_PATH}/web/ASC.Web.Client/dist ${BUILD_PATH}/studio/client
|
||||
|
||||
COPY /config/nginx/templates/upstream.conf.template /etc/nginx/templates/upstream.conf.template
|
||||
|
||||
@ -145,7 +133,7 @@ FROM builder AS api_system
|
||||
WORKDIR ${BUILD_PATH}/services/apisystem/
|
||||
|
||||
COPY --chown=onlyoffice:onlyoffice docker-entrypoint.sh .
|
||||
COPY --from=develop --chown=onlyoffice:onlyoffice ${BUILD_PATH}/services/ASC.ApiSystem/service .
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice ${BUILD_PATH}/services/ASC.ApiSystem/service .
|
||||
|
||||
CMD ["ASC.ApiSystem.dll", "ASC.ApiSystem"]
|
||||
|
||||
@ -154,7 +142,7 @@ FROM builder AS backup
|
||||
WORKDIR ${BUILD_PATH}/services/backup/
|
||||
|
||||
COPY --chown=onlyoffice:onlyoffice docker-entrypoint.sh .
|
||||
COPY --from=develop --chown=onlyoffice:onlyoffice ${BUILD_PATH}/services/ASC.Data.Backup/service .
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice ${BUILD_PATH}/services/ASC.Data.Backup/service .
|
||||
|
||||
CMD ["ASC.Data.Backup.dll", "ASC.Data.Backup", "core:products:folder=/var/www/products/", "core:products:subfolder=server"]
|
||||
|
||||
@ -163,7 +151,7 @@ FROM builder AS crm
|
||||
WORKDIR ${BUILD_PATH}/products/ASC.CRM/server/
|
||||
|
||||
COPY --chown=onlyoffice:onlyoffice docker-entrypoint.sh .
|
||||
COPY --from=develop --chown=onlyoffice:onlyoffice ${BUILD_PATH}/products/ASC.CRM/server/ .
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice ${BUILD_PATH}/products/ASC.CRM/server/ .
|
||||
|
||||
CMD ["ASC.CRM.dll", "ASC.CRM"]
|
||||
|
||||
@ -172,7 +160,7 @@ FROM builder AS data_storage_encryption
|
||||
WORKDIR ${BUILD_PATH}/services/storage.encryption/
|
||||
|
||||
COPY --chown=onlyoffice:onlyoffice docker-entrypoint.sh .
|
||||
COPY --from=develop --chown=onlyoffice:onlyoffice ${BUILD_PATH}/services/ASC.Data.Storage.Encryption/service/ .
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice ${BUILD_PATH}/services/ASC.Data.Storage.Encryption/service/ .
|
||||
|
||||
CMD ["ASC.Data.Storage.Encryption.dll", "ASC.Data.Storage.Encryption"]
|
||||
|
||||
@ -181,7 +169,7 @@ FROM builder AS files
|
||||
WORKDIR ${BUILD_PATH}/products/ASC.Files/server/
|
||||
|
||||
COPY --chown=onlyoffice:onlyoffice docker-entrypoint.sh .
|
||||
COPY --from=develop --chown=onlyoffice:onlyoffice ${BUILD_PATH}/products/ASC.Files/server/ .
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice ${BUILD_PATH}/products/ASC.Files/server/ .
|
||||
|
||||
CMD ["ASC.Files.dll", "ASC.Files"]
|
||||
|
||||
@ -190,7 +178,7 @@ FROM builder AS files_services
|
||||
WORKDIR ${BUILD_PATH}/products/ASC.Files/service/
|
||||
|
||||
COPY --chown=onlyoffice:onlyoffice docker-entrypoint.sh .
|
||||
COPY --from=develop --chown=onlyoffice:onlyoffice ${BUILD_PATH}/services/ASC.Files.Service/service/ .
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice ${BUILD_PATH}/services/ASC.Files.Service/service/ .
|
||||
|
||||
CMD ["ASC.Files.Service.dll", "ASC.Files.Service", "core:products:folder=/var/www/products/", "core:products:subfolder=server"]
|
||||
|
||||
@ -199,7 +187,7 @@ FROM builder AS data_storage_migration
|
||||
WORKDIR ${BUILD_PATH}/services/storage.migration/service/
|
||||
|
||||
COPY --chown=onlyoffice:onlyoffice docker-entrypoint.sh .
|
||||
COPY --from=develop --chown=onlyoffice:onlyoffice ${BUILD_PATH}/services/ASC.Data.Storage.Migration/service/ .
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice ${BUILD_PATH}/services/ASC.Data.Storage.Migration/service/ .
|
||||
|
||||
CMD ["ASC.Data.Storage.Migration.dll", "ASC.Data.Storage.Migration"]
|
||||
|
||||
@ -208,7 +196,7 @@ FROM builder AS notify
|
||||
WORKDIR ${BUILD_PATH}/services/notify/service
|
||||
|
||||
COPY --chown=onlyoffice:onlyoffice docker-entrypoint.sh .
|
||||
COPY --from=develop --chown=onlyoffice:onlyoffice ${BUILD_PATH}/services/ASC.Notify/service/ .
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice ${BUILD_PATH}/services/ASC.Notify/service/ .
|
||||
|
||||
CMD ["ASC.Notify.dll", "ASC.Notify", "core:products:folder=/var/www/products/", "core:products:subfolder=server"]
|
||||
|
||||
@ -217,7 +205,7 @@ FROM builder AS people_server
|
||||
WORKDIR ${BUILD_PATH}/products/ASC.People/server/
|
||||
|
||||
COPY --chown=onlyoffice:onlyoffice docker-entrypoint.sh .
|
||||
COPY --from=develop --chown=onlyoffice:onlyoffice ${BUILD_PATH}/products/ASC.People/server/ .
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice ${BUILD_PATH}/products/ASC.People/server/ .
|
||||
|
||||
CMD ["ASC.People.dll", "ASC.People"]
|
||||
|
||||
@ -226,7 +214,7 @@ FROM builder AS projects_server
|
||||
WORKDIR ${BUILD_PATH}/products/ASC.Projects/server/
|
||||
|
||||
COPY --chown=onlyoffice:onlyoffice docker-entrypoint.sh .
|
||||
COPY --from=develop --chown=onlyoffice:onlyoffice ${BUILD_PATH}/products/ASC.Projects/server/ .
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice ${BUILD_PATH}/products/ASC.Projects/server/ .
|
||||
|
||||
CMD ["ASC.Projects.dll", "ASC.Projects"]
|
||||
|
||||
@ -235,8 +223,8 @@ FROM builder AS socket
|
||||
WORKDIR ${BUILD_PATH}/services/socket/
|
||||
|
||||
COPY --chown=onlyoffice:onlyoffice docker-entrypoint.sh .
|
||||
COPY --from=develop --chown=onlyoffice:onlyoffice ${BUILD_PATH}/services/ASC.Socket.IO.Svc/service/ .
|
||||
COPY --from=develop --chown=onlyoffice:onlyoffice ${BUILD_PATH}/services/ASC.Socket.IO/service/ ${BUILD_PATH}/www/ASC.Socket.IO/
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice ${BUILD_PATH}/services/ASC.Socket.IO.Svc/service/ .
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice ${BUILD_PATH}/services/ASC.Socket.IO/service/ ${BUILD_PATH}/www/ASC.Socket.IO/
|
||||
|
||||
CMD ["ASC.Socket.IO.Svc.dll", "ASC.Socket.IO.Svc"]
|
||||
|
||||
@ -245,7 +233,7 @@ FROM builder AS studio_notify
|
||||
WORKDIR ${BUILD_PATH}/services/studio.notify/service/
|
||||
|
||||
COPY --chown=onlyoffice:onlyoffice docker-entrypoint.sh .
|
||||
COPY --from=develop --chown=onlyoffice:onlyoffice ${BUILD_PATH}/services/ASC.Studio.Notify/service/ .
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice ${BUILD_PATH}/services/ASC.Studio.Notify/service/ .
|
||||
|
||||
CMD ["ASC.Studio.Notify.dll", "ASC.Studio.Notify", "core:products:folder=/var/www/products/", "core:products:subfolder=server"]
|
||||
|
||||
@ -254,7 +242,7 @@ FROM builder AS telegram_service
|
||||
WORKDIR ${BUILD_PATH}/services/telegram/
|
||||
|
||||
COPY --chown=onlyoffice:onlyoffice docker-entrypoint.sh .
|
||||
COPY --from=develop --chown=onlyoffice:onlyoffice ${BUILD_PATH}/services/ASC.TelegramService/service/ .
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice ${BUILD_PATH}/services/ASC.TelegramService/service/ .
|
||||
|
||||
CMD ["ASC.TelegramService.dll", "ASC.TelegramService"]
|
||||
|
||||
@ -263,8 +251,8 @@ FROM builder AS thumbnails
|
||||
WORKDIR ${BUILD_PATH}/services/thumb/service/
|
||||
|
||||
COPY --chown=onlyoffice:onlyoffice docker-entrypoint.sh .
|
||||
COPY --from=develop --chown=onlyoffice:onlyoffice ${BUILD_PATH}/services/ASC.Thumbnails.Svc/service/ .
|
||||
COPY --from=develop --chown=onlyoffice:onlyoffice ${BUILD_PATH}/services/ASC.Thumbnails/service/ /var/www/services/thumb/client
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice ${BUILD_PATH}/services/ASC.Thumbnails.Svc/service/ .
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice ${BUILD_PATH}/services/ASC.Thumbnails/service/ /var/www/services/thumb/client
|
||||
|
||||
CMD ["ASC.Thumbnails.Svc.dll", "ASC.Thumbnails.Svc"]
|
||||
|
||||
@ -273,8 +261,8 @@ FROM builder AS urlshortener
|
||||
WORKDIR ${BUILD_PATH}/services/urlshortener/service/
|
||||
|
||||
COPY --chown=onlyoffice:onlyoffice docker-entrypoint.sh .
|
||||
COPY --from=develop --chown=onlyoffice:onlyoffice ${BUILD_PATH}/services/ASC.UrlShortener.Svc/service/ .
|
||||
COPY --from=develop --chown=onlyoffice:onlyoffice ${BUILD_PATH}/services/ASC.UrlShortener/service/ /var/www/services/urlshortener/client
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice ${BUILD_PATH}/services/ASC.UrlShortener.Svc/service/ .
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice ${BUILD_PATH}/services/ASC.UrlShortener/service/ /var/www/services/urlshortener/client
|
||||
|
||||
CMD ["ASC.UrlShortener.Svc.dll", "ASC.UrlShortener.Svc"]
|
||||
|
||||
@ -283,7 +271,7 @@ FROM builder AS api
|
||||
WORKDIR ${BUILD_PATH}/studio/api/
|
||||
|
||||
COPY --chown=onlyoffice:onlyoffice docker-entrypoint.sh .
|
||||
COPY --from=develop --chown=onlyoffice:onlyoffice ${BUILD_PATH}/services/ASC.Web.Api/service/ .
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice ${BUILD_PATH}/services/ASC.Web.Api/service/ .
|
||||
|
||||
CMD ["ASC.Web.Api.dll", "ASC.Web.Api"]
|
||||
|
||||
@ -292,6 +280,6 @@ FROM builder AS studio
|
||||
WORKDIR ${BUILD_PATH}/studio/server/
|
||||
|
||||
COPY --chown=onlyoffice:onlyoffice docker-entrypoint.sh .
|
||||
COPY --from=develop --chown=onlyoffice:onlyoffice ${BUILD_PATH}/services/ASC.Web.Studio/service/ .
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice ${BUILD_PATH}/services/ASC.Web.Studio/service/ .
|
||||
|
||||
CMD ["ASC.Web.Studio.dll", "ASC.Web.Studio"]
|
||||
|
@ -1,11 +1,15 @@
|
||||
### STAGE 1: Develop ######
|
||||
FROM ubuntu:20.10 AS develop
|
||||
### STAGE 1: Base image ######
|
||||
ARG SRC_PATH=/app/onlyoffice/src
|
||||
ARG BUILD_PATH=/var/www
|
||||
ARG REPO_TAG=5.0.202-focal-amd64
|
||||
ARG REPO=mcr.microsoft.com/dotnet/sdk
|
||||
|
||||
ARG RELEASE_DATE="2016-06-21"
|
||||
ARG VERSION="8.9.0.190"
|
||||
ARG DEBIAN_FRONTEND=noninteractive
|
||||
ARG GIT_BRANCH="master"
|
||||
ARG SRC_PATH="/app/onlyoffice/src"
|
||||
FROM $REPO:$REPO_TAG AS base
|
||||
ARG RELEASE_DATE=2021-04-11
|
||||
ARG VERSION=8.9.0.190
|
||||
ARG GIT_BRANCH=master
|
||||
ARG SRC_PATH
|
||||
ARG BUILD_PATH
|
||||
|
||||
LABEL onlyoffice.appserver.release-date="${RELEASE_DATE}" \
|
||||
onlyoffice.appserver.version="${VERSION}" \
|
||||
@ -24,22 +28,8 @@ RUN echo "nameserver 8.8.8.8" | tee /etc/resolv.conf > /dev/null && \
|
||||
adduser -uid 104 --quiet --home /var/www/onlyoffice --system --gid 107 onlyoffice && \
|
||||
locale-gen en_US.UTF-8 && \
|
||||
apt-get -y update && \
|
||||
apt-get install -yq software-properties-common wget curl && \
|
||||
curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash - && \
|
||||
apt-get install -y nodejs && \
|
||||
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - && \
|
||||
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list && \
|
||||
wget https://packages.microsoft.com/config/ubuntu/20.10/packages-microsoft-prod.deb -O packages-microsoft-prod.deb && \
|
||||
dpkg -i packages-microsoft-prod.deb && \
|
||||
apt-get -y update && \
|
||||
apt-get install -y apt-transport-https && \
|
||||
apt-get install -y apt-utils &&\
|
||||
apt-get -y update && \
|
||||
cd ~ && \
|
||||
echo "#!/bin/sh\nexit 0" > /usr/sbin/policy-rc.d && \
|
||||
apt-get install -yq git \
|
||||
yarn \
|
||||
dotnet-sdk-5.0
|
||||
apt-get install -yq git apt-utils npm nodejs && \
|
||||
npm install --global yarn
|
||||
|
||||
RUN echo "nameserver 8.8.8.8" | tee /etc/resolv.conf > /dev/null && \
|
||||
echo ${GIT_BRANCH} && \
|
||||
@ -54,8 +44,7 @@ RUN echo "nameserver 8.8.8.8" | tee /etc/resolv.conf > /dev/null && \
|
||||
sed -e 's/#//' -i /etc/nginx/conf.d/onlyoffice.conf && \
|
||||
cd ${SRC_PATH}/build/install/common/ && \
|
||||
bash build-frontend.sh -sp ${SRC_PATH} && \
|
||||
cd ${SRC_PATH} && yarn build && cd ${SRC_PATH}/build/install/common/ && \
|
||||
bash build-backend.sh -sp ${SRC_PATH} && \
|
||||
bash build-backend.sh -sp ${SRC_PATH} -ar "--disable-parallel" && \
|
||||
bash publish-backend.sh -sp ${SRC_PATH} -bp ${BUILD_PATH} -ar "--disable-parallel"
|
||||
|
||||
COPY config/mysql/conf.d/mysql.cnf /etc/mysql/conf.d/mysql.cnf
|
||||
@ -69,7 +58,7 @@ RUN rm -rf /var/lib/apt/lists/*
|
||||
|
||||
FROM mcr.microsoft.com/dotnet/aspnet:5.0.4-focal-amd64 as builder
|
||||
|
||||
COPY --from=develop /app/onlyoffice/config/ /app/onlyoffice/config/
|
||||
COPY --from=base /app/onlyoffice/config/ /app/onlyoffice/config/
|
||||
|
||||
# add defualt user and group for no-root run
|
||||
RUN mkdir -p /var/log/onlyoffice && \
|
||||
@ -107,16 +96,16 @@ RUN echo "nameserver 8.8.8.8" | tee /etc/resolv.conf > /dev/null && \
|
||||
rm -rf /usr/share/nginx/html/*
|
||||
|
||||
# copy static services files and config values
|
||||
COPY --from=develop /etc/nginx/conf.d /etc/nginx/conf.d
|
||||
COPY --from=develop /etc/nginx/includes /etc/nginx/includes
|
||||
COPY --from=develop /var/www/public /var/www/public
|
||||
COPY --from=develop ${SRC_PATH}/products/ASC.CRM/Client/dist /var/www/products/ASC.CRM/client
|
||||
COPY --from=develop ${SRC_PATH}/web/ASC.Web.Editor/dist /var/www/products/ASC.Files/editor
|
||||
COPY --from=develop ${SRC_PATH}/products/ASC.Files/Client/dist /var/www/products/ASC.Files/client
|
||||
COPY --from=develop ${SRC_PATH}/web/ASC.Web.Login/dist /var/www/studio/login
|
||||
COPY --from=develop ${SRC_PATH}/products/ASC.People/Client/dist /var/www/products/ASC.People/client
|
||||
COPY --from=develop ${SRC_PATH}/products/ASC.Projects/Client/dist /var/www/products/ASC.Projects/client
|
||||
COPY --from=develop ${SRC_PATH}/web/ASC.Web.Client/dist /var/www/studio/client
|
||||
COPY --from=base /etc/nginx/conf.d /etc/nginx/conf.d
|
||||
COPY --from=base /etc/nginx/includes /etc/nginx/includes
|
||||
COPY --from=base /var/www/public /var/www/public
|
||||
COPY --from=base ${SRC_PATH}/products/ASC.CRM/Client/dist /var/www/products/ASC.CRM/client
|
||||
COPY --from=base ${SRC_PATH}/web/ASC.Web.Editor/dist /var/www/products/ASC.Files/editor
|
||||
COPY --from=base ${SRC_PATH}/products/ASC.Files/Client/dist /var/www/products/ASC.Files/client
|
||||
COPY --from=base ${SRC_PATH}/web/ASC.Web.Login/dist /var/www/studio/login
|
||||
COPY --from=base ${SRC_PATH}/products/ASC.People/Client/dist /var/www/products/ASC.People/client
|
||||
COPY --from=base ${SRC_PATH}/products/ASC.Projects/Client/dist /var/www/products/ASC.Projects/client
|
||||
COPY --from=base ${SRC_PATH}/web/ASC.Web.Client/dist /var/www/studio/client
|
||||
|
||||
COPY /config/nginx/templates/upstream.conf.template /etc/nginx/templates/upstream.conf.template
|
||||
|
||||
@ -144,7 +133,7 @@ FROM builder AS api_system
|
||||
WORKDIR /var/www/services/apisystem/
|
||||
|
||||
COPY --chown=onlyoffice:onlyoffice docker-entrypoint.sh .
|
||||
COPY --from=develop --chown=onlyoffice:onlyoffice /var/www/services/apisystem/ .
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice /var/www/services/apisystem/ .
|
||||
|
||||
CMD ["ASC.ApiSystem.dll", "ASC.ApiSystem"]
|
||||
|
||||
@ -154,11 +143,11 @@ FROM builder AS backup
|
||||
WORKDIR /var/www/services/backup/
|
||||
|
||||
COPY --chown=onlyoffice:onlyoffice docker-entrypoint.sh .
|
||||
COPY --from=develop --chown=onlyoffice:onlyoffice /var/www/services/backup/ .
|
||||
COPY --from=develop --chown=onlyoffice:onlyoffice /var/www/products/ASC.People/server/ASC.People.dll /var/www/products/ASC.People/server/
|
||||
COPY --from=develop --chown=onlyoffice:onlyoffice /var/www/products/ASC.Files/server/ASC.Files*.dll /var/www/products/ASC.Files/server/
|
||||
COPY --from=develop --chown=onlyoffice:onlyoffice /var/www/products/ASC.CRM/server/ASC.CRM*.dll /var/www/products/ASC.CRM/server/
|
||||
COPY --from=develop --chown=onlyoffice:onlyoffice /var/www/products/ASC.Projects/server/ASC.Projects*.dll /var/www/products/ASC.Projects/server/
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice /var/www/services/backup/ .
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice /var/www/products/ASC.People/server/ASC.People.dll /var/www/products/ASC.People/server/
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice /var/www/products/ASC.Files/server/ASC.Files*.dll /var/www/products/ASC.Files/server/
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice /var/www/products/ASC.CRM/server/ASC.CRM*.dll /var/www/products/ASC.CRM/server/
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice /var/www/products/ASC.Projects/server/ASC.Projects*.dll /var/www/products/ASC.Projects/server/
|
||||
|
||||
CMD ["ASC.Data.Backup.dll", "ASC.Data.Backup", "core:products:folder=/var/www/products/", "core:products:subfolder=server"]
|
||||
|
||||
@ -168,11 +157,11 @@ FROM builder AS crm
|
||||
WORKDIR /var/www/products/ASC.CRM/server/
|
||||
|
||||
COPY --chown=onlyoffice:onlyoffice docker-entrypoint.sh .
|
||||
COPY --from=develop --chown=onlyoffice:onlyoffice /var/www/products/ASC.CRM/server/ .
|
||||
COPY --from=develop --chown=onlyoffice:onlyoffice /var/www/products/ASC.Files/server/ASC.Files*.dll /var/www/products/ASC.Files/server/
|
||||
COPY --from=develop --chown=onlyoffice:onlyoffice /var/www/products/ASC.People/server/ASC.People.dll /var/www/products/ASC.People/server/
|
||||
COPY --from=develop --chown=onlyoffice:onlyoffice /var/www/products/ASC.CRM/server/ASC.CRM*.dll /var/www/products/ASC.CRM/server/
|
||||
COPY --from=develop --chown=onlyoffice:onlyoffice /var/www/products/ASC.Projects/server/ASC.Projects*.dll /var/www/products/ASC.Projects/server/
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice /var/www/products/ASC.CRM/server/ .
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice /var/www/products/ASC.Files/server/ASC.Files*.dll /var/www/products/ASC.Files/server/
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice /var/www/products/ASC.People/server/ASC.People.dll /var/www/products/ASC.People/server/
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice /var/www/products/ASC.CRM/server/ASC.CRM*.dll /var/www/products/ASC.CRM/server/
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice /var/www/products/ASC.Projects/server/ASC.Projects*.dll /var/www/products/ASC.Projects/server/
|
||||
|
||||
CMD ["ASC.CRM.dll", "ASC.CRM"]
|
||||
|
||||
@ -182,11 +171,11 @@ FROM builder AS data_storage_encryption
|
||||
WORKDIR /var/www/services/storage.encryption/
|
||||
|
||||
COPY --chown=onlyoffice:onlyoffice docker-entrypoint.sh .
|
||||
COPY --from=develop --chown=onlyoffice:onlyoffice /var/www/services/storage.encryption/ .
|
||||
COPY --from=develop --chown=onlyoffice:onlyoffice /var/www/products/ASC.Files/server/ASC.Files*.dll /var/www/products/ASC.Files/server/
|
||||
COPY --from=develop --chown=onlyoffice:onlyoffice /var/www/products/ASC.People/server/ASC.People.dll /var/www/products/ASC.People/server/
|
||||
COPY --from=develop --chown=onlyoffice:onlyoffice /var/www/products/ASC.CRM/server/ASC.CRM*.dll /var/www/products/ASC.CRM/server/
|
||||
COPY --from=develop --chown=onlyoffice:onlyoffice /var/www/products/ASC.Projects/server/ASC.Projects*.dll /var/www/products/ASC.Projects/server/
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice /var/www/services/storage.encryption/ .
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice /var/www/products/ASC.Files/server/ASC.Files*.dll /var/www/products/ASC.Files/server/
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice /var/www/products/ASC.People/server/ASC.People.dll /var/www/products/ASC.People/server/
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice /var/www/products/ASC.CRM/server/ASC.CRM*.dll /var/www/products/ASC.CRM/server/
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice /var/www/products/ASC.Projects/server/ASC.Projects*.dll /var/www/products/ASC.Projects/server/
|
||||
|
||||
CMD ["ASC.Data.Storage.Encryption.dll", "ASC.Data.Storage.Encryption"]
|
||||
|
||||
@ -196,11 +185,11 @@ FROM builder AS files
|
||||
WORKDIR /var/www/products/ASC.Files/server/
|
||||
|
||||
COPY --chown=onlyoffice:onlyoffice docker-entrypoint.sh .
|
||||
COPY --from=develop --chown=onlyoffice:onlyoffice /var/www/products/ASC.Files/server/ .
|
||||
COPY --from=develop --chown=onlyoffice:onlyoffice ${SRC_PATH}/ASC.Files/Server/DocStore .
|
||||
COPY --from=develop --chown=onlyoffice:onlyoffice /var/www/products/ASC.People/server/ASC.People.dll /var/www/products/ASC.People/server/
|
||||
COPY --from=develop --chown=onlyoffice:onlyoffice /var/www/products/ASC.CRM/server/ASC.CRM*.dll /var/www/products/ASC.CRM/server/
|
||||
COPY --from=develop --chown=onlyoffice:onlyoffice /var/www/products/ASC.Projects/server/ASC.Projects*.dll /var/www/products/ASC.Projects/server/
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice /var/www/products/ASC.Files/server/ .
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice ${SRC_PATH}/ASC.Files/Server/DocStore .
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice /var/www/products/ASC.People/server/ASC.People.dll /var/www/products/ASC.People/server/
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice /var/www/products/ASC.CRM/server/ASC.CRM*.dll /var/www/products/ASC.CRM/server/
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice /var/www/products/ASC.Projects/server/ASC.Projects*.dll /var/www/products/ASC.Projects/server/
|
||||
|
||||
CMD ["ASC.Files.dll", "ASC.Files"]
|
||||
|
||||
@ -210,9 +199,9 @@ FROM builder AS files_services
|
||||
WORKDIR /var/www/products/ASC.Files/service/
|
||||
|
||||
COPY --chown=onlyoffice:onlyoffice docker-entrypoint.sh .
|
||||
COPY --from=develop --chown=onlyoffice:onlyoffice /var/www/products/ASC.Files/service/ .
|
||||
COPY --from=develop --chown=onlyoffice:onlyoffice /var/www/products/ASC.Files/server/ASC.Files*.dll /var/www/products/ASC.Files/Server/
|
||||
COPY --from=develop --chown=onlyoffice:onlyoffice /var/www/products/ASC.People/server/ASC.People*.dll /var/www/products/ASC.People/Server/
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice /var/www/products/ASC.Files/service/ .
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice /var/www/products/ASC.Files/server/ASC.Files*.dll /var/www/products/ASC.Files/Server/
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice /var/www/products/ASC.People/server/ASC.People*.dll /var/www/products/ASC.People/Server/
|
||||
|
||||
CMD ["ASC.Files.Service.dll", "ASC.Files.Service", "core:products:folder=/var/www/products/", "core:products:subfolder=server"]
|
||||
|
||||
@ -222,11 +211,11 @@ FROM builder AS data_storage_migration
|
||||
WORKDIR /var/www/services/storage.migration/service/
|
||||
|
||||
COPY --chown=onlyoffice:onlyoffice docker-entrypoint.sh .
|
||||
COPY --from=develop --chown=onlyoffice:onlyoffice /var/www/services/storage.migration/ .
|
||||
COPY --from=develop --chown=onlyoffice:onlyoffice /var/www/products/ASC.Files/server/ /var/www/products/ASC.Files/Server/
|
||||
COPY --from=develop --chown=onlyoffice:onlyoffice /var/www/products/ASC.People/server/ /var/www/products/ASC.People/Server/
|
||||
COPY --from=develop --chown=onlyoffice:onlyoffice /var/www/products/ASC.CRM/server/ /var/www/products/ASC.CRM/Server/
|
||||
COPY --from=develop --chown=onlyoffice:onlyoffice /var/www/products/ASC.Projects/server/ /var/www/products/ASC.Projects/Server/
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice /var/www/services/storage.migration/ .
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice /var/www/products/ASC.Files/server/ /var/www/products/ASC.Files/Server/
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice /var/www/products/ASC.People/server/ /var/www/products/ASC.People/Server/
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice /var/www/products/ASC.CRM/server/ /var/www/products/ASC.CRM/Server/
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice /var/www/products/ASC.Projects/server/ /var/www/products/ASC.Projects/Server/
|
||||
|
||||
|
||||
CMD ["ASC.Data.Storage.Migration.dll", "ASC.Data.Storage.Migration"]
|
||||
@ -237,11 +226,11 @@ FROM builder AS notify
|
||||
WORKDIR /var/www/services/notify/service
|
||||
|
||||
COPY --chown=onlyoffice:onlyoffice docker-entrypoint.sh .
|
||||
COPY --from=develop /var/www/services/notify/ .
|
||||
COPY --from=develop --chown=onlyoffice:onlyoffice /var/www/products/ASC.People/server/ASC.People.dll /var/www/products/ASC.People/Server/
|
||||
COPY --from=develop --chown=onlyoffice:onlyoffice /var/www/products/ASC.Files/server/ASC.Files*.dll /var/www/products/ASC.Files/Server/
|
||||
COPY --from=develop --chown=onlyoffice:onlyoffice /var/www/products/ASC.CRM/server/ASC.CRM*.dll /var/www/products/ASC.CRM/Server/
|
||||
COPY --from=develop --chown=onlyoffice:onlyoffice /var/www/products/ASC.Projects/server/ASC.Projects*.dll /var/www/products/ASC.Projects/Server/
|
||||
COPY --from=base /var/www/services/notify/ .
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice /var/www/products/ASC.People/server/ASC.People.dll /var/www/products/ASC.People/Server/
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice /var/www/products/ASC.Files/server/ASC.Files*.dll /var/www/products/ASC.Files/Server/
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice /var/www/products/ASC.CRM/server/ASC.CRM*.dll /var/www/products/ASC.CRM/Server/
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice /var/www/products/ASC.Projects/server/ASC.Projects*.dll /var/www/products/ASC.Projects/Server/
|
||||
|
||||
CMD ["ASC.Notify.dll", "ASC.Notify", "core:products:folder=/var/www/products/", "core:products:subfolder=server"]
|
||||
|
||||
@ -251,10 +240,10 @@ FROM builder AS people_server
|
||||
WORKDIR /var/www/products/ASC.People/server/
|
||||
|
||||
COPY --chown=onlyoffice:onlyoffice docker-entrypoint.sh .
|
||||
COPY --from=develop --chown=onlyoffice:onlyoffice /var/www/products/ASC.People/server/ .
|
||||
COPY --from=develop --chown=onlyoffice:onlyoffice /var/www/products/ASC.Files/server/ASC.Files*.dll /var/www/products/ASC.Files/server/
|
||||
COPY --from=develop --chown=onlyoffice:onlyoffice /var/www/products/ASC.CRM/server/ASC.CRM*.dll /var/www/products/ASC.CRM/server/
|
||||
COPY --from=develop --chown=onlyoffice:onlyoffice /var/www/products/ASC.Projects/server/ASC.Projects*.dll /var/www/products/ASC.Projects/server/
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice /var/www/products/ASC.People/server/ .
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice /var/www/products/ASC.Files/server/ASC.Files*.dll /var/www/products/ASC.Files/server/
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice /var/www/products/ASC.CRM/server/ASC.CRM*.dll /var/www/products/ASC.CRM/server/
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice /var/www/products/ASC.Projects/server/ASC.Projects*.dll /var/www/products/ASC.Projects/server/
|
||||
|
||||
CMD ["ASC.People.dll", "ASC.People"]
|
||||
|
||||
@ -264,11 +253,11 @@ FROM builder AS projects_server
|
||||
WORKDIR /var/www/products/ASC.Projects/server/
|
||||
|
||||
COPY --chown=onlyoffice:onlyoffice docker-entrypoint.sh .
|
||||
COPY --from=develop --chown=onlyoffice:onlyoffice /var/www/products/ASC.Projects/server/ .
|
||||
COPY --from=develop --chown=onlyoffice:onlyoffice /var/www/products/ASC.Files/server/ASC.Files*.dll /var/www/products/ASC.Files/server/
|
||||
COPY --from=develop --chown=onlyoffice:onlyoffice /var/www/products/ASC.People/server/ASC.People.dll /var/www/products/ASC.People/server/
|
||||
COPY --from=develop --chown=onlyoffice:onlyoffice /var/www/products/ASC.CRM/server/ASC.CRM*.dll /var/www/products/ASC.CRM/server/
|
||||
COPY --from=develop --chown=onlyoffice:onlyoffice /var/www/products/ASC.Projects/server/ASC.Projects*.dll /var/www/products/ASC.Projects/server/
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice /var/www/products/ASC.Projects/server/ .
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice /var/www/products/ASC.Files/server/ASC.Files*.dll /var/www/products/ASC.Files/server/
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice /var/www/products/ASC.People/server/ASC.People.dll /var/www/products/ASC.People/server/
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice /var/www/products/ASC.CRM/server/ASC.CRM*.dll /var/www/products/ASC.CRM/server/
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice /var/www/products/ASC.Projects/server/ASC.Projects*.dll /var/www/products/ASC.Projects/server/
|
||||
|
||||
CMD ["ASC.Projects.dll", "ASC.Projects"]
|
||||
|
||||
@ -278,12 +267,12 @@ FROM builder AS socket
|
||||
WORKDIR /var/www/services/socket/
|
||||
|
||||
COPY --chown=onlyoffice:onlyoffice docker-entrypoint.sh .
|
||||
COPY --from=develop --chown=onlyoffice:onlyoffice /var/www/services/socket/service/ .
|
||||
COPY --from=develop --chown=onlyoffice:onlyoffice /var/www/services/socket/client /var/www/ASC.Socket.IO
|
||||
COPY --from=develop --chown=onlyoffice:onlyoffice /var/www/products/ASC.Files/server/ /var/www/products/ASC.Files/server/
|
||||
COPY --from=develop --chown=onlyoffice:onlyoffice /var/www/products/ASC.People/server/ /var/www/products/ASC.People/server/
|
||||
COPY --from=develop --chown=onlyoffice:onlyoffice /var/www/products/ASC.CRM/server/ /var/www/products/ASC.CRM/server/
|
||||
COPY --from=develop --chown=onlyoffice:onlyoffice /var/www/products/ASC.Projects/server/ /var/www/products/ASC.Projects/server/
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice /var/www/services/socket/service/ .
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice /var/www/services/socket/client /var/www/ASC.Socket.IO
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice /var/www/products/ASC.Files/server/ /var/www/products/ASC.Files/server/
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice /var/www/products/ASC.People/server/ /var/www/products/ASC.People/server/
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice /var/www/products/ASC.CRM/server/ /var/www/products/ASC.CRM/server/
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice /var/www/products/ASC.Projects/server/ /var/www/products/ASC.Projects/server/
|
||||
|
||||
CMD ["ASC.Socket.IO.Svc.dll", "ASC.Socket.IO.Svc"]
|
||||
|
||||
@ -293,11 +282,11 @@ FROM builder AS studio_notify
|
||||
WORKDIR /var/www/services/studio.notify/service/
|
||||
|
||||
COPY --chown=onlyoffice:onlyoffice docker-entrypoint.sh .
|
||||
COPY --from=develop /var/www/services/studio.notify/ .
|
||||
COPY --from=develop --chown=onlyoffice:onlyoffice /var/www/products/ASC.People/server/ASC.People.dll /var/www/products/ASC.People/Server/
|
||||
COPY --from=develop --chown=onlyoffice:onlyoffice /var/www/products/ASC.Files/server/ASC.Files*.dll /var/www/products/ASC.Files/Server/
|
||||
COPY --from=develop --chown=onlyoffice:onlyoffice /var/www/products/ASC.CRM/server/ASC.CRM*.dll /var/www/products/ASC.CRM/Server/
|
||||
COPY --from=develop --chown=onlyoffice:onlyoffice /var/www/products/ASC.Projects/server/ASC.Projects*.dll /var/www/products/ASC.Projects/Server/
|
||||
COPY --from=base /var/www/services/studio.notify/ .
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice /var/www/products/ASC.People/server/ASC.People.dll /var/www/products/ASC.People/Server/
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice /var/www/products/ASC.Files/server/ASC.Files*.dll /var/www/products/ASC.Files/Server/
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice /var/www/products/ASC.CRM/server/ASC.CRM*.dll /var/www/products/ASC.CRM/Server/
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice /var/www/products/ASC.Projects/server/ASC.Projects*.dll /var/www/products/ASC.Projects/Server/
|
||||
|
||||
CMD ["ASC.Studio.Notify.dll", "ASC.Studio.Notify", "core:products:folder=/var/www/products/", "core:products:subfolder=server"]
|
||||
|
||||
@ -307,11 +296,11 @@ FROM builder AS telegram_service
|
||||
WORKDIR /var/www/services/telegram/
|
||||
|
||||
COPY --chown=onlyoffice:onlyoffice docker-entrypoint.sh .
|
||||
COPY --from=develop --chown=onlyoffice:onlyoffice /var/www/services/telegram/service/ .
|
||||
COPY --from=develop --chown=onlyoffice:onlyoffice /var/www/products/ASC.Files/server/ASC.Files*.dll /var/www/products/ASC.Files/server/
|
||||
COPY --from=develop --chown=onlyoffice:onlyoffice /var/www/products/ASC.People/server/ASC.People.dll /var/www/products/ASC.People/server/
|
||||
COPY --from=develop --chown=onlyoffice:onlyoffice /var/www/products/ASC.CRM/server/ASC.CRM*.dll /var/www/products/ASC.CRM/server/
|
||||
COPY --from=develop --chown=onlyoffice:onlyoffice /var/www/products/ASC.Projects/server/ASC.Projects*.dll /var/www/products/ASC.Projects/server/
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice /var/www/services/telegram/service/ .
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice /var/www/products/ASC.Files/server/ASC.Files*.dll /var/www/products/ASC.Files/server/
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice /var/www/products/ASC.People/server/ASC.People.dll /var/www/products/ASC.People/server/
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice /var/www/products/ASC.CRM/server/ASC.CRM*.dll /var/www/products/ASC.CRM/server/
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice /var/www/products/ASC.Projects/server/ASC.Projects*.dll /var/www/products/ASC.Projects/server/
|
||||
|
||||
CMD ["ASC.TelegramService.dll", "ASC.TelegramService"]
|
||||
|
||||
@ -321,8 +310,8 @@ FROM builder AS thumbnails
|
||||
WORKDIR /var/www/services/thumb/service/
|
||||
|
||||
COPY --chown=onlyoffice:onlyoffice docker-entrypoint.sh .
|
||||
COPY --from=develop --chown=onlyoffice:onlyoffice /var/www/services/thumb/service/ .
|
||||
COPY --from=develop --chown=onlyoffice:onlyoffice /var/www/services/thumb/client /var/www/services/thumb/client
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice /var/www/services/thumb/service/ .
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice /var/www/services/thumb/client /var/www/services/thumb/client
|
||||
|
||||
CMD ["ASC.Thumbnails.Svc.dll", "ASC.Thumbnails.Svc"]
|
||||
|
||||
@ -332,8 +321,8 @@ FROM builder AS urlshortener
|
||||
WORKDIR /var/www/services/urlshortener/service/
|
||||
|
||||
COPY --chown=onlyoffice:onlyoffice docker-entrypoint.sh .
|
||||
COPY --from=develop --chown=onlyoffice:onlyoffice /var/www/services/urlshortener/service/ .
|
||||
COPY --from=develop --chown=onlyoffice:onlyoffice /var/www/services/urlshortener/client /var/www/services/urlshortener/client
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice /var/www/services/urlshortener/service/ .
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice /var/www/services/urlshortener/client /var/www/services/urlshortener/client
|
||||
|
||||
CMD ["ASC.UrlShortener.Svc.dll", "ASC.UrlShortener.Svc"]
|
||||
|
||||
@ -343,11 +332,11 @@ FROM builder AS api
|
||||
WORKDIR /var/www/studio/api/
|
||||
|
||||
COPY --chown=onlyoffice:onlyoffice docker-entrypoint.sh .
|
||||
COPY --from=develop --chown=onlyoffice:onlyoffice /var/www/studio/api .
|
||||
COPY --from=develop --chown=onlyoffice:onlyoffice /var/www/products/ASC.People/server/ASC.People.dll /var/www/products/ASC.People/server/
|
||||
COPY --from=develop --chown=onlyoffice:onlyoffice /var/www/products/ASC.Files/server/ASC.Files*.dll /var/www/products/ASC.Files/server/
|
||||
COPY --from=develop --chown=onlyoffice:onlyoffice /var/www/products/ASC.CRM/server/ASC.CRM*.dll /var/www/products/ASC.CRM/server/
|
||||
COPY --from=develop --chown=onlyoffice:onlyoffice /var/www/products/ASC.Projects/server/ASC.Projects*.dll /var/www/products/ASC.Projects/server/
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice /var/www/studio/api .
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice /var/www/products/ASC.People/server/ASC.People.dll /var/www/products/ASC.People/server/
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice /var/www/products/ASC.Files/server/ASC.Files*.dll /var/www/products/ASC.Files/server/
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice /var/www/products/ASC.CRM/server/ASC.CRM*.dll /var/www/products/ASC.CRM/server/
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice /var/www/products/ASC.Projects/server/ASC.Projects*.dll /var/www/products/ASC.Projects/server/
|
||||
|
||||
CMD ["ASC.Web.Api.dll", "ASC.Web.Api"]
|
||||
|
||||
@ -357,10 +346,10 @@ FROM builder AS studio
|
||||
WORKDIR /var/www/studio/server/
|
||||
|
||||
COPY --chown=onlyoffice:onlyoffice docker-entrypoint.sh .
|
||||
COPY --from=develop --chown=onlyoffice:onlyoffice /var/www/studio/server/ .
|
||||
COPY --from=develop --chown=onlyoffice:onlyoffice /var/www/products/ASC.Files/server/ASC.Files*.dll /var/www/products/ASC.Files/server/
|
||||
COPY --from=develop --chown=onlyoffice:onlyoffice /var/www/products/ASC.People/server/ASC.People.dll /var/www/products/ASC.People/server/
|
||||
COPY --from=develop --chown=onlyoffice:onlyoffice /var/www/products/ASC.CRM/server/ASC.CRM*.dll /var/www/products/ASC.CRM/server/
|
||||
COPY --from=develop --chown=onlyoffice:onlyoffice /var/www/products/ASC.Projects/server/ASC.Projects*.dll /var/www/products/ASC.Projects/server/
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice /var/www/studio/server/ .
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice /var/www/products/ASC.Files/server/ASC.Files*.dll /var/www/products/ASC.Files/server/
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice /var/www/products/ASC.People/server/ASC.People.dll /var/www/products/ASC.People/server/
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice /var/www/products/ASC.CRM/server/ASC.CRM*.dll /var/www/products/ASC.CRM/server/
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice /var/www/products/ASC.Projects/server/ASC.Projects*.dll /var/www/products/ASC.Projects/server/
|
||||
|
||||
CMD ["ASC.Web.Studio.dll", "ASC.Web.Studio"]
|
||||
|
@ -120,11 +120,6 @@ services:
|
||||
image: "${REPO}/${STATUS}appserver-storage-migration:${SRV_VERSION}"
|
||||
container_name: ${STORAGE_MIGRATION_HOST}
|
||||
|
||||
onlyoffice-notify:
|
||||
<<: *x-service-base
|
||||
image: "${REPO}/${STATUS}appserver-notify:${SRV_VERSION}"
|
||||
container_name: ${NOTIFY_HOST}
|
||||
|
||||
onlyoffice-people-server:
|
||||
<<: *x-service-base
|
||||
image: "${REPO}/${STATUS}appserver-people-server:${SRV_VERSION}"
|
||||
@ -197,7 +192,6 @@ services:
|
||||
- onlyoffice-files
|
||||
- onlyoffice-files-services
|
||||
- onlyoffice-storage-migration
|
||||
- onlyoffice-notify
|
||||
- onlyoffice-people-server
|
||||
- onlyoffice-projects-server
|
||||
- onlyoffice-socket
|
||||
|
49
build/install/docker/notify.yml
Normal file
49
build/install/docker/notify.yml
Normal file
@ -0,0 +1,49 @@
|
||||
version: "3.6"
|
||||
x-service:
|
||||
&x-service-base
|
||||
container_name: base
|
||||
restart: always
|
||||
expose:
|
||||
- ${SERVICE_PORT}
|
||||
environment:
|
||||
MYSQL_HOST: ${MYSQL_HOST}
|
||||
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
|
||||
MYSQL_DATABASE: ${MYSQL_DATABASE}
|
||||
MYSQL_USER: ${MYSQL_USER}
|
||||
MYSQL_PASSWORD: ${MYSQL_PASSWORD}
|
||||
APP_DOTNET_ENV: ${APP_DOTNET_ENV}
|
||||
APP_CORE_BASE_DOMAIN: ${APP_CORE_BASE_DOMAIN}
|
||||
APP_CORE_MACHINEKEY: ${APP_CORE_MACHINEKEY}
|
||||
DOCUMENT_SERVER_JWT_SECRET: ${DOCUMENT_SERVER_JWT_SECRET}
|
||||
DOCUMENT_SERVER_JWT_HEADER: ${DOCUMENT_SERVER_JWT_HEADER}
|
||||
DOCUMENT_SERVER_URL_PUBLIC: ${DOCUMENT_SERVER_URL_PUBLIC}
|
||||
DOCUMENT_SERVER_URL_INTERNAL: ${DOCUMENT_SERVER_URL_INTERNAL}
|
||||
DOCUMENT_SERVER_URL_CONVERTER: ${DOCUMENT_SERVER_URL_CONVERTER}
|
||||
KAFKA_HOST: ${KAFKA_HOST}
|
||||
ELK_HOST: ${ELK_HOST}
|
||||
PROXY_HOST: ${PROXY_HOST}
|
||||
volumes:
|
||||
#- /app/onlyoffice/CommunityServer/data:/app/onlyoffice/data
|
||||
- app_data:/app/onlyoffice/data
|
||||
- files_data:/var/www/products/ASC.Files/server/
|
||||
- people_data:/var/www/products/ASC.People/server/
|
||||
- crm_data:/var/www/products/ASC.CRM/server/
|
||||
- project_data:/var/www/products/ASC.Projects/server/
|
||||
|
||||
services:
|
||||
onlyoffice-notify:
|
||||
<<: *x-service-base
|
||||
image: "${REPO}/${STATUS}appserver-notify:${SRV_VERSION}"
|
||||
container_name: ${NOTIFY_HOST}
|
||||
|
||||
networks:
|
||||
default:
|
||||
external:
|
||||
name: ${NETWORK_NAME}
|
||||
|
||||
volumes:
|
||||
app_data:
|
||||
files_data:
|
||||
people_data:
|
||||
crm_data:
|
||||
project_data:
|
@ -8,6 +8,7 @@ using System.Linq;
|
||||
using System.Net;
|
||||
using System.Net.Mail;
|
||||
using System.Security;
|
||||
using System.Threading;
|
||||
|
||||
using ASC.Api.Core;
|
||||
using ASC.Common;
|
||||
@ -83,8 +84,10 @@ namespace ASC.Employee.Core.Controllers
|
||||
private EmployeeWraperFullHelper EmployeeWraperFullHelper { get; }
|
||||
private EmployeeWraperHelper EmployeeWraperHelper { get; }
|
||||
private UserFormatter UserFormatter { get; }
|
||||
public PasswordHasher PasswordHasher { get; }
|
||||
public ILog Log { get; }
|
||||
private PasswordHasher PasswordHasher { get; }
|
||||
private UserHelpTourHelper UserHelpTourHelper { get; }
|
||||
private PersonalSettingsHelper PersonalSettingsHelper { get; }
|
||||
private ILog Log { get; }
|
||||
|
||||
public PeopleController(
|
||||
MessageService messageService,
|
||||
@ -119,7 +122,9 @@ namespace ASC.Employee.Core.Controllers
|
||||
EmployeeWraperFullHelper employeeWraperFullHelper,
|
||||
EmployeeWraperHelper employeeWraperHelper,
|
||||
UserFormatter userFormatter,
|
||||
PasswordHasher passwordHasher)
|
||||
PasswordHasher passwordHasher,
|
||||
UserHelpTourHelper userHelpTourHelper,
|
||||
PersonalSettingsHelper personalSettingsHelper)
|
||||
{
|
||||
Log = option.Get("ASC.Api");
|
||||
Log.Debug("Test");
|
||||
@ -155,6 +160,8 @@ namespace ASC.Employee.Core.Controllers
|
||||
EmployeeWraperHelper = employeeWraperHelper;
|
||||
UserFormatter = userFormatter;
|
||||
PasswordHasher = passwordHasher;
|
||||
UserHelpTourHelper = userHelpTourHelper;
|
||||
PersonalSettingsHelper = personalSettingsHelper;
|
||||
}
|
||||
|
||||
[Read("info")]
|
||||
@ -451,7 +458,7 @@ namespace ASC.Employee.Core.Controllers
|
||||
? true
|
||||
: ("female".Equals(memberModel.Sex, StringComparison.OrdinalIgnoreCase) ? (bool?)false : null);
|
||||
|
||||
user.BirthDate = memberModel.Birthday != null && memberModel.Birthday != DateTime.MinValue ? TenantUtil.DateTimeFromUtc(Convert.ToDateTime(memberModel.Birthday)) : (DateTime?)null;
|
||||
user.BirthDate = memberModel.Birthday != null && memberModel.Birthday != DateTime.MinValue ? TenantUtil.DateTimeFromUtc(Convert.ToDateTime(memberModel.Birthday)) : null;
|
||||
user.WorkFromDate = memberModel.Worksfrom != null && memberModel.Worksfrom != DateTime.MinValue ? TenantUtil.DateTimeFromUtc(Convert.ToDateTime(memberModel.Worksfrom)) : DateTime.UtcNow.Date;
|
||||
|
||||
UpdateContacts(memberModel.Contacts, user);
|
||||
@ -520,7 +527,7 @@ namespace ASC.Employee.Core.Controllers
|
||||
? true
|
||||
: ("female".Equals(memberModel.Sex, StringComparison.OrdinalIgnoreCase) ? (bool?)false : null);
|
||||
|
||||
user.BirthDate = memberModel.Birthday != null ? TenantUtil.DateTimeFromUtc(Convert.ToDateTime(memberModel.Birthday)) : (DateTime?)null;
|
||||
user.BirthDate = memberModel.Birthday != null ? TenantUtil.DateTimeFromUtc(Convert.ToDateTime(memberModel.Birthday)) : null;
|
||||
user.WorkFromDate = memberModel.Worksfrom != null ? TenantUtil.DateTimeFromUtc(Convert.ToDateTime(memberModel.Worksfrom)) : DateTime.UtcNow.Date;
|
||||
|
||||
UpdateContacts(memberModel.Contacts, user);
|
||||
@ -665,7 +672,7 @@ namespace ASC.Employee.Core.Controllers
|
||||
if (memberModel.Disable.HasValue)
|
||||
{
|
||||
user.Status = memberModel.Disable.Value ? EmployeeStatus.Terminated : EmployeeStatus.Active;
|
||||
user.TerminatedDate = memberModel.Disable.Value ? DateTime.UtcNow : (DateTime?)null;
|
||||
user.TerminatedDate = memberModel.Disable.Value ? DateTime.UtcNow : null;
|
||||
}
|
||||
|
||||
if (self && !isAdmin)
|
||||
@ -1515,6 +1522,147 @@ namespace ASC.Employee.Core.Controllers
|
||||
MessageService.Send(MessageAction.UserUnlinkedSocialAccount, GetMeaningfulProviderName(provider));
|
||||
}
|
||||
|
||||
[AllowAnonymous]
|
||||
[Create("thirdparty/signup")]
|
||||
public void SignupAccountFromBody([FromBody] LinkAccountModel model)
|
||||
{
|
||||
LinkAccount(model);
|
||||
}
|
||||
|
||||
[AllowAnonymous]
|
||||
[Update("thirdparty/linkaccount")]
|
||||
[Consumes("application/x-www-form-urlencoded")]
|
||||
public void SignupAccountFromForm([FromForm] LinkAccountModel model)
|
||||
{
|
||||
LinkAccount(model);
|
||||
}
|
||||
|
||||
public void SignupAccount(SignupAccountModel model)
|
||||
{
|
||||
var employeeType = model.EmplType ?? EmployeeType.User;
|
||||
var passwordHash = model.PasswordHash;
|
||||
var mustChangePassword = false;
|
||||
|
||||
if (string.IsNullOrEmpty(passwordHash))
|
||||
{
|
||||
passwordHash = UserManagerWrapper.GeneratePassword();
|
||||
mustChangePassword = true;
|
||||
}
|
||||
|
||||
var thirdPartyProfile = new LoginProfile(Signature, InstanceCrypto, model.SerializedProfile);
|
||||
var newUser = CreateNewUser(GetFirstName(model, thirdPartyProfile), GetLastName(model, thirdPartyProfile), GetEmailAddress(model, thirdPartyProfile), passwordHash, employeeType, false);
|
||||
|
||||
var messageAction = employeeType == EmployeeType.User ? MessageAction.UserCreatedViaInvite : MessageAction.GuestCreatedViaInvite;
|
||||
MessageService.Send(MessageInitiator.System, messageAction, MessageTarget.Create(newUser.ID), newUser.DisplayUserName(false, DisplayUserSettingsHelper));
|
||||
|
||||
var userID = newUser.ID;
|
||||
if (!string.IsNullOrEmpty(thirdPartyProfile.Avatar))
|
||||
{
|
||||
SaveContactImage(userID, thirdPartyProfile.Avatar);
|
||||
}
|
||||
|
||||
GetLinker().AddLink(userID.ToString(), thirdPartyProfile);
|
||||
|
||||
var user = UserManager.GetUsers(userID);
|
||||
var cookiesKey = SecurityContext.AuthenticateMe(user.Email, passwordHash);
|
||||
CookiesManager.SetCookies(CookiesType.AuthKey, cookiesKey);
|
||||
MessageService.Send(MessageAction.LoginSuccess);
|
||||
StudioNotifyService.UserHasJoin();
|
||||
|
||||
if (mustChangePassword)
|
||||
{
|
||||
StudioNotifyService.UserPasswordChange(user);
|
||||
}
|
||||
|
||||
UserHelpTourHelper.IsNewUser = true;
|
||||
if (CoreBaseSettings.Personal)
|
||||
PersonalSettingsHelper.IsNewUser = true;
|
||||
}
|
||||
|
||||
protected string GetEmailAddress(SignupAccountModel model)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(model.Email))
|
||||
return model.Email.Trim();
|
||||
|
||||
return string.Empty;
|
||||
}
|
||||
|
||||
private string GetEmailAddress(SignupAccountModel model, LoginProfile account)
|
||||
{
|
||||
var value = GetEmailAddress(model);
|
||||
return string.IsNullOrEmpty(value) ? account.EMail : value;
|
||||
}
|
||||
|
||||
protected string GetFirstName(SignupAccountModel model)
|
||||
{
|
||||
var value = string.Empty;
|
||||
if (!string.IsNullOrEmpty(model.FirstName)) value = model.FirstName.Trim();
|
||||
return HtmlUtil.GetText(value);
|
||||
}
|
||||
|
||||
private string GetFirstName(SignupAccountModel model, LoginProfile account)
|
||||
{
|
||||
var value = GetFirstName(model);
|
||||
return string.IsNullOrEmpty(value) ? account.FirstName : value;
|
||||
}
|
||||
|
||||
protected string GetLastName(SignupAccountModel model)
|
||||
{
|
||||
var value = string.Empty;
|
||||
if (!string.IsNullOrEmpty(model.LastName)) value = model.LastName.Trim();
|
||||
return HtmlUtil.GetText(value);
|
||||
}
|
||||
|
||||
private string GetLastName(SignupAccountModel model, LoginProfile account)
|
||||
{
|
||||
var value = GetLastName(model);
|
||||
return string.IsNullOrEmpty(value) ? account.LastName : value;
|
||||
}
|
||||
|
||||
private UserInfo CreateNewUser(string firstName, string lastName, string email, string passwordHash, EmployeeType employeeType, bool fromInviteLink)
|
||||
{
|
||||
var isVisitor = employeeType == EmployeeType.Visitor;
|
||||
|
||||
if (SetupInfo.IsSecretEmail(email))
|
||||
{
|
||||
fromInviteLink = false;
|
||||
}
|
||||
|
||||
var userInfo = new UserInfo
|
||||
{
|
||||
FirstName = string.IsNullOrEmpty(firstName) ? UserControlsCommonResource.UnknownFirstName : firstName,
|
||||
LastName = string.IsNullOrEmpty(lastName) ? UserControlsCommonResource.UnknownLastName : lastName,
|
||||
Email = email,
|
||||
};
|
||||
|
||||
if (CoreBaseSettings.Personal)
|
||||
{
|
||||
userInfo.ActivationStatus = EmployeeActivationStatus.Activated;
|
||||
userInfo.CultureName = CoreBaseSettings.CustomMode ? "ru-RU" : Thread.CurrentThread.CurrentUICulture.Name;
|
||||
}
|
||||
|
||||
return UserManagerWrapper.AddUser(userInfo, passwordHash, true, true, isVisitor, fromInviteLink);
|
||||
}
|
||||
|
||||
private void SaveContactImage(Guid userID, string url)
|
||||
{
|
||||
using (var memstream = new MemoryStream())
|
||||
{
|
||||
var req = WebRequest.Create(url);
|
||||
using (var response = req.GetResponse())
|
||||
using (var stream = response.GetResponseStream())
|
||||
{
|
||||
var buffer = new byte[512];
|
||||
int bytesRead;
|
||||
while ((bytesRead = stream.Read(buffer, 0, buffer.Length)) > 0)
|
||||
memstream.Write(buffer, 0, bytesRead);
|
||||
var bytes = memstream.ToArray();
|
||||
|
||||
UserPhotoManager.SaveOrUpdatePhoto(userID, bytes);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private AccountLinker GetLinker()
|
||||
{
|
||||
return AccountLinker.Get("webstudio");
|
||||
|
@ -1,7 +1,18 @@
|
||||
namespace ASC.People.Models
|
||||
using ASC.Core.Users;
|
||||
|
||||
namespace ASC.People.Models
|
||||
{
|
||||
public class LinkAccountModel
|
||||
{
|
||||
public string SerializedProfile{get;set;}
|
||||
public string SerializedProfile { get; set; }
|
||||
}
|
||||
|
||||
public class SignupAccountModel: LinkAccountModel
|
||||
{
|
||||
public EmployeeType? EmplType { get; set; }
|
||||
public string FirstName { get; set; }
|
||||
public string LastName { get; set; }
|
||||
public string Email { get; set; }
|
||||
public string PasswordHash { get; set; }
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user