USP_RESEARCHGROUP_VALIDATESITES

Validates sites for research group records.

Parameters

Parameter Parameter Type Mode Description
@SITES xml IN
@CURRENTAPPUSERID uniqueidentifier IN
@SECURITYFEATUREID uniqueidentifier IN
@SECURITYFEATURETYPE tinyint IN
@ISEDITFORM bit IN

Definition

Copy


            CREATE procedure dbo.USP_RESEARCHGROUP_VALIDATESITES
            (
                @SITES xml,
                @CURRENTAPPUSERID uniqueidentifier,

                @SECURITYFEATUREID uniqueidentifier = null,
                @SECURITYFEATURETYPE tinyint = null,

                @ISEDITFORM bit = 0
            )
            as
            set nocount on;

            declare @SITECOUNT int = 0;

            declare @SITES_T table
            (
                SITEID uniqueidentifier
            );

            if not @SITES is null
            begin
                insert into @SITES_T(SITEID) 
                    select SITEID from dbo.UFN_RESEARCHGROUP_GETSITES_FROMITEMLISTXML(@SITES); 
            end

            select @SITECOUNT = count(*) from @SITES_T;

            if @SITECOUNT = 0
            begin
                if dbo.UFN_SITEREQUIREDFORUSER(@CURRENTAPPUSERID) = 1
                    raiserror('BBERR_SITEREQUIRED', 13, 1);
            end
            else
            begin
                if not dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID) = 1 
                begin
                    if @ISEDITFORM = 1 
                    begin
                        if not exists(select SITEID from @SITES_T [SITES] where dbo.UFN_SITEALLOWEDFORUSERONFEATURE(@CURRENTAPPUSERID, [SITES].SITEID, @SECURITYFEATUREID, @SECURITYFEATURETYPE) = 1)
                            raiserror('BBER_SITE_NOACCESS', 13, 1);
                    end
                    else
                    begin
                        if exists(select SITEID from @SITES_T [SITES] where not dbo.UFN_SITEALLOWEDFORUSERONFEATURE(@CURRENTAPPUSERID, [SITES].SITEID, @SECURITYFEATUREID, @SECURITYFEATURETYPE) = 1)
                            raiserror('BBER_SITE_NOACCESS', 13, 1);
                    end
                end
            end