in core/src/main/java/org/apache/sling/cms/core/internal/operations/UpdateStatusOperation.java [49:81]
public void run(SlingHttpServletRequest request, PostResponse response, SlingPostProcessor[] processors) {
final List<Modification> changes = new ArrayList<>();
try {
String reason = request.getParameter(PN_REASON);
AuthorizableWrapper authWrapper = Optional
.ofNullable(request.getResource().adaptTo(AuthorizableWrapper.class))
.orElseThrow(() -> new RepositoryException("Failed to get authorizable: " + request.getResource()));
if (authWrapper.getAuthorizable().isGroup()) {
throw new RepositoryException("Authorizable is not a user");
}
User user = (User) authWrapper.getAuthorizable();
user.disable(StringUtils.isBlank(reason) ? null : reason);
// invoke processors
if (processors != null) {
for (SlingPostProcessor processor : processors) {
processor.process(request, changes);
}
}
request.getResourceResolver().commit();
response.setPath(user.getPath());
response.onCreated(user.getPath());
} catch (Exception e) {
log.warn("Failed to update user status", e);
response.setError(e);
}
}