mirror of
https://github.com/scm-manager/scm-manager.git
synced 2025-11-09 15:05:44 +01:00
fix bug with user events and decorated user managers
This commit is contained in:
@@ -74,13 +74,44 @@ public final class UserEventHack
|
||||
public static void fireEvent(UserManager userManager, User user,
|
||||
HandlerEvent event)
|
||||
{
|
||||
if (userManager instanceof AbstractUserManager)
|
||||
AbstractUserManager abstractUserManager =
|
||||
getAbstractUserManager(userManager);
|
||||
|
||||
if (abstractUserManager != null)
|
||||
{
|
||||
((AbstractUserManager) userManager).fireEvent(user, event);
|
||||
abstractUserManager.fireEvent(user, event);
|
||||
}
|
||||
else if (logger.isWarnEnabled())
|
||||
{
|
||||
logger.warn("user manager is not an instance of AbstractUserManager");
|
||||
}
|
||||
}
|
||||
|
||||
//~--- get methods ----------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Method description
|
||||
*
|
||||
*
|
||||
* @param userManager
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
private static AbstractUserManager getAbstractUserManager(
|
||||
UserManager userManager)
|
||||
{
|
||||
AbstractUserManager abstractUserManager = null;
|
||||
|
||||
if (userManager instanceof UserManagerDecorator)
|
||||
{
|
||||
abstractUserManager = getAbstractUserManager(
|
||||
((UserManagerDecorator) userManager).getDecorated());
|
||||
}
|
||||
else if (userManager instanceof AbstractUserManager)
|
||||
{
|
||||
abstractUserManager = (AbstractUserManager) userManager;
|
||||
}
|
||||
|
||||
return abstractUserManager;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user