/** * ***************************************************************************** * * Copyright (c) 2012 Oracle Corporation. * * All rights reserved. This program and the accompanying materials are made * available under the terms of the Eclipse Public License v1.0 which * accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * * Winston Prakash * ****************************************************************************** */ package org.eclipse.hudson.init; import hudson.security.Permission; import org.eclipse.hudson.security.HudsonSecurityEntitiesHolder; import org.eclipse.hudson.security.HudsonSecurityManager; import org.kohsuke.stapler.HttpResponse; import org.kohsuke.stapler.HttpResponses; /** * Provides support for initial setup login if Hudson security is already set * * @author Winston Prakash */ final public class InitialSetupLogin { private HudsonSecurityManager hudsonSecurityManager; private InitialSetup initialSetup; public InitialSetupLogin(InitialSetup initSetup) { initialSetup = initSetup; hudsonSecurityManager = HudsonSecurityEntitiesHolder.getHudsonSecurityManager(); } public HudsonSecurityManager getHudsonSecurityManager() { return hudsonSecurityManager; } public HttpResponse doFinish() { return initialSetup.doFinish(); } public HttpResponse doContinue() { if (!hudsonSecurityManager.hasPermission(Permission.HUDSON_ADMINISTER)) { return HttpResponses.forbidden(); } initialSetup.getServletContext().setAttribute("app", initialSetup); return HttpResponses.ok(); } public boolean needsAdminLogin() { return !hudsonSecurityManager.hasPermission(Permission.HUDSON_ADMINISTER); } }