| | |
| | |
|
| | | import java.util.LinkedHashMap;
|
| | | import java.util.Map;
|
| | | import java.util.ResourceBundle;
|
| | | import java.util.TimeZone;
|
| | |
|
| | | import javax.servlet.http.Cookie;
|
| | |
| | | import org.apache.wicket.Application;
|
| | | import org.apache.wicket.MarkupContainer;
|
| | | import org.apache.wicket.PageParameters;
|
| | | import org.apache.wicket.RestartResponseAtInterceptPageException;
|
| | | import org.apache.wicket.RedirectToUrlException;
|
| | | import org.apache.wicket.RestartResponseException;
|
| | | import org.apache.wicket.markup.html.CSSPackageResource;
|
| | | import org.apache.wicket.markup.html.WebPage;
|
| | |
| | | import org.apache.wicket.markup.html.link.ExternalLink;
|
| | | import org.apache.wicket.markup.html.panel.FeedbackPanel;
|
| | | import org.apache.wicket.markup.html.panel.Fragment;
|
| | | import org.apache.wicket.protocol.http.RequestUtils;
|
| | | import org.apache.wicket.protocol.http.WebRequest;
|
| | | import org.apache.wicket.protocol.http.WebResponse;
|
| | | import org.apache.wicket.protocol.http.servlet.ServletWebRequest;
|
| | | import org.apache.wicket.request.RequestParameters;
|
| | | import org.slf4j.Logger;
|
| | | import org.slf4j.LoggerFactory;
|
| | |
|
| | |
| | | import com.gitblit.Keys;
|
| | | import com.gitblit.models.RepositoryModel;
|
| | | import com.gitblit.models.UserModel;
|
| | | import com.gitblit.utils.TimeUtils;
|
| | | import com.gitblit.wicket.GitBlitWebSession;
|
| | | import com.gitblit.wicket.WicketUtils;
|
| | | import com.gitblit.wicket.panels.LinkPanel;
|
| | |
| | | public abstract class BasePage extends WebPage {
|
| | |
|
| | | private final Logger logger;
|
| | | |
| | | private transient TimeUtils timeUtils;
|
| | |
|
| | | public BasePage() {
|
| | | super();
|
| | |
| | | if (GitBlit.getBoolean(Keys.web.useResponsiveLayout, true)) {
|
| | | add(CSSPackageResource.getHeaderContribution("bootstrap/css/bootstrap-responsive.css"));
|
| | | }
|
| | | }
|
| | | |
| | | protected String getLanguageCode() {
|
| | | return GitBlitWebSession.get().getLocale().getLanguage();
|
| | | }
|
| | | |
| | | protected TimeUtils getTimeUtils() {
|
| | | if (timeUtils == null) {
|
| | | ResourceBundle bundle; |
| | | try {
|
| | | bundle = ResourceBundle.getBundle("com.gitblit.wicket.GitBlitWebApp", GitBlitWebSession.get().getLocale());
|
| | | } catch (Throwable t) {
|
| | | bundle = ResourceBundle.getBundle("com.gitblit.wicket.GitBlitWebApp");
|
| | | }
|
| | | timeUtils = new TimeUtils(bundle);
|
| | | }
|
| | | return timeUtils;
|
| | | }
|
| | |
|
| | | @Override
|
| | |
| | | // Set Cookie
|
| | | WebResponse response = (WebResponse) getRequestCycle().getResponse();
|
| | | GitBlit.self().setCookie(response, user);
|
| | | continueToOriginalDestination();
|
| | | |
| | | session.continueRequest();
|
| | | }
|
| | | }
|
| | |
|
| | |
| | | // inject username into repository url if authentication is required
|
| | | if (repository.accessRestriction.exceeds(AccessRestrictionType.NONE)
|
| | | && GitBlitWebSession.get().isLoggedIn()) {
|
| | | String username = GitBlitWebSession.get().getUser().username;
|
| | | String username = GitBlitWebSession.get().getUsername();
|
| | | sb.insert(sb.indexOf("://") + 3, username + "@");
|
| | | }
|
| | | return sb.toString();
|
| | |
| | | }
|
| | |
|
| | | public void error(String message, boolean redirect) {
|
| | | logger.error(message);
|
| | | logger.error(message + " for " + GitBlitWebSession.get().getUsername());
|
| | | if (redirect) {
|
| | | GitBlitWebSession.get().cacheErrorMessage(message);
|
| | | throw new RestartResponseException(getApplication().getHomePage());
|
| | | RequestParameters params = getRequest().getRequestParameters();
|
| | | String relativeUrl = urlFor(RepositoriesPage.class, null).toString();
|
| | | String absoluteUrl = RequestUtils.toAbsolutePath(relativeUrl);
|
| | | throw new RedirectToUrlException(absoluteUrl);
|
| | | } else {
|
| | | super.error(message);
|
| | | }
|
| | |
| | | }
|
| | |
|
| | | public void authenticationError(String message) {
|
| | | logger.error(message);
|
| | | if (GitBlitWebSession.get().isLoggedIn()) {
|
| | | error(message, true);
|
| | | } else {
|
| | | throw new RestartResponseAtInterceptPageException(RepositoriesPage.class);
|
| | | logger.error(getRequest().getURL() + " for " + GitBlitWebSession.get().getUsername());
|
| | | if (!GitBlitWebSession.get().isLoggedIn()) {
|
| | | // cache the request if we have not authenticated.
|
| | | // the request will continue after authentication.
|
| | | GitBlitWebSession.get().cacheRequest(getClass());
|
| | | }
|
| | | error(message, true);
|
| | | }
|
| | |
|
| | | /**
|
| | |
| | |
|
| | | if (GitBlitWebSession.get().isLoggedIn()) {
|
| | | // username, logout, and change password
|
| | | add(new Label("username", GitBlitWebSession.get().getUser().toString() + ":"));
|
| | | add(new Label("username", GitBlitWebSession.get().getUser().getDisplayName() + ":"));
|
| | | add(new LinkPanel("loginLink", null, markupProvider.getString("gb.logout"),
|
| | | LogoutPage.class));
|
| | | boolean editCredentials = GitBlit.self().supportsCredentialChanges();
|