
[dbo].[ols_sp_getEffectiveAreaAce]
CREATE procedure ols_sp_getEffectiveAreaAce
( @obj_uuid binary(16),
@usr_uuid binary(16)
)
as
begin
declare @isEnabled int;
declare @eff_obj_area_ace int;
declare @eff_sp_area_ace int;
select @isEnabled = (select is_area_enabled from ols_v_user where user_uuid = @usr_uuid);
if ( @isEnabled = 0 )
begin
select -1 as eff_area_ace;
return;
end
select @eff_obj_area_ace = (select area_ace & area_mask from ols_area_ace where object_def_uuid = @obj_uuid);
if( @eff_obj_area_ace is null)
begin
select 0 as eff_area_ace;
return;
end;
set @eff_sp_area_ace = (select [dbo].ols_fn_getAreaAceByUserUuid (@usr_uuid));
if( @eff_sp_area_ace is null)
begin
select 0 as eff_area_ace;
return;
end;
select (@eff_sp_area_ace & @eff_obj_area_ace) as eff_area_ace;
return;
end
GO
GRANT EXECUTE ON [dbo].[ols_sp_getEffectiveAreaAce] TO [ca_itrm_group]
GRANT EXECUTE ON [dbo].[ols_sp_getEffectiveAreaAce] TO [ca_itrm_group_ams]
GO