UFN_SECURITY_APPUSER_GRANTED_MAPENTITY_FORSITE

Returns true if the given user has permissions to the given MAPENTITY for the given site.

Return

Return Type
bit

Parameters

Parameter Parameter Type Mode Description
@APPUSERID uniqueidentifier IN
@MAPENTITYCATALOGID uniqueidentifier IN
@SITEID uniqueidentifier IN

Definition

Copy


            CREATE function dbo.UFN_SECURITY_APPUSER_GRANTED_MAPENTITY_FORSITE
            (
                @APPUSERID uniqueidentifier,
                @MAPENTITYCATALOGID uniqueidentifier,
                @SITEID uniqueidentifier
            )
            returns bit as
            /*
            Returns true if the given user has permissions to the given MAPENTITY
            in a role whose SITE is either

            1.) Blank and record security mode=0
            2.) Assigned to the given SITE.
            3.) Blank and record security mode=1 and the SITEID IS NULL.

            This function is optimized for use from the Blackbaud.AppFx.Security.Catalog.SiteRecordSecurityService
            class which implements the RecordSecurity service for Site record security.

            As such, it assumes that a check for DENY occurs outside this function
            and also assumes that a check for if the user is ISSYSADMIN occurs outside 
            this function.  
            */
            begin
                if exists
                    (
                        select 
                            1 
                        from 
                            dbo.V_SECURITY_SYSTEMROLEASSIGNMENT_USER_MAPENTITY as SECURITYVIEW
                            left join dbo.SITEPERMISSION on SITEPERMISSION.APPUSERID = SECURITYVIEW.APPUSERID and SITEPERMISSION.SYSTEMROLEID = SECURITYVIEW.SYSTEMROLEID
                        where 
                            SECURITYVIEW.APPUSERID=@APPUSERID and 
                            SECURITYVIEW.MAPENTITYCATALOGID=@MAPENTITYCATALOGID and 
                            SECURITYVIEW.GRANTORDENY=1 and                            
                            (    
                                (SECURITYVIEW.SITESECURITYMODE = 0)
                                or
                                (SITEPERMISSION.SITEID = @SITEID and (SECURITYVIEW.SITESECURITYMODE = 2 or SECURITYVIEW.SITESECURITYMODE = 3))
                                or
                                (SECURITYVIEW.SITESECURITYMODE = 1 and @SITEID is null)                                
                            )            
                    )
                        return 1;
                return 0;
            end