You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

sp_lu_get_user_permission.sql 929B

12345678910111213141516171819202122
  1. DECLARE
  2. groups int[];
  3. g INT;
  4. BEGIN
  5. SELECT "value" INTO val FROM luticate_permissions_users WHERE "user_id" = _user_id AND "name" = _permisson_name;
  6. IF val is null THEN
  7. SELECT lpg."value" into val FROM luticate_permissions_groups lpg
  8. INNER JOIN luticate_groups lg ON lg."id" = lpg."group_id"
  9. INNER JOIN luticate_users_groups lug ON lug."user_id" = _user_id AND lug."group_id" = lg."id"
  10. WHERE lpg."name" = _permisson_name and lpg."value" = FALSE;
  11. IF val is null then
  12. SELECT lpg."value" into val FROM luticate_permissions_groups lpg
  13. INNER JOIN luticate_groups lg ON lg."id" = lpg."group_id"
  14. INNER JOIN luticate_users_groups lug ON lug."user_id" = _user_id AND lug."group_id" = lg."id"
  15. WHERE lpg."name" = _permisson_name and lpg."value" = TRUE;
  16. IF val is null then
  17. SELECT "value" INTO val FROM luticate_permissions WHERE "name" = _permisson_name;
  18. END IF;
  19. end if;
  20. END IF;
  21. END;