@Override
public User setEnabled(String userName, boolean enabled, boolean broadcast) throws Exception {
if (log.isTraceEnabled()) {
Tools.logMethodIn(log, LogLevel.TRACE, "setEnabled", new Object[] { "userName", userName, "enabled", enabled,
"broadcast", broadcast });
}
orgService.flush();
IdentitySession session = service_.getIdentitySession();
User foundUser = getPopulatedUser(userName, session, UserStatus.ANY);
if (foundUser == null || foundUser.isEnabled() == enabled) {
return foundUser;
}
((UserImpl) foundUser).setEnabled(enabled);
if (broadcast)
preSetEnabled(foundUser);
Attribute[] attrs = new Attribute[] { new SimpleAttribute(USER_ENABLED, String.valueOf(enabled)) };
AttributesManager am = session.getAttributesManager();
try {
am.updateAttributes(userName, attrs);
} catch (Exception e) {
handleException("Cannot update enabled status for user: " + userName + "; ", e);
}
if (getIntegrationCache() != null) {
getIntegrationCache().invalidateAll();
}
if (broadcast)
postSetEnabled(foundUser);
return foundUser;
}