From aac2a388e25fbe04471ef41b7b036a8612aa0c46 Mon Sep 17 00:00:00 2001 From: SuhorukovAnton Date: Mon, 9 Jan 2023 17:45:11 +0300 Subject: [PATCH] fix migration: set userGroup before migration and remove "RemoveGeneralBunchObjects" --- .../MigrationCreator.cs | 17 --------------- .../MigrationRunner.cs | 21 +++++++++++++++++++ 2 files changed, 21 insertions(+), 17 deletions(-) diff --git a/common/Tools/ASC.MigrationPersonalToDocspace/MigrationCreator.cs b/common/Tools/ASC.MigrationPersonalToDocspace/MigrationCreator.cs index 1b00c02012..517c65e607 100644 --- a/common/Tools/ASC.MigrationPersonalToDocspace/MigrationCreator.cs +++ b/common/Tools/ASC.MigrationPersonalToDocspace/MigrationCreator.cs @@ -162,11 +162,6 @@ public class MigrationCreator ChangeAlias(data); ChangeName(data); } - - if (data.TableName == "files_bunch_objects") - { - RemoveGeneralBunchObjects(data); - } using (var file = _tempStream.Create()) { @@ -206,18 +201,6 @@ public class MigrationCreator } var q = data.Rows[0]; data.Rows[0]["alias"] = newAlias; - } - - private void RemoveGeneralBunchObjects(DataTable data) - { - for(var i = 0; i < data.Rows.Count; i++) - { - if (data.Rows[i]["right_node"].ToString().EndsWith('/')) - { - data.Rows.RemoveAt(i); - i--; - } - } } private List GetAliases() diff --git a/common/Tools/ASC.MigrationPersonalToDocspace/MigrationRunner.cs b/common/Tools/ASC.MigrationPersonalToDocspace/MigrationRunner.cs index e36a4e141e..5def31d5a8 100644 --- a/common/Tools/ASC.MigrationPersonalToDocspace/MigrationRunner.cs +++ b/common/Tools/ASC.MigrationPersonalToDocspace/MigrationRunner.cs @@ -81,6 +81,7 @@ public class MigrationRunner await DoRestoreStorage(dataReader, columnMapper); + SetAdmin(columnMapper.GetTenantMapping()); SetTenantActive(columnMapper.GetTenantMapping()); } } @@ -145,5 +146,25 @@ public class MigrationRunner tenant.StatusChanged = DateTime.UtcNow; dbContext.Tenants.Update(tenant); dbContext.SaveChanges(); + } + + private void SetAdmin(int tenantId) + { + using var dbContextTenant = _dbFactory.CreateDbContext(_region); + var tenant = dbContextTenant.Tenants.Single(t => t.Id == tenantId); + + var userGroup = new UserGroup() + { + Tenant = tenantId, + LastModified = DateTime.UtcNow, + RefType = Core.UserGroupRefType.Contains, + Removed = false, + UserGroupId = ASC.Common.Security.Authorizing.Constants.DocSpaceAdmin.ID, + Userid = tenant.OwnerId.Value + }; + + using var dbContextUser = _dbFactory.CreateDbContext(_region); + dbContextUser.UserGroups.Update(userGroup); + dbContextUser.SaveChanges(); } }