mirror of
https://github.com/bitwarden/server.git
synced 2024-12-01 13:43:23 +01:00
62 lines
1.9 KiB
MySQL
62 lines
1.9 KiB
MySQL
|
-- View NotificationStatusDetailsView
|
||
|
|
||
|
IF EXISTS(SELECT *
|
||
|
FROM sys.views
|
||
|
WHERE [Name] = 'NotificationStatusDetailsView')
|
||
|
BEGIN
|
||
|
DROP VIEW [dbo].[NotificationStatusDetailsView]
|
||
|
END
|
||
|
GO
|
||
|
|
||
|
CREATE VIEW [dbo].[NotificationStatusDetailsView]
|
||
|
AS
|
||
|
SELECT
|
||
|
N.*,
|
||
|
NS.UserId AS NotificationStatusUserId,
|
||
|
NS.ReadDate,
|
||
|
NS.DeletedDate
|
||
|
FROM
|
||
|
[dbo].[Notification] AS N
|
||
|
LEFT JOIN
|
||
|
[dbo].[NotificationStatus] as NS
|
||
|
ON
|
||
|
N.[Id] = NS.[NotificationId]
|
||
|
GO
|
||
|
|
||
|
-- Stored Procedure Notification_ReadByUserIdAndStatus
|
||
|
|
||
|
CREATE OR ALTER PROCEDURE [dbo].[Notification_ReadByUserIdAndStatus]
|
||
|
@UserId UNIQUEIDENTIFIER,
|
||
|
@ClientType TINYINT,
|
||
|
@Read BIT,
|
||
|
@Deleted BIT
|
||
|
AS
|
||
|
BEGIN
|
||
|
SET NOCOUNT ON
|
||
|
|
||
|
SELECT n.*
|
||
|
FROM [dbo].[NotificationStatusDetailsView] n
|
||
|
LEFT JOIN [dbo].[OrganizationUserView] ou ON n.[OrganizationId] = ou.[OrganizationId]
|
||
|
AND ou.[UserId] = @UserId
|
||
|
WHERE (n.[NotificationStatusUserId] IS NULL OR n.[NotificationStatusUserId] = @UserId)
|
||
|
AND [ClientType] IN (0, CASE WHEN @ClientType != 0 THEN @ClientType END)
|
||
|
AND ([Global] = 1
|
||
|
OR (n.[UserId] = @UserId
|
||
|
AND (n.[OrganizationId] IS NULL
|
||
|
OR ou.[OrganizationId] IS NOT NULL))
|
||
|
OR (n.[UserId] IS NULL
|
||
|
AND ou.[OrganizationId] IS NOT NULL))
|
||
|
AND ((@Read IS NULL AND @Deleted IS NULL)
|
||
|
OR (n.[NotificationStatusUserId] IS NOT NULL
|
||
|
AND ((@Read IS NULL
|
||
|
OR IIF((@Read = 1 AND n.[ReadDate] IS NOT NULL) OR
|
||
|
(@Read = 0 AND n.[ReadDate] IS NULL),
|
||
|
1, 0) = 1)
|
||
|
OR (@Deleted IS NULL
|
||
|
OR IIF((@Deleted = 1 AND n.[DeletedDate] IS NOT NULL) OR
|
||
|
(@Deleted = 0 AND n.[DeletedDate] IS NULL),
|
||
|
1, 0) = 1))))
|
||
|
ORDER BY [Priority] DESC, n.[CreationDate] DESC
|
||
|
END
|
||
|
GO
|