mirror of
https://github.com/bitwarden/server.git
synced 2025-02-23 03:01:23 +01:00
handle distinct selections from app code
This commit is contained in:
parent
4d298b9cf8
commit
c7c5ae8f9a
@ -57,7 +57,8 @@ namespace Bit.Core.Repositories.SqlServer
|
|||||||
new { UserId = userId },
|
new { UserId = userId },
|
||||||
commandType: CommandType.StoredProcedure);
|
commandType: CommandType.StoredProcedure);
|
||||||
|
|
||||||
return results.ToList();
|
// Return distinct Id results
|
||||||
|
return results.GroupBy(c => c.Id).Select(g => g.First()).ToList();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -70,7 +71,8 @@ namespace Bit.Core.Repositories.SqlServer
|
|||||||
new { UserId = userId },
|
new { UserId = userId },
|
||||||
commandType: CommandType.StoredProcedure);
|
commandType: CommandType.StoredProcedure);
|
||||||
|
|
||||||
return results.ToList();
|
// Return distinct Id results
|
||||||
|
return results.GroupBy(c => c.Id).Select(g => g.First()).ToList();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -87,7 +89,8 @@ namespace Bit.Core.Repositories.SqlServer
|
|||||||
},
|
},
|
||||||
commandType: CommandType.StoredProcedure);
|
commandType: CommandType.StoredProcedure);
|
||||||
|
|
||||||
return results.ToList();
|
// Return distinct Id results
|
||||||
|
return results.GroupBy(c => c.Id).Select(g => g.First()).ToList();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -5,18 +5,18 @@ AS
|
|||||||
BEGIN
|
BEGIN
|
||||||
SET NOCOUNT ON
|
SET NOCOUNT ON
|
||||||
|
|
||||||
SELECT DISTINCT
|
SELECT TOP 1
|
||||||
C.*
|
C.*
|
||||||
FROM
|
FROM
|
||||||
[dbo].[CipherDetails](@UserId) C
|
[dbo].[CipherDetails](@UserId) C
|
||||||
LEFT JOIN
|
LEFT JOIN
|
||||||
[dbo].[SubvaultCipher] SC ON SC.[CipherId] = C.[Id]
|
[dbo].[SubvaultCipher] SC ON C.[UserId] IS NULL AND SC.[CipherId] = C.[Id]
|
||||||
LEFT JOIN
|
LEFT JOIN
|
||||||
[dbo].[SubvaultUser] SU ON SU.[SubvaultId] = SC.[SubvaultId]
|
[dbo].[SubvaultUser] SU ON SU.[SubvaultId] = SC.[SubvaultId]
|
||||||
LEFT JOIN
|
LEFT JOIN
|
||||||
[dbo].[OrganizationUser] OU ON OU.[Id] = SU.[OrganizationUserId]
|
[dbo].[OrganizationUser] OU ON OU.[Id] = SU.[OrganizationUserId]
|
||||||
LEFT JOIN
|
LEFT JOIN
|
||||||
[dbo].[Organization] O ON O.[Id] = C.[OrganizationId]
|
[dbo].[Organization] O ON C.[UserId] IS NULL AND O.[Id] = C.[OrganizationId]
|
||||||
WHERE
|
WHERE
|
||||||
C.Id = @Id
|
C.Id = @Id
|
||||||
AND (
|
AND (
|
||||||
|
@ -5,18 +5,18 @@ AS
|
|||||||
BEGIN
|
BEGIN
|
||||||
SET NOCOUNT ON
|
SET NOCOUNT ON
|
||||||
|
|
||||||
SELECT DISTINCT
|
SELECT
|
||||||
C.*
|
C.*
|
||||||
FROM
|
FROM
|
||||||
[dbo].[CipherDetails](@UserId) C
|
[dbo].[CipherDetails](@UserId) C
|
||||||
LEFT JOIN
|
LEFT JOIN
|
||||||
[dbo].[SubvaultCipher] SC ON SC.[CipherId] = C.[Id]
|
[dbo].[SubvaultCipher] SC ON C.[UserId] IS NULL AND SC.[CipherId] = C.[Id]
|
||||||
LEFT JOIN
|
LEFT JOIN
|
||||||
[dbo].[SubvaultUser] SU ON SU.[SubvaultId] = SC.[SubvaultId]
|
[dbo].[SubvaultUser] SU ON SU.[SubvaultId] = SC.[SubvaultId]
|
||||||
LEFT JOIN
|
LEFT JOIN
|
||||||
[dbo].[OrganizationUser] OU ON OU.[Id] = SU.[OrganizationUserId]
|
[dbo].[OrganizationUser] OU ON OU.[Id] = SU.[OrganizationUserId]
|
||||||
LEFT JOIN
|
LEFT JOIN
|
||||||
[dbo].[Organization] O ON O.[Id] = C.[OrganizationId]
|
[dbo].[Organization] O ON C.[UserId] IS NULL AND O.[Id] = C.[OrganizationId]
|
||||||
WHERE
|
WHERE
|
||||||
C.[Type] = @Type
|
C.[Type] = @Type
|
||||||
AND (
|
AND (
|
||||||
|
@ -4,7 +4,7 @@ AS
|
|||||||
BEGIN
|
BEGIN
|
||||||
SET NOCOUNT ON
|
SET NOCOUNT ON
|
||||||
|
|
||||||
SELECT DISTINCT
|
SELECT
|
||||||
C.*
|
C.*
|
||||||
FROM
|
FROM
|
||||||
[dbo].[CipherDetails](@UserId) C
|
[dbo].[CipherDetails](@UserId) C
|
||||||
@ -15,7 +15,7 @@ BEGIN
|
|||||||
LEFT JOIN
|
LEFT JOIN
|
||||||
[dbo].[OrganizationUser] OU ON OU.[Id] = SU.[OrganizationUserId]
|
[dbo].[OrganizationUser] OU ON OU.[Id] = SU.[OrganizationUserId]
|
||||||
LEFT JOIN
|
LEFT JOIN
|
||||||
[dbo].[Organization] O ON O.[Id] = C.[OrganizationId]
|
[dbo].[Organization] O ON C.[UserId] IS NULL AND O.[Id] = C.[OrganizationId]
|
||||||
WHERE
|
WHERE
|
||||||
C.[UserId] = @UserId
|
C.[UserId] = @UserId
|
||||||
OR (
|
OR (
|
||||||
|
@ -4,18 +4,18 @@ AS
|
|||||||
BEGIN
|
BEGIN
|
||||||
SET NOCOUNT ON
|
SET NOCOUNT ON
|
||||||
|
|
||||||
SELECT DISTINCT
|
SELECT
|
||||||
C.*
|
C.*
|
||||||
FROM
|
FROM
|
||||||
[dbo].[CipherDetails](@UserId) C
|
[dbo].[CipherDetails](@UserId) C
|
||||||
INNER JOIN
|
INNER JOIN
|
||||||
[dbo].[SubvaultCipher] SC ON SC.[CipherId] = C.[Id]
|
[dbo].[SubvaultCipher] SC ON C.[UserId] IS NULL AND SC.[CipherId] = C.[Id]
|
||||||
INNER JOIN
|
INNER JOIN
|
||||||
[dbo].[SubvaultUser] SU ON SU.[SubvaultId] = SC.[SubvaultId]
|
[dbo].[SubvaultUser] SU ON SU.[SubvaultId] = SC.[SubvaultId]
|
||||||
INNER JOIN
|
INNER JOIN
|
||||||
[dbo].[OrganizationUser] OU ON OU.[Id] = SU.[OrganizationUserId]
|
[dbo].[OrganizationUser] OU ON OU.[Id] = SU.[OrganizationUserId]
|
||||||
INNER JOIN
|
INNER JOIN
|
||||||
[dbo].[Organization] O ON O.[Id] = C.[OrganizationId]
|
[dbo].[Organization] O ON C.[UserId] IS NULL AND O.[Id] = C.[OrganizationId]
|
||||||
WHERE
|
WHERE
|
||||||
OU.[UserId] = @UserId
|
OU.[UserId] = @UserId
|
||||||
AND OU.[Status] = 2 -- 2 = Confirmed
|
AND OU.[Status] = 2 -- 2 = Confirmed
|
||||||
|
@ -5,7 +5,7 @@ AS
|
|||||||
BEGIN
|
BEGIN
|
||||||
SET NOCOUNT ON
|
SET NOCOUNT ON
|
||||||
|
|
||||||
SELECT DISTINCT
|
SELECT TOP 1
|
||||||
C.*,
|
C.*,
|
||||||
CASE
|
CASE
|
||||||
WHEN C.[OrganizationId] IS NULL THEN 1
|
WHEN C.[OrganizationId] IS NULL THEN 1
|
||||||
@ -14,13 +14,13 @@ BEGIN
|
|||||||
FROM
|
FROM
|
||||||
[dbo].[CipherDetails](@UserId) C
|
[dbo].[CipherDetails](@UserId) C
|
||||||
LEFT JOIN
|
LEFT JOIN
|
||||||
[dbo].[SubvaultCipher] SC ON SC.[CipherId] = C.[Id]
|
[dbo].[SubvaultCipher] SC ON C.[UserId] IS NULL AND SC.[CipherId] = C.[Id]
|
||||||
LEFT JOIN
|
LEFT JOIN
|
||||||
[dbo].[SubvaultUser] SU ON SU.[SubvaultId] = SC.[SubvaultId]
|
[dbo].[SubvaultUser] SU ON SU.[SubvaultId] = SC.[SubvaultId]
|
||||||
LEFT JOIN
|
LEFT JOIN
|
||||||
[dbo].[OrganizationUser] OU ON OU.[Id] = SU.[OrganizationUserId]
|
[dbo].[OrganizationUser] OU ON OU.[Id] = SU.[OrganizationUserId]
|
||||||
LEFT JOIN
|
LEFT JOIN
|
||||||
[dbo].[Organization] O ON O.[Id] = C.[OrganizationId]
|
[dbo].[Organization] O ON C.[UserId] IS NULL AND O.[Id] = C.[OrganizationId]
|
||||||
WHERE
|
WHERE
|
||||||
C.Id = @Id
|
C.Id = @Id
|
||||||
AND (
|
AND (
|
||||||
|
Loading…
Reference in New Issue
Block a user