diff --git a/scm-webapp/src/main/java/sonia/scm/api/rest/resources/AbstractManagerResource.java b/scm-webapp/src/main/java/sonia/scm/api/rest/resources/AbstractManagerResource.java index 03797d1be8..67a706cd77 100644 --- a/scm-webapp/src/main/java/sonia/scm/api/rest/resources/AbstractManagerResource.java +++ b/scm-webapp/src/main/java/sonia/scm/api/rest/resources/AbstractManagerResource.java @@ -41,6 +41,7 @@ import org.slf4j.LoggerFactory; import sonia.scm.LastModifiedAware; import sonia.scm.Manager; import sonia.scm.ModelObject; +import sonia.scm.security.ScmSecurityException; import sonia.scm.util.Util; //~--- JDK imports ------------------------------------------------------------ @@ -56,7 +57,6 @@ import javax.ws.rs.PUT; import javax.ws.rs.Path; import javax.ws.rs.PathParam; import javax.ws.rs.Produces; -import javax.ws.rs.WebApplicationException; import javax.ws.rs.core.CacheControl; import javax.ws.rs.core.Context; import javax.ws.rs.core.EntityTag; @@ -145,20 +145,27 @@ public abstract class AbstractManagerResource * * @param userManager * @param encryptionHandler + * @param securityContextProvider */ @Inject public UserResource(UserManager userManager, - EncryptionHandler encryptionHandler) + EncryptionHandler encryptionHandler, + Provider securityContextProvider) { super(userManager); this.encryptionHandler = encryptionHandler; + this.securityContextProvider = securityContextProvider; + } + + //~--- get methods ---------------------------------------------------------- + + /** + * Method description + * + * + * @param request + * @param id + * + * @return + */ + @Override + public Response get(Request request, String id) + { + SecurityUtil.assertIsAdmin(securityContextProvider); + + return super.get(request, id); } //~--- methods -------------------------------------------------------------- @@ -224,4 +251,7 @@ public class UserResource extends AbstractManagerResource /** Field description */ private EncryptionHandler encryptionHandler; + + /** Field description */ + private Provider securityContextProvider; }