Advertisement
Guest User

Untitled

a guest
Nov 14th, 2017
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
T-SQL 2.56 KB | None | 0 0
  1. SELECT rights.userid,
  2.        client.clientname,
  3.        access_rights.*,
  4.        folder.fullpath AS Path
  5. FROM   folder
  6.        JOIN(SELECT usergroupclient.client_id   AS ClientId,
  7.                    folderaccessright.folderid,
  8.                    Max(Cast([read] AS INT))    AS [Read],
  9.                    Max(Cast([move] AS INT))    AS [Move],
  10.                    Max(Cast([create] AS INT))  AS [Create],
  11.                    Max(Cast([update] AS INT))  AS [Update],
  12.                    Max(Cast([control] AS INT)) AS [Control],
  13.                    Max(Cast([delete] AS INT))  AS [Delete]
  14.             FROM   usergroupclient
  15.                    JOIN folderaccessright
  16.                      ON folderaccessright.usergroupid =
  17.                         usergroupclient.usergroup_id
  18.             GROUP  BY usergroupclient.client_id,
  19.                       folderaccessright.folderid
  20.             UNION ALL
  21.             SELECT -852 AS ClientId,
  22.                    id   AS FolderId,
  23.                    1    AS [Read],
  24.                    1    AS [Move],
  25.                    1    AS [Create],
  26.                    1    AS [Update],
  27.                    1    AS [Control],
  28.                    1    AS [Delete]
  29.             FROM   folder) access_rights
  30.          ON folder.id = access_rights.folderid
  31.        JOIN (SELECT usergroupuser.user_id       AS UserId,
  32.                     folderaccessright.folderid,
  33.                     Max(Cast([read] AS INT))    AS [Read],
  34.                     Max(Cast([move] AS INT))    AS [Move],
  35.                     Max(Cast([create] AS INT))  AS [Create],
  36.                     Max(Cast([update] AS INT))  AS [Update],
  37.                     Max(Cast([control] AS INT)) AS [Control],
  38.                     Max(Cast([delete] AS INT))  AS [Delete]
  39.              FROM   usergroupuser
  40.                     JOIN folderaccessright
  41.                       ON folderaccessright.usergroupid =
  42.                          usergroupuser.usergroup_id
  43.              GROUP  BY usergroupuser.user_id,
  44.                        folderaccessright.folderid
  45.              UNION ALL
  46.              SELECT -874 AS UserId,
  47.                     id   AS FolderId,
  48.                     1    AS [Read],
  49.                     1    AS [Move],
  50.                     1    AS [Create],
  51.                     1    AS [Update],
  52.                     1    AS [Control],
  53.                     1    AS [Delete]
  54.              FROM   folder) rights
  55.          ON folder.id = rights.folderid
  56.        LEFT OUTER JOIN dbo.client
  57.                     ON dbo.client.id = access_rights.clientid
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement