Create
cancel
Showing results for 
Search instead for 
Did you mean: 
Sign up Log in

In a bamboo BuildRequirementUpdated event, how can I get the user who made the change?

DaveD October 23, 2013

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

1 answer

0 votes
EddieW
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
February 28, 2014

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.

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events