branch develop updated (b0b91ff -> bf124e7)
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 b0b91ff fixes #229: Partage de bookmark entre utilisateur fixes #1263: Add support for group (private/public) and with specific tag share some bookmark with this groups can't use group if not members (when try to add tag) new f33801d if no group tag, don't try to search group new 1731b2a add Group description new eac7769 update translation new ffd8da4 update translation new 05c45bd add support for speudo bookmarks title (first work of descriotion) new 4b78382 add login of currently logged user in logout block new 6303a70 add configuration to allow or not public group new 9be947e add comment about proxy.logout() new 0a47cc8 add key for new config option (allow public group) new bf124e7 - add wikitty AppAdminGroup when admin login - WikittyClient has now correct Wikitty SecurityToken and with AppAdminGroup can check if user can read/write bookmark The 10 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 bf124e708b75aa70095f08c384c85b48d4c02051 Author: Benjamin POUSSIN <poussin@codelutin.com> Date: Mon Jul 20 14:51:54 2015 +0200 - add wikitty AppAdminGroup when admin login - WikittyClient has now correct Wikitty SecurityToken and with AppAdminGroup can check if user can read/write bookmark commit 0a47cc8a6e6e0a921585688e355a214340e41a5c Author: Benjamin POUSSIN <poussin@codelutin.com> Date: Mon Jul 20 14:45:19 2015 +0200 add key for new config option (allow public group) commit 9be947e4ba80e5ca567964645b2fa877e762e4ba Author: Benjamin POUSSIN <poussin@codelutin.com> Date: Mon Jul 20 12:58:31 2015 +0200 add comment about proxy.logout() commit 6303a701fe5f89253caccdb470f04c2a1acbbf16 Author: Benjamin POUSSIN <poussin@codelutin.com> Date: Mon Jul 20 12:57:51 2015 +0200 add configuration to allow or not public group commit 4b783826fe3be4b3bfa5e86b9aab0173f3a90c05 Author: Benjamin POUSSIN <poussin@codelutin.com> Date: Mon Jul 20 12:44:27 2015 +0200 add login of currently logged user in logout block commit 05c45bda690e5f59593dfba0d18fde5885046779 Author: Benjamin POUSSIN <poussin@codelutin.com> Date: Mon Jul 20 12:43:40 2015 +0200 add support for speudo bookmarks title (first work of descriotion) commit ffd8da4ab6c32c79290fd7636b0a6829cad5c482 Author: Benjamin POUSSIN <poussin@codelutin.com> Date: Mon Jul 20 12:12:32 2015 +0200 update translation commit eac7769b5ed847b082c664fb760f3b3e88865889 Author: Benjamin POUSSIN <poussin@codelutin.com> Date: Mon Jul 20 12:11:38 2015 +0200 update translation commit 1731b2a7bee97433f82954e72b12b1197b37241c Author: Benjamin POUSSIN <poussin@codelutin.com> Date: Mon Jul 20 11:43:04 2015 +0200 add Group description commit f33801d69591f45cf346e69949f32743afd4563d Author: Benjamin POUSSIN <poussin@codelutin.com> Date: Mon Jul 20 11:04:02 2015 +0200 if no group tag, don't try to search group Summary of changes: .../main/java/org/chorem/bow/BookmarkUtils.java | 19 ++++++++- bow-ui/src/main/java/org/chorem/bow/BowConfig.java | 22 ++++++++++ .../main/java/org/chorem/bow/BowConfigOption.java | 4 ++ .../src/main/java/org/chorem/bow/BowSession.java | 46 ++++++++++++++++++++- .../java/org/chorem/bow/action/AtomAction.java | 4 -- .../java/org/chorem/bow/action/BowBaseAction.java | 10 +++++ .../bow/action/bookmark/AddOrUpdateAction.java | 33 ++++++++------- .../chorem/bow/action/group/GroupEditAction.java | 5 +-- .../main/resources/i18n/bow-ui_en_GB.properties | 28 +++++++------ .../main/resources/i18n/bow-ui_fr_FR.properties | 28 +++++++------ bow-ui/src/main/webapp/WEB-INF/jsp/atom.jsp | 2 +- bow-ui/src/main/webapp/WEB-INF/jsp/groupEdit.jsp | 9 +++- bow-ui/src/main/webapp/WEB-INF/jsp/groupView.jsp | 2 +- .../src/main/webapp/WEB-INF/jsp/inc/rightMenu.jsp | 1 + bow-ui/src/main/xmi/bow-model.zargo | Bin 10493 -> 10532 bytes 15 files changed, 157 insertions(+), 56 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 f33801d69591f45cf346e69949f32743afd4563d Author: Benjamin POUSSIN <poussin@codelutin.com> Date: Mon Jul 20 11:04:02 2015 +0200 if no group tag, don't try to search group --- .../bow/action/bookmark/AddOrUpdateAction.java | 33 +++++++++++----------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/bow-ui/src/main/java/org/chorem/bow/action/bookmark/AddOrUpdateAction.java b/bow-ui/src/main/java/org/chorem/bow/action/bookmark/AddOrUpdateAction.java index 25a5177..1265c38 100644 --- a/bow-ui/src/main/java/org/chorem/bow/action/bookmark/AddOrUpdateAction.java +++ b/bow-ui/src/main/java/org/chorem/bow/action/bookmark/AddOrUpdateAction.java @@ -240,25 +240,26 @@ public class AddOrUpdateAction extends BowBaseAction { // add in WikittyAuthorisation.parent all groups (tag start with @) // where current user is member Set<String> groupsName = BowUtils.getGroups(tagsWord); - WikittyQuery groupsQuery = new WikittyQueryMaker().and() - .containsOne(BowGroup.ELEMENT_FIELD_WIKITTYGROUP_NAME, groupsName) - .eq(BowGroup.ELEMENT_FIELD_WIKITTYGROUP_MEMBERS, userId) - .end(); - WikittyQueryResult<String> groupsId = proxy.findAllByQuery(groupsQuery); - bookmark.setParent(new HashSet<String>(groupsId.getAll())); - - if (groupsName.size() != groupsId.size()) { - List<BowGroup> groups = proxy.restore(BowGroup.class, groupsId.getAll()); - for (BowGroup g : groups) { - groupsName.remove(g.getName()); - } - for (String groupName : groupsName) { - bookmark.removeLabels(BowConfig.GROUP_MARK + groupName); + if (CollectionUtils.isNotEmpty(groupsName)) { + WikittyQuery groupsQuery = new WikittyQueryMaker().and() + .containsOne(BowGroup.ELEMENT_FIELD_WIKITTYGROUP_NAME, groupsName) + .eq(BowGroup.ELEMENT_FIELD_WIKITTYGROUP_MEMBERS, userId) + .end(); + WikittyQueryResult<String> groupsId = proxy.findAllByQuery(groupsQuery); + bookmark.setParent(new HashSet<String>(groupsId.getAll())); + + if (groupsName.size() != groupsId.size()) { + List<BowGroup> groups = proxy.restore(BowGroup.class, groupsId.getAll()); + for (BowGroup g : groups) { + groupsName.remove(g.getName()); + } + for (String groupName : groupsName) { + bookmark.removeLabels(BowConfig.GROUP_MARK + groupName); + } + addActionMessage(t("bow.group.not.members", StringUtils.join(groupsName, ", "))); } - addActionMessage(t("bow.group.not.members", StringUtils.join(groupsName, ", "))); } - // Si l'alias prive souhaite est deja utilise on ne l'accept pas // Si l'alias public souhaite est deja utilise on ne l'accept pas if (StringUtils.isBlank(privateAlias)) { -- 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 1731b2a7bee97433f82954e72b12b1197b37241c Author: Benjamin POUSSIN <poussin@codelutin.com> Date: Mon Jul 20 11:43:04 2015 +0200 add Group description --- bow-ui/src/main/webapp/WEB-INF/jsp/groupEdit.jsp | 3 +++ bow-ui/src/main/webapp/WEB-INF/jsp/groupView.jsp | 2 +- bow-ui/src/main/xmi/bow-model.zargo | Bin 10493 -> 10532 bytes 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/bow-ui/src/main/webapp/WEB-INF/jsp/groupEdit.jsp b/bow-ui/src/main/webapp/WEB-INF/jsp/groupEdit.jsp index 37eb485..92a0927 100644 --- a/bow-ui/src/main/webapp/WEB-INF/jsp/groupEdit.jsp +++ b/bow-ui/src/main/webapp/WEB-INF/jsp/groupEdit.jsp @@ -97,6 +97,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. <s:textfield disabled="%{groupId != null}" name="group.name" labelSeparator=" " key="bow.groupEdit.name" value="%{group.name}" /> + <s:textfield name="group.description" labelSeparator=" " key="bow.groupEdit.description" + value="%{group.description}" /> + <s:select id="members" list="%{group.getMembers(false)}" listKey="wikittyId" listValue="getFqField('WikittyUser.login')" multiple="true" size="10" diff --git a/bow-ui/src/main/webapp/WEB-INF/jsp/groupView.jsp b/bow-ui/src/main/webapp/WEB-INF/jsp/groupView.jsp index 50984d9..74a0839 100644 --- a/bow-ui/src/main/webapp/WEB-INF/jsp/groupView.jsp +++ b/bow-ui/src/main/webapp/WEB-INF/jsp/groupView.jsp @@ -46,7 +46,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. <ul> <s:iterator value="groups" var="group"> <s:set name="group" value="group"/> - <li class="public-${u:isPublicGroup(group)}"> + <li class="public-${u:isPublicGroup(group)}" title="${group.description}"> <span class="group-name">${group.name}</span> <span class="group-members">${group.members.size()} <s:text name="bow.group.members"/></span> diff --git a/bow-ui/src/main/xmi/bow-model.zargo b/bow-ui/src/main/xmi/bow-model.zargo index f3b2871..6102526 100644 Binary files a/bow-ui/src/main/xmi/bow-model.zargo and b/bow-ui/src/main/xmi/bow-model.zargo differ -- 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 eac7769b5ed847b082c664fb760f3b3e88865889 Author: Benjamin POUSSIN <poussin@codelutin.com> Date: Mon Jul 20 12:11:38 2015 +0200 update translation --- .../main/resources/i18n/bow-ui_en_GB.properties | 27 +++++++++++----------- .../main/resources/i18n/bow-ui_fr_FR.properties | 27 +++++++++++----------- 2 files changed, 28 insertions(+), 26 deletions(-) diff --git a/bow-ui/src/main/resources/i18n/bow-ui_en_GB.properties b/bow-ui/src/main/resources/i18n/bow-ui_en_GB.properties index 8b3f895..84d7caf 100644 --- a/bow-ui/src/main/resources/i18n/bow-ui_en_GB.properties +++ b/bow-ui/src/main/resources/i18n/bow-ui_en_GB.properties @@ -6,7 +6,7 @@ bow.admin.dataMigration05to06=Migrate all data from 0.5 to 0.6 bow.admin.dataMigration11to12=Migrate all data from 1.1 to 1.2 bow.admin.dataReindexation=All data reindexation (and migration if needed) bow.admin.forbidden=You don't have admin rights \! -bow.admin.forceMigration= +bow.admin.forceMigration=Force migration bow.admin.home=Return to the home page bow.admin.panel=Admin panel bow.admin.reIndexationDone=Data reindexed successfully @@ -15,11 +15,11 @@ bow.alias.bookmarkId.unknown=There is no bookmark with id {0} bow.bookmark.add.successful=Bookmark successfully added bow.bookmark.badFileFormat=Bad bookmarks file format \: unsuccessful import (expected Netscape-like bookmarks file) bow.bookmark.description=Description -bow.bookmark.favicon.updated.successful= +bow.bookmark.favicon.updated.successful=Update favicon successful bow.bookmark.import.delete.successful=The imported bookmarks were deleted successfully bow.bookmark.import.successful=The bookmarks were imported successfully bow.bookmark.remove.successful=The bookmark was removed successfully -bow.bookmark.screenshot.updated.successful= +bow.bookmark.screenshot.updated.successful=Update screenshot successful bow.bookmark.tag.deleted=The tag was removed successfully bow.bookmark.tags=Tags bow.bookmark.update.successful=The bookmark was updated successfully @@ -63,6 +63,7 @@ bow.group.new=Create new group bow.group.not.members=You are not groups members\: %s bow.group.some.user.not.found=Some users not found\: %s bow.groupEdit.delete=delete +bow.groupEdit.description=Description bow.groupEdit.members=Members bow.groupEdit.name=Name bow.groupEdit.public=Public groupe (all people can see it) @@ -86,10 +87,10 @@ bow.login.title=Login bow.mail.badFormat=Your email format is incorrect and therefore the email hasn't been sent bow.mail.sendError=An error occurred while sending email bow.opensearch.result=%s results -bow.permanent.link.search= -bow.permanent.link.searchDescription= -bow.permanent.link.suggestion= -bow.permanent.link.suggestionDescription= +bow.permanent.link.search=Permanent search URL +bow.permanent.link.searchDescription=Permalink to use Bow as search engine in your browser +bow.permanent.link.suggestion=Permanent suggest URL +bow.permanent.link.suggestionDescription=Permalink to use Bow as suggest engine in your browser bow.preference.opensearch.prefix.separator=OpenSeach prefix separator bow.preferences.badCurrentPassword=Your current password is incorrect bow.preferences.bookmarksHomePage=Number of bookmarks displayed on the home page @@ -98,7 +99,7 @@ bow.preferences.confirmNewPassword=Confirm new password bow.preferences.currentPassword=Current password bow.preferences.emailAldyExists=This email address is already linked with another account bow.preferences.export.bookmarks=Export bookmarks -bow.preferences.favicon= +bow.preferences.favicon=Automatically retrieve the favicon for new bookmarks bow.preferences.import.bookmarks=Import bookmarks bow.preferences.import.submit=Import bow.preferences.importExport=Import / Export @@ -119,7 +120,7 @@ bow.preferences.opensearch.tag.search.prefix=Search by tag bow.preferences.opensearch.value=Value bow.preferences.opensearch.web.search.prefix=Search on the Web bow.preferences.regenPermToken=Regenerate permanent token -bow.preferences.screenshot= +bow.preferences.screenshot=Automatically retrieve screenshot for new bookmarks bow.preferences.searchEngineUrlResults=Search Engine URL Results ('{'searchTerms'}' will be replaced by your text) bow.preferences.searchEngineUrlSuggestions=Search Engine URL Suggestions bow.preferences.siteLook=Site look @@ -181,10 +182,10 @@ bow.search.orderby=Order by bow.search.results.deleted=Search results deleted successfully bow.search.submit=Search bow.search.title=Search -bow.temporary.link.search= -bow.temporary.link.searchDescription= -bow.temporary.link.suggestion= -bow.temporary.link.suggestionDescription= +bow.temporary.link.search=Temporary search URL +bow.temporary.link.searchDescription=Temporary link (session) to use Bow as search engine in your browser +bow.temporary.link.suggestion=Temporary suggest URL +bow.temporary.link.suggestionDescription=Temporary link (session) to use Bow as suggest engine in your browser bow.token.generate.successful=The token has been regenerated successfully bow.users=Users popup.addurl.alias.private=Private alias diff --git a/bow-ui/src/main/resources/i18n/bow-ui_fr_FR.properties b/bow-ui/src/main/resources/i18n/bow-ui_fr_FR.properties index f10f38d..5eb1324 100644 --- a/bow-ui/src/main/resources/i18n/bow-ui_fr_FR.properties +++ b/bow-ui/src/main/resources/i18n/bow-ui_fr_FR.properties @@ -6,7 +6,7 @@ bow.admin.dataMigration05to06=Migrer toutes les données de la version 0.5 à 0. bow.admin.dataMigration11to12=Migrer toutes les données de la version 1.1 à 1.2 bow.admin.dataReindexation=Réindexation des données bow.admin.forbidden=Vous n'êtes pas administrateur \! -bow.admin.forceMigration= +bow.admin.forceMigration=Forcer la migration bow.admin.home=Retour sur la page d''accueil bow.admin.panel=Panneau d''administration bow.admin.reIndexationDone=Les données ont bien été réindexées (et migration si nécessaire) @@ -15,11 +15,11 @@ bow.alias.bookmarkId.unknown=Il n''y a pas de marque-page correspondant à l''id bow.bookmark.add.successful=Marque-page ajouté avec succès bow.bookmark.badFileFormat=Mauvais format de fichier de favoris \: import impossible (le format de type Netscape n'est pas supporté) bow.bookmark.description=Description -bow.bookmark.favicon.updated.successful= +bow.bookmark.favicon.updated.successful=Mise à jour du favicon réussi bow.bookmark.import.delete.successful=Les marque-pages importés ont été supprimés avec succès bow.bookmark.import.successful=Les marque-pages ont été importés avec succès bow.bookmark.remove.successful=Le marque-page a été supprimé avec succès -bow.bookmark.screenshot.updated.successful= +bow.bookmark.screenshot.updated.successful=Mise à jour de la capture d'écran réussi bow.bookmark.tag.deleted=Le tag a été supprimé avec succès bow.bookmark.tags=Tags bow.bookmark.update.successful=Le marque-page a été mis à jour avec succès @@ -63,6 +63,7 @@ bow.group.new=Créer un nouveau groupe bow.group.not.members=Vous n'êtes pas membres des groupes\: %s bow.group.some.user.not.found=Certain utilisateurs n'ont pas été trouvé\: %s bow.groupEdit.delete=Supprimer +bow.groupEdit.description=Description bow.groupEdit.members=Membres bow.groupEdit.name=Nom bow.groupEdit.public=Groupe public (visible de tout le monde) @@ -86,10 +87,10 @@ bow.login.title=Connexion bow.mail.badFormat=Votre adresse email est mal formée \: aucun mail n''a pu être envoyé bow.mail.sendError=Une erreur s''est produite lors de l''envoi du mail bow.opensearch.result=%s résultats -bow.permanent.link.search= -bow.permanent.link.searchDescription= -bow.permanent.link.suggestion= -bow.permanent.link.suggestionDescription= +bow.permanent.link.search=URL de recherche permanente +bow.permanent.link.searchDescription=Lien permanent pour utiliser Bow comme moteur de recherche dans votre navigateur +bow.permanent.link.suggestion=URL de suggesion permanente +bow.permanent.link.suggestionDescription=Lien permanent pour utiliser Bow comme moteur de suggestion dans votre navigateur bow.preference.opensearch.prefix.separator=Separateur de préfix bow.preferences.badCurrentPassword=Votre mot de passe actuel est incorrect bow.preferences.bookmarksHomePage=Nombre de marque-pages affichés @@ -98,7 +99,7 @@ bow.preferences.confirmNewPassword=Confirmez votre mot de passe bow.preferences.currentPassword=Mot de passe actuel bow.preferences.emailAldyExists=Cette addresse email est déjà utilisée par un autre compte bow.preferences.export.bookmarks=Exporter les marque-pages -bow.preferences.favicon= +bow.preferences.favicon=Récupérer automatiquement le favicon pour les nouveaux bookmarks bow.preferences.import.bookmarks=Importer des marques-pages bow.preferences.import.submit=Importer bow.preferences.importExport=Import / Export @@ -119,7 +120,7 @@ bow.preferences.opensearch.tag.search.prefix=Recherche par tag bow.preferences.opensearch.value=Valeur bow.preferences.opensearch.web.search.prefix=Recherche Web bow.preferences.regenPermToken=Regénérer le token permanent -bow.preferences.screenshot= +bow.preferences.screenshot=Récupérer automatiquement une copie d'écran des nouveaux bookmarks bow.preferences.searchEngineUrlResults=Search Engine URL Results ('{'searchTerms'}' sera remplacé par votre recherche) bow.preferences.searchEngineUrlSuggestions=Search Engine URL Suggestions bow.preferences.siteLook=Préférences du site @@ -181,10 +182,10 @@ bow.search.orderby=Trier par bow.search.results.deleted=Les résultats de la recherche ont été supprimés avec succès bow.search.submit=Rechercher bow.search.title=Recherche -bow.temporary.link.search= -bow.temporary.link.searchDescription= -bow.temporary.link.suggestion= -bow.temporary.link.suggestionDescription= +bow.temporary.link.search=Temporary search URL +bow.temporary.link.searchDescription=Lien temporaire (le temps de la session) pour utiliser Bow comme moteur de recherche dans votre navigateur +bow.temporary.link.suggestion=Temporary suggest URL +bow.temporary.link.suggestionDescription=Lien temporaire (le temps de la session) pour utiliser Bow comme moteur de suggestion dans votre navigateur bow.token.generate.successful=Le token a été regénéré avec succès bow.users=Utilisateurs popup.addurl.alias.private=Alias privé -- 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 ffd8da4ab6c32c79290fd7636b0a6829cad5c482 Author: Benjamin POUSSIN <poussin@codelutin.com> Date: Mon Jul 20 12:12:32 2015 +0200 update translation --- bow-ui/src/main/resources/i18n/bow-ui_fr_FR.properties | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bow-ui/src/main/resources/i18n/bow-ui_fr_FR.properties b/bow-ui/src/main/resources/i18n/bow-ui_fr_FR.properties index 5eb1324..7a3b614 100644 --- a/bow-ui/src/main/resources/i18n/bow-ui_fr_FR.properties +++ b/bow-ui/src/main/resources/i18n/bow-ui_fr_FR.properties @@ -182,9 +182,9 @@ bow.search.orderby=Trier par bow.search.results.deleted=Les résultats de la recherche ont été supprimés avec succès bow.search.submit=Rechercher bow.search.title=Recherche -bow.temporary.link.search=Temporary search URL +bow.temporary.link.search=URL de recherche temporaire bow.temporary.link.searchDescription=Lien temporaire (le temps de la session) pour utiliser Bow comme moteur de recherche dans votre navigateur -bow.temporary.link.suggestion=Temporary suggest URL +bow.temporary.link.suggestion=URL de suggesion temporaire bow.temporary.link.suggestionDescription=Lien temporaire (le temps de la session) pour utiliser Bow comme moteur de suggestion dans votre navigateur bow.token.generate.successful=Le token a été regénéré avec succès bow.users=Utilisateurs -- 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 05c45bda690e5f59593dfba0d18fde5885046779 Author: Benjamin POUSSIN <poussin@codelutin.com> Date: Mon Jul 20 12:43:40 2015 +0200 add support for speudo bookmarks title (first work of descriotion) --- .../src/main/java/org/chorem/bow/BookmarkUtils.java | 19 ++++++++++++++++++- .../main/java/org/chorem/bow/action/AtomAction.java | 4 ---- .../java/org/chorem/bow/action/BowBaseAction.java | 10 ++++++++++ bow-ui/src/main/webapp/WEB-INF/jsp/atom.jsp | 2 +- 4 files changed, 29 insertions(+), 6 deletions(-) diff --git a/bow-ui/src/main/java/org/chorem/bow/BookmarkUtils.java b/bow-ui/src/main/java/org/chorem/bow/BookmarkUtils.java index c5ad503..963a53c 100644 --- a/bow-ui/src/main/java/org/chorem/bow/BookmarkUtils.java +++ b/bow-ui/src/main/java/org/chorem/bow/BookmarkUtils.java @@ -45,7 +45,6 @@ import org.jsoup.nodes.Document; import org.nuiton.wikitty.entities.Element; import org.nuiton.wikitty.query.WikittyQuery; import org.nuiton.wikitty.query.WikittyQueryMaker; -import org.nuiton.wikitty.query.WikittyQueryResult; import org.nuiton.wikitty.services.WikittyServiceAuthorisation; public class BookmarkUtils { @@ -54,6 +53,24 @@ public class BookmarkUtils { public static Log log = LogFactory.getLog(BookmarkUtils.class); /** + * Title is first sentence of description, or link if no description + * @param b + * @param max maximum length of title, 0 == no limit + * @return + */ + public static String getTitle(BowBookmark b, int max) { + String result = StringUtils.substringBefore(b.getDescription(), "."); + if (StringUtils.isBlank(result)) { + result = b.getLink(); + } + if (max > 0) { + result = StringUtils.substring(result, 0, max); + result = StringUtils.substringBeforeLast(result, " ") + "..."; + } + return result; + } + + /** * Ajoute a la recherche tout ce qui est necessaire pour connaitre * toutes les informations que l'utilisateur peut voir, meme s'il n'est * pas le createur de ce bookmark diff --git a/bow-ui/src/main/java/org/chorem/bow/action/AtomAction.java b/bow-ui/src/main/java/org/chorem/bow/action/AtomAction.java index fcfd311..adadeb5 100644 --- a/bow-ui/src/main/java/org/chorem/bow/action/AtomAction.java +++ b/bow-ui/src/main/java/org/chorem/bow/action/AtomAction.java @@ -22,18 +22,14 @@ package org.chorem.bow.action; import java.util.Date; import java.util.List; -import org.apache.commons.lang3.StringUtils; -import org.apache.commons.lang3.time.DateFormatUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.chorem.bow.BookmarkUtils; import org.chorem.bow.BowBookmark; import org.chorem.bow.BowProxy; -import org.chorem.bow.BowSearchResult; import org.chorem.bow.BowSession; import org.chorem.bow.BowUser; import org.nuiton.wikitty.query.WikittyQuery; -import org.nuiton.wikitty.query.WikittyQueryMaker; import org.nuiton.wikitty.query.WikittyQueryResult; /** diff --git a/bow-ui/src/main/java/org/chorem/bow/action/BowBaseAction.java b/bow-ui/src/main/java/org/chorem/bow/action/BowBaseAction.java index f15856c..daae7b9 100644 --- a/bow-ui/src/main/java/org/chorem/bow/action/BowBaseAction.java +++ b/bow-ui/src/main/java/org/chorem/bow/action/BowBaseAction.java @@ -31,6 +31,7 @@ import org.nuiton.web.struts2.BaseAction; import java.util.Arrays; import java.util.List; import java.util.Map; +import org.chorem.bow.BookmarkUtils; /** * Base class which must be extended by every action @@ -62,6 +63,8 @@ public class BowBaseAction extends BaseAction implements SessionAware { /** Configuration, default null for lazy loading */ protected transient BowConfig config; + protected transient BookmarkUtils bookmarkUtils; + /** des identifiants de bookmark a recherche explicitemnet */ protected List<String> listId; @@ -98,6 +101,13 @@ public class BowBaseAction extends BaseAction implements SessionAware { return result; } + public BookmarkUtils getBookmarkUtils() { + if (bookmarkUtils == null) { + bookmarkUtils = new BookmarkUtils(); + } + return bookmarkUtils; + } + @Override public void setSession(Map<String, Object> session) { this.session = session; diff --git a/bow-ui/src/main/webapp/WEB-INF/jsp/atom.jsp b/bow-ui/src/main/webapp/WEB-INF/jsp/atom.jsp index b3e6f4b..1af7aed 100644 --- a/bow-ui/src/main/webapp/WEB-INF/jsp/atom.jsp +++ b/bow-ui/src/main/webapp/WEB-INF/jsp/atom.jsp @@ -56,7 +56,7 @@ <s:iterator value="bookmarks" var="bookmark"> <s:set name="bookmark" value="bookmark"/> <entry> - <title>${bookmark.link}</title> + <title>${bookmarkUtils.getTitle(bookmark, 100)}</title> <s:url var="bookmarkUrl" action="home" escapeAmp="true"> <s:param name="token" value="%{bowSession.permanentToken}" /> <s:param name="listId" value="%{#bookmark.wikittyId}" /> -- 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 4b783826fe3be4b3bfa5e86b9aab0173f3a90c05 Author: Benjamin POUSSIN <poussin@codelutin.com> Date: Mon Jul 20 12:44:27 2015 +0200 add login of currently logged user in logout block --- bow-ui/src/main/webapp/WEB-INF/jsp/inc/rightMenu.jsp | 1 + 1 file changed, 1 insertion(+) diff --git a/bow-ui/src/main/webapp/WEB-INF/jsp/inc/rightMenu.jsp b/bow-ui/src/main/webapp/WEB-INF/jsp/inc/rightMenu.jsp index a248720..5b6014e 100644 --- a/bow-ui/src/main/webapp/WEB-INF/jsp/inc/rightMenu.jsp +++ b/bow-ui/src/main/webapp/WEB-INF/jsp/inc/rightMenu.jsp @@ -27,6 +27,7 @@ <div id="logoutDiv" xmlns:s="http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd" xmlns:jsp="http://java.sun.com/JSP/Page"> + ${bowSession.user.login} <s:form action="logout" theme="simple"> <div class="input"> <s:submit key="bow.rightMenu.logout" name="submit" /> -- 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 6303a701fe5f89253caccdb470f04c2a1acbbf16 Author: Benjamin POUSSIN <poussin@codelutin.com> Date: Mon Jul 20 12:57:51 2015 +0200 add configuration to allow or not public group --- bow-ui/src/main/java/org/chorem/bow/BowConfig.java | 22 ++++++++++++++++++++++ .../main/java/org/chorem/bow/BowConfigOption.java | 4 ++++ .../chorem/bow/action/group/GroupEditAction.java | 5 +---- bow-ui/src/main/webapp/WEB-INF/jsp/groupEdit.jsp | 6 ++++-- 4 files changed, 31 insertions(+), 6 deletions(-) diff --git a/bow-ui/src/main/java/org/chorem/bow/BowConfig.java b/bow-ui/src/main/java/org/chorem/bow/BowConfig.java index 555ee5f..b478689 100644 --- a/bow-ui/src/main/java/org/chorem/bow/BowConfig.java +++ b/bow-ui/src/main/java/org/chorem/bow/BowConfig.java @@ -144,6 +144,28 @@ public class BowConfig { } /** + * return true if public group is allowed + * Default bow applicationConfig will be used + * + * @return true if public group is allowed + * @since 1.5 + */ + public static boolean isAllowPublicGroup() { + return isAllowPublicGroup(getConfig()); + } + + /** + * return true if public group is allowed + * + * @param config bow configuration + * @return true if public group is allowed + * @since 1.5 + */ + public static boolean isAllowPublicGroup(ApplicationConfig config) { + return config.getOptionAsBoolean(BowConfigOption.BOW_ALLOW_PUBLIC_GROUP.key); + } + + /** * Get bow screenshot url server as string. * Default bow applicationConfig will be used * diff --git a/bow-ui/src/main/java/org/chorem/bow/BowConfigOption.java b/bow-ui/src/main/java/org/chorem/bow/BowConfigOption.java index 6084cce..f87f6d9 100644 --- a/bow-ui/src/main/java/org/chorem/bow/BowConfigOption.java +++ b/bow-ui/src/main/java/org/chorem/bow/BowConfigOption.java @@ -45,6 +45,10 @@ public enum BowConfigOption implements ConfigOptionDef { "alias.url", t("bow.config.alias.url.description"), "alias/", String.class, false, false), + BOW_ALLOW_PUBLIC_GROUP( + "allow.public.group", + t("bow.config.bow.allow.public.group.description"), + "false", Boolean.class, false, false), BOW_SCREENSHOT_URL( "bow.screenshot.url", t("bow.config.bow.screenshot.url.description"), 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 09e0390..90edbb4 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 @@ -22,9 +22,7 @@ package org.chorem.bow.action.group; import java.util.Collections; import java.util.HashMap; -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.apache.commons.logging.Log; @@ -34,7 +32,6 @@ import org.chorem.bow.BowGroupImpl; import org.chorem.bow.BowProxy; import org.chorem.bow.BowSession; import org.chorem.bow.BowUser; -import org.chorem.bow.BowUserHelper; import org.chorem.bow.BowUtils; import org.chorem.bow.action.BowBaseAction; import org.nuiton.wikitty.entities.Wikitty; @@ -87,7 +84,7 @@ public class GroupEditAction extends BowBaseAction { public void setPublic(boolean pub) { String reader; - if (pub) { + if (pub && getConfig().isAllowPublicGroup()) { reader = WikittyServiceAuthorisation.PUBLIC; } else { reader = getGroup().getWikittyId(); diff --git a/bow-ui/src/main/webapp/WEB-INF/jsp/groupEdit.jsp b/bow-ui/src/main/webapp/WEB-INF/jsp/groupEdit.jsp index 92a0927..c86e841 100644 --- a/bow-ui/src/main/webapp/WEB-INF/jsp/groupEdit.jsp +++ b/bow-ui/src/main/webapp/WEB-INF/jsp/groupEdit.jsp @@ -92,8 +92,10 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. <s:hidden name="fullTextLine" value="%{fullTextLine}" /> <s:hidden name="groupId" value="%{groupId}"/> - <s:checkbox labelposition="left" name="public" labelSeparator=" " key="bow.groupEdit.public" - value="%{public}" /> + <s:if test="config.allowPublicGroup"> + <s:checkbox labelposition="left" name="public" labelSeparator=" " key="bow.groupEdit.public" + value="%{public}" /> + </s:if> <s:textfield disabled="%{groupId != null}" name="group.name" labelSeparator=" " key="bow.groupEdit.name" value="%{group.name}" /> -- 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 9be947e4ba80e5ca567964645b2fa877e762e4ba Author: Benjamin POUSSIN <poussin@codelutin.com> Date: Mon Jul 20 12:58:31 2015 +0200 add comment about proxy.logout() --- bow-ui/src/main/java/org/chorem/bow/BowSession.java | 4 ++++ 1 file changed, 4 insertions(+) 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 3666b2e..a45bd5d 100644 --- a/bow-ui/src/main/java/org/chorem/bow/BowSession.java +++ b/bow-ui/src/main/java/org/chorem/bow/BowSession.java @@ -69,6 +69,10 @@ public class BowSession implements Serializable { public static void invalidate(Map<String, Object> session) { session.remove(BOW_SESSION_KEY); + // it's not necessary to logout user on proxy. Wikitty reuse old token + // if necessary, no database leak with many token + // not necessary, because when user use scriptlet add, auto-login is done + // with no logout } public static BowSession getBowSession(HttpServletRequest request) { -- 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 0a47cc8a6e6e0a921585688e355a214340e41a5c Author: Benjamin POUSSIN <poussin@codelutin.com> Date: Mon Jul 20 14:45:19 2015 +0200 add key for new config option (allow public group) --- bow-ui/src/main/resources/i18n/bow-ui_en_GB.properties | 1 + bow-ui/src/main/resources/i18n/bow-ui_fr_FR.properties | 1 + 2 files changed, 2 insertions(+) diff --git a/bow-ui/src/main/resources/i18n/bow-ui_en_GB.properties b/bow-ui/src/main/resources/i18n/bow-ui_en_GB.properties index 84d7caf..4bdfcad 100644 --- a/bow-ui/src/main/resources/i18n/bow-ui_en_GB.properties +++ b/bow-ui/src/main/resources/i18n/bow-ui_en_GB.properties @@ -28,6 +28,7 @@ bow.config.alias.url.description=Web server alias URL bow.config.application.version.description=application version bow.config.bow.addressFrom.description=mail from address bow.config.bow.admins.description=admins email address list +bow.config.bow.allow.public.group.description= bow.config.bow.prefix.search.add.description= bow.config.bow.prefix.search.alias.description= bow.config.bow.prefix.search.fulltext.description= diff --git a/bow-ui/src/main/resources/i18n/bow-ui_fr_FR.properties b/bow-ui/src/main/resources/i18n/bow-ui_fr_FR.properties index 7a3b614..624c653 100644 --- a/bow-ui/src/main/resources/i18n/bow-ui_fr_FR.properties +++ b/bow-ui/src/main/resources/i18n/bow-ui_fr_FR.properties @@ -28,6 +28,7 @@ bow.config.alias.url.description=Url public du serveur d'alias bow.config.application.version.description=Version de l'application bow.config.bow.addressFrom.description=Adresse expediteur des emails bow.config.bow.admins.description=Liste des emails des admins de l'application +bow.config.bow.allow.public.group.description= bow.config.bow.prefix.search.add.description= bow.config.bow.prefix.search.alias.description= bow.config.bow.prefix.search.fulltext.description= -- 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 bf124e708b75aa70095f08c384c85b48d4c02051 Author: Benjamin POUSSIN <poussin@codelutin.com> Date: Mon Jul 20 14:51:54 2015 +0200 - add wikitty AppAdminGroup when admin login - WikittyClient has now correct Wikitty SecurityToken and with AppAdminGroup can check if user can read/write bookmark --- .../src/main/java/org/chorem/bow/BowSession.java | 42 +++++++++++++++++++++- 1 file changed, 41 insertions(+), 1 deletion(-) 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 a45bd5d..7419966 100644 --- a/bow-ui/src/main/java/org/chorem/bow/BowSession.java +++ b/bow-ui/src/main/java/org/chorem/bow/BowSession.java @@ -29,12 +29,16 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; import java.io.Serializable; import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashSet; import java.util.List; import java.util.Map; -import org.nuiton.wikitty.entities.Element; +import org.nuiton.wikitty.entities.WikittyGroup; +import org.nuiton.wikitty.entities.WikittyUser; import org.nuiton.wikitty.query.WikittyQuery; import org.nuiton.wikitty.query.WikittyQueryMaker; import org.nuiton.wikitty.query.WikittyQueryResult; +import org.nuiton.wikitty.services.WikittySecurityUtil; /** * Classe utilisee pour stocker les objets utils en session utilisateur @@ -187,10 +191,46 @@ public class BowSession implements Serializable { // generate temporary token String temporaryToken = BowUtils.generateToken(); setTemporaryToken(temporaryToken); + + String wikittyToken = proxy.getSecurityToken(user.getWikittyId()); + proxy.setSecurityToken(wikittyToken); + + if (isAdmin) { + checkAppAdminGroup(user, admins); + } } this.user = user; } + /** + * Verifie que le group AppAdminGroup exist et est a jour + * @param user + * @param adminsLogin other admin identified by login + */ + protected void checkAppAdminGroup(BowUser user, String ... adminsLogin) { + boolean mustSave = false; + WikittyGroup adminGroup = WikittySecurityUtil.getAppAdminGroup(proxy); + if (adminGroup == null) { + adminGroup = WikittySecurityUtil.createAppAdminGroup(user); + mustSave = true; + } + if (ArrayUtils.isNotEmpty(adminsLogin)) { + List<String> admins = Arrays.asList(adminsLogin); + WikittyQuery criteria = new WikittyQueryMaker() + .containsOne(WikittyUser.ELEMENT_FIELD_WIKITTYUSER_LOGIN, admins).end(); + List<String> adminsId = proxy.findAllByQuery(criteria).getAll(); + if (adminGroup.getMembers().size() != adminsId.size() || !adminGroup.getMembers().containsAll(adminsId)) { + adminGroup.setMembers(new HashSet<String>(adminsId)); + mustSave = true; + } + } + + if (mustSave) { + proxy.store(adminGroup); + } + } + + protected void checkPreference(BowPreference preference) { if (preference.getBookmarks() <= 0) { preference.setBookmarks(100); // set default to 100 -- To stop receiving notification emails like this one, please contact chorem.org SCM administrator <admin+scm@chorem.org>.
participants (1)
-
chorem.org scm