mirror of
https://github.com/scm-manager/scm-manager.git
synced 2025-11-09 06:55:47 +01:00
fix IllegalArgumentException with nested privileged actions
This commit is contained in:
@@ -52,6 +52,7 @@ import org.slf4j.LoggerFactory;
|
||||
|
||||
import sonia.scm.SCMContext;
|
||||
import sonia.scm.group.GroupNames;
|
||||
import sonia.scm.security.Role;
|
||||
import sonia.scm.security.ScmRealm;
|
||||
import sonia.scm.user.User;
|
||||
import sonia.scm.util.AssertUtil;
|
||||
@@ -122,9 +123,19 @@ public class DefaultAdministrationContext implements AdministrationContext
|
||||
AssertUtil.assertIsNotNull(action);
|
||||
|
||||
if (ThreadContext.getSecurityManager() != null)
|
||||
{
|
||||
Subject subject = SecurityUtils.getSubject();
|
||||
|
||||
if (subject.hasRole(Role.ADMIN))
|
||||
{
|
||||
logger.debug(
|
||||
"user is already an admin, we need no system account session");
|
||||
}
|
||||
else
|
||||
{
|
||||
doRunAsInWebSessionContext(action);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
doRunAsInNonWebSessionContext(action);
|
||||
|
||||
Reference in New Issue
Block a user