branch develop updated (e6c7ee8 -> 10ca968)
This is an automated email from the git hooks/post-receive script. New change to branch develop in repository bow. See http://git.chorem.org/bow.git from e6c7ee8 - add getBowUser on BowBaseAction - remove problematics field in form (owner) not very useful (and bug with struts new 10ca968 rename group or shareUser tag, if user is no more in group or share user is deleted The 1 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Detailed log of new commits: commit 10ca9682675815f9432f21733ac8887deb13e5e8 Author: Benjamin POUSSIN <poussin@codelutin.com> Date: Thu Aug 6 19:35:00 2015 +0200 rename group or shareUser tag, if user is no more in group or share user is deleted Summary of changes: .../src/main/java/org/chorem/bow/BowSession.java | 41 ++++++++++++++++++++++ .../chorem/bow/action/group/GroupEditAction.java | 40 +++++++++++++++------ .../bow/action/preference/AdminTagAction.java | 34 ++++-------------- .../action/sharedUser/SharedUserEditAction.java | 13 +++++-- 4 files changed, 88 insertions(+), 40 deletions(-) -- To stop receiving notification emails like this one, please contact chorem.org SCM administrator <admin+scm@chorem.org>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository bow. See http://git.chorem.org/bow.git commit 10ca9682675815f9432f21733ac8887deb13e5e8 Author: Benjamin POUSSIN <poussin@codelutin.com> Date: Thu Aug 6 19:35:00 2015 +0200 rename group or shareUser tag, if user is no more in group or share user is deleted --- .../src/main/java/org/chorem/bow/BowSession.java | 41 ++++++++++++++++++++++ .../chorem/bow/action/group/GroupEditAction.java | 40 +++++++++++++++------ .../bow/action/preference/AdminTagAction.java | 34 ++++-------------- .../action/sharedUser/SharedUserEditAction.java | 13 +++++-- 4 files changed, 88 insertions(+), 40 deletions(-) diff --git a/bow-ui/src/main/java/org/chorem/bow/BowSession.java b/bow-ui/src/main/java/org/chorem/bow/BowSession.java index 5b8d3c5..820fac8 100644 --- a/bow-ui/src/main/java/org/chorem/bow/BowSession.java +++ b/bow-ui/src/main/java/org/chorem/bow/BowSession.java @@ -34,7 +34,11 @@ import java.util.Collections; import java.util.HashSet; import java.util.List; import java.util.Map; +import java.util.Set; +import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.lang3.StringUtils; import org.nuiton.wikitty.entities.WikittyGroup; +import org.nuiton.wikitty.entities.WikittyLabel; import org.nuiton.wikitty.entities.WikittyUser; import org.nuiton.wikitty.query.WikittyQuery; import org.nuiton.wikitty.query.WikittyQueryMaker; @@ -113,6 +117,43 @@ public class BowSession implements Serializable { } /** + * Recherche les bookmarks de l'utilisateur courant (owner) contenant au + * moins un des tags a supprimer (toRemove) et les supprimes et ajoute ceux + * qui sont dans la liste toAdd. + * + * Si toAdd est vide ou null, alors cette methode revient un une simple + * suppression. + * + * @param toRemove les des tags servant pour la recherche et qui seront supprimes + * @param toAdd les tags qui seront ajoute + */ + public void removeAndAddTag(List<String> toRemove, List<String> toAdd) { + WikittyQuery c = new WikittyQueryMaker().and() + .exteq(BowBookmark.EXT_BOWBOOKMARK) + .containsOne(BowBookmark.FQ_FIELD_WIKITTYLABEL_LABELS, toRemove) + .eq(BowBookmark.FQ_FIELD_WIKITTYAUTHORISATION_OWNER, user) + .end(); + WikittyQueryResult<WikittyLabel> searchResult = + proxy.findAllByQuery(WikittyLabel.class, c); + + List<WikittyLabel> toStore = new ArrayList<WikittyLabel>(); + for (WikittyLabel label : searchResult) { + toStore.add(label); + Set<String> l = label.getLabels(); + if (l != null) { + // on fait une copie, car l retourne est non modifiable + l = new HashSet<String>(l); + l.removeAll(toRemove); + if (CollectionUtils.isNotEmpty(toAdd)) { + l.addAll(toAdd); + } + label.setLabels(l); + } + } + proxy.store(toStore); + } + + /** * Get default user authentication * @return */ diff --git a/bow-ui/src/main/java/org/chorem/bow/action/group/GroupEditAction.java b/bow-ui/src/main/java/org/chorem/bow/action/group/GroupEditAction.java index acf8e01..cb0e787 100644 --- a/bow-ui/src/main/java/org/chorem/bow/action/group/GroupEditAction.java +++ b/bow-ui/src/main/java/org/chorem/bow/action/group/GroupEditAction.java @@ -27,6 +27,7 @@ import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.chorem.bow.BowConfig; import org.chorem.bow.BowGroup; import org.chorem.bow.BowGroupImpl; import org.chorem.bow.BowProxy; @@ -120,10 +121,11 @@ public class GroupEditAction extends BowBaseAction { public String removeMe() throws Exception { String result = SUCCESS; try { - BowSession session = getBowSession(); - BowUser user = session.getUser(); - BowProxy proxy = session.getProxy(); + String groupName = group.getName(); + + BowUser user = getBowUser(); + BowProxy proxy = getBowProxy(); // group is loaded by prepare method getGroup().removeMembers(user.getWikittyId()); @@ -134,6 +136,11 @@ public class GroupEditAction extends BowBaseAction { proxy.store(group); } + getBowSession().removeAndAddTag( + Collections.singletonList(BowConfig.GROUP_MARK + groupName), + Collections.singletonList(groupName) + ); + } catch (Exception eee) { addActionError(t("bow.error.internal")); log.error(eee.getMessage(), eee); @@ -151,7 +158,9 @@ public class GroupEditAction extends BowBaseAction { BowSession session = getBowSession(); BowProxy proxy = session.getProxy(); - if (StringUtils.isNotBlank(getGroup().getName())) { + String groupName = group.getName(); + + if (StringUtils.isNotBlank(groupName)) { Map<String, String> logins = new HashMap<String, String>(); // convert user login to id for (String login : getGroup().getMembers()) { @@ -178,9 +187,14 @@ public class GroupEditAction extends BowBaseAction { } if (result == SUCCESS && CollectionUtils.isEmpty(getGroup().getMembers())) { addActionMessage(t("bow.group.delete.no.member")); - // FIXME poussin 20150730 convert all tag '@<group>' to '<group>' - // when group is destroy proxy.delete(group); + // FIXME poussin 20150806 rename only for current user, but + // all bookmarks where current user is reader and with this + // group must be modified + getBowSession().removeAndAddTag( + Collections.singletonList(BowConfig.GROUP_MARK + groupName), + Collections.singletonList(groupName) + ); } else { // force admin to group all time getGroup().setAdmin(Collections.singleton(getGroup().getWikittyId())); @@ -206,13 +220,19 @@ public class GroupEditAction extends BowBaseAction { } String result = SUCCESS; try { - BowSession session = getBowSession(); - BowProxy proxy = session.getProxy(); - // FIXME poussin 20150730 convert all tag '@<group>' to '<group>' - // when group is destroy + String groupName = group.getName(); + BowProxy proxy = getBowProxy(); + proxy.delete(group); + // FIXME poussin 20150806 rename only for current user, but + // all bookmarks where current user is reader and with this + // group must be modified + getBowSession().removeAndAddTag( + Collections.singletonList(BowConfig.GROUP_MARK + groupName), + Collections.singletonList(groupName) + ); } catch (Exception eee) { addActionError(t("bow.error.internal")); diff --git a/bow-ui/src/main/java/org/chorem/bow/action/preference/AdminTagAction.java b/bow-ui/src/main/java/org/chorem/bow/action/preference/AdminTagAction.java index b147989..acaf4c2 100644 --- a/bow-ui/src/main/java/org/chorem/bow/action/preference/AdminTagAction.java +++ b/bow-ui/src/main/java/org/chorem/bow/action/preference/AdminTagAction.java @@ -30,6 +30,7 @@ import org.nuiton.wikitty.entities.WikittyLabel; import java.util.ArrayList; import java.util.Arrays; +import java.util.Collections; import java.util.HashSet; import java.util.List; import java.util.Set; @@ -70,35 +71,14 @@ public class AdminTagAction extends PreferenceBaseAction { log.debug("action delete: " + delete + " rename: " + rename); } - List<String> selectedLabelsList = Arrays.asList(selectedLabels); - boolean isRename = StringUtils.isNotEmpty(rename); + List<String> toRemove = Arrays.asList(selectedLabels); + List<String> toAdd = null; - BowProxy proxy = getBowProxy(); - BowUser user = getBowSession().getUser(); - String userId = user.getWikittyId(); - - WikittyQuery c = new WikittyQueryMaker().and() - .containsOne(BowBookmark.FQ_FIELD_WIKITTYLABEL_LABELS, selectedLabelsList) - .eq(BowBookmark.FQ_FIELD_WIKITTYAUTHORISATION_OWNER, userId) - .end(); - WikittyQueryResult<WikittyLabel> searchResult = - proxy.findAllByQuery(WikittyLabel.class, c); - - List<WikittyLabel> toStore = new ArrayList<WikittyLabel>(); - for (WikittyLabel label : searchResult) { - toStore.add(label); - Set<String> l = label.getLabels(); - if (l != null) { - // on fait une copie, car l retourne est non modifiable - l = new HashSet<String>(l); - l.removeAll(selectedLabelsList); - if (isRename) { - l.add(newLabel); - } - label.setLabels(l); - } + if (StringUtils.isNotEmpty(rename)) { + toAdd = Collections.singletonList(newLabel); } - proxy.store(toStore); + + getBowSession().removeAndAddTag(toRemove, toAdd); } catch (Exception eee) { addActionError(t("bow.error.internal")); diff --git a/bow-ui/src/main/java/org/chorem/bow/action/sharedUser/SharedUserEditAction.java b/bow-ui/src/main/java/org/chorem/bow/action/sharedUser/SharedUserEditAction.java index f5c9dca..476be0d 100644 --- a/bow-ui/src/main/java/org/chorem/bow/action/sharedUser/SharedUserEditAction.java +++ b/bow-ui/src/main/java/org/chorem/bow/action/sharedUser/SharedUserEditAction.java @@ -20,9 +20,11 @@ */ package org.chorem.bow.action.sharedUser; +import java.util.Collections; import org.apache.commons.lang3.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.chorem.bow.BowConfig; import org.chorem.bow.BowSharedUser; import org.chorem.bow.BowSharedUserImpl; import org.chorem.bow.BowProxy; @@ -121,13 +123,18 @@ public class SharedUserEditAction extends BowBaseAction { } String result = SUCCESS; try { - BowProxy proxy = getBowProxy(); - // FIXME poussin 20150730 convert all tag '#<user>' to '<user>' - // when user is destroy + String userLogin = sharedUser.getLogin(); + + BowProxy proxy = getBowProxy(); proxy.delete(sharedUserId); + getBowSession().removeAndAddTag( + Collections.singletonList(BowConfig.USER_MARK + userLogin), + Collections.singletonList(userLogin) + ); + } catch (Exception eee) { addActionError(t("bow.error.internal")); log.error(eee.getMessage(), eee); -- To stop receiving notification emails like this one, please contact chorem.org SCM administrator <admin+scm@chorem.org>.
participants (1)
-
chorem.org scm