in src/main/java/org/apache/sling/jackrabbit/usermanager/impl/AuthorizablePrivilegesInfoImpl.java [326:343]
public boolean canDisable(Session jcrSession, String userId) {
boolean hasRights = false;
try {
hasRights = checkAuthorizablePath(jcrSession, userId,
User.class::isInstance,
path -> {
//check if the non-admin user has sufficient rights on the home folder
AccessControlManager acm = jcrSession.getAccessControlManager();
Set<Privilege> requiredPrivileges = new HashSet<>();
requiredPrivileges.add(acm.privilegeFromName(Privilege.JCR_READ));
requiredPrivileges.add(acm.privilegeFromName(PrivilegeConstants.REP_USER_MANAGEMENT));
return acm.hasPrivileges(path, requiredPrivileges.toArray(new Privilege[requiredPrivileges.size()]));
});
} catch (RepositoryException e) {
log.warn("Failed to determine if {} can disable user {}", jcrSession.getUserID(), userId);
}
return hasRights;
}