mirror of
https://github.com/bitwarden/server.git
synced 2025-07-02 00:22:50 -05:00
[AC-1682] MySql migrations
This commit is contained in:
@ -1,26 +1,21 @@
|
|||||||
-- Update existing rows in CollectionUsers
|
-- Update existing rows in CollectionUsers
|
||||||
UPDATE CollectionUsers AS target
|
UPDATE CollectionUsers AS target
|
||||||
INNER JOIN (
|
INNER JOIN Collection AS C ON target.CollectionId = C.Id
|
||||||
SELECT C.Id AS CollectionId, T.OrganizationUserId
|
INNER JOIN OrganizationUser AS OU ON C.OrganizationId = OU.OrganizationId
|
||||||
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
|
|
||||||
SET
|
SET
|
||||||
target.ReadOnly = 0,
|
target.ReadOnly = 0,
|
||||||
target.HidePasswords = 0,
|
target.HidePasswords = 0,
|
||||||
target.Manage = 0;
|
target.Manage = 0
|
||||||
|
WHERE OU.AccessAll = 1;
|
||||||
|
|
||||||
-- Insert new rows into CollectionUsers
|
-- Insert new rows into CollectionUsers
|
||||||
INSERT INTO CollectionUsers (CollectionId, OrganizationUserId, ReadOnly, HidePasswords, Manage)
|
INSERT INTO CollectionUsers (CollectionId, OrganizationUserId, ReadOnly, HidePasswords, Manage)
|
||||||
SELECT source.CollectionId, source.OrganizationUserId, 0, 0, 0
|
SELECT C.Id AS CollectionId, OU.Id AS OrganizationUserId, 0, 0, 0
|
||||||
FROM (
|
FROM Collection AS C
|
||||||
SELECT C.Id AS CollectionId, T.OrganizationUserId
|
INNER JOIN OrganizationUser AS OU ON C.OrganizationId = OU.OrganizationId
|
||||||
FROM Collection C
|
WHERE OU.AccessAll = 1
|
||||||
INNER JOIN OrganizationUser T ON C.OrganizationId = T.OrganizationId
|
AND NOT EXISTS (
|
||||||
WHERE T.AccessAll = 1
|
SELECT 1
|
||||||
) AS source
|
FROM CollectionUsers AS CU
|
||||||
LEFT JOIN CollectionUsers AS target
|
WHERE CU.CollectionId = C.Id AND CU.OrganizationUserId = OU.Id
|
||||||
ON target.CollectionId = source.CollectionId AND target.OrganizationUserId = source.OrganizationUserId
|
);
|
||||||
WHERE target.CollectionId IS NULL;
|
|
||||||
|
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
|
namespace Bit.MySqlMigrations.Migrations
|
||||||
{
|
{
|
||||||
[DbContext(typeof(DatabaseContext))]
|
[DbContext(typeof(DatabaseContext))]
|
||||||
[Migration("20231217125557_FlexibleCollections")]
|
[Migration("20231219154733_FCAccessAllCollectionUsers")]
|
||||||
partial class FlexibleCollections
|
partial class FCAccessAllCollectionUsers
|
||||||
{
|
{
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
protected override void BuildTargetModel(ModelBuilder modelBuilder)
|
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;
|
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";
|
private const string _managersEditAssignedCollectionUsersScript = "MySqlMigrations.HelperScripts.2023-12-06_02_ManagersEditAssignedCollectionUsers.sql";
|
||||||
|
|
||||||
protected override void Up(MigrationBuilder migrationBuilder)
|
protected override void Up(MigrationBuilder migrationBuilder)
|
||||||
{
|
{
|
||||||
migrationBuilder.Sql(CoreHelpers.GetEmbeddedResourceContentsAsync(_accessAllCollectionGroupsScript));
|
|
||||||
migrationBuilder.Sql(CoreHelpers.GetEmbeddedResourceContentsAsync(_accessAllCollectionUsersScript));
|
|
||||||
migrationBuilder.Sql(CoreHelpers.GetEmbeddedResourceContentsAsync(_managersEditAssignedCollectionUsersScript));
|
migrationBuilder.Sql(CoreHelpers.GetEmbeddedResourceContentsAsync(_managersEditAssignedCollectionUsersScript));
|
||||||
}
|
}
|
||||||
|
|
Reference in New Issue
Block a user