Author: vjrj Date: 2008-11-22 17:44:37 +0100 (Sat, 22 Nov 2008) New Revision: 962 Added: trunk/src/main/java/org/ourproject/kune/platf/client/dto/SocialNetworkDataDTO.java trunk/src/main/java/org/ourproject/kune/platf/server/domain/SocialNetworkData.java Removed: trunk/src/main/java/org/ourproject/kune/platf/client/dto/SocialNetworkResultDTO.java Modified: trunk/pom.xml trunk/src/main/java/org/ourproject/kune/app/public/css/all.css trunk/src/main/java/org/ourproject/kune/app/public/css/kune-new.css trunk/src/main/java/org/ourproject/kune/platf/client/dto/SocialNetworkVisibilityDTO.java trunk/src/main/java/org/ourproject/kune/platf/client/dto/StateAbstractDTO.java trunk/src/main/java/org/ourproject/kune/platf/client/dto/UserBuddiesVisibilityDTO.java trunk/src/main/java/org/ourproject/kune/platf/client/rpc/SocialNetworkService.java trunk/src/main/java/org/ourproject/kune/platf/client/rpc/SocialNetworkServiceAsync.java trunk/src/main/java/org/ourproject/kune/platf/client/state/StateManager.java trunk/src/main/java/org/ourproject/kune/platf/client/state/StateManagerDefault.java trunk/src/main/java/org/ourproject/kune/platf/server/domain/SocialNetwork.java trunk/src/main/java/org/ourproject/kune/platf/server/manager/SocialNetworkManager.java trunk/src/main/java/org/ourproject/kune/platf/server/manager/UserManager.java trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/SocialNetworkManagerDefault.java trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/UserManagerDefault.java trunk/src/main/java/org/ourproject/kune/platf/server/rpc/SocialNetworkRPC.java trunk/src/main/java/org/ourproject/kune/platf/server/sn/UserBuddiesData.java trunk/src/main/java/org/ourproject/kune/platf/server/state/StateAbstract.java trunk/src/main/java/org/ourproject/kune/platf/server/state/StateServiceDefault.java trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/BuddiesSummaryPanel.java trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/BuddiesSummaryPresenter.java trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/BuddiesSummaryView.java trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPanel.java trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPresenter.java trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryView.java trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/SocialNetworkPresenter.java trunk/src/main/resources/dozerBeanMapping.xml trunk/src/test/java/org/ourproject/kune/platf/integration/socialnet/SocialNetworkServiceTest.java trunk/src/test/java/org/ourproject/kune/platf/server/mapper/MapperTest.java Log: Complete - task SocialNet visibility (group members and user buddies are showed to anybody or only to members/buddies or only to admins/you) Modified: trunk/pom.xml =================================================================== --- trunk/pom.xml 2008-11-22 04:29:34 UTC (rev 961) +++ trunk/pom.xml 2008-11-22 16:44:37 UTC (rev 962) @@ -379,8 +379,8 @@ <version>2.0-beta23</version> <configuration> <logLevel>INFO</logLevel> - <style>PRETTY</style> - <!-- <style>OBF</style> --> + <style>OBF</style> + <!-- <style>PRETTY</style> --> <runTarget> org.ourproject.kune.app.Kune/Kune.html </runTarget> Modified: trunk/src/main/java/org/ourproject/kune/app/public/css/all.css =================================================================== --- trunk/src/main/java/org/ourproject/kune/app/public/css/all.css 2008-11-22 04:29:34 UTC (rev 961) +++ trunk/src/main/java/org/ourproject/kune/app/public/css/all.css 2008-11-22 16:44:37 UTC (rev 962) @@ -41,4 +41,4 @@ padding: 1px 0px 1px 1px; text-decoration:none; } -*/.k-textlinethrough{text-decoration:line-through;color:red;}.k-textnormal{text-decoration:inherit;color:green;}.k-textunderline{text-decoration:underline;color:gray;}.x-tool-kmenu{background-position:0 -75px;}.x-tool-kmenu-over{background-position:-15px -75px;}.k-border-openbox{border-bottom:1px #D0D0D0 solid;border-right:1px #D0D0D0 solid;border-left:1px #D0D0D0 solid;}/* SiteToastMessages */.k-stm-info-icon{background-image:url(img/info.gif)!important;}.k-stm-imp-icon{background-image:url(img/alert.gif)!important;}.k-stm-verimp-icon{background-image:url(img/important.gif)!important;}.k-stm-error-icon{background-image:url(img/error.gif)!important;}.k-error-tb{background:#FFB380 none repeat scroll 0 50%;color:#250;}.k-infod-head{font-size:108%;margin-bottom:10px;}.gwt-DisclosurePanel{}.gwt-DisclosurePanel-open{}.gwt-DisclosurePanel-closed{}.gwt-DisclosurePanel .header,.gwt-DisclosurePanel .header a,.gwt-DisclosurePanel .header td{text-decoration:none;/* Remove underline from header */color:#000;cursor:pointer;cursor:hand;}.gwt-DisclosurePanel .content{border-left:3px solid #e8eef7;padding:4px 0 4px 8px;margin-left:6px;}.k-bsp-buddie{background:#FAFAFA none repeat scroll 0 50%;border:1px solid #EBEBEB;padding:3px;margin:3px;}.k-bsp-buddie td{padding:2px 3px;} \ No newline at end of file +*/.k-textlinethrough{text-decoration:line-through;color:red;}.k-textnormal{text-decoration:inherit;color:green;}.k-textunderline{text-decoration:underline;color:gray;}.x-tool-kmenu{background-position:0 -75px;}.x-tool-kmenu-over{background-position:-15px -75px;}.k-border-openbox{border-bottom:1px #D0D0D0 solid;border-right:1px #D0D0D0 solid;border-left:1px #D0D0D0 solid;}/* SiteToastMessages */.k-stm-info-icon{background-image:url(img/info.gif)!important;}.k-stm-imp-icon{background-image:url(img/alert.gif)!important;}.k-stm-verimp-icon{background-image:url(img/important.gif)!important;}.k-stm-error-icon{background-image:url(img/error.gif)!important;}.k-error-tb{background:#FFB380 none repeat scroll 0 50%;color:#250;}.k-infod-head{font-size:108%;margin-bottom:10px;}.gwt-DisclosurePanel{}.gwt-DisclosurePanel-open{}.gwt-DisclosurePanel-closed{}.gwt-DisclosurePanel .header,.gwt-DisclosurePanel .header a,.gwt-DisclosurePanel .header td{text-decoration:none;/* Remove underline from header */color:#000;cursor:pointer;cursor:hand;}.gwt-DisclosurePanel .content{border-left:3px solid #e8eef7;padding:4px 0 4px 8px;margin-left:6px;}.k-bsp-buddie{background:#FAFAFA none repeat scroll 0 50%;border:1px solid #EBEBEB;padding:3px;margin:3px;}.k-bsp-buddie td{padding:2px 3px;}.k-text-gray{color:gray;} \ No newline at end of file Modified: trunk/src/main/java/org/ourproject/kune/app/public/css/kune-new.css =================================================================== --- trunk/src/main/java/org/ourproject/kune/app/public/css/kune-new.css 2008-11-22 04:29:34 UTC (rev 961) +++ trunk/src/main/java/org/ourproject/kune/app/public/css/kune-new.css 2008-11-22 16:44:37 UTC (rev 962) @@ -793,4 +793,8 @@ .k-bsp-buddie td { padding: 2px 3px 2px 3px; +} + +.k-text-gray { + color: gray; } \ No newline at end of file Copied: trunk/src/main/java/org/ourproject/kune/platf/client/dto/SocialNetworkDataDTO.java (from rev 961, trunk/src/main/java/org/ourproject/kune/platf/client/dto/SocialNetworkResultDTO.java) =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/dto/SocialNetworkResultDTO.java 2008-11-22 04:29:34 UTC (rev 961) +++ trunk/src/main/java/org/ourproject/kune/platf/client/dto/SocialNetworkDataDTO.java 2008-11-22 16:44:37 UTC (rev 962) @@ -0,0 +1,137 @@ +/* + * + * Copyright (C) 2007-2008 The kune development team (see CREDITS for details) + * This file is part of kune. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ +package org.ourproject.kune.platf.client.dto; + +import com.google.gwt.user.client.rpc.IsSerializable; + +public class SocialNetworkDataDTO implements IsSerializable { + + private SocialNetworkVisibilityDTO socialNetworkVisibility; + private SocialNetworkDTO groupMembers; + private ParticipationDataDTO userParticipation; + private UserBuddiesVisibilityDTO userBuddiesVisibility; + private UserBuddiesDataDTO userBuddies; + private AccessRightsDTO groupRights; + private boolean isBuddiesVisible; + private boolean isMembersVisible; + + public SocialNetworkDataDTO() { + this(null, null, null, null, null, null, false, false); + } + + public SocialNetworkDataDTO(SocialNetworkVisibilityDTO socialNetworkVisibility, + final SocialNetworkDTO groupMembers, final ParticipationDataDTO userParticipation, + UserBuddiesVisibilityDTO userBuddiesVisibility, final UserBuddiesDataDTO userBuddies, + AccessRightsDTO groupRights, boolean isBuddiesVisible, boolean isMembersVisible) { + this.socialNetworkVisibility = socialNetworkVisibility; + this.groupMembers = groupMembers; + this.userParticipation = userParticipation; + this.userBuddiesVisibility = userBuddiesVisibility; + this.userBuddies = userBuddies; + this.groupRights = groupRights; + this.isBuddiesVisible = isBuddiesVisible; + this.isMembersVisible = isMembersVisible; + } + + public SocialNetworkDTO getGroupMembers() { + return groupMembers; + } + + public AccessRightsDTO getGroupRights() { + return groupRights; + } + + public boolean getIsBuddiesVisible() { + return isBuddiesVisible; + } + + public boolean getIsMembersVisible() { + return isMembersVisible; + } + + public SocialNetworkVisibilityDTO getSocialNetworkVisibility() { + return socialNetworkVisibility; + } + + public UserBuddiesDataDTO getUserBuddies() { + return userBuddies; + } + + public UserBuddiesVisibilityDTO getUserBuddiesVisibility() { + return userBuddiesVisibility; + } + + public ParticipationDataDTO getUserParticipation() { + return userParticipation; + } + + public boolean isBuddiesVisible() { + return isBuddiesVisible; + } + + public boolean isMembersVisible() { + return isMembersVisible; + } + + public void setBuddiesVisible(boolean isBuddiesVisible) { + this.isBuddiesVisible = isBuddiesVisible; + } + + public void setGroupMembers(final SocialNetworkDTO groupMembers) { + this.groupMembers = groupMembers; + } + + public void setGroupRights(AccessRightsDTO groupRights) { + this.groupRights = groupRights; + } + + public void setIsBuddiesVisible(boolean isBuddiesVisible) { + setBuddiesVisible(isBuddiesVisible); + } + + public void setIsMembersVisible(boolean isMembersVisible) { + setMembersVisible(isMembersVisible); + } + + public void setMembersVisible(boolean isMembersVisible) { + this.isMembersVisible = isMembersVisible; + } + + public void setSocialNetworkVisibility(SocialNetworkVisibilityDTO socialNetworkVisibilityDTO) { + this.socialNetworkVisibility = socialNetworkVisibilityDTO; + } + + public void setUserBuddies(UserBuddiesDataDTO userBuddies) { + this.userBuddies = userBuddies; + } + + public void setUserBuddiesVisibility(UserBuddiesVisibilityDTO userBuddiesVisibilityDTO) { + this.userBuddiesVisibility = userBuddiesVisibilityDTO; + } + + public void setUserParticipation(final ParticipationDataDTO userParticipation) { + this.userParticipation = userParticipation; + } + + @Override + public String toString() { + return "SocialNetworkResultDTO[members: " + groupMembers + "; participation: " + userParticipation + "]"; + } +} Property changes on: trunk/src/main/java/org/ourproject/kune/platf/client/dto/SocialNetworkDataDTO.java ___________________________________________________________________ Name: svn:mergeinfo + Deleted: trunk/src/main/java/org/ourproject/kune/platf/client/dto/SocialNetworkResultDTO.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/dto/SocialNetworkResultDTO.java 2008-11-22 04:29:34 UTC (rev 961) +++ trunk/src/main/java/org/ourproject/kune/platf/client/dto/SocialNetworkResultDTO.java 2008-11-22 16:44:37 UTC (rev 962) @@ -1,100 +0,0 @@ -/* - * - * Copyright (C) 2007-2008 The kune development team (see CREDITS for details) - * This file is part of kune. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * - */ -package org.ourproject.kune.platf.client.dto; - -import com.google.gwt.user.client.rpc.IsSerializable; - -public class SocialNetworkResultDTO implements IsSerializable { - - SocialNetworkDTO groupMembers; - SocialNetworkVisibilityDTO socialNetworkVisibilityDTO; - - ParticipationDataDTO userParticipation; - - UserBuddiesDataDTO userBuddies; - UserBuddiesVisibilityDTO userBuddiesVisibilityDTO; - - AccessRightsDTO groupRights; - - public SocialNetworkResultDTO() { - this(null, null, null, null); - } - - public SocialNetworkResultDTO(final SocialNetworkDTO groupMembers, final ParticipationDataDTO userParticipation, - final UserBuddiesDataDTO userBuddies, AccessRightsDTO groupRights) { - this.groupMembers = groupMembers; - this.userParticipation = userParticipation; - this.userBuddies = userBuddies; - this.groupRights = groupRights; - } - - public SocialNetworkDTO getGroupMembers() { - return groupMembers; - } - - public AccessRightsDTO getGroupRights() { - return groupRights; - } - - public SocialNetworkVisibilityDTO getSocialNetworkVisibilityDTO() { - return socialNetworkVisibilityDTO; - } - - public UserBuddiesDataDTO getUserBuddies() { - return userBuddies; - } - - public UserBuddiesVisibilityDTO getUserBuddiesVisibilityDTO() { - return userBuddiesVisibilityDTO; - } - - public ParticipationDataDTO getUserParticipation() { - return userParticipation; - } - - public void setGroupMembers(final SocialNetworkDTO groupMembers) { - this.groupMembers = groupMembers; - } - - public void setGroupRights(AccessRightsDTO groupRights) { - this.groupRights = groupRights; - } - - public void setSocialNetworkVisibilityDTO(SocialNetworkVisibilityDTO socialNetworkVisibilityDTO) { - this.socialNetworkVisibilityDTO = socialNetworkVisibilityDTO; - } - - public void setUserBuddies(UserBuddiesDataDTO userBuddies) { - this.userBuddies = userBuddies; - } - - public void setUserBuddiesVisibilityDTO(UserBuddiesVisibilityDTO userBuddiesVisibilityDTO) { - this.userBuddiesVisibilityDTO = userBuddiesVisibilityDTO; - } - - public void setUserParticipation(final ParticipationDataDTO userParticipation) { - this.userParticipation = userParticipation; - } - - @Override - public String toString() { - return "SocialNetworkResultDTO[members: " + groupMembers + "; participation: " + userParticipation + "]"; - } -} Modified: trunk/src/main/java/org/ourproject/kune/platf/client/dto/SocialNetworkVisibilityDTO.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/dto/SocialNetworkVisibilityDTO.java 2008-11-22 04:29:34 UTC (rev 961) +++ trunk/src/main/java/org/ourproject/kune/platf/client/dto/SocialNetworkVisibilityDTO.java 2008-11-22 16:44:37 UTC (rev 962) @@ -1,5 +1,7 @@ package org.ourproject.kune.platf.client.dto; -public enum SocialNetworkVisibilityDTO { +import com.google.gwt.user.client.rpc.IsSerializable; + +public enum SocialNetworkVisibilityDTO implements IsSerializable { anyone, onlymembers, onlyadmins } Modified: trunk/src/main/java/org/ourproject/kune/platf/client/dto/StateAbstractDTO.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/dto/StateAbstractDTO.java 2008-11-22 04:29:34 UTC (rev 961) +++ trunk/src/main/java/org/ourproject/kune/platf/client/dto/StateAbstractDTO.java 2008-11-22 16:44:37 UTC (rev 962) @@ -27,12 +27,9 @@ private List<String> enabledTools; private GroupDTO group; - private SocialNetworkDTO groupMembers; - private AccessRightsDTO groupRights; - private ParticipationDataDTO participation; - private UserBuddiesDataDTO userBuddies; private StateToken stateToken; private String title; + private SocialNetworkDataDTO socialNetworkData; public StateAbstractDTO() { } @@ -46,17 +43,21 @@ } public SocialNetworkDTO getGroupMembers() { - return groupMembers; + return socialNetworkData.getGroupMembers(); } public AccessRightsDTO getGroupRights() { - return groupRights; + return socialNetworkData.getGroupRights(); } public ParticipationDataDTO getParticipation() { - return participation; + return socialNetworkData.getUserParticipation(); } + public SocialNetworkDataDTO getSocialNetworkData() { + return socialNetworkData; + } + public StateToken getStateToken() { return stateToken; } @@ -66,7 +67,7 @@ } public UserBuddiesDataDTO getUserBuddies() { - return userBuddies; + return socialNetworkData.getUserBuddies(); } public void setEnabledTools(List<String> enabledTools) { @@ -77,18 +78,10 @@ this.group = group; } - public void setGroupMembers(SocialNetworkDTO groupMembers) { - this.groupMembers = groupMembers; + public void setSocialNetworkData(SocialNetworkDataDTO socialNetworkData) { + this.socialNetworkData = socialNetworkData; } - public void setGroupRights(AccessRightsDTO groupRights) { - this.groupRights = groupRights; - } - - public void setParticipation(ParticipationDataDTO participation) { - this.participation = participation; - } - public void setStateToken(StateToken stateToken) { this.stateToken = stateToken; } @@ -97,10 +90,6 @@ this.title = title; } - public void setUserBuddies(UserBuddiesDataDTO userBuddies) { - this.userBuddies = userBuddies; - } - @Override public String toString() { return "StateDTO[" + getStateToken() + "]"; Modified: trunk/src/main/java/org/ourproject/kune/platf/client/dto/UserBuddiesVisibilityDTO.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/dto/UserBuddiesVisibilityDTO.java 2008-11-22 04:29:34 UTC (rev 961) +++ trunk/src/main/java/org/ourproject/kune/platf/client/dto/UserBuddiesVisibilityDTO.java 2008-11-22 16:44:37 UTC (rev 962) @@ -1,5 +1,7 @@ package org.ourproject.kune.platf.client.dto; -public enum UserBuddiesVisibilityDTO { +import com.google.gwt.user.client.rpc.IsSerializable; + +public enum UserBuddiesVisibilityDTO implements IsSerializable { anyone, yourbuddies, onlyyou } Modified: trunk/src/main/java/org/ourproject/kune/platf/client/rpc/SocialNetworkService.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/rpc/SocialNetworkService.java 2008-11-22 04:29:34 UTC (rev 961) +++ trunk/src/main/java/org/ourproject/kune/platf/client/rpc/SocialNetworkService.java 2008-11-22 16:44:37 UTC (rev 962) @@ -20,7 +20,7 @@ package org.ourproject.kune.platf.client.rpc; import org.ourproject.kune.platf.client.dto.SocialNetworkRequestResult; -import org.ourproject.kune.platf.client.dto.SocialNetworkResultDTO; +import org.ourproject.kune.platf.client.dto.SocialNetworkDataDTO; import org.ourproject.kune.platf.client.dto.StateToken; import org.ourproject.kune.platf.client.errors.DefaultException; @@ -28,33 +28,33 @@ public interface SocialNetworkService extends RemoteService { - SocialNetworkResultDTO acceptJoinGroup(String hash, StateToken groupToken, String groupToAcceptShortName) + SocialNetworkDataDTO acceptJoinGroup(String hash, StateToken groupToken, String groupToAcceptShortName) throws DefaultException; - SocialNetworkResultDTO addAdminMember(String hash, StateToken groupToken, String groupToAddShortName) + SocialNetworkDataDTO addAdminMember(String hash, StateToken groupToken, String groupToAddShortName) throws DefaultException; - SocialNetworkResultDTO addCollabMember(String hash, StateToken groupToken, String groupToAddShortName) + SocialNetworkDataDTO addCollabMember(String hash, StateToken groupToken, String groupToAddShortName) throws DefaultException; - SocialNetworkResultDTO addViewerMember(String hash, StateToken groupToken, String groupToAddShortName) + SocialNetworkDataDTO addViewerMember(String hash, StateToken groupToken, String groupToAddShortName) throws DefaultException; - SocialNetworkResultDTO deleteMember(String hash, StateToken groupToken, String groupToDeleteShortName) + SocialNetworkDataDTO deleteMember(String hash, StateToken groupToken, String groupToDeleteShortName) throws DefaultException; - SocialNetworkResultDTO denyJoinGroup(String hash, StateToken groupToken, String groupToDenyShortName) + SocialNetworkDataDTO denyJoinGroup(String hash, StateToken groupToken, String groupToDenyShortName) throws DefaultException; - SocialNetworkResultDTO getSocialNetwork(String hash, StateToken groupToken) throws DefaultException; + SocialNetworkDataDTO getSocialNetwork(String hash, StateToken groupToken) throws DefaultException; SocialNetworkRequestResult requestJoinGroup(String hash, StateToken groupToken) throws DefaultException; - SocialNetworkResultDTO setAdminAsCollab(String hash, StateToken groupToken, String groupToSetCollabShortName) + SocialNetworkDataDTO setAdminAsCollab(String hash, StateToken groupToken, String groupToSetCollabShortName) throws DefaultException; - SocialNetworkResultDTO setCollabAsAdmin(String hash, StateToken groupToken, String groupToSetAdminShortName) + SocialNetworkDataDTO setCollabAsAdmin(String hash, StateToken groupToken, String groupToSetAdminShortName) throws DefaultException; - SocialNetworkResultDTO unJoinGroup(String hash, StateToken groupToken) throws DefaultException; + SocialNetworkDataDTO unJoinGroup(String hash, StateToken groupToken) throws DefaultException; } Modified: trunk/src/main/java/org/ourproject/kune/platf/client/rpc/SocialNetworkServiceAsync.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/rpc/SocialNetworkServiceAsync.java 2008-11-22 04:29:34 UTC (rev 961) +++ trunk/src/main/java/org/ourproject/kune/platf/client/rpc/SocialNetworkServiceAsync.java 2008-11-22 16:44:37 UTC (rev 962) @@ -19,7 +19,7 @@ */ package org.ourproject.kune.platf.client.rpc; -import org.ourproject.kune.platf.client.dto.SocialNetworkResultDTO; +import org.ourproject.kune.platf.client.dto.SocialNetworkDataDTO; import org.ourproject.kune.platf.client.dto.StateToken; import com.google.gwt.user.client.rpc.AsyncCallback; @@ -27,32 +27,32 @@ public interface SocialNetworkServiceAsync { void acceptJoinGroup(String hash, StateToken groupToken, String groupToAcceptShortName, - AsyncCallback<SocialNetworkResultDTO> callback); + AsyncCallback<SocialNetworkDataDTO> callback); void addAdminMember(String hash, StateToken groupToken, String groupToAddShortName, - AsyncCallback<SocialNetworkResultDTO> callback); + AsyncCallback<SocialNetworkDataDTO> callback); void addCollabMember(String hash, StateToken groupToken, String groupToAddShortName, - AsyncCallback<SocialNetworkResultDTO> callback); + AsyncCallback<SocialNetworkDataDTO> callback); void addViewerMember(String hash, StateToken groupToken, String groupToAddShortName, - AsyncCallback<SocialNetworkResultDTO> callback); + AsyncCallback<SocialNetworkDataDTO> callback); void deleteMember(String hash, StateToken groupToken, String groupToDeleteShortName, - AsyncCallback<SocialNetworkResultDTO> callback); + AsyncCallback<SocialNetworkDataDTO> callback); void denyJoinGroup(String hash, StateToken groupToken, String groupToDenyShortName, - AsyncCallback<SocialNetworkResultDTO> callback); + AsyncCallback<SocialNetworkDataDTO> callback); - void getSocialNetwork(String hash, StateToken groupToken, AsyncCallback<SocialNetworkResultDTO> callback); + void getSocialNetwork(String hash, StateToken groupToken, AsyncCallback<SocialNetworkDataDTO> callback); void requestJoinGroup(String hash, StateToken groupToken, AsyncCallback<?> callback); void setAdminAsCollab(String hash, StateToken groupToken, String groupToSetCollabShortName, - AsyncCallback<SocialNetworkResultDTO> callback); + AsyncCallback<SocialNetworkDataDTO> callback); void setCollabAsAdmin(String hash, StateToken groupToken, String groupToSetAdminShortName, - AsyncCallback<SocialNetworkResultDTO> callback); + AsyncCallback<SocialNetworkDataDTO> callback); - void unJoinGroup(String hash, StateToken groupToken, AsyncCallback<SocialNetworkResultDTO> callback); + void unJoinGroup(String hash, StateToken groupToken, AsyncCallback<SocialNetworkDataDTO> callback); } Modified: trunk/src/main/java/org/ourproject/kune/platf/client/state/StateManager.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/state/StateManager.java 2008-11-22 04:29:34 UTC (rev 961) +++ trunk/src/main/java/org/ourproject/kune/platf/client/state/StateManager.java 2008-11-22 16:44:37 UTC (rev 962) @@ -20,7 +20,7 @@ package org.ourproject.kune.platf.client.state; import org.ourproject.kune.platf.client.actions.BeforeActionListener; -import org.ourproject.kune.platf.client.dto.SocialNetworkResultDTO; +import org.ourproject.kune.platf.client.dto.SocialNetworkDataDTO; import org.ourproject.kune.platf.client.dto.StateAbstractDTO; import org.ourproject.kune.platf.client.dto.StateToken; @@ -58,6 +58,6 @@ void setRetrievedState(StateAbstractDTO state); - void setSocialNetwork(SocialNetworkResultDTO socialNet); + void setSocialNetwork(SocialNetworkDataDTO socialNet); } Modified: trunk/src/main/java/org/ourproject/kune/platf/client/state/StateManagerDefault.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/state/StateManagerDefault.java 2008-11-22 04:29:34 UTC (rev 961) +++ trunk/src/main/java/org/ourproject/kune/platf/client/state/StateManagerDefault.java 2008-11-22 16:44:37 UTC (rev 962) @@ -24,12 +24,9 @@ import org.ourproject.kune.platf.client.actions.BeforeActionCollection; import org.ourproject.kune.platf.client.actions.BeforeActionListener; import org.ourproject.kune.platf.client.app.HistoryWrapper; -import org.ourproject.kune.platf.client.dto.ParticipationDataDTO; -import org.ourproject.kune.platf.client.dto.SocialNetworkDTO; -import org.ourproject.kune.platf.client.dto.SocialNetworkResultDTO; +import org.ourproject.kune.platf.client.dto.SocialNetworkDataDTO; import org.ourproject.kune.platf.client.dto.StateAbstractDTO; import org.ourproject.kune.platf.client.dto.StateToken; -import org.ourproject.kune.platf.client.dto.UserBuddiesDataDTO; import org.ourproject.kune.platf.client.dto.UserInfoDTO; import org.ourproject.kune.platf.client.rpc.AsyncCallbackSimple; import org.ourproject.kune.workspace.client.site.Site; @@ -177,18 +174,13 @@ setState(newState); } - public void setSocialNetwork(final SocialNetworkResultDTO socialNet) { + public void setSocialNetwork(final SocialNetworkDataDTO socialNet) { StateAbstractDTO state; if (session != null && (state = session.getCurrentState()) != null) { // After a SN operation, usually returns a SocialNetworkResultDTO // with new SN data and we refresh the state // to avoid to reload() again the state - final SocialNetworkDTO groupMembers = socialNet.getGroupMembers(); - final ParticipationDataDTO userParticipation = socialNet.getUserParticipation(); - final UserBuddiesDataDTO userBuddies = socialNet.getUserBuddies(); - state.setGroupMembers(groupMembers); - state.setParticipation(userParticipation); - state.setUserBuddies(userBuddies); + state.setSocialNetworkData(socialNet); onSocialNetworkChanged.fire(state); } } Modified: trunk/src/main/java/org/ourproject/kune/platf/server/domain/SocialNetwork.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/server/domain/SocialNetwork.java 2008-11-22 04:29:34 UTC (rev 961) +++ trunk/src/main/java/org/ourproject/kune/platf/server/domain/SocialNetwork.java 2008-11-22 16:44:37 UTC (rev 962) @@ -29,6 +29,8 @@ @Entity @Table(name = "social_networks") public class SocialNetwork { + public static final SocialNetwork EMPTY = new SocialNetwork(SocialNetworkVisibility.onlyadmins); + @Id @GeneratedValue Long id; @@ -47,6 +49,12 @@ visibility = SocialNetworkVisibility.anyone; } + public SocialNetwork(SocialNetworkVisibility visibility) { + accessLists = new AccessLists(); + pendingCollaborators = new GroupList(); + this.visibility = visibility; + } + public void addAdmin(final Group group) { accessLists.addAdmin(group); } Added: trunk/src/main/java/org/ourproject/kune/platf/server/domain/SocialNetworkData.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/server/domain/SocialNetworkData.java 2008-11-22 04:29:34 UTC (rev 961) +++ trunk/src/main/java/org/ourproject/kune/platf/server/domain/SocialNetworkData.java 2008-11-22 16:44:37 UTC (rev 962) @@ -0,0 +1,114 @@ +package org.ourproject.kune.platf.server.domain; + +import org.ourproject.kune.platf.server.access.AccessRights; +import org.ourproject.kune.platf.server.sn.ParticipationData; +import org.ourproject.kune.platf.server.sn.UserBuddiesData; + +public class SocialNetworkData { + private SocialNetworkVisibility socialNetworkVisibility; + private SocialNetwork groupMembers; + private ParticipationData userParticipation; + private UserBuddiesVisibility userBuddiesVisibility; + private UserBuddiesData userBuddies; + private AccessRights groupRights; + private boolean isBuddiesVisible; + private boolean isMembersVisible; + + public SocialNetworkData() { + this(null, null, null, null, null, null, false, false); + } + + public SocialNetworkData(SocialNetworkVisibility socialNetworkVisibility, SocialNetwork groupMembers, + ParticipationData userParticipation, UserBuddiesVisibility userBuddiesVisibility, + UserBuddiesData userBuddies, AccessRights groupRights, boolean isBuddiesVisible, boolean isMembersVisible) { + this.socialNetworkVisibility = socialNetworkVisibility; + this.groupMembers = groupMembers; + this.userParticipation = userParticipation; + this.userBuddiesVisibility = userBuddiesVisibility; + this.userBuddies = userBuddies; + this.groupRights = groupRights; + this.isBuddiesVisible = isBuddiesVisible; + this.isMembersVisible = isMembersVisible; + } + + public SocialNetwork getGroupMembers() { + return groupMembers; + } + + public AccessRights getGroupRights() { + return groupRights; + } + + public boolean getIsBuddiesVisible() { + return isBuddiesVisible; + } + + public boolean getIsMembersVisible() { + return isMembersVisible; + } + + public SocialNetworkVisibility getSocialNetworkVisibility() { + return socialNetworkVisibility; + } + + public UserBuddiesData getUserBuddies() { + return userBuddies; + } + + public UserBuddiesVisibility getUserBuddiesVisibility() { + return userBuddiesVisibility; + } + + public ParticipationData getUserParticipation() { + return userParticipation; + } + + public boolean isBuddiesVisible() { + return isBuddiesVisible; + } + + public boolean isMembersVisible() { + return isMembersVisible; + } + + public void setBuddiesVisible(boolean isBuddiesVisible) { + this.isBuddiesVisible = isBuddiesVisible; + } + + public void setGroupMembers(SocialNetwork groupMembers) { + this.groupMembers = groupMembers; + } + + public void setGroupRights(AccessRights groupRights) { + this.groupRights = groupRights; + } + + public void setIsBuddiesVisible(boolean isBuddiesVisible) { + setBuddiesVisible(isBuddiesVisible); + } + + public void setIsMembersVisible(boolean isMembersVisible) { + setMembersVisible(isMembersVisible); + } + + public void setMembersVisible(boolean isMembersVisible) { + this.isMembersVisible = isMembersVisible; + } + + public void setSocialNetworkVisibility(SocialNetworkVisibility socialNetworkVisibility) { + this.socialNetworkVisibility = socialNetworkVisibility; + } + + public void setUserBuddies(UserBuddiesData userBuddies) { + this.userBuddies = userBuddies; + } + + public void setUserBuddiesVisibility(UserBuddiesVisibility userBuddiesVisibility) { + this.userBuddiesVisibility = userBuddiesVisibility; + } + + public void setUserParticipation(ParticipationData userParticipation) { + this.userParticipation = userParticipation; + } + +} Modified: trunk/src/main/java/org/ourproject/kune/platf/server/manager/SocialNetworkManager.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/server/manager/SocialNetworkManager.java 2008-11-22 04:29:34 UTC (rev 961) +++ trunk/src/main/java/org/ourproject/kune/platf/server/manager/SocialNetworkManager.java 2008-11-22 16:44:37 UTC (rev 962) @@ -24,6 +24,7 @@ import org.ourproject.kune.platf.client.errors.DefaultException; import org.ourproject.kune.platf.server.domain.Group; import org.ourproject.kune.platf.server.domain.SocialNetwork; +import org.ourproject.kune.platf.server.domain.SocialNetworkData; import org.ourproject.kune.platf.server.domain.User; import org.ourproject.kune.platf.server.sn.ParticipationData; @@ -45,6 +46,8 @@ SocialNetwork get(User userLogged, Group group) throws DefaultException; + SocialNetworkData getSocialNetworkData(User userLogged, Group group); + SocialNetworkRequestResult requestToJoin(User user, Group inGroup) throws DefaultException; void setAdminAsCollab(User userLogged, Group group, Group inGroup) throws DefaultException; Modified: trunk/src/main/java/org/ourproject/kune/platf/server/manager/UserManager.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/server/manager/UserManager.java 2008-11-22 04:29:34 UTC (rev 961) +++ trunk/src/main/java/org/ourproject/kune/platf/server/manager/UserManager.java 2008-11-22 16:44:37 UTC (rev 962) @@ -50,6 +50,8 @@ */ User find(Long userId); + User findByShortname(String shortName); + UserBuddiesData getUserBuddies(String shortName); User login(String nickOrEmail, String passwd); Modified: trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/SocialNetworkManagerDefault.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/SocialNetworkManagerDefault.java 2008-11-22 04:29:34 UTC (rev 961) +++ trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/SocialNetworkManagerDefault.java 2008-11-22 16:44:37 UTC (rev 962) @@ -31,14 +31,20 @@ import org.ourproject.kune.platf.client.errors.DefaultException; import org.ourproject.kune.platf.client.errors.LastAdminInGroupException; import org.ourproject.kune.platf.client.errors.UserMustBeLoggedException; +import org.ourproject.kune.platf.server.access.AccessRights; import org.ourproject.kune.platf.server.access.AccessRightsService; import org.ourproject.kune.platf.server.domain.AdmissionType; import org.ourproject.kune.platf.server.domain.Group; import org.ourproject.kune.platf.server.domain.GroupListMode; import org.ourproject.kune.platf.server.domain.SocialNetwork; +import org.ourproject.kune.platf.server.domain.SocialNetworkData; +import org.ourproject.kune.platf.server.domain.SocialNetworkVisibility; import org.ourproject.kune.platf.server.domain.User; +import org.ourproject.kune.platf.server.domain.UserBuddiesVisibility; import org.ourproject.kune.platf.server.manager.SocialNetworkManager; +import org.ourproject.kune.platf.server.manager.UserManager; import org.ourproject.kune.platf.server.sn.ParticipationData; +import org.ourproject.kune.platf.server.sn.UserBuddiesData; import com.google.inject.Inject; import com.google.inject.Provider; @@ -49,13 +55,15 @@ private final Group finder; private final AccessRightsService accessRightsService; + private final UserManager userManager; @Inject public SocialNetworkManagerDefault(final Provider<EntityManager> provider, final Group finder, - final AccessRightsService accessRightsService) { + final AccessRightsService accessRightsService, final UserManager userManager) { super(provider, SocialNetwork.class); this.finder = finder; this.accessRightsService = accessRightsService; + this.userManager = userManager; } public void acceptJoinGroup(final User userLogged, final Group group, final Group inGroup) throws DefaultException, @@ -147,6 +155,61 @@ return sn; } + public SocialNetworkData getSocialNetworkData(User userLogged, Group group) { + SocialNetworkData socialNetData = new SocialNetworkData(); + socialNetData.setGroupMembers(get(userLogged, group)); + AccessRights groupRights = accessRightsService.get(userLogged, group.getAccessLists()); + socialNetData.setGroupRights(groupRights); + socialNetData.setUserParticipation(findParticipation(userLogged, group)); + socialNetData.setGroupMembers(get(userLogged, group)); + if (group.getGroupType().equals(GroupType.PERSONAL)) { + UserBuddiesData userBuddies = userManager.getUserBuddies(group.getShortName()); + User userGroup = userManager.findByShortname(group.getShortName()); + socialNetData.setUserBuddies(userBuddies); + UserBuddiesVisibility buddiesVisibility = userGroup.getBuddiesVisibility(); + socialNetData.setIsBuddiesVisible(true); + switch (buddiesVisibility) { + case anyone: + break; + case onlyyou: + if (userLogged == User.UNKNOWN_USER || !userLogged.getUserGroup().equals(group)) { + socialNetData.setIsBuddiesVisible(false); + socialNetData.setUserBuddies(UserBuddiesData.EMPTY); + } + break; + case yourbuddies: + if (!userBuddies.contains(userLogged.getShortName())) { + socialNetData.setIsBuddiesVisible(false); + socialNetData.setUserBuddies(UserBuddiesData.EMPTY); + } + break; + } + socialNetData.setUserBuddiesVisibility(buddiesVisibility); + } else { + SocialNetworkVisibility visibility = group.getSocialNetwork().getVisibility(); + socialNetData.setIsMembersVisible(true); + switch (visibility) { + case anyone: + break; + case onlyadmins: + if (!groupRights.isAdministrable()) { + socialNetData.setIsMembersVisible(false); + socialNetData.setGroupMembers(SocialNetwork.EMPTY); + } + break; + case onlymembers: + if (!groupRights.isEditable()) { + socialNetData.setIsMembersVisible(false); + socialNetData.setGroupMembers(SocialNetwork.EMPTY); + } + break; + } + socialNetData.setSocialNetworkVisibility(visibility); + socialNetData.setUserBuddies(UserBuddiesData.EMPTY); + } + return socialNetData; + } + public SocialNetworkRequestResult requestToJoin(final User userLogged, final Group inGroup) throws DefaultException, UserMustBeLoggedException { final SocialNetwork sn = inGroup.getSocialNetwork(); Modified: trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/UserManagerDefault.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/UserManagerDefault.java 2008-11-22 04:29:34 UTC (rev 961) +++ trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/UserManagerDefault.java 2008-11-22 16:44:37 UTC (rev 962) @@ -85,14 +85,18 @@ return userId != null ? super.find(userId) : User.UNKNOWN_USER; } - public List<User> getAll() { - return finder.getAll(); + public User findByShortname(String shortName) { + return finder.getByShortName(shortName); } - public User getByShortName(final String shortName) { + public User findByShortName(final String shortName) { return finder.getByShortName(shortName); } + public List<User> getAll() { + return finder.getAll(); + } + public UserBuddiesData getUserBuddies(final String shortName) { // XEP-133 get roster by admin part is not implemented in openfire // also access to the openfire db is not easy with hibernate (the use of Modified: trunk/src/main/java/org/ourproject/kune/platf/server/rpc/SocialNetworkRPC.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/server/rpc/SocialNetworkRPC.java 2008-11-22 04:29:34 UTC (rev 961) +++ trunk/src/main/java/org/ourproject/kune/platf/server/rpc/SocialNetworkRPC.java 2008-11-22 16:44:37 UTC (rev 962) @@ -19,32 +19,20 @@ */ package org.ourproject.kune.platf.server.rpc; -import org.ourproject.kune.platf.client.dto.AccessRightsDTO; -import org.ourproject.kune.platf.client.dto.GroupType; -import org.ourproject.kune.platf.client.dto.ParticipationDataDTO; -import org.ourproject.kune.platf.client.dto.SocialNetworkDTO; +import org.ourproject.kune.platf.client.dto.SocialNetworkDataDTO; import org.ourproject.kune.platf.client.dto.SocialNetworkRequestResult; -import org.ourproject.kune.platf.client.dto.SocialNetworkResultDTO; -import org.ourproject.kune.platf.client.dto.SocialNetworkVisibilityDTO; import org.ourproject.kune.platf.client.dto.StateToken; -import org.ourproject.kune.platf.client.dto.UserBuddiesDataDTO; -import org.ourproject.kune.platf.client.dto.UserBuddiesVisibilityDTO; import org.ourproject.kune.platf.client.errors.DefaultException; import org.ourproject.kune.platf.client.rpc.SocialNetworkService; import org.ourproject.kune.platf.server.UserSession; -import org.ourproject.kune.platf.server.access.AccessRights; -import org.ourproject.kune.platf.server.access.AccessRightsService; import org.ourproject.kune.platf.server.access.AccessRol; import org.ourproject.kune.platf.server.auth.ActionLevel; import org.ourproject.kune.platf.server.auth.Authenticated; import org.ourproject.kune.platf.server.auth.Authorizated; import org.ourproject.kune.platf.server.domain.Group; -import org.ourproject.kune.platf.server.domain.SocialNetworkVisibility; import org.ourproject.kune.platf.server.domain.User; -import org.ourproject.kune.platf.server.domain.UserBuddiesVisibility; import org.ourproject.kune.platf.server.manager.GroupManager; import org.ourproject.kune.platf.server.manager.SocialNetworkManager; -import org.ourproject.kune.platf.server.manager.UserManager; import org.ourproject.kune.platf.server.mapper.Mapper; import com.google.inject.Inject; @@ -60,25 +48,20 @@ private final GroupManager groupManager; private final SocialNetworkManager socialNetworkManager; private final Mapper mapper; - private final UserManager userManager; - private final AccessRightsService accessRightsService; @Inject - public SocialNetworkRPC(final Provider<UserSession> userSessionProvider, final UserManager userManager, - final GroupManager groupManager, final SocialNetworkManager socialNetworkManager, final Mapper mapper, - AccessRightsService accessRightsService) { + public SocialNetworkRPC(final Provider<UserSession> userSessionProvider, final GroupManager groupManager, + final SocialNetworkManager socialNetworkManager, final Mapper mapper) { this.userSessionProvider = userSessionProvider; - this.userManager = userManager; this.groupManager = groupManager; this.socialNetworkManager = socialNetworkManager; this.mapper = mapper; - this.accessRightsService = accessRightsService; } @Authenticated @Authorizated(actionLevel = ActionLevel.group, accessRolRequired = AccessRol.Administrator) @Transactional(type = TransactionType.READ_WRITE) - public SocialNetworkResultDTO acceptJoinGroup(final String hash, final StateToken groupToken, + public SocialNetworkDataDTO acceptJoinGroup(final String hash, final StateToken groupToken, final String groupToAcceptShortName) throws DefaultException { final UserSession userSession = getUserSession(); final User userLogged = userSession.getUser(); @@ -91,7 +74,7 @@ @Authenticated @Authorizated(actionLevel = ActionLevel.group, accessRolRequired = AccessRol.Administrator) @Transactional(type = TransactionType.READ_WRITE) - public SocialNetworkResultDTO addAdminMember(final String hash, final StateToken groupToken, + public SocialNetworkDataDTO addAdminMember(final String hash, final StateToken groupToken, final String groupToAddShortName) throws DefaultException { final UserSession userSession = getUserSession(); final User userLogged = userSession.getUser(); @@ -104,7 +87,7 @@ @Authenticated @Authorizated(actionLevel = ActionLevel.group, accessRolRequired = AccessRol.Administrator) @Transactional(type = TransactionType.READ_WRITE) - public SocialNetworkResultDTO addCollabMember(final String hash, final StateToken groupToken, + public SocialNetworkDataDTO addCollabMember(final String hash, final StateToken groupToken, final String groupToAddShortName) throws DefaultException { final UserSession userSession = getUserSession(); final User userLogged = userSession.getUser(); @@ -117,7 +100,7 @@ @Authenticated @Authorizated(actionLevel = ActionLevel.group, accessRolRequired = AccessRol.Administrator) @Transactional(type = TransactionType.READ_WRITE) - public SocialNetworkResultDTO addViewerMember(final String hash, final StateToken groupToken, + public SocialNetworkDataDTO addViewerMember(final String hash, final StateToken groupToken, final String groupToAddShortName) throws DefaultException { final UserSession userSession = getUserSession(); final User userLogged = userSession.getUser(); @@ -130,7 +113,7 @@ @Authenticated @Authorizated(actionLevel = ActionLevel.group, accessRolRequired = AccessRol.Administrator) @Transactional(type = TransactionType.READ_WRITE) - public SocialNetworkResultDTO deleteMember(final String hash, final StateToken groupToken, + public SocialNetworkDataDTO deleteMember(final String hash, final StateToken groupToken, final String groupToDeleleShortName) throws DefaultException { final UserSession userSession = getUserSession(); final User userLogged = userSession.getUser(); @@ -143,7 +126,7 @@ @Authenticated @Authorizated(actionLevel = ActionLevel.group, accessRolRequired = AccessRol.Administrator) @Transactional(type = TransactionType.READ_WRITE) - public SocialNetworkResultDTO denyJoinGroup(final String hash, final StateToken groupToken, + public SocialNetworkDataDTO denyJoinGroup(final String hash, final StateToken groupToken, final String groupToDenyShortName) throws DefaultException { final UserSession userSession = getUserSession(); final User userLogged = userSession.getUser(); @@ -157,7 +140,7 @@ // At least you can access as Viewer to the Group @Authorizated(actionLevel = ActionLevel.group, accessRolRequired = AccessRol.Viewer) @Transactional(type = TransactionType.READ_ONLY) - public SocialNetworkResultDTO getSocialNetwork(final String hash, final StateToken groupToken) + public SocialNetworkDataDTO getSocialNetwork(final String hash, final StateToken groupToken) throws DefaultException { final UserSession userSession = getUserSession(); final User user = userSession.getUser(); @@ -178,7 +161,7 @@ @Authenticated @Authorizated(actionLevel = ActionLevel.group, accessRolRequired = AccessRol.Administrator) @Transactional(type = TransactionType.READ_WRITE) - public SocialNetworkResultDTO setAdminAsCollab(final String hash, final StateToken groupToken, + public SocialNetworkDataDTO setAdminAsCollab(final String hash, final StateToken groupToken, final String groupToSetCollabShortName) throws DefaultException { final UserSession userSession = getUserSession(); final User userLogged = userSession.getUser(); @@ -191,7 +174,7 @@ @Authenticated @Authorizated(actionLevel = ActionLevel.group, accessRolRequired = AccessRol.Administrator) @Transactional(type = TransactionType.READ_WRITE) - public SocialNetworkResultDTO setCollabAsAdmin(final String hash, final StateToken groupToken, + public SocialNetworkDataDTO setCollabAsAdmin(final String hash, final StateToken groupToken, final String groupToSetAdminShortName) throws DefaultException { final UserSession userSession = getUserSession(); final User userLogged = userSession.getUser(); @@ -203,7 +186,7 @@ @Authenticated @Transactional(type = TransactionType.READ_WRITE) - public SocialNetworkResultDTO unJoinGroup(final String hash, final StateToken groupToken) throws DefaultException { + public SocialNetworkDataDTO unJoinGroup(final String hash, final StateToken groupToken) throws DefaultException { final UserSession userSession = getUserSession(); final User userLogged = userSession.getUser(); final Group group = groupManager.findByShortName(groupToken.getGroup()); @@ -211,65 +194,10 @@ return generateResponse(userLogged, group); } - private SocialNetworkResultDTO generateResponse(final User userLogged, final Group group) { - AccessRights groupRights = accessRightsService.get(userLogged, group.getSocialNetwork().getAccessLists()); - if (group.getGroupType().equals(GroupType.PERSONAL)) { - UserBuddiesDataDTO userBuddies = getUserBuddies(group); - SocialNetworkResultDTO result = new SocialNetworkResultDTO(getGroupMembers(userLogged, group), - getParticipation(userLogged, group), userBuddies, mapper.map(groupRights, AccessRightsDTO.class)); - UserBuddiesVisibility buddiesVisibility = userLogged.getBuddiesVisibility(); - switch (buddiesVisibility) { - case anyone: - break; - case onlyyou: - if (userLogged == null || !userLogged.getUserGroup().equals(group)) { - result.setUserBuddies(null); - } - break; - case yourbuddies: - if (!userBuddies.contains(userLogged.getShortName())) { - result.setUserBuddies(null); - } - break; - } - result.setUserBuddiesVisibilityDTO(mapper.map(buddiesVisibility, UserBuddiesVisibilityDTO.class)); - return result; - } else { - SocialNetworkResultDTO result = new SocialNetworkResultDTO(getGroupMembers(userLogged, group), - getParticipation(userLogged, group), UserBuddiesDataDTO.NO_BUDDIES, mapper.map(groupRights, - AccessRightsDTO.class)); - SocialNetworkVisibility visibility = group.getSocialNetwork().getVisibility(); - switch (visibility) { - case anyone: - break; - case onlyadmins: - if (!groupRights.isAdministrable()) { - result.setGroupMembers(null); - } - break; - case onlymembers: - if (!groupRights.isEditable()) { - result.setGroupMembers(null); - } - break; - } - result.setSocialNetworkVisibilityDTO(mapper.map(visibility, SocialNetworkVisibilityDTO.class)); - return result; - } + private SocialNetworkDataDTO generateResponse(final User userLogged, final Group group) { + return mapper.map(socialNetworkManager.getSocialNetworkData(userLogged, group), SocialNetworkDataDTO.class); } - private SocialNetworkDTO getGroupMembers(final User user, final Group group) throws DefaultException { - return mapper.map(socialNetworkManager.get(user, group), SocialNetworkDTO.class); - } - - private ParticipationDataDTO getParticipation(final User user, final Group group) throws DefaultException { - return mapper.map(socialNetworkManager.findParticipation(user, group), ParticipationDataDTO.class); - } - - private UserBuddiesDataDTO getUserBuddies(final Group group) { - return mapper.map(userManager.getUserBuddies(group.getShortName()), UserBuddiesDataDTO.class); - } - private UserSession getUserSession() { return userSessionProvider.get(); } Modified: trunk/src/main/java/org/ourproject/kune/platf/server/sn/UserBuddiesData.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/server/sn/UserBuddiesData.java 2008-11-22 04:29:34 UTC (rev 961) +++ trunk/src/main/java/org/ourproject/kune/platf/server/sn/UserBuddiesData.java 2008-11-22 16:44:37 UTC (rev 962) @@ -25,6 +25,8 @@ public class UserBuddiesData { + public static UserBuddiesData EMPTY = new UserBuddiesData(); + private List<User> buddies; int otherExternalBuddies; @@ -33,6 +35,15 @@ buddies = new ArrayList<User>(); } + public boolean contains(String shortName) { + for (User buddie : buddies) { + if (buddie.getShortName().equals(shortName)) { + return true; + } + } + return false; + } + public List<User> getBuddies() { return buddies; } Modified: trunk/src/main/java/org/ourproject/kune/platf/server/state/StateAbstract.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/server/state/StateAbstract.java 2008-11-22 04:29:34 UTC (rev 961) +++ trunk/src/main/java/org/ourproject/kune/platf/server/state/StateAbstract.java 2008-11-22 16:44:37 UTC (rev 962) @@ -24,6 +24,7 @@ import org.ourproject.kune.platf.server.access.AccessRights; import org.ourproject.kune.platf.server.domain.Group; import org.ourproject.kune.platf.server.domain.SocialNetwork; +import org.ourproject.kune.platf.server.domain.SocialNetworkData; import org.ourproject.kune.platf.server.sn.ParticipationData; import org.ourproject.kune.platf.server.sn.UserBuddiesData; @@ -31,12 +32,9 @@ private List<String> enabledTools; private Group group; - private SocialNetwork groupMembers; - private AccessRights groupRights; - private ParticipationData participation; - private UserBuddiesData userBuddies; private StateToken stateToken; private String title; + private SocialNetworkData socialNetworkData; public StateAbstract() { } @@ -50,17 +48,21 @@ } public SocialNetwork getGroupMembers() { - return groupMembers; + return socialNetworkData.getGroupMembers(); } public AccessRights getGroupRights() { - return groupRights; + return socialNetworkData.getGroupRights(); } public ParticipationData getParticipation() { - return participation; + return socialNetworkData.getUserParticipation(); } + public SocialNetworkData getSocialNetworkData() { + return socialNetworkData; + } + public StateToken getStateToken() { return stateToken; } @@ -70,7 +72,7 @@ } public UserBuddiesData getUserBuddies() { - return userBuddies; + return socialNetworkData.getUserBuddies(); } public void setEnabledTools(List<String> enabledTools) { @@ -81,18 +83,10 @@ this.group = group; } - public void setGroupMembers(SocialNetwork groupMembers) { - this.groupMembers = groupMembers; + public void setSocialNetworkData(SocialNetworkData socialNetworkData) { + this.socialNetworkData = socialNetworkData; } - public void setGroupRights(AccessRights groupRights) { - this.groupRights = groupRights; - } - - public void setParticipation(ParticipationData participation) { - this.participation = participation; - } - public void setStateToken(StateToken stateToken) { this.stateToken = stateToken; } @@ -101,10 +95,6 @@ this.title = title; } - public void setUserBuddies(UserBuddiesData userBuddies) { - this.userBuddies = userBuddies; - } - @Override public String toString() { return "State[" + getStateToken() + "]"; Modified: trunk/src/main/java/org/ourproject/kune/platf/server/state/StateServiceDefault.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/server/state/StateServiceDefault.java 2008-11-22 04:29:34 UTC (rev 961) +++ trunk/src/main/java/org/ourproject/kune/platf/server/state/StateServiceDefault.java 2008-11-22 16:44:37 UTC (rev 962) @@ -32,7 +32,6 @@ import org.ourproject.kune.platf.server.manager.GroupManager; import org.ourproject.kune.platf.server.manager.SocialNetworkManager; import org.ourproject.kune.platf.server.manager.TagManager; -import org.ourproject.kune.platf.server.manager.UserManager; import com.google.inject.Inject; import com.google.inject.Singleton; @@ -41,7 +40,6 @@ public class StateServiceDefault implements StateService { private final AccessRightsService rightsService; - private final UserManager userManager; private final SocialNetworkManager socialNetworkManager; private final GroupManager groupManager; private final TagManager tagManager; @@ -49,10 +47,9 @@ private final I18nTranslationService i18n; @Inject - public StateServiceDefault(UserManager userManager, GroupManager groupManager, - SocialNetworkManager socialNetworkManager, ContentManager contentManager, TagManager tagManager, - AccessRightsService rightsService, I18nTranslationService i18n) { - this.userManager = userManager; + public StateServiceDefault(GroupManager groupManager, SocialNetworkManager socialNetworkManager, + ContentManager contentManager, TagManager tagManager, AccessRightsService rightsService, + I18nTranslationService i18n) { this.groupManager = groupManager; this.socialNetworkManager = socialNetworkManager; this.contentManager = contentManager; @@ -115,7 +112,6 @@ assert (group.getGroupType().equals(GroupType.PERSONAL)); StateNoContent state = new StateNoContent(); state.setGroup(group); - state.setGroupRights(rightsService.get(userLogged, group.getAccessLists())); state.setEnabledTools(groupManager.findEnabledTools(group.getId())); setSocialNetwork(state, userLogged, group); state.setStateToken(group.getStateToken()); @@ -131,7 +127,6 @@ state.setToolName(container.getToolName()); state.setGroup(group); state.setContainer(container); - state.setGroupRights(rightsService.get(userLogged, group.getAccessLists())); state.setContainerRights(rightsService.get(userLogged, container.getAccessLists())); state.setEnabledTools(groupManager.findEnabledTools(group.getId())); state.setTagCloudResult(tagManager.getTagCloudResultByGroup(group)); @@ -139,10 +134,6 @@ } private void setSocialNetwork(StateAbstract state, User userLogged, Group group) { - state.setGroupMembers(socialNetworkManager.get(userLogged, group)); - state.setParticipation(socialNetworkManager.findParticipation(userLogged, group)); - if (group.getGroupType().equals(GroupType.PERSONAL)) { - state.setUserBuddies(userManager.getUserBuddies(group.getShortName())); - } + state.setSocialNetworkData(socialNetworkManager.getSocialNetworkData(userLogged, group)); } } Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/BuddiesSummaryPanel.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/BuddiesSummaryPanel.java 2008-11-22 04:29:34 UTC (rev 961) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/BuddiesSummaryPanel.java 2008-11-22 16:44:37 UTC (rev 962) @@ -27,7 +27,6 @@ import org.ourproject.kune.platf.client.actions.toolbar.ActionToolbarView; import org.ourproject.kune.platf.client.dto.UserSimpleDTO; import org.ourproject.kune.platf.client.services.I18nTranslationService; -import org.ourproject.kune.platf.client.services.Images; import org.ourproject.kune.workspace.client.skel.SimpleToolbar; import org.ourproject.kune.workspace.client.skel.SummaryPanel; import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton; @@ -54,7 +53,8 @@ VerticalPanel vp = new VerticalPanel(); avatar = new Image(); if (avatarUrl.equals(NOAVATAR)) { - Images.App.getInstance().personAvatarDef().applyTo(avatar); + // Images.App.getInstance().personAvatarDef().applyTo(avatar); + avatar.setUrl("images/persons/person2-32.png"); } else { avatar.setUrl(avatarUrl); } @@ -80,12 +80,15 @@ nick.setText(nickName); } } + + public static final String NOT_PUBLIC = "The buddies of this user are not public"; private final MenuItemsContainer<UserSimpleDTO> menuItemsContainer; private final FlowPanel flowPanel; private final Label otherBuddiesLabel; private final I18nTranslationService i18n; private final ActionManager actionManager; private final SimpleToolbar toolbar; + private final Label noBuddiesPublic; public BuddiesSummaryPanel(final BuddiesSummaryPresenter presenter, final WorkspaceSkeleton ws, I18nTranslationService i18n, ActionManager actionManager, ActionToolbarView<UserSimpleDTO> actionToolbarView) { @@ -104,6 +107,9 @@ vp.add(toolbar); super.add(vp); addInSummary(); + noBuddiesPublic = new Label(i18n.t(NOT_PUBLIC)); + noBuddiesPublic.addStyleName("kune-Margin-7-trbl"); + noBuddiesPublic.addStyleName("k-text-gray"); } public void addBuddie(final UserSimpleDTO user, ActionItemCollection<UserSimpleDTO> actionCollection, @@ -147,6 +153,10 @@ otherBuddiesLabel.setText(text); } + public void showBuddiesNotVisible() { + flowPanel.add(noBuddiesPublic); + } + private void doAction(final ActionItem<UserSimpleDTO> actionItem) { actionManager.doAction(actionItem); } Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/BuddiesSummaryPresenter.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/BuddiesSummaryPresenter.java 2008-11-22 04:29:34 UTC (rev 961) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/BuddiesSummaryPresenter.java 2008-11-22 16:44:37 UTC (rev 962) @@ -23,6 +23,7 @@ import org.ourproject.kune.chat.client.ChatEngine; import org.ourproject.kune.platf.client.View; import org.ourproject.kune.platf.client.actions.ActionAddCondition; +import org.ourproject.kune.platf.client.actions.ActionEnableCondition; import org.ourproject.kune.platf.client.actions.ActionMenuItemDescriptor; import org.ourproject.kune.platf.client.actions.ActionToolbarButtonAndItemDescriptor; import org.ourproject.kune.platf.client.actions.ActionToolbarMenuDescriptor; @@ -96,7 +97,7 @@ if (state.getGroup().getGroupType().equals(GroupType.PERSONAL)) { view.clear(); UserBuddiesDataDTO userBuddies = state.getUserBuddies(); - if (userBuddies != UserBuddiesDataDTO.NO_BUDDIES) { + if (state.getSocialNetworkData().isBuddiesVisible()) { List<UserSimpleDTO> buddies = userBuddies.getBuddies(); for (UserSimpleDTO user : buddies) { String avatarUrl = user.hasLogo() ? fileDownUtilsProvider.get().getLogoImageUrl( @@ -128,7 +129,7 @@ toolbar.attach(); view.show(); } else { - view.hide(); + view.showBuddiesNotVisible(); } } else { view.hide(); @@ -136,7 +137,7 @@ } private void createSetBuddiesVisibilityAction(String textDescription, final UserBuddiesVisibilityDTO visibility) { - ActionToolbarMenuDescriptor<UserSimpleDTO> showBuddies = new ActionToolbarMenuDescriptor<UserSimpleDTO>( + ActionToolbarMenuDescriptor<UserSimpleDTO> buddiesVisibilityAction = new ActionToolbarMenuDescriptor<UserSimpleDTO>( AccessRolDTO.Administrator, ActionToolbarPosition.bottombar, new Listener<UserSimpleDTO>() { public void onEvent(UserSimpleDTO parameter) { userServiceAsync.get().setBuddiesVisibility(session.getUserHash(), @@ -148,10 +149,10 @@ }); } }); - showBuddies.setTextDescription(textDescription); - showBuddies.setParentMenuTitle(i18n.t("Options")); - showBuddies.setParentSubMenuTitle(i18n.t("Who can view your buddies list")); - actionRegistry.addAction(showBuddies); + buddiesVisibilityAction.setTextDescription(textDescription); + buddiesVisibilityAction.setParentMenuTitle(i18n.t("Options")); + buddiesVisibilityAction.setParentSubMenuTitle(i18n.t("Who can view your buddies list")); + actionRegistry.addAction(buddiesVisibilityAction); } private void registerActions() { @@ -169,6 +170,11 @@ return !session.getCurrentUserInfo().getShortName().equals(item.getShortName()); } }); + addAsBuddie.setEnableCondition(new ActionEnableCondition<UserSimpleDTO>() { + public boolean mustBeEnabled(UserSimpleDTO item) { + return !session.getCurrentUserInfo().getShortName().equals(item.getShortName()); + } + }); actionRegistry.addAction(addAsBuddie); final ActionMenuItemDescriptor<UserSimpleDTO> go = new ActionMenuItemDescriptor<UserSimpleDTO>( Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/BuddiesSummaryView.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/BuddiesSummaryView.java 2008-11-22 04:29:34 UTC (rev 961) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/BuddiesSummaryView.java 2008-11-22 16:44:37 UTC (rev 962) @@ -40,4 +40,6 @@ void setOtherUsers(String text); void show(); + + void showBuddiesNotVisible(); } Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPanel.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPanel.java 2008-11-22 04:29:34 UTC (rev 961) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPanel.java 2008-11-22 16:44:37 UTC (rev 962) @@ -36,16 +36,19 @@ import com.calclab.suco.client.listener.Listener; import com.google.gwt.user.client.Command; import com.google.gwt.user.client.DeferredCommand; +import com.google.gwt.user.client.ui.Label; import com.gwtext.client.widgets.BoxComponent; import com.gwtext.client.widgets.MessageBox; import com.gwtext.client.widgets.event.ContainerListenerAdapter; public class GroupMembersSummaryPanel extends SummaryPanel implements GroupMembersSummaryView { + public static final String NOT_PUBLIC = "The members of this group are not public"; // private static final int MAX_HEIGHT = 110; private final GridMenuPanel<GroupDTO> gridMenuPanel; private final I18nUITranslationService i18n; private final GroupMembersSummaryPresenter presenter; private final SimpleToolbar toolbar; + private final Label noMembersPublic; public GroupMembersSummaryPanel(final GroupMembersSummaryPresenter presenter, final I18nUITranslationService i18n, final WorkspaceSkeleton ws, ActionToolbarView<StateToken> actionToolbarView) { @@ -67,6 +70,13 @@ gridMenuPanel.onDoubleClick(go); gridMenuPanel.getBottomBar().setCls("k-blank-toolbar"); super.add(gridMenuPanel); + + noMembersPublic = new Label(i18n.t(NOT_PUBLIC)); + noMembersPublic.addStyleName("kune-Margin-7-trbl"); + noMembersPublic.addStyleName("k-text-gray"); + noMembersPublic.setVisible(false); + super.add(noMembersPublic); + toolbar = ((ActionToolbarPanel<StateToken>) actionToolbarView).getToolbar(ActionToolbarPosition.bottombar); toolbar.setCleanStyle(); super.add(toolbar); @@ -81,6 +91,7 @@ } public void addItem(final GridItem<GroupDTO> gridItem) { + gridMenuPanel.setVisible(true); gridMenuPanel.addItem(gridItem); doLayoutIfNeeded(); } @@ -89,6 +100,7 @@ public void clear() { gridMenuPanel.removeAll(); toolbar.removeAll(); + noMembersPublic.setVisible(false); doLayoutIfNeeded(); } @@ -116,4 +128,10 @@ public void setTheme(final WsTheme oldTheme, final WsTheme newTheme) { // super.setTheme(oldTheme, newTheme); } + + public void showMembersNotVisible() { + noMembersPublic.setVisible(true); + gridMenuPanel.setVisible(false); + } + } Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPresenter.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPresenter.java 2008-11-22 04:29:34 UTC (rev 961) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryPresenter.java 2008-11-22 16:44:37 UTC (rev 962) @@ -33,7 +33,7 @@ import org.ourproject.kune.platf.client.dto.InitDataDTO; import org.ourproject.kune.platf.client.dto.LinkDTO; import org.ourproject.kune.platf.client.dto.SocialNetworkDTO; -import org.ourproject.kune.platf.client.dto.SocialNetworkResultDTO; +import org.ourproject.kune.platf.client.dto.SocialNetworkDataDTO; import org.ourproject.kune.platf.client.dto.SocialNetworkVisibilityDTO; import org.ourproject.kune.platf.client.dto.StateAbstractDTO; import org.ourproject.kune.platf.client.dto.StateToken; @@ -135,8 +135,8 @@ public void addCollab(final String groupShortName) { Site.showProgressProcessing(); snServiceProvider.get().addCollabMember(session.getUserHash(), session.getCurrentState().getStateToken(), - groupShortName, new AsyncCallbackSimple<SocialNetworkResultDTO>() { - public void onSuccess(final SocialNetworkResultDTO result) { + groupShortName, new AsyncCallbackSimple<SocialNetworkDataDTO>() { + public void onSuccess(final SocialNetworkDataDTO result) { Site.hideProgress(); Site.info(i18n.t("Member added as collaborator")); stateManager.setSocialNetwork(result); @@ -232,7 +232,12 @@ if (state.getGroup().getGroupType().equals(GroupType.PERSONAL)) { view.setVisible(false); } else { - setGroupMembers(state.getGroupMembers(), state.getGroupRights()); + if (state.getSocialNetworkData().isMembersVisible()) { + setGroupMembers(state.getGroupMembers(), state.getGroupRights()); + } else { + view.clear(); + view.showMembersNotVisible(); + } } } Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryView.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryView.java 2008-11-22 04:29:34 UTC (rev 961) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/GroupMembersSummaryView.java 2008-11-22 16:44:37 UTC (rev 962) @@ -36,4 +36,6 @@ void setVisible(boolean visible); + void showMembersNotVisible(); + } Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/SocialNetworkPresenter.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/SocialNetworkPresenter.java 2008-11-22 04:29:34 UTC (rev 961) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/socialnet/SocialNetworkPresenter.java 2008-11-22 16:44:37 UTC (rev 962) @@ -28,7 +28,7 @@ import org.ourproject.kune.platf.client.dto.GroupDTO; import org.ourproject.kune.platf.client.dto.GroupType; import org.ourproject.kune.platf.client.dto.SocialNetworkRequestResult; -import org.ourproject.kune.platf.client.dto.SocialNetworkResultDTO; +import org.ourproject.kune.platf.client.dto.SocialNetworkDataDTO; import org.ourproject.kune.platf.client.dto.StateToken; import org.ourproject.kune.platf.client.rpc.AsyncCallbackSimple; import org.ourproject.kune.platf.client.rpc.SocialNetworkServiceAsync; @@ -235,8 +235,8 @@ Site.showProgressProcessing(); snServiceProvider.get().setAdminAsCollab(session.getUserHash(), session.getCurrentState().getStateToken(), group.getShortName(), - new AsyncCallbackSimple<SocialNetworkResultDTO>() { - public void onSuccess(final SocialNetworkResultDTO result) { + new AsyncCallbackSimple<SocialNetworkDataDTO>() { + public void onSuccess(final SocialNetworkDataDTO result) { Site.hideProgress(); Site.info(i18n.t("Type of member changed")); stateManager.setSocialNetwork(result); @@ -250,8 +250,8 @@ Site.showProgressProcessing(); snServiceProvider.get().deleteMember(session.getUserHash(), session.getCurrentState().getStateToken(), group.getShortName(), - new AsyncCallbackSimple<SocialNetworkResultDTO>() { - public void onSuccess(final SocialNetworkResultDTO result) { + new AsyncCallbackSimple<SocialNetworkDataDTO>() { + public void onSuccess(final SocialNetworkDataDTO result) { Site.hideProgress(); Site.info(i18n.t("Member removed")); stateManager.reload(); @@ -273,8 +273,8 @@ Site.showProgressProcessing(); snServiceProvider.get().setCollabAsAdmin(session.getUserHash(), session.getCurrentState().getStateToken(), group.getShortName(), - new AsyncCallbackSimple<SocialNetworkResultDTO>() { - public void onSuccess(final SocialNetworkResultDTO result) { + new AsyncCallbackSimple<SocialNetworkDataDTO>() { + public void onSuccess(final SocialNetworkDataDTO result) { Site.hideProgress(); Site.info(i18n.t("Type of member changed")); stateManager.setSocialNetwork(result); @@ -288,8 +288,8 @@ Site.showProgressProcessing(); snServiceProvider.get().acceptJoinGroup(session.getUserHash(), session.getCurrentState().getStateToken(), group.getShortName(), - new AsyncCallbackSimple<SocialNetworkResultDTO>() { - public void onSuccess(final SocialNetworkResultDTO result) { + new AsyncCallbackSimple<SocialNetworkDataDTO>() { + public void onSuccess(final SocialNetworkDataDTO result) { Site.hideProgress(); Site.info(i18n.t("Member accepted")); stateManager.setSocialNetwork(result); @@ -303,8 +303,8 @@ Site.showProgressProcessing(); snServiceProvider.get().denyJoinGroup(session.getUserHash(), session.getCurrentState().getStateToken(), group.getShortName(), - new AsyncCallbackSimple<SocialNetworkResultDTO>() { - public void onSuccess(final SocialNetworkResultDTO result) { + new AsyncCallbackSimple<SocialNetworkDataDTO>() { + public void onSuccess(final SocialNetworkDataDTO result) { Site.hideProgress(); Site.info(i18n.t("Member rejected")); stateManager.setSocialNetwork(result); @@ -325,8 +325,8 @@ private void removeMemberAction(final GroupDTO groupDTO) { Site.showProgressProcessing(); snServiceProvider.get().unJoinGroup(session.getUserHash(), new StateToken(groupDTO.getShortName()), - new AsyncCallbackSimple<SocialNetworkResultDTO>() { - public void onSuccess(final SocialNetworkResultDTO result) { + new AsyncCallbackSimple<SocialNetworkDataDTO>() { + public void onSuccess(final SocialNetworkDataDTO result) { Site.hideProgress(); Site.info(i18n.t("Removed as member")); stateManager.reload(); Modified: trunk/src/main/resources/dozerBeanMapping.xml =================================================================== --- trunk/src/main/resources/dozerBeanMapping.xml 2008-11-22 04:29:34 UTC (rev 961) +++ trunk/src/main/resources/dozerBeanMapping.xml 2008-11-22 16:44:37 UTC (rev 962) @@ -500,4 +500,13 @@ org.ourproject.kune.platf.server.sn.UserBuddiesData </class-b> </mapping> + + <mapping> + <class-a> + org.ourproject.kune.platf.client.dto.SocialNetworkDataDTO + </class-a> + <class-b> + org.ourproject.kune.platf.server.domain.SocialNetworkData + </class-b> + </mapping> </mappings> \ No newline at end of file Modified: trunk/src/test/java/org/ourproject/kune/platf/integration/socialnet/SocialNetworkServiceTest.java =================================================================== --- trunk/src/test/java/org/ourproject/kune/platf/integration/socialnet/SocialNetworkServiceTest.java 2008-11-22 04:29:34 UTC (rev 961) +++ trunk/src/test/java/org/ourproject/kune/platf/integration/socialnet/SocialNetworkServiceTest.java 2008-11-22 16:44:37 UTC (rev 962) @@ -4,7 +4,7 @@ import org.junit.Before; import org.junit.Test; -import org.ourproject.kune.platf.client.dto.SocialNetworkResultDTO; +import org.ourproject.kune.platf.client.dto.SocialNetworkDataDTO; import org.ourproject.kune.platf.client.dto.StateToken; import org.ourproject.kune.platf.client.errors.AlreadyUserMemberException; import org.ourproject.kune.platf.client.errors.UserMustBeLoggedException; @@ -31,13 +31,13 @@ @Test public void testGetGroupMembersNotLogged() throws Exception { - final SocialNetworkResultDTO sn = socialNetworkService.getSocialNetwork(null, groupToken); + final SocialNetworkDataDTO sn = socialNetworkService.getSocialNetwork(null, groupToken); assertNotNull(sn.getGroupMembers()); } @Test public void testGetParticipationNotLogged() throws Exception { - final SocialNetworkResultDTO sn = socialNetworkService.getSocialNetwork(null, groupToken); + final SocialNetworkDataDTO sn = socialNetworkService.getSocialNetwork(null, groupToken); assertNotNull(sn.getUserParticipation()); } Modified: trunk/src/test/java/org/ourproject/kune/platf/server/mapper/MapperTest.java =================================================================== --- trunk/src/test/java/org/ourproject/kune/platf/server/mapper/MapperTest.java 2008-11-22 04:29:34 UTC (rev 961) +++ trunk/src/test/java/org/ourproject/kune/platf/server/mapper/MapperTest.java 2008-11-22 16:44:37 UTC (rev 962) @@ -18,8 +18,11 @@ import org.ourproject.kune.platf.client.dto.GroupListDTO; import org.ourproject.kune.platf.client.dto.LicenseDTO; import org.ourproject.kune.platf.client.dto.LinkDTO; +import org.ourproject.kune.platf.client.dto.SocialNetworkDataDTO; +import org.ourproject.kune.platf.client.dto.SocialNetworkVisibilityDTO; import org.ourproject.kune.platf.client.dto.StateContentDTO; import org.ourproject.kune.platf.client.dto.StateToken; +import org.ourproject.kune.platf.client.dto.UserBuddiesVisibilityDTO; import org.ourproject.kune.platf.server.TestDomainHelper; import org.ourproject.kune.platf.server.TestHelper; import org.ourproject.kune.platf.server.access.AccessRights; @@ -32,8 +35,14 @@ import org.ourproject.kune.platf.server.domain.GroupListMode; import org.ourproject.kune.platf.server.domain.License; import org.ourproject.kune.platf.server.domain.Revision; +import org.ourproject.kune.platf.server.domain.SocialNetwork; +import org.ourproject.kune.platf.server.domain.SocialNetworkData; +import org.ourproject.kune.platf.server.domain.SocialNetworkVisibility; import org.ourproject.kune.platf.server.domain.User; +import org.ourproject.kune.platf.server.domain.UserBuddiesVisibility; import org.ourproject.kune.platf.server.manager.GroupManager; +import org.ourproject.kune.platf.server.sn.ParticipationData; +import org.ourproject.kune.platf.server.sn.UserBuddiesData; import org.ourproject.kune.platf.server.state.StateContent; import com.google.inject.Inject; @@ -230,6 +239,36 @@ } @Test + public void testSnResultMap() { + Group group = new Group("test", "this is a test"); + SocialNetwork sn = new SocialNetwork(); + sn.addAdmin(group); + ParticipationData part = new ParticipationData(); + part.setGroupsIsAdmin(sn.getAccessLists().getAdmins().getList()); + UserBuddiesData budData = new UserBuddiesData(); + ArrayList<User> buddies = new ArrayList<User>(); + final User user = new User(); + user.setShortName("usertest"); + user.setUserGroup(new Group("test2", "this is test2")); + buddies.add(user); + budData.setBuddies(buddies); + SocialNetworkData snResult = new SocialNetworkData(SocialNetworkVisibility.onlymembers, sn, part, + UserBuddiesVisibility.onlyyou, budData, new AccessRights(false, false, true), true, true); + SocialNetworkDataDTO map = mapper.map(snResult, SocialNetworkDataDTO.class); + assertNotNull(map); + assertEquals(SocialNetworkVisibilityDTO.onlymembers, map.getSocialNetworkVisibility()); + assertEquals(UserBuddiesVisibilityDTO.onlyyou, map.getUserBuddiesVisibility()); + assertEquals("test", map.getGroupMembers().getAccessLists().getAdmins().getList().get(0).getShortName()); + assertEquals("test", map.getUserParticipation().getGroupsIsAdmin().get(0).getShortName()); + assertEquals("usertest", map.getUserBuddies().getBuddies().get(0).getShortName()); + assertFalse(map.getGroupRights().isAdministrable()); + assertFalse(map.getGroupRights().isEditable()); + assertTrue(map.getGroupRights().isVisible()); + assertTrue(map.isMembersVisible()); + assertTrue(map.isBuddiesVisible()); + } + + @Test public void testStateTokenInStateMap() { final StateToken stateToken = new StateToken(TESTGROUPSHORTNAME, TESTTOOL, "1", "2"); final StateToken stateTokenMapped = mapper.map(stateToken, StateToken.class);