1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.apache.myfaces.tobago.security;
21
22 import org.apache.myfaces.tobago.component.UILink;
23
24 import javax.el.MethodExpression;
25 import javax.faces.context.FacesContext;
26
27 public class UISecuredLink extends UILink {
28
29 public static final String COMPONENT_TYPE = "org.apache.myfaces.tobago.SecuredLink";
30
31
32
33
34 public UISecuredLink() {
35 }
36
37 @Override
38 public boolean isDisabled() {
39 if (getActionExpression() instanceof CheckAuthorisationMethodExpression) {
40 return !((CheckAuthorisationMethodExpression)
41 getActionExpression()).isAuthorized(FacesContext.getCurrentInstance())
42 || super.isDisabled();
43 }
44 return super.isDisabled();
45 }
46
47 @Override
48 public void setActionExpression(MethodExpression actionExpression) {
49 if (actionExpression != null) {
50 super.setActionExpression(new CheckAuthorisationMethodExpression(actionExpression));
51 } else {
52 super.setActionExpression(actionExpression);
53 }
54 }
55 }