Advertisement
Guest User

Untitled

a guest
Jul 28th, 2017
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 4.79 KB | None | 0 0
  1.  
  2. CREATE OR REPLACE VIEW sw3_permissions.user_has_permission_over_category_positive AS
  3.  
  4.     SELECT
  5.  
  6.         id_user,
  7.         id_category,
  8.         CAST(bit_or(article_topication::INT) AS BIT(16))    AS article_topication,
  9.         CAST(bit_or(article_redaction::INT) AS BIT(16))     AS article_redaction,
  10.         CAST(bit_or(article_review::INT) AS BIT(16))        AS article_review,
  11.         CAST(bit_or(article_admin::INT) AS BIT(16))         AS article_admin,
  12.         CAST(bit_or(user_basics::INT) AS BIT(16))           AS user_basics,
  13.         CAST(bit_or(user_admin::INT) AS BIT(16))            AS user_admin,
  14.         CAST(bit_or(forum_basics::INT) AS BIT(16))          AS forum_basics,
  15.         CAST(bit_or(forum_admin::INT) AS BIT(16))           AS forum_admin,
  16.         CAST(bit_or(other::INT) AS BIT(16))                 AS other
  17.  
  18.     FROM
  19.     (
  20.         -- Droits sur une catégorie par rapport à un role
  21.  
  22.         SELECT
  23.             id_user,
  24.             id_category,
  25.             article_topication,
  26.             article_redaction,
  27.             article_review,
  28.             article_admin,
  29.             user_basics,
  30.             user_admin,
  31.             forum_basics,
  32.             forum_admin,
  33.             other
  34.         FROM sw3_permissions.user_has_role_over_category
  35.         INNER JOIN sw3_permissions.user_role
  36.             ON
  37.                 sw3_permissions.user_role.id
  38.                 =
  39.                 sw3_permissions.user_has_role_over_category.id_role
  40.  
  41.         UNION
  42.  
  43.         -- Droits sur une catégorie par rapport au niveau
  44.  
  45.         SELECT
  46.             id_user,
  47.             id_category,
  48.             article_topication,
  49.             article_redaction,
  50.             article_review,
  51.             article_admin,
  52.             user_basics,
  53.             user_admin,
  54.             forum_basics,
  55.             forum_admin,
  56.             other
  57.         FROM sw3_permissions.user_has_role_over_category_through_level
  58.         INNER JOIN sw3_permissions.user_role
  59.             ON
  60.                 sw3_permissions.user_role.id
  61.                 =
  62.                 sw3_permissions.user_has_role_over_category_through_level.id_role
  63.  
  64.         UNION
  65.  
  66.         -- Droits sur un univers par rapport à un role
  67.  
  68.         SELECT
  69.             id_user,
  70.             category.id AS id_category,
  71.             article_topication,
  72.             article_redaction,
  73.             article_review,
  74.             article_admin,
  75.             user_basics,
  76.             user_admin,
  77.             forum_basics,
  78.             forum_admin,
  79.             other
  80.         FROM sw3_main.category
  81.         INNER JOIN sw3_permissions.user_has_role_over_universe
  82.             ON
  83.                 sw3_main.category.id_universe
  84.                 =
  85.                 sw3_permissions.user_has_role_over_universe.id_universe
  86.         INNER JOIN sw3_permissions.user_role
  87.             ON
  88.                 sw3_permissions.user_role.id
  89.                 =
  90.                 sw3_permissions.user_has_role_over_universe.id_role
  91.  
  92.         UNION
  93.  
  94.         -- Droits sur une marketplace par rapport à un role
  95.  
  96.         SELECT
  97.             id_user,
  98.             category.id AS id_category,
  99.             article_topication,
  100.             article_redaction,
  101.             article_review,
  102.             article_admin,
  103.             user_basics,
  104.             user_admin,
  105.             forum_basics,
  106.             forum_admin,
  107.             other
  108.         FROM sw3_main.category
  109.         INNER JOIN sw3_permissions.user_has_role_over_marketplace
  110.             ON
  111.                 sw3_main.category.id_marketplace
  112.                 =
  113.                 sw3_permissions.user_has_role_over_marketplace.id_marketplace
  114.         INNER JOIN sw3_permissions.user_role
  115.             ON
  116.                 sw3_permissions.user_role.id
  117.                 =
  118.                 sw3_permissions.user_has_role_over_marketplace.id_role
  119.  
  120.         UNION
  121.  
  122.         -- Droits globaux par rapport à un role
  123.  
  124.         SELECT
  125.             id_user,
  126.             category.id AS id_category,
  127.             article_topication,
  128.             article_redaction,
  129.             article_review,
  130.             article_admin,
  131.             user_basics,
  132.             user_admin,
  133.             forum_basics,
  134.             forum_admin,
  135.             other
  136.         FROM sw3_main.category, sw3_permissions.user_has_role
  137.         INNER JOIN sw3_permissions.user_role
  138.             ON
  139.                 sw3_permissions.user_role.id
  140.                 =
  141.                 sw3_permissions.user_has_role.id_role
  142.  
  143.         UNION
  144.  
  145.         -- Premissions directes sur une catégorie
  146.  
  147.         SELECT *
  148.         FROM sw3_permissions.user_has_permission_over_category
  149.  
  150.         UNION
  151.  
  152.         -- Permissions directes sur une marketplace
  153.  
  154.         SELECT
  155.             id_user,
  156.             category.id AS id_category,
  157.             article_topication,
  158.             article_redaction,
  159.             article_review,
  160.             article_admin,
  161.             user_basics,
  162.             user_admin,
  163.             forum_basics,
  164.             forum_admin,
  165.             other
  166.         FROM sw3_main.category
  167.         INNER JOIN sw3_permissions.user_has_permission_over_marketplace
  168.             ON
  169.                 sw3_main.category.id_marketplace
  170.                 =
  171.                 sw3_permissions.user_has_permission_over_marketplace.id_marketplace
  172.  
  173.         UNION
  174.  
  175.         -- Permissions directes sur une marketplace
  176.  
  177.         SELECT
  178.             id_user,
  179.             category.id AS id_category,
  180.             article_topication,
  181.             article_redaction,
  182.             article_review,
  183.             article_admin,
  184.             user_basics,
  185.             user_admin,
  186.             forum_basics,
  187.             forum_admin,
  188.             other
  189.         FROM sw3_main.category
  190.         INNER JOIN sw3_permissions.user_has_permission_over_universe
  191.             ON
  192.                 sw3_main.category.id_universe
  193.                 =
  194.                 sw3_permissions.user_has_permission_over_universe.id_universe
  195.  
  196.         UNION
  197.  
  198.         -- Permissions directes globales
  199.  
  200.         SELECT
  201.             id_user,
  202.             category.id AS id_category,
  203.             article_topication,
  204.             article_redaction,
  205.             article_review,
  206.             article_admin,
  207.             user_basics,
  208.             user_admin,
  209.             forum_basics,
  210.             forum_admin,
  211.             other
  212.         FROM sw3_main.category, sw3_permissions.user_has_permission
  213.     ) t1
  214.     GROUP BY id_user, id_category;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement