From: <id...@us...> - 2008-10-07 16:17:14
|
Revision: 4820 http://openuss.svn.sourceforge.net/openuss/?rev=4820&view=rev Author: idueppe Date: 2008-10-07 16:17:07 +0000 (Tue, 07 Oct 2008) Log Message: ----------- bug fixing - username must contain domain names - workspace service tried to compare UserImpl and UserInfo objects Modified Paths: -------------- branches/openuss-plexus-3.1/plexus/plexus-core/src/main/java/org/openuss/collaboration/WorkspaceServiceImpl.java branches/openuss-plexus-3.1/plexus/plexus-core/src/main/java/org/openuss/security/UserDaoImpl.java Modified: branches/openuss-plexus-3.1/plexus/plexus-core/src/main/java/org/openuss/collaboration/WorkspaceServiceImpl.java =================================================================== --- branches/openuss-plexus-3.1/plexus/plexus-core/src/main/java/org/openuss/collaboration/WorkspaceServiceImpl.java 2008-10-07 16:16:07 UTC (rev 4819) +++ branches/openuss-plexus-3.1/plexus/plexus-core/src/main/java/org/openuss/collaboration/WorkspaceServiceImpl.java 2008-10-07 16:17:07 UTC (rev 4820) @@ -11,6 +11,9 @@ import java.util.List; import java.util.Set; +import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.collections.Predicate; +import org.apache.commons.lang.ObjectUtils; import org.apache.commons.lang.Validate; import org.apache.log4j.Logger; import org.openuss.documents.DocumentApplicationException; @@ -22,37 +25,40 @@ import org.openuss.security.acl.LectureAclEntry; /** - * @author Projektseminar WS 07/08, Team Collaboration + * @author Projektseminar WS 07/08, Team Collaboration * @see org.openuss.collaboration.WorkspaceService */ public class WorkspaceServiceImpl extends org.openuss.collaboration.WorkspaceServiceBase { - + private static final Logger LOGGER = Logger.getLogger(WorkspaceServiceImpl.class); @Override protected void handleCreateWorkspace(WorkspaceInfo workspaceInfo) { Validate.notNull(workspaceInfo, "WorkspaceInfo cannot be null."); Validate.notNull(workspaceInfo.getDomainId(), "domainId cannot be null."); - + final Workspace workspaceEntity = this.getWorkspaceDao().workspaceInfoToEntity(workspaceInfo); Validate.notNull(workspaceEntity, "Cannot transform workspaceInfo to entity."); this.getWorkspaceDao().create(workspaceEntity); Validate.notNull(workspaceEntity, "Id of workspace cannot be null."); - + workspaceInfo.setId(workspaceEntity.getId()); - - getSecurityService().createObjectIdentity(workspaceEntity, null);//new DefaultDomainObject(workspaceInfo.getDomainId())); - getSecurityService().setPermissions(getSecurityService().getUserObject(getSecurityService().getCurrentUser()), workspaceEntity, LectureAclEntry.OGCRUD); + + getSecurityService().createObjectIdentity(workspaceEntity, null); +// new DefaultDomainObject (workspaceInfo.getDomainId ()) ; + getSecurityService().setPermissions(getSecurityService().getUserObject(getSecurityService().getCurrentUser()), + workspaceEntity, LectureAclEntry.OGCRUD); } - @SuppressWarnings("unchecked") // NOPMD by Administrator on 13.03.08 13:11 + @SuppressWarnings("unchecked") + // NOPMD by Administrator on 13.03.08 13:11 @Override - protected List handleFindWorkspaceMembers(Long workspaceId) { + protected List handleFindWorkspaceMembers(Long workspaceId) { Validate.notNull(workspaceId, "workspaceId cannot be null."); final Workspace workspace = this.getWorkspaceDao().load(workspaceId); Validate.notNull(workspace, "No workspace could be found with the workspaceId " + workspaceId); - + final Collection<User> users = workspace.getUser(); final List<UserInfo> members = new ArrayList<UserInfo>(users.size()); for (User u : users) { @@ -61,7 +67,8 @@ return members; } - @SuppressWarnings("unchecked") // NOPMD by Administrator on 13.03.08 13:11 + @SuppressWarnings("unchecked") + // NOPMD by Administrator on 13.03.08 13:11 @Override protected List handleFindWorkspacesByDomain(Long domainId) { Validate.notNull(domainId, "domainId cannot be null."); @@ -71,19 +78,19 @@ @Override protected WorkspaceInfo handleGetWorkspace(Long workspaceId) { Validate.notNull(workspaceId, "Parameter workspaceId must not be null!"); - return (WorkspaceInfo)getWorkspaceDao().load(WorkspaceDao.TRANSFORM_WORKSPACEINFO, workspaceId); + return (WorkspaceInfo) getWorkspaceDao().load(WorkspaceDao.TRANSFORM_WORKSPACEINFO, workspaceId); } @Override protected void handleRemoveWorkspace(Long workspaceId) throws DocumentApplicationException { Validate.notNull(workspaceId, "workspaceId cannot be null."); - + final Workspace workspaceEntity = getWorkspaceDao().load(workspaceId); final WorkspaceInfo workspaceInfo = getWorkspaceDao().toWorkspaceInfo(workspaceEntity); - + final FolderInfo folderEntry = getDocumentService().getFolder(workspaceInfo); getDocumentService().removeFolderEntry(folderEntry.getId()); - + getWorkspaceDao().remove(workspaceEntity); } @@ -97,7 +104,7 @@ getWorkspaceDao().update(workspaceEntity); } - @SuppressWarnings("unchecked") // NOPMD by Administrator on 13.03.08 13:11 + @SuppressWarnings("unchecked") @Override protected void handleUpdateWorkspaceMembers(List userIds, Long workspaceId) { LOGGER.debug("Starting method handleUpdateWorkspaceMembers"); @@ -105,16 +112,16 @@ Validate.notNull(userIds, "Parameter userId must not be null."); final Workspace workspace = getWorkspaceDao().load(workspaceId); - + final Group group = getSecurityService().getGroupByName("GROUP_COURSE_" + workspace.getDomainId() + "_PARTICIPANTS"); - + final List<Authority> members = group.getMembers(); - + workspace.getUser().clear(); for (Authority auth : members) { final User user = getSecurityService().getUserObject(auth.getId()); - + if (user != null && userIds.contains(user.getId())) { workspace.getUser().add(user); getSecurityService().setPermissions(user, workspace, LectureAclEntry.WORKSPACE_PARTICIPANT); @@ -122,47 +129,55 @@ getSecurityService().removePermission(user, workspace); getSecurityService().setPermissions(user, workspace, LectureAclEntry.NOTHING); } - } - + } + getWorkspaceDao().update(workspace); } - @SuppressWarnings("unchecked") // NOPMD by Administrator on 13.03.08 13:11 + @SuppressWarnings("unchecked") + // NOPMD by Administrator on 13.03.08 13:11 @Override - protected List handleFindWorkspacesByDomainAndUser(Long domainId, UserInfo user) { + protected List handleFindWorkspacesByDomainAndUser(Long domainId, final UserInfo user) { Validate.notNull(domainId, "domainId cannot be null."); Validate.notNull(user, "userId cannot be null."); - + final List<Workspace> workspaces = getWorkspaceDao().findByDomainId(domainId); final List<WorkspaceInfo> workspaceInfos = new ArrayList<WorkspaceInfo>(workspaces.size()); + final Predicate containsUser = new Predicate() { + public boolean evaluate(Object object) { + return (object instanceof User) && ObjectUtils.equals(((User) object).getId(), user.getId()); + } + }; for (Workspace ws : workspaces) { - if (ws.getUser().contains(user)) { + if (CollectionUtils.exists(ws.getUser(), containsUser)) { workspaceInfos.add(getWorkspaceDao().toWorkspaceInfo(ws)); } } - + return workspaceInfos; } + @SuppressWarnings("unchecked") @Override protected List handleFindWorkspacesByUser(User user) throws Exception { List<BigInteger> workspaceIds = getWorkspaceDao().findByUser(user); List<Workspace> workspaces = new ArrayList<Workspace>(); - for (BigInteger id : workspaceIds){ + for (BigInteger id : workspaceIds) { workspaces.add(getWorkspaceDao().load(new Long(id.longValue()))); } return workspaces; } - + + @SuppressWarnings("unchecked") protected void handleRemoveUserFromWorkspaces(User user) { List<Workspace> workspaces = findWorkspacesByUser(user); List<Long> userIds; Set<User> workspaceMembers; - for (Workspace workspace : workspaces){ + for (Workspace workspace : workspaces) { workspaceMembers = workspace.getUser(); userIds = new ArrayList<Long>(); - for (User workspaceMember : workspaceMembers){ - if (!user.getId().equals(workspaceMember.getId())){ + for (User workspaceMember : workspaceMembers) { + if (!user.getId().equals(workspaceMember.getId())) { userIds.add(workspaceMember.getId()); } } @@ -170,5 +185,4 @@ } } - } \ No newline at end of file Modified: branches/openuss-plexus-3.1/plexus/plexus-core/src/main/java/org/openuss/security/UserDaoImpl.java =================================================================== --- branches/openuss-plexus-3.1/plexus/plexus-core/src/main/java/org/openuss/security/UserDaoImpl.java 2008-10-07 16:16:07 UTC (rev 4819) +++ branches/openuss-plexus-3.1/plexus/plexus-core/src/main/java/org/openuss/security/UserDaoImpl.java 2008-10-07 16:17:07 UTC (rev 4820) @@ -32,6 +32,7 @@ * @see org.openuss.security.UserDao#getPassword(int, java.lang.String, * java.lang.Long) */ + @SuppressWarnings("unchecked") @Override public Object getPassword(final int transform, final String queryString, final Long id) { try { @@ -85,11 +86,11 @@ @Override public void toUserInfo(User source, UserInfo target) { super.toUserInfo(source, target); - if (source.isCentralUser()) { - target.setUsername(SecurityDomainUtility.extractUsername(source.getUsername())); - } else { - target.setUsername(source.getUsername()); - } +// if (source.isCentralUser()) { +// target.setUsername(SecurityDomainUtility.extractUsername(source.getUsername())); +// } else { +// } + target.setUsername(source.getUsername()); target.setDisplayName(source.getDisplayName()); target.setCentralUser(source.isCentralUser()); target.setDomainName(SecurityDomainUtility.extractDomain(source.getUsername())); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |