added permissions to repository

This commit is contained in:
Sebastian Sdorra
2010-09-09 10:11:58 +02:00
parent e553f3fc34
commit db6ddfb59e
5 changed files with 249 additions and 10 deletions

View File

@@ -10,6 +10,8 @@ package sonia.scm.api.rest;
//~--- non-JDK imports --------------------------------------------------------
import sonia.scm.group.Group;
import sonia.scm.repository.Repository;
//~--- JDK imports ------------------------------------------------------------
import com.sun.jersey.api.json.JSONConfiguration;
@@ -41,7 +43,9 @@ public class JsonJaxbContextResolver implements ContextResolver<JAXBContext>
{
this.context = new JSONJAXBContext(
JSONConfiguration.mapped().rootUnwrapping(true).arrays(
"member", "groups").build(), types.toArray(new Class[0]));
"member", "groups", "permissions").nonStrings(
"readable", "writeable", "groupPermission").build(), types.toArray(
new Class[0]));
}
//~--- get methods ----------------------------------------------------------
@@ -68,6 +72,6 @@ public class JsonJaxbContextResolver implements ContextResolver<JAXBContext>
private JAXBContext context;
/** Field description */
private List<Class> types = Arrays.asList(new Class[] {
Group.class });
private List<Class> types = Arrays.asList(new Class[] { Group.class,
Repository.class });
}

View File

@@ -9,6 +9,7 @@ package sonia.scm.api.rest.resources;
//~--- non-JDK imports --------------------------------------------------------
import sonia.scm.repository.Permission;
import sonia.scm.repository.Repository;
//~--- JDK imports ------------------------------------------------------------
@@ -47,20 +48,32 @@ public class RepositoryResource extends AbstractResource<Repository>
repositoryStore = new LinkedHashMap<String, Repository>();
repositoryStore.put("sonia.lib",
new Repository("hg", "sonia.lib", "csit@ostfalia.de",
"SONIA Library"));
"SONIA Library",
new Permission("csit", true, true,
true)));
repositoryStore.put("sonia.misc",
new Repository("hg", "sonia.misc", "csit@ostfalia.de",
"SONIA Miscelanious"));
"SONIA Miscelanious",
new Permission("csit", true, true,
true)));
repositoryStore.put("PWA",
new Repository("svn", "PWA",
"csit@fh-wolfenbuettel.de", "PWA"));
"csit@fh-wolfenbuettel.de", "PWA",
new Permission("th", true, true),
new Permission("sdorra", true, true),
new Permission("oelkersd", true,
false)));
repositoryStore.put("sonia.app",
new Repository("hg", "sonia.app", "csit@ostfalia.de",
"SONIA Applications"));
"SONIA Applications",
new Permission("csit", true, true,
true)));
repositoryStore.put("sonia.webapps",
new Repository("hg", "sonia.webapps",
"csit@ostfalia.de",
"SONIA WebApplications"));
"SONIA WebApplications",
new Permission("csit", true, true,
true)));
}
//~--- methods --------------------------------------------------------------