mirror of
https://github.com/bitwarden/server.git
synced 2025-07-01 08:02:49 -05:00
[AC-1682] MySql migrations
This commit is contained in:
@ -1,26 +1,21 @@
|
||||
-- Update existing rows in CollectionUsers
|
||||
UPDATE CollectionUsers AS target
|
||||
INNER JOIN (
|
||||
SELECT C.Id AS CollectionId, T.OrganizationUserId
|
||||
FROM Collection C
|
||||
INNER JOIN OrganizationUser T ON C.OrganizationId = T.OrganizationId
|
||||
WHERE T.AccessAll = 1
|
||||
) AS source
|
||||
ON target.CollectionId = source.CollectionId AND target.OrganizationUserId = source.OrganizationUserId
|
||||
INNER JOIN Collection AS C ON target.CollectionId = C.Id
|
||||
INNER JOIN OrganizationUser AS OU ON C.OrganizationId = OU.OrganizationId
|
||||
SET
|
||||
target.ReadOnly = 0,
|
||||
target.HidePasswords = 0,
|
||||
target.Manage = 0;
|
||||
target.Manage = 0
|
||||
WHERE OU.AccessAll = 1;
|
||||
|
||||
-- Insert new rows into CollectionUsers
|
||||
INSERT INTO CollectionUsers (CollectionId, OrganizationUserId, ReadOnly, HidePasswords, Manage)
|
||||
SELECT source.CollectionId, source.OrganizationUserId, 0, 0, 0
|
||||
FROM (
|
||||
SELECT C.Id AS CollectionId, T.OrganizationUserId
|
||||
FROM Collection C
|
||||
INNER JOIN OrganizationUser T ON C.OrganizationId = T.OrganizationId
|
||||
WHERE T.AccessAll = 1
|
||||
) AS source
|
||||
LEFT JOIN CollectionUsers AS target
|
||||
ON target.CollectionId = source.CollectionId AND target.OrganizationUserId = source.OrganizationUserId
|
||||
WHERE target.CollectionId IS NULL;
|
||||
SELECT C.Id AS CollectionId, OU.Id AS OrganizationUserId, 0, 0, 0
|
||||
FROM Collection AS C
|
||||
INNER JOIN OrganizationUser AS OU ON C.OrganizationId = OU.OrganizationId
|
||||
WHERE OU.AccessAll = 1
|
||||
AND NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM CollectionUsers AS CU
|
||||
WHERE CU.CollectionId = C.Id AND CU.OrganizationUserId = OU.Id
|
||||
);
|
||||
|
2322
util/MySqlMigrations/Migrations/20231219154701_FCAccessAllCollectionGroups.Designer.cs
generated
Normal file
2322
util/MySqlMigrations/Migrations/20231219154701_FCAccessAllCollectionGroups.Designer.cs
generated
Normal file
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,21 @@
|
||||
using Bit.Core.Utilities;
|
||||
using Microsoft.EntityFrameworkCore.Migrations;
|
||||
|
||||
#nullable disable
|
||||
|
||||
namespace Bit.MySqlMigrations.Migrations;
|
||||
|
||||
public partial class FCAccessAllCollectionGroups : Migration
|
||||
{
|
||||
private const string _accessAllCollectionGroupsScript = "MySqlMigrations.HelperScripts.2023-12-06_00_AccessAllCollectionGroups.sql";
|
||||
|
||||
protected override void Up(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
migrationBuilder.Sql(CoreHelpers.GetEmbeddedResourceContentsAsync(_accessAllCollectionGroupsScript));
|
||||
}
|
||||
|
||||
protected override void Down(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
throw new Exception("Irreversible migration");
|
||||
}
|
||||
}
|
@ -11,8 +11,8 @@ using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
|
||||
namespace Bit.MySqlMigrations.Migrations
|
||||
{
|
||||
[DbContext(typeof(DatabaseContext))]
|
||||
[Migration("20231217125557_FlexibleCollections")]
|
||||
partial class FlexibleCollections
|
||||
[Migration("20231219154733_FCAccessAllCollectionUsers")]
|
||||
partial class FCAccessAllCollectionUsers
|
||||
{
|
||||
/// <inheritdoc />
|
||||
protected override void BuildTargetModel(ModelBuilder modelBuilder)
|
@ -0,0 +1,21 @@
|
||||
using Bit.Core.Utilities;
|
||||
using Microsoft.EntityFrameworkCore.Migrations;
|
||||
|
||||
#nullable disable
|
||||
|
||||
namespace Bit.MySqlMigrations.Migrations;
|
||||
|
||||
public partial class FCAccessAllCollectionUsers : Migration
|
||||
{
|
||||
private const string _accessAllCollectionUsersScript = "MySqlMigrations.HelperScripts.2023-12-06_01_AccessAllCollectionUsers.sql";
|
||||
|
||||
protected override void Up(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
migrationBuilder.Sql(CoreHelpers.GetEmbeddedResourceContentsAsync(_accessAllCollectionUsersScript));
|
||||
}
|
||||
|
||||
protected override void Down(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
throw new Exception("Irreversible migration");
|
||||
}
|
||||
}
|
2322
util/MySqlMigrations/Migrations/20231219154825_FCManagersEditAssignedCollectionUsers.Designer.cs
generated
Normal file
2322
util/MySqlMigrations/Migrations/20231219154825_FCManagersEditAssignedCollectionUsers.Designer.cs
generated
Normal file
File diff suppressed because it is too large
Load Diff
@ -5,16 +5,12 @@ using Microsoft.EntityFrameworkCore.Migrations;
|
||||
|
||||
namespace Bit.MySqlMigrations.Migrations;
|
||||
|
||||
public partial class FlexibleCollections : Migration
|
||||
public partial class FCManagersEditAssignedCollectionUsers : Migration
|
||||
{
|
||||
private const string _accessAllCollectionGroupsScript = "MySqlMigrations.HelperScripts.2023-12-06_00_AccessAllCollectionGroups.sql";
|
||||
private const string _accessAllCollectionUsersScript = "MySqlMigrations.HelperScripts.2023-12-06_01_AccessAllCollectionUsers.sql";
|
||||
private const string _managersEditAssignedCollectionUsersScript = "MySqlMigrations.HelperScripts.2023-12-06_02_ManagersEditAssignedCollectionUsers.sql";
|
||||
|
||||
protected override void Up(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
migrationBuilder.Sql(CoreHelpers.GetEmbeddedResourceContentsAsync(_accessAllCollectionGroupsScript));
|
||||
migrationBuilder.Sql(CoreHelpers.GetEmbeddedResourceContentsAsync(_accessAllCollectionUsersScript));
|
||||
migrationBuilder.Sql(CoreHelpers.GetEmbeddedResourceContentsAsync(_managersEditAssignedCollectionUsersScript));
|
||||
}
|
||||
|
Reference in New Issue
Block a user