
[dbo].[ols_fn_getAreaAceByUser]
CREATE function ols_fn_getAreaAceByUser
( @_uri nvarchar(255)
)
returns integer
begin
declare @_pac integer;
declare @_cumAreaCode integer;
declare @_pae integer;
if ( @_uri 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.uri = @_uri
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_getAreaAceByUser] TO [ca_itrm_group]
GRANT EXECUTE ON [dbo].[ols_fn_getAreaAceByUser] TO [ca_itrm_group_ams]
GO