diff --git a/src/Sql/Vault/dbo/Stored Procedures/SecurityTask/SecurityTask_ReadByUserIdStatus.sql b/src/Sql/Vault/dbo/Stored Procedures/SecurityTask/SecurityTask_ReadByUserIdStatus.sql index 870b5449c7..63d49f6d40 100644 --- a/src/Sql/Vault/dbo/Stored Procedures/SecurityTask/SecurityTask_ReadByUserIdStatus.sql +++ b/src/Sql/Vault/dbo/Stored Procedures/SecurityTask/SecurityTask_ReadByUserIdStatus.sql @@ -1,12 +1,18 @@ CREATE PROCEDURE [dbo].[SecurityTask_ReadByUserIdStatus] @UserId UNIQUEIDENTIFIER, - @Status AS [dbo].[SecurityTaskStatusArray] READONLY + @Status TINYINT = NULL AS BEGIN SET NOCOUNT ON SELECT - ST.* + ST.Id, + ST.OrganizationId, + ST.CipherId, + ST.Type, + ST.Status, + ST.CreationDate, + ST.RevisionDate FROM [dbo].[SecurityTaskView] ST INNER JOIN @@ -32,14 +38,19 @@ BEGIN OR ( C.[Id] IS NOT NULL AND ( - CU.[Manage] = 1 - OR CG.[Manage] = 1 + CU.[ReadOnly] = 0 + OR CG.[Manage] = 0 ) ) ) - AND ( - NOT EXISTS (SELECT 1 FROM @Status) - OR ST.[Status] IN (SELECT [Value] FROM @Status) - ) + AND ST.[Status] = COALESCE(@Status, ST.[Status]) + GROUP BY + ST.Id, + ST.OrganizationId, + ST.CipherId, + ST.Type, + ST.Status, + ST.CreationDate, + ST.RevisionDate ORDER BY ST.[CreationDate] DESC END diff --git a/src/Sql/dbo/User Defined Types/SecurityTasksStatusArray.sql b/src/Sql/dbo/User Defined Types/SecurityTasksStatusArray.sql deleted file mode 100644 index 4aacedd490..0000000000 --- a/src/Sql/dbo/User Defined Types/SecurityTasksStatusArray.sql +++ /dev/null @@ -1,3 +0,0 @@ -CREATE TYPE [dbo].[SecurityTaskStatusArray] AS TABLE ( - [Value] TINYINT NOT NULL); -GO diff --git a/util/Migrator/DbScripts/2024-11-21_00_SecurityTaskReadByUserIdStatus.sql b/util/Migrator/DbScripts/2024-11-21_00_SecurityTaskReadByUserIdStatus.sql index 2cea003ef1..a5760227cb 100644 --- a/util/Migrator/DbScripts/2024-11-21_00_SecurityTaskReadByUserIdStatus.sql +++ b/util/Migrator/DbScripts/2024-11-21_00_SecurityTaskReadByUserIdStatus.sql @@ -1,30 +1,20 @@ -- Security Task Read By UserId Status - --- Create SecurityTaskStatusArray Type -IF NOT EXISTS ( - SELECT - * - FROM - sys.types - WHERE - [Name] = 'SecurityTaskStatusArray' AND - is_user_defined = 1 -) -CREATE TYPE [dbo].[SecurityTaskStatusArray] AS TABLE ( - [Value] TINYINT NOT NULL -); -GO - -- Stored Procedure: ReadByUserIdStatus CREATE OR ALTER PROCEDURE [dbo].[SecurityTask_ReadByUserIdStatus] @UserId UNIQUEIDENTIFIER, - @Status AS [dbo].[SecurityTaskStatusArray] READONLY + @Status TINYINT = NULL AS BEGIN SET NOCOUNT ON SELECT - ST.* + ST.Id, + ST.OrganizationId, + ST.CipherId, + ST.Type, + ST.Status, + ST.CreationDate, + ST.RevisionDate FROM [dbo].[SecurityTaskView] ST INNER JOIN @@ -50,15 +40,20 @@ BEGIN OR ( C.[Id] IS NOT NULL AND ( - CU.[Manage] = 1 - OR CG.[Manage] = 1 + CU.[ReadOnly] = 0 + OR CG.[ReadOnly] = 0 ) ) ) - AND ( - NOT EXISTS (SELECT 1 FROM @Status) - OR ST.[Status] IN (SELECT [Value] FROM @Status) - ) + AND ST.[Status] = COALESCE(@Status, ST.[Status]) + GROUP BY + ST.Id, + ST.OrganizationId, + ST.CipherId, + ST.Type, + ST.Status, + ST.CreationDate, + ST.RevisionDate ORDER BY ST.[CreationDate] DESC END GO