01
private
static
Set<ID
>
getAllSubRoleIds(Set<ID
roleIds) {
02
03
currentRoleIds
=
new
();
04
05
// get all of the roles underneath the passed roles
06
for
(UserRole userRole :[
select
Id
from
UserRole
where
ParentRoleId
07
IN
:roleIds AND ParentRoleID !=
null
]) {
08
currentRoleIds.add(userRole.Id);
09
}
10
11
// go fetch some more rolls!
12
if
(currentRoleIds.size()
0
) {
13
currentRoleIds.addAll(getAllSubRoleIds(currentRoleIds));
14
15
16
return
currentRoleIds;
17
01privatestaticSet<ID>getAllSubRoleIds(Set<ID>roleIds) {0203Set<ID>currentRoleIds=newSet<ID>();0405// get all of the roles underneath the passed roles06for(UserRole userRole :[selectIdfromUserRolewhereParentRoleId07IN:roleIds AND ParentRoleID !=null]) {08currentRoleIds.add(userRole.Id);09}1011// go fetch some more rolls!12if(currentRoleIds.size()>0) {13currentRoleIds.addAll(getAllSubRoleIds(currentRoleIds));14}1516returncurrentRoleIds;17}