UFN_SECURITY_APPUSER_GRANTED_CHANGEBATCHNUMBER

Returns true if user has been granted and not denied rights changing batch numbers for a system role.

Return

Return Type
bit

Parameters

Parameter Parameter Type Mode Description
@APPUSERID uniqueidentifier IN
@BATCHTEMPLATEID uniqueidentifier IN

Definition

Copy


CREATE function dbo.UFN_SECURITY_APPUSER_GRANTED_CHANGEBATCHNUMBER (
    @APPUSERID uniqueidentifier,
    @BATCHTEMPLATEID uniqueidentifier = null
)
returns bit
as
begin
    declare @grant bit;
    set @grant = 0;

    select @grant = ISSYSADMIN from dbo.APPUSER where ID = @APPUSERID;

    if @grant = 0
    begin

        set @grant = dbo.UFN_SECURITY_APPUSER_GRANTED_SYSTEMPRIVILEGE_IN_SYSTEMROLE(@APPUSERID, 'F6C07CDB-08EE-4E40-940D-70DB9347CA5A');

        if (@grant = 0) and (@BATCHTEMPLATEID is not null)
        begin
            select top 1
                @grant = GRANTORDENY
            from
                dbo.V_SECURITY_SYSTEMROLEASSIGNMENT_USER_BATCHTEMPLATE
                    with (NOEXPAND, INDEX(IX_V_SECURITY_SYSTEMROLEASSIGNMENT_USER_BATCHTEMPLATE_BATCHTEMPLATEID_APPUSERID))
            where
                (V_SECURITY_SYSTEMROLEASSIGNMENT_USER_BATCHTEMPLATE.APPUSERID = @APPUSERID)
                and (V_SECURITY_SYSTEMROLEASSIGNMENT_USER_BATCHTEMPLATE.BATCHTEMPLATEID = @BATCHTEMPLATEID)
            order by
                GRANTORDENY ASC;

            if @@ROWCOUNT = 0 
            begin
                select top 1
                    @grant = GRANTORDENY
                from
                    dbo.V_SECURITY_SYSTEMROLEASSIGNMENT_USER_BATCHTYPE
                    inner join dbo.BATCHTEMPLATE on BATCHTEMPLATE.BATCHTYPECATALOGID = V_SECURITY_SYSTEMROLEASSIGNMENT_USER_BATCHTYPE.BATCHTYPECATALOGID
                where
                    (V_SECURITY_SYSTEMROLEASSIGNMENT_USER_BATCHTYPE.APPUSERID = @APPUSERID)
                    and (BATCHTEMPLATE.ID = @BATCHTEMPLATEID)
                order by
                    GRANTORDENY ASC;
            end
        end
    end

    return @grant;
end