
[dbo].[ols_fn_getAreaAceByUserUuid]
CREATE function ols_fn_getAreaAceByUserUuid
( @_user_uuid binary(16)
)
returns integer
begin
declare @_pac integer;
declare @_cumAreaCode integer;
declare @_pae integer;
if ( @_user_uuid is null )
begin
select @_cumAreaCode = (select set_val_lng from ca_settings where set_id = 900);
return @_cumAreaCode;
end;
declare @_found integer;
set @_found = 0;
declare cur_pace cursor for select area_ace
from ca_security_profile sp,
ca_link_dis_user_sec_profile usp,
ca_discovered_user u
where u.user_uuid = @_user_uuid
and u.user_uuid = usp.user_uuid
and usp.security_profile_uuid = sp.security_profile_uuid
and sp.type <> 1;
open cur_pace;
fetch from cur_pace into @_pac;
set @_cumAreaCode = 0;
while @@fetch_status = 0
begin
set @_cumAreaCode = @_cumAreaCode | @_pac;
set @_found = 1;
fetch from cur_pace into @_pac;
end;
close cur_pace;
deallocate cur_pace;
if(@_found = 0)
begin
select @_cumAreaCode = (select set_val_lng from ca_settings where set_id = 900);
return @_cumAreaCode;
end
return @_cumAreaCode;
end
GO
GRANT EXECUTE ON [dbo].[ols_fn_getAreaAceByUserUuid] TO [ca_itrm_group]
GRANT EXECUTE ON [dbo].[ols_fn_getAreaAceByUserUuid] TO [ca_itrm_group_ams]
GO