diff --git a/scm-webapp/src/main/java/sonia/scm/ScmState.java b/scm-webapp/src/main/java/sonia/scm/ScmState.java index c4e6210593..5565038507 100644 --- a/scm-webapp/src/main/java/sonia/scm/ScmState.java +++ b/scm-webapp/src/main/java/sonia/scm/ScmState.java @@ -36,9 +36,12 @@ package sonia.scm; //~--- non-JDK imports -------------------------------------------------------- import sonia.scm.user.User; +import sonia.scm.web.security.WebSecurityContext; //~--- JDK imports ------------------------------------------------------------ +import java.util.Collection; + import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlElement; @@ -63,12 +66,15 @@ public class ScmState * Constructs ... * * - * @param user + * + * @param securityContext * @param repositoryTypes */ - public ScmState(User user, Type[] repositoryTypes) + public ScmState(WebSecurityContext securityContext, + Collection repositoryTypes) { - this.user = user; + this.user = securityContext.getUser(); + this.groups = securityContext.getGroups(); this.repositoryTypes = repositoryTypes; } @@ -80,7 +86,18 @@ public class ScmState * * @return */ - public Type[] getRepositoryTypes() + public Collection getGroups() + { + return groups; + } + + /** + * Method description + * + * + * @return + */ + public Collection getRepositoryTypes() { return repositoryTypes; } @@ -109,13 +126,24 @@ public class ScmState //~--- set methods ---------------------------------------------------------- + /** + * Method description + * + * + * @param groups + */ + public void setGroups(Collection groups) + { + this.groups = groups; + } + /** * Method description * * * @param repositoryTypes */ - public void setRepositoryTypes(Type[] repositoryTypes) + public void setRepositoryTypes(Collection repositoryTypes) { this.repositoryTypes = repositoryTypes; } @@ -144,9 +172,12 @@ public class ScmState //~--- fields --------------------------------------------------------------- + /** Field description */ + private Collection groups; + /** Field description */ @XmlElement(name = "repositoryTypes") - private Type[] repositoryTypes; + private Collection repositoryTypes; /** Field description */ private boolean success = true; diff --git a/scm-webapp/src/main/java/sonia/scm/api/rest/resources/AuthenticationResource.java b/scm-webapp/src/main/java/sonia/scm/api/rest/resources/AuthenticationResource.java index 4bc0b5c186..52e9c71ad7 100644 --- a/scm-webapp/src/main/java/sonia/scm/api/rest/resources/AuthenticationResource.java +++ b/scm-webapp/src/main/java/sonia/scm/api/rest/resources/AuthenticationResource.java @@ -99,7 +99,8 @@ public class AuthenticationResource if (user != null) { - resp = Response.ok(getState(user)).build(); + resp = Response.ok(new ScmState(securityContext, + repositoryManger.getTypes())).build(); } else { @@ -135,7 +136,7 @@ public class AuthenticationResource if (user != null) { - state = getState(user); + state = new ScmState(securityContext, repositoryManger.getTypes()); } else { @@ -167,7 +168,7 @@ public class AuthenticationResource logger.debug("return state for user {}", user.getName()); } - state = getState(user); + state = new ScmState(securityContext, repositoryManger.getTypes()); response = Response.ok(state).build(); } else @@ -178,25 +179,6 @@ public class AuthenticationResource return response; } - /** - * Method description - * - * - * - * @param user - * - * @return - */ - private ScmState getState(User user) - { - ScmState state = new ScmState(); - - state.setUser(user); - state.setRepositoryTypes(repositoryManger.getTypes().toArray(new Type[0])); - - return state; - } - //~--- fields --------------------------------------------------------------- /** Field description */