1 24 package org.ofbiz.minilang.method.conditional; 25 26 import org.ofbiz.base.util.UtilValidate; 27 import org.ofbiz.entity.GenericValue; 28 import org.ofbiz.minilang.SimpleMethod; 29 import org.ofbiz.minilang.method.MethodContext; 30 import org.ofbiz.security.Security; 31 import org.w3c.dom.Element ; 32 33 40 public class HasPermissionCondition implements Conditional { 41 42 SimpleMethod simpleMethod; 43 44 String permission; 45 String action; 46 47 public HasPermissionCondition(Element element, SimpleMethod simpleMethod) { 48 this.simpleMethod = simpleMethod; 49 50 this.permission = element.getAttribute("permission"); 51 this.action = element.getAttribute("action"); 52 } 53 54 public boolean checkCondition(MethodContext methodContext) { 55 boolean runSubOps = false; 57 58 GenericValue userLogin = methodContext.getUserLogin(); 60 if (userLogin != null) { 61 String permission = methodContext.expandString(this.permission); 62 String action = methodContext.expandString(this.action); 63 64 Security security = methodContext.getSecurity(); 65 if (action != null && action.length() > 0) { 66 if (security.hasEntityPermission(permission, action, userLogin)) { 68 runSubOps = true; 69 } 70 } else { 71 if (security.hasPermission(permission, userLogin)) { 73 runSubOps = true; 74 } 75 } 76 } 77 78 return runSubOps; 79 } 80 81 public void prettyPrint(StringBuffer messageBuffer, MethodContext methodContext) { 82 messageBuffer.append("has-permission["); 83 messageBuffer.append(this.permission); 84 if (UtilValidate.isNotEmpty(this.action)) { 85 messageBuffer.append(":"); 86 messageBuffer.append(this.action); 87 } 88 messageBuffer.append("]"); 89 } 90 } 91 | Popular Tags |