[Yanel-commits] rev 54762 -
public/yanel/trunk/src/contributions/resources/policymanager/src/java/org/wyona/yanel/impl/resources/policymanager
michi at wyona.com
michi at wyona.com
Thu Nov 18 10:57:13 CET 2010
Author: michi
Date: 2010-11-18 10:57:13 +0100 (Thu, 18 Nov 2010)
New Revision: 54762
Modified:
public/yanel/trunk/src/contributions/resources/policymanager/src/java/org/wyona/yanel/impl/resources/policymanager/PolicyManagerResource.java
Log:
get policy by usecases finished
Modified: public/yanel/trunk/src/contributions/resources/policymanager/src/java/org/wyona/yanel/impl/resources/policymanager/PolicyManagerResource.java
===================================================================
--- public/yanel/trunk/src/contributions/resources/policymanager/src/java/org/wyona/yanel/impl/resources/policymanager/PolicyManagerResource.java 2010-11-18 09:50:43 UTC (rev 54761)
+++ public/yanel/trunk/src/contributions/resources/policymanager/src/java/org/wyona/yanel/impl/resources/policymanager/PolicyManagerResource.java 2010-11-18 09:57:13 UTC (rev 54762)
@@ -155,8 +155,11 @@
} else {
//response.setContentType("text/html; charset=" + DEFAULT_ENCODING);
String identitiesURL = backToRealm + getPath().substring(1) + "?" + PARAMETER_USECASE + "=update&get=identities";
+
//String policyURL = backToRealm + getPath().substring(1) + "?" + PARAMETER_USECASE + "=update&get=policy-by-usecases";
String policyURL = backToRealm + getPath().substring(1) + "?" + PARAMETER_USECASE + "=update&get=policy";
+ // DEPRECATED: String policyURL = backToRealm + getPath().substring(1) + "?" + PARAMETER_USECASE + "=update&get=policy";
+
String saveURL = backToRealm + getPath().substring(1) + "?" + PARAMETER_USECASE +"=update&post=policy"; // This doesn't seem to work with all browsers!
String cancelURL = getReferer(backToRealm);
@@ -276,7 +279,7 @@
}
/**
- * Get policy as XML sorted by usecases
+ * Get policy as XML sorted by usecases (TODO: Move this into security library as utility class)
*
* @param pm Policy manager
* @param path Policy path
@@ -297,9 +300,7 @@
} else {
sb.append("<policy xmlns=\"http://www.wyona.org/security/1.0\" use-inherited-policies=\"" + policy.useInheritedPolicies() + "\">");
- // TODO: Use getPolicyItems(policy) instead ...
- sb.append(getPolicyIdentities(policy));
- sb.append(getPolicyGroups(policy));
+ sb.append(getPolicyUsecasesAsXML(policy));
}
} catch (Exception e) {
log.error(e.getMessage(), e);
@@ -344,6 +345,36 @@
}
/**
+ * Get policy usecases as XML
+ * @param p Policy
+ */
+ static public StringBuilder getPolicyUsecasesAsXML(Policy p) {
+ StringBuilder sb = new StringBuilder();
+ UsecasePolicy[] up = p.getUsecasePolicies();
+ for (int i = 0; i < up.length; i++) {
+ sb.append("<usecase id=\"" + up[i].getName() + "\">");
+ org.wyona.security.core.ItemPolicy[] ip = up[i].getItemPolicies();
+ for (int k = 0; k < ip.length; k++) {
+ if (ip[k] instanceof IdentityPolicy) {
+ Identity id = ((IdentityPolicy)ip[k]).getIdentity();
+ if (id.isWorld()) {
+ sb.append("<world permission=\"" + ip[k].getPermission() + "\"/>");
+ } else {
+ sb.append("<user id=\"" + id.getUsername() + "\" permission=\"" + ip[k].getPermission() + "\"/>");
+ }
+ } else if (ip[k] instanceof GroupPolicy) {
+ sb.append("<group id=\"" + ip[k].getId() + "\" permission=\"" + ip[k].getPermission() + "\"/>");
+ } else {
+ log.error("No such policy item type implemented: " + ip[k]);
+ }
+ }
+ sb.append("</usecase>");
+ }
+
+ return sb;
+ }
+
+ /**
* Get users (TODO: Move this code into the security package)
* XXX(?) REFACTORME this method seems suspiciously similar to {@link #getPolicyGroups(Policy)}...
*/
More information about the Yanel-commits
mailing list