@@ -79,16 +79,7 @@ userHasProjectPermission :: Maybe UserId -> ProjectId -> RolePermission -> PG.Tr
7979userHasProjectPermission mayUserId projectId permission = do
8080 PG. queryExpect1Col
8181 [PG. sql |
82- SELECT
83- user_has_permission(#{mayUserId}, (SELECT p.resource_id from projects p WHERE p.id = #{projectId}), #{permission})
84- OR
85- EXISTS (
86- SELECT FROM roles r
87- WHERE r.ref = 'project_public_access'
88- AND #{permission} = ANY(r.permissions)
89- AND (SELECT NOT p.private FROM projects p WHERE p.id = #{projectId})
90- )
91-
82+ SELECT user_has_permission(#{mayUserId}, (SELECT p.resource_id from projects p WHERE p.id = #{projectId}), #{permission})
9283 |]
9384
9485userHasOrgPermission :: UserId -> OrgId -> RolePermission -> PG. Transaction e Bool
@@ -159,15 +150,9 @@ permissionsForProject mayUserId projectId = do
159150 (SELECT permission FROM
160151 user_resource_permissions urp
161152 JOIN projects p ON p.resource_id = urp.resource_id
162- WHERE urp.user_id = #{mayUserId}
153+ WHERE ( urp.user_id IS NULL OR urp.user_id = #{mayUserId})
163154 AND p.id = #{projectId}
164155 )
165- UNION
166- (SELECT permission
167- FROM roles r, UNNEST(r.permissions) AS permission
168- WHERE r.ref = 'project_public_access'
169- AND (SELECT NOT p.private FROM projects p WHERE p.id = #{projectId})
170- )
171156 |]
172157 <&> Set. fromList
173158
@@ -178,7 +163,7 @@ permissionsForOrg mayUserId orgId = do
178163 SELECT permission
179164 FROM user_resource_permissions urp
180165 JOIN orgs org ON org.resource_id = urp.resource_id
181- WHERE urp.user_id = #{mayUserId}
166+ WHERE ( urp IS NULL OR urp .user_id = #{mayUserId})
182167 AND org.id = #{orgId}
183168 |]
184169 <&> Set. fromList
0 commit comments