01: package de.webman.acl.eventhandler;
02:
03: import java.util.*;
04:
05: import com.teamkonzept.web.*;
06: import com.teamkonzept.lib.*;
07: import com.teamkonzept.webman.*;
08: import com.teamkonzept.webman.mainint.*;
09: import com.teamkonzept.webman.mainint.events.*;
10: import de.webman.acl.*;
11:
12: /**
13: Displays a form for changing the definition of a user
14: * @author $Author: alex $
15: * @version $Revision: 1.3 $
16: */
17: public class ACUserGrantRightEventHandler extends DefaultEventHandler
18: implements ParameterTypes, DatabaseDefaults, FrameConstants {
19: private ACUserGrantRightEventHandler() {
20: }
21:
22: private static ACUserGrantRightEventHandler instance = new ACUserGrantRightEventHandler();
23:
24: public static ACUserGrantRightEventHandler getInstance() {
25: return instance;
26: }
27:
28: public void handleEvent(TKEvent evt) throws TKException {
29: try {
30: WebManEvent.checkEvent(evt.getRemoteUser(), evt.getName(),
31: ContextConstants.ACCESS_CONTROL);
32: String loginId = evt.getParameter(PARAMETER, "LOGIN_ID");
33: String contextId = evt
34: .getParameter(PARAMETER, "CONTEXT_ID");
35: String roleId = evt.getParameter(PARAMETER, "ROLE_ID");
36: String source = evt.getParameter(PARAMETER, "SOURCE");
37:
38: Login theUser = null;
39: Context theContext = null;
40: Role theRole = null;
41:
42: if (loginId.length() > 0) {
43: theUser = LoginFactory.getInstance().getLogin(
44: new Integer(loginId));
45: }
46: if (contextId.length() > 0) {
47: theContext = ContextFactory.getInstance().getContext(
48: new Integer(contextId));
49: }
50: if (roleId.length() > 0) {
51: theRole = RoleFactory.getInstance().getRole(
52: new Integer(roleId));
53: }
54: if (theUser != null && theRole != null
55: && theContext != null) {
56: PolicyFactory.getInstance().createPolicy(theUser,
57: theRole, theContext, null, null, true);
58: }
59: TKHTMLTemplate t = null;
60: if (source.equals("USER")) {
61: t = evt.getPrepHTMLTemplate("f_ac_user.tmpl");
62: HTMLUtils.fillFrameSet(t, HTMLUtils.LEFT_FRAME_WIDTH,
63: "AC_USER_LIST", "AC_USER_EDIT");
64: t.set("USER_ID", loginId);
65: } else if (source.equals("GROUP")) {
66: t = evt.getPrepHTMLTemplate("f_ac_group.tmpl");
67: HTMLUtils.fillFrameSet(t, HTMLUtils.LEFT_FRAME_WIDTH,
68: "AC_GROUP_LIST", "AC_GROUP_EDIT");
69: t.set("GROUP_ID", loginId);
70: }
71: String editPage = evt.getParameter(PARAMETER, "EDIT_PAGE");
72: t.set("EDIT_PAGE", (editPage == null ? "1" : editPage));
73: WebManEvent.fillEventsIntoTemplate(evt.getRemoteUser(), t,
74: ACCESS_CONTROL);
75: evt.finishTemplate(t);
76:
77: } catch (Throwable e) {
78: throw WebmanExceptionHandler.getException(e);
79: }
80: }
81:
82: public boolean isHandler(TKEvent evt) {
83: return evt.getName().equalsIgnoreCase("AC_USER_GRANT_RIGHT");
84: }
85:
86: }
|