[Yanel-commits] rev 48955 -
public/yanel/trunk/src/contributions/resources/policymanager/src/java/org/wyona/yanel/impl/resources/policymanager
michi at wyona.com
michi at wyona.com
Wed Apr 21 16:10:45 CEST 2010
Author: michi
Date: 2010-04-21 16:10:45 +0200 (Wed, 21 Apr 2010)
New Revision: 48955
Modified:
public/yanel/trunk/src/contributions/resources/policymanager/src/java/org/wyona/yanel/impl/resources/policymanager/PolicyManagerResource.java
Log:
resolve groups
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-04-21 13:26:47 UTC (rev 48954)
+++ public/yanel/trunk/src/contributions/resources/policymanager/src/java/org/wyona/yanel/impl/resources/policymanager/PolicyManagerResource.java 2010-04-21 14:10:45 UTC (rev 48955)
@@ -474,6 +474,7 @@
sb.append("<?xml version=\"1.0\"?><policy-viewer xmlns=\"http://www.wyona.org/security/1.0\">");
+ // TODO: ...
sb.append("<usecases><usecase id=\"r\">Read</usecase><usecase id=\"w\">Write</usecase></usecases>");
sb.append("<policies>");
@@ -527,11 +528,12 @@
* @param showParents Show the policies of the parent nodes, which allows to figure out how the policy has been aggregated
*/
private StringBuilder getAggregatedPolicyAsXML(String path, String contentItemId, int orderedBy, boolean showParents) throws Exception {
- log.warn("DEBUG: Get policies for path: " + path);
+ log.warn("DEBUG: Get aggregated policy for path: " + path);
StringBuilder sb = new StringBuilder();
sb.append("<?xml version=\"1.0\"?><policy-viewer xmlns=\"http://www.wyona.org/security/1.0\">");
+ // TODO: ...
sb.append("<usecases><usecase id=\"r\">Read</usecase><usecase id=\"w\">Write</usecase></usecases>");
sb.append("<policies>");
@@ -552,7 +554,16 @@
}
GroupPolicy[] gp = up[k].getGroupPolicies();
for (int j = 0; j < gp.length; j++) {
- sb.append("<group id=\"" + gp[j].getId() + "\" permission=\"" + gp[j].getPermission() + "\" naz-permission-unlike-members=\"true\"/>"); // TODO: naz ...
+ Item[] members = getRealm().getIdentityManager().getGroupManager().getGroup(gp[j].getId()).getMembers();
+ for (int i = 0; i < members.length; i++) {
+ if (members[i] instanceof User) {
+ sb.append("<user id=\"" + members[i].getID() + "\" permission=\"" + gp[j].getPermission() + "\" naz-permission-unlike-members=\"true\"/>"); // TODO: naz ...
+ } else if (members[i] instanceof Group) {
+ log.warn("Sub-group '" + members[i].getID() + "' of group '" + gp[j].getId() + "' needs to be resolved!");
+ } else {
+ log.warn("No such member type implemented!");
+ }
+ }
}
sb.append("</usecase>");
}
More information about the Yanel-commits
mailing list