[Yanel-commits] rev 45754 -
public/yanel/trunk/src/contributions/resources/policymanager/src/java/org/wyona/yanel/impl/resources/policymanager
michi at wyona.com
michi at wyona.com
Mon Nov 30 15:30:12 CET 2009
Author: michi
Date: 2009-11-30 15:30:12 +0100 (Mon, 30 Nov 2009)
New Revision: 45754
Modified:
public/yanel/trunk/src/contributions/resources/policymanager/src/java/org/wyona/yanel/impl/resources/policymanager/PolicyViewer.java
Log:
check permissions
Modified: public/yanel/trunk/src/contributions/resources/policymanager/src/java/org/wyona/yanel/impl/resources/policymanager/PolicyViewer.java
===================================================================
--- public/yanel/trunk/src/contributions/resources/policymanager/src/java/org/wyona/yanel/impl/resources/policymanager/PolicyViewer.java 2009-11-30 13:09:35 UTC (rev 45753)
+++ public/yanel/trunk/src/contributions/resources/policymanager/src/java/org/wyona/yanel/impl/resources/policymanager/PolicyViewer.java 2009-11-30 14:30:12 UTC (rev 45754)
@@ -65,7 +65,7 @@
sb.append("<tr valign=\"top\"><td>Policy</td>" + getPoliciesAsXHTML(pm, gm, path, contentItemId, aggregate, orderedBy, showAbbreviatedLabels) + "</tr>");
aggregate = true;
- sb.append("<tr valign=\"top\"><td>Aggregated Policy</td>" + getPoliciesAsXHTML(pm, gm, path, contentItemId, aggregate, orderedBy, showAbbreviatedLabels) + "</tr>");
+ sb.append("<tr valign=\"top\"><td>Aggregated/Resolved Policy</td>" + getPoliciesAsXHTML(pm, gm, path, contentItemId, aggregate, orderedBy, showAbbreviatedLabels) + "</tr>");
sb.append("</table></p>");
} else {
sb.append("<h1>Aggregated Access Policy</h1>");
@@ -179,6 +179,7 @@
* Get policy as XHTML list ordered by usecases
*/
static private StringBuffer getPolicyAsXHTMLListOrderedByUsecases(Policy p, boolean abbreviation) {
+ // TODO: Also display workflow transition IDs! (but how do we get these???)
StringBuffer sb = new StringBuffer();
UsecasePolicy[] up = p.getUsecasePolicies();
if (up != null && up.length > 0) {
@@ -225,7 +226,11 @@
IdentityPolicy[] idps = up[i].getIdentityPolicies();
for (int j = 0; j < idps.length; j++) {
if (idps[j].getIdentity().isWorld()) {
- worldRights.add(up[i].getName());
+ if (!idps[j].getPermission()) {
+ worldRights.add("<del>" + up[i].getName() + "</del>") ;
+ } else {
+ worldRights.add(up[i].getName());
+ }
} else {
Vector userRights;
if ((userRights = (Vector) users.get(idps[j].getIdentity().getUsername())) != null) {
@@ -236,6 +241,8 @@
}
if (idps[j].getPermission()) {
userRights.add(up[i].getName());
+ } else {
+ userRights.add("<del>" + up[i].getName() + "</del>");
}
}
}
@@ -251,6 +258,8 @@
}
if (gps[j].getPermission()) {
groupRights.add(up[i].getName());
+ } else {
+ groupRights.add("<del>" + up[i].getName() + "</del>");
}
}
}
@@ -266,21 +275,23 @@
}
if (worldRights.size() > 0) {
- sb.append("<li>WORLD (" + getCommaSeparatedList(worldRights, pm) + ")</li>");
+ sb.append("<li>WORLD (" + getRightsAsCommaSeparatedList(worldRights, pm) + ")</li>");
}
// Users
java.util.Iterator userIterator = users.keySet().iterator();
while (userIterator.hasNext()) {
String userName = (String) userIterator.next();
- sb.append("<li>" + getUserLabel(abbreviation) + ": " + userName + " (" + getCommaSeparatedList((Vector) users.get(userName), pm) + ")</li>");
+ Vector userRights = (Vector) users.get(userName);
+ sb.append("<li>" + getUserLabel(abbreviation) + ": " + userName + " (" + getRightsAsCommaSeparatedList(userRights, pm) + ")</li>");
}
//Groups
java.util.Iterator groupIterator = groups.keySet().iterator();
while (groupIterator.hasNext()) {
String groupName = (String) groupIterator.next();
- String rights = getCommaSeparatedList((Vector) groups.get(groupName), pm);
+ Vector groupRights = (Vector) groups.get(groupName);
+ String rights = getRightsAsCommaSeparatedList(groupRights, pm);
if (!dismantleGroups) {
sb.append("<li>" + getGroupLabel(abbreviation) + ": " + groupName + " (" + rights + ")</li>");
} else {
@@ -320,15 +331,15 @@
* @param rights Rights
* @param pm PolicyManager
*/
- private static String getCommaSeparatedList(Vector rights, PolicyManager pm) {
+ private static String getRightsAsCommaSeparatedList(Vector rights, PolicyManager pm) {
StringBuilder sb = new StringBuilder();
try {
String[] usecases = pm.getUsecases();
for (int i = 0; i < usecases.length; i++) {
boolean noSuchRight = true;
for (int k = 0; k < rights.size(); k++) {
- if (usecases[i].equals((String) rights.elementAt(k))) {
- sb.append(usecases[i]);
+ if (((String) rights.elementAt(k)).indexOf(usecases[i]) >= 0) { // NOTE: For example "view" or "<del>view</del>"
+ sb.append((String) rights.elementAt(k));
noSuchRight = false;
break;
}
More information about the Yanel-commits
mailing list