//get hybrid roles
String[] hybridRoles = userStoreMan.getHybridRoles();
Arrays.sort(hybridRoles);
FlaggedName[] flaggedNames = new FlaggedName[roleNames.length];
for (int i = 0; i < roleNames.length; i++) {
FlaggedName fName = new FlaggedName();
fName.setItemName(roleNames[i]);
fName.setEditable(true);
//check whether role is a hybrid role or not
if (Arrays.binarySearch(hybridRoles, roleNames[i])<0){
fName.setRoleType("External");
} else{
fName.setRoleType("Internal");
}
//either if user store read only or external groups are read only, set
// external roles editable false
if ((userStoreMan.isReadOnly() && Arrays.binarySearch(hybridRoles, roleNames[i]) < 0)
|| (("false").equals(realm.getRealmConfiguration().getUserStoreProperty(
LDAPConstants.WRITE_EXTERNAL_ROLES))) &&
(Arrays.binarySearch(hybridRoles, roleNames[i]) < 0)){
fName.setEditable(false); //external role
}
flaggedNames[i] = fName;
}
return flaggedNames;
} catch (UserStoreException e) {