1
0
mirror of https://github.com/bitwarden/server.git synced 2025-07-02 16:42:50 -05:00

user checks on read procs

This commit is contained in:
Kyle Spearrin
2017-03-21 21:13:20 -04:00
parent ed8d5d69a4
commit d266da1084
8 changed files with 50 additions and 20 deletions

View File

@ -172,5 +172,6 @@
<Build Include="dbo\Stored Procedures\SubvaultUser_ReadPermissionsBySubvaultUserId.sql" />
<Build Include="dbo\UserDefinedTypes\GuidIdArray.sql" />
<Build Include="dbo\Stored Procedures\Cipher_UpdateWithSubvaults.sql" />
<Build Include="dbo\Stored Procedures\CipherDetails_ReadByIdUserId.sql" />
</ItemGroup>
</Project>

View File

@ -0,0 +1,24 @@
CREATE PROCEDURE [dbo].[CipherDetails_ReadByIdUserId]
@Id UNIQUEIDENTIFIER,
@UserId UNIQUEIDENTIFIER
AS
BEGIN
SET NOCOUNT ON
SELECT DISTINCT
C.*
FROM
[dbo].[CipherDetailsView] C
LEFT JOIN
[dbo].[SubvaultCipher] SC ON SC.[CipherId] = C.[Id]
LEFT JOIN
[dbo].[SubvaultUser] SU ON SU.[SubvaultId] = SC.[SubvaultId]
LEFT JOIN
[dbo].[OrganizationUser] OU ON OU.[Id] = SU.[OrganizationUserId]
WHERE
C.Id = @Id
AND (
(C.[UserId] IS NOT NULL AND C.[UserId] = @UserId)
OR (OU.[UserId] = @UserId AND OU.[Status] = 2) -- 2 = Confirmed
)
END

View File

@ -5,11 +5,20 @@ AS
BEGIN
SET NOCOUNT ON
SELECT
*
SELECT DISTINCT
C.*
FROM
[dbo].[CipherDetailsView]
[dbo].[CipherDetailsView] C
LEFT JOIN
[dbo].[SubvaultCipher] SC ON SC.[CipherId] = C.[Id]
LEFT JOIN
[dbo].[SubvaultUser] SU ON SU.[SubvaultId] = SC.[SubvaultId]
LEFT JOIN
[dbo].[OrganizationUser] OU ON OU.[Id] = SU.[OrganizationUserId]
WHERE
[Type] = @Type
AND [UserId] = @UserId
C.[Type] = @Type
AND (
(C.[UserId] IS NOT NULL AND C.[UserId] = @UserId)
OR (OU.[UserId] = @UserId AND OU.[Status] = 2) -- 2 = Confirmed
)
END

View File

@ -16,5 +16,5 @@ BEGIN
[dbo].[OrganizationUser] OU ON OU.[Id] = SU.[OrganizationUserId]
WHERE
(C.[UserId] IS NOT NULL AND C.[UserId] = @UserId)
OR OU.[UserId] = @UserId
OR (OU.[UserId] = @UserId AND OU.[Status] = 2) -- 2 = Confirmed
END

View File

@ -15,5 +15,6 @@ BEGIN
INNER JOIN
[dbo].[OrganizationUser] OU ON OU.[Id] = SU.[OrganizationUserId]
WHERE
[OU].[UserId] = @UserId
OU.[UserId] = @UserId
AND OU.[Status] = 2 -- 2 = Confirmed
END