From 0168b5b856a375836ea7032b10ad3abe10a62932 Mon Sep 17 00:00:00 2001 From: Sebastian Sdorra Date: Mon, 20 Sep 2010 15:39:27 +0200 Subject: [PATCH] added path to permission --- .../scm/repository/HgPermissionBuilder.java | 31 ++++---- .../scm/repository/HgPermissionReader.java | 13 +++- .../java/sonia/scm/repository/Permission.java | 77 +++++++++++++++---- 3 files changed, 88 insertions(+), 33 deletions(-) diff --git a/plugins/scm-hg-plugin/src/main/java/sonia/scm/repository/HgPermissionBuilder.java b/plugins/scm-hg-plugin/src/main/java/sonia/scm/repository/HgPermissionBuilder.java index e37035bbd8..0ce269dc39 100644 --- a/plugins/scm-hg-plugin/src/main/java/sonia/scm/repository/HgPermissionBuilder.java +++ b/plugins/scm-hg-plugin/src/main/java/sonia/scm/repository/HgPermissionBuilder.java @@ -3,11 +3,18 @@ * and open the template in the editor. */ + + package sonia.scm.repository; -import java.util.Collection; +//~--- non-JDK imports -------------------------------------------------------- + import sonia.scm.group.Group; +//~--- JDK imports ------------------------------------------------------------ + +import java.util.Collection; + /** * * @author Sebastian Sdorra @@ -72,19 +79,16 @@ public class HgPermissionBuilder name = createGroupString(name); } - if (permission.isReadable()) + if (!firstRead) { - if (!firstRead) - { - read.append(", "); - } - else - { - firstRead = false; - } - - read.append(name); + read.append(", "); } + else + { + firstRead = false; + } + + read.append(name); if (permission.isWriteable()) { @@ -116,7 +120,8 @@ public class HgPermissionBuilder result.append("__").append(name).append(", "); - Group group = /*SCMContext.getContext().getGroupManager().get(name);*/ null; + Group group = /* SCMContext.getContext().getGroupManager().get(name); */ + null; if (group != null) { diff --git a/plugins/scm-hg-plugin/src/main/java/sonia/scm/repository/HgPermissionReader.java b/plugins/scm-hg-plugin/src/main/java/sonia/scm/repository/HgPermissionReader.java index 6136f12324..c941631843 100644 --- a/plugins/scm-hg-plugin/src/main/java/sonia/scm/repository/HgPermissionReader.java +++ b/plugins/scm-hg-plugin/src/main/java/sonia/scm/repository/HgPermissionReader.java @@ -3,12 +3,19 @@ * and open the template in the editor. */ + + package sonia.scm.repository; +//~--- non-JDK imports -------------------------------------------------------- + +import sonia.scm.util.Util; + +//~--- JDK imports ------------------------------------------------------------ + import java.util.ArrayList; import java.util.Iterator; import java.util.List; -import sonia.scm.util.Util; /** * @@ -145,12 +152,12 @@ public class HgPermissionReader writePermissions.remove(readPerm); } - permissions.add(new Permission(readPerm, true, write, group)); + permissions.add(new Permission(readPerm, write, group)); } for (String writePerm : writePermissions) { - permissions.add(new Permission(writePerm, false, true, group)); + permissions.add(new Permission(writePerm, true, group)); } } } diff --git a/scm-core/src/main/java/sonia/scm/repository/Permission.java b/scm-core/src/main/java/sonia/scm/repository/Permission.java index 806f5f17a7..b6d0fd0531 100644 --- a/scm-core/src/main/java/sonia/scm/repository/Permission.java +++ b/scm-core/src/main/java/sonia/scm/repository/Permission.java @@ -7,6 +7,12 @@ package sonia.scm.repository; +//~--- non-JDK imports -------------------------------------------------------- + +import sonia.scm.util.Util; + +//~--- JDK imports ------------------------------------------------------------ + import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlRootElement; @@ -15,7 +21,7 @@ import javax.xml.bind.annotation.XmlRootElement; * * @author Sebastian Sdorra */ -@XmlRootElement(name="permissions") +@XmlRootElement(name = "permissions") @XmlAccessorType(XmlAccessType.FIELD) public class Permission { @@ -31,13 +37,11 @@ public class Permission * * * @param name - * @param readable * @param writeable */ - public Permission(String name, boolean readable, boolean writeable) + public Permission(String name, boolean writeable) { this.name = name; - this.readable = readable; this.writeable = writeable; this.groupPermission = false; } @@ -47,19 +51,34 @@ public class Permission * * * @param name - * @param readable * @param writeable * @param groupPermission */ - public Permission(String name, boolean readable, boolean writeable, - boolean groupPermission) + public Permission(String name, boolean writeable, boolean groupPermission) { this.name = name; - this.readable = readable; this.writeable = writeable; this.groupPermission = groupPermission; } + /** + * Constructs ... + * + * + * @param name + * @param writeable + * @param groupPermission + * @param path + */ + public Permission(String name, boolean writeable, boolean groupPermission, + String path) + { + this.name = name; + this.writeable = writeable; + this.groupPermission = groupPermission; + this.path = path; + } + //~--- methods -------------------------------------------------------------- /** @@ -80,18 +99,18 @@ public class Permission buffer.append(" (Group)"); } - buffer.append(" - "); - - if (readable) - { - buffer.append("r"); - } + buffer.append(" - r"); if (writeable) { buffer.append("w"); } + if (Util.isNotEmpty(path)) + { + buffer.append(" ").append(path); + } + return buffer.toString(); } @@ -108,6 +127,17 @@ public class Permission return name; } + /** + * Method description + * + * + * @return + */ + public String getPath() + { + return path; + } + /** * Method description * @@ -125,9 +155,9 @@ public class Permission * * @return */ - public boolean isReadable() + public boolean isRootPermission() { - return readable; + return Util.isEmpty(path); } /** @@ -141,6 +171,19 @@ public class Permission return writeable; } + //~--- set methods ---------------------------------------------------------- + + /** + * Method description + * + * + * @param path + */ + public void setPath(String path) + { + this.path = path; + } + //~--- fields --------------------------------------------------------------- /** Field description */ @@ -150,7 +193,7 @@ public class Permission private String name; /** Field description */ - private boolean readable; + private String path = ""; /** Field description */ private boolean writeable;