diff --git a/scm-core/src/main/java/sonia/scm/config/ScmConfigurationChangedListener.java b/scm-core/src/main/java/sonia/scm/config/ScmConfigurationChangedListener.java new file mode 100644 index 0000000000..7460c29297 --- /dev/null +++ b/scm-core/src/main/java/sonia/scm/config/ScmConfigurationChangedListener.java @@ -0,0 +1,29 @@ +package sonia.scm.config; + +import com.github.legman.Subscribe; +import com.google.inject.Inject; +import sonia.scm.EagerSingleton; +import sonia.scm.SCMContext; +import sonia.scm.plugin.Extension; +import sonia.scm.user.UserManager; + +@Extension +@EagerSingleton +public class ScmConfigurationChangedListener { + + private UserManager userManager; + + @Inject + public ScmConfigurationChangedListener(UserManager userManager) { + this.userManager = userManager; + } + + @Subscribe + public void handleEvent(ScmConfigurationChangedEvent event) { + if (event.getConfiguration().isAnonymousAccessEnabled() && !userManager.contains(SCMContext.USER_ANONYMOUS)) { + userManager.create(SCMContext.ANONYMOUS); + } + } +} + + diff --git a/scm-webapp/src/main/java/sonia/scm/api/v2/resources/ConfigResource.java b/scm-webapp/src/main/java/sonia/scm/api/v2/resources/ConfigResource.java index 71570909c9..6c568609ee 100644 --- a/scm-webapp/src/main/java/sonia/scm/api/v2/resources/ConfigResource.java +++ b/scm-webapp/src/main/java/sonia/scm/api/v2/resources/ConfigResource.java @@ -3,7 +3,6 @@ package sonia.scm.api.v2.resources; import com.webcohesion.enunciate.metadata.rs.ResponseCode; import com.webcohesion.enunciate.metadata.rs.StatusCodes; import com.webcohesion.enunciate.metadata.rs.TypeHint; -import sonia.scm.SCMContext; import sonia.scm.config.ConfigurationPermissions; import sonia.scm.config.ScmConfiguration; import sonia.scm.repository.NamespaceStrategyValidator; @@ -96,10 +95,6 @@ public class ConfigResource { ScmConfigurationUtil.getInstance().store(configuration); } - if (config.isAnonymousAccessEnabled() && !userManager.contains(SCMContext.USER_ANONYMOUS)) { - userManager.create(SCMContext.ANONYMOUS); - } - return Response.noContent().build(); } }