diff --git a/.github/workflows/4testing-multi-build.yml b/.github/workflows/4testing-multi-build.yml index dcece9a67a..11a7cd47de 100644 --- a/.github/workflows/4testing-multi-build.yml +++ b/.github/workflows/4testing-multi-build.yml @@ -2,7 +2,7 @@ name: 4testing multiarch-build on: push: - branches: [ "develop" ] + branches: [ "release/rc-v1.2.0" ] jobs: build: @@ -33,10 +33,10 @@ jobs: cd ./build/install/docker REPO="onlyoffice" \ DOCKER_IMAGE_PREFIX="4testing-docspace" \ - DOCKER_TAG="develop" \ + DOCKER_TAG="rc-v1.2.0" \ DOCKERFILE="Dockerfile.app" \ docker buildx bake -f build.yml \ - --set *.args.GIT_BRANCH="develop" \ + --set *.args.GIT_BRANCH="release/rc-v1.2.0" \ --set *.platform=linux/amd64 \ --push shell: bash diff --git a/build/build.document.server.docker.bat b/build/build.document.server.docker.bat new file mode 100644 index 0000000000..2af3d4fa50 --- /dev/null +++ b/build/build.document.server.docker.bat @@ -0,0 +1,7 @@ +@echo off + +pwsh %~dp0/build.document.server.docker.ps1 %1 + +echo. + +pause \ No newline at end of file diff --git a/build/build.document.server.docker.ps1 b/build/build.document.server.docker.ps1 new file mode 100644 index 0000000000..64de00bbf6 --- /dev/null +++ b/build/build.document.server.docker.ps1 @@ -0,0 +1,15 @@ +$PSversionMajor = $PSVersionTable.PSVersion | sort-object major | ForEach-Object { $_.major } +$PSversionMinor = $PSVersionTable.PSVersion | sort-object minor | ForEach-Object { $_.minor } + +if ($PSversionMajor -lt 7 -or $PSversionMinor -lt 2) { + Write-Error "Powershell version must be greater than or equal to 7.2." + exit +} + +$RootDir = Split-Path -Parent $PSScriptRoot + +Write-Host "Run Document server" -ForegroundColor Green +$DOCUMENT_SERVER_IMAGE_NAME = "onlyoffice/documentserver-de:latest" + + +docker run -i -t -d -p 8085:80 -e JWT_ENABLED=false -e JWT_IN_BODY=false --restart=always -v $RootDir/Data:/var/www/onlyoffice/Data $DOCUMENT_SERVER_IMAGE_NAME \ No newline at end of file diff --git a/common/ASC.Core.Common/Context/SecurityContext.cs b/common/ASC.Core.Common/Context/SecurityContext.cs index 209ce050ca..70476df0fe 100644 --- a/common/ASC.Core.Common/Context/SecurityContext.cs +++ b/common/ASC.Core.Common/Context/SecurityContext.cs @@ -161,8 +161,9 @@ public class SecurityContext return false; } - var settingLoginEvents = await _dbLoginEventsManager.GetLoginEventIds(tenant, userid); - if (loginEventId != 0 && !settingLoginEvents.Contains(loginEventId)) + var loginEventById = await _dbLoginEventsManager.GetById(loginEventId); + + if (loginEventById == null) { return false; } diff --git a/common/ASC.Core.Common/Data/DbLoginEventsManager.cs b/common/ASC.Core.Common/Data/DbLoginEventsManager.cs index 0553efd5e4..a43971ba07 100644 --- a/common/ASC.Core.Common/Data/DbLoginEventsManager.cs +++ b/common/ASC.Core.Common/Data/DbLoginEventsManager.cs @@ -24,6 +24,8 @@ // content are licensed under the terms of the Creative Commons Attribution-ShareAlike 4.0 // International. See the License terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode +using System.ComponentModel; + namespace ASC.Core.Data; [Scope] @@ -61,26 +63,22 @@ public class DbLoginEventsManager _dbContextFactory = dbContextFactory; _mapper = mapper; } - - public async Task> GetLoginEventIds(int tenantId, Guid userId) + + public async Task GetById(int id) { - var date = DateTime.UtcNow.AddYears(-1); + if (id < 0) return null; - using var loginEventContext = _dbContextFactory.CreateDbContext(); - - var resultList = await loginEventContext.LoginEvents - .Where(r => r.TenantId == tenantId && r.UserId == userId && _loginActions.Contains(r.Action ?? 0) && r.Date >= date && r.Active) - .Select(r => r.Id) - .ToListAsync(); - - return resultList; - } + using var loginEventContext = await _dbContextFactory.CreateDbContextAsync(); + + return await loginEventContext.LoginEvents.FindAsync(id); + } public async Task> GetLoginEvents(int tenantId, Guid userId) { var date = DateTime.UtcNow.AddYears(-1); - using var loginEventContext = _dbContextFactory.CreateDbContext(); + using var loginEventContext = await _dbContextFactory.CreateDbContextAsync(); + var loginInfo = await loginEventContext.LoginEvents .Where(r => r.TenantId == tenantId && r.UserId == userId && _loginActions.Contains(r.Action ?? 0) && r.Date >= date && r.Active) .OrderByDescending(r => r.Id) @@ -91,7 +89,8 @@ public class DbLoginEventsManager public async Task LogOutEvent(int loginEventId) { - using var loginEventContext = _dbContextFactory.CreateDbContext(); + using var loginEventContext = await _dbContextFactory.CreateDbContextAsync(); + var events = await loginEventContext.LoginEvents .Where(r => r.Id == loginEventId) .ToListAsync(); @@ -108,7 +107,8 @@ public class DbLoginEventsManager public async Task LogOutAllActiveConnections(int tenantId, Guid userId) { - using var loginEventContext = _dbContextFactory.CreateDbContext(); + using var loginEventContext = await _dbContextFactory.CreateDbContextAsync(); + var events = await loginEventContext.LoginEvents .Where(r => r.TenantId == tenantId && r.UserId == userId && r.Active) .ToListAsync(); @@ -125,7 +125,8 @@ public class DbLoginEventsManager public async Task LogOutAllActiveConnectionsForTenant(int tenantId) { - using var loginEventContext = _dbContextFactory.CreateDbContext(); + using var loginEventContext = await _dbContextFactory.CreateDbContextAsync(); + var events = await loginEventContext.LoginEvents .Where(r => r.TenantId == tenantId && r.Active) .ToListAsync(); @@ -140,7 +141,8 @@ public class DbLoginEventsManager public async Task LogOutAllActiveConnectionsExceptThis(int loginEventId, int tenantId, Guid userId) { - using var loginEventContext = _dbContextFactory.CreateDbContext(); + using var loginEventContext = await _dbContextFactory.CreateDbContextAsync(); + var events = await loginEventContext.LoginEvents .Where(r => r.TenantId == tenantId && r.UserId == userId && r.Id != loginEventId && r.Active) .ToListAsync(); diff --git a/common/ASC.Data.Backup.Core/ASC.Data.Backup.Core.csproj b/common/ASC.Data.Backup.Core/ASC.Data.Backup.Core.csproj index 1eac7b1f20..81af2639fb 100644 --- a/common/ASC.Data.Backup.Core/ASC.Data.Backup.Core.csproj +++ b/common/ASC.Data.Backup.Core/ASC.Data.Backup.Core.csproj @@ -19,7 +19,7 @@ all runtime; build; native; contentfiles; analyzers; buildtransitive - + diff --git a/config/appsettings.json b/config/appsettings.json index 793ba91918..0f4acdaffa 100644 --- a/config/appsettings.json +++ b/config/appsettings.json @@ -125,7 +125,7 @@ "ConnectionStrings": { "default": { "name": "default", - "connectionString": "Server=localhost;Database=onlyoffice;User ID=dev;Password=dev;Pooling=true;Character Set=utf8;AutoEnlist=false;SSL Mode=none;AllowPublicKeyRetrieval=True;ConnectionReset=false", + "connectionString": "Server=localhost;Database=onlyoffice;User ID=dev;Password=dev;Pooling=true;Character Set=utf8;AutoEnlist=false;SSL Mode=none;AllowPublicKeyRetrieval=True;Connection Timeout=30;Maximum Pool Size=300;ConnectionReset=false", "providerName": "MySql.Data.MySqlClient" }, "postgre": { @@ -135,7 +135,7 @@ }, "mysql": { "name": "mysql", - "connectionString": "Server=localhost;Database=onlyoffice;User ID=dev;Password=dev;Pooling=true;Character Set=utf8;AutoEnlist=false;SSL Mode=none;AllowPublicKeyRetrieval=True;ConnectionReset=false", + "connectionString": "Server=localhost;Database=onlyoffice;User ID=dev;Password=dev;Pooling=true;Character Set=utf8;AutoEnlist=false;SSL Mode=none;AllowPublicKeyRetrieval=True;Connection Timeout=30;Maximum Pool Size=300;ConnectionReset=false", "providerName": "MySql.Data.MySqlClient" } }, diff --git a/packages/client/src/components/dialogs/ArchiveDialog/index.js b/packages/client/src/components/dialogs/ArchiveDialog/index.js index b3bab75d72..8f2f16928d 100644 --- a/packages/client/src/components/dialogs/ArchiveDialog/index.js +++ b/packages/client/src/components/dialogs/ArchiveDialog/index.js @@ -89,6 +89,14 @@ const ArchiveDialogComponent = (props) => { const acceptButton = action === "archive" ? t("Common:OKButton") : t("Common:Restore"); + const isArchive = action === "archive"; + const idButtonSubmit = isArchive + ? "shared_move-to-archived-modal_submit" + : "restore-all_submit"; + const idButtonCancel = isArchive + ? "shared_move-to-archived-modal_cancel" + : "restore-all_cancel"; + return ( {