package de.twenty11.skysail.server.ext.osgimonitor.resources; import java.util.ArrayList; import java.util.List; import org.osgi.service.permissionadmin.PermissionAdmin; import org.osgi.service.permissionadmin.PermissionInfo; import org.restlet.data.Form; import org.restlet.resource.ResourceException; import de.twenty11.skysail.common.responses.SkysailResponse; import de.twenty11.skysail.server.core.restlet.ListServerResource2; import de.twenty11.skysail.server.ext.osgimonitor.OsgiMonitorViewerApplication; import de.twenty11.skysail.server.ext.osgimonitor.domain.Permission; public class PermissionAdminResource extends ListServerResource2<Permission> { private OsgiMonitorViewerApplication app; @Override protected void doInit() throws ResourceException { app = (OsgiMonitorViewerApplication) getApplication(); } @Override protected List<Permission> getData() { PermissionAdmin permissionAdmin = app.getPermissionAdminService(); List<Permission> result = new ArrayList<Permission>(); if (permissionAdmin != null) { addPermissions(result, "Default", permissionAdmin.getDefaultPermissions()); String[] locations = permissionAdmin.getLocations(); if (locations != null) { for (String loc : locations) { addPermissions(result, loc, permissionAdmin.getPermissions(loc)); } } } return result; } private void addPermissions(List<Permission> result, String location, PermissionInfo[] permissions) { if (permissions == null) { return; } for (PermissionInfo permissionInfo : permissions) { result.add(new Permission(location, permissionInfo)); } } @Override public Permission getData(Form form) { // TODO Auto-generated method stub return null; } @Override public SkysailResponse<?> addEntity(Permission entity) { // TODO Auto-generated method stub return null; } }