From b74226e27086a463ce18b1550114c903c01d0422 Mon Sep 17 00:00:00 2001 From: Giannis Koutsoubos Date: Fri, 7 Jan 2011 13:03:00 +0200 Subject: [PATCH] make admin application working by moving old dto required methods to AdminApiBean --- src/gr/ebs/gss/server/ejb/AdminAPIBean.java | 51 +++++++++++++++++++++++---- 1 file changed, 44 insertions(+), 7 deletions(-) diff --git a/src/gr/ebs/gss/server/ejb/AdminAPIBean.java b/src/gr/ebs/gss/server/ejb/AdminAPIBean.java index f1e868a..95a94e5 100644 --- a/src/gr/ebs/gss/server/ejb/AdminAPIBean.java +++ b/src/gr/ebs/gss/server/ejb/AdminAPIBean.java @@ -105,7 +105,7 @@ public class AdminAPIBean implements AdminAPI { User owner = dao.getUser(username); // Store the last element, since it requires special handling. String lastElement = pathElements.remove(pathElements.size() - 1); - FolderDTO cursor = api.getRootFolder(owner.getId()); + FolderDTO cursor = getRootFolder(owner.getId()); // Traverse and verify the specified folder path. for (String pathElement : pathElements) { cursor = getFolder(cursor.getId(), pathElement); @@ -132,14 +132,14 @@ public class AdminAPIBean implements AdminAPI { pathElements.add(st.nextToken()); if (pathElements.size() < 1){ - FolderDTO folder = api.getRootFolder(owner.getId()); - res.addAll(api.getFiles(folder.getOwner().getId(), folder.getId(), false)); + FolderDTO folder = getRootFolder(owner.getId()); + res.addAll(getFiles(folder.getOwner().getId(), folder.getId(), false)); return res; } // Store the last element, since it requires special handling. String lastElement = pathElements.remove(pathElements.size() - 1); - FolderDTO cursor = api.getRootFolder(owner.getId()); + FolderDTO cursor = getRootFolder(owner.getId()); // Traverse and verify the specified folder path. for (String pathElement : pathElements) { cursor = getFolder(cursor.getId(), pathElement); @@ -153,7 +153,7 @@ public class AdminAPIBean implements AdminAPI { // Perhaps the requested resource is not a file, so // check for folders as well. FolderDTO folder = getFolder(cursor.getId(), lastElement); - res.addAll(api.getFiles(folder.getOwner().getId(), folder.getId(), false)); + res.addAll(getFiles(folder.getOwner().getId(), folder.getId(), false)); } @@ -396,9 +396,9 @@ public class AdminAPIBean implements AdminAPI { public void removeUser(Long userId) throws ObjectNotFoundException, InsufficientPermissionsException{ User user = api.getUser(userId); try{ - FolderDTO folder = api.getRootFolder(userId); + FolderDTO folder = getRootFolder(userId); deleteFolder(userId, folder.getId()); - List groups = api.getGroups(userId); + List groups = getGroups(userId); for(GroupDTO group : groups) api.deleteGroup(userId, group.getId()); } @@ -539,4 +539,41 @@ public class AdminAPIBean implements AdminAPI { } } } + + /*** MOVE METHODS WITH DTOS FROM ExternalAPIAbean ***/ + private FolderDTO getRootFolder(Long userId) throws ObjectNotFoundException { + if (userId == null) + throw new ObjectNotFoundException("No user specified"); + Folder folder = dao.getRootFolder(userId); + return folder.getDTO(); + } + + private List getFiles(Long userId, Long folderId, boolean ignoreDeleted) + throws ObjectNotFoundException, InsufficientPermissionsException { + // Validate. + if (userId == null) + throw new ObjectNotFoundException("No user specified"); + if (folderId == null) + throw new ObjectNotFoundException("No folder specified"); + User user = dao.getEntityById(User.class, userId); + Folder folder = dao.getEntityById(Folder.class, folderId); + if (!folder.hasReadPermission(user)) + throw new InsufficientPermissionsException("You don't have the permissions to read this folder"); + // Do the actual work. + List result = new ArrayList(); + List files = dao.getFiles(folderId, userId, ignoreDeleted); + for (FileHeader f : files) + result.add(f.getDTO()); + return result; + } + + private List getGroups(final Long userId) throws ObjectNotFoundException { + if (userId == null) + throw new ObjectNotFoundException("No user specified"); + final List groups = dao.getGroups(userId); + final List result = new ArrayList(); + for (final Group g : groups) + result.add(g.getDTO()); + return result; + } } -- 1.7.10.4