
[dbo].[udfGetPermissionsForUserAndBranches]
create function [dbo].[udfGetPermissionsForUserAndBranches]
(
@inBranchPriKeys IntList readonly,
@inSysUserId int
)
returns table as return
(
select
SecurityModuleName = SecModules.Description,
MinAccessLevel = min(
case when SecProfileDetail.SecProfilePriKey is null then 0
when SecAccessTypes.Description = 'Read Only' then 1
else 2
end)
from UserAccess
cross join SecModules
cross join @inBranchPriKeys branches
left outer join SecProfileDetail on UserAccess.SecProfilePriKey = SecProfileDetail.SecProfilePriKey
and SecProfileDetail.BranchPriKey = branches.Item and SecProfileDetail.ModulePriKey = SecModules.ModulePriKey
left outer join SecAccessTypes on SecProfileDetail.AccessPriKey = SecAccessTypes.AccessPriKey
where UserAccess.SysUserID = @inSysUserId
group by SecModules.Description
)
GO
GRANT SELECT ON [dbo].[udfGetPermissionsForUserAndBranches] TO [MssExec]
GO