Summary Table

Categories Total Count
PII 0
URL 0
DNS 0
EKL 0
IP 0
PORT 0
VsID 0
CF 0
AI 0
VPD 0
PL 0
Other 0

File Content

?-- =============================================
-- Description: Identifies the sensitivity level for a user / visn.
--
-- Maintenance Log:
--
-- Update By Update Date Description
-- ----------- --------- ----------------------------
-- =============================================
CREATE PROCEDURE [seclyr].[uspRptGetUserVisnMaxSensitivityLevel] (
@userId int,
@moduleIds varchar(max),
@visnIds varchar(max)
)
AS
BEGIN

DECLARE @maxSensitivityLevelID tinyint
DECLARE @userRoleTable TABLE
(
ID int,
UserID int,
ModuleID smallint,
RegionID tinyint, --this is VHA Region
CCNRegionID tinyint, --this is CCN Region
VisnID tinyint,
StationID smallint,
StationName varchar(250),
RoleID tinyint,
AccessLevelID tinyint,
AccessStatus varchar(50),
SensitivityLevelID tinyint,
SensitivityLevelNamme varchar(100),
CanEdit bit
)

-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;

BEGIN TRY
--If @visnIds should use zero (null visn placeholder),
--null that out so can get a proper answer
IF @visnIds = '0'
BEGIN
SET @visnIds = Null;
END
INSERT INTO @userRoleTable (ID, UserID, ModuleID, RegionID, CCNRegionID, VisnID, StationID, RoleID,
AccessStatus, AccessLevelID, SensitivityLevelID, CanEdit)
EXEC seclyr.uspGetUserStationRoles @userId, @moduleIds;

SELECT DISTINCT
ModuleID
, VisnID
, MAX(SensitivityLevelID) AS MaxSensitivityLevelID
FROM @userRoleTable
WHERE (VisnID In(SELECT [Value] FROM ufnSplit(',', @visnIds)) OR @visnIds IS NULL)
AND (ModuleID In(SELECT [Value] FROM ufnSplit(',', @moduleIds)) OR @moduleIds IS NULL)
AND AccessStatus = 'APPROVED'
GROUP BY ModuleID, VisnID;


END TRY

BEGIN CATCH
PRINT 'There was an error getting maximum sensitivity level for user/VIsn reporting' + CHAR(13);
SELECT * FROM dbo.ufnGetErrorInfo();
EXEC uspRaiseErrorInfo;
END CATCH
END
GO