You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

GitBlitWebSession.java 1.5KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. package com.gitblit.wicket;
  2. import java.util.TimeZone;
  3. import org.apache.wicket.Request;
  4. import org.apache.wicket.Session;
  5. import org.apache.wicket.protocol.http.WebSession;
  6. import org.apache.wicket.protocol.http.request.WebClientInfo;
  7. import com.gitblit.wicket.models.UserModel;
  8. public final class GitBlitWebSession extends WebSession {
  9. private static final long serialVersionUID = 1L;
  10. protected TimeZone timezone = null;
  11. private UserModel user = null;
  12. private String errorMessage = null;
  13. public GitBlitWebSession(Request request) {
  14. super(request);
  15. }
  16. public void invalidate() {
  17. super.invalidate();
  18. user = null;
  19. }
  20. public boolean isLoggedIn() {
  21. return user != null;
  22. }
  23. public boolean canAdmin() {
  24. if (user == null) {
  25. return false;
  26. }
  27. return user.canAdmin();
  28. }
  29. public UserModel getUser() {
  30. return user;
  31. }
  32. public void setUser(UserModel user) {
  33. this.user = user;
  34. }
  35. public TimeZone getTimezone() {
  36. if (timezone == null) {
  37. timezone = ((WebClientInfo) getClientInfo()).getProperties().getTimeZone();
  38. }
  39. // use server timezone if we can't determine the client timezone
  40. if (timezone == null) {
  41. timezone = TimeZone.getDefault();
  42. }
  43. return timezone;
  44. }
  45. public void cacheErrorMessage(String message) {
  46. this.errorMessage = message;
  47. }
  48. public String clearErrorMessage() {
  49. String msg = errorMessage;
  50. errorMessage = null;
  51. return msg;
  52. }
  53. public static GitBlitWebSession get() {
  54. return (GitBlitWebSession) Session.get();
  55. }
  56. }