I'm trying to write a Bamboo plugin that will perform some actions when a jobs requirements change and I'd like to find out who is making the change (either an admin or a user).
The problem I'm seeing is that the event is firing correctly but the user reported by the sal.api.user.UserManager is always the SYSTEM user.
My plugin is as follows:
public class BuildRequirementUpdatedListener { private static final Logger log = Logger .getLogger(BuildRequirementUpdatedListener.class); private UserManager userManager; public BuildRequirementUpdatedListener(UserManager userManager) { this.userManager = checkNotNull(userManager); } @EventListener public void handleEvent( BuildRequirementUpdatedEvent buildRequirementUpdatedEvent) { log.info("Plan Key: " + buildRequirementUpdatedEvent.getPlanKey()); log.info("Logged in user: " + userManager.getRemoteUsername()); } }
Can anyone advise on how I can find if the person making the change to the build requirements is an admin or a regular user.
Thanks
getRemoteUsername on the uiser manager has nothing to do with the event. Your listener is being run by the system, the change (object we are inspecting) was not.
try poking with
buildRequirementUpdatedEvent.toString()
and
Object o = buildRequirementUpdatedEvent.getSource()
o.getClass();
You may end up needing to just get the plankey (buildRequirementUpdatedEvent.getPlanKey()) and then lookup the change using the auditlog service to get the acrtor.
https://docs.atlassian.com/atlassian-bamboo/latest/com/atlassian/bamboo/persister/DefaultAuditLogService.html
auditLogEntry.getUsername(), getOldValue(), etc.
Online forums and learning are now in one easy-to-use experience.
By continuing, you accept the updated Community Terms of Use and acknowledge the Privacy Policy. Your public name, photo, and achievements may be publicly visible and available in search engines.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.