1 package org.musicontroller.gui;
2
3 import org.acegisecurity.Authentication;
4 import org.acegisecurity.context.HttpSessionContextIntegrationFilter;
5 import org.acegisecurity.context.SecurityContext;
6 import org.apache.tapestry.event.PageBeginRenderListener;
7 import org.apache.tapestry.event.PageEvent;
8 import org.apache.tapestry.html.BasePage;
9 import org.apache.tapestry.web.WebSession;
10 import org.musicontroller.security.User;
11
12
13
14
15
16
17
18 public abstract class Welcome extends BasePage implements PageBeginRenderListener {
19 public abstract void setUser(User user);
20 public abstract String getWelcomeMessage();
21 public abstract void setWelcomeMessage(String message);
22
23 public void pageBeginRender(PageEvent ev) {
24 Authentication auth = null;
25
26 WebSession session = ev.getRequestCycle().getInfrastructure().getRequest().getSession(false);
27 if (session!=null) {
28 SecurityContext sc = (SecurityContext) session.getAttribute(HttpSessionContextIntegrationFilter.ACEGI_SECURITY_CONTEXT_KEY);
29 if (sc!=null) {
30 auth = sc.getAuthentication();
31 }
32 }
33 if (auth!=null && auth.getPrincipal() instanceof User) {
34 User user = (User) auth.getPrincipal();
35 setUser(user);
36 setWelcomeMessage("Welcome "+user.getLoginname()+", you have successfully logged on!");
37 } else {
38 setWelcomeMessage("You are not logged in.");
39 }
40 }
41
42 public abstract User getUser();
43
44 public long getUserid() {
45 User user = getUser();
46 return user==null?-1L:user.getId();
47 }
48
49 public String getPasshash() {
50 User user = getUser();
51 return user==null ? "" : user.getPassword();
52 }
53
54 }