Advertisement
sukhdev

Untitled

May 8th, 2025 (edited)
976
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
T-SQL 1.38 KB | None | 0 0
  1. CREATE OR ALTER   FUNCTION [dbo].[FilterByDivision]
  2. (@UserId INT, @PermissionFrom DATETIME, @PermissionTo DATETIME, @Permission NVARCHAR(20))
  3. RETURNS TABLE
  4. AS
  5.     RETURN
  6. SELECT  
  7. div.DivisionID FROM dbo.SCH_Division div
  8. JOIN dbo.SCH_Standard std ON std.StandardID = div.StandardID
  9. JOIN dbo.SCH_Section sec ON sec.SectionID = std.SectionID
  10. JOIN dbo.SCH_School sch ON sch.SchoolID = sec.SchoolID
  11. JOIN dbo.SCH_Campus cam ON cam.CampusID = sch.CampusID
  12. JOIN dbo.SCH_Trust tr ON tr.TrustID = cam.TrustID
  13.  
  14. JOIN SEC_UserRole sur ON sur.UserId = @UserId
  15. AND (sur.PermissionFrom >= @PermissionFrom
  16.     OR ((sur.PermissionTo IS NULL)
  17.     OR (sur.PermissionTo IS NOT NULL
  18.     AND @PermissionTo <= sur.PermissionTo)))
  19. AND (((sur.TrustId = tr.TrustID AND sur.CampusId IS NULL AND sur.SchoolId IS NULL AND sur.SectionId IS NULL AND sur.StandardId IS NULL AND sur.DivisionId IS NULL)
  20. OR (sur.CampusId = cam.CampusID AND sur.SchoolId IS NULL AND sur.SectionId IS NULL AND sur.StandardId IS NULL AND sur.DivisionId IS NULL)
  21. OR (sur.SchoolId = sch.SchoolID  AND sur.SectionId IS NULL AND sur.StandardId IS NULL AND sur.DivisionId IS NULL)
  22. OR (sur.SectionId = sec.SectionID AND sur.StandardId IS NULL AND sur.DivisionId IS NULL)
  23. OR (sur.StandardId = std.StandardID AND sur.DivisionId IS NULL)
  24. OR (sur.DivisionId = div.DivisionID)))
  25. JOIN SEC_RoleClaim src ON  src.ClaimValue = @Permission AND src.RoleId = sur.RoleId
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement