mirror of
https://github.com/scm-manager/scm-manager.git
synced 2025-11-08 22:45:45 +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.SCMContext;
|
||||||
import sonia.scm.group.GroupNames;
|
import sonia.scm.group.GroupNames;
|
||||||
|
import sonia.scm.security.Role;
|
||||||
import sonia.scm.security.ScmRealm;
|
import sonia.scm.security.ScmRealm;
|
||||||
import sonia.scm.user.User;
|
import sonia.scm.user.User;
|
||||||
import sonia.scm.util.AssertUtil;
|
import sonia.scm.util.AssertUtil;
|
||||||
@@ -122,9 +123,19 @@ public class DefaultAdministrationContext implements AdministrationContext
|
|||||||
AssertUtil.assertIsNotNull(action);
|
AssertUtil.assertIsNotNull(action);
|
||||||
|
|
||||||
if (ThreadContext.getSecurityManager() != null)
|
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);
|
doRunAsInWebSessionContext(action);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
doRunAsInNonWebSessionContext(action);
|
doRunAsInNonWebSessionContext(action);
|
||||||
|
|||||||
Reference in New Issue
Block a user